@nifrajs/web 0.1.0-alpha.1

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 (104) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -0
  3. package/css-modules.d.ts +34 -0
  4. package/dist/build.d.ts +110 -0
  5. package/dist/build.d.ts.map +1 -0
  6. package/dist/build.js +238 -0
  7. package/dist/build.js.map +1 -0
  8. package/dist/client.d.ts +32 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +204 -0
  11. package/dist/client.js.map +1 -0
  12. package/dist/deferred.d.ts +90 -0
  13. package/dist/deferred.d.ts.map +1 -0
  14. package/dist/deferred.js +310 -0
  15. package/dist/deferred.js.map +1 -0
  16. package/dist/dev-error.d.ts +17 -0
  17. package/dist/dev-error.d.ts.map +1 -0
  18. package/dist/dev-error.js +59 -0
  19. package/dist/dev-error.js.map +1 -0
  20. package/dist/dev.d.ts +25 -0
  21. package/dist/dev.d.ts.map +1 -0
  22. package/dist/dev.js +83 -0
  23. package/dist/dev.js.map +1 -0
  24. package/dist/draft.d.ts +58 -0
  25. package/dist/draft.d.ts.map +1 -0
  26. package/dist/draft.js +55 -0
  27. package/dist/draft.js.map +1 -0
  28. package/dist/fonts-google.d.ts +109 -0
  29. package/dist/fonts-google.d.ts.map +1 -0
  30. package/dist/fonts-google.js +291 -0
  31. package/dist/fonts-google.js.map +1 -0
  32. package/dist/fonts.d.ts +67 -0
  33. package/dist/fonts.d.ts.map +1 -0
  34. package/dist/fonts.js +103 -0
  35. package/dist/fonts.js.map +1 -0
  36. package/dist/fs.d.ts +10 -0
  37. package/dist/fs.d.ts.map +1 -0
  38. package/dist/fs.js +24 -0
  39. package/dist/fs.js.map +1 -0
  40. package/dist/index.d.ts +280 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +784 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/islands.d.ts +37 -0
  45. package/dist/islands.d.ts.map +1 -0
  46. package/dist/islands.js +107 -0
  47. package/dist/islands.js.map +1 -0
  48. package/dist/isr.d.ts +154 -0
  49. package/dist/isr.d.ts.map +1 -0
  50. package/dist/isr.js +331 -0
  51. package/dist/isr.js.map +1 -0
  52. package/dist/manifest.d.ts +178 -0
  53. package/dist/manifest.d.ts.map +1 -0
  54. package/dist/manifest.js +213 -0
  55. package/dist/manifest.js.map +1 -0
  56. package/dist/plugins/css-modules.d.ts +40 -0
  57. package/dist/plugins/css-modules.d.ts.map +1 -0
  58. package/dist/plugins/css-modules.js +0 -0
  59. package/dist/plugins/css-modules.js.map +1 -0
  60. package/dist/plugins/kit.d.ts +44 -0
  61. package/dist/plugins/kit.d.ts.map +1 -0
  62. package/dist/plugins/kit.js +105 -0
  63. package/dist/plugins/kit.js.map +1 -0
  64. package/dist/plugins/scss.d.ts +27 -0
  65. package/dist/plugins/scss.d.ts.map +1 -0
  66. package/dist/plugins/scss.js +78 -0
  67. package/dist/plugins/scss.js.map +1 -0
  68. package/dist/prerender.d.ts +77 -0
  69. package/dist/prerender.d.ts.map +1 -0
  70. package/dist/prerender.js +139 -0
  71. package/dist/prerender.js.map +1 -0
  72. package/dist/query.d.ts +62 -0
  73. package/dist/query.d.ts.map +1 -0
  74. package/dist/query.js +184 -0
  75. package/dist/query.js.map +1 -0
  76. package/dist/router.d.ts +169 -0
  77. package/dist/router.d.ts.map +1 -0
  78. package/dist/router.js +531 -0
  79. package/dist/router.js.map +1 -0
  80. package/dist/vite.d.ts +49 -0
  81. package/dist/vite.d.ts.map +1 -0
  82. package/dist/vite.js +144 -0
  83. package/dist/vite.js.map +1 -0
  84. package/package.json +127 -0
  85. package/src/build.ts +375 -0
  86. package/src/client.ts +218 -0
  87. package/src/deferred.ts +339 -0
  88. package/src/dev-error.ts +62 -0
  89. package/src/dev.ts +108 -0
  90. package/src/draft.ts +82 -0
  91. package/src/fonts-google.ts +397 -0
  92. package/src/fonts.ts +147 -0
  93. package/src/fs.ts +26 -0
  94. package/src/index.ts +1202 -0
  95. package/src/islands.ts +121 -0
  96. package/src/isr.ts +461 -0
  97. package/src/manifest.ts +366 -0
  98. package/src/plugins/css-modules.ts +0 -0
  99. package/src/plugins/kit.ts +123 -0
  100. package/src/plugins/scss.ts +108 -0
  101. package/src/prerender.ts +209 -0
  102. package/src/query.ts +250 -0
  103. package/src/router.ts +676 -0
  104. package/src/vite.ts +212 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @nifrajs/web/islands — the framework-agnostic islands client runtime.
