@cmj/juice 0.3.1 → 0.5.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.
- package/README.md +30 -1
- package/dist/client/client.d.ts +57 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +197 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/runtime/actions.d.ts +61 -8
- package/dist/runtime/actions.d.ts.map +1 -1
- package/dist/runtime/actions.js +109 -23
- package/dist/runtime/actions.js.map +1 -1
- package/dist/runtime/index.d.ts +3 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/matcher.d.ts.map +1 -1
- package/dist/runtime/matcher.js +39 -13
- package/dist/runtime/matcher.js.map +1 -1
- package/dist/runtime/router.d.ts.map +1 -1
- package/dist/runtime/router.js +10 -2
- package/dist/runtime/router.js.map +1 -1
- package/dist/runtime/rsc.d.ts +46 -0
- package/dist/runtime/rsc.d.ts.map +1 -0
- package/dist/runtime/rsc.js +149 -0
- package/dist/runtime/rsc.js.map +1 -0
- package/dist/runtime/types.d.ts +96 -0
- package/dist/runtime/types.d.ts.map +1 -1
- package/package.json +17 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// ── juice/runtime ──────────────────────────────────────────────────
|
|
2
|
-
// Public API barrel.
|
|
2
|
+
// Public API barrel. Two functions, three types.
|
|
3
3
|
// ────────────────────────────────────────────────────────────────────
|
|
4
4
|
export { createRouter } from './router.js';
|
|
5
|
+
export { createActionContext } from './actions.js';
|
|
6
|
+
export { _isRSCRequest, _buildModuleMap, RSC_CONTENT_TYPE } from './rsc.js';
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,iDAAiD;AACjD,uEAAuE;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/runtime/matcher.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmB1E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC5C,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/runtime/matcher.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmB1E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC5C,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CA8BlB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,SAAS,cAAc,EAAE,GAClC,WAAW,GAAG,IAAI,CAuCpB"}
|
package/dist/runtime/matcher.js
CHANGED
|
@@ -44,12 +44,13 @@ if (!('URLPattern' in globalThis)) {
|
|
|
44
44
|
export function _compileRoutes(routes, basePath) {
|
|
45
45
|
// Normalize: strip trailing slash from basePath (unless it IS '/')
|
|
46
46
|
const base = basePath === '/' ? '' : basePath.replace(/\/+$/, '');
|
|
47
|
-
|
|
47
|
+
const compiled = Object.entries(routes).map(([pattern, entry]) => {
|
|
48
48
|
const fullPattern = base + (pattern === '/' ? '/' : pattern);
|
|
49
49
|
try {
|
|
50
50
|
return {
|
|
51
51
|
pattern: new URLPattern({ pathname: fullPattern }),
|
|
52
52
|
entry,
|
|
53
|
+
_raw: pattern,
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
56
|
catch (cause) {
|
|
@@ -58,6 +59,14 @@ export function _compileRoutes(routes, basePath) {
|
|
|
58
59
|
`Check the route keys in your manifest`);
|
|
59
60
|
}
|
|
60
61
|
});
|
|
62
|
+
// Sort routes: static (no params/wildcards) before dynamic.
|
|
63
|
+
// This ensures "/product/featured" matches before "/product/:id".
|
|
64
|
+
compiled.sort((a, b) => {
|
|
65
|
+
const aDynamic = (a._raw.match(/[:\*]/g) ?? []).length;
|
|
66
|
+
const bDynamic = (b._raw.match(/[:\*]/g) ?? []).length;
|
|
67
|
+
return aDynamic - bDynamic;
|
|
68
|
+
});
|
|
69
|
+
return compiled;
|
|
61
70
|
}
|
|
62
71
|
/**
|
|
63
72
|
* Matches a full URL string against the compiled route table.
|
|
@@ -79,20 +88,37 @@ export function _compileRoutes(routes, basePath) {
|
|
|
79
88
|
* @internal
|
|
80
89
|
*/
|
|
81
90
|
export function _matchRoute(url, compiled) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
// Try matching the URL as-is first, then normalize trailing slashes.
|
|
92
|
+
// This ensures `/cart/` matches a route defined as `/cart` and vice versa.
|
|
93
|
+
const urlObj = new URL(url);
|
|
94
|
+
const pathname = urlObj.pathname;
|
|
95
|
+
const candidates = [url];
|
|
96
|
+
if (pathname !== '/' && pathname.endsWith('/')) {
|
|
97
|
+
// Try without trailing slash: /cart/ → /cart
|
|
98
|
+
urlObj.pathname = pathname.slice(0, -1);
|
|
99
|
+
candidates.push(urlObj.href);
|
|
100
|
+
}
|
|
101
|
+
else if (!pathname.endsWith('/')) {
|
|
102
|
+
// Try with trailing slash: /cart → /cart/
|
|
103
|
+
urlObj.pathname = pathname + '/';
|
|
104
|
+
candidates.push(urlObj.href);
|
|
105
|
+
}
|
|
106
|
+
for (const candidate of candidates) {
|
|
107
|
+
for (const route of compiled) {
|
|
108
|
+
const result = route.pattern.exec(candidate);
|
|
109
|
+
if (result) {
|
|
110
|
+
// URLPattern groups are Record<string, string | undefined>.
|
|
111
|
+
// Filter out undefined values for a clean params object.
|
|
112
|
+
const rawGroups = result.pathname.groups;
|
|
113
|
+
const params = {};
|
|
114
|
+
for (const key of Object.keys(rawGroups)) {
|
|
115
|
+
const value = rawGroups[key];
|
|
116
|
+
if (value !== undefined) {
|
|
117
|
+
params[key] = value;
|
|
118
|
+
}
|
|
93
119
|
}
|
|
120
|
+
return { entry: route.entry, params };
|
|
94
121
|
}
|
|
95
|
-
return { entry: route.entry, params };
|
|
96
122
|
}
|
|
97
123
|
}
|
|
98
124
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/runtime/matcher.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,iDAAiD;AACjD,EAAE;AACF,+DAA+D;AAC/D,6DAA6D;AAC7D,uEAAuE;AAGvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,qDAAqD;AACrD,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,kEAAkE;YAChE,yDAAyD;YACzD,uCAAuC;YACvC,gEAAgE;YAChE,4DAA4D,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4C,EAC5C,QAAgB;IAEhB,mEAAmE;IACnE,MAAM,IAAI,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAElE,
|
|
1
|
+
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/runtime/matcher.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,iDAAiD;AACjD,EAAE;AACF,+DAA+D;AAC/D,6DAA6D;AAC7D,uEAAuE;AAGvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,qDAAqD;AACrD,IAAI,CAAC,CAAC,YAAY,IAAI,UAAU,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC;QACH,6DAA6D;QAC7D,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,kEAAkE;YAChE,yDAAyD;YACzD,uCAAuC;YACvC,gEAAgE;YAChE,4DAA4D,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4C,EAC5C,QAAgB;IAEhB,mEAAmE;IACnE,MAAM,IAAI,GAAG,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;gBAClD,KAAK;gBACL,IAAI,EAAE,OAAO;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,uBAAuB,CAC/B,0BAA0B,OAAO,mBAAmB,WAAW,MAAM;gBACnE,iCAAiC;gBACjC,uCAAuC,CAC1C,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvD,OAAO,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,QAAmC;IAEnC,qEAAqE;IACrE,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACjC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,6CAA6C;QAC7C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,0CAA0C;QAC1C,MAAM,CAAC,QAAQ,GAAG,QAAQ,GAAG,GAAG,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7C,IAAI,MAAM,EAAE,CAAC;gBACX,4DAA4D;gBAC5D,yDAAyD;gBACzD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzC,MAAM,MAAM,GAA2B,EAAE,CAAC;gBAE1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACtB,CAAC;gBACH,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/runtime/router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/runtime/router.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEd,MAAM,YAAY,CAAC;AAwNpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,aAAa,GACtB,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAmErC"}
|
package/dist/runtime/router.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { ManifestValidationError, HookExecutionError } from './errors.js';
|
|
8
8
|
import { _compileRoutes, _matchRoute } from './matcher.js';
|
|
9
9
|
import { _renderPipeline } from './render.js';
|
|
10
|
+
import { _renderRSCPipeline, _isRSCRequest } from './rsc.js';
|
|
10
11
|
import { _serverActionPipeline } from './actions.js';
|
|
11
12
|
import { _generateDevErrorOverlay } from './dev.js';
|
|
12
13
|
// ── Manifest Normalization ────────────────────────────────────────
|
|
@@ -259,6 +260,7 @@ export function createRouter(manifest, options) {
|
|
|
259
260
|
const hmrUrl = options?.hmrUrl ?? meta?.hmrUrl;
|
|
260
261
|
const assetPrefix = options?.assetPrefix ?? meta?.assetPrefix ?? '/';
|
|
261
262
|
const clientEntry = options?.clientEntry ?? meta?.clientEntry;
|
|
263
|
+
const rsc = options?.rsc ?? false;
|
|
262
264
|
const resolvedOptions = {
|
|
263
265
|
...options,
|
|
264
266
|
root,
|
|
@@ -266,6 +268,7 @@ export function createRouter(manifest, options) {
|
|
|
266
268
|
hmrUrl,
|
|
267
269
|
assetPrefix,
|
|
268
270
|
clientEntry,
|
|
271
|
+
rsc,
|
|
269
272
|
onNotFound: options?.onNotFound ?? _defaultOnNotFound,
|
|
270
273
|
onError: options?.onError ?? _defaultOnError,
|
|
271
274
|
};
|
|
@@ -324,7 +327,12 @@ async function _handleRequestInner(req, compiledRoutes, manifest, resolvedOption
|
|
|
324
327
|
return _safeCallHook('onNotFound', () => resolvedOptions.onNotFound(req), new Response('Not Found', { status: 404 }));
|
|
325
328
|
}
|
|
326
329
|
// ── Render pipeline ────────────────────────────────────
|
|
327
|
-
|
|
330
|
+
// Branch: RSC payload for client-side navigation,
|
|
331
|
+
// HTML for initial page loads and non-SPA clients.
|
|
332
|
+
const useRSC = resolvedOptions.rsc && _isRSCRequest(req);
|
|
333
|
+
const response = useRSC
|
|
334
|
+
? await _renderRSCPipeline(req, match, manifest, resolvedOptions)
|
|
335
|
+
: await _renderPipeline(req, match, manifest, resolvedOptions);
|
|
328
336
|
// HEAD requests: return headers only, strip body
|
|
329
337
|
if (method === 'HEAD') {
|
|
330
338
|
return new Response(null, {
|
|
@@ -336,7 +344,7 @@ async function _handleRequestInner(req, compiledRoutes, manifest, resolvedOption
|
|
|
336
344
|
return response;
|
|
337
345
|
}
|
|
338
346
|
case 'POST': {
|
|
339
|
-
return _serverActionPipeline(req, manifest, resolvedOptions);
|
|
347
|
+
return _serverActionPipeline(req, manifest, resolvedOptions, compiledRoutes);
|
|
340
348
|
}
|
|
341
349
|
default: {
|
|
342
350
|
return new Response('Method Not Allowed', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/runtime/router.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/runtime/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { FlightManifest, RouterOptions, _RouteMatch } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* The RSC content type used for payload negotiation.
|
|
4
|
+
* Requests with `Accept: text/x-component` receive RSC wire format.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare const RSC_CONTENT_TYPE = "text/x-component";
|
|
8
|
+
/**
|
|
9
|
+
* Check if a request is asking for an RSC payload.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function _isRSCRequest(req: Request): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Build the webpack-compatible module map from the flight manifest.
|
|
15
|
+
* Maps client module specifiers to their chunk URLs and export names.
|
|
16
|
+
*
|
|
17
|
+
* react-server-dom-webpack expects:
|
|
18
|
+
* ```
|
|
19
|
+
* {
|
|
20
|
+
* [moduleSpecifier]: {
|
|
21
|
+
* [exportName]: { id: string, chunks: string[], name: string }
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare function _buildModuleMap(manifest: FlightManifest, assetPrefix?: string): Record<string, Record<string, {
|
|
29
|
+
id: string;
|
|
30
|
+
chunks: string[];
|
|
31
|
+
name: string;
|
|
32
|
+
}>>;
|
|
33
|
+
/**
|
|
34
|
+
* RSC render pipeline — produces React Flight wire format.
|
|
35
|
+
*
|
|
36
|
+
* Same component loading and layout wrapping as the HTML pipeline,
|
|
37
|
+
* but uses `react-server-dom-webpack/server` to serialize the React
|
|
38
|
+
* tree instead of `react-dom/server`.
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function _renderRSCPipeline(req: Request, match: _RouteMatch, manifest: FlightManifest, options: Required<Pick<RouterOptions, 'onError'>> & RouterOptions & {
|
|
43
|
+
isDev?: boolean;
|
|
44
|
+
assetPrefix?: string;
|
|
45
|
+
}): Promise<Response>;
|
|
46
|
+
//# sourceMappingURL=rsc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../src/runtime/rsc.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACZ,MAAM,YAAY,CAAC;AAKpB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAGnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,WAAW,GAAE,MAAY,GACxB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAgBhF;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,GAAG,aAAa,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5G,OAAO,CAAC,QAAQ,CAAC,CA+GnB"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
// ── juice/runtime RSC render pipeline ──────────────────────────────
|
|
2
|
+
// Handles RSC payload responses for client-side SPA navigation.
|
|
3
|
+
// Activated when `Accept: text/x-component` is present and `rsc: true`.
|
|
4
|
+
//
|
|
5
|
+
// Uses react-server-dom-webpack's renderToReadableStream to produce
|
|
6
|
+
// React Flight wire format instead of HTML.
|
|
7
|
+
// ────────────────────────────────────────────────────────────────────
|
|
8
|
+
import { createElement } from 'react';
|
|
9
|
+
import { ModuleLoadError } from './errors.js';
|
|
10
|
+
import { _resolveModulePath } from './resolve.js';
|
|
11
|
+
import { _bustModuleCache } from './dev.js';
|
|
12
|
+
/**
|
|
13
|
+
* The RSC content type used for payload negotiation.
|
|
14
|
+
* Requests with `Accept: text/x-component` receive RSC wire format.
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export const RSC_CONTENT_TYPE = 'text/x-component';
|
|
18
|
+
/**
|
|
19
|
+
* Check if a request is asking for an RSC payload.
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function _isRSCRequest(req) {
|
|
23
|
+
const accept = req.headers.get('Accept') ?? '';
|
|
24
|
+
return accept.includes(RSC_CONTENT_TYPE);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build the webpack-compatible module map from the flight manifest.
|
|
28
|
+
* Maps client module specifiers to their chunk URLs and export names.
|
|
29
|
+
*
|
|
30
|
+
* react-server-dom-webpack expects:
|
|
31
|
+
* ```
|
|
32
|
+
* {
|
|
33
|
+
* [moduleSpecifier]: {
|
|
34
|
+
* [exportName]: { id: string, chunks: string[], name: string }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export function _buildModuleMap(manifest, assetPrefix = '/') {
|
|
42
|
+
const prefix = assetPrefix.endsWith('/') ? assetPrefix : `${assetPrefix}/`;
|
|
43
|
+
const moduleMap = {};
|
|
44
|
+
for (const [specifier, ref] of Object.entries(manifest.clientModules)) {
|
|
45
|
+
const chunks = ref.chunks.map((c) => `${prefix}${c}`);
|
|
46
|
+
moduleMap[specifier] = {
|
|
47
|
+
[ref.name]: {
|
|
48
|
+
id: specifier,
|
|
49
|
+
chunks,
|
|
50
|
+
name: ref.name,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return moduleMap;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* RSC render pipeline — produces React Flight wire format.
|
|
58
|
+
*
|
|
59
|
+
* Same component loading and layout wrapping as the HTML pipeline,
|
|
60
|
+
* but uses `react-server-dom-webpack/server` to serialize the React
|
|
61
|
+
* tree instead of `react-dom/server`.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
export async function _renderRSCPipeline(req, match, manifest, options) {
|
|
66
|
+
const { entry, params } = match;
|
|
67
|
+
// ── 1. Dynamic import of the page module ─────────────────────
|
|
68
|
+
let importPath = _resolveModulePath(entry.moduleId, options.root);
|
|
69
|
+
if (options.isDev) {
|
|
70
|
+
importPath = _bustModuleCache(importPath);
|
|
71
|
+
}
|
|
72
|
+
let mod;
|
|
73
|
+
try {
|
|
74
|
+
mod = await import(importPath);
|
|
75
|
+
}
|
|
76
|
+
catch (cause) {
|
|
77
|
+
throw new ModuleLoadError(entry.moduleId, `route "${new URL(req.url).pathname}"` +
|
|
78
|
+
(options.root
|
|
79
|
+
? ` (resolved to "${importPath}" from root "${options.root}")`
|
|
80
|
+
: ' (no root option set — pass { root: import.meta.url } to createRouter)'), cause);
|
|
81
|
+
}
|
|
82
|
+
const exportName = entry.exportName ?? 'default';
|
|
83
|
+
const Component = mod[exportName];
|
|
84
|
+
if (typeof Component !== 'function') {
|
|
85
|
+
throw new Error(`[juice/runtime] Route module "${entry.moduleId}" does not export ` +
|
|
86
|
+
`a valid component at "${exportName}".`);
|
|
87
|
+
}
|
|
88
|
+
// ── 2. Build props ───────────────────────────────────────────
|
|
89
|
+
const url = new URL(req.url);
|
|
90
|
+
const searchParams = Object.fromEntries(url.searchParams.entries());
|
|
91
|
+
// ── 3. Create the React element ──────────────────────────────
|
|
92
|
+
let element = createElement(Component, { params, searchParams });
|
|
93
|
+
// ── 3b. Wrap in layout chain (root → leaf) ───────────────────
|
|
94
|
+
if (entry.layouts && entry.layouts.length > 0) {
|
|
95
|
+
for (let i = entry.layouts.length - 1; i >= 0; i--) {
|
|
96
|
+
let layoutPath = _resolveModulePath(entry.layouts[i], options.root);
|
|
97
|
+
if (options.isDev) {
|
|
98
|
+
layoutPath = _bustModuleCache(layoutPath);
|
|
99
|
+
}
|
|
100
|
+
const layoutMod = await import(layoutPath);
|
|
101
|
+
const Layout = layoutMod.default;
|
|
102
|
+
if (typeof Layout === 'function') {
|
|
103
|
+
element = createElement(Layout, { request: req }, element);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// ── 4. Render to RSC wire format ─────────────────────────────
|
|
108
|
+
try {
|
|
109
|
+
// Dynamic import — react-server-dom-webpack is an optional dep
|
|
110
|
+
const { renderToReadableStream: renderRSC } = await import('react-server-dom-webpack/server.edge');
|
|
111
|
+
const moduleMap = _buildModuleMap(manifest, options.assetPrefix);
|
|
112
|
+
const stream = renderRSC(element, moduleMap);
|
|
113
|
+
return new Response(stream, {
|
|
114
|
+
status: 200,
|
|
115
|
+
headers: {
|
|
116
|
+
'Content-Type': RSC_CONTENT_TYPE,
|
|
117
|
+
'Cache-Control': 'no-cache',
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
catch (thrown) {
|
|
122
|
+
// Thrown Response from the component tree
|
|
123
|
+
if (thrown instanceof Response) {
|
|
124
|
+
return thrown;
|
|
125
|
+
}
|
|
126
|
+
// react-server-dom-webpack not installed or not configured correctly
|
|
127
|
+
if (thrown instanceof Error) {
|
|
128
|
+
const msg = thrown.message;
|
|
129
|
+
// Case 1: Package not installed
|
|
130
|
+
if (msg.includes('Cannot find module') || msg.includes('Cannot find package')) {
|
|
131
|
+
return new Response('[juice] RSC payload negotiation requires "react-server-dom-webpack".\n\n' +
|
|
132
|
+
' npm install react-server-dom-webpack@canary\n', { status: 500, headers: { 'Content-Type': 'text/plain' } });
|
|
133
|
+
}
|
|
134
|
+
// Case 2: Running outside Vite (missing react-server export condition)
|
|
135
|
+
// This happens when running with tsx/node directly instead of
|
|
136
|
+
// through the Vite dev server or a proper build.
|
|
137
|
+
if (msg.includes('react-server') && msg.includes('condition')) {
|
|
138
|
+
return new Response('[juice] RSC payload negotiation requires the "react-server" export condition.\n\n' +
|
|
139
|
+
'This is automatically configured by the Vite dev server and production builds.\n' +
|
|
140
|
+
'If running directly with tsx/node, add: --conditions=react-server\n\n' +
|
|
141
|
+
' node --conditions=react-server server.js\n' +
|
|
142
|
+
' tsx --conditions=react-server server.ts\n', { status: 500, headers: { 'Content-Type': 'text/plain' } });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Re-throw for the router's onError hook
|
|
146
|
+
throw thrown;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=rsc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/runtime/rsc.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -229,6 +229,19 @@ export interface RouterOptions {
|
|
|
229
229
|
* @example `'/src/entry-client.tsx'`
|
|
230
230
|
*/
|
|
231
231
|
readonly clientEntry?: string;
|
|
232
|
+
/**
|
|
233
|
+
* Enable RSC payload negotiation for client-side SPA navigation.
|
|
234
|
+
*
|
|
235
|
+
* When `true`, requests with `Accept: text/x-component` receive
|
|
236
|
+
* a React Server Component wire-format payload instead of HTML.
|
|
237
|
+
* This enables the client-side Navigation API interceptor to
|
|
238
|
+
* fetch page updates without full page reloads.
|
|
239
|
+
*
|
|
240
|
+
* Requires `react-server-dom-webpack` as a peer dependency.
|
|
241
|
+
*
|
|
242
|
+
* @default false
|
|
243
|
+
*/
|
|
244
|
+
readonly rsc?: boolean;
|
|
232
245
|
}
|
|
233
246
|
/**
|
|
234
247
|
* A compiled route pairs a `URLPattern` with its manifest entry.
|
|
@@ -238,6 +251,8 @@ export interface RouterOptions {
|
|
|
238
251
|
export interface _CompiledRoute {
|
|
239
252
|
readonly pattern: URLPattern;
|
|
240
253
|
readonly entry: RouteEntry;
|
|
254
|
+
/** The raw pattern string, used for specificity sorting. @internal */
|
|
255
|
+
readonly _raw: string;
|
|
241
256
|
}
|
|
242
257
|
/**
|
|
243
258
|
* Result of a successful route match.
|
|
@@ -247,4 +262,85 @@ export interface _RouteMatch {
|
|
|
247
262
|
readonly entry: RouteEntry;
|
|
248
263
|
readonly params: Readonly<Record<string, string>>;
|
|
249
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Discriminated union returned by the runtime's body parser.
|
|
267
|
+
* The `kind` field lets you narrow the type at runtime without any casts.
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* ```ts
|
|
271
|
+
* switch (parsed.kind) {
|
|
272
|
+
* case 'form': parsed.data; // FormData
|
|
273
|
+
* case 'json': parsed.data; // unknown (narrow with your own type)
|
|
274
|
+
* case 'text': parsed.data; // string
|
|
275
|
+
* }
|
|
276
|
+
* ```
|
|
277
|
+
*/
|
|
278
|
+
export type ParsedBody = {
|
|
279
|
+
readonly kind: 'form';
|
|
280
|
+
readonly data: FormData;
|
|
281
|
+
} | {
|
|
282
|
+
readonly kind: 'json';
|
|
283
|
+
readonly data: unknown;
|
|
284
|
+
} | {
|
|
285
|
+
readonly kind: 'text';
|
|
286
|
+
readonly data: string;
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Opt-in second argument passed to server action functions.
|
|
290
|
+
*
|
|
291
|
+
* The **first argument** is always the parsed body — `FormData` for
|
|
292
|
+
* form submissions, parsed JSON, or raw text — preserving full
|
|
293
|
+
* React 19 `<form action={fn}>` compatibility.
|
|
294
|
+
*
|
|
295
|
+
* Use `ActionContext` as the **second argument** when you need access
|
|
296
|
+
* to the raw `Request`, cookies, route params, or headers.
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* ```ts
|
|
300
|
+
* // ── Simple form action (most common, React 19 native) ──
|
|
301
|
+
* 'use server'
|
|
302
|
+
* export async function addToCart(formData: FormData) {
|
|
303
|
+
* const id = formData.get('productId'); // ✅ just works
|
|
304
|
+
* }
|
|
305
|
+
*
|
|
306
|
+
* // ── Full context when you need power ────────────────────
|
|
307
|
+
* 'use server'
|
|
308
|
+
* export async function processWebhook(body: unknown, ctx: ActionContext) {
|
|
309
|
+
* const sig = ctx.request.headers.get('x-webhook-signature');
|
|
310
|
+
* const session = ctx.cookies.get('session_id');
|
|
311
|
+
* const id = ctx.params.id; // from /webhook/:id
|
|
312
|
+
* }
|
|
313
|
+
* ```
|
|
314
|
+
*/
|
|
315
|
+
export interface ActionContext {
|
|
316
|
+
/**
|
|
317
|
+
* The original `Request` — your escape hatch for headers, method,
|
|
318
|
+
* URL, and anything the web platform gives you. Never consumed;
|
|
319
|
+
* the body has already been read and passed as the first argument.
|
|
320
|
+
*/
|
|
321
|
+
readonly request: Request;
|
|
322
|
+
/** The parsed URL from the request (convenience). */
|
|
323
|
+
readonly url: URL;
|
|
324
|
+
/**
|
|
325
|
+
* Cookies parsed from the `Cookie` header.
|
|
326
|
+
* Lazy — only parsed on first access. Zero imports needed.
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```ts
|
|
330
|
+
* const session = ctx.cookies.get('session_id');
|
|
331
|
+
* ```
|
|
332
|
+
*/
|
|
333
|
+
readonly cookies: ReadonlyMap<string, string>;
|
|
334
|
+
/**
|
|
335
|
+
* Route parameters extracted from the URL pattern.
|
|
336
|
+
* Empty object `{}` when the action URL has no dynamic segments.
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* ```ts
|
|
340
|
+
* // Route: /api/products/:id
|
|
341
|
+
* const productId = ctx.params.id; // '42'
|
|
342
|
+
* ```
|
|
343
|
+
*/
|
|
344
|
+
readonly params: Readonly<Record<string, string>>;
|
|
345
|
+
}
|
|
250
346
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtD,kEAAkE;IAClE,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAElE,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAElE;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;QAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,gEAAgE;QAChE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,sDAAsD;QACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAID;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,GAAG,EAAE,OAAO,KACT,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErE;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CACjB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,OAAO,KACT,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cmj/juice",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Zero-bloat React 19 RSC framework — streaming SSR, server actions, zero config.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -39,6 +39,10 @@
|
|
|
39
39
|
"types": "./dist/runtime/index.d.ts",
|
|
40
40
|
"import": "./dist/runtime/index.js"
|
|
41
41
|
},
|
|
42
|
+
"./client": {
|
|
43
|
+
"types": "./dist/client/index.d.ts",
|
|
44
|
+
"import": "./dist/client/index.js"
|
|
45
|
+
},
|
|
42
46
|
"./create": {
|
|
43
47
|
"types": "./dist/cli/create.d.ts",
|
|
44
48
|
"import": "./dist/cli/create.js"
|
|
@@ -53,6 +57,9 @@
|
|
|
53
57
|
"runtime": [
|
|
54
58
|
"dist/runtime/index.d.ts"
|
|
55
59
|
],
|
|
60
|
+
"client": [
|
|
61
|
+
"dist/client/index.d.ts"
|
|
62
|
+
],
|
|
56
63
|
"create": [
|
|
57
64
|
"dist/cli/create.d.ts"
|
|
58
65
|
]
|
|
@@ -60,6 +67,7 @@
|
|
|
60
67
|
},
|
|
61
68
|
"files": [
|
|
62
69
|
"dist/cli",
|
|
70
|
+
"dist/client",
|
|
63
71
|
"dist/compiler",
|
|
64
72
|
"dist/runtime",
|
|
65
73
|
"README.md",
|
|
@@ -78,8 +86,14 @@
|
|
|
78
86
|
"peerDependencies": {
|
|
79
87
|
"react": "^19.0.0",
|
|
80
88
|
"react-dom": "^19.0.0",
|
|
89
|
+
"react-server-dom-webpack": ">=19.0.0",
|
|
81
90
|
"vite": "^6.0.0"
|
|
82
91
|
},
|
|
92
|
+
"peerDependenciesMeta": {
|
|
93
|
+
"react-server-dom-webpack": {
|
|
94
|
+
"optional": true
|
|
95
|
+
}
|
|
96
|
+
},
|
|
83
97
|
"devDependencies": {
|
|
84
98
|
"@types/node": "^22.0.0",
|
|
85
99
|
"@types/react": "^19.0.0",
|
|
@@ -87,9 +101,10 @@
|
|
|
87
101
|
"acorn": "^8.16.0",
|
|
88
102
|
"react": "^19.0.0",
|
|
89
103
|
"react-dom": "^19.0.0",
|
|
104
|
+
"react-server-dom-webpack": "^19.3.0-canary-e0cc7202-20260227",
|
|
90
105
|
"typescript": "^5.7.0",
|
|
91
106
|
"urlpattern-polyfill": "^10.1.0",
|
|
92
107
|
"vite": "^6.0.0",
|
|
93
108
|
"vitest": "^3.0.0"
|
|
94
109
|
}
|
|
95
|
-
}
|
|
110
|
+
}
|