@nifrajs/web 2.0.0 → 2.1.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.
@@ -5,6 +5,7 @@
5
5
  * protocol — the marker, the resolved/deferred split, and the tiny client registry that streamed
6
6
  * resolution scripts settle. The per-adapter `<Await>` lives in `@nifrajs/web-{solid,react}/client`.
7
7
  */
8
+ import { type TransportCodec } from "@nifrajs/core/transport-codec";
8
9
  /**
9
10
  * A loader value marked to stream in after the shell. The component consumes it with the adapter's
10
11
  * `<Await resolve={...}>`; until the promise settles the shell shows the `<Suspense>` fallback.
@@ -64,7 +65,7 @@ export declare const DEFERRED_ERROR_CODE = "deferred_error";
64
65
  export declare function ndjsonStream(forClient: unknown, deferred: ReadonlyArray<{
65
66
  readonly id: number;
66
67
  readonly promise: Promise<unknown>;
67
- }>): ReadableStream<Uint8Array>;
68
+ }>, codec?: TransportCodec): ReadableStream<Uint8Array>;
68
69
  /**
69
70
  * Inline client runtime injected into the shell `<head>` when a page has deferred data: a per-id
70
71
  * promise registry that streamed `__nifraResolve(id, value)` / `__nifraReject(id, err)` scripts settle
@@ -86,5 +87,5 @@ export declare const MAP_DEFERRED_SOURCE = "const mapDeferred = (d) => {\n if (
86
87
  * markers' promises settle/reject in the background. If the stream ends (or `signal` aborts) with
87
88
  * markers unsettled, they reject — so `<Await>` never hangs.
88
89
  */
89
- export declare function parseNdjsonData(stream: ReadableStream<Uint8Array>, signal?: AbortSignal): Promise<unknown>;
90
+ export declare function parseNdjsonData(stream: ReadableStream<Uint8Array>, signal?: AbortSignal, codec?: TransportCodec): Promise<unknown>;
90
91
  //# sourceMappingURL=deferred.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAKzD;AAYD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,QAAQ,SAAI,GACX;IACD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;CAC9F,CA2EA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAInD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,GACnF,cAAc,CAAC,UAAU,CAAC,CAsB5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,2iCAqBvB,CAAA;AAEN;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uXAO9B,CAAA;AA0CF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC,CA4DlB"}
