@nifrajs/web 2.1.0 → 2.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 (194) hide show
  1. package/README.md +3 -3
  2. package/dist/build-vite.d.ts +68 -0
  3. package/dist/build-vite.d.ts.map +1 -0
  4. package/dist/build-vite.js +433 -0
  5. package/dist/build-vite.js.map +1 -0
  6. package/dist/build.d.ts +174 -65
  7. package/dist/build.d.ts.map +1 -1
  8. package/dist/build.js +376 -135
  9. package/dist/build.js.map +1 -1
  10. package/dist/bun-dev-entry.d.ts +83 -0
  11. package/dist/bun-dev-entry.d.ts.map +1 -0
  12. package/dist/bun-dev-entry.js +136 -0
  13. package/dist/bun-dev-entry.js.map +1 -0
  14. package/dist/chunk-names.js +1 -1
  15. package/dist/client.d.ts +3 -9
  16. package/dist/client.d.ts.map +1 -1
  17. package/dist/client.js +209 -27
  18. package/dist/client.js.map +1 -1
  19. package/dist/conformance.d.ts +2 -2
  20. package/dist/conformance.js +3 -3
  21. package/dist/deferred.d.ts +11 -11
  22. package/dist/deferred.d.ts.map +1 -1
  23. package/dist/deferred.js +16 -16
  24. package/dist/dev-error.d.ts +2 -2
  25. package/dist/dev-error.js +3 -3
  26. package/dist/dev-port.d.ts +36 -0
  27. package/dist/dev-port.d.ts.map +1 -0
  28. package/dist/dev-port.js +48 -0
  29. package/dist/dev-port.js.map +1 -0
  30. package/dist/dev.d.ts +62 -5
  31. package/dist/dev.d.ts.map +1 -1
  32. package/dist/dev.js +419 -60
  33. package/dist/dev.js.map +1 -1
  34. package/dist/draft.d.ts +44 -7
  35. package/dist/draft.d.ts.map +1 -1
  36. package/dist/draft.js +92 -9
  37. package/dist/draft.js.map +1 -1
  38. package/dist/fn-state.d.ts +56 -0
  39. package/dist/fn-state.d.ts.map +1 -0
  40. package/dist/fn-state.js +77 -0
  41. package/dist/fn-state.js.map +1 -0
  42. package/dist/fn.d.ts +111 -0
  43. package/dist/fn.d.ts.map +1 -0
  44. package/dist/fn.js +125 -0
  45. package/dist/fn.js.map +1 -0
  46. package/dist/fonts-google.d.ts +9 -9
  47. package/dist/fonts-google.js +10 -10
  48. package/dist/fonts.d.ts +7 -7
  49. package/dist/fonts.js +1 -1
  50. package/dist/forms.d.ts +8 -8
  51. package/dist/fs.d.ts +15 -2
  52. package/dist/fs.d.ts.map +1 -1
  53. package/dist/fs.js +8 -2
  54. package/dist/fs.js.map +1 -1
  55. package/dist/index.d.ts +266 -74
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +869 -179
  58. package/dist/index.js.map +1 -1
  59. package/dist/internal/head-attributes.d.ts +15 -0
  60. package/dist/internal/head-attributes.d.ts.map +1 -0
  61. package/dist/internal/head-attributes.js +99 -0
  62. package/dist/internal/head-attributes.js.map +1 -0
  63. package/dist/internal/script-types.d.ts +14 -0
  64. package/dist/internal/script-types.d.ts.map +1 -0
  65. package/dist/internal/script-types.js +17 -0
  66. package/dist/internal/script-types.js.map +1 -0
  67. package/dist/internal/server-boundary.d.ts +60 -0
  68. package/dist/internal/server-boundary.d.ts.map +1 -0
  69. package/dist/internal/server-boundary.js +174 -0
  70. package/dist/internal/server-boundary.js.map +1 -0
  71. package/dist/internal/timing-safe-equal.d.ts +16 -0
  72. package/dist/internal/timing-safe-equal.d.ts.map +1 -0
  73. package/dist/internal/timing-safe-equal.js +26 -0
  74. package/dist/internal/timing-safe-equal.js.map +1 -0
  75. package/dist/internal/vite-import.d.ts +63 -0
  76. package/dist/internal/vite-import.d.ts.map +1 -0
  77. package/dist/internal/vite-import.js +94 -0
  78. package/dist/internal/vite-import.js.map +1 -0
  79. package/dist/islands.d.ts +5 -5
  80. package/dist/islands.js +5 -5
  81. package/dist/isr.d.ts +15 -15
  82. package/dist/isr.d.ts.map +1 -1
  83. package/dist/isr.js +8 -21
  84. package/dist/isr.js.map +1 -1
  85. package/dist/llms-txt.d.ts.map +1 -1
  86. package/dist/llms-txt.js +12 -6
  87. package/dist/llms-txt.js.map +1 -1
  88. package/dist/manifest.d.ts +121 -40
  89. package/dist/manifest.d.ts.map +1 -1
  90. package/dist/manifest.js +136 -26
  91. package/dist/manifest.js.map +1 -1
  92. package/dist/module-graph.d.ts +91 -0
  93. package/dist/module-graph.d.ts.map +1 -0
  94. package/dist/module-graph.js +92 -0
  95. package/dist/module-graph.js.map +1 -0
  96. package/dist/navigation.d.ts +120 -5
  97. package/dist/navigation.d.ts.map +1 -1
  98. package/dist/navigation.js +37 -5
  99. package/dist/navigation.js.map +1 -1
  100. package/dist/plugins/css-modules.d.ts +3 -3
  101. package/dist/plugins/css-modules.d.ts.map +1 -1
  102. package/dist/plugins/css-modules.js +0 -0
  103. package/dist/plugins/css-modules.js.map +1 -1
  104. package/dist/plugins/kit.d.ts +8 -8
  105. package/dist/plugins/kit.js +9 -9
  106. package/dist/plugins/scss.js +3 -3
  107. package/dist/plugins/vite-leak-guard.d.ts +45 -0
  108. package/dist/plugins/vite-leak-guard.d.ts.map +1 -0
  109. package/dist/plugins/vite-leak-guard.js +67 -0
  110. package/dist/plugins/vite-leak-guard.js.map +1 -0
  111. package/dist/plugins/vite-server-fn.d.ts +23 -0
  112. package/dist/plugins/vite-server-fn.d.ts.map +1 -0
  113. package/dist/plugins/vite-server-fn.js +51 -0
  114. package/dist/plugins/vite-server-fn.js.map +1 -0
  115. package/dist/plugins/vite-server-only.d.ts +49 -0
  116. package/dist/plugins/vite-server-only.d.ts.map +1 -0
  117. package/dist/plugins/vite-server-only.js +57 -0
  118. package/dist/plugins/vite-server-only.js.map +1 -0
  119. package/dist/prerender.d.ts +5 -5
  120. package/dist/prerender.js +7 -7
  121. package/dist/public-dir.d.ts +36 -0
  122. package/dist/public-dir.d.ts.map +1 -0
  123. package/dist/public-dir.js +89 -0
  124. package/dist/public-dir.js.map +1 -0
  125. package/dist/query.d.ts +10 -10
  126. package/dist/query.js +15 -15
  127. package/dist/route-manifest.d.ts +91 -0
  128. package/dist/route-manifest.d.ts.map +1 -0
  129. package/dist/route-manifest.js +128 -0
  130. package/dist/route-manifest.js.map +1 -0
  131. package/dist/router.d.ts +94 -22
  132. package/dist/router.d.ts.map +1 -1
  133. package/dist/router.js +170 -58
  134. package/dist/router.js.map +1 -1
  135. package/dist/search.d.ts +94 -0
  136. package/dist/search.d.ts.map +1 -0
  137. package/dist/search.js +232 -0
  138. package/dist/search.js.map +1 -0
  139. package/dist/server-only.d.ts +6 -6
  140. package/dist/server-only.js +7 -7
  141. package/dist/service-worker.d.ts +56 -0
  142. package/dist/service-worker.d.ts.map +1 -0
  143. package/dist/service-worker.js +127 -0
  144. package/dist/service-worker.js.map +1 -0
  145. package/dist/vite.d.ts +25 -17
  146. package/dist/vite.d.ts.map +1 -1
  147. package/dist/vite.js +75 -33
  148. package/dist/vite.js.map +1 -1
  149. package/package.json +48 -4
  150. package/server-manifest.d.ts +31 -0
  151. package/src/build-vite.ts +553 -0
  152. package/src/build.ts +563 -172
  153. package/src/bun-dev-entry.ts +184 -0
  154. package/src/chunk-names.ts +1 -1
  155. package/src/client.ts +221 -30
  156. package/src/conformance.ts +3 -3
  157. package/src/deferred.ts +17 -17
  158. package/src/dev-error.ts +3 -3
  159. package/src/dev-port.ts +63 -0
  160. package/src/dev.ts +468 -66
  161. package/src/draft.ts +124 -12
  162. package/src/fn-state.ts +107 -0
  163. package/src/fn.ts +199 -0
  164. package/src/fonts-google.ts +13 -13
  165. package/src/fonts.ts +7 -7
  166. package/src/forms.ts +8 -8
  167. package/src/fs.ts +24 -6
  168. package/src/index.ts +1174 -225
  169. package/src/internal/head-attributes.ts +109 -0
  170. package/src/internal/script-types.ts +18 -0
  171. package/src/internal/server-boundary.ts +187 -0
  172. package/src/internal/timing-safe-equal.ts +24 -0
  173. package/src/internal/vite-import.ts +92 -0
  174. package/src/islands.ts +7 -7
  175. package/src/isr.ts +18 -30
  176. package/src/llms-txt.ts +13 -5
  177. package/src/manifest.ts +264 -48
  178. package/src/module-graph.ts +146 -0
  179. package/src/navigation.ts +151 -5
  180. package/src/plugins/css-modules.ts +0 -0
  181. package/src/plugins/kit.ts +11 -11
  182. package/src/plugins/scss.ts +3 -3
  183. package/src/plugins/vite-leak-guard.ts +110 -0
  184. package/src/plugins/vite-server-fn.ts +67 -0
  185. package/src/plugins/vite-server-only.ts +75 -0
  186. package/src/prerender.ts +10 -10
  187. package/src/public-dir.ts +108 -0
  188. package/src/query.ts +22 -22
  189. package/src/route-manifest.ts +240 -0
  190. package/src/router.ts +288 -74
  191. package/src/search.ts +297 -0
  192. package/src/server-only.ts +7 -7
  193. package/src/service-worker.ts +165 -0
  194. package/src/vite.ts +103 -49
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Constant-time string equality, shared by every secret check in `@nifrajs/web`. Internal: no
3
+ * `exports` entry points here, so it never becomes public API.
4
+ *
5
+ * One owner per package rather than a copy per call site - this is the primitive whose whole value
6
+ * lies in a detail (no early exit) that a well-meaning "simplification" silently removes, and a bug
7
+ * in it is invisible in review and in tests, since a timing-unsafe compare returns the same answers.
8
+ */
9
+ /**
10
+ * Compare two strings without leaking, via timing, where they first differ. A length mismatch returns
11
+ * `false` up front: the length isn't the secret, and different-length buffers can't be compared in
12
+ * constant time anyway. Encodes to bytes first so multi-byte characters compare by content, not by
13
+ * UTF-16 code unit.
14
+ */
15
+ export declare function timingSafeEqual(a: string, b: string): boolean;
16
+ //# sourceMappingURL=timing-safe-equal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing-safe-equal.d.ts","sourceRoot":"","sources":["../../src/internal/timing-safe-equal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAQ7D"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Constant-time string equality, shared by every secret check in `@nifrajs/web`. Internal: no
3
+ * `exports` entry points here, so it never becomes public API.
4
+ *
5
+ * One owner per package rather than a copy per call site - this is the primitive whose whole value
6
+ * lies in a detail (no early exit) that a well-meaning "simplification" silently removes, and a bug
7
+ * in it is invisible in review and in tests, since a timing-unsafe compare returns the same answers.
8
+ */
9
+ /**
10
+ * Compare two strings without leaking, via timing, where they first differ. A length mismatch returns
11
+ * `false` up front: the length isn't the secret, and different-length buffers can't be compared in
12
+ * constant time anyway. Encodes to bytes first so multi-byte characters compare by content, not by
13
+ * UTF-16 code unit.
14
+ */
15
+ export function timingSafeEqual(a, b) {
16
+ const enc = new TextEncoder();
17
+ const ba = enc.encode(a);
18
+ const bb = enc.encode(b);
19
+ if (ba.length !== bb.length)
20
+ return false;
21
+ let diff = 0;
22
+ for (let i = 0; i < ba.length; i++)
23
+ diff |= ba[i] ^ bb[i];
24
+ return diff === 0;
25
+ }
26
+ //# sourceMappingURL=timing-safe-equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timing-safe-equal.js","sourceRoot":"","sources":["../../src/internal/timing-safe-equal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;IAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAK,EAAE,CAAC,CAAC,CAAY,GAAI,EAAE,CAAC,CAAC,CAAY,CAAA;IACjF,OAAO,IAAI,KAAK,CAAC,CAAA;AACnB,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The one place nifra imports Vite from.
3
+ *
4
+ * ## Why this is a module and not two `await import("vite")` calls
5
+ *
6
+ * Vite must not be imported before {@link relaxCaptureStackTrace} has run, and that requirement is
7
+ * invisible at the call site. It was invisible in exactly the way that matters: the production build
8
+ * relaxed first, the dev server did not, and the dev server's import ran earlier in the test process.
9
+ * ESM caches a module that throws while EVALUATING, so once vite failed there it kept failing - every
10
+ * later `loadVite` re-threw the cached error, with its shim correctly installed and no longer able to
11
+ * help. One unguarded import poisons vite for the whole process.
12
+ *
13
+ * So the import lives here and the guard is not optional. A caller cannot get the module without it.
14
+ */
15
+ /**
16
+ * Restore V8's `Error.captureStackTrace` contract on a runtime that is stricter than it.
17
+ *
18
+ * `captureStackTrace` is a V8 API and V8 decorates ANY object handed to it. Some runtimes require a
19
+ * real Error - one with the internal slot - and throw "First argument must be an Error object".
20
+ *
21
+ * That breaks importing vite outright. Vite bundles `follow-redirects`, which builds its error types
22
+ * the pre-class way:
23
+ *
24
+ * function CustomError(props) { Error.captureStackTrace(this, this.constructor); … }
25
+ * CustomError.prototype = new (baseClass || Error)()
26
+ *
27
+ * The last line CONSTRUCTS `baseClass` while defining the subclass, so `this` inherits from Error but
28
+ * was never built by it - and the throw lands during module evaluation, before vite exports anything.
29
+ *
30
+ * Decorating a stack is best-effort by definition, so swallowing the refusal loses nothing: the shim
31
+ * delegates and suppresses only that. Installed once and deliberately not restored, since the strict
32
+ * behaviour is the deviation and a library evaluated later meets the same wall.
33
+ *
34
+ * ## Why it does not probe first
35
+ *
36
+ * It used to construct an object like follow-redirects' and install the shim only if the runtime
37
+ * refused it. That shipped and CI still failed, because the probe was not the same shape as the real
38
+ * call: it passed `Object.create(Error.prototype)` and no `constructorOpt`, while follow-redirects
39
+ * passes an object whose prototype is an Error INSTANCE plus `this.constructor`. One Bun build accepts
40
+ * the former and rejects the latter, so the probe reported "permissive" and installed nothing.
41
+ *
42
+ * A probe has to predict every caller's construction pattern to be right, and is silently wrong when
43
+ * it guesses short. Installing unconditionally cannot fail that way.
44
+ */
45
+ export declare function relaxCaptureStackTrace(): void;
46
+ /**
47
+ * Import the project's Vite, with the stack-trace contract restored first.
48
+ *
49
+ * Callers keep their own error message - the dev server and the production build fail for the same
50
+ * reasons but need to say different things - so this deliberately lets the cause through untouched.
51
+ * Use {@link isViteUnresolved} to tell "vite is not installed" from "vite failed to load".
52
+ */
53
+ export declare function importVite<T>(): Promise<T>;
54
+ /**
55
+ * Whether a failed {@link importVite} means vite is absent rather than broken.
56
+ *
57
+ * `vite` is an OPTIONAL peer, so a project without it fails to RESOLVE - the common case, and the one
58
+ * worth naming. But vite can also resolve and fail while EVALUATING, which is not a missing dependency
59
+ * at all: vite 8 loads rolldown's native binding on import, and a binding that will not load surfaces
60
+ * the same way. Telling that user to install what they already installed sends them the wrong way.
61
+ */
62
+ export declare function isViteUnresolved(cause: unknown): boolean;
63
+ //# sourceMappingURL=vite-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-import.d.ts","sourceRoot":"","sources":["../../src/internal/vite-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAkB7C;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAGhD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGxD"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * The one place nifra imports Vite from.
3
+ *
4
+ * ## Why this is a module and not two `await import("vite")` calls
5
+ *
6
+ * Vite must not be imported before {@link relaxCaptureStackTrace} has run, and that requirement is
7
+ * invisible at the call site. It was invisible in exactly the way that matters: the production build
8
+ * relaxed first, the dev server did not, and the dev server's import ran earlier in the test process.
9
+ * ESM caches a module that throws while EVALUATING, so once vite failed there it kept failing - every
10
+ * later `loadVite` re-threw the cached error, with its shim correctly installed and no longer able to
11
+ * help. One unguarded import poisons vite for the whole process.
12
+ *
13
+ * So the import lives here and the guard is not optional. A caller cannot get the module without it.
14
+ */
15
+ /** Marks the shim as installed, so repeated imports do not wrap a wrapper. */
16
+ const RELAXED = Symbol.for("@nifrajs/web/relaxed-capture-stack-trace");
17
+ /**
18
+ * Restore V8's `Error.captureStackTrace` contract on a runtime that is stricter than it.
19
+ *
20
+ * `captureStackTrace` is a V8 API and V8 decorates ANY object handed to it. Some runtimes require a
21
+ * real Error - one with the internal slot - and throw "First argument must be an Error object".
22
+ *
23
+ * That breaks importing vite outright. Vite bundles `follow-redirects`, which builds its error types
24
+ * the pre-class way:
25
+ *
26
+ * function CustomError(props) { Error.captureStackTrace(this, this.constructor); … }
27
+ * CustomError.prototype = new (baseClass || Error)()
28
+ *
29
+ * The last line CONSTRUCTS `baseClass` while defining the subclass, so `this` inherits from Error but
30
+ * was never built by it - and the throw lands during module evaluation, before vite exports anything.
31
+ *
32
+ * Decorating a stack is best-effort by definition, so swallowing the refusal loses nothing: the shim
33
+ * delegates and suppresses only that. Installed once and deliberately not restored, since the strict
34
+ * behaviour is the deviation and a library evaluated later meets the same wall.
35
+ *
36
+ * ## Why it does not probe first
37
+ *
38
+ * It used to construct an object like follow-redirects' and install the shim only if the runtime
39
+ * refused it. That shipped and CI still failed, because the probe was not the same shape as the real
40
+ * call: it passed `Object.create(Error.prototype)` and no `constructorOpt`, while follow-redirects
41
+ * passes an object whose prototype is an Error INSTANCE plus `this.constructor`. One Bun build accepts
42
+ * the former and rejects the latter, so the probe reported "permissive" and installed nothing.
43
+ *
44
+ * A probe has to predict every caller's construction pattern to be right, and is silently wrong when
45
+ * it guesses short. Installing unconditionally cannot fail that way.
46
+ */
47
+ export function relaxCaptureStackTrace() {
48
+ const strict = Error.captureStackTrace;
49
+ if (typeof strict !== "function")
50
+ return;
51
+ if (Error[RELAXED] === true)
52
+ return;
53
+ try {
54
+ Error.captureStackTrace = ((target, constructorOpt) => {
55
+ try {
56
+ ;
57
+ strict.call(Error, target, constructorOpt);
58
+ }
59
+ catch {
60
+ // The runtime refused to decorate this object. A missing `.stack` is not worth failing over.
61
+ }
62
+ });
63
+ Object.defineProperty(Error, RELAXED, { value: true, configurable: true });
64
+ }
65
+ catch {
66
+ // The property is frozen or non-writable. Nothing can be done about the import that follows, but
67
+ // failing HERE would replace vite's own error with an assignment error - strictly less
68
+ // informative than letting the import fail and be reported by the caller.
69
+ }
70
+ }
71
+ /**
72
+ * Import the project's Vite, with the stack-trace contract restored first.
73
+ *
74
+ * Callers keep their own error message - the dev server and the production build fail for the same
75
+ * reasons but need to say different things - so this deliberately lets the cause through untouched.
76
+ * Use {@link isViteUnresolved} to tell "vite is not installed" from "vite failed to load".
77
+ */
78
+ export async function importVite() {
79
+ relaxCaptureStackTrace();
80
+ return (await import("vite"));
81
+ }
82
+ /**
83
+ * Whether a failed {@link importVite} means vite is absent rather than broken.
84
+ *
85
+ * `vite` is an OPTIONAL peer, so a project without it fails to RESOLVE - the common case, and the one
86
+ * worth naming. But vite can also resolve and fail while EVALUATING, which is not a missing dependency
87
+ * at all: vite 8 loads rolldown's native binding on import, and a binding that will not load surfaces
88
+ * the same way. Telling that user to install what they already installed sends them the wrong way.
89
+ */
90
+ export function isViteUnresolved(cause) {
91
+ const message = cause instanceof Error ? cause.message : String(cause);
92
+ return /cannot find (?:package|module)|ERR_MODULE_NOT_FOUND/i.test(message);
93
+ }
94
+ //# sourceMappingURL=vite-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite-import.js","sourceRoot":"","sources":["../../src/internal/vite-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8EAA8E;AAC9E,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;AAErF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAA;IACtC,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAM;IACxC,IAAK,KAAiD,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAM;IAChF,IAAI,CAAC;QACH,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,MAAc,EAAE,cAAwB,EAAE,EAAE;YACtE,IAAI,CAAC;gBACH,CAAC;gBAAC,MAA2C,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;YACnF,CAAC;YAAC,MAAM,CAAC;gBACP,6FAA6F;YAC/F,CAAC;QACH,CAAC,CAAmC,CAAA;QACpC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,iGAAiG;QACjG,uFAAuF;QACvF,0EAA0E;IAC5E,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,sBAAsB,EAAE,CAAA;IACxB,OAAO,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAiB,CAAA;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,OAAO,sDAAsD,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAC7E,CAAC"}
package/dist/islands.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @nifrajs/web/islands — the framework-agnostic islands client runtime.
2
+ * @nifrajs/web/islands - the framework-agnostic islands client runtime.
3
3
  *
