update to v2.2.1

fix type issues with root object wrapping node or querySelector
fix incorrect import in demo
fix unused options in vite.config.js
add (some) tests - more to come!
This commit is contained in:
2025-09-13 03:05:49 -04:00
parent c9de0883eb
commit af2e0d2eec
14 changed files with 519 additions and 31 deletions

4
dist/demo.html vendored
View File

@@ -72,7 +72,7 @@
.t( .t(
` `
\<script type="module"> \<script type="module">
import $d from "/fluent-dom-esm.ts"; import $d from "/fluent-dom-esm.js";
// Create new objects in memory with a simple, chainable interface // Create new objects in memory with a simple, chainable interface
const $article = $d const $article = $d
@@ -149,7 +149,7 @@
(val) => `<span class="code-str">${val}</span>`, (val) => `<span class="code-str">${val}</span>`,
) )
.replace(/\.\w+/g, (val) => .replace(/\.\w+/g, (val) =>
val !== ".ts" val !== ".js"
? `<span class="code-func">${val}</span>` ? `<span class="code-func">${val}</span>`
: val, : val,
) )

View File

@@ -4,13 +4,13 @@ const isHTMLElement = (value) => !!value.nodeType;
const isNumber = (value) => typeof value === "number"; const isNumber = (value) => typeof value === "number";
const isString = (value) => typeof value === "string"; const isString = (value) => typeof value === "string";
/** /**
* fluent-dom-esm v2.2.0 * fluent-dom-esm v2.2.1
* *
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.1(.0). * Fluent DOM Manipulation, adapted to ESM and cranked up to v2.2(.1).
* *
* https://git.itsericwoodward.com/eric/fluent-dom-esm * https://git.itsericwoodward.com/eric/fluent-dom-esm
* *
* v2.2.0 Copyright (c) 2025 Eric Woodward * v2.2.1 Copyright (c) 2025 Eric Woodward
* Original copyright (c) 2009 Tommy Montgomery (https://glacius.tmont.com/articles/fluent-dom-manipulation-in-javascript) * Original copyright (c) 2009 Tommy Montgomery (https://glacius.tmont.com/articles/fluent-dom-manipulation-in-javascript)
* *
* Released under the WTFPL (Do What the Fuck You Want to Public License) * Released under the WTFPL (Do What the Fuck You Want to Public License)
@@ -19,7 +19,7 @@ const isString = (value) => typeof value === "string";
* @author Tommy Montgomery (original) * @author Tommy Montgomery (original)
* @license http://sam.zoy.org/wtfpl/ * @license http://sam.zoy.org/wtfpl/
*/ */
const APP_VERSION = "2.2.0"; const APP_VERSION = "2.2.1";
const fluentDomEsm = (function() { const fluentDomEsm = (function() {
const FluentDom = function(nodeOrQuerySelector) { const FluentDom = function(nodeOrQuerySelector) {
if (typeof nodeOrQuerySelector !== "string") if (typeof nodeOrQuerySelector !== "string")

View File

@@ -1,4 +1,5 @@
export interface FluentDomObject { export interface FluentDomObject {
(nodeOrQuerySelector: string | HTMLElement): FluentDomObject;
fluentDom: string; fluentDom: string;
a: (name: string, value: string) => FluentDomObject; a: (name: string, value: string) => FluentDomObject;
app: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject; app: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;

View File

@@ -72,7 +72,7 @@
.t( .t(
` `
\<script type="module"> \<script type="module">
import $d from "/fluent-dom-esm.ts"; import $d from "/fluent-dom-esm.js";
// Create new objects in memory with a simple, chainable interface // Create new objects in memory with a simple, chainable interface
const $article = $d const $article = $d
@@ -153,7 +153,7 @@
(val) => `<span class="code-str">${val}</span>`, (val) => `<span class="code-str">${val}</span>`,
) )
.replace(/\.\w+/g, (val) => .replace(/\.\w+/g, (val) =>
val !== ".ts" val !== ".js"
? `<span class="code-func">${val}</span>` ? `<span class="code-func">${val}</span>`
: val, : val,
) )

View File

@@ -1,5 +1,5 @@
{ {
"name": "@itsericwoodward/fluent-dom-esm", "name": "@itsericwoodward/fluent-dom-esm",
"version": "2.2.0", "version": "2.2.1",
"exports": "./src/fluent-dom-esm.ts" "exports": "./src/fluent-dom-esm.ts"
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "fluent-dom-esm", "name": "fluent-dom-esm",
"version": "2.2.0", "version": "2.2.1",
"description": "", "description": "",
"license": "WTFPL", "license": "WTFPL",
"exports": { "exports": {
@@ -21,13 +21,16 @@
"preview": "vite preview", "preview": "vite preview",
"prepublishOnly": "yarn build", "prepublishOnly": "yarn build",
"postpublish": "git push && git push --tags", "postpublish": "git push && git push --tags",
"test": "echo 'No tests yet!'" "test": "vitest"
}, },
"devDependencies": { "devDependencies": {
"@testing-library/jest-dom": "^6.8.0",
"happy-dom": "^18.0.1",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"typescript": "^5.9.2", "typescript": "^5.9.2",
"unplugin-dts": "1.0.0-beta.6", "unplugin-dts": "1.0.0-beta.6",
"vite": "^7.1.5" "vite": "^7.1.5",
"vitest": "^3.2.4"
}, },
"packageManager": "yarn@4.9.4" "packageManager": "yarn@4.9.4"
} }

View File

@@ -72,7 +72,7 @@
.t( .t(
` `
\<script type="module"> \<script type="module">
import $d from "/fluent-dom-esm.ts"; import $d from "/fluent-dom-esm.js";
// Create new objects in memory with a simple, chainable interface // Create new objects in memory with a simple, chainable interface
const $article = $d const $article = $d
@@ -149,7 +149,7 @@
(val) => `<span class="code-str">${val}</span>`, (val) => `<span class="code-str">${val}</span>`,
) )
.replace(/\.\w+/g, (val) => .replace(/\.\w+/g, (val) =>
val !== ".ts" val !== ".js"
? `<span class="code-func">${val}</span>` ? `<span class="code-func">${val}</span>`
: val, : val,
) )

1
setupTests.ts Normal file
View File

@@ -0,0 +1 @@
import "@testing-library/jest-dom/vitest";

View File

@@ -0,0 +1,32 @@
// @vitest-environment happy-dom
import { describe, expect, it } from "vitest";
import $d from "../fluent-dom-esm";
describe("fluent-dom-esm tests", () => {
it("should allow for wrapping an existing node", () => {
const $body = $d(document.body);
$d(document.body).app($d.c("div").cls("test-class").t("text content"));
expect($body.toDom()?.innerHTML).toEqual(
'<div class="test-class">text content</div>',
);
expect(document.body?.innerHTML).toEqual(
'<div class="test-class">text content</div>',
);
});
it("should allow for wrapping an existing node via a querySelector for an ID", () => {
$d(document.body)
.app($d.c("div").id("item1").t("Item 1"))
.app($d.c("div").id("item2").t("Item 2"))
.app($d.c("div").id("item3").cls("item-num3").t("Item 3"));
expect($d("#item2").toDom()).toHaveTextContent("Item 2");
expect($d("#item3").toDom()).toHaveClass("item-num3");
});
it("should append text provided via `.text()`", () => {
const testVal = "testing 123";
expect($d.c("div").t(testVal).toDom()).toHaveTextContent(testVal);
});
});

View File

@@ -1,11 +1,11 @@
/** /**
* fluent-dom-esm v2.2.0 * fluent-dom-esm v2.2.1
* *
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.1(.0). * Fluent DOM Manipulation, adapted to ESM and cranked up to v2.2(.1).
* *
* https://git.itsericwoodward.com/eric/fluent-dom-esm * https://git.itsericwoodward.com/eric/fluent-dom-esm
* *
* v2.2.0 Copyright (c) 2025 Eric Woodward * v2.2.1 Copyright (c) 2025 Eric Woodward
* Original copyright (c) 2009 Tommy Montgomery (https://glacius.tmont.com/articles/fluent-dom-manipulation-in-javascript) * Original copyright (c) 2009 Tommy Montgomery (https://glacius.tmont.com/articles/fluent-dom-manipulation-in-javascript)
* *
* Released under the WTFPL (Do What the Fuck You Want to Public License) * Released under the WTFPL (Do What the Fuck You Want to Public License)
@@ -24,7 +24,7 @@ import {
isString, isString,
} from "./fluent-dom-esm.type-guards"; } from "./fluent-dom-esm.type-guards";
const APP_VERSION = "2.2.0"; const APP_VERSION = "2.2.1";
/** /**
* IIFE that creates the FluentDomObject as default export * IIFE that creates the FluentDomObject as default export

View File

@@ -1,4 +1,5 @@
export interface FluentDomObject { export interface FluentDomObject {
(nodeOrQuerySelector: string | HTMLElement): FluentDomObject;
fluentDom: string; fluentDom: string;
a: (name: string, value: string) => FluentDomObject; a: (name: string, value: string) => FluentDomObject;

View File

@@ -6,7 +6,7 @@ import { defineConfig } from 'vite';
const __dirname = dirname(fileURLToPath(import.meta.url)); const __dirname = dirname(fileURLToPath(import.meta.url));
export default defineConfig({ export default defineConfig({
plugins: [dts()], plugins: [dts({exclude: ["./setupTests.ts", "**/*.test.ts"]})],
build: { build: {
lib: { lib: {
entry: resolve(__dirname, 'src/fluent-dom-esm.ts'), entry: resolve(__dirname, 'src/fluent-dom-esm.ts'),
@@ -14,14 +14,6 @@ export default defineConfig({
fileName: 'fluent-dom-esm', fileName: 'fluent-dom-esm',
formats: ['es'] formats: ['es']
}, },
minify: false, minify: false
rollupOptions: {
output: {
banner: '/* my-library version banner */',
footer: '/* follow me on Twitter! @rich_harris footer */',
intro: '/* my-library version intro*/',
outro: '/* follow me on Twitter! @rich_harris outro */',
}
}
} }
}); });

7
vitest.config.js Normal file
View File

@@ -0,0 +1,7 @@
import { defineConfig } from 'vite';
export default defineConfig({
test: {
setupFiles: ["./setupTests.ts"],
},
})

457
yarn.lock
View File

@@ -5,6 +5,13 @@ __metadata:
version: 8 version: 8
cacheKey: 10c0 cacheKey: 10c0
"@adobe/css-tools@npm:^4.4.0":
version: 4.4.4
resolution: "@adobe/css-tools@npm:4.4.4"
checksum: 10c0/8f3e6cfaa5e6286e6f05de01d91d060425be2ebaef490881f5fe6da8bbdb336835c5d373ea337b0c3b0a1af4be048ba18780f0f6021d30809b4545922a7e13d9
languageName: node
linkType: hard
"@esbuild/aix-ppc64@npm:0.25.9": "@esbuild/aix-ppc64@npm:0.25.9":
version: 0.25.9 version: 0.25.9
resolution: "@esbuild/aix-ppc64@npm:0.25.9" resolution: "@esbuild/aix-ppc64@npm:0.25.9"
@@ -446,6 +453,36 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@testing-library/jest-dom@npm:^6.8.0":
version: 6.8.0
resolution: "@testing-library/jest-dom@npm:6.8.0"
dependencies:
"@adobe/css-tools": "npm:^4.4.0"
aria-query: "npm:^5.0.0"
css.escape: "npm:^1.5.1"
dom-accessibility-api: "npm:^0.6.3"
picocolors: "npm:^1.1.1"
redent: "npm:^3.0.0"
checksum: 10c0/4c5b8b433e0339e0399b940ae901a99ae00f1d5ffb7cbb295460b2c44aaad0bc7befcca7b06ceed7aa68a524970077468046c9fe52836ee26f45b807c80a7ff1
languageName: node
linkType: hard
"@types/chai@npm:^5.2.2":
version: 5.2.2
resolution: "@types/chai@npm:5.2.2"
dependencies:
"@types/deep-eql": "npm:*"
checksum: 10c0/49282bf0e8246800ebb36f17256f97bd3a8c4fb31f92ad3c0eaa7623518d7e87f1eaad4ad206960fcaf7175854bdff4cb167e4fe96811e0081b4ada83dd533ec
languageName: node
linkType: hard
"@types/deep-eql@npm:*":
version: 4.0.2
resolution: "@types/deep-eql@npm:4.0.2"
checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844
languageName: node
linkType: hard
"@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0": "@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0":
version: 1.0.8 version: 1.0.8
resolution: "@types/estree@npm:1.0.8" resolution: "@types/estree@npm:1.0.8"
@@ -453,6 +490,105 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^20.0.0":
version: 20.19.14
resolution: "@types/node@npm:20.19.14"
dependencies:
undici-types: "npm:~6.21.0"
checksum: 10c0/cb6a1e3eda43056bf3135d46affbbe5883600adc1928f99247dd9b1a5254823174a91e2d7c6734c2c247a4eb889cb81b0113306e61bf8f4a709b55e86a325f79
languageName: node
linkType: hard
"@types/whatwg-mimetype@npm:^3.0.2":
version: 3.0.2
resolution: "@types/whatwg-mimetype@npm:3.0.2"
checksum: 10c0/dad39d1e4abe760a0a963c84bbdbd26b1df0eb68aff83bdf6ecbb50ad781ead777f6906d19a87007790b750f7500a12e5624d31fc6a1529d14bd19b5c3a316d1
languageName: node
linkType: hard
"@vitest/expect@npm:3.2.4":
version: 3.2.4
resolution: "@vitest/expect@npm:3.2.4"
dependencies:
"@types/chai": "npm:^5.2.2"
"@vitest/spy": "npm:3.2.4"
"@vitest/utils": "npm:3.2.4"
chai: "npm:^5.2.0"
tinyrainbow: "npm:^2.0.0"
checksum: 10c0/7586104e3fd31dbe1e6ecaafb9a70131e4197dce2940f727b6a84131eee3decac7b10f9c7c72fa5edbdb68b6f854353bd4c0fa84779e274207fb7379563b10db
languageName: node
linkType: hard
"@vitest/mocker@npm:3.2.4":
version: 3.2.4
resolution: "@vitest/mocker@npm:3.2.4"
dependencies:
"@vitest/spy": "npm:3.2.4"
estree-walker: "npm:^3.0.3"
magic-string: "npm:^0.30.17"
peerDependencies:
msw: ^2.4.9
vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: true
checksum: 10c0/f7a4aea19bbbf8f15905847ee9143b6298b2c110f8b64789224cb0ffdc2e96f9802876aa2ca83f1ec1b6e1ff45e822abb34f0054c24d57b29ab18add06536ccd
languageName: node
linkType: hard
"@vitest/pretty-format@npm:3.2.4, @vitest/pretty-format@npm:^3.2.4":
version: 3.2.4
resolution: "@vitest/pretty-format@npm:3.2.4"
dependencies:
tinyrainbow: "npm:^2.0.0"
checksum: 10c0/5ad7d4278e067390d7d633e307fee8103958806a419ca380aec0e33fae71b44a64415f7a9b4bc11635d3c13d4a9186111c581d3cef9c65cc317e68f077456887
languageName: node
linkType: hard
"@vitest/runner@npm:3.2.4":
version: 3.2.4
resolution: "@vitest/runner@npm:3.2.4"
dependencies:
"@vitest/utils": "npm:3.2.4"
pathe: "npm:^2.0.3"
strip-literal: "npm:^3.0.0"
checksum: 10c0/e8be51666c72b3668ae3ea348b0196656a4a5adb836cb5e270720885d9517421815b0d6c98bfdf1795ed02b994b7bfb2b21566ee356a40021f5bf4f6ed4e418a
languageName: node
linkType: hard
"@vitest/snapshot@npm:3.2.4":
version: 3.2.4
resolution: "@vitest/snapshot@npm:3.2.4"
dependencies:
"@vitest/pretty-format": "npm:3.2.4"
magic-string: "npm:^0.30.17"
pathe: "npm:^2.0.3"
checksum: 10c0/f8301a3d7d1559fd3d59ed51176dd52e1ed5c2d23aa6d8d6aa18787ef46e295056bc726a021698d8454c16ed825ecba163362f42fa90258bb4a98cfd2c9424fc
languageName: node
linkType: hard
"@vitest/spy@npm:3.2.4":
version: 3.2.4
resolution: "@vitest/spy@npm:3.2.4"
dependencies:
tinyspy: "npm:^4.0.3"
checksum: 10c0/6ebf0b4697dc238476d6b6a60c76ba9eb1dd8167a307e30f08f64149612fd50227682b876420e4c2e09a76334e73f72e3ebf0e350714dc22474258292e202024
languageName: node
linkType: hard
"@vitest/utils@npm:3.2.4":
version: 3.2.4
resolution: "@vitest/utils@npm:3.2.4"
dependencies:
"@vitest/pretty-format": "npm:3.2.4"
loupe: "npm:^3.1.4"
tinyrainbow: "npm:^2.0.0"
checksum: 10c0/024a9b8c8bcc12cf40183c246c244b52ecff861c6deb3477cbf487ac8781ad44c68a9c5fd69f8c1361878e55b97c10d99d511f2597f1f7244b5e5101d028ba64
languageName: node
linkType: hard
"@volar/language-core@npm:2.4.23": "@volar/language-core@npm:2.4.23":
version: 2.4.23 version: 2.4.23
resolution: "@volar/language-core@npm:2.4.23" resolution: "@volar/language-core@npm:2.4.23"
@@ -533,6 +669,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"aria-query@npm:^5.0.0":
version: 5.3.2
resolution: "aria-query@npm:5.3.2"
checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e
languageName: node
linkType: hard
"assertion-error@npm:^2.0.1":
version: 2.0.1
resolution: "assertion-error@npm:2.0.1"
checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8
languageName: node
linkType: hard
"balanced-match@npm:^1.0.0": "balanced-match@npm:^1.0.0":
version: 1.0.2 version: 1.0.2
resolution: "balanced-match@npm:1.0.2" resolution: "balanced-match@npm:1.0.2"
@@ -549,6 +699,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cac@npm:^6.7.14":
version: 6.7.14
resolution: "cac@npm:6.7.14"
checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10
languageName: node
linkType: hard
"cacache@npm:^19.0.1": "cacache@npm:^19.0.1":
version: 19.0.1 version: 19.0.1
resolution: "cacache@npm:19.0.1" resolution: "cacache@npm:19.0.1"
@@ -569,6 +726,26 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"chai@npm:^5.2.0":
version: 5.3.3
resolution: "chai@npm:5.3.3"
dependencies:
assertion-error: "npm:^2.0.1"
check-error: "npm:^2.1.1"
deep-eql: "npm:^5.0.1"
loupe: "npm:^3.1.0"
pathval: "npm:^2.0.0"
checksum: 10c0/b360fd4d38861622e5010c2f709736988b05c7f31042305fa3f4e9911f6adb80ccfb4e302068bf8ed10e835c2e2520cba0f5edc13d878b886987e5aa62483f53
languageName: node
linkType: hard
"check-error@npm:^2.1.1":
version: 2.1.1
resolution: "check-error@npm:2.1.1"
checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e
languageName: node
linkType: hard
"chownr@npm:^3.0.0": "chownr@npm:^3.0.0":
version: 3.0.0 version: 3.0.0
resolution: "chownr@npm:3.0.0" resolution: "chownr@npm:3.0.0"
@@ -624,7 +801,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.4.0": "css.escape@npm:^1.5.1":
version: 1.5.1
resolution: "css.escape@npm:1.5.1"
checksum: 10c0/5e09035e5bf6c2c422b40c6df2eb1529657a17df37fda5d0433d722609527ab98090baf25b13970ca754079a0f3161dd3dfc0e743563ded8cfa0749d861c1525
languageName: node
linkType: hard
"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1":
version: 4.4.1 version: 4.4.1
resolution: "debug@npm:4.4.1" resolution: "debug@npm:4.4.1"
dependencies: dependencies:
@@ -636,6 +820,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"deep-eql@npm:^5.0.1":
version: 5.0.2
resolution: "deep-eql@npm:5.0.2"
checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247
languageName: node
linkType: hard
"dom-accessibility-api@npm:^0.6.3":
version: 0.6.3
resolution: "dom-accessibility-api@npm:0.6.3"
checksum: 10c0/10bee5aa514b2a9a37c87cd81268db607a2e933a050074abc2f6fa3da9080ebed206a320cbc123567f2c3087d22292853bdfdceaffdd4334ffe2af9510b29360
languageName: node
linkType: hard
"eastasianwidth@npm:^0.2.0": "eastasianwidth@npm:^0.2.0":
version: 0.2.0 version: 0.2.0
resolution: "eastasianwidth@npm:0.2.0" resolution: "eastasianwidth@npm:0.2.0"
@@ -680,6 +878,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"es-module-lexer@npm:^1.7.0":
version: 1.7.0
resolution: "es-module-lexer@npm:1.7.0"
checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b
languageName: node
linkType: hard
"esbuild@npm:^0.25.0": "esbuild@npm:^0.25.0":
version: 0.25.9 version: 0.25.9
resolution: "esbuild@npm:0.25.9" resolution: "esbuild@npm:0.25.9"
@@ -776,6 +981,22 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"estree-walker@npm:^3.0.3":
version: 3.0.3
resolution: "estree-walker@npm:3.0.3"
dependencies:
"@types/estree": "npm:^1.0.0"
checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d
languageName: node
linkType: hard
"expect-type@npm:^1.2.1":
version: 1.2.2
resolution: "expect-type@npm:1.2.2"
checksum: 10c0/6019019566063bbc7a690d9281d920b1a91284a4a093c2d55d71ffade5ac890cf37a51e1da4602546c4b56569d2ad2fc175a2ccee77d1ae06cb3af91ef84f44b
languageName: node
linkType: hard
"exponential-backoff@npm:^3.1.1": "exponential-backoff@npm:^3.1.1":
version: 3.1.2 version: 3.1.2
resolution: "exponential-backoff@npm:3.1.2" resolution: "exponential-backoff@npm:3.1.2"
@@ -806,10 +1027,13 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "fluent-dom-esm@workspace:." resolution: "fluent-dom-esm@workspace:."
dependencies: dependencies:
"@testing-library/jest-dom": "npm:^6.8.0"
happy-dom: "npm:^18.0.1"
prettier: "npm:^3.6.2" prettier: "npm:^3.6.2"
typescript: "npm:^5.9.2" typescript: "npm:^5.9.2"
unplugin-dts: "npm:1.0.0-beta.6" unplugin-dts: "npm:1.0.0-beta.6"
vite: "npm:^7.1.5" vite: "npm:^7.1.5"
vitest: "npm:^3.2.4"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -874,6 +1098,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"happy-dom@npm:^18.0.1":
version: 18.0.1
resolution: "happy-dom@npm:18.0.1"
dependencies:
"@types/node": "npm:^20.0.0"
"@types/whatwg-mimetype": "npm:^3.0.2"
whatwg-mimetype: "npm:^3.0.0"
checksum: 10c0/10f2115f5001fdaf1aedcbda89c15248a1c2e43a25d7e774cb641a35bf6763cef9097b438ef3c2248ab59a0ef33b3e88cb94da096f2bb0fc109ba3f43f7c66d4
languageName: node
linkType: hard
"http-cache-semantics@npm:^4.1.1": "http-cache-semantics@npm:^4.1.1":
version: 4.2.0 version: 4.2.0
resolution: "http-cache-semantics@npm:4.2.0" resolution: "http-cache-semantics@npm:4.2.0"
@@ -917,6 +1152,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"indent-string@npm:^4.0.0":
version: 4.0.0
resolution: "indent-string@npm:4.0.0"
checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f
languageName: node
linkType: hard
"ip-address@npm:^10.0.1": "ip-address@npm:^10.0.1":
version: 10.0.1 version: 10.0.1
resolution: "ip-address@npm:10.0.1" resolution: "ip-address@npm:10.0.1"
@@ -958,6 +1200,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"js-tokens@npm:^9.0.1":
version: 9.0.1
resolution: "js-tokens@npm:9.0.1"
checksum: 10c0/68dcab8f233dde211a6b5fd98079783cbcd04b53617c1250e3553ee16ab3e6134f5e65478e41d82f6d351a052a63d71024553933808570f04dbf828d7921e80e
languageName: node
linkType: hard
"kolorist@npm:^1.8.0": "kolorist@npm:^1.8.0":
version: 1.8.0 version: 1.8.0
resolution: "kolorist@npm:1.8.0" resolution: "kolorist@npm:1.8.0"
@@ -976,6 +1225,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"loupe@npm:^3.1.0, loupe@npm:^3.1.4":
version: 3.2.1
resolution: "loupe@npm:3.2.1"
checksum: 10c0/910c872cba291309664c2d094368d31a68907b6f5913e989d301b5c25f30e97d76d77f23ab3bf3b46d0f601ff0b6af8810c10c31b91d2c6b2f132809ca2cc705
languageName: node
linkType: hard
"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
version: 10.4.3 version: 10.4.3
resolution: "lru-cache@npm:10.4.3" resolution: "lru-cache@npm:10.4.3"
@@ -1011,6 +1267,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"min-indent@npm:^1.0.0":
version: 1.0.1
resolution: "min-indent@npm:1.0.1"
checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c
languageName: node
linkType: hard
"minimatch@npm:^9.0.4": "minimatch@npm:^9.0.4":
version: 9.0.5 version: 9.0.5
resolution: "minimatch@npm:9.0.5" resolution: "minimatch@npm:9.0.5"
@@ -1216,6 +1479,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pathval@npm:^2.0.0":
version: 2.0.1
resolution: "pathval@npm:2.0.1"
checksum: 10c0/460f4709479fbf2c45903a65655fc8f0a5f6d808f989173aeef5fdea4ff4f303dc13f7870303999add60ec49d4c14733895c0a869392e9866f1091fa64fd7581
languageName: node
linkType: hard
"picocolors@npm:^1.1.1": "picocolors@npm:^1.1.1":
version: 1.1.1 version: 1.1.1
resolution: "picocolors@npm:1.1.1" resolution: "picocolors@npm:1.1.1"
@@ -1296,6 +1566,16 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"redent@npm:^3.0.0":
version: 3.0.0
resolution: "redent@npm:3.0.0"
dependencies:
indent-string: "npm:^4.0.0"
strip-indent: "npm:^3.0.0"
checksum: 10c0/d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae
languageName: node
linkType: hard
"retry@npm:^0.12.0": "retry@npm:^0.12.0":
version: 0.12.0 version: 0.12.0
resolution: "retry@npm:0.12.0" resolution: "retry@npm:0.12.0"
@@ -1413,6 +1693,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"siginfo@npm:^2.0.0":
version: 2.0.0
resolution: "siginfo@npm:2.0.0"
checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34
languageName: node
linkType: hard
"signal-exit@npm:^4.0.1": "signal-exit@npm:^4.0.1":
version: 4.1.0 version: 4.1.0
resolution: "signal-exit@npm:4.1.0" resolution: "signal-exit@npm:4.1.0"
@@ -1464,6 +1751,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"stackback@npm:0.0.2":
version: 0.0.2
resolution: "stackback@npm:0.0.2"
checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983
languageName: node
linkType: hard
"std-env@npm:^3.9.0":
version: 3.9.0
resolution: "std-env@npm:3.9.0"
checksum: 10c0/4a6f9218aef3f41046c3c7ecf1f98df00b30a07f4f35c6d47b28329bc2531eef820828951c7d7b39a1c5eb19ad8a46e3ddfc7deb28f0a2f3ceebee11bab7ba50
languageName: node
linkType: hard
"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0":
version: 4.2.3 version: 4.2.3
resolution: "string-width@npm:4.2.3" resolution: "string-width@npm:4.2.3"
@@ -1504,6 +1805,24 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"strip-indent@npm:^3.0.0":
version: 3.0.0
resolution: "strip-indent@npm:3.0.0"
dependencies:
min-indent: "npm:^1.0.0"
checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679
languageName: node
linkType: hard
"strip-literal@npm:^3.0.0":
version: 3.0.0
resolution: "strip-literal@npm:3.0.0"
dependencies:
js-tokens: "npm:^9.0.1"
checksum: 10c0/d81657f84aba42d4bbaf2a677f7e7f34c1f3de5a6726db8bc1797f9c0b303ba54d4660383a74bde43df401cf37cce1dff2c842c55b077a4ceee11f9e31fba828
languageName: node
linkType: hard
"tar@npm:^7.4.3": "tar@npm:^7.4.3":
version: 7.4.3 version: 7.4.3
resolution: "tar@npm:7.4.3" resolution: "tar@npm:7.4.3"
@@ -1518,7 +1837,21 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": "tinybench@npm:^2.9.0":
version: 2.9.0
resolution: "tinybench@npm:2.9.0"
checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c
languageName: node
linkType: hard
"tinyexec@npm:^0.3.2":
version: 0.3.2
resolution: "tinyexec@npm:0.3.2"
checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90
languageName: node
linkType: hard
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15":
version: 0.2.15 version: 0.2.15
resolution: "tinyglobby@npm:0.2.15" resolution: "tinyglobby@npm:0.2.15"
dependencies: dependencies:
@@ -1528,6 +1861,27 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tinypool@npm:^1.1.1":
version: 1.1.1
resolution: "tinypool@npm:1.1.1"
checksum: 10c0/bf26727d01443061b04fa863f571016950888ea994ba0cd8cba3a1c51e2458d84574341ab8dbc3664f1c3ab20885c8cf9ff1cc4b18201f04c2cde7d317fff69b
languageName: node
linkType: hard
"tinyrainbow@npm:^2.0.0":
version: 2.0.0
resolution: "tinyrainbow@npm:2.0.0"
checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f
languageName: node
linkType: hard
"tinyspy@npm:^4.0.3":
version: 4.0.3
resolution: "tinyspy@npm:4.0.3"
checksum: 10c0/0a92a18b5350945cc8a1da3a22c9ad9f4e2945df80aaa0c43e1b3a3cfb64d8501e607ebf0305e048e3c3d3e0e7f8eb10cea27dc17c21effb73e66c4a3be36373
languageName: node
linkType: hard
"typescript@npm:^5.9.2": "typescript@npm:^5.9.2":
version: 5.9.2 version: 5.9.2
resolution: "typescript@npm:5.9.2" resolution: "typescript@npm:5.9.2"
@@ -1555,6 +1909,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici-types@npm:~6.21.0":
version: 6.21.0
resolution: "undici-types@npm:6.21.0"
checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04
languageName: node
linkType: hard
"unique-filename@npm:^4.0.0": "unique-filename@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "unique-filename@npm:4.0.0" resolution: "unique-filename@npm:4.0.0"
@@ -1628,7 +1989,22 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vite@npm:^7.1.5": "vite-node@npm:3.2.4":
version: 3.2.4
resolution: "vite-node@npm:3.2.4"
dependencies:
cac: "npm:^6.7.14"
debug: "npm:^4.4.1"
es-module-lexer: "npm:^1.7.0"
pathe: "npm:^2.0.3"
vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0"
bin:
vite-node: vite-node.mjs
checksum: 10c0/6ceca67c002f8ef6397d58b9539f80f2b5d79e103a18367288b3f00a8ab55affa3d711d86d9112fce5a7fa658a212a087a005a045eb8f4758947dd99af2a6c6b
languageName: node
linkType: hard
"vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0, vite@npm:^7.1.5":
version: 7.1.5 version: 7.1.5
resolution: "vite@npm:7.1.5" resolution: "vite@npm:7.1.5"
dependencies: dependencies:
@@ -1683,6 +2059,62 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"vitest@npm:^3.2.4":
version: 3.2.4
resolution: "vitest@npm:3.2.4"
dependencies:
"@types/chai": "npm:^5.2.2"
"@vitest/expect": "npm:3.2.4"
"@vitest/mocker": "npm:3.2.4"
"@vitest/pretty-format": "npm:^3.2.4"
"@vitest/runner": "npm:3.2.4"
"@vitest/snapshot": "npm:3.2.4"
"@vitest/spy": "npm:3.2.4"
"@vitest/utils": "npm:3.2.4"
chai: "npm:^5.2.0"
debug: "npm:^4.4.1"
expect-type: "npm:^1.2.1"
magic-string: "npm:^0.30.17"
pathe: "npm:^2.0.3"
picomatch: "npm:^4.0.2"
std-env: "npm:^3.9.0"
tinybench: "npm:^2.9.0"
tinyexec: "npm:^0.3.2"
tinyglobby: "npm:^0.2.14"
tinypool: "npm:^1.1.1"
tinyrainbow: "npm:^2.0.0"
vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0"
vite-node: "npm:3.2.4"
why-is-node-running: "npm:^2.3.0"
peerDependencies:
"@edge-runtime/vm": "*"
"@types/debug": ^4.1.12
"@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
"@vitest/browser": 3.2.4
"@vitest/ui": 3.2.4
happy-dom: "*"
jsdom: "*"
peerDependenciesMeta:
"@edge-runtime/vm":
optional: true
"@types/debug":
optional: true
"@types/node":
optional: true
"@vitest/browser":
optional: true
"@vitest/ui":
optional: true
happy-dom:
optional: true
jsdom:
optional: true
bin:
vitest: vitest.mjs
checksum: 10c0/5bf53ede3ae6a0e08956d72dab279ae90503f6b5a05298a6a5e6ef47d2fd1ab386aaf48fafa61ed07a0ebfe9e371772f1ccbe5c258dd765206a8218bf2eb79eb
languageName: node
linkType: hard
"vscode-uri@npm:^3.0.8": "vscode-uri@npm:^3.0.8":
version: 3.1.0 version: 3.1.0
resolution: "vscode-uri@npm:3.1.0" resolution: "vscode-uri@npm:3.1.0"
@@ -1697,6 +2129,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"whatwg-mimetype@npm:^3.0.0":
version: 3.0.0
resolution: "whatwg-mimetype@npm:3.0.0"
checksum: 10c0/323895a1cda29a5fb0b9ca82831d2c316309fede0365047c4c323073e3239067a304a09a1f4b123b9532641ab604203f33a1403b5ca6a62ef405bcd7a204080f
languageName: node
linkType: hard
"which@npm:^2.0.1": "which@npm:^2.0.1":
version: 2.0.2 version: 2.0.2
resolution: "which@npm:2.0.2" resolution: "which@npm:2.0.2"
@@ -1719,6 +2158,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"why-is-node-running@npm:^2.3.0":
version: 2.3.0
resolution: "why-is-node-running@npm:2.3.0"
dependencies:
siginfo: "npm:^2.0.0"
stackback: "npm:0.0.2"
bin:
why-is-node-running: cli.js
checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054
languageName: node
linkType: hard
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version: 7.0.0 version: 7.0.0
resolution: "wrap-ansi@npm:7.0.0" resolution: "wrap-ansi@npm:7.0.0"