@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.
Files changed (114) hide show
  1. package/dist/build-plan.d.ts +228 -0
  2. package/dist/build-plan.d.ts.map +1 -0
  3. package/dist/build-plan.js +514 -0
  4. package/dist/build-plan.js.map +1 -0
  5. package/dist/build-vite.d.ts +2 -1
  6. package/dist/build-vite.d.ts.map +1 -1
  7. package/dist/build-vite.js.map +1 -1
  8. package/dist/build.d.ts +2 -197
  9. package/dist/build.d.ts.map +1 -1
  10. package/dist/build.js +61 -502
  11. package/dist/build.js.map +1 -1
  12. package/dist/chunk-names.d.ts.map +1 -1
  13. package/dist/chunk-names.js +3 -2
  14. package/dist/chunk-names.js.map +1 -1
  15. package/dist/dev-ssr-graph.d.ts.map +1 -1
  16. package/dist/dev-ssr-graph.js +63 -28
  17. package/dist/dev-ssr-graph.js.map +1 -1
  18. package/dist/diagnostic.d.ts.map +1 -1
  19. package/dist/diagnostic.js +9 -2
  20. package/dist/diagnostic.js.map +1 -1
  21. package/dist/fonts-google.d.ts.map +1 -1
  22. package/dist/fonts-google.js +3 -1
  23. package/dist/fonts-google.js.map +1 -1
  24. package/dist/fs.d.ts.map +1 -1
  25. package/dist/fs.js +2 -1
  26. package/dist/fs.js.map +1 -1
  27. package/dist/index.d.ts +15 -609
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +22 -1935
  30. package/dist/index.js.map +1 -1
  31. package/dist/internal/codegen.d.ts +68 -0
  32. package/dist/internal/codegen.d.ts.map +1 -0
  33. package/dist/internal/codegen.js +317 -0
  34. package/dist/internal/codegen.js.map +1 -0
  35. package/dist/internal/head-merge.d.ts +2 -0
  36. package/dist/internal/head-merge.d.ts.map +1 -1
  37. package/dist/internal/head-merge.js +17 -1
  38. package/dist/internal/head-merge.js.map +1 -1
  39. package/dist/internal/parity.d.ts +7 -0
  40. package/dist/internal/parity.d.ts.map +1 -1
  41. package/dist/internal/parity.js +212 -30
  42. package/dist/internal/parity.js.map +1 -1
  43. package/dist/internal/render-document.d.ts +372 -0
  44. package/dist/internal/render-document.d.ts.map +1 -0
  45. package/dist/internal/render-document.js +744 -0
  46. package/dist/internal/render-document.js.map +1 -0
  47. package/dist/internal/runtime-contract.d.ts +48 -0
  48. package/dist/internal/runtime-contract.d.ts.map +1 -0
  49. package/dist/internal/runtime-contract.js +27 -0
  50. package/dist/internal/runtime-contract.js.map +1 -0
  51. package/dist/internal/web-app.d.ts +171 -0
  52. package/dist/internal/web-app.d.ts.map +1 -0
  53. package/dist/internal/web-app.js +844 -0
  54. package/dist/internal/web-app.js.map +1 -0
  55. package/dist/islands.d.ts +48 -0
  56. package/dist/islands.d.ts.map +1 -1
  57. package/dist/islands.js +79 -0
  58. package/dist/islands.js.map +1 -1
  59. package/dist/module-graph.d.ts.map +1 -1
  60. package/dist/module-graph.js +22 -9
  61. package/dist/module-graph.js.map +1 -1
  62. package/dist/nano.d.ts +125 -0
  63. package/dist/nano.d.ts.map +1 -0
  64. package/dist/nano.js +190 -0
  65. package/dist/nano.js.map +1 -0
  66. package/dist/plugins/css-modules.js +2 -2
  67. package/dist/plugins/css-modules.js.map +1 -1
  68. package/dist/plugins/kit.d.ts +12 -0
  69. package/dist/plugins/kit.d.ts.map +1 -1
  70. package/dist/plugins/kit.js +62 -12
  71. package/dist/plugins/kit.js.map +1 -1
  72. package/dist/plugins/postcss.js +2 -2
  73. package/dist/plugins/postcss.js.map +1 -1
  74. package/dist/plugins/scss.js +2 -2
  75. package/dist/plugins/scss.js.map +1 -1
  76. package/dist/plugins/stylex.d.ts +70 -0
  77. package/dist/plugins/stylex.d.ts.map +1 -0
  78. package/dist/plugins/stylex.js +166 -0
  79. package/dist/plugins/stylex.js.map +1 -0
  80. package/dist/plugins/svg.js +2 -2
  81. package/dist/plugins/svg.js.map +1 -1
  82. package/dist/router.d.ts +1 -1
  83. package/dist/router.js +23 -23
  84. package/dist/router.js.map +1 -1
  85. package/dist/vite.d.ts.map +1 -1
  86. package/dist/vite.js +26 -10
  87. package/dist/vite.js.map +1 -1
  88. package/package.json +39 -3
  89. package/src/build-plan.ts +741 -0
  90. package/src/build-vite.ts +1 -4
  91. package/src/build.ts +84 -716
  92. package/src/chunk-names.ts +3 -2
  93. package/src/dev-ssr-graph.ts +63 -28
  94. package/src/diagnostic.ts +14 -2
  95. package/src/fonts-google.ts +3 -1
  96. package/src/fs.ts +2 -1
  97. package/src/index.ts +73 -2705
  98. package/src/internal/codegen.ts +400 -0
  99. package/src/internal/head-merge.ts +19 -1
  100. package/src/internal/parity.ts +215 -35
  101. package/src/internal/render-document.ts +1116 -0
  102. package/src/internal/runtime-contract.ts +54 -0
  103. package/src/internal/web-app.ts +1114 -0
  104. package/src/islands.ts +85 -0
  105. package/src/module-graph.ts +23 -9
  106. package/src/nano.ts +246 -0
  107. package/src/plugins/css-modules.ts +2 -2
  108. package/src/plugins/kit.ts +65 -12
  109. package/src/plugins/postcss.ts +2 -2
  110. package/src/plugins/scss.ts +2 -2
  111. package/src/plugins/stylex.ts +298 -0
  112. package/src/plugins/svg.ts +2 -2
  113. package/src/router.ts +24 -24
  114. package/src/vite.ts +33 -9