1
+ {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAEnF;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAKzD;AAYD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,QAAQ,SAAI,GACX;IACD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;CAC9F,CA2EA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAInD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC,EACpF,KAAK,GAAE,cAA+B,GACrC,cAAc,CAAC,UAAU,CAAC,CAsB5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,2iCAqBvB,CAAA;AAEN;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,uXAO9B,CAAA;AA8CF;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,EACpB,KAAK,GAAE,cAA+B,GACrC,OAAO,CAAC,OAAO,CAAC,CA4DlB"}
package/dist/deferred.js CHANGED
@@ -5,6 +5,7 @@
5
5
  * protocol — the marker, the resolved/deferred split, and the tiny client registry that streamed
6
6
  * resolution scripts settle. The per-adapter `<Await>` lives in `@nifrajs/web-{solid,react}/client`.
7
7
  */
8
+ import { plainJsonCodec } from "@nifrajs/core/transport-codec";
8
9
  /**
9
10
  * Mark a loader value as deferred — it streams in after the shell instead of blocking it. Works
10
11
  * **anywhere** in the loader's returned data — a top-level key, or nested in objects/arrays:
@@ -136,20 +137,20 @@ const NDJSON_ENCODER = new TextEncoder();
136
137
  * escapes newlines in values, so each line is NDJSON-safe; no HTML escaping (this is a fetch body,
137
138
  * parsed with `JSON.parse`, never injected into markup).
138
139
  */
139
- export function ndjsonStream(forClient, deferred) {
140
+ export function ndjsonStream(forClient, deferred, codec = plainJsonCodec) {
140
141
  return new ReadableStream({
141
142
  async start(controller) {
142
- controller.enqueue(NDJSON_ENCODER.encode(`${JSON.stringify(forClient)}\n`));
143
+ controller.enqueue(NDJSON_ENCODER.encode(`${codec.encode(forClient)}\n`));
143
144
  await Promise.all(deferred.map(async (d) => {
144
145
  try {
145
146
  const value = await d.promise;
146
- controller.enqueue(NDJSON_ENCODER.encode(`${JSON.stringify({ i: d.id, v: value })}\n`));
147
+ controller.enqueue(NDJSON_ENCODER.encode(`${codec.encode({ i: d.id, v: value })}\n`));
147
148
  }
148
149
  catch (err) {
149
150
  // Redact: stream a stable opaque code, never the raw error text; log the real reason
150
151
  // server-side. The client's <Await> errorFallback receives this code.
151
152
  console.error("[nifra/web] deferred value rejected:", err);
152
- controller.enqueue(NDJSON_ENCODER.encode(`${JSON.stringify({ i: d.id, e: DEFERRED_ERROR_CODE })}\n`));
153
+ controller.enqueue(NDJSON_ENCODER.encode(`${codec.encode({ i: d.id, e: DEFERRED_ERROR_CODE })}\n`));
153
154
  }
154
155
  }));
155
156
  controller.close();
@@ -228,7 +229,9 @@ function markersFromPlaceholders(data, pending) {
228
229
  }
229
230
  if (Array.isArray(value))
230
231
  return value.map(walk);
231
- if (value !== null && typeof value === "object") {
232
+ if (value !== null &&
233
+ typeof value === "object" &&
234
+ (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null)) {
232
235
  const out = {};
233
236
  for (const [key, v] of Object.entries(value))
234
237
  out[key] = walk(v);
@@ -245,7 +248,7 @@ function markersFromPlaceholders(data, pending) {
245
248
  * markers' promises settle/reject in the background. If the stream ends (or `signal` aborts) with
246
249
  * markers unsettled, they reject — so `<Await>` never hangs.
247
250
  */
248
- export async function parseNdjsonData(stream, signal) {
251
+ export async function parseNdjsonData(stream, signal, codec = plainJsonCodec) {
249
252
  const reader = stream.getReader();
250
253
  const dec = new TextDecoder();
251
254
  let buffer = "";
@@ -273,7 +276,7 @@ export async function parseNdjsonData(stream, signal) {
273
276
  };
274
277
  const pending = new Map();
275
278
  const first = await readLine();
276
- const data = markersFromPlaceholders(first === null ? null : JSON.parse(first), pending);
279
+ const data = markersFromPlaceholders(first === null ? null : codec.decode(first), pending);
277
280
  void (async () => {
278
281
  try {
279
282
  for (;;) {
@@ -282,7 +285,7 @@ export async function parseNdjsonData(stream, signal) {
282
285
  break;
283
286
  if (line === "")
284
287
  continue;
285
- const msg = JSON.parse(line);
288
+ const msg = codec.decode(line);
286
289
  const entry = pending.get(msg.i);
287
290
  if (entry === undefined)
288
291
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"deferred.js","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH;;;;;;;;;GASG;AACH,MAAM,UAAU,KAAK,CAAI,OAAmB;IAC1C,kGAAkG;IAClG,kGAAkG;IAClG,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC5B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAA;AACpD,CAAC;AAED;2CAC2C;AAC3C,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAwC,CAAC,gBAAgB,KAAK,IAAI,CACpE,CAAA;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAa,EACb,QAAQ,GAAG,CAAC;IAMZ,MAAM,QAAQ,GAAqD,EAAE,CAAA;IACrE,qFAAqF;IACrF,kGAAkG;IAClG,4FAA4F;IAC5F,gGAAgG;IAChG,aAAa;IACb,MAAM,KAAK,GAAG,CAAC,KAAc,EAA4C,EAAE;QACzE,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;YACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAC7C,OAAO;gBACL,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC1D,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;aAC7B,CAAA;QACH,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,EAAyB,CAAA;YAC7B,IAAI,EAAyB,CAAA;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAClB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACzC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;wBACT,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;oBACX,CAAC;oBACD,SAAQ;gBACV,CAAC;gBACD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACzC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACtB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACxB,CAAC;gBACD,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;gBACZ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;YACd,CAAC;YACD,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;QACtE,CAAC;QACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,KAAgC,CAAA;YAC9C,IAAI,EAAuC,CAAA;YAC3C,IAAI,EAAuC,CAAA;YAC3C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBAAE,SAAQ;gBACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAClB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAClB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;oBACpB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACzC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;wBACT,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;oBACX,CAAC;oBACD,SAAQ;gBACV,CAAC;gBACD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACzC,EAAE,GAAG,EAAE,CAAA;oBACP,EAAE,GAAG,EAAE,CAAA;oBACP,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;4BAAE,SAAQ;wBACzC,IAAI,IAAI,KAAK,CAAC;4BAAE,MAAK;wBACrB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;wBAC7B,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;wBACpB,EAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;oBACtB,CAAC;gBACH,CAAC;gBACD,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;gBACZ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;YACd,CAAC;YACD,OAAO,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;QACtE,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnD,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAA;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AACnD,qEAAqE;AACrE,MAAM,cAAc,GAAG,IAAI,WAAW,EAAE,CAAA;AAExC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAkB,EAClB,QAAoF;IAEpF,OAAO,IAAI,cAAc,CAAC;QACxB,KAAK,CAAC,KAAK,CAAC,UAAU;YACpB,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3E,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,OAAO,CAAA;oBAC7B,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;gBACzF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,qFAAqF;oBACrF,sEAAsE;oBACtE,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;oBAC1D,UAAU,CAAC,OAAO,CAChB,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAClF,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAA;YACD,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;MAqB1B,CAAA;AAEN;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;EAOjC,CAAA;AAIF;;mFAEmF;AACnF,SAAS,uBAAuB,CAAC,IAAa,EAAE,OAAgB;IAC9D,kGAAkG;IAClG,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6B,CAAA;IACjD,MAAM,IAAI,GAAG,CAAC,KAAc,EAAW,EAAE;QACvC,MAAM,EAAE,GAAI,KAA+C,EAAE,gBAAgB,CAAA;QAC7E,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC1E,8FAA8F;YAC9F,8FAA8F;YAC9F,2FAA2F;YAC3F,wFAAwF;YACxF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACnC,IAAI,OAA8B,CAAA;YAClC,IAAI,MAA6B,CAAA;YACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAChD,OAAO,GAAG,GAAG,CAAA;gBACb,MAAM,GAAG,GAAG,CAAA;YACd,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA,CAAC,8DAA8D;YACtF,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACpC,MAAM,MAAM,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAA8B,CAAA;YAClF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YACpB,OAAO,MAAM,CAAA;QACf,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,GAAG,GAA4B,EAAE,CAAA;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YAChE,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAkC,EAClC,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAA;IAC7B,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,qGAAqG;IACrG,kGAAkG;IAClG,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAA;IAChD,IAAI,MAAM;QAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAErE,MAAM,QAAQ,GAAG,KAAK,IAA4B,EAAE;QAClD,SAAS,CAAC;YACR,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAChC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;gBAC7B,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,GAAG,MAAM,CAAA;gBACnB,MAAM,GAAG,EAAE,CAAA;gBACX,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAClC,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAY,IAAI,GAAG,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;IAExF,KAAK,CAAC,KAAK,IAAI,EAAE;QACf,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAA;gBAC7B,IAAI,IAAI,KAAK,IAAI;oBAAE,MAAK;gBACxB,IAAI,IAAI,KAAK,EAAE;oBAAE,SAAQ;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2C,CAAA;gBACtE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAChC,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAQ;gBACjC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACrB,IAAI,GAAG,IAAI,GAAG;oBAAE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;;oBACzC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;QAC7E,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA,CAAC,6CAA6C;YAC3F,4FAA4F;YAC5F,8FAA8F;YAC9F,8FAA8F;YAC9F,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;oBAChC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAA;gBACzF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"deferred.js","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/web",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Framework-agnostic SSR core for nifra — the render seam + HTML document orchestration.",
5
5
  "keywords": [
6
6
  "bun",
@@ -122,7 +122,7 @@
122
122
  "access": "public"
123
123
  },
124
124
  "dependencies": {
125
- "@nifrajs/core": "2.0.0"
125
+ "@nifrajs/core": "2.1.0"
126
126
  },
127
127
  "peerDependencies": {
128
128
  "sass": "^1.0.0",
package/src/deferred.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  * protocol — the marker, the resolved/deferred split, and the tiny client registry that streamed
6
6
  * resolution scripts settle. The per-adapter `<Await>` lives in `@nifrajs/web-{solid,react}/client`.
7
7
  */
8
+ import { plainJsonCodec, type TransportCodec } from "@nifrajs/core/transport-codec"
8
9
 
9
10
  /**
10
11
  * A loader value marked to stream in after the shell. The component consumes it with the adapter's
@@ -161,21 +162,22 @@ const NDJSON_ENCODER = new TextEncoder()
161
162
  export function ndjsonStream(
162
163
  forClient: unknown,
163
164
  deferred: ReadonlyArray<{ readonly id: number; readonly promise: Promise<unknown> }>,
165
+ codec: TransportCodec = plainJsonCodec,
164
166
  ): ReadableStream<Uint8Array> {
165
167
  return new ReadableStream({
166
168
  async start(controller) {
167
- controller.enqueue(NDJSON_ENCODER.encode(`${JSON.stringify(forClient)}\n`))
169
+ controller.enqueue(NDJSON_ENCODER.encode(`${codec.encode(forClient)}\n`))
168
170
  await Promise.all(
169
171
  deferred.map(async (d) => {
170
172
  try {
171
173
  const value = await d.promise
172
- controller.enqueue(NDJSON_ENCODER.encode(`${JSON.stringify({ i: d.id, v: value })}\n`))
174
+ controller.enqueue(NDJSON_ENCODER.encode(`${codec.encode({ i: d.id, v: value })}\n`))
173
175
  } catch (err) {
174
176
  // Redact: stream a stable opaque code, never the raw error text; log the real reason
175
177
  // server-side. The client's <Await> errorFallback receives this code.
176
178
  console.error("[nifra/web] deferred value rejected:", err)
177
179
  controller.enqueue(
178
- NDJSON_ENCODER.encode(`${JSON.stringify({ i: d.id, e: DEFERRED_ERROR_CODE })}\n`),
180
+ NDJSON_ENCODER.encode(`${codec.encode({ i: d.id, e: DEFERRED_ERROR_CODE })}\n`),
179
181
  )
180
182
  }
181
183
  }),
@@ -259,7 +261,11 @@ function markersFromPlaceholders(data: unknown, pending: Pending): unknown {
259
261
  return marker
260
262
  }
261
263
  if (Array.isArray(value)) return value.map(walk)
262
- if (value !== null && typeof value === "object") {
264
+ if (
265
+ value !== null &&
266
+ typeof value === "object" &&
267
+ (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null)
268
+ ) {
263
269
  const out: Record<string, unknown> = {}
264
270
  for (const [key, v] of Object.entries(value)) out[key] = walk(v)
265
271
  return out
@@ -279,6 +285,7 @@ function markersFromPlaceholders(data: unknown, pending: Pending): unknown {
279
285
  export async function parseNdjsonData(
280
286
  stream: ReadableStream<Uint8Array>,
281
287
  signal?: AbortSignal,
288
+ codec: TransportCodec = plainJsonCodec,
282
289
  ): Promise<unknown> {
283
290
  const reader = stream.getReader()
284
291
  const dec = new TextDecoder()
@@ -308,7 +315,7 @@ export async function parseNdjsonData(
308
315
 
309
316
  const pending: Pending = new Map()
310
317
  const first = await readLine()
311
- const data = markersFromPlaceholders(first === null ? null : JSON.parse(first), pending)
318
+ const data = markersFromPlaceholders(first === null ? null : codec.decode(first), pending)
312
319
 
313
320
  void (async () => {
314
321
  try {
@@ -316,7 +323,7 @@ export async function parseNdjsonData(
316
323
  const line = await readLine()
317
324
  if (line === null) break
318
325
  if (line === "") continue
319
- const msg = JSON.parse(line) as { i: number; v?: unknown; e?: string }
326
+ const msg = codec.decode(line) as { i: number; v?: unknown; e?: string }
320
327
  const entry = pending.get(msg.i)
321
328
  if (entry === undefined) continue
322
329
  pending.delete(msg.i)