4
4
  * An "island" is a server-rendered `<nifra-island>` element whose interactivity is mounted by a small
5
5
  * **plain-DOM** enhancer instead of a framework runtime. On a route that opts out of full-document
6
6
  * hydration (`export const hydrate = false`), the page ships **zero** framework JS; only the island
7
7
  * bundle (this runtime + your enhancers) loads. This variant ships ~99% less client JS than full
8
- * React hydration on a mostly-static page — the framework runtime is the cost, and islands skip it
8
+ * React hydration on a mostly-static page - the framework runtime is the cost, and islands skip it
9
9
  * entirely here.
10
10
  *
11
11
  * Server side: render the marker with `@nifrajs/web-react`'s `<Island>` (or any framework's host element
12
12
  * `<nifra-island data-id data-strategy data-props>`). Props are JSON-encoded inline in `data-props`
13
- * (attribute-escaped by the framework) — no central registry, so concurrent SSR renders never share
13
+ * (attribute-escaped by the framework) - no central registry, so concurrent SSR renders never share
14
14
  * state. Client side: bundle one entry that calls `mountIslands({ <id>: enhancer })` and load it via
15
15
  * the route's `islandScripts`.
16
16
  */
@@ -20,14 +20,14 @@ export type IslandStrategy = "load" | "idle" | "visible";
20
20
  export type IslandCleanup = () => void;