package/dist/nano.js ADDED
@@ -0,0 +1,190 @@
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
+ /** Notify a snapshot of the current listeners, so a listener that (un)subscribes mid-dispatch does not
30
+ * corrupt the walk. A throwing listener is isolated - it never blocks the others. */
31
+ function notify(listeners, value) {
32
+ for (const listener of [...listeners]) {
33
+ try {
34
+ listener(value);
35
+ }
36
+ catch (error) {
37
+ console.error("[nifra/nano] a subscriber threw:", error);
38
+ }
39
+ }
40
+ }
41
+ /** A current-value cell. `signal(0)` -> `.get()` reads, `.set(1)` writes and notifies. */
42
+ export function signal(initial) {
43
+ let value = initial;
44
+ const listeners = new Set();
45
+ return {
46
+ get: () => value,
47
+ set(next) {
48
+ if (Object.is(next, value))
49
+ return;
50
+ value = next;
51
+ notify(listeners, value);
52
+ },
53
+ subscribe(listener) {
54
+ listeners.add(listener);
55
+ return () => {
56
+ listeners.delete(listener);
57
+ };
58
+ },
59
+ };
60
+ }
61
+ /**
62
+ * A derived cell. `computed(() => a.get() + b.get(), [a, b])` recomputes whenever a declared
63
+ * dependency changes and notifies its own subscribers when the derived value changes.
64
+ *
65
+ * The `deps` array is mandatory and explicit ON PURPOSE - it is the contract a linter checks against
66
+ * the signals the body reads (`NF-C023`). Auto-tracking would remove the array but reintroduce the
67
+ * exact "why didn't this update" bug that makes framework reactivity hard to get right.
68
+ */
69
+ export function computed(compute, deps) {
70
+ let value = compute();
71
+ const listeners = new Set();
72
+ const recompute = () => {
73
+ const next = compute();
74
+ if (Object.is(next, value))
75
+ return;
76
+ value = next;
77
+ notify(listeners, value);
78
+ };
79
+ // A computed with a live subscriber must itself be subscribed to its deps; to keep the prototype
80
+ // simple it subscribes eagerly for its whole life (fine for the island-scoped, few-signal case).
81
+ for (const dep of deps)
82
+ dep.subscribe(recompute);
83
+ return {
84
+ get: () => value,
85
+ subscribe(listener) {
86
+ listeners.add(listener);
87
+ return () => {
88
+ listeners.delete(listener);
89
+ };
90
+ },
91
+ };
92
+ }
93
+ /**
94
+ * An async derived cell. `resource(fetcher, [deps])` runs `fetcher` immediately and again whenever a
95
+ * declared dependency changes, exposing the result as an explicit `{ status, value, error }`.
96
+ *
97
+ * Two footguns are handled here so they cannot be got wrong by hand:
98
+ * - Races: each run holds a generation; a stale run's resolution is dropped, and its `AbortSignal` is
99
+ * aborted, so an earlier-started-later-finishing fetch never overwrites a newer one.
100
+ * - Deps: like `computed`, dependencies are DECLARED (`NF-C023` checks the fetcher's `.get()` reads
101
+ * against the array). A `resource` that reads a signal its deps omit won't refetch when it changes.
102
+ */
103
+ export function resource(fetcher, deps = []) {
104
+ const state = signal({ status: "pending", value: undefined, error: undefined });
105
+ let generation = 0;
106
+ let controller;
107
+ const run = () => {
108
+ const mine = ++generation;
109
+ controller?.abort();
110
+ controller = new AbortController();
111
+ const active = controller;
112
+ state.set({ status: "pending", value: undefined, error: undefined });
113
+ fetcher(active.signal).then((value) => {
114
+ if (mine === generation)
115
+ state.set({ status: "ready", value, error: undefined });
116
+ }, (error) => {
117
+ // A stale run (superseded) or one we aborted must not surface as an error state.
118
+ if (mine === generation && !active.signal.aborted)
119
+ state.set({ status: "error", value: undefined, error });
120
+ });
121
+ };
122
+ for (const dep of deps)
123
+ dep.subscribe(run);
124
+ run();
125
+ return {
126
+ get: () => state.get(),
127
+ subscribe: (listener) => state.subscribe(listener),
128
+ refetch: run,
129
+ };
130
+ }
131
+ /**
132
+ * Bind one element to a source: `apply(el, value)` runs once immediately and again on every change.
133
+ * Returns the unsubscribe - hand it back as the island's cleanup (or collect several).
134
+ *
135
+ * bind(count, remaining, (el, n) => { el.textContent = String(n) })
136
+ */
137
+ export function bind(el, source, apply) {
138
+ apply(el, source.get());
139
+ return source.subscribe((value) => apply(el, value));
140
+ }
141
+ /**
142
+ * Bind a list signal to a container with keyed reconciliation: new items are `create`d, surviving
143
+ * items are `update`d in place (keeping focus, scroll, and selection), removed items are detached,
144
+ * and the children are ordered to match the array. Returns the unsubscribe.
145
+ *
146
+ * This is the one imperative task too error-prone to hand-write each time - it is why nano exists on
147
+ * top of islands rather than leaving you to rebuild the container on every change.
148
+ */
149
+ export function bindList(source, container, options) {
150
+ let nodes = new Map();
151
+ const render = (items) => {
152
+ const next = new Map();
153
+ for (const item of items) {
154
+ const key = options.key(item);
155
+ const el = nodes.get(key) ?? options.create(item);
156
+ options.update?.(el, item);
157
+ next.set(key, el);
158
+ }
159
+ for (const [key, el] of nodes)
160
+ if (!next.has(key))
161
+ el.remove();
162
+ // Append in item order; appending an already-attached node MOVES it, so the final order matches.
163
+ for (const item of items)
164
+ container.appendChild(next.get(options.key(item)));
165
+ nodes = next;
166
+ };
167
+ render(source.get());
168
+ return source.subscribe(render);
169
+ }
170
+ /**
171
+ * Bind an element to a `resource`, dispatching on `status`. Like `bind`, it applies immediately and
172
+ * on every change and returns the unsubscribe - collect it (a discarded disposer is `NF-C021`).
173
+ *
174
+ * bindResource(el, user, {
175
+ * pending: (n) => { n.textContent = "Loading…" },
176
+ * ready: (n, u) => { n.textContent = u.name },
177
+ * error: (n) => { n.textContent = "Failed to load" },
178
+ * })
179
+ */
180
+ export function bindResource(el, source, handlers) {
181
+ return bind(el, source, (node, state) => {
182
+ if (state.status === "pending")
183
+ handlers.pending?.(node);
184
+ else if (state.status === "error")
185
+ handlers.error?.(node, state.error);
186
+ else
187
+ handlers.ready(node, state.value);
188
+ });
189
+ }
190
+ //# sourceMappingURL=nano.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nano.js","sourceRoot":"","sources":["../src/nano.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createStylesheetEmitter, hash8, reproduciblePath } from "./kit.js";
1
+ import { createStylesheetEmitter, hash8, normalizeFilePath, reproduciblePath } from "./kit.js";
2
2
  const STYLE_NS = "nifra-css-module";
