@nifrajs/web 3.2.0 → 3.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/dist/build-plan.d.ts +17 -0
- package/dist/build-plan.d.ts.map +1 -1
- package/dist/build-plan.js +7 -1
- package/dist/build-plan.js.map +1 -1
- package/dist/build-vite.d.ts +14 -0
- package/dist/build-vite.d.ts.map +1 -1
- package/dist/build-vite.js +29 -4
- package/dist/build-vite.js.map +1 -1
- package/dist/build.d.ts +15 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +57 -15
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts +18 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +115 -0
- package/dist/client.js.map +1 -1
- package/dist/css-contract.d.ts +21 -0
- package/dist/css-contract.d.ts.map +1 -0
- package/dist/css-contract.js +28 -0
- package/dist/css-contract.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/codegen.d.ts +3 -0
- package/dist/internal/codegen.d.ts.map +1 -1
- package/dist/internal/codegen.js +11 -6
- package/dist/internal/codegen.js.map +1 -1
- package/dist/internal/page-execution.d.ts +57 -0
- package/dist/internal/page-execution.d.ts.map +1 -0
- package/dist/internal/page-execution.js +555 -0
- package/dist/internal/page-execution.js.map +1 -0
- package/dist/internal/render-document.d.ts +12 -2
- package/dist/internal/render-document.d.ts.map +1 -1
- package/dist/internal/render-document.js +28 -5
- package/dist/internal/render-document.js.map +1 -1
- package/dist/internal/request-url.d.ts +3 -0
- package/dist/internal/request-url.d.ts.map +1 -0
- package/dist/internal/request-url.js +14 -0
- package/dist/internal/request-url.js.map +1 -0
- package/dist/internal/web-app.d.ts +20 -1
- package/dist/internal/web-app.d.ts.map +1 -1
- package/dist/internal/web-app.js +37 -734
- package/dist/internal/web-app.js.map +1 -1
- package/dist/isr.d.ts.map +1 -1
- package/dist/isr.js +39 -4
- package/dist/isr.js.map +1 -1
- package/dist/llms-txt.d.ts +3 -0
- package/dist/llms-txt.d.ts.map +1 -1
- package/dist/llms-txt.js +6 -3
- package/dist/llms-txt.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/public-dir.d.ts.map +1 -1
- package/dist/public-dir.js +69 -44
- package/dist/public-dir.js.map +1 -1
- package/dist/trusted-html.d.ts +34 -0
- package/dist/trusted-html.d.ts.map +1 -0
- package/dist/trusted-html.js +35 -0
- package/dist/trusted-html.js.map +1 -0
- package/package.json +3 -3
- package/src/build-plan.ts +23 -1
- package/src/build-vite.ts +47 -4
- package/src/build.ts +69 -6
- package/src/client.ts +140 -0
- package/src/css-contract.ts +44 -0
- package/src/index.ts +15 -0
- package/src/internal/codegen.ts +20 -6
- package/src/internal/page-execution.ts +761 -0
- package/src/internal/render-document.ts +39 -6
- package/src/internal/request-url.ts +14 -0
- package/src/internal/web-app.ts +68 -835
- package/src/isr.ts +42 -3
- package/src/llms-txt.ts +16 -4
- package/src/manifest.ts +1 -1
- package/src/public-dir.ts +70 -45
- package/src/trusted-html.ts +44 -0
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
export { assertStaticBoundaryImports, type Boundary, type BoundaryDescriptor, type BoundaryError, type BoundaryMode, type BoundaryRegistration, type BoundaryRequestCtx, type BoundaryState, type BoundaryStates, type BoundaryStatus, boundaryDescriptors, boundaryModeKey, type DynamicBoundary, type DynamicBoundaryBatch, type InterceptBoundary, MemoryStaticBoundaryCache, type PendingBoundary, resolveDynamicBoundaries, resolveStaticBoundaries, type StaticBoundary, type StaticBoundaryCache, type StaticBoundaryImportEdge, type StaticBoundaryRoot, type StaticCtx, startDynamicBoundaries, } from "./boundary.js";
|
|
11
11
|
export { assertRenderAdapterConformance, RenderAdapterConformanceError, type RenderAdapterConformanceFixture, } from "./conformance.js";
|
|
12
|
+
export { assertCssLoadingCompatible, type CssLoadingMode, DEFAULT_CSS_LOADING, normalizeCssLoading, } from "./css-contract.js";
|
|
12
13
|
export { type Deferred, defer } from "./deferred.js";
|
|
13
14
|
export { DRAFT_COOKIE, type DraftCookieControls, disableDraft, type EnableDraftOptions, enableDraft, isDraftEnabled, type PreviewEndpointOptions, previewEndpoint, } from "./draft.js";
|
|
14
15
|
export { type FontDisplay, type FontFace, type FontPreloadInput, type FontSource, fontFace, fontPreload, } from "./fonts.js";
|
|
@@ -27,7 +28,7 @@ export { DEFAULT_DEV_PORT, PRE_HYDRATION_GUARD, type ServerOnly, } from "./inter
|
|
|
27
28
|
* server-only" should import the matcher rather than re-encode it.
|
|
28
29
|
*/
|
|
29
30
|
export { SERVER_FN_MODULE, SERVER_ONLY_MODULE } from "./internal/server-boundary.js";
|
|
30
|
-
export { type CreateWebAppOptions, createWebApp, } from "./internal/web-app.js";
|
|
31
|
+
export { type CreateWebAppOptions, createWebApp, type NonceResolver, } from "./internal/web-app.js";
|
|
31
32
|
export { type CachedResponse, type CacheStore, ISR_REVALIDATE_HEADER, ISR_REVALIDATE_TAGS_HEADER, ISR_STATUS_HEADER, type ISRApp, type ISROptions, type ISRPlatform, KVCacheStore, type KVCacheStoreOptions, type KVNamespaceLike, MemoryCacheStore, type MemoryCacheStoreOptions, type RevalidateEndpointOptions, revalidateEndpoint, withISR, } from "./isr.js";
|
|
32
33
|
export { type Action, buildManifest, type ClientAction, type ClientActionArgs, type ClientActionResult, type ClientLoader, type ClientLoaderArgs, type ClientRequestBody, type ClientRouteHooks, enumerateStaticRoutes, filePathToPattern, filePathToPatterns, type GetStaticPaths, type InertScriptType, type LayoutEntry, type LinkDescriptor, type Loader, type LoaderContext, type Manifest, type Meta, type MetaArgs, type MetaDescriptor, type MetaInput, type RouteEntry, type RouteModule, type ScriptDescriptor, type StaticPath, type StaticPaths, type StaticRoutes, type UnsafeScriptDescriptor, } from "./manifest.js";
|
|
33
34
|
export { type Blocker, type BlockerController, type BlockerFunction, type BlockerLocation, type BlockerState, type BrowserNavigate, getBrowserNavigate, IDLE_BLOCKER, type NavigateFunction, type NavigateOptions, type NavigateSearchOf, type NavigateTargetInput, type RouteSearch, registerBlocker, resolveNavigate, setBlockerController, setBrowserNavigate, } from "./navigation.js";
|
|
@@ -36,4 +37,5 @@ export { createMutation, createQueryClient, type DehydratedState, hashQueryKey,
|
|
|
36
37
|
export { ACTION_GLOBAL, BOUNDARY_GLOBAL, DATA_GLOBAL, LAYOUT_DATA_GLOBAL, type RenderAdapter, type RenderProps, ROOT_ATTRIBUTE, ROUTE_GLOBAL, type SsrModuleLoader, setSsrModuleLoader, ssrModuleLoader, } from "./render-seam.js";
|
|
37
38
|
export { type ClientRouter, type ClientRouterOptions, createClientRouter, createMatcher, DATA_HEADER, type Fetcher, type FetcherState, type FetchRouteData, type MountRouterOptions, NAV_FROM_HEADER, REDIRECT_HEADER, RETAIN_HEADER, REVALIDATE_HEADER, type RouteMatch, type RoutePattern, type RouterState, STATUS_HEADER, type Submission, type SubmitOptions, } from "./router.js";
|
|
38
39
|
export { type SearchOf, searchOf, searchOfChain, serializeSearch } from "./search.js";
|
|
40
|
+
export { type HtmlSanitizer, type SanitizedHtml, sanitizedHtml, sanitizeHtml, type TrustedHtml, trustHtml, } from "./trusted-html.js";
|
|
39
41
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EACL,2BAA2B,EAC3B,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,mBAAmB,EACnB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,KAAK,eAAe,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,KAAK,+BAA+B,GACrC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
// Draft / preview mode - a signed cookie that flips `ctx.draft` for loaders + bypasses ISR for editors.
|
|
11
11
|
export { assertStaticBoundaryImports, boundaryDescriptors, boundaryModeKey, MemoryStaticBoundaryCache, resolveDynamicBoundaries, resolveStaticBoundaries, startDynamicBoundaries, } from "./boundary.js";
|
|
12
12
|
export { assertRenderAdapterConformance, RenderAdapterConformanceError, } from "./conformance.js";
|
|
13
|
+
export { assertCssLoadingCompatible, DEFAULT_CSS_LOADING, normalizeCssLoading, } from "./css-contract.js";
|
|
13
14
|
// Deferred loader data (`defer()` + the `Deferred<T>` type) - consumed by the adapter's `<Await>`.
|
|
14
15
|
export { defer } from "./deferred.js";
|
|
15
16
|
export { DRAFT_COOKIE, disableDraft, enableDraft, isDraftEnabled, previewEndpoint, } from "./draft.js";
|
|
@@ -55,4 +56,5 @@ export { createClientRouter, createMatcher, DATA_HEADER, NAV_FROM_HEADER, REDIRE
|
|
|
55
56
|
// ctx + `renderPage`) and a client adapter mount call this with the same URL + schema, so the two sides
|
|
56
57
|
// produce the identical value by construction. An adapter's `useSearch` binding reads its result.
|
|
57
58
|
export { searchOf, searchOfChain, serializeSearch } from "./search.js";
|
|
59
|
+
export { sanitizedHtml, sanitizeHtml, trustHtml, } from "./trusted-html.js";
|
|
58
60
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wGAAwG;AACxG,OAAO,EACL,2BAA2B,EAU3B,mBAAmB,EACnB,eAAe,EAIf,yBAAyB,EAEzB,wBAAwB,EACxB,uBAAuB,EAMvB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAE9B,MAAM,kBAAkB,CAAA;AACzB,mGAAmG;AACnG,OAAO,EAAiB,KAAK,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EACL,YAAY,EAEZ,YAAY,EAEZ,WAAW,EACX,cAAc,EAEd,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,oGAAoG;AACpG,OAAO,EAKL,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAIL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,uBAAuB,CAAA;AAC9B,4FAA4F;AAC5F,sGAAsG;AACtG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EACL,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EAER,SAAS,EAOT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,UAAU,EAEV,aAAa,EACb,UAAU,EACV,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,gCAAgC,CAAA;AACvC;;;;;;;;;GASG;AACH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAEL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wGAAwG;AACxG,OAAO,EACL,2BAA2B,EAU3B,mBAAmB,EACnB,eAAe,EAIf,yBAAyB,EAEzB,wBAAwB,EACxB,uBAAuB,EAMvB,sBAAsB,GACvB,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,GAE9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,0BAA0B,EAE1B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,mGAAmG;AACnG,OAAO,EAAiB,KAAK,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EACL,YAAY,EAEZ,YAAY,EAEZ,WAAW,EACX,cAAc,EAEd,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,oGAAoG;AACpG,OAAO,EAKL,QAAQ,EACR,WAAW,GACZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAIL,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,uBAAuB,CAAA;AAC9B,4FAA4F;AAC5F,sGAAsG;AACtG,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EACL,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EAER,SAAS,EAOT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,UAAU,EAEV,aAAa,EACb,UAAU,EACV,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,gCAAgC,CAAA;AACvC;;;;;;;;;GASG;AACH,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACpF,OAAO,EAEL,YAAY,GAEb,MAAM,uBAAuB,CAAA;AAC9B,wGAAwG;AACxG,sCAAsC;AACtC,OAAO,EAGL,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,EAIjB,YAAY,EAGZ,gBAAgB,EAGhB,kBAAkB,EAClB,OAAO,GACR,MAAM,UAAU,CAAA;AACjB,kGAAkG;AAClG,OAAO,EAEL,aAAa,EAQb,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,GAmBnB,MAAM,eAAe,CAAA;AACtB,qGAAqG;AACrG,mGAAmG;AACnG,OAAO,EAOL,kBAAkB,EAClB,YAAY,EAMZ,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AACxB,iGAAiG;AACjG,OAAO,EAEL,iBAAiB,EAEjB,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,sGAAsG;AACtG,iEAAiE;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EAEjB,YAAY,GAcb,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,kBAAkB,EAGlB,cAAc,EACd,YAAY,EAEZ,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAA;AACzB,gGAAgG;AAChG,gGAAgG;AAChG,OAAO,EAGL,kBAAkB,EAClB,aAAa,EACb,WAAW,EAKX,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EAIjB,aAAa,GAGd,MAAM,aAAa,CAAA;AACpB,mGAAmG;AACnG,wGAAwG;AACxG,wGAAwG;AACxG,kGAAkG;AAClG,OAAO,EAAiB,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrF,OAAO,EAGL,aAAa,EACb,YAAY,EAEZ,SAAS,GACV,MAAM,mBAAmB,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type CssLoadingMode } from "../css-contract.js";
|
|
1
2
|
import type { Manifest } from "../manifest.js";
|
|
2
3
|
export interface GenerateClientEntryOptions {
|
|
3
4
|
/**
|
|
@@ -58,6 +59,8 @@ export interface GenerateServerManifestOptions {
|
|
|
58
59
|
/** Per-route stylesheet URLs (`buildClient`'s `BuildManifest.routeStyles`) - baked as
|
|
59
60
|
* `export const routeStyles` so a page links only the CSS its route chain uses. */
|
|
60
61
|
readonly routeStyles?: Readonly<Record<string, readonly string[]>> | undefined;
|
|
62
|
+
/** How framework-owned stylesheet links should activate before the generated client mounts. */
|
|
63
|
+
readonly cssLoading?: CssLoadingMode;
|
|
61
64
|
/** Emit **lazy** per-route loaders (`() => import("./routes/x")`, a static specifier) instead of
|
|
62
65
|
* eager `import * as`, so a bundler with code-splitting emits one chunk per route - loaded on the
|
|
63
66
|
* first request to it, not all at boot (smaller cold-start parse). Default `false` (eager). Both
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,oBAAoB,CAAA;AAElG,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAU3D,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,0BAA0B,GAClC,MAAM,CA4MR;AAED,MAAM,WAAW,+BAA+B;IAC9C;;qEAEiE;IACjE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;gHAC4G;IAC5G,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,+BAA+B,GACvC,MAAM,CAuBR;AAED,MAAM,WAAW,6BAA6B;IAC5C;6DACyD;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;4EACwE;IACxE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B;;+FAE2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/C;uFACmF;IACnF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9E,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC;;;2FAGuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CACxB;AAyBD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,6BAA6B,GACrC,MAAM,CAsER"}
|
package/dist/internal/codegen.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_CSS_LOADING, normalizeCssLoading } from "../css-contract.js";
|
|
1
2
|
import { MAP_DEFERRED_SOURCE } from "../deferred.js";
|
|
2
3
|
import { ACTION_GLOBAL, BOUNDARY_GLOBAL, DATA_GLOBAL, LAYOUT_DATA_GLOBAL, ROOT_ATTRIBUTE, ROUTE_GLOBAL, } from "../render-seam.js";
|
|
3
4
|
import { jsStringLiteral } from "./js-string.js";
|
|
@@ -53,7 +54,7 @@ export function generateClientEntry(manifest, options) {
|
|
|
53
54
|
// `/client`, never the root: the root's graph carries the server (renderPage, the static-file
|
|
54
55
|
// server), and Vite's dev server evaluates what it is given instead of tree-shaking it.
|
|
55
56
|
'import { createClientRouter, createMatcher, mergeHeads, resolveMeta } from "@nifrajs/web/client"',
|
|
56
|
-
'import { applyHead, installForms, installHistory, signalHydrated } from "@nifrajs/web/client"',
|
|
57
|
+
'import { applyHead, installForms, installHistory, signalHydrated, waitForStyles } from "@nifrajs/web/client"',
|
|
57
58
|
// Namespace import: `errorBoundary` is optional (an adapter may not export it). A namespace member
|
|
58
59
|
// access yields `undefined` if absent - unlike a named import, which would be a link error.
|
|
59
60
|
`import * as __adapter from ${JSON.stringify(clientModule)}`,
|
|
@@ -183,9 +184,9 @@ export function generateClientEntry(manifest, options) {
|
|
|
183
184
|
`renderPage opened the app in - the one marked \`${ROOT_ATTRIBUTE}\` when a custom \`rootId\` ` +
|
|
184
185
|
"is set, `#root` otherwise - and this document has neither. If you emit the document yourself, " +
|
|
185
186
|
'keep `<div id="root">` around the SSR markup.')})`,
|
|
186
|
-
//
|
|
187
|
-
// is
|
|
188
|
-
"loadModule(initial.routeId).then(() => {",
|
|
187
|
+
// Wait for framework-owned deferred CSS before loading/mounting the initial route. The coordinator
|
|
188
|
+
// is a no-op for the default blocking links and always has a bounded fail-open terminal state.
|
|
189
|
+
"waitForStyles().then(() => loadModule(initial.routeId)).then(() => {",
|
|
189
190
|
" mountRouter({ router, routes: chains, searchSchemas, container: root })",
|
|
190
191
|
// Run the optional client loader only after the adapter has mounted the SSR tree. The initial
|
|
191
192
|
// server data is already in `window.__NIFRA_DATA__`, so `serverLoader()` reuses it and cannot
|
|
@@ -204,7 +205,7 @@ export function generateClientEntry(manifest, options) {
|
|
|
204
205
|
" applyHead(mergeHeads((metas[s.routeId] ?? [undefined]).map((m) => resolveMeta(m, args))))",
|
|
205
206
|
" }",
|
|
206
207
|
" })",
|
|
207
|
-
"})",
|
|
208
|
+
"}).catch((error) => console.error('[nifra/web] hydration failed:', error))",
|
|
208
209
|
].join("\n")}\n`;
|
|
209
210
|
}
|
|
210
211
|
/**
|
|
@@ -260,7 +261,8 @@ function moduleSpecifier(resolved) {
|
|
|
260
261
|
return resolved.replace(SOURCE_EXTENSION, "");
|
|
261
262
|
}
|
|
262
263
|
export function generateServerManifest(manifest, options) {
|
|
263
|
-
const { resolve, clientEntry, styles, routeStyles, lazy = false } = options;
|
|
264
|
+
const { resolve, clientEntry, styles, routeStyles, cssLoading: requestedCssLoading, lazy = false, } = options;
|
|
265
|
+
const cssLoading = normalizeCssLoading(requestedCssLoading ?? DEFAULT_CSS_LOADING);
|
|
264
266
|
// Every unique source file in the manifest (routes + layouts + error/status pages), sorted for stable output.
|
|
265
267
|
const files = [
|
|
266
268
|
...new Set([
|
|
@@ -282,6 +284,7 @@ export function generateServerManifest(manifest, options) {
|
|
|
282
284
|
// Always emitted (default empty) so consumers can `import { styles, routeStyles }` unconditionally.
|
|
283
285
|
const stylesLine = `export const styles = ${JSON.stringify(styles ?? [])}`;
|
|
284
286
|
const routeStylesLine = `export const routeStyles = ${JSON.stringify(routeStyles ?? {})}`;
|
|
287
|
+
const cssLoadingLine = `export const cssLoading = ${JSON.stringify(cssLoading)}`;
|
|
285
288
|
if (lazy) {
|
|
286
289
|
// Lazy: `() => import("./routes/x")` per route (static specifier → one chunk per route under a
|
|
287
290
|
// code-splitting bundler, loaded on first request). The map keys are the route-relative paths
|
|
@@ -295,6 +298,7 @@ export function generateServerManifest(manifest, options) {
|
|
|
295
298
|
clientEntryLine,
|
|
296
299
|
stylesLine,
|
|
297
300
|
routeStylesLine,
|
|
301
|
+
cssLoadingLine,
|
|
298
302
|
"export const manifest = buildManifest(Object.keys(loaders), (file) => () => loaders[file]())",
|
|
299
303
|
].join("\n")}\n`;
|
|
300
304
|
}
|
|
@@ -311,6 +315,7 @@ export function generateServerManifest(manifest, options) {
|
|
|
311
315
|
clientEntryLine,
|
|
312
316
|
stylesLine,
|
|
313
317
|
routeStylesLine,
|
|
318
|
+
cssLoadingLine,
|
|
314
319
|
"export const manifest = buildManifest(Object.keys(modules), (file) => () => Promise.resolve(modules[file]))",
|
|
315
320
|
].join("\n")}\n`;
|
|
316
321
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/internal/codegen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ResponseResult } from "@nifrajs/core/server";
|
|
2
|
+
import { type StaticBoundaryCache } from "../boundary.js";
|
|
3
|
+
import { type CssLoadingMode } from "../css-contract.js";
|
|
4
|
+
import type { Manifest, RouteEntry } from "../manifest.js";
|
|
5
|
+
import type { RenderAdapter } from "../render-seam.js";
|
|
6
|
+
import { type RenderedPage } from "./render-document.js";
|
|
7
|
+
/** Resolve the CSP nonce for one document request. Return `undefined` to omit nonce attributes. */
|
|
8
|
+
export type NonceResolver<Env = unknown> = (ctx: {
|
|
9
|
+
readonly request: Request;
|
|
10
|
+
readonly env: Env;
|
|
11
|
+
}) => string | undefined | Promise<string | undefined>;
|
|
12
|
+
/** Structural context supplied by the core server to one page route handler. */
|
|
13
|
+
export interface PageRouteContext<Env = unknown> {
|
|
14
|
+
readonly params: Record<string, string>;
|
|
15
|
+
readonly req: Request;
|
|
16
|
+
readonly env: Env;
|
|
17
|
+
}
|
|
18
|
+
export interface PageExecutionOptions<Env = unknown> {
|
|
19
|
+
readonly adapter: RenderAdapter;
|
|
20
|
+
readonly manifest: Manifest;
|
|
21
|
+
readonly clientEntry: string;
|
|
22
|
+
readonly title?: string;
|
|
23
|
+
readonly api?: unknown;
|
|
24
|
+
readonly draftSecret?: string;
|
|
25
|
+
readonly routePreload?: Readonly<Record<string, readonly string[]>>;
|
|
26
|
+
readonly styles?: readonly string[];
|
|
27
|
+
readonly routeStyles?: Readonly<Record<string, readonly string[]>>;
|
|
28
|
+
readonly cssLoading?: CssLoadingMode;
|
|
29
|
+
readonly prerenderedPaths?: readonly string[];
|
|
30
|
+
readonly staticFallbacks?: Readonly<Record<string, "ssr" | "404">>;
|
|
31
|
+
readonly staticBoundaryCache?: StaticBoundaryCache;
|
|
32
|
+
/** Per-request CSP nonce for framework-owned executable document scripts. */
|
|
33
|
+
readonly nonce?: NonceResolver<Env>;
|
|
34
|
+
readonly onLoaderError?: (error: unknown, ctx: {
|
|
35
|
+
readonly request: Request;
|
|
36
|
+
readonly params: Readonly<Record<string, string>>;
|
|
37
|
+
readonly route: string;
|
|
38
|
+
}) => void;
|
|
39
|
+
}
|
|
40
|
+
type PageResponse = Response | ResponseResult | RenderedPage;
|
|
41
|
+
export interface PageRequestExecutor<Env = unknown> {
|
|
42
|
+
get(route: RouteEntry): (ctx: PageRouteContext<Env>) => Promise<PageResponse>;
|
|
43
|
+
post(route: RouteEntry): (ctx: PageRouteContext<Env>) => Promise<PageResponse>;
|
|
44
|
+
notFound(request: Request, env: Env, path?: string): Promise<PageResponse>;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Own the page request program behind one private seam.
|
|
48
|
+
*
|
|
49
|
+
* `createWebApp` remains responsible for app construction, mount ordering, and route registration.
|
|
50
|
+
* This module owns the page-specific contract: context, layout execution, control-flow precedence,
|
|
51
|
+
* data/document assembly, and error/status rendering. GET and POST retain their distinct ordering
|
|
52
|
+
* (ordinary layout data may run after an action; a gate must run before it) while sharing the same
|
|
53
|
+
* outcome and render decisions.
|
|
54
|
+
*/
|
|
55
|
+
export declare function createPageRequestExecutor<Env = unknown>(options: PageExecutionOptions<Env>): PageRequestExecutor<Env>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=page-execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-execution.d.ts","sourceRoot":"","sources":["../../src/internal/page-execution.ts"],"names":[],"mappings":"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"}
|