Compare commits

..

1 Commits

Author SHA1 Message Date
af2e0d2eec 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!
2025-09-13 03:05:49 -04:00
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"