3
3
  /**
4
4
  * The scoped name for a class. Keyed by `filePath` + `className` (NUL-separated so `"a"+"bc"` can't
@@ -377,7 +377,7 @@ export function cssModulesBunPlugin(generate) {
377
377
  setup(build) {
378
378
  const stylesheet = createStylesheetEmitter(build, STYLE_NS);
379
379
  build.onLoad({ filter: /\.module\.css(\?|$)/ }, async (args) => {
380
- const path = args.path.split("?")[0] ?? args.path;
380
+ const path = normalizeFilePath(args.path);
381
381
  const source = await Bun.file(path).text();
382
382
  // Hash scoped names off the cwd-relative path so they're reproducible across machines/CI.
383
383
  const { exports, css } = transformCssModule(source, reproduciblePath(path));
@@ -1 +1 @@
1
- {"version":3,"file":"css-modules.js","sourceRoot":"","sources":["../../src/plugins/css-modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"css-modules.js","sourceRoot":"","sources":["../../src/plugins/css-modules.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,18 @@ export type PluginBuilder = Parameters<BunPlugin["setup"]>[0];
10
10
  * A no-op on the client half and outside a dev server. See `../dev-ssr-graph.ts` for the whole design.
11
11
  */
12
12
  export { rewriteSsrImports } from "../dev-ssr-graph.js";