3
+ *
4
+ * An "island" is a server-rendered `<nifra-island>` element whose interactivity is mounted by a small
5
+ * **plain-DOM** enhancer instead of a framework runtime. On a route that opts out of full-document
6
+ * hydration (`export const hydrate = false`), the page ships **zero** framework JS; only the island
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
9
+ * entirely here.
10
+ *
11
+ * Server side: render the marker with `@nifrajs/web-react`'s `<Island>` (or any framework's host element
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
14
+ * state. Client side: bundle one entry that calls `mountIslands({ <id>: enhancer })` and load it via
15
+ * the route's `islandScripts`.
16
+ */
17
+ /** When an island's enhancer runs. Default `load`. */
18
+ export type IslandStrategy = "load" | "idle" | "visible";
19
+ /** Optional teardown an enhancer returns (remove listeners/observers); run on `dispose()`. */
20
+ export type IslandCleanup = () => void;
21
+ /**
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.
24
+ * The `void` member is the no-cleanup case, the same shape as React's `EffectCallback`.
25
+ */
26
+ export type IslandEnhancer<P = unknown> = (el: HTMLElement, props: P) => IslandCleanup | void;
27
+ /**
28
+ * Find every `<nifra-island data-id>` under `root` (default `document`) and enhance each with the
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
31
+ * others (each island is independent). Returns a disposer that cancels pending triggers and runs every
32
+ * enhancer's cleanup (call it on soft-nav teardown; harmless if your app never navigates).
33
+ */
34
+ export declare function mountIslands(enhancers: Readonly<Record<string, IslandEnhancer>>, options?: {
35
+ readonly root?: ParentNode;
36
+ }): () => void;
37
+ //# sourceMappingURL=islands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../src/islands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;AAExD,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;AAiD7F;;;;;;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,CAgCZ"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @nifrajs/web/islands — the framework-agnostic islands client runtime.
3
+ *
4
+ * An "island" is a server-rendered `<nifra-island>` element whose interactivity is mounted by a small
5
+ * **plain-DOM** enhancer instead of a framework runtime. On a route that opts out of full-document
6
+ * hydration (`export const hydrate = false`), the page ships **zero** framework JS; only the island
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
9
+ * entirely here.
10
+ *
11
+ * Server side: render the marker with `@nifrajs/web-react`'s `<Island>` (or any framework's host element
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
14
+ * state. Client side: bundle one entry that calls `mountIslands({ <id>: enhancer })` and load it via
15
+ * the route's `islandScripts`.
16
+ */
17
+ const NOOP = () => { };
18
+ /** Parse an island's inline `data-props` JSON; malformed/absent → `undefined` (never throws). */
19
+ function readProps(el) {
20
+ const raw = el.dataset.props;
21
+ if (raw === undefined || raw === "")
22
+ return undefined;
23
+ try {
24
+ return JSON.parse(raw);
25
+ }
26
+ catch {
27
+ return undefined;
28
+ }
29
+ }
30
+ /** Run `run` per the island's strategy; returns a disposer that cancels a not-yet-fired trigger. */
31
+ function whenStrategy(el, strategy, run) {
32
+ if (strategy === "idle") {
33
+ const ric = globalThis.requestIdleCallback;
34
+ if (ric === undefined) {
35
+ const t = setTimeout(run, 1);
36
+ return () => clearTimeout(t);
37
+ }
38
+ const handle = ric(run);
39
+ return () => globalThis.cancelIdleCallback?.(handle);
40
+ }
41
+ if (strategy === "visible") {
42
+ // No IntersectionObserver (old engine / SSR smoke) → degrade to immediate, never skip the island.
43
+ if (typeof IntersectionObserver === "undefined") {
44
+ run();
45
+ return NOOP;
46
+ }
47
+ const io = new IntersectionObserver((entries, obs) => {
48
+ for (const entry of entries) {
49
+ if (entry.isIntersecting) {
50
+ obs.disconnect();
51
+ run();
52
+ return;
53
+ }
54
+ }
55
+ });
56
+ io.observe(el);
57
+ return () => io.disconnect();
58
+ }
59
+ // "load" (and any unknown value) → run immediately on mount.
60
+ run();
61
+ return NOOP;
62
+ }
63
+ /**
64
+ * Find every `<nifra-island data-id>` under `root` (default `document`) and enhance each with the
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
67
+ * others (each island is independent). Returns a disposer that cancels pending triggers and runs every
68
+ * enhancer's cleanup (call it on soft-nav teardown; harmless if your app never navigates).
69
+ */
70
+ export function mountIslands(enhancers, options = {}) {
71
+ const root = options.root ?? document;
72
+ const disposers = [];
73
+ for (const el of root.querySelectorAll("nifra-island[data-id]")) {
74
+ const id = el.dataset.id;
75
+ if (id === undefined)
76
+ continue;
77
+ const enhancer = enhancers[id];
78
+ if (enhancer === undefined)
79
+ continue; // no enhancer for this id → leave it as inert SSR markup
80
+ const props = readProps(el);
81
+ const strategyAttr = el.dataset.strategy;
82
+ const strategy = strategyAttr === "idle" || strategyAttr === "visible" ? strategyAttr : "load";
83
+ const run = () => {
84
+ try {
85
+ const cleanup = enhancer(el, props);
86
+ if (typeof cleanup === "function")
87
+ disposers.push(cleanup);
88
+ }
89
+ catch (err) {
90
+ // One island's failure must not take down the others; surface it without throwing.
91
+ console.error(`[nifra/islands] enhancer "${id}" failed:`, err);
92
+ }
93
+ };
94
+ disposers.push(whenStrategy(el, strategy, run));
95
+ }
96
+ return () => {
97
+ for (const dispose of disposers) {
98
+ try {
99
+ dispose();
100
+ }
101
+ catch {
102
+ // best-effort teardown — a failing cleanup must not block the rest
103
+ }
104
+ }
105
+ };
106
+ }
107
+ //# sourceMappingURL=islands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"islands.js","sourceRoot":"","sources":["../src/islands.ts"],"names":[],"mappings":"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"}
package/dist/isr.d.ts ADDED
@@ -0,0 +1,154 @@
1
+ /** A cached SSR response — the bytes + metadata a {@link CacheStore} persists. */
2
+ export interface CachedResponse {
3
+ /** The rendered document (UTF-8 HTML, fully buffered). */
4
+ readonly body: string;
5
+ readonly status: number;
6
+ /** Response headers to replay (e.g. `content-type`). */
7
+ readonly headers: Readonly<Record<string, string>>;
8
+ /** When this entry was stored, via the injected clock (ms epoch). */
9
+ readonly storedAt: number;
10
+ /** Freshness window (ms): `now - storedAt >= revalidate` ⇒ stale (serve it, regenerate behind it). */
11
+ readonly revalidate: number;
12
+ }
13
+ /**
14
+ * Pluggable ISR cache backend. **Production deploys MUST use a shared/durable store** (Workers KV,
15
+ * Redis, the platform Cache API) so cached pages *and* revalidation hold across instances;
16
+ * {@link MemoryCacheStore} is dev / single-instance only. Implementations are async so a network store
17
+ * (KV/Redis) fits the same interface.
18
+ */
19
+ export interface CacheStore {
20
+ /** The cached entry for `key`, or `undefined` on a miss. */
21
+ get(key: string): Promise<CachedResponse | undefined>;
22
+ /** Store (or overwrite) the entry for `key`. */
23
+ set(key: string, value: CachedResponse): Promise<void>;
24
+ /** Drop `key` (on-demand revalidation / purge). A no-op if absent. */
25
+ delete(key: string): Promise<void>;
26
+ }
27
+ export interface MemoryCacheStoreOptions {
28
+ /** Allow the in-memory store in production. Off by default — per-instance caching means revalidation
29
+ * won't propagate across instances and each instance caches separately. */
30
+ readonly allowInProduction?: boolean;
31
+ /** Hard cap on entries; the least-recently-used is evicted past it (default 500). */
32
+ readonly max?: number;
33
+ }
34
+ /**
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
37
+ * read or write bumps the entry, so the least-recently-used evicts past `max` (a hot, frequently-read
38
+ * page survives a burst of new pages).
39
+ */
40
+ export declare class MemoryCacheStore implements CacheStore {
41
+ private readonly cache;
42
+ private readonly max;
43
+ constructor(options?: MemoryCacheStoreOptions);
44
+ get(key: string): Promise<CachedResponse | undefined>;
45
+ set(key: string, value: CachedResponse): Promise<void>;
46
+ delete(key: string): Promise<void>;
47
+ }
48
+ /**
49
+ * Minimal structural shape of a Cloudflare Workers **KV namespace** binding — just the three methods
50
+ * {@link KVCacheStore} uses. Structural (not a dependency on `@cloudflare/workers-types`) so any
51
+ * KV-like binding satisfies it and tests can pass an in-memory double.
52
+ */
53
+ export interface KVNamespaceLike {
54
+ /** Read a stored string value, or `null` on a miss (Cloudflare's `KVNamespace.get(key)` default). */
55
+ get(key: string): Promise<string | null>;
56
+ /** Write a string value, optionally with a TTL (**seconds**). */
57
+ put(key: string, value: string, options?: {
58
+ readonly expirationTtl?: number;
59
+ }): Promise<void>;
60
+ /** Delete a key (a no-op if absent). */
61
+ delete(key: string): Promise<void>;
62
+ }
63
+ export interface KVCacheStoreOptions {
64
+ /**
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
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
69
+ * overwritten on regeneration or purged via `revalidateEndpoint`.
70
+ */
71
+ readonly expirationTtl?: number;
72
+ }
73
+ /**
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
76
+ * hold *across* worker instances (unlike the per-instance {@link MemoryCacheStore}). Entries serialize
77
+ * to JSON; every read is validated before it's trusted (a malformed/version-skewed entry is treated as
78
+ * a miss). Construct it in your Workers `fetch` from the binding: `new KVCacheStore(env.ISR_CACHE)`.
79
+ */
80
+ export declare class KVCacheStore implements CacheStore {
81
+ private readonly kv;
82
+ private readonly putOptions;
83
+ constructor(kv: KVNamespaceLike, options?: KVCacheStoreOptions);
84
+ get(key: string): Promise<CachedResponse | undefined>;
85
+ set(key: string, value: CachedResponse): Promise<void>;
86
+ delete(key: string): Promise<void>;
87
+ }
88
+ /** Minimal platform shape `withISR` needs — just `waitUntil` (edge runtimes extend the response
89
+ * lifetime so background regeneration finishes). Off-edge it's absent and regen runs fire-and-forget. */
90
+ export interface ISRPlatform {
91
+ readonly waitUntil?: (promise: Promise<unknown>) => void;
92
+ }
93
+ /** The app `withISR` wraps — anything with a `fetch(req, platform?)` (a `createWebApp` result). */
94
+ export interface ISRApp {
95
+ fetch(req: Request, platform?: ISRPlatform): Response | Promise<Response>;
96
+ }
97
+ /** Response header marking how an ISR response was served: a cache `hit` (fresh), `stale` (served +
98
+ * regenerating behind it), or `miss` (rendered now + stored). Useful for debugging + tests. */
99
+ export declare const ISR_STATUS_HEADER = "x-nifra-isr";
100
+ /**
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
103
+ * from the action-revalidation `x-nifra-revalidate` header (a CSV path list the *client* parses to
104
+ * refetch): this one is an integer TTL the *wrapper* reads, so the two channels never alias.
105
+ */
106
+ export declare const ISR_REVALIDATE_HEADER = "x-nifra-isr-revalidate";
107
+ export interface ISROptions {
108
+ readonly store: CacheStore;
109
+ /** Default freshness window (**seconds**) for a cached page; older ⇒ stale (served, regenerated
110
+ * behind). A route overrides it per-page via `export const revalidate` (surfaced as the
111
+ * `x-nifra-isr-revalidate` response header). */
112
+ readonly revalidate: number;
113
+ /** Monotonic clock (ms) — injected for testability; production passes `() => Date.now()`. */
114
+ readonly now: () => number;
115
+ /** Cache key for a request. Default: `origin + pathname + search` so host-routed apps do not share
116
+ * entries across tenants. Return `null` to bypass the cache for this request (it goes straight to the
117
+ * app, uncached). */
118
+ readonly key?: (req: Request) => string | null;
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
121
+ * fresh, and a draft render is never written to the store (it can't poison the public cache). */
122
+ readonly draftSecret?: string;
123
+ }
124
+ /**
125
+ * Wrap a nifra app with **Incremental Static Regeneration**: a cacheable page is served from
126
+ * {@link CacheStore} when fresh, served **stale while a fresh copy regenerates in the background**
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
129
+ * `export default`, etc. Regeneration is single-flight per key (no stampede on a hot stale page).
130
+ *
131
+ * Each route's freshness comes from the `revalidate` header the app sets (per-route
132
+ * `export const revalidate`), falling back to `options.revalidate`. Only full-document `text/html`
133
+ * GET 200s are cached; everything else (assets, data-mode GETs, redirects, errors) passes through.
134
+ */
135
+ export declare function withISR(app: ISRApp, options: ISROptions): (req: Request, platform?: ISRPlatform) => Promise<Response>;
136
+ export interface RevalidateEndpointOptions {
137
+ readonly store: CacheStore;
138
+ /** Shared secret; the request's token must match it (constant-time). */
139
+ readonly secret: string;
140
+ /** Header carrying the secret. Default `x-nifra-revalidate-token`. */
141
+ readonly tokenHeader?: string;
142
+ /** Map a to-purge path → its cache key — MUST match the `withISR` `key` fn. The default uses the
143
+ * revalidation request's origin plus the purged path, matching `withISR`'s default host-aware key. */
144
+ readonly key?: (path: string, req: Request) => string;
145
+ }
146
+ /**
147
+ * An **on-demand revalidation** (purge) endpoint — a `fetch` handler that drops a path's cached entry
148
+ * so the next request re-renders. `POST` with the secret in the token header and the path as `?path=`
149
+ * or a JSON `{ "path": "/blog/x" }` body. The token is checked in **constant time** (wrong/missing →
150
+ * `401`); a missing/relative path → `400`; non-POST → `405`. Mount it on a nifra route, e.g.
151
+ * `app.post("/__nifra/revalidate", (c) => handler(c.req))`.
152
+ */
153
+ export declare function revalidateEndpoint(options: RevalidateEndpointOptions): (req: Request) => Promise<Response>;
154
+ //# sourceMappingURL=isr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isr.d.ts","sourceRoot":"","sources":["../src/isr.ts"],"names":[],"mappings":"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"}