diff --git a/deno.json b/deno.json index ef687157da0..93068a35fc4 100644 --- a/deno.json +++ b/deno.json @@ -54,7 +54,7 @@ "@types/node": "npm:@types/node@^24.3.0", "@types/pg": "npm:@types/pg@^8.15.5", "@types/prismjs": "npm:@types/prismjs@^1.26.5", - "docsearch": "https://esm.sh/@docsearch/js@3.5.2?target=es2020", + "docsearch": "npm:@docsearch/js@^3.5.2", "esbuild": "npm:esbuild@0.25.7", "esbuild-wasm": "npm:esbuild-wasm@0.25.7", "fresh": "jsr:@fresh/core@^2.0.0", @@ -91,7 +91,7 @@ "@std/front-matter": "jsr:@std/front-matter@^1.0.5", "github-slugger": "npm:github-slugger@^2.0.0", - "imagescript": "https://deno.land/x/imagescript@1.3.0/mod.ts", + "imagescript": "jsr:@matmen/imagescript@^1.3.0", "marked": "npm:marked@^15.0.11", "marked-mangle": "npm:marked-mangle@^1.1.9", "prismjs": "npm:prismjs@^1.29.0", diff --git a/deno.lock b/deno.lock index 35af7ce1d5a..268b1982511 100644 --- a/deno.lock +++ b/deno.lock @@ -14,6 +14,7 @@ "jsr:@fresh/core@2": "2.2.0", "jsr:@marvinh-test/fresh-island@^0.0.3": "0.0.3", "jsr:@marvinh-test/import-json@^0.0.1": "0.0.1", + "jsr:@matmen/imagescript@^1.3.0": "1.3.1", "jsr:@std/assert@^1.0.14": "1.0.16", "jsr:@std/assert@^1.0.15": "1.0.16", "jsr:@std/async@1": "1.0.16", @@ -71,6 +72,7 @@ "jsr:@zip-js/zip-js@^2.7.52": "2.8.13", "npm:@babel/core@^7.28.0": "7.28.5", "npm:@babel/preset-react@^7.27.1": "7.28.5_@babel+core@7.28.5", + "npm:@docsearch/js@^3.5.2": "3.9.0_@algolia+client-search@5.50.0_search-insights@2.17.3", "npm:@opentelemetry/api@^1.9.0": "1.9.0", "npm:@preact/signals@2": "2.5.1_preact@10.29.0", "npm:@preact/signals@^2.2.1": "2.5.1_preact@10.29.0", @@ -226,6 +228,9 @@ "@marvinh-test/import-json@0.0.1": { "integrity": "12d3030cfb8406b71ea798249fee12f8617cb1259748092638a05b72a7727fcf" }, + "@matmen/imagescript@1.3.1": { + "integrity": "8b3d4fc6a4597259ede419497c7dce9cc523bfdc0fa25f95a33dfab2135cc59b" + }, "@std/assert@1.0.16": { "integrity": "6a7272ed1eaa77defe76e5ff63ca705d9c495077e2d5fd0126d2b53fc5bd6532", "dependencies": [ @@ -392,6 +397,146 @@ } }, "npm": { + "@algolia/abtesting@1.16.0": { + "integrity": "sha512-alHFZ68/i9qLC/muEB07VQ9r7cB8AvCcGX6dVQi2PNHhc/ZQRmmFAv8KK1ay4UiseGSFr7f0nXBKsZ/jRg7e4g==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/autocomplete-core@1.17.9_@algolia+client-search@5.50.0_algoliasearch@5.50.0_search-insights@2.17.3": { + "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "dependencies": [ + "@algolia/autocomplete-plugin-algolia-insights", + "@algolia/autocomplete-shared" + ] + }, + "@algolia/autocomplete-plugin-algolia-insights@1.17.9_search-insights@2.17.3_@algolia+client-search@5.50.0_algoliasearch@5.50.0": { + "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "dependencies": [ + "@algolia/autocomplete-shared", + "search-insights" + ] + }, + "@algolia/autocomplete-preset-algolia@1.17.9_@algolia+client-search@5.50.0_algoliasearch@5.50.0": { + "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "dependencies": [ + "@algolia/autocomplete-shared", + "@algolia/client-search", + "algoliasearch" + ] + }, + "@algolia/autocomplete-shared@1.17.9_@algolia+client-search@5.50.0_algoliasearch@5.50.0": { + "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "dependencies": [ + "@algolia/client-search", + "algoliasearch" + ] + }, + "@algolia/client-abtesting@5.50.0": { + "integrity": "sha512-mfgUdLQNxOAvCZUGzPQxjahEWEPuQkKlV0ZtGmePOa9ZxIQZlk31vRBNbM6ScU8jTH41SCYE77G/lCifDr1SVw==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/client-analytics@5.50.0": { + "integrity": "sha512-5mjokeKYyPaP3Q8IYJEnutI+O4dW/Ixxx5IgsSxT04pCfGqPXxTOH311hTQxyNpcGGEOGrMv8n8Z+UMTPamioQ==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/client-common@5.50.0": { + "integrity": "sha512-emtOvR6dl3rX3sBJXXbofMNHU1qMQqQSWu319RMrNL5BWoBqyiq7y0Zn6cjJm7aGHV/Qbf+KCCYeWNKEMPI3BQ==" + }, + "@algolia/client-insights@5.50.0": { + "integrity": "sha512-IerGH2/hcj/6bwkpQg/HHRqmlGN1XwygQWythAk0gZFBrghs9danJaYuSS3ShzLSVoIVth4jY5GDPX9Lbw5cgg==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/client-personalization@5.50.0": { + "integrity": "sha512-3idPJeXn5L0MmgP9jk9JJqblrQ/SguN93dNK9z9gfgyupBhHnJMOEjrRYcVgTIfvG13Y04wO+Q0FxE2Ut8PVbA==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/client-query-suggestions@5.50.0": { + "integrity": "sha512-q7qRoWrQK1a8m5EFQEmPlo7+pg9mVQ8X5jsChtChERre0uS2pdYEDixBBl0ydBSGkdGbLUDufcACIhH/077E4g==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/client-search@5.50.0": { + "integrity": "sha512-Jc360x4yqb3eEg4OY4KEIdGePBxZogivKI+OGIU8aLXgAYPTECvzeOBc90312yHA1hr3AeRlAFl0rIc8lQaIrQ==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/ingestion@1.50.0": { + "integrity": "sha512-OS3/Viao+NPpyBbEY3tf6hLewppG+UclD+9i0ju56mq2DrdMJFCkEky6Sk9S5VPcbLzxzg3BqBX6u9Q35w19aQ==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/monitoring@1.50.0": { + "integrity": "sha512-/znwgSiGufpbJVIoDmeQaHtTq+OMdDawFRbMSJVv+12n79hW+qdQXS8/Uu3BD3yn0BzgVFJEvrsHrCsInZKdhw==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/recommend@5.50.0": { + "integrity": "sha512-dHjUfu4jfjdQiKDpCpAnM7LP5yfG0oNShtfpF5rMCel6/4HIoqJ4DC4h5GKDzgrvJYtgAhblo0AYBmOM00T+lQ==", + "dependencies": [ + "@algolia/client-common", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, + "@algolia/requester-browser-xhr@5.50.0": { + "integrity": "sha512-bffIbUljAWnh/Ctu5uScORajuUavqmZ0ACYd1fQQeSSYA9NNN83ynO26pSc2dZRXpSK0fkc1//qSSFXMKGu+aw==", + "dependencies": [ + "@algolia/client-common" + ] + }, + "@algolia/requester-fetch@5.50.0": { + "integrity": "sha512-y0EwNvPGvkM+yTAqqO6Gpt9wVGm3CLDtpLvNEiB3VGvN3WzfkjZGtLUsG/ru2kVJIIU7QcV0puuYgEpBeFxcJg==", + "dependencies": [ + "@algolia/client-common" + ] + }, + "@algolia/requester-node-http@5.50.0": { + "integrity": "sha512-xpwefe4fCOWnZgXCbkGpqQY6jgBSCf2hmgnySbyzZIccrv3SoashHKGPE4x6vVG+gdHrGciMTAcDo9HOZwH22Q==", + "dependencies": [ + "@algolia/client-common" + ] + }, "@alloc/quick-lru@5.2.0": { "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" }, @@ -576,6 +721,29 @@ "@babel/helper-validator-identifier" ] }, + "@docsearch/css@3.9.0": { + "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==" + }, + "@docsearch/js@3.9.0_@algolia+client-search@5.50.0_search-insights@2.17.3": { + "integrity": "sha512-4bKHcye6EkLgRE8ze0vcdshmEqxeiJM77M0JXjef7lrYZfSlMunrDOCqyLjiZyo1+c0BhUqA2QpFartIjuHIjw==", + "dependencies": [ + "@docsearch/react", + "preact" + ] + }, + "@docsearch/react@3.9.0_search-insights@2.17.3_@algolia+client-search@5.50.0": { + "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "dependencies": [ + "@algolia/autocomplete-core", + "@algolia/autocomplete-preset-algolia", + "@docsearch/css", + "algoliasearch", + "search-insights" + ], + "optionalPeers": [ + "search-insights" + ] + }, "@esbuild/aix-ppc64@0.25.7": { "integrity": "sha512-uD0kKFHh6ETr8TqEtaAcV+dn/2qnYbH/+8wGEdY70Qf7l1l/jmBUbrmQqwiPKAQE6cOQ7dTj6Xr0HzQDGHyceQ==", "os": ["aix"], @@ -2033,6 +2201,25 @@ "@types/qs@6.14.0": { "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==" }, + "algoliasearch@5.50.0": { + "integrity": "sha512-yE5I83Q2s8euVou8Y3feXK08wyZInJWLYXgWO6Xti9jBUEZAGUahyeQ7wSZWkifLWVnQVKEz5RAmBlXG5nqxog==", + "dependencies": [ + "@algolia/abtesting", + "@algolia/client-abtesting", + "@algolia/client-analytics", + "@algolia/client-common", + "@algolia/client-insights", + "@algolia/client-personalization", + "@algolia/client-query-suggestions", + "@algolia/client-search", + "@algolia/ingestion", + "@algolia/monitoring", + "@algolia/recommend", + "@algolia/requester-browser-xhr", + "@algolia/requester-fetch", + "@algolia/requester-node-http" + ] + }, "ansi-regex@5.0.1": { "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, @@ -3565,6 +3752,9 @@ "scheduler@0.26.0": { "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" }, + "search-insights@2.17.3": { + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==" + }, "semver@6.3.1": { "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": true @@ -3982,36 +4172,6 @@ "https://deno.land/x/case@2.1.1/vendor/camelCaseRegexp.ts": "7d9ff02aad4ab6429eeab7c7353f7bcdd6cc5909a8bd3dda97918c8bbb7621ae", "https://deno.land/x/case@2.1.1/vendor/camelCaseUpperRegexp.ts": "292de54a698370f90adcdf95727993d09888b7f33d17f72f8e54ba75f7791787", "https://deno.land/x/case@2.1.1/vendor/nonWordRegexp.ts": "c1a052629a694144b48c66b0175a22a83f4d61cb40f4e45293fc5d6b123f927e", - "https://deno.land/x/imagescript@1.3.0/ImageScript.js": "cf90773c966031edd781ed176c598f7ed495e7694cd9b86c986d2d97f783cca0", - "https://deno.land/x/imagescript@1.3.0/mod.ts": "18a6cb83c55e690c873505f6fe867364c678afb64934fe7aef593a6b92f79995", - "https://deno.land/x/imagescript@1.3.0/png/src/crc.mjs": "5cf50de181d61dd00e66a240d811018ba5070afa8bba302f393604404604de84", - "https://deno.land/x/imagescript@1.3.0/png/src/mem.mjs": "4968d400dae069b4bf0ef4767c1802fd2cc7d15d90eda4cfadf5b4cd19b96c6d", - "https://deno.land/x/imagescript@1.3.0/png/src/png.mjs": "96ef0ceff1b5a6cd9304749e5f187b4ab238509fb5f9a8be8ee934240271ed8d", - "https://deno.land/x/imagescript@1.3.0/png/src/zlib.mjs": "9867dc3fab1d31b664f9344b0d7e977f493d9c912a76c760d012ed2b89f7061c", - "https://deno.land/x/imagescript@1.3.0/utils/buffer.js": "952cb1beb8827e50a493a5d1f29a4845e8c648789406d389dd51f51205ba02d8", - "https://deno.land/x/imagescript@1.3.0/utils/crc32.js": "573d6222b3605890714ebc374e687ec2aa3e9a949223ea199483e47ca4864f7d", - "https://deno.land/x/imagescript@1.3.0/utils/png.js": "fbed9117e0a70602645d70df9c103ff6e79c03e987bd5c1685dcb4200729b6de", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/font.js": "9e75d842608c057045698d6a7cdf5ffd27241b5cdea0391c89a1917b31294524", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/gif.js": "8b86f7b96486bb8ff50fbc7c7487f86cb5cef85e6acd71e1def78a1aa2f12e4f", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/jpeg.js": "75295e2fcf96b4f7bb894b3844fdaa8140d63169d28b466b5d5be89d59a7b6e6", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/png.js": "0659536a8dd8f892c8346e268b2754b4414fad0ec1e9794dfcde1ba1c804ee02", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/svg.js": "f5c8a9d1977b51a7c07549ceb6bbbaca9497321a193f28b3dc229a42d91bcf14", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/tiff.js": "c2d7bdaef094df25aae1752e75167f485e89275d76a1379e39d8949580b7af4f", - "https://deno.land/x/imagescript@1.3.0/utils/wasm/zlib.js": "749875f83abffe24d3b977475a0cbd5f9b52bee1fbdbef61ec183cbfc17805f6", - "https://deno.land/x/imagescript@1.3.0/v2/framebuffer.mjs": "add44ff184636659714b3c6d4b896f628545451abffbc30b5bcc2e8d9a73d012", - "https://deno.land/x/imagescript@1.3.0/v2/ops/blur.mjs": "80716f1ffab8a2aeb54a036f583bf51a2b9dd37e005adc000add803df8e8a12f", - "https://deno.land/x/imagescript@1.3.0/v2/ops/color.mjs": "5e72cdcbf97dc939a2795223f01e3cb0544c0c56b03ea2aa026050df58348814", - "https://deno.land/x/imagescript@1.3.0/v2/ops/crop.mjs": "69431fa6f687fd9f0c31eff0ec27d7ac925275005e53a37f0c3fab4cc4d9a9ea", - "https://deno.land/x/imagescript@1.3.0/v2/ops/fill.mjs": "cf1b9488314753fbc9ebf03410ac74c2a34ea5a69fb6892cd6e8366cd1930d93", - "https://deno.land/x/imagescript@1.3.0/v2/ops/flip.mjs": "825a34a66567dcf15e76a719f1bf2f66fb106503cd69942292b1b0ae05c5718e", - "https://deno.land/x/imagescript@1.3.0/v2/ops/index.mjs": "423ba687119be2bba8cec72890577d3afa3621b6b8108912242fe937a183f2aa", - "https://deno.land/x/imagescript@1.3.0/v2/ops/iterator.mjs": "c2adf3d90ce00719a02c48c97634574176a3501ff026676259bd71aa8f5d69b9", - "https://deno.land/x/imagescript@1.3.0/v2/ops/overlay.mjs": "7e6e2c2ffd25006d52597ab8babc5f8f503d388a3fdf2fbc0eaea02799a020c9", - "https://deno.land/x/imagescript@1.3.0/v2/ops/resize.mjs": "814e78ebce8eaf8f1f918688db7b52a141405e06a36ed4b25d04413d69e7d17b", - "https://deno.land/x/imagescript@1.3.0/v2/ops/rotate.mjs": "a1b65616717bd2eed8db406affea3263b4674dada46b56441ef38167a187455d", - "https://deno.land/x/imagescript@1.3.0/v2/util/mem.mjs": "4968d400dae069b4bf0ef4767c1802fd2cc7d15d90eda4cfadf5b4cd19b96c6d", - "https://esm.sh/@docsearch/js@3.5.2/es2020/js.mjs": "964600b3c133bccfa6a5ffa240e8272a08eeff22f5fea6993aa085cfc9e4d750", - "https://esm.sh/@docsearch/js@3.5.2?target=es2020": "4bad084f771a1923fe042ece62a9078f482f8642cb0b1acb890905e58586fee7", "https://raw.githubusercontent.com/denoland/ga4/main/mod.ts": "36f72ba1c90b5ebdb811427f367cd95fa6772d2de2fb45d6e57550501ee6d476", "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/check_docs.ts": "7b87b9503a45f9a197382fbc308637d16906918653628a9ab4bc7388938c851b", "https://raw.githubusercontent.com/denoland/std/refs/heads/main/_tools/utils.ts": "22441d7c8460b2f23ac48b0362178a1d60f9d06ead2496bd397363e6a1ce9105" @@ -4024,6 +4184,7 @@ "jsr:@fresh/build-id@1", "jsr:@fresh/core@2", "jsr:@marvinh-test/fresh-island@^0.0.3", + "jsr:@matmen/imagescript@^1.3.0", "jsr:@std/async@^1.0.13", "jsr:@std/cli@^1.0.19", "jsr:@std/collections@^1.1.2", @@ -4042,6 +4203,7 @@ "jsr:@std/streams@1", "jsr:@std/testing@^1.0.12", "jsr:@std/uuid@^1.0.7", + "npm:@docsearch/js@^3.5.2", "npm:@opentelemetry/api@^1.9.0", "npm:@preact/signals@^2.5.1", "npm:@supabase/postgrest-js@^1.21.4", diff --git a/www/islands/SearchButton.tsx b/www/islands/SearchButton.tsx index 09c33340de3..22acd827cc6 100644 --- a/www/islands/SearchButton.tsx +++ b/www/islands/SearchButton.tsx @@ -1,5 +1,5 @@ import { useEffect, useRef } from "preact/hooks"; -import docsearch from "docsearch"; +import docsearchModule from "docsearch"; // Copied from algolia source code type DocSearchProps = { @@ -9,6 +9,11 @@ type DocSearchProps = { container: HTMLElement | string; }; +// Workaround: Deno resolves this npm package as CJS, hiding the callable default export +const docsearch = docsearchModule as unknown as ( + props: DocSearchProps, +) => void; + export default function SearchButton( props: { docsearch?: (args: DocSearchProps) => void; class?: string }, ) {