13
+ /**
14
+ * Convert a plugin/runtime path into a path the host filesystem can open.
15
+ *
16
+ * Bun and URL-based test/build APIs can hand a Windows path to a plugin as `/D:/…` (the
17
+ * `pathname` form of a file URL). Node's filesystem APIs correctly treat the native form as
18
+ * `D:\…`, but do not reinterpret that URL pathname. Keep this conversion at the boundary so
19
+ * generated module specifiers can remain slash-normalized without making filesystem reads
20
+ * platform-dependent.
21
+ */
22
+ export declare function normalizeFilePath(path: string): string;
23
+ /** A stable slash-separated path for generated imports, virtual module IDs, and diagnostics. */
24
+ export declare function portablePath(path: string): string;
13
25
  /**
14
26
  * A **package-root-relative**, forward-slashed form of an absolute path - the input to {@link hash8} for
15
27
  * any build-stable identifier (e.g. CSS-module scoped names). Anchoring on the file's nearest
@@ -1 +1 @@
1
- {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../../src/plugins/kit.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAEpC,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAuBvD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,kBAAkB,CAAA;AAE1C;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,mBAAmB,CAAA;AAC5C,eAAO,MAAM,cAAc,qBAAqB,CAAA;AAOhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,kGAAkG;IAClG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACxC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAkBnB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,CAAC,CAAC,CAiBZ"}
1
+ {"version":3,"file":"kit.d.ts","sourceRoot":"","sources":["../../src/plugins/kit.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AAEpC,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAIvD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBtD;AAED,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,kBAAkB,CAAA;AAE1C;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,mBAAmB,CAAA;AAC5C,eAAO,MAAM,cAAc,qBAAqB,CAAA;AAchD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKrD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,kGAAkG;IAClG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACxC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,GAChB,iBAAiB,CAqBnB;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
@@ -13,7 +13,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
13
13
  * `@nifrajs/web` (imported by the sibling plugin modules); not a public subpath.
14
14
  */
15
15
  import { existsSync } from "node:fs";