21
21
  /**
22
22
  * Enhances one island element with its (typed) props. Return a cleanup function to tear down on
23
- * `dispose()` (listeners, observers) — optional; an enhancer with nothing to clean up returns nothing.
23
+ * `dispose()` (listeners, observers) - optional; an enhancer with nothing to clean up returns nothing.
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
27
  /**
28
28
  * Find every `<nifra-island data-id>` under `root` (default `document`) and enhance each with the
29
29
  * matching enhancer, honoring its `data-strategy`. An island whose `id` has no enhancer is left as
30
- * inert SSR HTML (forward-compatible). An enhancer that throws is isolated — it never blocks the
30
+ * inert SSR HTML (forward-compatible). An enhancer that throws is isolated - it never blocks the
31
31
  * others (each island is independent). Returns a disposer that cancels pending triggers and runs every
32
32
  * enhancer's cleanup (call it on soft-nav teardown; harmless if your app never navigates).
33
33
  */
package/dist/islands.js CHANGED
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @nifrajs/web/islands — the framework-agnostic islands client runtime.
2
+ * @nifrajs/web/islands - the framework-agnostic islands client runtime.
3
3
  *
4
4
  * An "island" is a server-rendered `<nifra-island>` element whose interactivity is mounted by a small
5
5
  * **plain-DOM** enhancer instead of a framework runtime. On a route that opts out of full-document
