diff --git a/go.mod b/go.mod index 45139a3..7f52bb7 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.22.4 require ( github.com/aaronland/go-http-bootstrap v0.5.0 - github.com/aaronland/go-http-server v1.4.1 + github.com/aaronland/go-http-server v1.5.0 github.com/aaronland/go-http-static v0.0.3 github.com/sfomuseum/go-flags v0.10.0 github.com/sfomuseum/go-http-rollup v0.0.3 @@ -15,12 +15,12 @@ require ( github.com/aaronland/go-http-rewrite v1.1.0 // indirect github.com/aaronland/go-roster v1.0.0 // indirect github.com/akrylysov/algnhsa v1.1.0 // indirect - github.com/aws/aws-lambda-go v1.46.0 // indirect + github.com/aws/aws-lambda-go v1.47.0 // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/tdewolff/minify/v2 v2.20.32 // indirect github.com/tdewolff/parse/v2 v2.7.14 // indirect github.com/tidwall/gjson v1.17.1 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/net v0.8.0 // indirect ) diff --git a/go.sum b/go.sum index 432acac..d01f02d 100644 --- a/go.sum +++ b/go.sum @@ -2,16 +2,16 @@ github.com/aaronland/go-http-bootstrap v0.5.0 h1:+GOVYhJyiPo2gvBe36a0HLckRWZyzRk github.com/aaronland/go-http-bootstrap v0.5.0/go.mod h1:/fhvNRtvbn+b7aPapf0McoH05Oxzw6L68OolElAK9T0= github.com/aaronland/go-http-rewrite v1.1.0 h1:HhsltNyYRnIz2FR+qANZLx2ykiRuNuNK1JgPonKBLHQ= github.com/aaronland/go-http-rewrite v1.1.0/go.mod h1:iA9jQBureJrzO6fTzmRLS+fkbAI1Fna71iTb1hP8n3k= -github.com/aaronland/go-http-server v1.4.1 h1:GfrGHF9+aurisbPAVv1SbPhxu+PJppX4Eatig/dE8D4= -github.com/aaronland/go-http-server v1.4.1/go.mod h1:R52A7/N3HWHmAf4KjVgkAtsFyUl+VxzICyArko3zMKo= +github.com/aaronland/go-http-server v1.5.0 h1:5yEan85iJrECOHDVmDn/noU7vbDEN50aQR7gXbZpSf8= +github.com/aaronland/go-http-server v1.5.0/go.mod h1:BJqspPR3LgC3CReChGY9p783zzk5dDegDVNWwgHW2TM= github.com/aaronland/go-http-static v0.0.3 h1:0MnYXNwGVDCzre5YwinfPSdAFHInbBbmBv5hJtb/FX8= github.com/aaronland/go-http-static v0.0.3/go.mod h1:/s6lHGXq95ZR9nMJmE9slE4uMi92GP34CuG3f9xlfsY= github.com/aaronland/go-roster v1.0.0 h1:FRDGrTqsYySKjWnAhbBGXyeGlI/o5/t9FZYCbUmyQtI= github.com/aaronland/go-roster v1.0.0/go.mod h1:KIsYZgrJlAsyb9LsXSCvlqvbcCBVjCSqcQiZx42i9ro= github.com/akrylysov/algnhsa v1.1.0 h1:G0SoP16tMRyiism7VNc3JFA0wq/cVgEkp/ExMVnc6PQ= github.com/akrylysov/algnhsa v1.1.0/go.mod h1:+bOweRs/WBu5awl+ifCoSYAuKVPAmoTk8XOMrZ1xwiw= -github.com/aws/aws-lambda-go v1.46.0 h1:UWVnvh2h2gecOlFhHQfIPQcD8pL/f7pVCutmFl+oXU8= -github.com/aws/aws-lambda-go v1.46.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= +github.com/aws/aws-lambda-go v1.47.0 h1:0H8s0vumYx/YKs4sE7YM0ktwL2eWse+kfopsRI1sXVI= +github.com/aws/aws-lambda-go v1.47.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -39,7 +39,7 @@ github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/static/css/sfomuseum.common.css b/static/css/sfomuseum.common.css index c4a63ae..813a001 100644 --- a/static/css/sfomuseum.common.css +++ b/static/css/sfomuseum.common.css @@ -329,6 +329,12 @@ body { border: 1px solid #8a741d !important; } +/* This fixes the gap between the standard SFOM header/navi and any secondary header/navi elements */ + +.sf-main .pin-t16 { + top: initial !important; +} + /* The magnifying glass in the collapsed SFOM search window; this selector was derived using the Firefox developer console */ .to-lg\:mt-1 svg { diff --git a/static/css/sfomuseum.common.min.css b/static/css/sfomuseum.common.min.css index 7b44082..c1fef11 100644 --- a/static/css/sfomuseum.common.min.css +++ b/static/css/sfomuseum.common.min.css @@ -1 +1 @@ -body{background-color:#fff!important}#block-museum-sociallinks{text-align:center!important}#block-museum-menu-footer{justify-content:center;display:grid}#block-museum-copyright{text-align:center!important}#block-mainnavigation-footer a{color:#616161!important}#block-mainnavigation-footer a:hover{color:#616161!important}#block-museum-footerbottom a{color:#616161!important}#block-museum-footerbottom a:hover{color:#616161!important}#header-signin{background-color:#e0c877}#pagination-previous-page{color:#8a741d!important}#pagination-next-page{color:#8a741d!important}#pagination-blurb{display:none;text-align:center;font-size:small;color:#bbb;margin-top:2rem}#summary-label-text{font-weight:700;color:#146e8e!important}.breadcrumb{border:none!important;background-color:initial!important;margin-bottom:0!important;font-size:small}.btn{background-color:#8a741d!important;color:#fff!important;border-radius:0!important;padding:.4rem!important}.card{margin-bottom:1em;border:none!important}.card-admin{font-size:small;font-family:monospace;margin-bottom:0!important;background-color:#ccc;border-radius:0!important;margin-top:4rem}.card-header{border:none!important;background-color:initial!important}.card-header-sub{display:block;font-size:.933rem!important;margin-top:.5rem;line-height:1.3rem}.card-header small{display:block;font-size:.85rem;margin-top:.5rem;line-height:1.3rem}.card-img-top{border-top-left-radius:0!important;border-top-right-radius:0!important;display:block!important;margin-left:auto!important;margin-right:auto!important;width:auto!important;max-width:-moz-available!important;max-width:-webkit-available!important;max-width:available!important}.card-footer{background-color:initial!important;border:none!important}.card-sfomuseum-image{border:none!important;padding-top:.75rem!important}.caveat-map{font-size:.9rem;line-height:1.3rem;margin-bottom:2rem;font-style:italic}.creditline{font-size:small;font-style:italic;width:640px;margin:0 auto;margin-bottom:2rem}.hey-look{font-weight:700}.image-attribution{line-height:1.2rem!important;font-size:.6rem!important}.image-creditline{font-size:small;line-height:1.3rem;margin-top:.5rem}.image-details{margin-top:1rem}.image-single{max-height:270px!important;max-width:270px!important}.image-toggle{margin-top:2rem;margin-bottom:1.5rem;text-align:center;display:block}.image-toggle button{border:solid thin;font-size:small;background-color:initial;display:inline}.image-tiles .leaflet-control-attribution{display:none}.inc_details_blurb{font-size:small!important;line-height:1.3rem}.inc_details_item{text-decoration:underline;padding-top:.3rem}.image-map .feature-map{max-height:500px!important}.inline{background-color:#ededed;padding:2rem!important;padding-top:1rem!important;padding-bottom:1.5rem!important;display:inline-block!important}.inline li{display:inline;padding:0!important;margin:0!important;color:#666}.inline li:before{// content: ", ";content:" and ";color:#666;// border: 1px solid red}.inline li:first-child:before{content:""!important}.inline-refine{width:100%!important;background-color:#fff!important}.inline-refine li:before{content:""!important}.inline-refine li{margin-right:1rem!important}.leaflet-div-icon{border:none!important;background-color:initial!important}.list-view{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.list-view-still{height:355px}.list-view-still img{max-height:270px!important}.list-view-image-placeholder{min-height:270px;min-width:270px;max-height:270px;max-width:270px;margin:0 auto;margin-bottom:1rem;background-color:#ccc;background:repeating-linear-gradient( 45deg,#d9d9d9,#d9d9d9 10px,#e9e9e9 10px,#e9e9e9 20px )}.list-view-image-placeholder-missing{background:repeating-linear-gradient( 180deg,#d9d9d9,#d9d9d9 10px,#e9e9e9 10px,#e9e9e9 20px )}.list-view-item{min-width:270px;max-width:270px;min-height:520px;max-height:520px;margin:.5rem;margin-bottom:2rem;border-bottom:none!important}.list-view-item-caption{line-height:1.3rem;max-width:300px;font-size:.933rem}.main-container a{color:#8a741d!important}.main-container a:hover{color:#8a741d!important}.pagination{margin-top:4rem}.page-item a{color:#8a741d}.page-item.active a{color:#fff!important;background-color:#8a741d!important;border:1px solid #8a741d!important}.to-lg\:mt-1 svg{margin-left:1rem!important}.grid-view{display:grid;grid-template-columns:1fr 1fr 1fr;gap:50px 10px;justify-items:center}.grid-view-geotag{grid-template-columns:1fr 1fr}.grid-view-item{max-width:320px}.grid-view-geotag .grid-view-item{max-width:500px}.grid-view-search{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px 10px;justify-items:left;margin-left:2rem;margin-bottom:1rem}.grid-view-search-nested{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;justify-items:left;margin-left:2rem;margin-bottom:1rem}.grid-view-search-years{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:5px 10px;justify-items:left;margin-left:2rem}@media(min-width:2048px){.grid-view{grid-template-columns:1fr 1fr 1fr 1fr 1fr}}@media(min-width:1600px){.grid-view{grid-template-columns:1fr 1fr 1fr 1fr}}@media(max-width:1024px){.grid-view{grid-template-columns:1fr 1fr}.grid-view-search{grid-template-columns:1fr 1fr}.grid-view-search-years{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr!important}}@media(max-width:1000px){.grid-view-search-years{grid-template-columns:1fr 1fr 1fr 1fr 1fr!important}}@media(max-width:975px){}@media(max-width:640px){.grid-view{grid-template-columns:1fr}.grid-view-search{grid-template-columns:1fr!important;margin-left:1rem!important}.grid-view-search-years{grid-template-columns:1fr 1fr!important;margin-left:1rem!important}.grid-view-search-nested{grid-template-columns:1fr!important}}@media(max-width:320px){.grid-view{grid-template-columns:1fr}.grid-view-search-years{grid-template-columns:1fr!important}.grid-view-search-nested{grid-template-columns:1fr!important}}@media(max-width:1000px){#random-navi-right{}#random-navi-right:before{opacity:0!important}#random-navi-right a{padding-top:.15rem!important}#search-navi-right{display:none!important}}@media(min-width:320px) and (max-width:800px){.card{margin-bottom:0!important}.card-header small{display:inline!important}.card-header small:before{content:" / "}.card-text{font-size:small!important;line-height:1.4rem!important}.card-sfomuseum-image{margin-bottom:0!important}.card-title{font-size:initial!important}.depicts{font-size:small!important}.image-toggle{margin-bottom:1rem!important;margin-top:1rem!important}.object-title{line-height:1.5rem!important}}@media(min-height:300px){.image-portrait{width:auto!important}}@media(min-width:400px) and (max-width:700px){.image-portrait{width:100%!important}}@media(min-width:320px) and (max-width:500px){body{line-height:auto!important}h2{}.card-header{line-height:1.4rem!important;padding-bottom:0!important}.header-depicts{display:none}.inc_details_blurb{font-size:small!important;line-height:1.4rem!important;margin-top:.5rem}.inline{margin-top:0!important}.inline li{display:block}.inline li:before{content:""}.inline li small{display:block;font-size:small!important}.inline-search{margin:0!important;padding:0!important;background-color:initial!important;line-height:1.4rem}.inline-search li{display:inline!important;padding:0!important;margin:0!important}.inline-search li small{display:inline!important}.inline-search li:before{content:" or ";font-size:small}.pagination-numbered{display:none!important}.results p{font-size:small;line-height:1.4rem}}@media(min-width:375px) and (max-width:400px){.image-details{max-width:350px!important;line-height:1.7rem!important}}@media(min-width:350px) and (max-width:374px){.image-details{max-width:300px!important;line-height:1.7rem!important}}@media(min-width:320px) and (max-width:349px){article{padding-top:0!important}blockquote{font-size:1rem!important}body{margin-left:0!important;margin-right:0!important;font-size:1.1rem!important}footer{padding-bottom:.5rem!important;background-position:0 100%}header h1{font-size:1.1rem!important;margin-bottom:.25rem}pre{max-width:250px;overflow:scroll}ul{margin:0;margin-left:15px;padding:0}#footer-links{position:normal!important;width:100%;height:150px}.card h2{font-size:1.7 rem!important}.creditline{max-width:250px!important;line-height:1.2rem!important}.image-details{max-width:300px!important;line-height:1.7rem!important}.inline li{margin-bottom:0!important}}@media(min-width:320px) and (max-width:349px){article{padding-top:0!important}blockquote{font-size:1rem!important}body{margin-left:0!important;margin-right:0!important;font-size:1.1rem!important}footer{padding-bottom:.5rem!important;background-position:0 100%}header h1{font-size:1.1rem!important;margin-bottom:.25rem}pre{max-width:250px;overflow:scroll}ul{margin:0;margin-left:15px;padding:0}#footer-links{position:normal!important;width:100%;height:150px}.card h2{font-size:1.7 rem!important}.creditline{max-width:250px!important;line-height:1.2rem!important}.image-details{max-width:300px!important;line-height:1.7rem!important}.inline li{margin-bottom:0!important}} \ No newline at end of file +body{background-color:#fff!important}#block-museum-sociallinks{text-align:center!important}#block-museum-menu-footer{justify-content:center;display:grid}#block-museum-copyright{text-align:center!important}#block-mainnavigation-footer a{color:#616161!important}#block-mainnavigation-footer a:hover{color:#616161!important}#block-museum-footerbottom a{color:#616161!important}#block-museum-footerbottom a:hover{color:#616161!important}#header-signin{background-color:#e0c877}#pagination-previous-page{color:#8a741d!important}#pagination-next-page{color:#8a741d!important}#pagination-blurb{display:none;text-align:center;font-size:small;color:#bbb;margin-top:2rem}#summary-label-text{font-weight:700;color:#146e8e!important}.breadcrumb{border:none!important;background-color:initial!important;margin-bottom:0!important;font-size:small}.btn{background-color:#8a741d!important;color:#fff!important;border-radius:0!important;padding:.4rem!important}.card{margin-bottom:1em;border:none!important}.card-admin{font-size:small;font-family:monospace;margin-bottom:0!important;background-color:#ccc;border-radius:0!important;margin-top:4rem}.card-header{border:none!important;background-color:initial!important}.card-header-sub{display:block;font-size:.933rem!important;margin-top:.5rem;line-height:1.3rem}.card-header small{display:block;font-size:.85rem;margin-top:.5rem;line-height:1.3rem}.card-img-top{border-top-left-radius:0!important;border-top-right-radius:0!important;display:block!important;margin-left:auto!important;margin-right:auto!important;width:auto!important;max-width:-moz-available!important;max-width:-webkit-available!important;max-width:available!important}.card-footer{background-color:initial!important;border:none!important}.card-sfomuseum-image{border:none!important;padding-top:.75rem!important}.caveat-map{font-size:.9rem;line-height:1.3rem;margin-bottom:2rem;font-style:italic}.creditline{font-size:small;font-style:italic;width:640px;margin:0 auto;margin-bottom:2rem}.hey-look{font-weight:700}.image-attribution{line-height:1.2rem!important;font-size:.6rem!important}.image-creditline{font-size:small;line-height:1.3rem;margin-top:.5rem}.image-details{margin-top:1rem}.image-single{max-height:270px!important;max-width:270px!important}.image-toggle{margin-top:2rem;margin-bottom:1.5rem;text-align:center;display:block}.image-toggle button{border:solid thin;font-size:small;background-color:initial;display:inline}.image-tiles .leaflet-control-attribution{display:none}.inc_details_blurb{font-size:small!important;line-height:1.3rem}.inc_details_item{text-decoration:underline;padding-top:.3rem}.image-map .feature-map{max-height:500px!important}.inline{background-color:#ededed;padding:2rem!important;padding-top:1rem!important;padding-bottom:1.5rem!important;display:inline-block!important}.inline li{display:inline;padding:0!important;margin:0!important;color:#666}.inline li:before{// content: ", ";content:" and ";color:#666;// border: 1px solid red}.inline li:first-child:before{content:""!important}.inline-refine{width:100%!important;background-color:#fff!important}.inline-refine li:before{content:""!important}.inline-refine li{margin-right:1rem!important}.leaflet-div-icon{border:none!important;background-color:initial!important}.list-view{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.list-view-still{height:355px}.list-view-still img{max-height:270px!important}.list-view-image-placeholder{min-height:270px;min-width:270px;max-height:270px;max-width:270px;margin:0 auto;margin-bottom:1rem;background-color:#ccc;background:repeating-linear-gradient( 45deg,#d9d9d9,#d9d9d9 10px,#e9e9e9 10px,#e9e9e9 20px )}.list-view-image-placeholder-missing{background:repeating-linear-gradient( 180deg,#d9d9d9,#d9d9d9 10px,#e9e9e9 10px,#e9e9e9 20px )}.list-view-item{min-width:270px;max-width:270px;min-height:520px;max-height:520px;margin:.5rem;margin-bottom:2rem;border-bottom:none!important}.list-view-item-caption{line-height:1.3rem;max-width:300px;font-size:.933rem}.main-container a{color:#8a741d!important}.main-container a:hover{color:#8a741d!important}.pagination{margin-top:4rem}.page-item a{color:#8a741d}.page-item.active a{color:#fff!important;background-color:#8a741d!important;border:1px solid #8a741d!important}.sf-main .pin-t16{top:initial!important}.to-lg\:mt-1 svg{margin-left:1rem!important}.grid-view{display:grid;grid-template-columns:1fr 1fr 1fr;gap:50px 10px;justify-items:center}.grid-view-geotag{grid-template-columns:1fr 1fr}.grid-view-item{max-width:320px}.grid-view-geotag .grid-view-item{max-width:500px}.grid-view-search{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px 10px;justify-items:left;margin-left:2rem;margin-bottom:1rem}.grid-view-search-nested{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;justify-items:left;margin-left:2rem;margin-bottom:1rem}.grid-view-search-years{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:5px 10px;justify-items:left;margin-left:2rem}@media(min-width:2048px){.grid-view{grid-template-columns:1fr 1fr 1fr 1fr 1fr}}@media(min-width:1600px){.grid-view{grid-template-columns:1fr 1fr 1fr 1fr}}@media(max-width:1024px){.grid-view{grid-template-columns:1fr 1fr}.grid-view-search{grid-template-columns:1fr 1fr}.grid-view-search-years{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr!important}}@media(max-width:1000px){.grid-view-search-years{grid-template-columns:1fr 1fr 1fr 1fr 1fr!important}}@media(max-width:975px){}@media(max-width:640px){.grid-view{grid-template-columns:1fr}.grid-view-search{grid-template-columns:1fr!important;margin-left:1rem!important}.grid-view-search-years{grid-template-columns:1fr 1fr!important;margin-left:1rem!important}.grid-view-search-nested{grid-template-columns:1fr!important}}@media(max-width:320px){.grid-view{grid-template-columns:1fr}.grid-view-search-years{grid-template-columns:1fr!important}.grid-view-search-nested{grid-template-columns:1fr!important}}@media(max-width:1000px){#random-navi-right{}#random-navi-right:before{opacity:0!important}#random-navi-right a{padding-top:.15rem!important}#search-navi-right{display:none!important}}@media(min-width:320px) and (max-width:800px){.card{margin-bottom:0!important}.card-header small{display:inline!important}.card-header small:before{content:" / "}.card-text{font-size:small!important;line-height:1.4rem!important}.card-sfomuseum-image{margin-bottom:0!important}.card-title{font-size:initial!important}.depicts{font-size:small!important}.image-toggle{margin-bottom:1rem!important;margin-top:1rem!important}.object-title{line-height:1.5rem!important}}@media(min-height:300px){.image-portrait{width:auto!important}}@media(min-width:400px) and (max-width:700px){.image-portrait{width:100%!important}}@media(min-width:320px) and (max-width:500px){body{line-height:auto!important}h2{}.card-header{line-height:1.4rem!important;padding-bottom:0!important}.header-depicts{display:none}.inc_details_blurb{font-size:small!important;line-height:1.4rem!important;margin-top:.5rem}.inline{margin-top:0!important}.inline li{display:block}.inline li:before{content:""}.inline li small{display:block;font-size:small!important}.inline-search{margin:0!important;padding:0!important;background-color:initial!important;line-height:1.4rem}.inline-search li{display:inline!important;padding:0!important;margin:0!important}.inline-search li small{display:inline!important}.inline-search li:before{content:" or ";font-size:small}.pagination-numbered{display:none!important}.results p{font-size:small;line-height:1.4rem}}@media(min-width:375px) and (max-width:400px){.image-details{max-width:350px!important;line-height:1.7rem!important}}@media(min-width:350px) and (max-width:374px){.image-details{max-width:300px!important;line-height:1.7rem!important}}@media(min-width:320px) and (max-width:349px){article{padding-top:0!important}blockquote{font-size:1rem!important}body{margin-left:0!important;margin-right:0!important;font-size:1.1rem!important}footer{padding-bottom:.5rem!important;background-position:0 100%}header h1{font-size:1.1rem!important;margin-bottom:.25rem}pre{max-width:250px;overflow:scroll}ul{margin:0;margin-left:15px;padding:0}#footer-links{position:normal!important;width:100%;height:150px}.card h2{font-size:1.7 rem!important}.creditline{max-width:250px!important;line-height:1.2rem!important}.image-details{max-width:300px!important;line-height:1.7rem!important}.inline li{margin-bottom:0!important}}@media(min-width:320px) and (max-width:349px){article{padding-top:0!important}blockquote{font-size:1rem!important}body{margin-left:0!important;margin-right:0!important;font-size:1.1rem!important}footer{padding-bottom:.5rem!important;background-position:0 100%}header h1{font-size:1.1rem!important;margin-bottom:.25rem}pre{max-width:250px;overflow:scroll}ul{margin:0;margin-left:15px;padding:0}#footer-links{position:normal!important;width:100%;height:150px}.card h2{font-size:1.7 rem!important}.creditline{max-width:250px!important;line-height:1.2rem!important}.image-details{max-width:300px!important;line-height:1.7rem!important}.inline li{margin-bottom:0!important}} \ No newline at end of file diff --git a/vendor/github.com/aaronland/go-http-server/lambda_functionurl.go b/vendor/github.com/aaronland/go-http-server/lambda_functionurl.go index 280c806..4c0ddad 100644 --- a/vendor/github.com/aaronland/go-http-server/lambda_functionurl.go +++ b/vendor/github.com/aaronland/go-http-server/lambda_functionurl.go @@ -11,7 +11,7 @@ import ( "net/http/httptest" "net/url" "strings" - + "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) @@ -24,7 +24,7 @@ func init() { // LambdaFunctionURLServer implements the `Server` interface for a use in a AWS LambdaFunctionURL + API Gateway context. type LambdaFunctionURLServer struct { Server - handler http.Handler + handler http.Handler binaryContentTypes map[string]bool } @@ -36,7 +36,7 @@ type LambdaFunctionURLServer struct { // Valid parameters are: // * `binary_type={MIMETYPE}` One or more mimetypes to be served by AWS FunctionURLs as binary content types. func NewLambdaFunctionURLServer(ctx context.Context, uri string) (Server, error) { - + u, err := url.Parse(uri) if err != nil { @@ -46,15 +46,15 @@ func NewLambdaFunctionURLServer(ctx context.Context, uri string) (Server, error) q := u.Query() binary_types := make(map[string]bool) - + for _, t := range q["binary_type"] { binary_types[t] = true } - + server := LambdaFunctionURLServer{ binaryContentTypes: binary_types, } - + return &server, nil } @@ -91,7 +91,7 @@ func (s *LambdaFunctionURLServer) handleRequest(ctx context.Context, request eve event_rsp := events.LambdaFunctionURLResponse{ StatusCode: rsp.StatusCode, - Headers: event_rsp_headers, + Headers: event_rsp_headers, } content_type := rsp.Header.Get("Content-Type") @@ -102,7 +102,7 @@ func (s *LambdaFunctionURLServer) handleRequest(ctx context.Context, request eve } else { event_rsp.Body = rec.Body.String() } - + return event_rsp, nil } diff --git a/vendor/github.com/aws/aws-lambda-go/events/README_S3_Object_Lambda.md b/vendor/github.com/aws/aws-lambda-go/events/README_S3_Object_Lambda.md index 2166cb9..f9ae1a7 100644 --- a/vendor/github.com/aws/aws-lambda-go/events/README_S3_Object_Lambda.md +++ b/vendor/github.com/aws/aws-lambda-go/events/README_S3_Object_Lambda.md @@ -21,7 +21,7 @@ import ( ) func handler(ctx context.Context, event events.S3ObjectLambdaEvent) error { - url := event.GetObjectContext.InputS3Url + url := event.GetObjectContext.InputS3URL resp, err := http.Get(url) if err != nil { return err diff --git a/vendor/github.com/aws/aws-lambda-go/events/apigw.go b/vendor/github.com/aws/aws-lambda-go/events/apigw.go index 04ac73f..7999876 100644 --- a/vendor/github.com/aws/aws-lambda-go/events/apigw.go +++ b/vendor/github.com/aws/aws-lambda-go/events/apigw.go @@ -133,63 +133,65 @@ type APIGatewayV2HTTPResponse struct { // APIGatewayRequestIdentity contains identity information for the request caller. type APIGatewayRequestIdentity struct { - CognitoIdentityPoolID string `json:"cognitoIdentityPoolId"` - AccountID string `json:"accountId"` - CognitoIdentityID string `json:"cognitoIdentityId"` - Caller string `json:"caller"` - APIKey string `json:"apiKey"` - APIKeyID string `json:"apiKeyId"` - AccessKey string `json:"accessKey"` + CognitoIdentityPoolID string `json:"cognitoIdentityPoolId,omitempty"` + AccountID string `json:"accountId,omitempty"` + CognitoIdentityID string `json:"cognitoIdentityId,omitempty"` + Caller string `json:"caller,omitempty"` + APIKey string `json:"apiKey,omitempty"` + APIKeyID string `json:"apiKeyId,omitempty"` + AccessKey string `json:"accessKey,omitempty"` SourceIP string `json:"sourceIp"` - CognitoAuthenticationType string `json:"cognitoAuthenticationType"` - CognitoAuthenticationProvider string `json:"cognitoAuthenticationProvider"` - UserArn string `json:"userArn"` //nolint: stylecheck + CognitoAuthenticationType string `json:"cognitoAuthenticationType,omitempty"` + CognitoAuthenticationProvider string `json:"cognitoAuthenticationProvider,omitempty"` + UserArn string `json:"userArn,omitempty"` //nolint: stylecheck UserAgent string `json:"userAgent"` - User string `json:"user"` + User string `json:"user,omitempty"` } // APIGatewayWebsocketProxyRequest contains data coming from the API Gateway proxy type APIGatewayWebsocketProxyRequest struct { - Resource string `json:"resource"` // The resource path defined in API Gateway - Path string `json:"path"` // The url path for the caller + Resource string `json:"resource,omitempty"` // The resource path defined in API Gateway + Path string `json:"path,omitempty"` // The url path for the caller HTTPMethod string `json:"httpMethod,omitempty"` - Headers map[string]string `json:"headers"` - MultiValueHeaders map[string][]string `json:"multiValueHeaders"` - QueryStringParameters map[string]string `json:"queryStringParameters"` - MultiValueQueryStringParameters map[string][]string `json:"multiValueQueryStringParameters"` - PathParameters map[string]string `json:"pathParameters"` - StageVariables map[string]string `json:"stageVariables"` + Headers map[string]string `json:"headers,omitempty"` + MultiValueHeaders map[string][]string `json:"multiValueHeaders,omitempty"` + QueryStringParameters map[string]string `json:"queryStringParameters,omitempty"` + MultiValueQueryStringParameters map[string][]string `json:"multiValueQueryStringParameters,omitempty"` + PathParameters map[string]string `json:"pathParameters,omitempty"` + StageVariables map[string]string `json:"stageVariables,omitempty"` RequestContext APIGatewayWebsocketProxyRequestContext `json:"requestContext"` - Body string `json:"body"` - IsBase64Encoded bool `json:"isBase64Encoded,omitempty"` + Body string `json:"body,omitempty"` + IsBase64Encoded bool `json:"isBase64Encoded"` } // APIGatewayWebsocketProxyRequestContext contains the information to identify // the AWS account and resources invoking the Lambda function. It also includes // Cognito identity information for the caller. type APIGatewayWebsocketProxyRequestContext struct { - AccountID string `json:"accountId"` - ResourceID string `json:"resourceId"` - Stage string `json:"stage"` - RequestID string `json:"requestId"` - Identity APIGatewayRequestIdentity `json:"identity"` - ResourcePath string `json:"resourcePath"` - Authorizer interface{} `json:"authorizer"` - HTTPMethod string `json:"httpMethod"` - APIID string `json:"apiId"` // The API Gateway rest API Id - ConnectedAt int64 `json:"connectedAt"` - ConnectionID string `json:"connectionId"` - DomainName string `json:"domainName"` - Error string `json:"error"` - EventType string `json:"eventType"` - ExtendedRequestID string `json:"extendedRequestId"` - IntegrationLatency string `json:"integrationLatency"` - MessageDirection string `json:"messageDirection"` - MessageID interface{} `json:"messageId"` - RequestTime string `json:"requestTime"` - RequestTimeEpoch int64 `json:"requestTimeEpoch"` - RouteKey string `json:"routeKey"` - Status string `json:"status"` + AccountID string `json:"accountId,omitempty"` + ResourceID string `json:"resourceId,omitempty"` + Stage string `json:"stage"` + RequestID string `json:"requestId"` + Identity APIGatewayRequestIdentity `json:"identity"` + ResourcePath string `json:"resourcePath,omitempty"` + Authorizer interface{} `json:"authorizer,omitempty"` + HTTPMethod string `json:"httpMethod,omitempty"` + APIID string `json:"apiId"` // The API Gateway rest API Id + ConnectedAt int64 `json:"connectedAt"` + ConnectionID string `json:"connectionId"` + DomainName string `json:"domainName"` + Error string `json:"error,omitempty"` + EventType string `json:"eventType"` + ExtendedRequestID string `json:"extendedRequestId"` + IntegrationLatency string `json:"integrationLatency,omitempty"` + MessageDirection string `json:"messageDirection"` + MessageID interface{} `json:"messageId,omitempty"` + RequestTime string `json:"requestTime"` + RequestTimeEpoch int64 `json:"requestTimeEpoch"` + RouteKey string `json:"routeKey"` + Status string `json:"status,omitempty"` + DisconnectStatusCode int64 `json:"disconnectStatusCode,omitempty"` + DisconnectReason *string `json:"disconnectReason,omitempty"` } // APIGatewayCustomAuthorizerRequestTypeRequestIdentity contains identity information for the request caller including certificate information if using mTLS. diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go index 2466ae3..7a96eae 100644 --- a/vendor/golang.org/x/net/html/doc.go +++ b/vendor/golang.org/x/net/html/doc.go @@ -99,20 +99,14 @@ Care should be taken when parsing and interpreting HTML, whether full documents or fragments, within the framework of the HTML specification, especially with regard to untrusted inputs. -This package provides both a tokenizer and a parser, which implement the -tokenization, and tokenization and tree construction stages of the WHATWG HTML -parsing specification respectively. While the tokenizer parses and normalizes -individual HTML tokens, only the parser constructs the DOM tree from the -tokenized HTML, as described in the tree construction stage of the -specification, dynamically modifying or extending the docuemnt's DOM tree. - -If your use case requires semantically well-formed HTML documents, as defined by -the WHATWG specification, the parser should be used rather than the tokenizer. - -In security contexts, if trust decisions are being made using the tokenized or -parsed content, the input must be re-serialized (for instance by using Render or -Token.String) in order for those trust decisions to hold, as the process of -tokenization or parsing may alter the content. +This package provides both a tokenizer and a parser. Only the parser constructs +a DOM according to the HTML specification, resolving malformed and misplaced +tags where appropriate. The tokenizer simply tokenizes the HTML presented to it, +and as such does not resolve issues that may exist in the processed HTML, +producing a literal interpretation of the input. + +If your use case requires semantically well-formed HTML, as defined by the +WHATWG specifiction, the parser should be used rather than the tokenizer. */ package html // import "golang.org/x/net/html" diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go index e8c1233..8b28031 100644 --- a/vendor/golang.org/x/net/html/render.go +++ b/vendor/golang.org/x/net/html/render.go @@ -194,8 +194,9 @@ func render1(w writer, n *Node) error { } } - // Render any child nodes - if childTextNodesAreLiteral(n) { + // Render any child nodes. + switch n.Data { + case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": for c := n.FirstChild; c != nil; c = c.NextSibling { if c.Type == TextNode { if _, err := w.WriteString(c.Data); err != nil { @@ -212,7 +213,7 @@ func render1(w writer, n *Node) error { // last element in the file, with no closing tag. return plaintextAbort } - } else { + default: for c := n.FirstChild; c != nil; c = c.NextSibling { if err := render1(w, c); err != nil { return err @@ -230,27 +231,6 @@ func render1(w writer, n *Node) error { return w.WriteByte('>') } -func childTextNodesAreLiteral(n *Node) bool { - // Per WHATWG HTML 13.3, if the parent of the current node is a style, - // script, xmp, iframe, noembed, noframes, or plaintext element, and the - // current node is a text node, append the value of the node's data - // literally. The specification is not explicit about it, but we only - // enforce this if we are in the HTML namespace (i.e. when the namespace is - // ""). - // NOTE: we also always include noscript elements, although the - // specification states that they should only be rendered as such if - // scripting is enabled for the node (which is not something we track). - if n.Namespace != "" { - return false - } - switch n.Data { - case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": - return true - default: - return false - } -} - // writeQuoted writes s to w surrounded by quotes. Normally it will use double // quotes, but if s contains a double quote, it will use single quotes. // It is used for writing the identifiers in a doctype declaration. diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go index 3c57880..5c2a1f4 100644 --- a/vendor/golang.org/x/net/html/token.go +++ b/vendor/golang.org/x/net/html/token.go @@ -910,16 +910,10 @@ func (z *Tokenizer) readTagAttrKey() { return } switch c { - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name - // begins, we treat it as a character in the attribute name and continue. - continue - } - fallthrough - case ' ', '\n', '\r', '\t', '\f', '/', '>': - // WHATWG 13.2.5.33 Attribute name state - // We need to reconsume the char in the after attribute name state to support the / character + case ' ', '\n', '\r', '\t', '\f', '/': + z.pendingAttr[0].end = z.raw.end - 1 + return + case '=', '>': z.raw.end-- z.pendingAttr[0].end = z.raw.end return @@ -938,11 +932,6 @@ func (z *Tokenizer) readTagAttrVal() { if z.err != nil { return } - if c == '/' { - // WHATWG 13.2.5.34 After attribute name state - // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. - return - } if c != '=' { z.raw.end-- return diff --git a/vendor/modules.txt b/vendor/modules.txt index 26d9678..4ef832b 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -5,7 +5,7 @@ github.com/aaronland/go-http-bootstrap/static # github.com/aaronland/go-http-rewrite v1.1.0 ## explicit; go 1.18 github.com/aaronland/go-http-rewrite -# github.com/aaronland/go-http-server v1.4.1 +# github.com/aaronland/go-http-server v1.5.0 ## explicit; go 1.22 github.com/aaronland/go-http-server # github.com/aaronland/go-http-static v0.0.3 @@ -17,7 +17,7 @@ github.com/aaronland/go-roster # github.com/akrylysov/algnhsa v1.1.0 ## explicit; go 1.18 github.com/akrylysov/algnhsa -# github.com/aws/aws-lambda-go v1.46.0 +# github.com/aws/aws-lambda-go v1.47.0 ## explicit; go 1.18 github.com/aws/aws-lambda-go/events github.com/aws/aws-lambda-go/lambda @@ -61,7 +61,7 @@ github.com/tidwall/match # github.com/tidwall/pretty v1.2.0 ## explicit; go 1.16 github.com/tidwall/pretty -# golang.org/x/net v0.23.0 -## explicit; go 1.18 +# golang.org/x/net v0.8.0 +## explicit; go 1.17 golang.org/x/net/html golang.org/x/net/html/atom