16
- import { dirname, relative } from "node:path";
16
+ import { dirname, join, relative } from "node:path";
17
+ import { fileURLToPath, pathToFileURL } from "node:url";
17
18
  /**
18
19
  * Re-keys the app-owned imports of a module the SERVER half of a plugin just compiled, so an edit below
19
20
  * a route reaches SSR instead of being served from Bun's import cache. A plugin that claims a file
@@ -24,6 +25,38 @@ import { dirname, relative } from "node:path";
24
25
  */
25
26
  export { rewriteSsrImports } from "../dev-ssr-graph.js";
26
27
  const packageRootCache = new Map();
28
+ /**
29
+ * Convert a plugin/runtime path into a path the host filesystem can open.
30
+ *
31
+ * Bun and URL-based test/build APIs can hand a Windows path to a plugin as `/D:/…` (the
32
+ * `pathname` form of a file URL). Node's filesystem APIs correctly treat the native form as
33
+ * `D:\…`, but do not reinterpret that URL pathname. Keep this conversion at the boundary so
34
+ * generated module specifiers can remain slash-normalized without making filesystem reads
35
+ * platform-dependent.
36
+ */
37
+ export function normalizeFilePath(path) {
38
+ let value = path.split("?", 1)[0] ?? path;
39
+ if (value.startsWith("file://")) {
40
+ try {
41
+ value = fileURLToPath(value);
42
+ }
43
+ catch {
44
+ // Preserve malformed URL-shaped input. Converting it with Windows slash rules would turn
45
+ // `file://%` into a plausible-looking local path (`file:\\%`) and hide the actual bad specifier.
46
+ return value;
47
+ }
48
+ }
49
+ if (process.platform === "win32") {
50
+ if (/^\/[A-Za-z]:[\\/]/.test(value))
51
+ value = value.slice(1);
52
+ return value.replaceAll("/", "\\");
53
+ }
54
+ return value;
55
+ }
56
+ /** A stable slash-separated path for generated imports, virtual module IDs, and diagnostics. */
57
+ export function portablePath(path) {
58
+ return normalizeFilePath(path).replaceAll("\\", "/");
59
+ }
27
60
  /** The nearest ancestor directory of `startDir` that holds a `package.json` (the file's package root),
28
61
  * cached. Falls back to `startDir` if none is found, so it never throws. */
