Compare commits

...

2 Commits

Author SHA1 Message Date
c9de0883eb update to v2.2.0
add library version getter
fix demo issues
2025-09-13 01:55:41 -04:00
c10e8cd345 update to v2.1.0
add support for querySeletor
add toHTMLElement
clean up comments
fix bug in README
2025-09-13 01:21:22 -04:00
13 changed files with 397 additions and 212 deletions

View File

@@ -54,14 +54,18 @@ If everything goes as expected, you should have a newly built `fluent-dom-esm.js
## Examples
All assume that `$d` is the default function from `fluent-dom-esm` (`import $d from './fluent-dom-esm.js'`);
All assume that `$d` is the default function from `fluent-dom-esm`:
```
import $d from "@itsericwoodward/fluent-dom-esm";
```
- For more examples, see the `demo.html` file in the `dist` folder.
### Create a Paragraph
```
$(document.body).app($d
$d(document.body).app($d
.c("p")
.s("background-color", "yellow")
.s("color", "black")
@@ -99,7 +103,7 @@ const $ul = $d
);
});
$(document.body).app($ul);
$d(document.body).app($ul);
```
renders (with added spaces) as
@@ -114,6 +118,32 @@ renders (with added spaces) as
</body>
```
### Access via QuerySelector
Given the [example list above](#create-a-list):
```
$d('#example-list')
.app($d
.c("li")
.id(`fluentDom-example-list-item4`)
.t("List Item 4")
);
```
renders (with added spaces) as
```
<body>
<ul class="example-list" id="example-list">
<li id="fluentDom-example-list-item1">List Item 1</li>
<li id="fluentDom-example-list-item2">List Item 2</li>
<li id="fluentDom-example-list-item3">List Item 3</li>
<li id="fluentDom-example-list-item4">List Item 4</li>
</ul>
</body>
```
## License
Copyright &copy; 2025 Eric Woodward
@@ -123,8 +153,7 @@ Based on [original source](https://glacius.tmont.com/articles/fluent-dom-manipul
```
This program is free software. It comes without any warranty, to the
extent permitted by applicable law. You can redistribute it and/or
modify it under the terms of the Do What The Fuck You Want To Public
License, Version 2, as published by Sam Hocevar.
modify it under the terms of the following license:
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

70
dist/demo.html vendored
View File

@@ -11,21 +11,27 @@
<script type="module">
import $d from "/fluent-dom-esm.js";
// Create new objects in memory with a simple, chainable interface
const $article = $d
.c("article")
.create("article")
.id("fde-article")
.cls("cool-article")
.app($d.c("h1").cls("cool-heading").t("fluent-dom-esm"))
.app(
.className("cool-article")
.append(
$d
.c("p")
.s("background-color", "#db7c17")
.s("color", "var(--main-dark)")
.t("Why is it so cool?"),
.create("h1")
.className("cool-heading")
.text(`fluent-dom-esm v${$d.version()}`),
)
.append(
$d
.create("p")
.style("background-color", "#db7c17")
.style("color", "var(--main-dark)")
.text("Why is it so cool?"),
);
// Or if you prefer the shorter syntax...
const $ul = $d.c("ul").id("fluentDom-example-list");
[
"Remarkably simple syntax",
"Surprisingly powerful features",
@@ -35,10 +41,12 @@
$d
.c("li")
.id(`fluentDom-example-list-item${idx + 1}`)
.s("font-style", "italic")
.t(reason),
);
});
// HTMLElements an also be wrapped and combined with other in-memory objects
$d(document.body).app(
$article
.app($ul)
@@ -46,6 +54,14 @@
$d.c("em").t("Try it today!").style("color", "#c43a19"),
),
);
// Or pass in a querySelector value to wrap the first matching element
$d("#fluentDom-example-list").app(
$d
.c("li")
.id("fluentDom-example-list-itemExtra")
.t("More features coming soon"),
);
</script>
<script type="module">
@@ -56,23 +72,29 @@
.t(
`
\<script type="module">
import $d from "/src/fluent-dom-esm.ts";
import $d from "/fluent-dom-esm.ts";
// Create new objects in memory with a simple, chainable interface
const $article = $d
.c("article")
.create("article")
.id("fde-article")
.cls("cool-article")
.app($d.c("h1").cls("cool-heading").t("fluent-dom-esm"))
.app(
.className("cool-article")
.append(
$d
.c("p")
.s("background-color", "#db7c17")
.s("color", "var(--main-dark)")
.t("Why is it so cool?"),
.create("h1")
.className("cool-heading")
.text("fluent-dom-esm"),
)
.append(
$d
.create("p")
.style("background-color", "#db7c17")
.style("color", "var(--main-dark)")
.text("Why is it so cool?"),
);
// Or if you prefer the shorter syntax
const $ul = $d.c("ul").id("fluentDom-example-list");
[
"Remarkably simple syntax",
"Surprisingly powerful features",
@@ -82,10 +104,12 @@
$d
.c("li")
.id(\`fluentDom-example-list-item$\{idx + 1}\`)
.s("font-style", "italic")
.t(reason),
);
});
// HTMLElements can also be wrapped and combined with other in-memory objects
$d(document.body).app(
$article
.app($ul)
@@ -94,6 +118,14 @@
),
);
// Or pass in a querySelector value to wrap the first matching element
$d("#fluentDom-example-list").app(
$d
.c("li")
.id("fluentDom-example-list-itemExtra")
.t("More features coming soon"),
);
<\/script>
`
.trim()

View File

@@ -4,31 +4,38 @@ const isHTMLElement = (value) => !!value.nodeType;
const isNumber = (value) => typeof value === "number";
const isString = (value) => typeof value === "string";
/**
* fluent-dom-esm v2.0.0
* fluent-dom-esm v2.2.0
*
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.0(.0).
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.1(.0).
*
* https://git.itsericwoodward.com/eric/fluent-dom-esm
*
* v2.0.0 Copyright (c) 2025 Eric Woodward
* v2.2.0 Copyright (c) 2025 Eric Woodward
* 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)
*
* @author Eric Woodward (v2.0.0 update)
* @author Eric Woodward (v2 update)
* @author Tommy Montgomery (original)
* @license http://sam.zoy.org/wtfpl/
*/
const APP_VERSION = "2.0.0";
const APP_VERSION = "2.2.0";
const fluentDomEsm = (function() {
const FluentDom = function(node) {
return new FluentDomInternal(node);
const FluentDom = function(nodeOrQuerySelector) {
if (typeof nodeOrQuerySelector !== "string")
return new FluentDomInternal(nodeOrQuerySelector);
const f = new FluentDomInternal();
f.querySelector(nodeOrQuerySelector);
return f;
};
FluentDom.create = FluentDom.c = function(tagName) {
FluentDom.c = FluentDom.create = function(tagName) {
const f = new FluentDomInternal();
f.create(tagName);
return f;
};
FluentDom.v = FluentDom.version = function() {
return APP_VERSION;
};
const FluentDomInternal = function(node) {
let root = node || null;
this.fluentDom = APP_VERSION;
@@ -97,6 +104,10 @@ const fluentDomEsm = (function() {
root.addEventListener(...props);
return this;
};
this.q = this.querySelector = function(selector) {
root = document.querySelector(selector);
return this;
};
function styleFunction(prop, value) {
if (!root) {
throw new Error("Cannot get or set style for a non-element");
@@ -118,21 +129,17 @@ const fluentDomEsm = (function() {
this.s = this.style = styleFunction;
this.t = this.text = function(text) {
if (!root) {
throw new Error(
"Cannot get or set innerText for a non-element"
);
throw new Error("Cannot set innerText for a non-element");
}
return this.append(text);
};
this.title = function(title) {
if (!root) {
throw new Error(
"Cannot get or set outerHTML for a non-element"
);
throw new Error("Cannot get or set title for a non-element");
}
return this.attr("title", title);
};
this.toDom = function() {
this.toDom = this.toHTMLElement = function() {
return root;
};
this.unlisten = function(...props) {
@@ -142,6 +149,9 @@ const fluentDomEsm = (function() {
root.removeEventListener(...props);
return this;
};
this.v = this.version = function() {
return APP_VERSION;
};
};
return FluentDom;
})();

View File

@@ -5,22 +5,27 @@ export interface FluentDomObject {
append: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
attr: (name: string, value: string) => FluentDomObject;
c: (tagName: string) => FluentDomObject;
create: (tagName: string) => FluentDomObject;
className: (className: string) => FluentDomObject;
clear: () => FluentDomObject;
cls: (className: string) => FluentDomObject;
clr: () => FluentDomObject;
cls: (className: string) => FluentDomObject;
create: (tagName: string) => FluentDomObject;
h: (url: string) => FluentDomObject;
href: (url: string) => FluentDomObject;
html: (content: string) => FluentDomObject;
id: (id: string) => FluentDomObject;
l: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
listen: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
q: (selector: string) => FluentDomObject;
querySelector: (selector: string) => FluentDomObject;
s: ((prop: CSSStyleDeclaration) => FluentDomObject) | ((prop: string, value: string) => FluentDomObject);
style: ((prop: CSSStyleDeclaration) => FluentDomObject) | ((prop: string, value: string) => FluentDomObject);
t: (text: string) => FluentDomObject;
text: (text: string) => FluentDomObject;
title: (title: string) => FluentDomObject;
toDom: () => HTMLElement | null;
toHTMLElement: () => HTMLElement | null;
unlisten: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
v: () => string;
version: () => string;
}

View File

@@ -47,6 +47,10 @@ figure {
color: #347c7a;
}
.code-cmnt {
color: #ccc;
}
.code-dom {
color: var(--main-light);
}

View File

@@ -11,21 +11,27 @@
<script type="module">
import $d from "/src/fluent-dom-esm.ts";
// Create new objects in memory with a simple, chainable interface
const $article = $d
.c("article")
.create("article")
.id("fde-article")
.cls("cool-article")
.app($d.c("h1").cls("cool-heading").t("fluent-dom-esm"))
.app(
.className("cool-article")
.append(
$d
.c("p")
.s("background-color", "#db7c17")
.s("color", "var(--main-dark)")
.t("Why is it so cool?"),
.create("h1")
.className("cool-heading")
.text(`fluent-dom-esm v${$d.version()}`),
)
.append(
$d
.create("p")
.style("background-color", "#db7c17")
.style("color", "var(--main-dark)")
.text("Why is it so cool?"),
);
// Or if you prefer the shorter syntax...
const $ul = $d.c("ul").id("fluentDom-example-list");
[
"Remarkably simple syntax",
"Surprisingly powerful features",
@@ -35,10 +41,12 @@
$d
.c("li")
.id(`fluentDom-example-list-item${idx + 1}`)
.s("font-style", "italic")
.t(reason),
);
});
// HTMLElements an also be wrapped and combined with other in-memory objects
$d(document.body).app(
$article
.app($ul)
@@ -46,6 +54,14 @@
$d.c("em").t("Try it today!").style("color", "#c43a19"),
),
);
// Or pass in a querySelector value to wrap the first matching element
$d("#fluentDom-example-list").app(
$d
.c("li")
.id("fluentDom-example-list-itemExtra")
.t("More features coming soon"),
);
</script>
<script type="module">
@@ -56,23 +72,29 @@
.t(
`
\<script type="module">
import $d from "/src/fluent-dom-esm.ts";
import $d from "/fluent-dom-esm.ts";
// Create new objects in memory with a simple, chainable interface
const $article = $d
.c("article")
.create("article")
.id("fde-article")
.cls("cool-article")
.app($d.c("h1").cls("cool-heading").t("fluent-dom-esm"))
.app(
.className("cool-article")
.append(
$d
.c("p")
.s("background-color", "#db7c17")
.s("color", "var(--main-dark)")
.t("Why is it so cool?"),
.create("h1")
.className("cool-heading")
.text("fluent-dom-esm"),
)
.append(
$d
.create("p")
.style("background-color", "#db7c17")
.style("color", "var(--main-dark)")
.text("Why is it so cool?"),
);
// Or if you prefer the shorter syntax
const $ul = $d.c("ul").id("fluentDom-example-list");
[
"Remarkably simple syntax",
"Surprisingly powerful features",
@@ -82,10 +104,12 @@
$d
.c("li")
.id(\`fluentDom-example-list-item$\{idx + 1}\`)
.s("font-style", "italic")
.t(reason),
);
});
// HTMLElements can also be wrapped and combined with other in-memory objects
$d(document.body).app(
$article
.app($ul)
@@ -94,6 +118,14 @@
),
);
// Or pass in a querySelector value to wrap the first matching element
$d("#fluentDom-example-list").app(
$d
.c("li")
.id("fluentDom-example-list-itemExtra")
.t("More features coming soon"),
);
<\/script>
`
.trim()
@@ -112,6 +144,10 @@
? `<span class="code-str">${val}</span>`
: val,
)
.replace(
/\/\/.*/g,
(val) => `<span class="code-cmnt">${val}</span>`,
)
.replace(
/\`[^`]+\`/g,
(val) => `<span class="code-str">${val}</span>`,

View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "fluent-dom-esm",
"version": "2.0.0",
"version": "2.2.0",
"description": "",
"license": "WTFPL",
"exports": {
@@ -27,7 +27,7 @@
"prettier": "^3.6.2",
"typescript": "^5.9.2",
"unplugin-dts": "1.0.0-beta.6",
"vite": "^7.1.4"
"vite": "^7.1.5"
},
"packageManager": "yarn@4.9.4"
}

View File

@@ -11,21 +11,27 @@
<script type="module">
import $d from "/fluent-dom-esm.js";
// Create new objects in memory with a simple, chainable interface
const $article = $d
.c("article")
.create("article")
.id("fde-article")
.cls("cool-article")
.app($d.c("h1").cls("cool-heading").t("fluent-dom-esm"))
.app(
.className("cool-article")
.append(
$d
.c("p")
.s("background-color", "#db7c17")
.s("color", "var(--main-dark)")
.t("Why is it so cool?"),
.create("h1")
.className("cool-heading")
.text(`fluent-dom-esm v${$d.version()}`),
)
.append(
$d
.create("p")
.style("background-color", "#db7c17")
.style("color", "var(--main-dark)")
.text("Why is it so cool?"),
);
// Or if you prefer the shorter syntax...
const $ul = $d.c("ul").id("fluentDom-example-list");
[
"Remarkably simple syntax",
"Surprisingly powerful features",
@@ -35,10 +41,12 @@
$d
.c("li")
.id(`fluentDom-example-list-item${idx + 1}`)
.s("font-style", "italic")
.t(reason),
);
});
// HTMLElements an also be wrapped and combined with other in-memory objects
$d(document.body).app(
$article
.app($ul)
@@ -46,6 +54,14 @@
$d.c("em").t("Try it today!").style("color", "#c43a19"),
),
);
// Or pass in a querySelector value to wrap the first matching element
$d("#fluentDom-example-list").app(
$d
.c("li")
.id("fluentDom-example-list-itemExtra")
.t("More features coming soon"),
);
</script>
<script type="module">
@@ -56,23 +72,29 @@
.t(
`
\<script type="module">
import $d from "/src/fluent-dom-esm.ts";
import $d from "/fluent-dom-esm.ts";
// Create new objects in memory with a simple, chainable interface
const $article = $d
.c("article")
.create("article")
.id("fde-article")
.cls("cool-article")
.app($d.c("h1").cls("cool-heading").t("fluent-dom-esm"))
.app(
.className("cool-article")
.append(
$d
.c("p")
.s("background-color", "#db7c17")
.s("color", "var(--main-dark)")
.t("Why is it so cool?"),
.create("h1")
.className("cool-heading")
.text("fluent-dom-esm"),
)
.append(
$d
.create("p")
.style("background-color", "#db7c17")
.style("color", "var(--main-dark)")
.text("Why is it so cool?"),
);
// Or if you prefer the shorter syntax
const $ul = $d.c("ul").id("fluentDom-example-list");
[
"Remarkably simple syntax",
"Surprisingly powerful features",
@@ -82,10 +104,12 @@
$d
.c("li")
.id(\`fluentDom-example-list-item$\{idx + 1}\`)
.s("font-style", "italic")
.t(reason),
);
});
// HTMLElements can also be wrapped and combined with other in-memory objects
$d(document.body).app(
$article
.app($ul)
@@ -94,6 +118,14 @@
),
);
// Or pass in a querySelector value to wrap the first matching element
$d("#fluentDom-example-list").app(
$d
.c("li")
.id("fluentDom-example-list-itemExtra")
.t("More features coming soon"),
);
<\/script>
`
.trim()

View File

@@ -47,6 +47,10 @@ figure {
color: #347c7a;
}
.code-cmnt {
color: #ccc;
}
.code-dom {
color: var(--main-light);
}

View File

@@ -1,16 +1,16 @@
/**
* fluent-dom-esm v2.0.0
* fluent-dom-esm v2.2.0
*
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.0(.0).
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.1(.0).
*
* https://git.itsericwoodward.com/eric/fluent-dom-esm
*
* v2.0.0 Copyright (c) 2025 Eric Woodward
* v2.2.0 Copyright (c) 2025 Eric Woodward
* 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)
*
* @author Eric Woodward (v2.0.0 update)
* @author Eric Woodward (v2 update)
* @author Tommy Montgomery (original)
* @license http://sam.zoy.org/wtfpl/
*/
@@ -24,7 +24,7 @@ import {
isString,
} from "./fluent-dom-esm.type-guards";
const APP_VERSION = "2.0.0";
const APP_VERSION = "2.2.0";
/**
* IIFE that creates the FluentDomObject as default export
@@ -33,19 +33,31 @@ export default (function () {
/**
* Wraps provided element in a FluentDomObject which is then returned
*/
const FluentDom = function (node: HTMLElement) {
return new (FluentDomInternal as any)(node);
const FluentDom = function (nodeOrQuerySelector: string | HTMLElement) {
if (typeof nodeOrQuerySelector !== "string")
return new (FluentDomInternal as any)(nodeOrQuerySelector);
const f = new (FluentDomInternal as any)();
f.querySelector(nodeOrQuerySelector);
return f;
};
/**
* Creates a new HTML element which is wrapped in a FluentDomObject and returned
*/
FluentDom.create = FluentDom.c = function (tagName: string) {
FluentDom.c = FluentDom.create = function (tagName: string) {
const f = new (FluentDomInternal as any)();
f.create(tagName);
return f;
};
/**
* Returns library version
*/
FluentDom.v = FluentDom.version = function () {
return APP_VERSION;
};
/**
* The internal representation of the FluentDomObject
*/
@@ -168,8 +180,13 @@ export default (function () {
return this;
};
this.q = this.querySelector = function (selector: string) {
root = document.querySelector(selector);
return this;
};
/**
* Gets or sets a one or more style attributes on the wrapped HTMLElement
* Sets one or more style attributes on the wrapped HTMLElement
*/
function styleFunction(
this: FluentDomObject,
@@ -211,35 +228,31 @@ export default (function () {
this.s = this.style = styleFunction;
/**
* Gets or sets the wrapped HTMLElement's "innerText" property
* Sets the wrapped HTMLElement's "innerText" property via `this.append`
*/
this.t = this.text = function (text) {
if (!root) {
throw new Error(
"Cannot get or set innerText for a non-element",
);
throw new Error("Cannot set innerText for a non-element");
}
return this.append(text);
};
/**
* Gets or sets the "title" attribute on the wrapped HTMLElement
* Sets the "title" attribute on the wrapped HTMLElement
*/
this.title = function (title) {
if (!root) {
throw new Error(
"Cannot get or set outerHTML for a non-element",
);
throw new Error("Cannot get or set title for a non-element");
}
return this.attr("title", title);
};
/**
* Gets the wrapped HTMLElement itself
* Gets the wrapped HTMLElement
*/
this.toDom = function () {
this.toDom = this.toHTMLElement = function () {
return root;
};
@@ -254,6 +267,13 @@ export default (function () {
root.removeEventListener(...props);
return this;
};
/**
* Returns library version
*/
this.v = this.version = function () {
return APP_VERSION;
};
};
return FluentDom;

View File

@@ -5,16 +5,20 @@ export interface FluentDomObject {
app: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
append: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
attr: (name: string, value: string) => FluentDomObject;
c: (tagName: string) => FluentDomObject;
create: (tagName: string) => FluentDomObject;
className: (className: string) => FluentDomObject;
clear: () => FluentDomObject;
cls: (className: string) => FluentDomObject;
clr: () => FluentDomObject;
cls: (className: string) => FluentDomObject;
create: (tagName: string) => FluentDomObject;
h: (url: string) => FluentDomObject;
href: (url: string) => FluentDomObject;
html: (content: string) => FluentDomObject;
id: (id: string) => FluentDomObject;
l: (
type: keyof HTMLElementEventMap,
listener: () => {},
@@ -25,6 +29,10 @@ export interface FluentDomObject {
listener: () => {},
optionsOrUseCapture?: boolean | object,
) => FluentDomObject;
q: (selector: string) => FluentDomObject;
querySelector: (selector: string) => FluentDomObject;
s:
| ((prop: CSSStyleDeclaration) => FluentDomObject)
| ((prop: string, value: string) => FluentDomObject);
@@ -36,9 +44,14 @@ export interface FluentDomObject {
text: (text: string) => FluentDomObject;
title: (title: string) => FluentDomObject;
toDom: () => HTMLElement | null;
toHTMLElement: () => HTMLElement | null;
unlisten: (
type: keyof HTMLElementEventMap,
listener: () => {},
optionsOrUseCapture?: boolean | object,
) => FluentDomObject;
v: () => string;
version: () => string;
}

218
yarn.lock
View File

@@ -245,12 +245,12 @@ __metadata:
linkType: hard
"@jridgewell/trace-mapping@npm:^0.3.24":
version: 0.3.30
resolution: "@jridgewell/trace-mapping@npm:0.3.30"
version: 0.3.31
resolution: "@jridgewell/trace-mapping@npm:0.3.31"
dependencies:
"@jridgewell/resolve-uri": "npm:^3.1.0"
"@jridgewell/sourcemap-codec": "npm:^1.4.14"
checksum: 10c0/3a1516c10f44613b9ba27c37a02ff8f410893776b2b3dad20a391b51b884dd60f97bbb56936d65d2ff8fe978510a0000266654ab8426bdb9ceb5fb4585b19e23
checksum: 10c0/4b30ec8cd56c5fd9a661f088230af01e0c1a3888d11ffb6b47639700f71225be21d1f7e168048d6d4f9449207b978a235c07c8f15c07705685d16dc06280e9d9
languageName: node
linkType: hard
@@ -299,149 +299,149 @@ __metadata:
languageName: node
linkType: hard
"@rollup/rollup-android-arm-eabi@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.50.0"
"@rollup/rollup-android-arm-eabi@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-android-arm-eabi@npm:4.50.1"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
"@rollup/rollup-android-arm64@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-android-arm64@npm:4.50.0"
"@rollup/rollup-android-arm64@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-android-arm64@npm:4.50.1"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-darwin-arm64@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-darwin-arm64@npm:4.50.0"
"@rollup/rollup-darwin-arm64@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-darwin-arm64@npm:4.50.1"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-darwin-x64@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-darwin-x64@npm:4.50.0"
"@rollup/rollup-darwin-x64@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-darwin-x64@npm:4.50.1"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@rollup/rollup-freebsd-arm64@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-freebsd-arm64@npm:4.50.0"
"@rollup/rollup-freebsd-arm64@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-freebsd-arm64@npm:4.50.1"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-freebsd-x64@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-freebsd-x64@npm:4.50.0"
"@rollup/rollup-freebsd-x64@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-freebsd-x64@npm:4.50.1"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"@rollup/rollup-linux-arm-gnueabihf@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.50.0"
"@rollup/rollup-linux-arm-gnueabihf@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.50.1"
conditions: os=linux & cpu=arm & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-arm-musleabihf@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.50.0"
"@rollup/rollup-linux-arm-musleabihf@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.50.1"
conditions: os=linux & cpu=arm & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-linux-arm64-gnu@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.50.0"
"@rollup/rollup-linux-arm64-gnu@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.50.1"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-arm64-musl@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.50.0"
"@rollup/rollup-linux-arm64-musl@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-arm64-musl@npm:4.50.1"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-linux-loongarch64-gnu@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.50.0"
"@rollup/rollup-linux-loongarch64-gnu@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.50.1"
conditions: os=linux & cpu=loong64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-ppc64-gnu@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.50.0"
"@rollup/rollup-linux-ppc64-gnu@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.50.1"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-riscv64-gnu@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.50.0"
"@rollup/rollup-linux-riscv64-gnu@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.50.1"
conditions: os=linux & cpu=riscv64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-riscv64-musl@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.50.0"
"@rollup/rollup-linux-riscv64-musl@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.50.1"
conditions: os=linux & cpu=riscv64 & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-linux-s390x-gnu@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.50.0"
"@rollup/rollup-linux-s390x-gnu@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.50.1"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-x64-gnu@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.50.0"
"@rollup/rollup-linux-x64-gnu@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-x64-gnu@npm:4.50.1"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@rollup/rollup-linux-x64-musl@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-linux-x64-musl@npm:4.50.0"
"@rollup/rollup-linux-x64-musl@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-linux-x64-musl@npm:4.50.1"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@rollup/rollup-openharmony-arm64@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-openharmony-arm64@npm:4.50.0"
"@rollup/rollup-openharmony-arm64@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-openharmony-arm64@npm:4.50.1"
conditions: os=openharmony & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-win32-arm64-msvc@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.50.0"
"@rollup/rollup-win32-arm64-msvc@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.50.1"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@rollup/rollup-win32-ia32-msvc@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.50.0"
"@rollup/rollup-win32-ia32-msvc@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.50.1"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@rollup/rollup-win32-x64-msvc@npm:4.50.0":
version: 4.50.0
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.50.0"
"@rollup/rollup-win32-x64-msvc@npm:4.50.1":
version: 4.50.1
resolution: "@rollup/rollup-win32-x64-msvc@npm:4.50.1"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
@@ -511,9 +511,9 @@ __metadata:
linkType: hard
"ansi-regex@npm:^6.0.1":
version: 6.2.0
resolution: "ansi-regex@npm:6.2.0"
checksum: 10c0/20a2e55ae9816074a60e6729dbe3daad664cd967fc82acc08b02f5677db84baa688babf940d71f50acbbb184c02459453789705e079f4d521166ae66451de551
version: 6.2.2
resolution: "ansi-regex@npm:6.2.2"
checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f
languageName: node
linkType: hard
@@ -527,9 +527,9 @@ __metadata:
linkType: hard
"ansi-styles@npm:^6.1.0":
version: 6.2.1
resolution: "ansi-styles@npm:6.2.1"
checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
version: 6.2.3
resolution: "ansi-styles@npm:6.2.3"
checksum: 10c0/23b8a4ce14e18fb854693b95351e286b771d23d8844057ed2e7d083cd3e708376c3323707ec6a24365f7d7eda3ca00327fe04092e29e551499ec4c8b7bfac868
languageName: node
linkType: hard
@@ -809,7 +809,7 @@ __metadata:
prettier: "npm:^3.6.2"
typescript: "npm:^5.9.2"
unplugin-dts: "npm:1.0.0-beta.6"
vite: "npm:^7.1.4"
vite: "npm:^7.1.5"
languageName: unknown
linkType: soft
@@ -984,11 +984,11 @@ __metadata:
linkType: hard
"magic-string@npm:^0.30.17":
version: 0.30.18
resolution: "magic-string@npm:0.30.18"
version: 0.30.19
resolution: "magic-string@npm:0.30.19"
dependencies:
"@jridgewell/sourcemap-codec": "npm:^1.5.5"
checksum: 10c0/80fba01e13ce1f5c474a0498a5aa462fa158eb56567310747089a0033e432d83a2021ee2c109ac116010cd9dcf90a5231d89fbe3858165f73c00a50a74dbefcd
checksum: 10c0/db23fd2e2ee98a1aeb88a4cdb2353137fcf05819b883c856dd79e4c7dfb25151e2a5a4d5dbd88add5e30ed8ae5c51bcf4accbc6becb75249d924ec7b4fbcae27
languageName: node
linkType: hard
@@ -1304,30 +1304,30 @@ __metadata:
linkType: hard
"rollup@npm:^4.43.0":
version: 4.50.0
resolution: "rollup@npm:4.50.0"
version: 4.50.1
resolution: "rollup@npm:4.50.1"
dependencies:
"@rollup/rollup-android-arm-eabi": "npm:4.50.0"
"@rollup/rollup-android-arm64": "npm:4.50.0"
"@rollup/rollup-darwin-arm64": "npm:4.50.0"
"@rollup/rollup-darwin-x64": "npm:4.50.0"
"@rollup/rollup-freebsd-arm64": "npm:4.50.0"
"@rollup/rollup-freebsd-x64": "npm:4.50.0"
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.50.0"
"@rollup/rollup-linux-arm-musleabihf": "npm:4.50.0"
"@rollup/rollup-linux-arm64-gnu": "npm:4.50.0"
"@rollup/rollup-linux-arm64-musl": "npm:4.50.0"
"@rollup/rollup-linux-loongarch64-gnu": "npm:4.50.0"
"@rollup/rollup-linux-ppc64-gnu": "npm:4.50.0"
"@rollup/rollup-linux-riscv64-gnu": "npm:4.50.0"
"@rollup/rollup-linux-riscv64-musl": "npm:4.50.0"
"@rollup/rollup-linux-s390x-gnu": "npm:4.50.0"
"@rollup/rollup-linux-x64-gnu": "npm:4.50.0"
"@rollup/rollup-linux-x64-musl": "npm:4.50.0"
"@rollup/rollup-openharmony-arm64": "npm:4.50.0"
"@rollup/rollup-win32-arm64-msvc": "npm:4.50.0"
"@rollup/rollup-win32-ia32-msvc": "npm:4.50.0"
"@rollup/rollup-win32-x64-msvc": "npm:4.50.0"
"@rollup/rollup-android-arm-eabi": "npm:4.50.1"
"@rollup/rollup-android-arm64": "npm:4.50.1"
"@rollup/rollup-darwin-arm64": "npm:4.50.1"
"@rollup/rollup-darwin-x64": "npm:4.50.1"
"@rollup/rollup-freebsd-arm64": "npm:4.50.1"
"@rollup/rollup-freebsd-x64": "npm:4.50.1"
"@rollup/rollup-linux-arm-gnueabihf": "npm:4.50.1"
"@rollup/rollup-linux-arm-musleabihf": "npm:4.50.1"
"@rollup/rollup-linux-arm64-gnu": "npm:4.50.1"
"@rollup/rollup-linux-arm64-musl": "npm:4.50.1"
"@rollup/rollup-linux-loongarch64-gnu": "npm:4.50.1"
"@rollup/rollup-linux-ppc64-gnu": "npm:4.50.1"
"@rollup/rollup-linux-riscv64-gnu": "npm:4.50.1"
"@rollup/rollup-linux-riscv64-musl": "npm:4.50.1"
"@rollup/rollup-linux-s390x-gnu": "npm:4.50.1"
"@rollup/rollup-linux-x64-gnu": "npm:4.50.1"
"@rollup/rollup-linux-x64-musl": "npm:4.50.1"
"@rollup/rollup-openharmony-arm64": "npm:4.50.1"
"@rollup/rollup-win32-arm64-msvc": "npm:4.50.1"
"@rollup/rollup-win32-ia32-msvc": "npm:4.50.1"
"@rollup/rollup-win32-x64-msvc": "npm:4.50.1"
"@types/estree": "npm:1.0.8"
fsevents: "npm:~2.3.2"
dependenciesMeta:
@@ -1377,7 +1377,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
checksum: 10c0/8a9aa0885b61ee08315cdc097fb9f97b626a0992546a6857d7668f4690a7344d8497fa7504e4dba03acefc77f03d90fec3c11bfa80777177e76ea5d8c18ddc97
checksum: 10c0/2029282826d5fb4e308be261b2c28329a4d2bd34304cc3960da69fd21d5acccd0267d6770b1656ffc8f166203ef7e865b4583d5f842a519c8ef059ac71854205
languageName: node
linkType: hard
@@ -1496,11 +1496,11 @@ __metadata:
linkType: hard
"strip-ansi@npm:^7.0.1":
version: 7.1.0
resolution: "strip-ansi@npm:7.1.0"
version: 7.1.2
resolution: "strip-ansi@npm:7.1.2"
dependencies:
ansi-regex: "npm:^6.0.1"
checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
checksum: 10c0/0d6d7a023de33368fd042aab0bf48f4f4077abdfd60e5393e73c7c411e85e1b3a83507c11af2e656188511475776215df9ca589b4da2295c9455cc399ce1858b
languageName: node
linkType: hard
@@ -1518,7 +1518,7 @@ __metadata:
languageName: node
linkType: hard
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14":
"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15":
version: 0.2.15
resolution: "tinyglobby@npm:0.2.15"
dependencies:
@@ -1628,9 +1628,9 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^7.1.4":
version: 7.1.4
resolution: "vite@npm:7.1.4"
"vite@npm:^7.1.5":
version: 7.1.5
resolution: "vite@npm:7.1.5"
dependencies:
esbuild: "npm:^0.25.0"
fdir: "npm:^6.5.0"
@@ -1638,7 +1638,7 @@ __metadata:
picomatch: "npm:^4.0.3"
postcss: "npm:^8.5.6"
rollup: "npm:^4.43.0"
tinyglobby: "npm:^0.2.14"
tinyglobby: "npm:^0.2.15"
peerDependencies:
"@types/node": ^20.19.0 || >=22.12.0
jiti: ">=1.21.0"
@@ -1679,7 +1679,7 @@ __metadata:
optional: true
bin:
vite: bin/vite.js
checksum: 10c0/dbe2ba29926ffe8985c93d1b3718dcc9040080b7fa10a74c82a52aad7449136a391ba17b265288ff03b864e6f1033b9b537247521a96d5491a9d4af90ac04702
checksum: 10c0/782d2f20c25541b26d1fb39bef5f194149caff39dc25b7836e25f049ca919f2e2ce186bddb21f3f20f6195354b3579ec637a8ca08d65b117f8b6f81e3e730a9c
languageName: node
linkType: hard