6
6
  * hydration (`export const hydrate = false`), the page ships **zero** framework JS; only the island
7
7
  * bundle (this runtime + your enhancers) loads. This variant ships ~99% less client JS than full
8
- * React hydration on a mostly-static page — the framework runtime is the cost, and islands skip it
8
+ * React hydration on a mostly-static page - the framework runtime is the cost, and islands skip it
9
9
  * entirely here.
10
10
  *
11
11
  * Server side: render the marker with `@nifrajs/web-react`'s `<Island>` (or any framework's host element
12
12
  * `<nifra-island data-id data-strategy data-props>`). Props are JSON-encoded inline in `data-props`
13
- * (attribute-escaped by the framework) — no central registry, so concurrent SSR renders never share
13
+ * (attribute-escaped by the framework) - no central registry, so concurrent SSR renders never share
14
14
  * state. Client side: bundle one entry that calls `mountIslands({ <id>: enhancer })` and load it via
15
15
  * the route's `islandScripts`.
16
16
  */
@@ -63,7 +63,7 @@ function whenStrategy(el, strategy, run) {
63
63
  /**
64
64
  * Find every `<nifra-island data-id>` under `root` (default `document`) and enhance each with the
65
65
  * matching enhancer, honoring its `data-strategy`. An island whose `id` has no enhancer is left as
66
- * inert SSR HTML (forward-compatible). An enhancer that throws is isolated — it never blocks the
66
+ * inert SSR HTML (forward-compatible). An enhancer that throws is isolated - it never blocks the
67
67
  * others (each island is independent). Returns a disposer that cancels pending triggers and runs every
68
68
  * enhancer's cleanup (call it on soft-nav teardown; harmless if your app never navigates).
69
69
  */
@@ -99,7 +99,7 @@ export function mountIslands(enhancers, options = {}) {
99
99
  dispose();
100
100
  }
101
101
  catch {
102
- // best-effort teardown — a failing cleanup must not block the rest
102
+ // best-effort teardown - a failing cleanup must not block the rest
103
103
  }
104
104
  }
