diff --git a/.github/workflows/deno.yml b/.github/workflows/deno.yml index 831b1d1..8206083 100644 --- a/.github/workflows/deno.yml +++ b/.github/workflows/deno.yml @@ -10,11 +10,11 @@ name: Deno on: push: - branches: ["main"] + branches: ['main'] tags: - v* pull_request: - branches: ["main"] + branches: ['main'] permissions: contents: read @@ -28,9 +28,9 @@ jobs: uses: actions/checkout@v3 - name: Setup Deno - uses: denoland/setup-deno@v1 + uses: denoland/setup-deno@v2 with: - deno-version: v1.x + deno-version: v2.x - name: Verify formatting run: deno fmt --check @@ -38,6 +38,9 @@ jobs: - name: Run linter run: deno lint + - name: Install Bext + run: deno task install + - name: Run tests run: deno task test release: diff --git a/README.md b/README.md index 65a36a3..74865ce 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ browser. > bext --source=src # --source or -s: specify source directory (default: "source") > bext --source=src --static=assets # --static or -t: specify static assets directory (default: "static") > bext --source=src --static=assets --output=build # --output or -o: specify output directory (default: "dist") + +> bext --config=../deno.json # --config or -c: specify deno.json config file. If using a workspace, point at the root workspace deno.json ``` ## Types and Utilities @@ -63,11 +65,11 @@ browserAPI.tabs.onUpdated.addListener( bext `browserAPI` will also return a mock browser when running in a Deno environment (where native extension apis don't exist). This makes writing unit tests a breeze! ```ts -import browserAPI, { isDeno } from 'jsr:@bpev/bext'; -import { assertStrictEquals } from 'jsr:@std/assert'; -import { assertSpyCall, assertSpyCalls, stub } from 'jsr:@std/testing/mock'; +import browserAPI, { isDeno } from 'jsr:@bpev/bext' +import { assertStrictEquals } from 'jsr:@std/assert' +import { assertSpyCall, assertSpyCalls, stub } from 'jsr:@std/testing/mock' -import { getStorage } from './storage_helpers.ts'; +import { getStorage } from './storage_helpers.ts' Deno.test('is running in test env', () => { assert() @@ -75,23 +77,31 @@ Deno.test('is running in test env', () => { Deno.test('uses browser storage', async () => { const getStorageStub = stub(browserAPI.storage.sync, 'get', () => { - return Promise.resolve({ storage_key: 'mock_storage_value' }); - }); + return Promise.resolve({ storage_key: 'mock_storage_value' }) + }) - assertStrictEquals(await getStorage(), 'mock_storage_value'); - assertSpyCalls(getStorageStub, 1); + assertStrictEquals(await getStorage(), 'mock_storage_value') + assertSpyCalls(getStorageStub, 1) // Expect `chrome.sync.storage.get` to be called with the storage_key - assertSpyCall(getStorageStub, 0, { args: ['storage_key'] }); - getStorageStub.restore(); -}); + assertSpyCall(getStorageStub, 0, { args: ['storage_key'] }) + getStorageStub.restore() +}) ``` # Running this repo (for Bext development) Tasks are defined in [deno.json](./deno.json), but basically: -- `deno task dev`: Run the example app in watch-mode +- `deno task dev:{project}`: Run the example app in watch-mode - `deno task test`: Makes sure it all works. Use this before committing! - runs fmt, lint, type-checks, unit tests for source and example apps - builds example apps using local bext copy + +## `/examples` + +Note that the `deno tasks` in the example projects are meant to show the client usage, and therefore have tasks that don't work within the context of this repo's workspace. + +If you want to run these projects from the Bext repo, please use the tasks in the root `deno.json` (instead of the `deno.json` in the `/examples/{project}`) + +Also, for this same reason, do not put any imports in the root `deno.json`. diff --git a/deno.json b/deno.json index 587a858..c4dfee2 100644 --- a/deno.json +++ b/deno.json @@ -1,43 +1,28 @@ { - "name": "@bpev/bext", - "version": "1.3.1", - "exports": { - ".": "./source/mod.ts", - "./bin": "./source/main.ts", - "./mock": "./source/mock_browser/main.ts", - "./types/chrome": "./source/types/chrome.ts" - }, + "workspace": [ + "examples/preact", + "examples/barebones", + "source" + ], "fmt": { - "semiColons": false, - "singleQuote": true, "proseWrap": "preserve", - "include": ["source", "examples"], - "exclude": ["dist"] - }, - "imports": { - "@std/assert": "jsr:@std/assert@^1.0.0", - "@std/testing": "jsr:@std/testing@^0.225.3" + "semiColons": false, + "singleQuote": true }, - "lint": { + "test": { "include": ["source"], - "exclude": ["dist", "examples"] - }, - "publish": { - "exclude": ["dist", "examples"] + "exclude": ["examples"] }, "tasks": { - "build": "deno task build:preact && deno task build:barebones", - "build:barebones": "(cd examples/barebones && deno run -A ../../source/main.ts internal-dev-only-build)", - "build:preact": "(cd examples/preact && deno run -A ../../source/main.ts internal-dev-only-build)", + "install": "deno install --name=bext -Agf ./source/main.ts", + "build": "deno task build:barebones && deno task build:preact", + "build:barebones": "(cd examples/barebones && bext build -c ../../deno.json)", + "build:preact": "(cd examples/preact && bext build -c ../../deno.json)", "check": "deno check source/main.ts && deno check source/mod.ts", - "dev:barebones": "(cd examples/barebones && deno run -A ../../source/main.ts internal-dev-only-build -w)", - "dev:preact": "(cd examples/preact && deno run -A ../../source/main.ts internal-dev-only-build -w)", - "test": "deno task test:source && deno task build && deno task test:preact && deno publish --dry-run --allow-dirty", - "test:preact": "(cd examples/preact && deno task test)", - "test:source": "deno fmt && deno lint && deno task check && deno test source" - }, - "test": { - "include": ["source"], - "exclude": ["dist", "examples"] + "dev:barebones": "(cd examples/barebones && bext dev -c ../../deno.json)", + "dev:preact": "(cd examples/preact && bext dev -c ../../deno.json)", + "test": "deno fmt && deno lint && deno task test:source && deno task test:preact && deno task build", + "test:source": "(cd source && deno test)", + "test:preact": "(cd examples/preact && deno task test)" } } diff --git a/deno.lock b/deno.lock index f8cedd1..e05a86e 100644 --- a/deno.lock +++ b/deno.lock @@ -1,236 +1,710 @@ { - "version": "3", - "packages": { - "specifiers": { - "jsr:@luca/esbuild-deno-loader@^0.10.3": "jsr:@luca/esbuild-deno-loader@0.10.3", - "jsr:@std/assert@^0.213.1": "jsr:@std/assert@0.213.1", - "jsr:@std/assert@^1.0.0": "jsr:@std/assert@1.0.0", - "jsr:@std/cli@^1.0.0": "jsr:@std/cli@1.0.0", - "jsr:@std/encoding@0.213": "jsr:@std/encoding@0.213.1", - "jsr:@std/fs@^0.229.3": "jsr:@std/fs@0.229.3", - "jsr:@std/internal@^1.0.1": "jsr:@std/internal@1.0.1", - "jsr:@std/json@^0.213.1": "jsr:@std/json@0.213.1", - "jsr:@std/jsonc@0.213": "jsr:@std/jsonc@0.213.1", - "jsr:@std/path@0.213": "jsr:@std/path@0.213.1", - "jsr:@std/path@1.0.0-rc.1": "jsr:@std/path@1.0.0-rc.1", - "jsr:@std/path@^1.0.1": "jsr:@std/path@1.0.1", - "jsr:@std/testing@^0.225.3": "jsr:@std/testing@0.225.3", - "npm:@types/chrome@0.0.268": "npm:@types/chrome@0.0.268", - "npm:esbuild@^0.23.0": "npm:esbuild@0.23.0" - }, - "jsr": { - "@luca/esbuild-deno-loader@0.10.3": { - "integrity": "32fc93f7e7f78060234fd5929a740668aab1c742b808c6048b57f9aaea514921", - "dependencies": [ - "jsr:@std/encoding@0.213", - "jsr:@std/jsonc@0.213", - "jsr:@std/path@0.213" - ] - }, - "@std/assert@0.213.1": { - "integrity": "24c28178b30c8e0782c18e8e94ea72b16282207569cdd10ffb9d1d26f2edebfe" - }, - "@std/assert@1.0.0": { - "integrity": "0e4f6d873f7f35e2a1e6194ceee39686c996b9e5d134948e644d35d4c4df2008", - "dependencies": [ - "jsr:@std/internal@^1.0.1" - ] - }, - "@std/cli@1.0.0": { - "integrity": "3c38f1da21bff0d25a9e6d97139ef2eb9ba334b5910da92c0169b44f38655f08" - }, - "@std/encoding@0.213.1": { - "integrity": "fcbb6928713dde941a18ca5db88ca1544d0755ec8fb20fe61e2dc8144b390c62" - }, - "@std/fs@0.229.3": { - "integrity": "783bca21f24da92e04c3893c9e79653227ab016c48e96b3078377ebd5222e6eb", - "dependencies": [ - "jsr:@std/path@1.0.0-rc.1" - ] - }, - "@std/internal@1.0.1": { - "integrity": "6f8c7544d06a11dd256c8d6ba54b11ed870aac6c5aeafff499892662c57673e6" - }, - "@std/json@0.213.1": { - "integrity": "f572b1de605d07c4a5602445dac54bfc51b1fb87a3710a17aed2608bfca54e68" - }, - "@std/jsonc@0.213.1": { - "integrity": "5578f21aa583b7eb7317eed077ffcde47b294f1056bdbb9aacec407758637bfe", + "version": "4", + "specifiers": { + "jsr:@b-fuze/deno-dom@~0.1.47": "0.1.49", + "jsr:@denosaurs/plug@1.0.3": "1.0.3", + "jsr:@std/assert@1.0.0-rc.2": "1.0.0-rc.2", + "jsr:@std/assert@^1.0.11": "1.0.12", + "jsr:@std/assert@~0.213.1": "0.213.1", + "jsr:@std/data-structures@^1.0.0-rc.1": "1.0.6", + "jsr:@std/encoding@0.213": "0.213.1", + "jsr:@std/encoding@0.213.1": "0.213.1", + "jsr:@std/fmt@0.213.1": "0.213.1", + "jsr:@std/fmt@~0.225.4": "0.225.6", + "jsr:@std/fs@0.213.1": "0.213.1", + "jsr:@std/fs@^1.0.0-rc.1": "1.0.9", + "jsr:@std/internal@1": "1.0.6", + "jsr:@std/internal@^1.0.5": "1.0.5", + "jsr:@std/internal@^1.0.6": "1.0.6", + "jsr:@std/path@*": "1.0.8", + "jsr:@std/path@0.213": "0.213.1", + "jsr:@std/path@0.213.1": "0.213.1", + "jsr:@std/path@1.0.0-rc.2": "1.0.0-rc.2", + "jsr:@std/path@^1.0.2": "1.0.8", + "jsr:@std/path@^1.0.6": "1.0.8", + "jsr:@std/path@^1.0.8": "1.0.8", + "jsr:@std/path@~0.213.1": "0.213.1", + "jsr:@std/testing@~0.225.3": "0.225.3", + "npm:@testing-library/preact@^3.2.4": "3.2.4_preact@10.26.4", + "npm:@types/chrome@0.0.268": "0.0.268", + "npm:preact@^10.23.0": "10.26.4" + }, + "jsr": { + "@b-fuze/deno-dom@0.1.49": { + "integrity": "45c40175fdd1e74ab2d4b54c4fdaabbad6e5b76ee28df12a48e076b3fa7901a9", + "dependencies": [ + "jsr:@denosaurs/plug" + ] + }, + "@denosaurs/plug@1.0.3": { + "integrity": "b010544e386bea0ff3a1d05e0c88f704ea28cbd4d753439c2f1ee021a85d4640", + "dependencies": [ + "jsr:@std/encoding@0.213.1", + "jsr:@std/fmt@0.213.1", + "jsr:@std/fs@0.213.1", + "jsr:@std/path@0.213.1" + ] + }, + "@std/assert@0.213.1": { + "integrity": "24c28178b30c8e0782c18e8e94ea72b16282207569cdd10ffb9d1d26f2edebfe" + }, + "@std/assert@1.0.0-rc.2": { + "integrity": "0484eab1d76b55fca1c3beaff485a274e67dd3b9f065edcbe70030dfc0b964d3", + "dependencies": [ + "jsr:@std/internal@1" + ] + }, + "@std/assert@1.0.12": { + "integrity": "08009f0926dda9cbd8bef3a35d3b6a4b964b0ab5c3e140a4e0351fbf34af5b9a", + "dependencies": [ + "jsr:@std/internal@^1.0.6" + ] + }, + "@std/data-structures@1.0.6": { + "integrity": "76a7fd8080c66604c0496220a791860492ab21a04a63a969c0b9a0609bbbb760" + }, + "@std/encoding@0.213.1": { + "integrity": "fcbb6928713dde941a18ca5db88ca1544d0755ec8fb20fe61e2dc8144b390c62" + }, + "@std/fmt@0.213.1": { + "integrity": "a06d31777566d874b9c856c10244ac3e6b660bdec4c82506cd46be052a1082c3" + }, + "@std/fmt@0.225.6": { + "integrity": "aba6aea27f66813cecfd9484e074a9e9845782ab0685c030e453a8a70b37afc8" + }, + "@std/fs@0.213.1": { + "integrity": "fbcaf099f8a85c27ab0712b666262cda8fe6d02e9937bf9313ecaea39a22c501", + "dependencies": [ + "jsr:@std/assert@~0.213.1", + "jsr:@std/path@~0.213.1" + ] + }, + "@std/fs@1.0.9": { + "integrity": "3eef7e3ed3d317b29432c7dcb3b20122820dbc574263f721cb0248ad91bad890", + "dependencies": [ + "jsr:@std/path@^1.0.8" + ] + }, + "@std/internal@1.0.5": { + "integrity": "54a546004f769c1ac9e025abd15a76b6671ddc9687e2313b67376125650dc7ba" + }, + "@std/internal@1.0.6": { + "integrity": "9533b128f230f73bd209408bb07a4b12f8d4255ab2a4d22a1fd6d87304aca9a4" + }, + "@std/path@0.213.1": { + "integrity": "f187bf278a172752e02fcbacf6bd78a335ed320d080a7ed3a5a59c3e88abc673", + "dependencies": [ + "jsr:@std/assert@~0.213.1" + ] + }, + "@std/path@1.0.0-rc.2": { + "integrity": "39f20d37a44d1867abac8d91c169359ea6e942237a45a99ee1e091b32b921c7d" + }, + "@std/path@1.0.8": { + "integrity": "548fa456bb6a04d3c1a1e7477986b6cffbce95102d0bb447c67c4ee70e0364be" + }, + "@std/testing@0.225.3": { + "integrity": "348c24d0479d44ab3dbb4f26170f242e19f24051b45935d4a9e7ca0ab7e37780", + "dependencies": [ + "jsr:@std/assert@1.0.0-rc.2", + "jsr:@std/data-structures", + "jsr:@std/fmt@~0.225.4", + "jsr:@std/fs@^1.0.0-rc.1", + "jsr:@std/internal@1", + "jsr:@std/path@1.0.0-rc.2" + ] + } + }, + "npm": { + "@babel/code-frame@7.26.2": { + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": [ + "@babel/helper-validator-identifier", + "js-tokens", + "picocolors" + ] + }, + "@babel/helper-validator-identifier@7.25.9": { + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" + }, + "@babel/runtime@7.26.10": { + "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "dependencies": [ + "regenerator-runtime" + ] + }, + "@testing-library/dom@8.20.1": { + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": [ + "@babel/code-frame", + "@babel/runtime", + "@types/aria-query", + "aria-query", + "chalk", + "dom-accessibility-api", + "lz-string", + "pretty-format" + ] + }, + "@testing-library/preact@3.2.4_preact@10.26.4": { + "integrity": "sha512-F+kJ243LP6VmEK1M809unzTE/ijg+bsMNuiRN0JEDIJBELKKDNhdgC/WrUSZ7klwJvtlO3wQZ9ix+jhObG07Fg==", + "dependencies": [ + "@testing-library/dom", + "preact" + ] + }, + "@types/aria-query@5.0.4": { + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "@types/chrome@0.0.268": { + "integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==", + "dependencies": [ + "@types/filesystem", + "@types/har-format" + ] + }, + "@types/filesystem@0.0.36": { + "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", + "dependencies": [ + "@types/filewriter" + ] + }, + "@types/filewriter@0.0.33": { + "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==" + }, + "@types/har-format@1.2.16": { + "integrity": "sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==" + }, + "ansi-regex@5.0.1": { + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles@4.3.0": { + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": [ + "color-convert" + ] + }, + "ansi-styles@5.2.0": { + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + }, + "aria-query@5.1.3": { + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": [ + "deep-equal" + ] + }, + "array-buffer-byte-length@1.0.2": { + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dependencies": [ + "call-bound", + "is-array-buffer" + ] + }, + "available-typed-arrays@1.0.7": { + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": [ + "possible-typed-array-names" + ] + }, + "call-bind-apply-helpers@1.0.2": { + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": [ + "es-errors", + "function-bind" + ] + }, + "call-bind@1.0.8": { + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": [ + "call-bind-apply-helpers", + "es-define-property", + "get-intrinsic", + "set-function-length" + ] + }, + "call-bound@1.0.4": { + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": [ + "call-bind-apply-helpers", + "get-intrinsic" + ] + }, + "chalk@4.1.2": { + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": [ + "ansi-styles@4.3.0", + "supports-color" + ] + }, + "color-convert@2.0.1": { + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": [ + "color-name" + ] + }, + "color-name@1.1.4": { + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "deep-equal@2.2.3": { + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": [ + "array-buffer-byte-length", + "call-bind", + "es-get-iterator", + "get-intrinsic", + "is-arguments", + "is-array-buffer", + "is-date-object", + "is-regex", + "is-shared-array-buffer", + "isarray", + "object-is", + "object-keys", + "object.assign", + "regexp.prototype.flags", + "side-channel", + "which-boxed-primitive", + "which-collection", + "which-typed-array" + ] + }, + "define-data-property@1.1.4": { + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": [ + "es-define-property", + "es-errors", + "gopd" + ] + }, + "define-properties@1.2.1": { + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": [ + "define-data-property", + "has-property-descriptors", + "object-keys" + ] + }, + "dom-accessibility-api@0.5.16": { + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "dunder-proto@1.0.1": { + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": [ + "call-bind-apply-helpers", + "es-errors", + "gopd" + ] + }, + "es-define-property@1.0.1": { + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors@1.3.0": { + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-get-iterator@1.1.3": { + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": [ + "call-bind", + "get-intrinsic", + "has-symbols", + "is-arguments", + "is-map", + "is-set", + "is-string", + "isarray", + "stop-iteration-iterator" + ] + }, + "es-object-atoms@1.1.1": { + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": [ + "es-errors" + ] + }, + "for-each@0.3.5": { + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dependencies": [ + "is-callable" + ] + }, + "function-bind@1.1.2": { + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "functions-have-names@1.2.3": { + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + }, + "get-intrinsic@1.3.0": { + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": [ + "call-bind-apply-helpers", + "es-define-property", + "es-errors", + "es-object-atoms", + "function-bind", + "get-proto", + "gopd", + "has-symbols", + "hasown", + "math-intrinsics" + ] + }, + "get-proto@1.0.1": { + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": [ + "dunder-proto", + "es-object-atoms" + ] + }, + "gopd@1.2.0": { + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + "has-bigints@1.1.0": { + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==" + }, + "has-flag@4.0.0": { + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors@1.0.2": { + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": [ + "es-define-property" + ] + }, + "has-symbols@1.1.0": { + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "has-tostringtag@1.0.2": { + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": [ + "has-symbols" + ] + }, + "hasown@2.0.2": { + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": [ + "function-bind" + ] + }, + "internal-slot@1.1.0": { + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dependencies": [ + "es-errors", + "hasown", + "side-channel" + ] + }, + "is-arguments@1.2.0": { + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dependencies": [ + "call-bound", + "has-tostringtag" + ] + }, + "is-array-buffer@3.0.5": { + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dependencies": [ + "call-bind", + "call-bound", + "get-intrinsic" + ] + }, + "is-bigint@1.1.0": { + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dependencies": [ + "has-bigints" + ] + }, + "is-boolean-object@1.2.2": { + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dependencies": [ + "call-bound", + "has-tostringtag" + ] + }, + "is-callable@1.2.7": { + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" + }, + "is-date-object@1.1.0": { + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dependencies": [ + "call-bound", + "has-tostringtag" + ] + }, + "is-map@2.0.3": { + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==" + }, + "is-number-object@1.1.1": { + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dependencies": [ + "call-bound", + "has-tostringtag" + ] + }, + "is-regex@1.2.1": { + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dependencies": [ + "call-bound", + "gopd", + "has-tostringtag", + "hasown" + ] + }, + "is-set@2.0.3": { + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==" + }, + "is-shared-array-buffer@1.0.4": { + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dependencies": [ + "call-bound" + ] + }, + "is-string@1.1.1": { + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dependencies": [ + "call-bound", + "has-tostringtag" + ] + }, + "is-symbol@1.1.1": { + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dependencies": [ + "call-bound", + "has-symbols", + "safe-regex-test" + ] + }, + "is-weakmap@2.0.2": { + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==" + }, + "is-weakset@2.0.4": { + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dependencies": [ + "call-bound", + "get-intrinsic" + ] + }, + "isarray@2.0.5": { + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "js-tokens@4.0.0": { + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "lz-string@1.5.0": { + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" + }, + "math-intrinsics@1.1.0": { + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + "object-inspect@1.13.4": { + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" + }, + "object-is@1.1.6": { + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": [ + "call-bind", + "define-properties" + ] + }, + "object-keys@1.1.1": { + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign@4.1.7": { + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dependencies": [ + "call-bind", + "call-bound", + "define-properties", + "es-object-atoms", + "has-symbols", + "object-keys" + ] + }, + "picocolors@1.1.1": { + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "possible-typed-array-names@1.1.0": { + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==" + }, + "preact@10.26.4": { + "integrity": "sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==" + }, + "pretty-format@27.5.1": { + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": [ + "ansi-regex", + "ansi-styles@5.2.0", + "react-is" + ] + }, + "react-is@17.0.2": { + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "regenerator-runtime@0.14.1": { + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "regexp.prototype.flags@1.5.4": { + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dependencies": [ + "call-bind", + "define-properties", + "es-errors", + "get-proto", + "gopd", + "set-function-name" + ] + }, + "safe-regex-test@1.1.0": { + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dependencies": [ + "call-bound", + "es-errors", + "is-regex" + ] + }, + "set-function-length@1.2.2": { + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": [ + "define-data-property", + "es-errors", + "function-bind", + "get-intrinsic", + "gopd", + "has-property-descriptors" + ] + }, + "set-function-name@2.0.2": { + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": [ + "define-data-property", + "es-errors", + "functions-have-names", + "has-property-descriptors" + ] + }, + "side-channel-list@1.0.0": { + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": [ + "es-errors", + "object-inspect" + ] + }, + "side-channel-map@1.0.1": { + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": [ + "call-bound", + "es-errors", + "get-intrinsic", + "object-inspect" + ] + }, + "side-channel-weakmap@1.0.2": { + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": [ + "call-bound", + "es-errors", + "get-intrinsic", + "object-inspect", + "side-channel-map" + ] + }, + "side-channel@1.1.0": { + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": [ + "es-errors", + "object-inspect", + "side-channel-list", + "side-channel-map", + "side-channel-weakmap" + ] + }, + "stop-iteration-iterator@1.1.0": { + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dependencies": [ + "es-errors", + "internal-slot" + ] + }, + "supports-color@7.2.0": { + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": [ + "has-flag" + ] + }, + "which-boxed-primitive@1.1.1": { + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dependencies": [ + "is-bigint", + "is-boolean-object", + "is-number-object", + "is-string", + "is-symbol" + ] + }, + "which-collection@1.0.2": { + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": [ + "is-map", + "is-set", + "is-weakmap", + "is-weakset" + ] + }, + "which-typed-array@1.1.19": { + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dependencies": [ + "available-typed-arrays", + "call-bind", + "call-bound", + "for-each", + "get-proto", + "gopd", + "has-tostringtag" + ] + } + }, + "remote": { + "https://deno.land/x/deno_dom@v0.1.32-alpha/build/deno-wasm/deno-wasm.js": "b3ba6f2047b5fd8424292408c6c6ad2cb8c56a22984fdaceea2333a727bece25", + "https://deno.land/x/deno_dom@v0.1.32-alpha/deno-dom-wasm.ts": "bfd999a493a6974e9fca4d331bee03bfb68cfc600c662cd0b48b21d67a2a8ba0", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/api.ts": "0ff5790f0a3eeecb4e00b7d8fbfa319b165962cf6d0182a65ba90f158d74f7d7", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/constructor-lock.ts": "59714df7e0571ec7bd338903b1f396202771a6d4d7f55a452936bd0de9deb186", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/deserialize.ts": "f4d34514ca00473ca428b69ad437ba345925744b5d791cb9552e2d7a0e7b0439", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/document-fragment.ts": "a40c6e18dd0efcf749a31552c1c9a6f7fa614452245e86ee38fc92ba0235e5ae", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/document.ts": "9f1d7bcd67d14d35a181ff044ad0c5f21fdad8b5dab87831e4e39ae5bf291383", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/dom-parser.ts": "609097b426f8c2358f3e5d2bca55ed026cf26cdf86562e94130dfdb0f2537f92", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/element.ts": "1ce1b47ff50946c8669211a10b22958fd0e1e579add8fd3894e0d8c94055f63e", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/elements/html-template-element.ts": "19ad97c55222115e8daaca2788b9c98cc31a7f9d2547ed5bca0c56a4a12bfec8", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/html-collection.ts": "ae90197f5270c32074926ad6cf30ee07d274d44596c7e413c354880cebce8565", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/node-list.ts": "d9c07baf0acc383112cbabafacf26a0aedb04d0866645e7485f5ab23e470b6f8", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/node.ts": "338f7555b159e570ab577596ad5252a4d946f04edcc245fca98bda348966b2ce", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/selectors/custom-api.ts": "852696bd58e534bc41bd3be9e2250b60b67cd95fd28ed16b1deff1d548531a71", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/selectors/nwsapi-types.ts": "c43b36c36acc5d32caabaa54fda8c9d239b2b0fcbce9a28efb93c84aa1021698", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/selectors/nwsapi.js": "985d7d8fc1eabbb88946b47a1c44c1b2d4aa79ff23c21424219f1528fa27a2ff", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/selectors/selectors.ts": "83eab57be2290fb48e3130533448c93c6c61239f2a2f3b85f1917f80ca0fdc75", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/selectors/sizzle-types.ts": "78149e2502409989ce861ed636b813b059e16bc267bb543e7c2b26ef43e4798b", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/selectors/sizzle.js": "c3aed60c1045a106d8e546ac2f85cc82e65f62d9af2f8f515210b9212286682a", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/utils-types.ts": "96db30e3e4a75b194201bb9fa30988215da7f91b380fca6a5143e51ece2a8436", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/dom/utils.ts": "9a21e6be3d16160d9ce69a42d37fb26708d8b77e0e4e7fedfa849224bd3eac8b", + "https://deno.land/x/deno_dom@v0.1.32-alpha/src/parser.ts": "b65eb7e673fa7ca611de871de109655f0aa9fa35ddc1de73df1a5fc2baafc332" + }, + "workspace": { + "members": { + "examples/preact": { "dependencies": [ - "jsr:@std/assert@^0.213.1", - "jsr:@std/json@^0.213.1" + "jsr:@b-fuze/deno-dom@~0.1.47", + "jsr:@bpev/bext@*", + "jsr:@std/assert@^1.0.11", + "jsr:@std/testing@~0.225.3", + "npm:@testing-library/preact@^3.2.4", + "npm:preact@^10.23.0" ] }, - "@std/path@0.213.1": { - "integrity": "f187bf278a172752e02fcbacf6bd78a335ed320d080a7ed3a5a59c3e88abc673", + "source": { "dependencies": [ - "jsr:@std/assert@^0.213.1" + "jsr:@std/assert@^1.0.11", + "jsr:@std/testing@~0.225.3" ] - }, - "@std/path@1.0.0-rc.1": { - "integrity": "b8c00ae2f19106a6bb7cbf1ab9be52aa70de1605daeb2dbdc4f87a7cbaf10ff6" - }, - "@std/path@1.0.1": { - "integrity": "e061ff02c28481ca49e3a14981875c345e9fc7e973190672782cd0ac8af70428" - }, - "@std/testing@0.225.3": { - "integrity": "348c24d0479d44ab3dbb4f26170f242e19f24051b45935d4a9e7ca0ab7e37780" - } - }, - "npm": { - "@esbuild/aix-ppc64@0.23.0": { - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", - "dependencies": {} - }, - "@esbuild/android-arm64@0.23.0": { - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", - "dependencies": {} - }, - "@esbuild/android-arm@0.23.0": { - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", - "dependencies": {} - }, - "@esbuild/android-x64@0.23.0": { - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", - "dependencies": {} - }, - "@esbuild/darwin-arm64@0.23.0": { - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "dependencies": {} - }, - "@esbuild/darwin-x64@0.23.0": { - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", - "dependencies": {} - }, - "@esbuild/freebsd-arm64@0.23.0": { - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", - "dependencies": {} - }, - "@esbuild/freebsd-x64@0.23.0": { - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", - "dependencies": {} - }, - "@esbuild/linux-arm64@0.23.0": { - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", - "dependencies": {} - }, - "@esbuild/linux-arm@0.23.0": { - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", - "dependencies": {} - }, - "@esbuild/linux-ia32@0.23.0": { - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", - "dependencies": {} - }, - "@esbuild/linux-loong64@0.23.0": { - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", - "dependencies": {} - }, - "@esbuild/linux-mips64el@0.23.0": { - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", - "dependencies": {} - }, - "@esbuild/linux-ppc64@0.23.0": { - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", - "dependencies": {} - }, - "@esbuild/linux-riscv64@0.23.0": { - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", - "dependencies": {} - }, - "@esbuild/linux-s390x@0.23.0": { - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", - "dependencies": {} - }, - "@esbuild/linux-x64@0.23.0": { - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "dependencies": {} - }, - "@esbuild/netbsd-x64@0.23.0": { - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", - "dependencies": {} - }, - "@esbuild/openbsd-arm64@0.23.0": { - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", - "dependencies": {} - }, - "@esbuild/openbsd-x64@0.23.0": { - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", - "dependencies": {} - }, - "@esbuild/sunos-x64@0.23.0": { - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", - "dependencies": {} - }, - "@esbuild/win32-arm64@0.23.0": { - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", - "dependencies": {} - }, - "@esbuild/win32-ia32@0.23.0": { - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", - "dependencies": {} - }, - "@esbuild/win32-x64@0.23.0": { - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", - "dependencies": {} - }, - "@types/chrome@0.0.268": { - "integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==", - "dependencies": { - "@types/filesystem": "@types/filesystem@0.0.36", - "@types/har-format": "@types/har-format@1.2.15" - } - }, - "@types/filesystem@0.0.36": { - "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", - "dependencies": { - "@types/filewriter": "@types/filewriter@0.0.33" - } - }, - "@types/filewriter@0.0.33": { - "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", - "dependencies": {} - }, - "@types/har-format@1.2.15": { - "integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==", - "dependencies": {} - }, - "esbuild@0.23.0": { - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "dependencies": { - "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.23.0", - "@esbuild/android-arm": "@esbuild/android-arm@0.23.0", - "@esbuild/android-arm64": "@esbuild/android-arm64@0.23.0", - "@esbuild/android-x64": "@esbuild/android-x64@0.23.0", - "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.23.0", - "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.23.0", - "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.23.0", - "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.23.0", - "@esbuild/linux-arm": "@esbuild/linux-arm@0.23.0", - "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.23.0", - "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.23.0", - "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.23.0", - "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.23.0", - "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.23.0", - "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.23.0", - "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.23.0", - "@esbuild/linux-x64": "@esbuild/linux-x64@0.23.0", - "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.23.0", - "@esbuild/openbsd-arm64": "@esbuild/openbsd-arm64@0.23.0", - "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.23.0", - "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.23.0", - "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.23.0", - "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.23.0", - "@esbuild/win32-x64": "@esbuild/win32-x64@0.23.0" - } } } - }, - "remote": {}, - "workspace": { - "dependencies": [ - "jsr:@std/assert@^1.0.0", - "jsr:@std/testing@^0.225.3" - ] } } diff --git a/examples/barebones/README.md b/examples/barebones/README.md index 67704e6..de09327 100644 --- a/examples/barebones/README.md +++ b/examples/barebones/README.md @@ -1,6 +1,3 @@ # Barebones The bare minimum needed for a chrome extension - -Note: Since is also used for internal dev. In your own app, the -`internal-dev-only` tasks can be removed. diff --git a/examples/barebones/deno.json b/examples/barebones/deno.json index 570662d..ff30c3c 100644 --- a/examples/barebones/deno.json +++ b/examples/barebones/deno.json @@ -1,9 +1,6 @@ { "tasks": { "dev": "bext --watch", - "build": "bext", - "internal-dev-only-install": "deno install --name=bext-internal -Agf ../../source/main.ts", - "internal-dev-only-dev": "bext-internal --watch", - "internal-dev-only-build": "bext-internal" + "build": "bext" } } diff --git a/examples/preact/README.md b/examples/preact/README.md index 5434eab..b77ff71 100644 --- a/examples/preact/README.md +++ b/examples/preact/README.md @@ -2,8 +2,6 @@ A Preact-Rendered Chrome/Firefox extension built with Bext. -Note: Since is also used for internal dev. In your own app, the `browser` dependency should point to `jsr:@bpev/bext`. Also, the `internal-dev-only` tasks can be removed. - Uses: - `background.ts` logs url to extension console for each new tab update diff --git a/examples/preact/deno.json b/examples/preact/deno.json index c21b94e..c1376d6 100644 --- a/examples/preact/deno.json +++ b/examples/preact/deno.json @@ -14,11 +14,10 @@ "imports": { "@b-fuze/deno-dom": "jsr:@b-fuze/deno-dom@^0.1.47", - "@std/assert": "jsr:@std/assert@^1.0.0", + "@bpev/bext": "jsr:@bpev/bext", + "@std/assert": "jsr:@std/assert@^1.0.11", "@std/testing": "jsr:@std/testing@^0.225.3", "@testing-library/preact": "npm:@testing-library/preact@^3.2.4", - "browser": "../../source/mod.ts", - "browser/": "../../source/", "deno-dom": "https://deno.land/x/deno_dom@v0.1.32-alpha/deno-dom-wasm.ts", "preact": "npm:preact@^10.23.0", "preact/hooks": "npm:preact@^10.23.0/hooks" @@ -40,9 +39,6 @@ "check:background": "deno check source/background.ts", "check:content_script": "deno check source/content_script.ts", "check:options": "deno check source/options.tsx", - "check:popup": "deno check source/popup.tsx", - "bext-internal-dev-only-install": "deno install --name=bext-internal -Agf ../../source/main.ts", - "bext-internal-dev-only-dev": "bext-internal --watch", - "bext-internal-dev-only-build": "bext-internal" + "check:popup": "deno check source/popup.tsx" } } diff --git a/examples/preact/source/background.ts b/examples/preact/source/background.ts index 7e9c4fb..4faacb3 100644 --- a/examples/preact/source/background.ts +++ b/examples/preact/source/background.ts @@ -1,5 +1,5 @@ -import type Chrome from 'browser/types/chrome.ts' -import browserAPI from 'browser' +import type Chrome from '@bpev/bext/types/chrome' +import browserAPI from '@bpev/bext' browserAPI.tabs.onUpdated.addListener( ( diff --git a/examples/preact/source/components/options_button.tsx b/examples/preact/source/components/options_button.tsx index 2e3ab0a..c461d67 100644 --- a/examples/preact/source/components/options_button.tsx +++ b/examples/preact/source/components/options_button.tsx @@ -2,7 +2,7 @@ import { h } from 'preact' import { useCallback } from 'preact/hooks' -import browserAPI from 'browser' +import browserAPI from '@bpev/bext' export default function OptionsButton() { const onClick = useCallback(() => { @@ -10,7 +10,7 @@ export default function OptionsButton() { }, []) return ( - ) diff --git a/examples/preact/source/pages/home.tsx b/examples/preact/source/pages/home.tsx index 7358939..a3311ef 100644 --- a/examples/preact/source/pages/home.tsx +++ b/examples/preact/source/pages/home.tsx @@ -36,6 +36,7 @@ export default function Home(_props: HomeProps) { }, [setInputData])} />