29
62
  function packageRootOf(startDir) {
@@ -32,7 +65,7 @@ function packageRootOf(startDir) {
32
65
  return cached;
33
66
  let dir = startDir;
34
67
  for (;;) {
35
- if (existsSync(`${dir}/package.json`))
68
+ if (existsSync(join(dir, "package.json")))
36
69
  break;
37
70
  const parent = dirname(dir);
38
71
  if (parent === dir) {
@@ -54,8 +87,9 @@ function packageRootOf(startDir) {
54
87
  * cwd-relative path would silently desync if the SSR server started from a non-project-root cwd.)
55
88
  */
56
89
  export function reproduciblePath(absolutePath) {
57
- const root = packageRootOf(dirname(absolutePath));
58
- return relative(root, absolutePath).replaceAll("\\", "/");
90
+ const filePath = normalizeFilePath(absolutePath);
91
+ const root = packageRootOf(dirname(filePath));
92
+ return relative(root, filePath).replaceAll("\\", "/");
59
93
  }
60
94
  /**
61
95
  * Deterministic 8-hex hash (djb2/xor). Stable across builds - no `Date.now`/`Math.random` - so build
@@ -97,7 +131,12 @@ export const DEV_ROOT_ENV = "NIFRA_DEV_ROOT";
97
131
  export const DEV_ROUTES_ENV = "NIFRA_DEV_ROUTES";
98
132
  const under = (path, dir) => dir !== undefined &&
99
133
  dir !== "" &&
100
- (path === dir || path.startsWith(dir.endsWith("/") ? dir : `${dir}/`));
134
+ (() => {
135
+ const normalizedPath = portablePath(path);
136
+ const normalizedDir = portablePath(dir);
137
+ return (normalizedPath === normalizedDir ||
138
+ normalizedPath.startsWith(normalizedDir.endsWith("/") ? normalizedDir : `${normalizedDir}/`));
139
+ })();
101
140
  /**
102
141
  * Whether a dev compile of `path` may wrap the module in component-level hot-patching - i.e. whether it
103
142
  * is one of the app's OWN components rather than a dependency or a route module.
@@ -121,7 +160,7 @@ export function devHotComponent(path) {
121
160
  const root = process.env[DEV_ROOT_ENV];
122
161
  if (!under(path, root))
123
162
  return false;
124
- if (path.includes("/node_modules/"))
163
+ if (portablePath(path).includes("/node_modules/"))
125
164
  return false;
126
165
  return !under(path, process.env[DEV_ROUTES_ENV]);
127
166
  }
@@ -135,17 +174,20 @@ export function createStylesheetEmitter(build, namespace) {
135
174
  const cssByPath = new Map();
136
175
  // `\?${namespace}$`: namespaces are plain identifiers, so no regex metachars to escape.
137
176
  build.onResolve({ filter: new RegExp(`\\?${namespace}$`) }, (args) => ({
138
- path: args.path,
177
+ // Bun may hand this hook a native Windows path while the emitter stores portable module IDs.
178
+ // Normalize the path portion but preserve the virtual namespace suffix.
179
+ path: `${portablePath(args.path.slice(0, -suffix.length))}${suffix}`,
139
180
  namespace,
140
181
  }));
141
182
  build.onLoad({ filter: /.*/, namespace }, (args) => ({
142
- contents: cssByPath.get(args.path.slice(0, -suffix.length)) ?? "",
183
+ contents: cssByPath.get(portablePath(args.path.slice(0, -suffix.length))) ?? "",
143
184
  loader: "css",
144
185
  }));
145
186
  return {
146
187
  emit(path, css) {
147
- cssByPath.set(path, css);
148
- return `import ${JSON.stringify(path + suffix)}\n`;
188
+ const filePath = portablePath(path);
189
+ cssByPath.set(filePath, css);
190
+ return `import ${JSON.stringify(filePath + suffix)}\n`;
149
191
  },
150
192
  };
151
193
  }
@@ -155,14 +197,22 @@ export function createStylesheetEmitter(build, namespace) {
155
197
  * `import` (which keeps the peer out of the package's hard dependencies) is correct here.
156
198
  */
157
199
  export async function requirePeer(specifier, hint) {
200
+ const isPathSpecifier = specifier.startsWith("file://") ||
201
+ /^\/[A-Za-z]:[\\/]/.test(specifier) ||
202
+ /^[A-Za-z]:[\\/]/.test(specifier);
158
203
  try {
159
- return (await import(__rewriteRelativeImportExtension(specifier)));
204
+ // Dynamic import treats a Windows URL pathname (`/D:/…`) as a POSIX root. Convert local path
205
+ // seams to a file URL so the runtime, regardless of platform, receives an unambiguous module ID.
206
+ const importPath = isPathSpecifier
207
+ ? pathToFileURL(normalizeFilePath(specifier)).href
208
+ : specifier;
209
+ return (await import(__rewriteRelativeImportExtension(importPath)));
160
210
  }
161
211
  catch (err) {
162
212
  // Only a genuine resolution failure means "not installed" - surface anything else (a corrupt
163
213
  // install, a native-binding error, a throw at module top-level) as the real error rather than
164
214
  // masking it behind a misleading "please install it" hint.
165
- if (err.code === "ERR_MODULE_NOT_FOUND") {
215
+ if (!isPathSpecifier && err.code === "ERR_MODULE_NOT_FOUND") {
166
216
  throw new Error(`[nifra/web] ${hint.feature} requires the optional peer "${specifier}". Install it: ${hint.install}`);
167
217
  }
168
218
  throw new Error(`[nifra/web] ${hint.feature}: the optional peer "${specifier}" is installed but failed to load.`, { cause: err });
@@ -1 +1 @@
1
- {"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/plugins/kit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kit.js","sourceRoot":"","sources":["../../src/plugins/kit.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { transformCssModule } from "./css-modules.js";
2
- import { createStylesheetEmitter, reproduciblePath, requirePeer } from "./kit.js";
2
+ import { createStylesheetEmitter, normalizeFilePath, reproduciblePath, requirePeer } from "./kit.js";
3
3
  const STYLE_NS = "nifra-postcss";
4
4
  const CSS_FILTER = /\.(css|pcss|postcss)(\?|$)/;
5
5
  const isModuleRequest = (cleanPath) => /\.module\.(css|pcss|postcss)$/.test(cleanPath);
@@ -35,7 +35,7 @@ export function postcssBunPlugin(generate, options = {}) {
35
35
  return pluginList;
36
36
  };
37
37
  build.onLoad({ filter: CSS_FILTER }, async (args) => {
38
- const path = args.path.split("?")[0] ?? args.path;
38
+ const path = normalizeFilePath(args.path);
39
39
  const source = await Bun.file(path).text();
40
40
  const postcss = await getProcessor();
41
41
  const plugins = await getPlugins();
@@ -1 +1 @@
1
- {"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/plugins/postcss.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEjF,MAAM,QAAQ,GAAG,eAAe,CAAA;AA2BhC,MAAM,UAAU,GAAG,4BAA4B,CAAA;AAC/C,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAW,EAAE,CACrD,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAEjD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuB,EACvB,UAAgC,EAAE;IAElC,OAAO;QACL,IAAI,EAAE,iBAAiB,QAAQ,EAAE;QACjC,KAAK,CAAC,KAAK;YACT,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAC3D,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAA;YAC/B,IAAI,UAAU,GAAmC,OAAO,CAAC,OAAO,CAAA;YAEhE,MAAM,YAAY,GAAG,KAAK,IAA+B,EAAE;gBACzD,SAAS,KAAK,CACZ,MAAM,WAAW,CAAgC,SAAS,EAAE;oBAC1D,OAAO,EAAE,0BAA0B;oBACnC,OAAO,EAAE,oBAAoB;iBAC9B,CAAC,CACH,CAAC,OAAO,CAAA;gBACT,OAAO,SAAS,CAAA;YAClB,CAAC,CAAA;YAED,MAAM,UAAU,GAAG,KAAK,IAAiC,EAAE;gBACzD,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO,UAAU,CAAA;gBAC/C,MAAM,IAAI,GACR,OAAO,CAAC,UAAU;oBAClB,CACE,MAAM,WAAW,CAAmC,qBAAqB,EAAE;wBACzE,OAAO,EAAE,0DAA0D;wBACnE,OAAO,EAAE,gCAAgC;qBAC1C,CAAC,CACH,CAAC,OAAO,CAAA;gBACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC7C,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;gBACjC,OAAO,UAAU,CAAA;YACnB,CAAC,CAAA;YAED,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAA;gBACjD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC1C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAA;gBACpC,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAA;gBAClC,IAAI,GAAW,CAAA;gBACf,IAAI,CAAC;oBACH,GAAG,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;gBACpE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,KAAM,GAAa,EAAE,OAAO,IAAI,GAAG,EAAE,EAC1E,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;gBACH,CAAC;gBAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,2FAA2F;oBAC3F,gFAAgF;oBAChF,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;oBACnF,MAAM,EAAE,GAAG,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAA;oBACxD,OAAO;wBACL,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;wBACzE,MAAM,EAAE,IAAI;qBACb,CAAA;gBACH,CAAC;gBAED,iFAAiF;gBACjF,OAAO;oBACL,QAAQ,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC9D,MAAM,EAAE,IAAI;iBACb,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"postcss.js","sourceRoot":"","sources":["../../src/plugins/postcss.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  import { dirname } from "node:path";
17
17
  import { pathToFileURL } from "node:url";
18
18
  import { transformCssModule } from "./css-modules.js";
19
- import { createStylesheetEmitter, reproduciblePath, requirePeer } from "./kit.js";
19
+ import { createStylesheetEmitter, normalizeFilePath, reproduciblePath, requirePeer } from "./kit.js";
20
20
  const STYLE_NS = "nifra-scss";
21
21
  const isModuleRequest = (cleanPath) => /\.module\.s[ac]ss$/.test(cleanPath);
22
22
  /**
@@ -38,7 +38,7 @@ export function scssBunPlugin(generate, options = {}) {
38
38
  return compiler;
39
39
  };
40
40
  build.onLoad({ filter: /\.s[ac]ss(\?|$)/ }, async (args) => {
41
- const path = args.path.split("?")[0] ?? args.path;
41
+ const path = normalizeFilePath(args.path);
42
42
  const source = await Bun.file(path).text();
43
43
  const sass = await getCompiler();
44
44
  let css;
@@ -1 +1 @@
1
- {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../src/plugins/scss.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../src/plugins/scss.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * StyleX integration for Nifra's Bun and Vite pipelines.
3
+ *
4
+ * The StyleX compiler stays an optional peer owned by the StyleX project. This module owns only the
5
+ * Nifra boundary: transform route/component modules in both pipelines, emit client CSS through the
6
+ * existing virtual stylesheet seam, and run the same transform without CSS for SSR.
7
+ */
8
+ import type { BunPlugin } from "bun";
9
+ /** StyleX's module resolution option, kept structural so the compiler remains an optional peer. */
10
+ export interface StylexModuleResolution {
11
+ readonly type: "commonJS" | "haste";
12
+ readonly rootDir: string;
13
+ }
14
+ /** Structural slice of `@babel/core` used by the adapter. */
15
+ export interface StylexBabelCompiler {
16
+ transformAsync(source: string, options: Readonly<Record<string, unknown>>): Promise<StylexBabelResult | null | undefined>;
17
+ }
18
+ /** Structural slice of the StyleX Babel plugin used by the adapter. */
19
+ export interface StylexCompiler {
20
+ withOptions(options: Readonly<Record<string, unknown>>): unknown;
21
+ processStylexRules(rules: readonly unknown[], options: Readonly<Record<string, unknown>>): string;
22
+ }
23
+ /** Optional peer injection and compiler configuration shared by Bun and Vite adapters. */
24
+ export interface StylexPluginOptions {
25
+ /** Inject `@babel/core` in tests or advanced integrations. Defaults to the optional peer. */
26
+ readonly babel?: StylexBabelCompiler;
27
+ /** Inject `@stylexjs/babel-plugin` in tests or advanced integrations. */
28
+ readonly compiler?: StylexCompiler;
29
+ /** Inject Babel syntax plugins. Defaults to the three official syntax peers. */
30
+ readonly syntaxPlugins?: {
31
+ readonly flow: unknown;
32
+ readonly jsx: unknown;
33
+ readonly typescript: unknown;
34
+ };
35
+ /** StyleX import sources to transform. Defaults to `stylex` and `@stylexjs/stylex`. */
36
+ readonly importSources?: readonly string[];
37
+ /** StyleX development transform mode. Defaults to Nifra's dev-server signal. */
38
+ readonly dev?: boolean;
39
+ /** StyleX CSS layer output. Defaults to `true` for deterministic precedence. */
40
+ readonly useCSSLayers?: boolean;
41
+ /** StyleX's module resolution policy. */
42
+ readonly unstable_moduleResolution?: StylexModuleResolution;
43
+ /** Extra Babel plugins and presets merged before the StyleX plugin. */
44
+ readonly babelConfig?: {
45
+ readonly plugins?: readonly unknown[];
46
+ readonly presets?: readonly unknown[];
47
+ };
48
+ }
49
+ interface StylexBabelResult {
50
+ readonly code?: unknown;
51
+ readonly metadata?: unknown;
52
+ }
53
+ /** Build a Bun plugin that transforms StyleX and emits CSS for the browser or class maps for SSR. */
54
+ export declare function stylexBunPlugin(generate: "dom" | "ssr", options?: StylexPluginOptions): BunPlugin;
55
+ /** Structural Vite plugin return type. Vite remains an optional peer of `@nifrajs/web`. */
56
+ export interface StylexVitePlugin {
57
+ readonly name: string;
58
+ transform(source: string, id: string): Promise<{
59
+ readonly code: string;
60
+ readonly map?: null;
61
+ } | undefined>;
62
+ resolveId(id: string): string | undefined;
63
+ load(id: string): string | undefined;
64
+ }
65
+ /** Build a Vite plugin that maps each transformed StyleX module to a virtual CSS asset. */
66
+ export declare function stylexVitePlugin(generate: "dom" | "ssr", options?: StylexPluginOptions): StylexVitePlugin;
67
+ /** Convenience alias for apps that configure only a browser Vite build. */
68
+ export declare const stylexVite: (options?: StylexPluginOptions) => StylexVitePlugin;
69
+ export {};
70
+ //# sourceMappingURL=stylex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylex.d.ts","sourceRoot":"","sources":["../../src/plugins/stylex.ts"],"names":[],"mappings":"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"}