105
105
  };
package/dist/isr.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /** A cached SSR response — the bytes + metadata a {@link CacheStore} persists. */
1
+ /** A cached SSR response - the bytes + metadata a {@link CacheStore} persists. */
2
2
  export interface CachedResponse {
3
3
  /** The rendered document (UTF-8 HTML, fully buffered). */
4
4
  readonly body: string;
@@ -25,7 +25,7 @@ export interface CacheStore {
25
25
  delete(key: string): Promise<void>;
26
26
  }
27
27
  export interface MemoryCacheStoreOptions {
28
- /** Allow the in-memory store in production. Off by default — per-instance caching means revalidation
28
+ /** Allow the in-memory store in production. Off by default - per-instance caching means revalidation
29
29
  * won't propagate across instances and each instance caches separately. */
30
30
  readonly allowInProduction?: boolean;
31
31
  /** Hard cap on entries; the least-recently-used is evicted past it (default 500). */
@@ -33,7 +33,7 @@ export interface MemoryCacheStoreOptions {
33
33
  }
34
34
  /**
35
35
  * In-process ISR cache. Refuses to run in production unless explicitly allowed (mirrors the
36
- * rate-limit `MemoryStore` — a per-instance cache is unsafe across instances). Bounded **LRU**: a
36
+ * rate-limit `MemoryStore` - a per-instance cache is unsafe across instances). Bounded **LRU**: a
37
37
  * read or write bumps the entry, so the least-recently-used evicts past `max` (a hot, frequently-read
38
38
  * page survives a burst of new pages).
39
39
  */
@@ -46,7 +46,7 @@ export declare class MemoryCacheStore implements CacheStore {
46
46
  delete(key: string): Promise<void>;
47
47
  }
48
48
  /**
49
- * Minimal structural shape of a Cloudflare Workers **KV namespace** binding — just the three methods
49
+ * Minimal structural shape of a Cloudflare Workers **KV namespace** binding - just the three methods
50
50
  * {@link KVCacheStore} uses. Structural (not a dependency on `@cloudflare/workers-types`) so any
51
51
  * KV-like binding satisfies it and tests can pass an in-memory double.
52
52
  */
@@ -63,16 +63,16 @@ export interface KVNamespaceLike {
63
63
  export interface KVCacheStoreOptions {
64
64
  /**
65
65
  * GC backstop (**seconds**) written as the KV entry's `expirationTtl`, so abandoned entries
66
- * eventually evict. MUST exceed your longest `revalidate` window — otherwise KV expiry turns a
66
+ * eventually evict. MUST exceed your longest `revalidate` window - otherwise KV expiry turns a
67
67
  * stale-while-revalidate into a *blocking* miss (the entry vanishes instead of being served stale
68
- * while it regenerates) — and be ≥ 60 (Cloudflare KV's minimum). Omit ⇒ entries persist until
68
+ * while it regenerates) - and be ≥ 60 (Cloudflare KV's minimum). Omit ⇒ entries persist until
69
69
  * overwritten on regeneration or purged via `revalidateEndpoint`.
70
70
  */
71
71
  readonly expirationTtl?: number;
72
72
  }
73
73
  /**
74
74
  * A {@link CacheStore} backed by a **Cloudflare Workers KV** namespace (or any {@link KVNamespaceLike}
75
- * binding) — the production-grade shared/durable store ISR wants: cached pages and on-demand purges
75
+ * binding) - the production-grade shared/durable store ISR wants: cached pages and on-demand purges
76
76
  * hold *across* worker instances (unlike the per-instance {@link MemoryCacheStore}). Entries serialize
77
77
  * to JSON; every read is validated before it's trusted (a malformed/version-skewed entry is treated as
78
78
  * a miss). Construct it in your Workers `fetch` from the binding: `new KVCacheStore(env.ISR_CACHE)`.
@@ -85,12 +85,12 @@ export declare class KVCacheStore implements CacheStore {
85
85
  set(key: string, value: CachedResponse): Promise<void>;
86
86
  delete(key: string): Promise<void>;
87
87
  }
88
- /** Minimal platform shape `withISR` needs — just `waitUntil` (edge runtimes extend the response
88
+ /** Minimal platform shape `withISR` needs - just `waitUntil` (edge runtimes extend the response
89
89
  * lifetime so background regeneration finishes). Off-edge it's absent and regen runs fire-and-forget. */
90
90
  export interface ISRPlatform {
91
91
  readonly waitUntil?: (promise: Promise<unknown>) => void;
92
92
  }
93
- /** The app `withISR` wraps — anything with a `fetch(req, platform?)` (a `createWebApp` result). */
93
+ /** The app `withISR` wraps - anything with a `fetch(req, platform?)` (a `createWebApp` result). */
94
94
  export interface ISRApp {
95
95
  fetch(req: Request, platform?: ISRPlatform): Response | Promise<Response>;
96
96
  }
@@ -99,7 +99,7 @@ export interface ISRApp {
99
99
  export declare const ISR_STATUS_HEADER = "x-nifra-isr";
100
100
  /**
101
101
  * Response header a route uses to advertise its ISR freshness (**seconds**) to a {@link withISR}
102
- * wrapper — `createWebApp` emits it from a route's `export const revalidate`. Deliberately distinct
102
+ * wrapper - `createWebApp` emits it from a route's `export const revalidate`. Deliberately distinct
103
103
  * from the action-revalidation `x-nifra-revalidate` header (a CSV path list the *client* parses to
104
104
  * refetch): this one is an integer TTL the *wrapper* reads, so the two channels never alias.
105
105
  */
@@ -110,14 +110,14 @@ export interface ISROptions {
110
110
  * behind). A route overrides it per-page via `export const revalidate` (surfaced as the
111
111
  * `x-nifra-isr-revalidate` response header). */
112
112
  readonly revalidate: number;
113
- /** Monotonic clock (ms) — injected for testability; production passes `() => Date.now()`. */
113
+ /** Monotonic clock (ms) - injected for testability; production passes `() => Date.now()`. */
114
114
  readonly now: () => number;
115
115
  /** Cache key for a request. Default: `origin + pathname + search` so host-routed apps do not share
116
116
  * entries across tenants. Return `null` to bypass the cache for this request (it goes straight to the
117
117
  * app, uncached). */
118
118
  readonly key?: (req: Request) => string | null;
119
119
  /** Draft/preview secret (the same one given to `createWebApp({ draftSecret })` + `enableDraft`). When
120
- * set, a request carrying a valid signed draft cookie **bypasses the cache** — editors always render
120
+ * set, a request carrying a valid signed draft cookie **bypasses the cache** - editors always render
121
121
  * fresh, and a draft render is never written to the store (it can't poison the public cache). */
122
122
  readonly draftSecret?: string;
123
123
  }
@@ -125,7 +125,7 @@ export interface ISROptions {
125
125
  * Wrap a nifra app with **Incremental Static Regeneration**: a cacheable page is served from
126
126
  * {@link CacheStore} when fresh, served **stale while a fresh copy regenerates in the background**
127
127
  * (`platform.waitUntil` on edge), or rendered + stored on a miss. Framework-agnostic (it caches the
128
- * rendered bytes). Returns a `fetch(req, platform?)` handler — hand it to `Bun.serve`/the Workers
128
+ * rendered bytes). Returns a `fetch(req, platform?)` handler - hand it to `Bun.serve`/the Workers
129
129
  * `export default`, etc. Regeneration is single-flight per key (no stampede on a hot stale page).
130
130
  *
131
131
  * Each route's freshness comes from the `revalidate` header the app sets (per-route
@@ -139,12 +139,12 @@ export interface RevalidateEndpointOptions {
139
139
  readonly secret: string;
140
140
  /** Header carrying the secret. Default `x-nifra-revalidate-token`. */
141
141
  readonly tokenHeader?: string;
142
- /** Map a to-purge path → its cache key — MUST match the `withISR` `key` fn. The default uses the
142
+ /** Map a to-purge path → its cache key - MUST match the `withISR` `key` fn. The default uses the
143
143
  * revalidation request's origin plus the purged path, matching `withISR`'s default host-aware key. */
144
144
  readonly key?: (path: string, req: Request) => string;
145
145
  }
146
146
  /**
147
- * An **on-demand revalidation** (purge) endpoint — a `fetch` handler that drops a path's cached entry
147
+ * An **on-demand revalidation** (purge) endpoint - a `fetch` handler that drops a path's cached entry
148
148
  * so the next request re-renders. `POST` with the secret in the token header and the path as `?path=`
149
149
  * or a JSON `{ "path": "/blog/x" }` body. The token is checked in **constant time** (wrong/missing →
150
150
  * `401`); a missing/relative path → `400`; non-POST → `405`. Mount it on a nifra route, e.g.
package/dist/isr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"isr.d.ts","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isr.d.ts","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
package/dist/isr.js CHANGED
@@ -7,9 +7,10 @@
7
7
  * This module is the store primitive; the SWR wrapper (`withISR`) builds on it next.
8
8
  */
9
9
  import { isDraftEnabled } from "./draft.js";
10
+ import { timingSafeEqual } from "./internal/timing-safe-equal.js";
10
11
  /**
11
12
  * In-process ISR cache. Refuses to run in production unless explicitly allowed (mirrors the
12
- * rate-limit `MemoryStore` — a per-instance cache is unsafe across instances). Bounded **LRU**: a
13
+ * rate-limit `MemoryStore` - a per-instance cache is unsafe across instances). Bounded **LRU**: a
13
14
  * read or write bumps the entry, so the least-recently-used evicts past `max` (a hot, frequently-read
14
15
  * page survives a burst of new pages).
15
16
  */
@@ -28,7 +29,7 @@ export class MemoryCacheStore {
28
29
  get(key) {
29
30
  const value = this.cache.get(key);
30
31
  // LRU: a read bumps the entry to the tail so the bounded evict drops the LEAST-RECENTLY-USED,
31
- // not the oldest-written — otherwise a burst of new pages would evict a hot, frequently-read one.
32
+ // not the oldest-written - otherwise a burst of new pages would evict a hot, frequently-read one.
32
33
  if (value !== undefined) {
33
34
  this.cache.delete(key);
34
35
  this.cache.set(key, value);
@@ -76,7 +77,7 @@ const isCachedResponse = (value) => {
76
77
  };
77
78
  /**
78
79
  * A {@link CacheStore} backed by a **Cloudflare Workers KV** namespace (or any {@link KVNamespaceLike}
79
- * binding) — the production-grade shared/durable store ISR wants: cached pages and on-demand purges
80
+ * binding) - the production-grade shared/durable store ISR wants: cached pages and on-demand purges
80
81
  * hold *across* worker instances (unlike the per-instance {@link MemoryCacheStore}). Entries serialize
81
82
  * to JSON; every read is validated before it's trusted (a malformed/version-skewed entry is treated as
82
83
  * a miss). Construct it in your Workers `fetch` from the binding: `new KVCacheStore(env.ISR_CACHE)`.
@@ -121,7 +122,7 @@ export class KVCacheStore {
121
122
  export const ISR_STATUS_HEADER = "x-nifra-isr";
122
123
  /**
123
124
  * Response header a route uses to advertise its ISR freshness (**seconds**) to a {@link withISR}
124
- * wrapper — `createWebApp` emits it from a route's `export const revalidate`. Deliberately distinct
125
+ * wrapper - `createWebApp` emits it from a route's `export const revalidate`. Deliberately distinct
125
126
  * from the action-revalidation `x-nifra-revalidate` header (a CSV path list the *client* parses to
126
127
  * refetch): this one is an integer TTL the *wrapper* reads, so the two channels never alias.
127
128
  */
@@ -197,7 +198,7 @@ function sanitizeCachedHeaders(headers) {
197
198
  * Wrap a nifra app with **Incremental Static Regeneration**: a cacheable page is served from
198
199
  * {@link CacheStore} when fresh, served **stale while a fresh copy regenerates in the background**
199
200
  * (`platform.waitUntil` on edge), or rendered + stored on a miss. Framework-agnostic (it caches the
200
- * rendered bytes). Returns a `fetch(req, platform?)` handler — hand it to `Bun.serve`/the Workers
201
+ * rendered bytes). Returns a `fetch(req, platform?)` handler - hand it to `Bun.serve`/the Workers
201
202
  * `export default`, etc. Regeneration is single-flight per key (no stampede on a hot stale page).
202
203
  *
203
204
  * Each route's freshness comes from the `revalidate` header the app sets (per-route
@@ -233,7 +234,7 @@ export function withISR(app, options) {
233
234
  headers: { ...entry.headers, [ISR_STATUS_HEADER]: "miss" },
234
235
  });
235
236
  };
236
- // Background regeneration (single-flight per key) — a failed regen keeps the stale entry; the next
237
+ // Background regeneration (single-flight per key) - a failed regen keeps the stale entry; the next
237
238
  // stale hit retries. Never throws (it runs detached / under waitUntil).
238
239
  const regenerate = async (req, platform, key) => {
239
240
  if (regenerating.has(key))
@@ -286,22 +287,8 @@ export function withISR(app, options) {
286
287
  };
287
288
  }
288
289
  const jsonError = (status, error) => Response.json({ ok: false, error }, { status });
289
- /** Constant-time string equality (XOR-accumulate, no early exit). A length mismatch returns `false`
290
- * up front — the length isn't the secret, and different-length buffers can't be compared in constant
291
- * time anyway. Used to check the on-demand revalidation token without leaking it via timing. */
292
- function timingSafeEqual(a, b) {
293
- const enc = new TextEncoder();
294
- const ba = enc.encode(a);
295
- const bb = enc.encode(b);
296
- if (ba.length !== bb.length)
297
- return false;
298
- let diff = 0;
299
- for (let i = 0; i < ba.length; i++)
300
- diff |= ba[i] ^ bb[i];
301
- return diff === 0;
302
- }
303
290
  /**
304
- * An **on-demand revalidation** (purge) endpoint — a `fetch` handler that drops a path's cached entry
291
+ * An **on-demand revalidation** (purge) endpoint - a `fetch` handler that drops a path's cached entry
305
292
  * so the next request re-renders. `POST` with the secret in the token header and the path as `?path=`
306
293
  * or a JSON `{ "path": "/blog/x" }` body. The token is checked in **constant time** (wrong/missing →
307
294
  * `401`); a missing/relative path → `400`; non-POST → `405`. Mount it on a nifra route, e.g.
package/dist/isr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"isr.js","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isr.js","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAiFA,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAoEjB"}
1
+ {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"AAiFA,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC5E,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CA4EjB"}
package/dist/llms-txt.js CHANGED
@@ -75,12 +75,18 @@ export async function generateLlmsTxt(full, pageRoutes, backend) {
75
75
  // 1. Project Guidelines
76
76
  let agentsMd = "";
77
77
  try {
78
- if (typeof Bun !== "undefined") {
79
- agentsMd = await Bun.file("AGENTS.md").text();
80
- }
81
- else {
82
- const fs = await import("node:fs/promises");
83
- agentsMd = await fs.readFile("AGENTS.md", "utf-8");
78
+ // Edge bundles define this flag and dead-code-eliminate the filesystem branch. Keeping the import
79
+ // behind a runtime-only `typeof Bun` check is insufficient: Rollup must still emit an unresolved
80
+ // `node:` dependency, which workerd cannot load.
81
+ const edgeRuntime = globalThis.__NIFRA_EDGE_RUNTIME__;
82
+ if (edgeRuntime !== true) {
83
+ if (typeof Bun !== "undefined") {
84
+ agentsMd = await Bun.file("AGENTS.md").text();
85
+ }
86
+ else {
87
+ const fs = await import("node:fs/promises");
88
+ agentsMd = await fs.readFile("AGENTS.md", "utf-8");
89
+ }
84
90
  }
85
91
  }
86
92
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"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"}