@nifrajs/web 3.1.0 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-plan.d.ts +228 -0
- package/dist/build-plan.d.ts.map +1 -0
- package/dist/build-plan.js +514 -0
- package/dist/build-plan.js.map +1 -0
- package/dist/build-vite.d.ts +2 -1
- package/dist/build-vite.d.ts.map +1 -1
- package/dist/build-vite.js.map +1 -1
- package/dist/build.d.ts +2 -197
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +61 -502
- package/dist/build.js.map +1 -1
- package/dist/chunk-names.d.ts.map +1 -1
- package/dist/chunk-names.js +3 -2
- package/dist/chunk-names.js.map +1 -1
- package/dist/dev-ssr-graph.d.ts.map +1 -1
- package/dist/dev-ssr-graph.js +63 -28
- package/dist/dev-ssr-graph.js.map +1 -1
- package/dist/diagnostic.d.ts.map +1 -1
- package/dist/diagnostic.js +9 -2
- package/dist/diagnostic.js.map +1 -1
- package/dist/fonts-google.d.ts.map +1 -1
- package/dist/fonts-google.js +3 -1
- package/dist/fonts-google.js.map +1 -1
- package/dist/fs.d.ts.map +1 -1
- package/dist/fs.js +2 -1
- package/dist/fs.js.map +1 -1
- package/dist/index.d.ts +15 -609
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -1935
- package/dist/index.js.map +1 -1
- package/dist/internal/codegen.d.ts +68 -0
- package/dist/internal/codegen.d.ts.map +1 -0
- package/dist/internal/codegen.js +317 -0
- package/dist/internal/codegen.js.map +1 -0
- package/dist/internal/head-merge.d.ts +2 -0
- package/dist/internal/head-merge.d.ts.map +1 -1
- package/dist/internal/head-merge.js +17 -1
- package/dist/internal/head-merge.js.map +1 -1
- package/dist/internal/parity.d.ts +7 -0
- package/dist/internal/parity.d.ts.map +1 -1
- package/dist/internal/parity.js +212 -30
- package/dist/internal/parity.js.map +1 -1
- package/dist/internal/render-document.d.ts +372 -0
- package/dist/internal/render-document.d.ts.map +1 -0
- package/dist/internal/render-document.js +744 -0
- package/dist/internal/render-document.js.map +1 -0
- package/dist/internal/runtime-contract.d.ts +48 -0
- package/dist/internal/runtime-contract.d.ts.map +1 -0
- package/dist/internal/runtime-contract.js +27 -0
- package/dist/internal/runtime-contract.js.map +1 -0
- package/dist/internal/web-app.d.ts +171 -0
- package/dist/internal/web-app.d.ts.map +1 -0
- package/dist/internal/web-app.js +844 -0
- package/dist/internal/web-app.js.map +1 -0
- package/dist/islands.d.ts +48 -0
- package/dist/islands.d.ts.map +1 -1
- package/dist/islands.js +79 -0
- package/dist/islands.js.map +1 -1
- package/dist/module-graph.d.ts.map +1 -1
- package/dist/module-graph.js +22 -9
- package/dist/module-graph.js.map +1 -1
- package/dist/nano.d.ts +125 -0
- package/dist/nano.d.ts.map +1 -0
- package/dist/nano.js +190 -0
- package/dist/nano.js.map +1 -0
- package/dist/plugins/css-modules.js +2 -2
- package/dist/plugins/css-modules.js.map +1 -1
- package/dist/plugins/kit.d.ts +12 -0
- package/dist/plugins/kit.d.ts.map +1 -1
- package/dist/plugins/kit.js +62 -12
- package/dist/plugins/kit.js.map +1 -1
- package/dist/plugins/postcss.js +2 -2
- package/dist/plugins/postcss.js.map +1 -1
- package/dist/plugins/scss.js +2 -2
- package/dist/plugins/scss.js.map +1 -1
- package/dist/plugins/stylex.d.ts +70 -0
- package/dist/plugins/stylex.d.ts.map +1 -0
- package/dist/plugins/stylex.js +166 -0
- package/dist/plugins/stylex.js.map +1 -0
- package/dist/plugins/svg.js +2 -2
- package/dist/plugins/svg.js.map +1 -1
- package/dist/router.d.ts +1 -1
- package/dist/router.js +23 -23
- package/dist/router.js.map +1 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +26 -10
- package/dist/vite.js.map +1 -1
- package/package.json +39 -3
- package/src/build-plan.ts +741 -0
- package/src/build-vite.ts +1 -4
- package/src/build.ts +84 -716
- package/src/chunk-names.ts +3 -2
- package/src/dev-ssr-graph.ts +63 -28
- package/src/diagnostic.ts +14 -2
- package/src/fonts-google.ts +3 -1
- package/src/fs.ts +2 -1
- package/src/index.ts +73 -2705
- package/src/internal/codegen.ts +400 -0
- package/src/internal/head-merge.ts +19 -1
- package/src/internal/parity.ts +215 -35
- package/src/internal/render-document.ts +1116 -0
- package/src/internal/runtime-contract.ts +54 -0
- package/src/internal/web-app.ts +1114 -0
- package/src/islands.ts +85 -0
- package/src/module-graph.ts +23 -9
- package/src/nano.ts +246 -0
- package/src/plugins/css-modules.ts +2 -2
- package/src/plugins/kit.ts +65 -12
- package/src/plugins/postcss.ts +2 -2
- package/src/plugins/scss.ts +2 -2
- package/src/plugins/stylex.ts +298 -0
- package/src/plugins/svg.ts +2 -2
- package/src/router.ts +24 -24
- package/src/vite.ts +33 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-app.js","sourceRoot":"","sources":["../../src/internal/web-app.ts"],"names":[],"mappings":"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"}
|
package/dist/islands.d.ts
CHANGED
|
@@ -24,6 +24,25 @@ export type IslandCleanup = () => void;
|
|
|
24
24
|
* The `void` member is the no-cleanup case, the same shape as React's `EffectCallback`.
|
|
25
25
|
*/
|
|
26
26
|
export type IslandEnhancer<P = unknown> = (el: HTMLElement, props: P) => IslandCleanup | void;
|
|
27
|
+
/**
|
|
28
|
+
* Author a typed enhancer. Pure identity at runtime (zero cost, tree-shaken away) - its only job is
|
|
29
|
+
* to pin the `data-props` shape so `el` and `props` are typed inside the body and the enhancer is
|
|
30
|
+
* assignable to `mountIslands`. Prefer this over an inline arrow whenever an island reads props:
|
|
31
|
+
*
|
|
32
|
+
* const counter = defineIsland<{ start: number }>((el, props) => {
|
|
33
|
+
* let n = props.start // props typed, no cast
|
|
34
|
+
* const out = el.querySelector("output")!
|
|
35
|
+
* const onClick = () => { out.textContent = String(++n) }
|
|
36
|
+
* el.querySelector("button")?.addEventListener("click", onClick)
|
|
37
|
+
* return () => el.querySelector("button")?.removeEventListener("click", onClick)
|
|
38
|
+
* })
|
|
39
|
+
* mountIslands({ counter })
|
|
40
|
+
*
|
|
41
|
+
* The props type is a contract, not a validator - `data-props` is JSON authored by your own SSR, so
|
|
42
|
+
* it is trusted framing, not user input. Keep the enhancer body imperative: read the DOM, wire
|
|
43
|
+
* listeners, return cleanup. No hidden reactivity to get wrong.
|
|
44
|
+
*/
|
|
45
|
+
export declare function defineIsland<P = unknown>(enhancer: IslandEnhancer<P>): IslandEnhancer<P>;
|
|
27
46
|
/**
|
|
28
47
|
* Find every `<nifra-island data-id>` under `root` (default `document`) and enhance each with the
|
|
29
48
|
* matching enhancer, honoring its `data-strategy`. An island whose `id` has no enhancer is left as
|
|
@@ -34,4 +53,33 @@ export type IslandEnhancer<P = unknown> = (el: HTMLElement, props: P) => IslandC
|
|
|
34
53
|
export declare function mountIslands(enhancers: Readonly<Record<string, IslandEnhancer>>, options?: {
|
|
35
54
|
readonly root?: ParentNode;
|
|
36
55
|
}): () => void;
|
|
56
|
+
/** Unsubscribe one bus handler; calling twice is a no-op. Also returned so an enhancer can hand it
|
|
57
|
+
* straight back as its `IslandCleanup`. */
|
|
58
|
+
export type IslandBusUnsubscribe = () => void;
|
|
59
|
+
/**
|
|
60
|
+
* A typed publish/subscribe channel for coordinating islands that must talk to each other without a
|
|
61
|
+
* shared reactive store - a cart badge reacting to an "add to cart" island, a filter island driving
|
|
62
|
+
* a results island. Create ONE bus in your mount entry and close over it in each enhancer; there is
|
|
63
|
+
* no implicit global, so concurrent renders and tests never cross-talk.
|
|
64
|
+
*
|
|
65
|
+
* type Events = { "cart:add": { sku: string }; "cart:count": number }
|
|
66
|
+
* const bus = createIslandBus<Events>()
|
|
67
|
+
* mountIslands({
|
|
68
|
+
* addBtn: defineIsland((el) => {
|
|
69
|
+
* const onClick = () => bus.emit("cart:add", { sku: el.dataset.sku! })
|
|
70
|
+
* el.addEventListener("click", onClick)
|
|
71
|
+
* return () => el.removeEventListener("click", onClick)
|
|
72
|
+
* }),
|
|
73
|
+
* badge: defineIsland((el) => bus.on("cart:count", (n) => { el.textContent = String(n) })),
|
|
74
|
+
* })
|
|
75
|
+
*
|
|
76
|
+
* `on` returns its own unsubscribe, so an enhancer whose only job is to listen can `return bus.on(...)`
|
|
77
|
+
* directly as its cleanup. A handler that throws is isolated - it never blocks the other subscribers
|
|
78
|
+
* or the `emit` caller. Synchronous, in-memory, no DOM dependency (safe to construct under SSR); it
|
|
79
|
+
* carries no history, so a subscriber only sees events emitted after it subscribed.
|
|
80
|
+
*/
|
|
81
|
+
export declare function createIslandBus<Events extends Record<string, unknown> = Record<string, unknown>>(): {
|
|
82
|
+
emit<K extends keyof Events>(type: K, detail: Events[K]): void;
|
|
83
|
+
on<K extends keyof Events>(type: K, handler: (detail: Events[K]) => void): IslandBusUnsubscribe;
|
|
84
|
+
};
|
|
37
85
|
//# sourceMappingURL=islands.d.ts.map
|
package/dist/islands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../src/islands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,sBAAsB,EACtB,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,KAAK,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,CAAA;AAEvE,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAA;AAEtC;;;;GAIG;AAEH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,aAAa,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../src/islands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,sBAAsB,EACtB,eAAe,EAChB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,KAAK,cAAc,EAAE,sBAAsB,EAAE,eAAe,EAAE,CAAA;AAEvE,8FAA8F;AAC9F,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAA;AAEtC;;;;GAIG;AAEH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,aAAa,GAAG,IAAI,CAAA;AAE7F;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAExF;AAaD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EACnD,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAAO,GAC3C,MAAM,IAAI,CA4CZ;AAED;2CAC2C;AAC3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAA;AAE7C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7D;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC9D,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,oBAAoB,CAAA;CAChG,CA8BA"}
|
package/dist/islands.js
CHANGED
|
@@ -16,6 +16,27 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { MAX_MEDIA_QUERY_LENGTH, scheduleTrigger, } from "@nifrajs/island-trigger";
|
|
18
18
|
export { MAX_MEDIA_QUERY_LENGTH, scheduleTrigger };
|
|
19
|
+
/**
|
|
20
|
+
* Author a typed enhancer. Pure identity at runtime (zero cost, tree-shaken away) - its only job is
|
|
21
|
+
* to pin the `data-props` shape so `el` and `props` are typed inside the body and the enhancer is
|
|
22
|
+
* assignable to `mountIslands`. Prefer this over an inline arrow whenever an island reads props:
|
|
23
|
+
*
|
|
24
|
+
* const counter = defineIsland<{ start: number }>((el, props) => {
|
|
25
|
+
* let n = props.start // props typed, no cast
|
|
26
|
+
* const out = el.querySelector("output")!
|
|
27
|
+
* const onClick = () => { out.textContent = String(++n) }
|
|
28
|
+
* el.querySelector("button")?.addEventListener("click", onClick)
|
|
29
|
+
* return () => el.querySelector("button")?.removeEventListener("click", onClick)
|
|
30
|
+
* })
|
|
31
|
+
* mountIslands({ counter })
|
|
32
|
+
*
|
|
33
|
+
* The props type is a contract, not a validator - `data-props` is JSON authored by your own SSR, so
|
|
34
|
+
* it is trusted framing, not user input. Keep the enhancer body imperative: read the DOM, wire
|
|
35
|
+
* listeners, return cleanup. No hidden reactivity to get wrong.
|
|
36
|
+
*/
|
|
37
|
+
export function defineIsland(enhancer) {
|
|
38
|
+
return enhancer;
|
|
39
|
+
}
|
|
19
40
|
/** Parse an island's inline `data-props` JSON; malformed/absent → `undefined` (never throws). */
|
|
20
41
|
function readProps(el) {
|
|
21
42
|
const raw = el.dataset.props;
|
|
@@ -85,4 +106,62 @@ export function mountIslands(enhancers, options = {}) {
|
|
|
85
106
|
}
|
|
86
107
|
};
|
|
87
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* A typed publish/subscribe channel for coordinating islands that must talk to each other without a
|
|
111
|
+
* shared reactive store - a cart badge reacting to an "add to cart" island, a filter island driving
|
|
112
|
+
* a results island. Create ONE bus in your mount entry and close over it in each enhancer; there is
|
|
113
|
+
* no implicit global, so concurrent renders and tests never cross-talk.
|
|
114
|
+
*
|
|
115
|
+
* type Events = { "cart:add": { sku: string }; "cart:count": number }
|
|
116
|
+
* const bus = createIslandBus<Events>()
|
|
117
|
+
* mountIslands({
|
|
118
|
+
* addBtn: defineIsland((el) => {
|
|
119
|
+
* const onClick = () => bus.emit("cart:add", { sku: el.dataset.sku! })
|
|
120
|
+
* el.addEventListener("click", onClick)
|
|
121
|
+
* return () => el.removeEventListener("click", onClick)
|
|
122
|
+
* }),
|
|
123
|
+
* badge: defineIsland((el) => bus.on("cart:count", (n) => { el.textContent = String(n) })),
|
|
124
|
+
* })
|
|
125
|
+
*
|
|
126
|
+
* `on` returns its own unsubscribe, so an enhancer whose only job is to listen can `return bus.on(...)`
|
|
127
|
+
* directly as its cleanup. A handler that throws is isolated - it never blocks the other subscribers
|
|
128
|
+
* or the `emit` caller. Synchronous, in-memory, no DOM dependency (safe to construct under SSR); it
|
|
129
|
+
* carries no history, so a subscriber only sees events emitted after it subscribed.
|
|
130
|
+
*/
|
|
131
|
+
export function createIslandBus() {
|
|
132
|
+
const channels = new Map();
|
|
133
|
+
return {
|
|
134
|
+
emit(type, detail) {
|
|
135
|
+
const handlers = channels.get(type);
|
|
136
|
+
if (handlers === undefined)
|
|
137
|
+
return;
|
|
138
|
+
// Snapshot so a handler that (un)subscribes mid-dispatch cannot corrupt this iteration.
|
|
139
|
+
for (const handler of [...handlers]) {
|
|
140
|
+
try {
|
|
141
|
+
;
|
|
142
|
+
handler(detail);
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
console.error(`[nifra/islands] bus handler for "${String(type)}" failed:`, err);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
on(type, handler) {
|
|
150
|
+
let handlers = channels.get(type);
|
|
151
|
+
if (handlers === undefined) {
|
|
152
|
+
handlers = new Set();
|
|
153
|
+
channels.set(type, handlers);
|
|
154
|
+
}
|
|
155
|
+
handlers.add(handler);
|
|
156
|
+
return () => {
|
|
157
|
+
const set = channels.get(type);
|
|
158
|
+
if (set === undefined)
|
|
159
|
+
return;
|
|
160
|
+
set.delete(handler);
|
|
161
|
+
if (set.size === 0)
|
|
162
|
+
channels.delete(type);
|
|
163
|
+
};
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
}
|
|
88
167
|
//# sourceMappingURL=islands.js.map
|
package/dist/islands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"islands.js","sourceRoot":"","sources":["../src/islands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,sBAAsB,EACtB,eAAe,GAChB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAuB,sBAAsB,EAAE,eAAe,EAAE,CAAA;AAavE,iGAAiG;AACjG,SAAS,SAAS,CAAC,EAAe;IAChC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAA;IAC5B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IACrD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAmD,EACnD,UAA0C,EAAE;IAE5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAA;IACrC,MAAM,SAAS,GAAsB,EAAE,CAAA;IACvC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAc,uBAAuB,CAAC,EAAE,CAAC;QAC7E,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAA;QACxB,IAAI,EAAE,KAAK,SAAS;YAAE,SAAQ;QAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9B,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAQ,CAAC,yDAAyD;QAC9F,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAA;QAC3B,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAA;QACxC,MAAM,QAAQ,GACZ,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,MAAM;YAC9E,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,YAAY,KAAK,OAAO;gBACtB,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;gBAC9B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC3B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,sBAAsB;gBACnD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC7B,CAAC,CAAC,YAAY,KAAK,SAAS;oBAC1B,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,SAAS,CAAA;QACnB,kGAAkG;QAClG,wFAAwF;QACxF,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAQ;QACpC,MAAM,GAAG,GAAG,GAAS,EAAE;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;gBACnC,IAAI,OAAO,OAAO,KAAK,UAAU;oBAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,mFAAmF;gBACnF,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA;YAChE,CAAC;QACH,CAAC,CAAA;QACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,GAAG,EAAE;QACV,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,OAAO,EAAE,CAAA;YACX,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;YACrE,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"islands.js","sourceRoot":"","sources":["../src/islands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-graph.d.ts","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IACvD,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;CACtD;
|
|
1
|
+
{"version":3,"file":"module-graph.d.ts","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;IACvD,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;CACtD;AAOD,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CACxB,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAC3F,CAAA;IACD,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CACzB,MAAM,CACJ,MAAM,EACN;QAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE,CACtF,CACF,CAAA;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,SAAS,GAAG,iBAAiB,CAsBpF;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,kGAAkG;IAClG,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AACD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;AAExE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,GACjD,iBAAiB,CAiCnB"}
|
package/dist/module-graph.js
CHANGED
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
* - which modules exist and what each imports (to walk the import chain to a sink)
|
|
17
17
|
* - which output chunk each module landed in (to name the chunk a leak reached)
|
|
18
18
|
*/
|
|
19
|
+
/** Module ids are graph identifiers, not filesystem paths exposed to an OS API. Bun uses `\\` on
|
|
20
|
+
* Windows, while Rollup and the guards use `/` for suffix matching and stable diagnostics. Normalize at
|
|
21
|
+
* each adapter boundary so every consumer sees one graph shape. */
|
|
22
|
+
const normalizeModuleId = (id) => id.replaceAll("\\", "/");
|
|
19
23
|
/**
|
|
20
24
|
* Adapt a `Bun.build` metafile to the neutral graph.
|
|
21
25
|
*
|
|
@@ -25,14 +29,23 @@
|
|
|
25
29
|
*/
|
|
26
30
|
export function fromBunMetafile(meta) {
|
|
27
31
|
const modules = {};
|
|
28
|
-
for (const [
|
|
29
|
-
|
|
32
|
+
for (const [rawId, input] of Object.entries(meta?.inputs ?? {})) {
|
|
33
|
+
const id = normalizeModuleId(rawId);
|
|
34
|
+
modules[id] = {
|
|
35
|
+
imports: (input.imports ?? []).map((im) => ({
|
|
36
|
+
...(im.path === undefined ? {} : { path: normalizeModuleId(im.path) }),
|
|
37
|
+
...(im.original === undefined ? {} : { original: im.original }),
|
|
38
|
+
})),
|
|
39
|
+
};
|
|
30
40
|
}
|
|
31
41
|
const chunks = {};
|
|
32
|
-
for (const [
|
|
42
|
+
for (const [rawPath, output] of Object.entries(meta?.outputs ?? {})) {
|
|
43
|
+
const path = normalizeModuleId(rawPath);
|
|
33
44
|
chunks[path] = {
|
|
34
|
-
...(output.entryPoint !== undefined
|
|
35
|
-
|
|
45
|
+
...(output.entryPoint !== undefined
|
|
46
|
+
? { entryPoint: normalizeModuleId(output.entryPoint) }
|
|
47
|
+
: {}),
|
|
48
|
+
modules: Object.keys(output.inputs ?? {}).map(normalizeModuleId),
|
|
36
49
|
};
|
|
37
50
|
}
|
|
38
51
|
return { modules, chunks };
|
|
@@ -58,11 +71,11 @@ export function fromRollupBundle(bundle, importsOf) {
|
|
|
58
71
|
// which are always chunks, so treat "not explicitly an asset" as a chunk.
|
|
59
72
|
if (output.type === "asset")
|
|
60
73
|
continue;
|
|
61
|
-
const moduleIds = output.moduleIds ?? [];
|
|
74
|
+
const moduleIds = (output.moduleIds ?? []).map(normalizeModuleId);
|
|
62
75
|
// Start from the real modules; `node:` builtins get appended below.
|
|
63
76
|
const chunkModules = [...moduleIds];
|
|
64
77
|
for (const id of moduleIds) {
|
|
65
|
-
const imports = importsOf(id).map((path) => ({ path }));
|
|
78
|
+
const imports = importsOf(id).map((path) => ({ path: normalizeModuleId(path) }));
|
|
66
79
|
if (modules[id] === undefined)
|
|
67
80
|
modules[id] = { imports };
|
|
68
81
|
// The guards locate a leak by finding the builtin IN a chunk's module list - Bun BUNDLES the `node:`
|
|
@@ -80,10 +93,10 @@ export function fromRollupBundle(bundle, importsOf) {
|
|
|
80
93
|
modules[im.path] = { imports: [] };
|
|
81
94
|
}
|
|
82
95
|
}
|
|
83
|
-
chunks[fileName] = {
|
|
96
|
+
chunks[normalizeModuleId(fileName)] = {
|
|
84
97
|
// `facadeModuleId` is null for a shared/common chunk (no single entry) - omit it then, matching
|
|
85
98
|
// how a non-entry Bun output omits `entryPoint`, so the guards' entry set stays the real entries.
|
|
86
|
-
...(output.facadeModuleId ? { entryPoint: output.facadeModuleId } : {}),
|
|
99
|
+
...(output.facadeModuleId ? { entryPoint: normalizeModuleId(output.facadeModuleId) } : {}),
|
|
87
100
|
modules: chunkModules,
|
|
88
101
|
};
|
|
89
102
|
}
|
package/dist/module-graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-graph.js","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"module-graph.js","sourceRoot":"","sources":["../src/module-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/nano.d.ts
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@nifrajs/web/nano` - the smallest state layer that still lets an island drive a keyed list.
|
|
3
|
+
*
|
|
4
|
+
* The islands lane (`@nifrajs/web/islands`) is imperative and correct-by-construction, but it has no
|
|
5
|
+
* state primitive: every DOM update is hand-written, and a list means rebuilding the whole container.
|
|
6
|
+
* nano adds a small, closed set of primitives and stops:
|
|
7
|
+
*
|
|
8
|
+
* - `signal(v)` - a current-value cell you read with `.get()` and write with `.set()`.
|
|
9
|
+
* - `computed(fn, [deps])` - a derived cell. Its dependencies are DECLARED, never auto-tracked.
|
|
10
|
+
* - `resource(fetcher, [deps])` - an async cell with an explicit pending/error/ready value. This is
|
|
11
|
+
* nano's answer to "suspense": no thrown promise, no magic boundary, just a value you can bind.
|
|
12
|
+
* - `bind` / `bindList` / `bindResource` - explicit, one-directional DOM bindings that each return
|
|
13
|
+
* their teardown.
|
|
14
|
+
*
|
|
15
|
+
* The design rule is the whole point: every reactive edge is a call you can see - a `bind(...)` or a
|
|
16
|
+
* `computed(fn, [deps])`. There is no re-render scope, no VDOM, no template compiler, and no effect
|
|
17
|
+
* that silently subscribes to whatever it happened to read. That is what removes the three failure
|
|
18
|
+
* modes an AI (or a human) hits in a framework - stale closures, wrong effect deps, hydration
|
|
19
|
+
* mismatch - and, just as importantly, it is what makes every remaining mistake STATICALLY
|
|
20
|
+
* detectable: a missing dep is `[deps]` that doesn't list a signal the body reads; a leak is a `bind`
|
|
21
|
+
* whose cleanup isn't returned. A framework's reactivity can't be linted like that; nano's can.
|
|
22
|
+
*
|
|
23
|
+
* Where nano stops: no client router and no nested/composable view state (a component tree that mounts
|
|
24
|
+
* and unmounts its own children). When an app needs those, it has outgrown a vanilla page - reach for
|
|
25
|
+
* a framework adapter (`@nifrajs/web-preact`), not more nano.
|
|
26
|
+
*
|
|
27
|
+
* Browser code: it touches the DOM and is meant to run in an island enhancer, never under SSR.
|
|
28
|
+
*/
|
|
29
|
+
/** A value you can read now and be told about later. Both `signal` and `computed` are `Readable`, so
|
|
30
|
+
* `bind`/`bindList` accept either. */
|
|
31
|
+
export interface Readable<T> {
|
|
32
|
+
get(): T;
|
|
33
|
+
subscribe(listener: (value: T) => void): () => void;
|
|
34
|
+
}
|
|
35
|
+
/** A writable cell. `set` notifies subscribers only when the value actually changes (`Object.is`), so
|
|
36
|
+
* a redundant write costs nothing. */
|
|
37
|
+
export interface Signal<T> extends Readable<T> {
|
|
38
|
+
set(value: T): void;
|
|
39
|
+
}
|
|
40
|
+
/** A current-value cell. `signal(0)` -> `.get()` reads, `.set(1)` writes and notifies. */
|
|
41
|
+
export declare function signal<T>(initial: T): Signal<T>;
|
|
42
|
+
/**
|
|
43
|
+
* A derived cell. `computed(() => a.get() + b.get(), [a, b])` recomputes whenever a declared
|
|
44
|
+
* dependency changes and notifies its own subscribers when the derived value changes.
|
|
45
|
+
*
|
|
46
|
+
* The `deps` array is mandatory and explicit ON PURPOSE - it is the contract a linter checks against
|
|
47
|
+
* the signals the body reads (`NF-C023`). Auto-tracking would remove the array but reintroduce the
|
|
48
|
+
* exact "why didn't this update" bug that makes framework reactivity hard to get right.
|
|
49
|
+
*/
|
|
50
|
+
export declare function computed<T>(compute: () => T, deps: readonly Readable<unknown>[]): Readable<T>;
|
|
51
|
+
/** The three states of an async cell. A discriminated union on `status` so a consumer must handle
|
|
52
|
+
* every branch - there is no "value that might secretly be loading", the failure mode of ad-hoc
|
|
53
|
+
* `isLoading` booleans. `value`/`error` are narrowed by `status`. */
|
|
54
|
+
export type ResourceState<T> = {
|
|
55
|
+
readonly status: "pending";
|
|
56
|
+
readonly value: undefined;
|
|
57
|
+
readonly error: undefined;
|
|
58
|
+
} | {
|
|
59
|
+
readonly status: "ready";
|
|
60
|
+
readonly value: T;
|
|
61
|
+
readonly error: undefined;
|
|
62
|
+
} | {
|
|
63
|
+
readonly status: "error";
|
|
64
|
+
readonly value: undefined;
|
|
65
|
+
readonly error: unknown;
|
|
66
|
+
};
|
|
67
|
+
/** An async cell: a `Readable` of `ResourceState<T>` plus `refetch()`. This is nano's answer to
|
|
68
|
+
* "suspense" - an explicit pending/error/ready value, never a thrown promise or a magic boundary. */
|
|
69
|
+
export interface Resource<T> extends Readable<ResourceState<T>> {
|
|
70
|
+
refetch(): void;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* An async derived cell. `resource(fetcher, [deps])` runs `fetcher` immediately and again whenever a
|
|
74
|
+
* declared dependency changes, exposing the result as an explicit `{ status, value, error }`.
|
|
75
|
+
*
|
|
76
|
+
* Two footguns are handled here so they cannot be got wrong by hand:
|
|
77
|
+
* - Races: each run holds a generation; a stale run's resolution is dropped, and its `AbortSignal` is
|
|
78
|
+
* aborted, so an earlier-started-later-finishing fetch never overwrites a newer one.
|
|
79
|
+
* - Deps: like `computed`, dependencies are DECLARED (`NF-C023` checks the fetcher's `.get()` reads
|
|
80
|
+
* against the array). A `resource` that reads a signal its deps omit won't refetch when it changes.
|
|
81
|
+
*/
|
|
82
|
+
export declare function resource<T>(fetcher: (signal: AbortSignal) => Promise<T>, deps?: readonly Readable<unknown>[]): Resource<T>;
|
|
83
|
+
/**
|
|
84
|
+
* Bind one element to a source: `apply(el, value)` runs once immediately and again on every change.
|
|
85
|
+
* Returns the unsubscribe - hand it back as the island's cleanup (or collect several).
|
|
86
|
+
*
|
|
87
|
+
* bind(count, remaining, (el, n) => { el.textContent = String(n) })
|
|
88
|
+
*/
|
|
89
|
+
export declare function bind<T>(el: HTMLElement, source: Readable<T>, apply: (el: HTMLElement, value: T) => void): () => void;
|
|
90
|
+
/** How a `bindList` turns items into keyed DOM. `key` MUST be stable and unique per item (never the
|
|
91
|
+
* array index) - it is what lets add/remove/reorder touch only the changed rows. */
|
|
92
|
+
export interface BindListOptions<T> {
|
|
93
|
+
key(item: T): string | number;
|
|
94
|
+
create(item: T): HTMLElement;
|
|
95
|
+
update?(el: HTMLElement, item: T): void;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Bind a list signal to a container with keyed reconciliation: new items are `create`d, surviving
|
|
99
|
+
* items are `update`d in place (keeping focus, scroll, and selection), removed items are detached,
|
|
100
|
+
* and the children are ordered to match the array. Returns the unsubscribe.
|
|
101
|
+
*
|
|
102
|
+
* This is the one imperative task too error-prone to hand-write each time - it is why nano exists on
|
|
103
|
+
* top of islands rather than leaving you to rebuild the container on every change.
|
|
104
|
+
*/
|
|
105
|
+
export declare function bindList<T>(source: Readable<readonly T[]>, container: HTMLElement, options: BindListOptions<T>): () => void;
|
|
106
|
+
/** How a `bindResource` maps each async state to the DOM. `ready` is required (there is always a
|
|
107
|
+
* success shape to render); `pending`/`error` are optional. Every branch is explicit - no hidden
|
|
108
|
+
* "still loading" state can slip through as a rendered `undefined`. */
|
|
109
|
+
export interface BindResourceHandlers<T> {
|
|
110
|
+
ready(el: HTMLElement, value: T): void;
|
|
111
|
+
pending?(el: HTMLElement): void;
|
|
112
|
+
error?(el: HTMLElement, error: unknown): void;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Bind an element to a `resource`, dispatching on `status`. Like `bind`, it applies immediately and
|
|
116
|
+
* on every change and returns the unsubscribe - collect it (a discarded disposer is `NF-C021`).
|
|
117
|
+
*
|
|
118
|
+
* bindResource(el, user, {
|
|
119
|
+
* pending: (n) => { n.textContent = "Loading…" },
|
|
120
|
+
* ready: (n, u) => { n.textContent = u.name },
|
|
121
|
+
* error: (n) => { n.textContent = "Failed to load" },
|
|
122
|
+
* })
|
|
123
|
+
*/
|
|
124
|
+
export declare function bindResource<T>(el: HTMLElement, source: Readable<ResourceState<T>>, handlers: BindResourceHandlers<T>): () => void;
|
|
125
|
+
//# sourceMappingURL=nano.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nano.d.ts","sourceRoot":"","sources":["../src/nano.ts"],"names":[],"mappings":"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"}
|