@makeswift/react-router 0.1.12-canary.8 → 0.2.0-canary.19

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.
@@ -29,27 +29,33 @@ var import_unstable_framework_support = require("@makeswift/runtime/unstable-fra
29
29
  const DEFAULT_TIMEOUT = 1e4;
30
30
  function renderHtml(children, {
31
31
  timeout,
32
- cacheKey,
32
+ classNamePrefix,
33
33
  enableCssReset,
34
34
  responseStatusCode,
35
35
  responseHeaders
36
36
  }) {
37
- const cache = (0, import_unstable_framework_support.createRootStyleCache)({ key: cacheKey });
37
+ const stylesRegistry = (0, import_unstable_framework_support.createMakeswiftStylesRegistry)();
38
38
  return new Promise((resolve, reject) => {
39
39
  let didError = false;
40
40
  const { pipe, abort } = (0, import_server.renderToPipeableStream)(
41
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_unstable_framework_support.RootStyleRegistry, { cache, enableCssReset, children }),
41
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
42
+ import_unstable_framework_support.RootStyleRegistry,
43
+ {
44
+ stylesRegistry,
45
+ classNamePrefix,
46
+ enableCssReset,
47
+ shouldRenderStyleElements: false,
48
+ children
49
+ }
50
+ ),
42
51
  {
43
- // wait for all Suspense boundaries before streaming for consistent Emotion CSS
52
+ // wait for all Suspense boundaries before streaming to ensure all Makeswift styles have been generated & stored in the registry
44
53
  onAllReady() {
45
- const { classNames, css } = cache.flush();
46
54
  const headInjector = createHeadInjectionTransform(
47
- (0, import_unstable_framework_support.styleTagHtml)({ cacheKey: cache.key, classNames, css })
55
+ stylesRegistry.serializeToHtmlStyleTags()
48
56
  );
49
57
  const body = new import_node_stream.PassThrough();
50
- const responseStream = (0, import_node.createReadableStreamFromReadable)(
51
- classNames.length > 0 ? body.pipe(headInjector) : body
52
- );
58
+ const responseStream = (0, import_node.createReadableStreamFromReadable)(body.pipe(headInjector));
53
59
  responseHeaders.set("Content-Type", "text/html; charset=utf-8");
54
60
  resolve(
55
61
  new Response(responseStream, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/render.tsx"],"sourcesContent":["import { type ReactNode } from 'react'\n\nimport { createReadableStreamFromReadable } from '@react-router/node'\nimport { renderToPipeableStream } from 'react-dom/server'\nimport { PassThrough, Transform } from 'node:stream'\n\nimport {\n createRootStyleCache,\n RootStyleRegistry,\n styleTagHtml,\n type RootStyleProps,\n} from '@makeswift/runtime/unstable-framework-support'\n\nconst DEFAULT_TIMEOUT = 10000\n\nexport function renderHtml(\n children: ReactNode,\n {\n timeout,\n cacheKey,\n enableCssReset,\n responseStatusCode,\n responseHeaders,\n }: RootStyleProps & {\n request: Request\n timeout?: number\n responseStatusCode: number\n responseHeaders: Headers\n },\n): Promise<Response> {\n const cache = createRootStyleCache({ key: cacheKey })\n\n return new Promise((resolve, reject) => {\n let didError = false\n\n const { pipe, abort } = renderToPipeableStream(\n <RootStyleRegistry cache={cache} enableCssReset={enableCssReset}>\n {children}\n </RootStyleRegistry>,\n {\n // wait for all Suspense boundaries before streaming for consistent Emotion CSS\n onAllReady() {\n // create a head injection transform with server-side styles\n const { classNames, css } = cache.flush()\n const headInjector = createHeadInjectionTransform(\n styleTagHtml({ cacheKey: cache.key, classNames, css }),\n )\n\n // prepare a pipeable response stream with the head transform\n const body = new PassThrough()\n const responseStream = createReadableStreamFromReadable(\n classNames.length > 0 ? body.pipe(headInjector) : body,\n )\n\n // amend response headers with content type\n responseHeaders.set('Content-Type', 'text/html; charset=utf-8')\n\n // return the stream response\n resolve(\n new Response(responseStream, {\n status: didError ? 500 : responseStatusCode,\n headers: responseHeaders,\n }),\n )\n\n // write the initial HTML doctype and start piping the stream\n body.write('<!DOCTYPE html>')\n pipe(body)\n },\n onShellError(err) {\n reject(err)\n },\n onError(err) {\n didError = true\n console.error(err)\n },\n },\n )\n\n setTimeout(abort, timeout ?? DEFAULT_TIMEOUT)\n })\n}\n\nfunction createHeadInjectionTransform(snippet: string) {\n let injected = false\n return new Transform({\n transform(chunk, _enc, cb) {\n if (injected) return cb(null, chunk)\n\n // inject `snippet` right before the first </head> tag\n const str = chunk.toString()\n const idx = str.indexOf('</head>')\n if (idx === -1) return cb(null, chunk)\n\n injected = true\n const out = str.slice(0, idx) + snippet + str.slice(idx)\n cb(null, out)\n },\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoCM;AAlCN,kBAAiD;AACjD,oBAAuC;AACvC,yBAAuC;AAEvC,wCAKO;AAEP,MAAM,kBAAkB;AAEjB,SAAS,WACd,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMmB;AACnB,QAAM,YAAQ,wDAAqB,EAAE,KAAK,SAAS,CAAC;AAEpD,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,WAAW;AAEf,UAAM,EAAE,MAAM,MAAM,QAAI;AAAA,MACtB,4CAAC,uDAAkB,OAAc,gBAC9B,UACH;AAAA,MACA;AAAA;AAAA,QAEE,aAAa;AAEX,gBAAM,EAAE,YAAY,IAAI,IAAI,MAAM,MAAM;AACxC,gBAAM,eAAe;AAAA,gBACnB,gDAAa,EAAE,UAAU,MAAM,KAAK,YAAY,IAAI,CAAC;AAAA,UACvD;AAGA,gBAAM,OAAO,IAAI,+BAAY;AAC7B,gBAAM,qBAAiB;AAAA,YACrB,WAAW,SAAS,IAAI,KAAK,KAAK,YAAY,IAAI;AAAA,UACpD;AAGA,0BAAgB,IAAI,gBAAgB,0BAA0B;AAG9D;AAAA,YACE,IAAI,SAAS,gBAAgB;AAAA,cAC3B,QAAQ,WAAW,MAAM;AAAA,cACzB,SAAS;AAAA,YACX,CAAC;AAAA,UACH;AAGA,eAAK,MAAM,iBAAiB;AAC5B,eAAK,IAAI;AAAA,QACX;AAAA,QACA,aAAa,KAAK;AAChB,iBAAO,GAAG;AAAA,QACZ;AAAA,QACA,QAAQ,KAAK;AACX,qBAAW;AACX,kBAAQ,MAAM,GAAG;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,eAAW,OAAO,WAAW,eAAe;AAAA,EAC9C,CAAC;AACH;AAEA,SAAS,6BAA6B,SAAiB;AACrD,MAAI,WAAW;AACf,SAAO,IAAI,6BAAU;AAAA,IACnB,UAAU,OAAO,MAAM,IAAI;AACzB,UAAI;AAAU,eAAO,GAAG,MAAM,KAAK;AAGnC,YAAM,MAAM,MAAM,SAAS;AAC3B,YAAM,MAAM,IAAI,QAAQ,SAAS;AACjC,UAAI,QAAQ;AAAI,eAAO,GAAG,MAAM,KAAK;AAErC,iBAAW;AACX,YAAM,MAAM,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM,GAAG;AACvD,SAAG,MAAM,GAAG;AAAA,IACd;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/server/render.tsx"],"sourcesContent":["import { type ReactNode } from 'react'\n\nimport { createReadableStreamFromReadable } from '@react-router/node'\nimport { renderToPipeableStream } from 'react-dom/server'\nimport { PassThrough, Transform } from 'node:stream'\n\nimport {\n createMakeswiftStylesRegistry,\n RootStyleRegistry,\n type RootStyleProps,\n} from '@makeswift/runtime/unstable-framework-support'\n\nconst DEFAULT_TIMEOUT = 10000\n\nexport function renderHtml(\n children: ReactNode,\n {\n timeout,\n classNamePrefix,\n enableCssReset,\n responseStatusCode,\n responseHeaders,\n }: RootStyleProps & {\n request: Request\n timeout?: number\n responseStatusCode: number\n responseHeaders: Headers\n },\n): Promise<Response> {\n const stylesRegistry = createMakeswiftStylesRegistry()\n\n return new Promise((resolve, reject) => {\n let didError = false\n\n const { pipe, abort } = renderToPipeableStream(\n <RootStyleRegistry\n stylesRegistry={stylesRegistry}\n classNamePrefix={classNamePrefix}\n enableCssReset={enableCssReset}\n shouldRenderStyleElements={false}\n >\n {children}\n </RootStyleRegistry>,\n {\n // wait for all Suspense boundaries before streaming to ensure all Makeswift styles have been generated & stored in the registry\n onAllReady() {\n // create a head injection transform with server-side styles\n const headInjector = createHeadInjectionTransform(\n stylesRegistry.serializeToHtmlStyleTags(),\n )\n\n // prepare a pipeable response stream with the head transform\n const body = new PassThrough()\n const responseStream = createReadableStreamFromReadable(body.pipe(headInjector))\n\n // amend response headers with content type\n responseHeaders.set('Content-Type', 'text/html; charset=utf-8')\n\n // return the stream response\n resolve(\n new Response(responseStream, {\n status: didError ? 500 : responseStatusCode,\n headers: responseHeaders,\n }),\n )\n\n // write the initial HTML doctype and start piping the stream\n body.write('<!DOCTYPE html>')\n pipe(body)\n },\n onShellError(err) {\n reject(err)\n },\n onError(err) {\n didError = true\n console.error(err)\n },\n },\n )\n\n setTimeout(abort, timeout ?? DEFAULT_TIMEOUT)\n })\n}\n\nfunction createHeadInjectionTransform(snippet: string) {\n let injected = false\n return new Transform({\n transform(chunk, _enc, cb) {\n if (injected) return cb(null, chunk)\n\n // inject `snippet` right before the first </head> tag\n const str = chunk.toString()\n const idx = str.indexOf('</head>')\n if (idx === -1) return cb(null, chunk)\n\n injected = true\n const out = str.slice(0, idx) + snippet + str.slice(idx)\n cb(null, out)\n },\n })\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCM;AAjCN,kBAAiD;AACjD,oBAAuC;AACvC,yBAAuC;AAEvC,wCAIO;AAEP,MAAM,kBAAkB;AAEjB,SAAS,WACd,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMmB;AACnB,QAAM,qBAAiB,iEAA8B;AAErD,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,WAAW;AAEf,UAAM,EAAE,MAAM,MAAM,QAAI;AAAA,MACtB;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,2BAA2B;AAAA,UAE1B;AAAA;AAAA,MACH;AAAA,MACA;AAAA;AAAA,QAEE,aAAa;AAEX,gBAAM,eAAe;AAAA,YACnB,eAAe,yBAAyB;AAAA,UAC1C;AAGA,gBAAM,OAAO,IAAI,+BAAY;AAC7B,gBAAM,qBAAiB,8CAAiC,KAAK,KAAK,YAAY,CAAC;AAG/E,0BAAgB,IAAI,gBAAgB,0BAA0B;AAG9D;AAAA,YACE,IAAI,SAAS,gBAAgB;AAAA,cAC3B,QAAQ,WAAW,MAAM;AAAA,cACzB,SAAS;AAAA,YACX,CAAC;AAAA,UACH;AAGA,eAAK,MAAM,iBAAiB;AAC5B,eAAK,IAAI;AAAA,QACX;AAAA,QACA,aAAa,KAAK;AAChB,iBAAO,GAAG;AAAA,QACZ;AAAA,QACA,QAAQ,KAAK;AACX,qBAAW;AACX,kBAAQ,MAAM,GAAG;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,eAAW,OAAO,WAAW,eAAe;AAAA,EAC9C,CAAC;AACH;AAEA,SAAS,6BAA6B,SAAiB;AACrD,MAAI,WAAW;AACf,SAAO,IAAI,6BAAU;AAAA,IACnB,UAAU,OAAO,MAAM,IAAI;AACzB,UAAI;AAAU,eAAO,GAAG,MAAM,KAAK;AAGnC,YAAM,MAAM,MAAM,SAAS;AAC3B,YAAM,MAAM,IAAI,QAAQ,SAAS;AACjC,UAAI,QAAQ;AAAI,eAAO,GAAG,MAAM,KAAK;AAErC,iBAAW;AACX,YAAM,MAAM,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM,GAAG;AACvD,SAAG,MAAM,GAAG;AAAA,IACd;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -3,34 +3,39 @@ import { createReadableStreamFromReadable } from "@react-router/node";
3
3
  import { renderToPipeableStream } from "react-dom/server";
4
4
  import { PassThrough, Transform } from "node:stream";
5
5
  import {
6
- createRootStyleCache,
7
- RootStyleRegistry,
8
- styleTagHtml
6
+ createMakeswiftStylesRegistry,
7
+ RootStyleRegistry
9
8
  } from "@makeswift/runtime/unstable-framework-support";
10
9
  const DEFAULT_TIMEOUT = 1e4;
11
10
  function renderHtml(children, {
12
11
  timeout,
13
- cacheKey,
12
+ classNamePrefix,
14
13
  enableCssReset,
15
14
  responseStatusCode,
16
15
  responseHeaders
17
16
  }) {
18
- const cache = createRootStyleCache({ key: cacheKey });
17
+ const stylesRegistry = createMakeswiftStylesRegistry();
19
18
  return new Promise((resolve, reject) => {
20
19
  let didError = false;
21
20
  const { pipe, abort } = renderToPipeableStream(
22
- /* @__PURE__ */ jsx(RootStyleRegistry, { cache, enableCssReset, children }),
21
+ /* @__PURE__ */ jsx(
22
+ RootStyleRegistry,
23
+ {
24
+ stylesRegistry,
25
+ classNamePrefix,
26
+ enableCssReset,
27
+ shouldRenderStyleElements: false,
28
+ children
29
+ }
30
+ ),
23
31
  {
24
- // wait for all Suspense boundaries before streaming for consistent Emotion CSS
32
+ // wait for all Suspense boundaries before streaming to ensure all Makeswift styles have been generated & stored in the registry
25
33
  onAllReady() {
26
- const { classNames, css } = cache.flush();
27
34
  const headInjector = createHeadInjectionTransform(
28
- styleTagHtml({ cacheKey: cache.key, classNames, css })
35
+ stylesRegistry.serializeToHtmlStyleTags()
29
36
  );
30
37
  const body = new PassThrough();
31
- const responseStream = createReadableStreamFromReadable(
32
- classNames.length > 0 ? body.pipe(headInjector) : body
33
- );
38
+ const responseStream = createReadableStreamFromReadable(body.pipe(headInjector));
34
39
  responseHeaders.set("Content-Type", "text/html; charset=utf-8");
35
40
  resolve(
36
41
  new Response(responseStream, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/render.tsx"],"sourcesContent":["import { type ReactNode } from 'react'\n\nimport { createReadableStreamFromReadable } from '@react-router/node'\nimport { renderToPipeableStream } from 'react-dom/server'\nimport { PassThrough, Transform } from 'node:stream'\n\nimport {\n createRootStyleCache,\n RootStyleRegistry,\n styleTagHtml,\n type RootStyleProps,\n} from '@makeswift/runtime/unstable-framework-support'\n\nconst DEFAULT_TIMEOUT = 10000\n\nexport function renderHtml(\n children: ReactNode,\n {\n timeout,\n cacheKey,\n enableCssReset,\n responseStatusCode,\n responseHeaders,\n }: RootStyleProps & {\n request: Request\n timeout?: number\n responseStatusCode: number\n responseHeaders: Headers\n },\n): Promise<Response> {\n const cache = createRootStyleCache({ key: cacheKey })\n\n return new Promise((resolve, reject) => {\n let didError = false\n\n const { pipe, abort } = renderToPipeableStream(\n <RootStyleRegistry cache={cache} enableCssReset={enableCssReset}>\n {children}\n </RootStyleRegistry>,\n {\n // wait for all Suspense boundaries before streaming for consistent Emotion CSS\n onAllReady() {\n // create a head injection transform with server-side styles\n const { classNames, css } = cache.flush()\n const headInjector = createHeadInjectionTransform(\n styleTagHtml({ cacheKey: cache.key, classNames, css }),\n )\n\n // prepare a pipeable response stream with the head transform\n const body = new PassThrough()\n const responseStream = createReadableStreamFromReadable(\n classNames.length > 0 ? body.pipe(headInjector) : body,\n )\n\n // amend response headers with content type\n responseHeaders.set('Content-Type', 'text/html; charset=utf-8')\n\n // return the stream response\n resolve(\n new Response(responseStream, {\n status: didError ? 500 : responseStatusCode,\n headers: responseHeaders,\n }),\n )\n\n // write the initial HTML doctype and start piping the stream\n body.write('<!DOCTYPE html>')\n pipe(body)\n },\n onShellError(err) {\n reject(err)\n },\n onError(err) {\n didError = true\n console.error(err)\n },\n },\n )\n\n setTimeout(abort, timeout ?? DEFAULT_TIMEOUT)\n })\n}\n\nfunction createHeadInjectionTransform(snippet: string) {\n let injected = false\n return new Transform({\n transform(chunk, _enc, cb) {\n if (injected) return cb(null, chunk)\n\n // inject `snippet` right before the first </head> tag\n const str = chunk.toString()\n const idx = str.indexOf('</head>')\n if (idx === -1) return cb(null, chunk)\n\n injected = true\n const out = str.slice(0, idx) + snippet + str.slice(idx)\n cb(null, out)\n },\n })\n}\n"],"mappings":"AAoCM;AAlCN,SAAS,wCAAwC;AACjD,SAAS,8BAA8B;AACvC,SAAS,aAAa,iBAAiB;AAEvC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,MAAM,kBAAkB;AAEjB,SAAS,WACd,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMmB;AACnB,QAAM,QAAQ,qBAAqB,EAAE,KAAK,SAAS,CAAC;AAEpD,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,WAAW;AAEf,UAAM,EAAE,MAAM,MAAM,IAAI;AAAA,MACtB,oBAAC,qBAAkB,OAAc,gBAC9B,UACH;AAAA,MACA;AAAA;AAAA,QAEE,aAAa;AAEX,gBAAM,EAAE,YAAY,IAAI,IAAI,MAAM,MAAM;AACxC,gBAAM,eAAe;AAAA,YACnB,aAAa,EAAE,UAAU,MAAM,KAAK,YAAY,IAAI,CAAC;AAAA,UACvD;AAGA,gBAAM,OAAO,IAAI,YAAY;AAC7B,gBAAM,iBAAiB;AAAA,YACrB,WAAW,SAAS,IAAI,KAAK,KAAK,YAAY,IAAI;AAAA,UACpD;AAGA,0BAAgB,IAAI,gBAAgB,0BAA0B;AAG9D;AAAA,YACE,IAAI,SAAS,gBAAgB;AAAA,cAC3B,QAAQ,WAAW,MAAM;AAAA,cACzB,SAAS;AAAA,YACX,CAAC;AAAA,UACH;AAGA,eAAK,MAAM,iBAAiB;AAC5B,eAAK,IAAI;AAAA,QACX;AAAA,QACA,aAAa,KAAK;AAChB,iBAAO,GAAG;AAAA,QACZ;AAAA,QACA,QAAQ,KAAK;AACX,qBAAW;AACX,kBAAQ,MAAM,GAAG;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,eAAW,OAAO,WAAW,eAAe;AAAA,EAC9C,CAAC;AACH;AAEA,SAAS,6BAA6B,SAAiB;AACrD,MAAI,WAAW;AACf,SAAO,IAAI,UAAU;AAAA,IACnB,UAAU,OAAO,MAAM,IAAI;AACzB,UAAI;AAAU,eAAO,GAAG,MAAM,KAAK;AAGnC,YAAM,MAAM,MAAM,SAAS;AAC3B,YAAM,MAAM,IAAI,QAAQ,SAAS;AACjC,UAAI,QAAQ;AAAI,eAAO,GAAG,MAAM,KAAK;AAErC,iBAAW;AACX,YAAM,MAAM,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM,GAAG;AACvD,SAAG,MAAM,GAAG;AAAA,IACd;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/server/render.tsx"],"sourcesContent":["import { type ReactNode } from 'react'\n\nimport { createReadableStreamFromReadable } from '@react-router/node'\nimport { renderToPipeableStream } from 'react-dom/server'\nimport { PassThrough, Transform } from 'node:stream'\n\nimport {\n createMakeswiftStylesRegistry,\n RootStyleRegistry,\n type RootStyleProps,\n} from '@makeswift/runtime/unstable-framework-support'\n\nconst DEFAULT_TIMEOUT = 10000\n\nexport function renderHtml(\n children: ReactNode,\n {\n timeout,\n classNamePrefix,\n enableCssReset,\n responseStatusCode,\n responseHeaders,\n }: RootStyleProps & {\n request: Request\n timeout?: number\n responseStatusCode: number\n responseHeaders: Headers\n },\n): Promise<Response> {\n const stylesRegistry = createMakeswiftStylesRegistry()\n\n return new Promise((resolve, reject) => {\n let didError = false\n\n const { pipe, abort } = renderToPipeableStream(\n <RootStyleRegistry\n stylesRegistry={stylesRegistry}\n classNamePrefix={classNamePrefix}\n enableCssReset={enableCssReset}\n shouldRenderStyleElements={false}\n >\n {children}\n </RootStyleRegistry>,\n {\n // wait for all Suspense boundaries before streaming to ensure all Makeswift styles have been generated & stored in the registry\n onAllReady() {\n // create a head injection transform with server-side styles\n const headInjector = createHeadInjectionTransform(\n stylesRegistry.serializeToHtmlStyleTags(),\n )\n\n // prepare a pipeable response stream with the head transform\n const body = new PassThrough()\n const responseStream = createReadableStreamFromReadable(body.pipe(headInjector))\n\n // amend response headers with content type\n responseHeaders.set('Content-Type', 'text/html; charset=utf-8')\n\n // return the stream response\n resolve(\n new Response(responseStream, {\n status: didError ? 500 : responseStatusCode,\n headers: responseHeaders,\n }),\n )\n\n // write the initial HTML doctype and start piping the stream\n body.write('<!DOCTYPE html>')\n pipe(body)\n },\n onShellError(err) {\n reject(err)\n },\n onError(err) {\n didError = true\n console.error(err)\n },\n },\n )\n\n setTimeout(abort, timeout ?? DEFAULT_TIMEOUT)\n })\n}\n\nfunction createHeadInjectionTransform(snippet: string) {\n let injected = false\n return new Transform({\n transform(chunk, _enc, cb) {\n if (injected) return cb(null, chunk)\n\n // inject `snippet` right before the first </head> tag\n const str = chunk.toString()\n const idx = str.indexOf('</head>')\n if (idx === -1) return cb(null, chunk)\n\n injected = true\n const out = str.slice(0, idx) + snippet + str.slice(idx)\n cb(null, out)\n },\n })\n}\n"],"mappings":"AAmCM;AAjCN,SAAS,wCAAwC;AACjD,SAAS,8BAA8B;AACvC,SAAS,aAAa,iBAAiB;AAEvC;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAEP,MAAM,kBAAkB;AAEjB,SAAS,WACd,UACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMmB;AACnB,QAAM,iBAAiB,8BAA8B;AAErD,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI,WAAW;AAEf,UAAM,EAAE,MAAM,MAAM,IAAI;AAAA,MACtB;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,2BAA2B;AAAA,UAE1B;AAAA;AAAA,MACH;AAAA,MACA;AAAA;AAAA,QAEE,aAAa;AAEX,gBAAM,eAAe;AAAA,YACnB,eAAe,yBAAyB;AAAA,UAC1C;AAGA,gBAAM,OAAO,IAAI,YAAY;AAC7B,gBAAM,iBAAiB,iCAAiC,KAAK,KAAK,YAAY,CAAC;AAG/E,0BAAgB,IAAI,gBAAgB,0BAA0B;AAG9D;AAAA,YACE,IAAI,SAAS,gBAAgB;AAAA,cAC3B,QAAQ,WAAW,MAAM;AAAA,cACzB,SAAS;AAAA,YACX,CAAC;AAAA,UACH;AAGA,eAAK,MAAM,iBAAiB;AAC5B,eAAK,IAAI;AAAA,QACX;AAAA,QACA,aAAa,KAAK;AAChB,iBAAO,GAAG;AAAA,QACZ;AAAA,QACA,QAAQ,KAAK;AACX,qBAAW;AACX,kBAAQ,MAAM,GAAG;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,eAAW,OAAO,WAAW,eAAe;AAAA,EAC9C,CAAC;AACH;AAEA,SAAS,6BAA6B,SAAiB;AACrD,MAAI,WAAW;AACf,SAAO,IAAI,UAAU;AAAA,IACnB,UAAU,OAAO,MAAM,IAAI;AACzB,UAAI;AAAU,eAAO,GAAG,MAAM,KAAK;AAGnC,YAAM,MAAM,MAAM,SAAS;AAC3B,YAAM,MAAM,IAAI,QAAQ,SAAS;AACjC,UAAI,QAAQ;AAAI,eAAO,GAAG,MAAM,KAAK;AAErC,iBAAW;AACX,YAAM,MAAM,IAAI,MAAM,GAAG,GAAG,IAAI,UAAU,IAAI,MAAM,GAAG;AACvD,SAAG,MAAM,GAAG;AAAA,IACd;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type RootStyleProps } from '@makeswift/runtime/unstable-framework-support';
3
- export declare function renderHtml(children: ReactNode, { timeout, cacheKey, enableCssReset, responseStatusCode, responseHeaders, }: RootStyleProps & {
3
+ export declare function renderHtml(children: ReactNode, { timeout, classNamePrefix, enableCssReset, responseStatusCode, responseHeaders, }: RootStyleProps & {
4
4
  request: Request;
5
5
  timeout?: number;
6
6
  responseStatusCode: number;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/server/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,+CAA+C,CAAA;AAItD,wBAAgB,UAAU,CACxB,QAAQ,EAAE,SAAS,EACnB,EACE,OAAO,EACP,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,EAAE,cAAc,GAAG;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;CACzB,GACA,OAAO,CAAC,QAAQ,CAAC,CAoDnB"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/server/render.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,+CAA+C,CAAA;AAItD,wBAAgB,UAAU,CACxB,QAAQ,EAAE,SAAS,EACnB,EACE,OAAO,EACP,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,EAAE,cAAc,GAAG;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,eAAe,EAAE,OAAO,CAAA;CACzB,GACA,OAAO,CAAC,QAAQ,CAAC,CAsDnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makeswift/react-router",
3
- "version": "0.1.12-canary.8",
3
+ "version": "0.2.0-canary.19",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "url": "makeswift/makeswift",
@@ -27,7 +27,7 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@makeswift/runtime": "0.28.10-canary.8"
30
+ "@makeswift/runtime": "0.29.0-canary.19"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "@react-router/node": "^7.0.0",