@askrjs/askr 0.0.52 → 0.0.53
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 +5 -1
- package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
- package/dist/actions/index.d.ts +2 -0
- package/dist/actions/index.js +103 -0
- package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
- package/dist/benchmark.d.ts +6 -2
- package/dist/benchmark.js +63 -11
- package/dist/boot/index.d.ts +61 -2
- package/dist/boot/index.js +1 -203
- package/dist/boot-j2KoN6ss.js +647 -0
- package/dist/cleanup-COv77su2.js +487 -0
- package/dist/component-internal-B3z7GXlD.js +614 -0
- package/dist/component-lifecycle-CO4hXlP4.js +357 -0
- package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
- package/dist/component-scope-CvPba6O6.d.ts +12 -0
- package/dist/components/index.d.ts +17 -2
- package/dist/components/index.js +39 -1
- package/dist/compose-ref-Cc_YkUpM.js +92 -0
- package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
- package/dist/control/index.d.ts +1 -3
- package/dist/control/index.js +1 -3
- package/dist/control-BQvNVfAd.d.ts +436 -0
- package/dist/control-BYyLTFyw.js +165 -0
- package/dist/control-Bf4Wkdvv.d.ts +9 -0
- package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
- package/dist/data/index.d.ts +2 -6
- package/dist/data/index.js +4 -5
- package/dist/data-DnxnDxD-.js +559 -0
- package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
- package/dist/deferred-lKE8uR0z.js +386 -0
- package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
- package/dist/fastlane-Dw8SOBr9.js +343 -0
- package/dist/for-internal-BKf_Tnv1.js +1563 -0
- package/dist/foundations/icon/index.d.ts +68 -2
- package/dist/foundations/icon/index.js +85 -1
- package/dist/foundations/index.d.ts +2 -5
- package/dist/foundations/index.js +2 -5
- package/dist/foundations/interactions/index.d.ts +264 -6
- package/dist/foundations/interactions/index.js +1 -6
- package/dist/foundations/state/index.d.ts +32 -1
- package/dist/foundations/state/index.js +78 -1
- package/dist/foundations/structures/index.d.ts +2 -7
- package/dist/foundations/structures/index.js +2 -7
- package/dist/foundations/utilities/index.d.ts +2 -6
- package/dist/foundations/utilities/index.js +2 -5
- package/dist/fx/index.d.ts +190 -3
- package/dist/fx/index.js +454 -4
- package/dist/index-31Uoz_NS.d.ts +239 -0
- package/dist/index-Bki2rqcr.d.ts +233 -0
- package/dist/index-BnU0NPwM.d.ts +101 -0
- package/dist/index-D73jgYx1.d.ts +48 -0
- package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -8
- package/dist/index-SJXJkssx.d.ts +44 -0
- package/dist/index.d.ts +8 -13
- package/dist/index.js +150 -15
- package/dist/interactions-w7gQN4ha.js +280 -0
- package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
- package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
- package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
- package/dist/jsx-dev-runtime.d.ts +2 -4
- package/dist/jsx-dev-runtime.js +7 -5
- package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
- package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
- package/dist/jsx-runtime.d.ts +2 -35
- package/dist/jsx-runtime.js +11 -5
- package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +4 -5
- package/dist/navigate-BVDCzOuB.d.ts +34 -0
- package/dist/navigate-CmPLSXyw.js +1449 -0
- package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +33 -36
- package/dist/query-registry-CQIT4mXr.js +73 -0
- package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
- package/dist/renderer-DzPjeLby.js +6197 -0
- package/dist/{runtime/resource-operation.js → resource-operation-CEzfpnDk.js} +118 -15
- package/dist/resources/index.d.ts +42 -3
- package/dist/resources/index.js +3 -4
- package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
- package/dist/route-matching-vJpvLVbX.js +515 -0
- package/dist/router/index.d.ts +166 -14
- package/dist/router/index.js +150 -12
- package/dist/{common/router.d.ts → router-CeYvjj5_.d.ts} +72 -28
- package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
- package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
- package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
- package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
- package/dist/ssg/index.d.ts +252 -4
- package/dist/ssg/index.js +857 -1
- package/dist/ssr/index.d.ts +225 -8
- package/dist/ssr/index.js +3 -6
- package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
- package/dist/ssr-D3t80Rc0.js +1413 -0
- package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
- package/dist/structures-DUB3HchX.js +221 -0
- package/dist/testing/index.d.ts +3 -2
- package/dist/testing/index.js +2 -5
- package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
- package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
- package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -2
- package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
- package/package.json +12 -7
- package/dist/bench/components/benchmark-row.d.ts +0 -20
- package/dist/bench/components/benchmark-row.js +0 -40
- package/dist/bench/components/benchmark-table.js +0 -23
- package/dist/bin/askr-ssg.d.ts +0 -27
- package/dist/bin/askr-ssg.js +0 -186
- package/dist/boot/hydration.js +0 -139
- package/dist/boot/root-lifecycle.d.ts +0 -18
- package/dist/boot/root-lifecycle.js +0 -209
- package/dist/boot/route-startup.js +0 -54
- package/dist/boot/types.d.ts +0 -61
- package/dist/common/component.d.ts +0 -18
- package/dist/common/control.d.ts +0 -12
- package/dist/common/dom-range.d.ts +0 -13
- package/dist/common/env.js +0 -41
- package/dist/common/error-boundary.d.ts +0 -15
- package/dist/common/invariant.js +0 -15
- package/dist/common/jsx.d.ts +0 -22
- package/dist/common/logger.js +0 -34
- package/dist/common/promise.js +0 -6
- package/dist/common/ssr-errors.d.ts +0 -10
- package/dist/common/ssr-errors.js +0 -14
- package/dist/common/ssr.d.ts +0 -41
- package/dist/common/vnode.d.ts +0 -21
- package/dist/components/error-boundary.d.ts +0 -14
- package/dist/components/error-boundary.js +0 -41
- package/dist/components/link.d.ts +0 -68
- package/dist/components/link.js +0 -74
- package/dist/control/case.d.ts +0 -18
- package/dist/control/case.js +0 -68
- package/dist/control/for.d.ts +0 -23
- package/dist/control/for.js +0 -61
- package/dist/control/shared.d.ts +0 -8
- package/dist/control/shared.js +0 -18
- package/dist/control/show.d.ts +0 -14
- package/dist/control/show.js +0 -32
- package/dist/data/data-runtime.d.ts +0 -27
- package/dist/data/invalidation.d.ts +0 -8
- package/dist/data/invalidation.js +0 -25
- package/dist/data/mutation-cell.d.ts +0 -27
- package/dist/data/mutation-cell.js +0 -133
- package/dist/data/query-cell.d.ts +0 -47
- package/dist/data/query-cell.js +0 -324
- package/dist/data/query-key.js +0 -40
- package/dist/data/shared.js +0 -20
- package/dist/data/testing.js +0 -2
- package/dist/data/types.d.ts +0 -160
- package/dist/foundations/icon/icon.d.ts +0 -52
- package/dist/foundations/icon/icon.js +0 -86
- package/dist/foundations/icon/icon.types.d.ts +0 -21
- package/dist/foundations/interactions/dismissable.d.ts +0 -71
- package/dist/foundations/interactions/dismissable.js +0 -24
- package/dist/foundations/interactions/focusable.d.ts +0 -21
- package/dist/foundations/interactions/focusable.js +0 -16
- package/dist/foundations/interactions/hoverable.d.ts +0 -25
- package/dist/foundations/interactions/hoverable.js +0 -13
- package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
- package/dist/foundations/interactions/interaction-policy.js +0 -120
- package/dist/foundations/interactions/pressable.d.ts +0 -60
- package/dist/foundations/interactions/pressable.js +0 -49
- package/dist/foundations/interactions/roving-focus.d.ts +0 -51
- package/dist/foundations/interactions/roving-focus.js +0 -69
- package/dist/foundations/state/controllable.d.ts +0 -32
- package/dist/foundations/state/controllable.js +0 -80
- package/dist/foundations/structures/collection.d.ts +0 -51
- package/dist/foundations/structures/collection.js +0 -49
- package/dist/foundations/structures/layer.d.ts +0 -80
- package/dist/foundations/structures/layer.js +0 -79
- package/dist/foundations/structures/layout.d.ts +0 -32
- package/dist/foundations/structures/layout.js +0 -11
- package/dist/foundations/structures/portal.d.ts +0 -2
- package/dist/foundations/structures/portal.js +0 -3
- package/dist/foundations/structures/presence.d.ts +0 -36
- package/dist/foundations/structures/presence.js +0 -37
- package/dist/foundations/structures/slot.d.ts +0 -34
- package/dist/foundations/structures/slot.js +0 -39
- package/dist/foundations/utilities/aria.d.ts +0 -15
- package/dist/foundations/utilities/aria.js +0 -15
- package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
- package/dist/foundations/utilities/compose-handlers.js +0 -18
- package/dist/foundations/utilities/compose-ref.js +0 -16
- package/dist/foundations/utilities/event-types.d.ts +0 -19
- package/dist/foundations/utilities/merge-props.d.ts +0 -4
- package/dist/foundations/utilities/merge-props.js +0 -47
- package/dist/foundations/utilities/use-id.d.ts +0 -31
- package/dist/fx/fx.d.ts +0 -32
- package/dist/fx/fx.js +0 -211
- package/dist/fx/noop.js +0 -7
- package/dist/fx/timing.d.ts +0 -158
- package/dist/fx/timing.js +0 -241
- package/dist/jsx/index.d.ts +0 -2
- package/dist/jsx/index.js +0 -4
- package/dist/jsx/types.js +0 -2
- package/dist/jsx/utils.d.ts +0 -4
- package/dist/jsx/utils.js +0 -17
- package/dist/jsx-runtime2.d.ts +0 -3
- package/dist/jsx-runtime2.js +0 -4
- package/dist/renderer/attributes.js +0 -254
- package/dist/renderer/boundaries.js +0 -142
- package/dist/renderer/boundary-materialization.js +0 -72
- package/dist/renderer/boundary-range-adoption.js +0 -76
- package/dist/renderer/boundary-range-sync.js +0 -101
- package/dist/renderer/boundary-state.js +0 -50
- package/dist/renderer/child-shape.js +0 -83
- package/dist/renderer/children-fastpath.js +0 -149
- package/dist/renderer/children.js +0 -158
- package/dist/renderer/cleanup.js +0 -267
- package/dist/renderer/component-host-cleanup.js +0 -143
- package/dist/renderer/component-host-instances.js +0 -116
- package/dist/renderer/component-host-replacement.js +0 -105
- package/dist/renderer/component-host-results.js +0 -138
- package/dist/renderer/component-host.js +0 -172
- package/dist/renderer/dom-host.js +0 -11
- package/dist/renderer/dom-internal.js +0 -243
- package/dist/renderer/dom-range.js +0 -161
- package/dist/renderer/dom.js +0 -11
- package/dist/renderer/element-children.js +0 -359
- package/dist/renderer/env.js +0 -2
- package/dist/renderer/error-boundary-dom.js +0 -86
- package/dist/renderer/evaluate-dom-range.js +0 -84
- package/dist/renderer/evaluate-reconcile.js +0 -257
- package/dist/renderer/evaluate.js +0 -95
- package/dist/renderer/fastpath.js +0 -142
- package/dist/renderer/for-commit-dom-map.js +0 -71
- package/dist/renderer/for-commit-removal.js +0 -27
- package/dist/renderer/for-commit-reorder.js +0 -87
- package/dist/renderer/for-commit.js +0 -442
- package/dist/renderer/hydration-boundaries.js +0 -60
- package/dist/renderer/hydration-listener-transaction.js +0 -49
- package/dist/renderer/index.js +0 -39
- package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
- package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
- package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
- package/dist/renderer/intrinsic-blueprint.js +0 -30
- package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
- package/dist/renderer/keyed-children.js +0 -26
- package/dist/renderer/keyed.js +0 -167
- package/dist/renderer/namespaces.js +0 -21
- package/dist/renderer/prop-bindings.js +0 -315
- package/dist/renderer/reactive-child-dom.js +0 -139
- package/dist/renderer/reactive-child-sources.js +0 -182
- package/dist/renderer/reactive-children.js +0 -303
- package/dist/renderer/reconcile-commit.js +0 -36
- package/dist/renderer/reconcile-fastpaths.js +0 -100
- package/dist/renderer/reconcile-resolution.js +0 -163
- package/dist/renderer/reconcile.js +0 -37
- package/dist/renderer/retained-element-rollback.js +0 -288
- package/dist/renderer/stable-patch.js +0 -80
- package/dist/renderer/static-reuse.js +0 -94
- package/dist/renderer/types.js +0 -2
- package/dist/renderer/utils.js +0 -265
- package/dist/router/access.js +0 -34
- package/dist/router/activity.d.ts +0 -9
- package/dist/router/activity.js +0 -85
- package/dist/router/authoring.d.ts +0 -21
- package/dist/router/authoring.js +0 -196
- package/dist/router/internal-types.d.ts +0 -30
- package/dist/router/lazy.d.ts +0 -18
- package/dist/router/lazy.js +0 -50
- package/dist/router/manifest.d.ts +0 -9
- package/dist/router/manifest.js +0 -47
- package/dist/router/match.js +0 -120
- package/dist/router/navigate.d.ts +0 -10
- package/dist/router/navigate.js +0 -73
- package/dist/router/navigation-registry.d.ts +0 -31
- package/dist/router/navigation-registry.js +0 -103
- package/dist/router/navigation-scroll.d.ts +0 -13
- package/dist/router/navigation-scroll.js +0 -91
- package/dist/router/navigation-targets.d.ts +0 -30
- package/dist/router/navigation-targets.js +0 -634
- package/dist/router/policy.d.ts +0 -27
- package/dist/router/policy.js +0 -130
- package/dist/router/rendering.d.ts +0 -9
- package/dist/router/rendering.js +0 -47
- package/dist/router/resolution.d.ts +0 -3
- package/dist/router/resolution.js +0 -84
- package/dist/router/route-context.js +0 -77
- package/dist/router/route-matching.d.ts +0 -19
- package/dist/router/route-matching.js +0 -173
- package/dist/router/route-query.d.ts +0 -16
- package/dist/router/route-query.js +0 -45
- package/dist/router/route.d.ts +0 -8
- package/dist/router/route.js +0 -10
- package/dist/router/store.d.ts +0 -49
- package/dist/router/store.js +0 -169
- package/dist/router/testing.js +0 -4
- package/dist/runtime/access.d.ts +0 -19
- package/dist/runtime/access.js +0 -43
- package/dist/runtime/child-scope.d.ts +0 -41
- package/dist/runtime/child-scope.js +0 -134
- package/dist/runtime/component-cleanup.d.ts +0 -15
- package/dist/runtime/component-cleanup.js +0 -68
- package/dist/runtime/component-commit.js +0 -167
- package/dist/runtime/component-facade.d.ts +0 -5
- package/dist/runtime/component-facade.js +0 -6
- package/dist/runtime/component-internal.d.ts +0 -105
- package/dist/runtime/component-internal.js +0 -237
- package/dist/runtime/component-lifecycle.d.ts +0 -10
- package/dist/runtime/component-lifecycle.js +0 -33
- package/dist/runtime/component-scope.d.ts +0 -54
- package/dist/runtime/component.d.ts +0 -5
- package/dist/runtime/component.js +0 -6
- package/dist/runtime/context.d.ts +0 -72
- package/dist/runtime/context.js +0 -236
- package/dist/runtime/control.d.ts +0 -62
- package/dist/runtime/control.js +0 -239
- package/dist/runtime/derive.d.ts +0 -16
- package/dist/runtime/derive.js +0 -140
- package/dist/runtime/dev-namespace.d.ts +0 -30
- package/dist/runtime/dev-namespace.js +0 -64
- package/dist/runtime/effect.d.ts +0 -35
- package/dist/runtime/error-boundary.d.ts +0 -4
- package/dist/runtime/error-boundary.js +0 -29
- package/dist/runtime/events.d.ts +0 -58
- package/dist/runtime/events.js +0 -201
- package/dist/runtime/execution-model.d.ts +0 -6
- package/dist/runtime/execution-model.js +0 -13
- package/dist/runtime/fastlane.d.ts +0 -33
- package/dist/runtime/fastlane.js +0 -173
- package/dist/runtime/for-bench.d.ts +0 -40
- package/dist/runtime/for-bench.js +0 -13
- package/dist/runtime/for-internal.d.ts +0 -106
- package/dist/runtime/for-internal.js +0 -285
- package/dist/runtime/for-reconcile.d.ts +0 -7
- package/dist/runtime/for-reconcile.js +0 -442
- package/dist/runtime/for-scopes.d.ts +0 -26
- package/dist/runtime/for-scopes.js +0 -280
- package/dist/runtime/for-signals.d.ts +0 -39
- package/dist/runtime/for-signals.js +0 -213
- package/dist/runtime/for-types.d.ts +0 -8
- package/dist/runtime/for.d.ts +0 -4
- package/dist/runtime/for.js +0 -5
- package/dist/runtime/index.d.ts +0 -24
- package/dist/runtime/index.js +0 -33
- package/dist/runtime/lifecycle-batch.d.ts +0 -59
- package/dist/runtime/lifecycle-batch.js +0 -178
- package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
- package/dist/runtime/lifecycle-operation-settlement.js +0 -51
- package/dist/runtime/lifecycle-operations.d.ts +0 -30
- package/dist/runtime/operations.d.ts +0 -3
- package/dist/runtime/operations.js +0 -3
- package/dist/runtime/perf-metrics.d.ts +0 -27
- package/dist/runtime/perf-metrics.js +0 -6
- package/dist/runtime/portal.d.ts +0 -21
- package/dist/runtime/readable.d.ts +0 -34
- package/dist/runtime/readable.js +0 -183
- package/dist/runtime/resource-cell.js +0 -112
- package/dist/runtime/resource-operation.d.ts +0 -12
- package/dist/runtime/runtime.js +0 -57
- package/dist/runtime/selector-store.js +0 -22
- package/dist/runtime/selector.d.ts +0 -10
- package/dist/runtime/snapshot-source.d.ts +0 -9
- package/dist/runtime/state.d.ts +0 -54
- package/dist/ssg/batch-render.js +0 -101
- package/dist/ssg/create-static-gen.d.ts +0 -66
- package/dist/ssg/create-static-gen.js +0 -250
- package/dist/ssg/generate-metadata.js +0 -92
- package/dist/ssg/generation-plan.js +0 -68
- package/dist/ssg/incremental-manifest.js +0 -54
- package/dist/ssg/resolve-ssg-data.js +0 -103
- package/dist/ssg/route-utils.js +0 -22
- package/dist/ssg/static-routes.js +0 -100
- package/dist/ssg/types.d.ts +0 -188
- package/dist/ssg/write-static-files.js +0 -77
- package/dist/ssr/attrs.js +0 -92
- package/dist/ssr/boundaries.js +0 -124
- package/dist/ssr/component-runtime.js +0 -85
- package/dist/ssr/context.d.ts +0 -49
- package/dist/ssr/context.js +0 -89
- package/dist/ssr/errors.d.ts +0 -9
- package/dist/ssr/errors.js +0 -12
- package/dist/ssr/escape.js +0 -191
- package/dist/ssr/hydration-data.js +0 -8
- package/dist/ssr/hydration-verify.d.ts +0 -11
- package/dist/ssr/hydration-verify.js +0 -171
- package/dist/ssr/index-internal.d.ts +0 -14
- package/dist/ssr/index-internal.js +0 -17
- package/dist/ssr/render-keys.js +0 -14
- package/dist/ssr/render-resolved.d.ts +0 -19
- package/dist/ssr/render-resolved.js +0 -33
- package/dist/ssr/render-sync.d.ts +0 -20
- package/dist/ssr/render-sync.js +0 -283
- package/dist/ssr/route-policy-resolution.js +0 -76
- package/dist/ssr/route-render.d.ts +0 -76
- package/dist/ssr/route-render.js +0 -118
- package/dist/ssr/sink.d.ts +0 -25
- package/dist/ssr/sink.js +0 -84
- package/dist/ssr/types.d.ts +0 -22
package/dist/ssg/index.d.ts
CHANGED
|
@@ -1,4 +1,252 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { c as RenderableChild, d as DocumentRenderContext, f as DocumentRenderer, s as ComponentFunction, u as DocumentRenderArgs } from "../control-BQvNVfAd.js";
|
|
2
|
+
import { E as RouteOptions, O as RoutePathParams, P as RouteRegistry, b as RouteHandler, k as RoutePolicy } from "../router-CeYvjj5_.js";
|
|
3
|
+
import { AuthRequirement } from "@askrjs/auth";
|
|
4
|
+
//#region src/ssg/types.d.ts
|
|
5
|
+
type SSGMode = 'full' | 'incremental';
|
|
6
|
+
type RouteRenderStatus = 'success' | 'error' | 'skipped' | 'removed';
|
|
7
|
+
type RouteRenderReason = 'full' | 'changed-key' | 'changed-route' | 'new-route' | 'no-keys' | 'unchanged' | 'deleted' | 'runtime-only';
|
|
8
|
+
type RouteConfigParams<Path extends string> = string extends Path ? Record<string, string> : RoutePathParams<Path>;
|
|
9
|
+
type RouteComponentProps<Path extends string> = RouteConfigParams<Path> & Record<string, unknown>;
|
|
10
|
+
type StaticRouteComponent<Path extends string> = (props: RouteComponentProps<Path>, context?: Parameters<ComponentFunction>[1]) => RenderableChild;
|
|
11
|
+
/**
|
|
12
|
+
* Route config accepted by SSG.
|
|
13
|
+
*
|
|
14
|
+
* `handler` is preferred and matches router/SSR naming.
|
|
15
|
+
* `component` is kept for compatibility and is normalized to `handler`.
|
|
16
|
+
*/
|
|
17
|
+
interface RouteConfig<Path extends string = string> {
|
|
18
|
+
/** URL path to generate (e.g., "/blog/post-1", "/") */
|
|
19
|
+
path: Path;
|
|
20
|
+
/** Route handler compatible with router/SSR */
|
|
21
|
+
handler?: RouteHandler;
|
|
22
|
+
/** Backward-compatible alias for handler */
|
|
23
|
+
component?: StaticRouteComponent<Path>;
|
|
24
|
+
/** Optional base props merged with route params during render */
|
|
25
|
+
props?: Record<string, unknown>;
|
|
26
|
+
/** Optional namespace for router compatibility */
|
|
27
|
+
namespace?: string;
|
|
28
|
+
/** Routes with request-auth requirements are runtime-only by default. */
|
|
29
|
+
auth?: AuthRequirement;
|
|
30
|
+
/** Advanced runtime access checks disable prerendering by default */
|
|
31
|
+
policies?: readonly RoutePolicy[];
|
|
32
|
+
/** Optional path parameter map for template paths like "/blog/{slug}" */
|
|
33
|
+
params?: RouteConfigParams<Path>;
|
|
34
|
+
/** Optional explicit invalidation keys for incremental generation */
|
|
35
|
+
invalidationKeys?: string[];
|
|
36
|
+
/** Route loader resolved completely before static HTML is rendered. */
|
|
37
|
+
loader?: RouteOptions['loader'];
|
|
38
|
+
/**
|
|
39
|
+
* SSG entry generator for parameterized routes.
|
|
40
|
+
*
|
|
41
|
+
* Return one param map per page to be generated. The path template is
|
|
42
|
+
* expanded with each map to produce a concrete URL, e.g.:
|
|
43
|
+
*
|
|
44
|
+
* ```ts
|
|
45
|
+
* route('/posts/{slug}', PostPage, {
|
|
46
|
+
* entries: async () => getPosts().map(p => ({ slug: p.slug })),
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
entries?: () => Array<RouteConfigParams<Path>> | Promise<Array<RouteConfigParams<Path>>>;
|
|
51
|
+
}
|
|
52
|
+
interface SSGBaseOptions {
|
|
53
|
+
/** Output directory for generated HTML files */
|
|
54
|
+
outputDir: string;
|
|
55
|
+
/** Optional seed for deterministic rendering */
|
|
56
|
+
seed?: number;
|
|
57
|
+
/** Optional override data for resources (route-keyed) */
|
|
58
|
+
dataOverrides?: Record<string, unknown>;
|
|
59
|
+
/** Optional document wrapper for full HTML output */
|
|
60
|
+
document?: DocumentRenderer;
|
|
61
|
+
/** Static files or directories published with the generated routes. */
|
|
62
|
+
assets?: readonly SSGAssetSource[];
|
|
63
|
+
/** Optional concurrency limit for rendering (default: 1) */
|
|
64
|
+
concurrency?: number;
|
|
65
|
+
/** Preferred render parallelism. `'auto'` resolves from the host machine. */
|
|
66
|
+
parallelism?: number | 'auto';
|
|
67
|
+
}
|
|
68
|
+
interface SSGAssetSource {
|
|
69
|
+
/** Source file or directory. Relative paths resolve from the current working directory. */
|
|
70
|
+
from: string;
|
|
71
|
+
/** Destination relative to outputDir. Defaults to the source basename. */
|
|
72
|
+
to?: string;
|
|
73
|
+
}
|
|
74
|
+
/** Options for createStaticGen */
|
|
75
|
+
type SSGOptions<TRoutes extends readonly RouteConfig[] = RouteConfig[]> = SSGBaseOptions & ({
|
|
76
|
+
/** Routes to generate. Prefer `registry` when routes are already defined through the router DSL. */routes: TRoutes;
|
|
77
|
+
registry?: never;
|
|
78
|
+
} | {
|
|
79
|
+
/** Explicit route registry captured with `createRouteRegistry()`. */registry: RouteRegistry;
|
|
80
|
+
routes?: never;
|
|
81
|
+
});
|
|
82
|
+
/** Options for a single generation run */
|
|
83
|
+
interface SSGGenerateOptions {
|
|
84
|
+
/** Generation mode */
|
|
85
|
+
mode?: SSGMode;
|
|
86
|
+
/** Changed invalidation keys for incremental runs */
|
|
87
|
+
changedKeys?: string[];
|
|
88
|
+
/** Changed concrete route paths for incremental runs */
|
|
89
|
+
changedRoutes?: string[];
|
|
90
|
+
/** Force a full rebuild even when incremental mode was requested */
|
|
91
|
+
forceFull?: boolean;
|
|
92
|
+
}
|
|
93
|
+
/** Result of rendering a single route */
|
|
94
|
+
interface RouteRenderResult {
|
|
95
|
+
/** URL path */
|
|
96
|
+
path: string;
|
|
97
|
+
/** Output file path relative to outputDir */
|
|
98
|
+
filePath: string;
|
|
99
|
+
/** Generated HTML content */
|
|
100
|
+
html: string;
|
|
101
|
+
/** File size in bytes */
|
|
102
|
+
fileSize: number;
|
|
103
|
+
/** Render duration in milliseconds */
|
|
104
|
+
renderDuration: number;
|
|
105
|
+
/** Number of resources discovered and rendered */
|
|
106
|
+
resourceCount: number;
|
|
107
|
+
/** Render or generation status */
|
|
108
|
+
status: RouteRenderStatus;
|
|
109
|
+
/** Why this route was rendered, skipped, or removed */
|
|
110
|
+
reason: RouteRenderReason;
|
|
111
|
+
/** Whether the output file was written during this run */
|
|
112
|
+
written: boolean;
|
|
113
|
+
/** Error message if rendering failed */
|
|
114
|
+
error?: string;
|
|
115
|
+
}
|
|
116
|
+
/** Overall result from SSG generation */
|
|
117
|
+
interface SSGResult {
|
|
118
|
+
/** ISO timestamp of generation */
|
|
119
|
+
generatedAt: string;
|
|
120
|
+
/** Total number of routes processed */
|
|
121
|
+
totalRoutes: number;
|
|
122
|
+
/** Number of successfully generated routes */
|
|
123
|
+
successful: number;
|
|
124
|
+
/** Number of failed routes */
|
|
125
|
+
failed: number;
|
|
126
|
+
/** Total generation duration in milliseconds */
|
|
127
|
+
totalDuration: number;
|
|
128
|
+
/** Effective generation mode */
|
|
129
|
+
mode: SSGMode;
|
|
130
|
+
/** Number of routes rendered during this run */
|
|
131
|
+
rebuilt: number;
|
|
132
|
+
/** Number of current routes skipped as unchanged */
|
|
133
|
+
skipped: number;
|
|
134
|
+
/** Number of stale routes removed from output */
|
|
135
|
+
removed: number;
|
|
136
|
+
/** Number of rendered routes whose HTML bytes were unchanged */
|
|
137
|
+
cacheHits: number;
|
|
138
|
+
/** Invalidation keys applied to this run */
|
|
139
|
+
invalidatedKeys: string[];
|
|
140
|
+
/** Concrete route paths applied to this run */
|
|
141
|
+
invalidatedRoutes: string[];
|
|
142
|
+
/** Per-route results */
|
|
143
|
+
routes: RouteRenderResult[];
|
|
144
|
+
}
|
|
145
|
+
/** Metadata to write to metadata.json */
|
|
146
|
+
interface SSGMetadata extends Record<string, unknown> {
|
|
147
|
+
/** ISO timestamp of generation */
|
|
148
|
+
generatedAt: string;
|
|
149
|
+
/** Total number of routes processed */
|
|
150
|
+
totalRoutes: number;
|
|
151
|
+
/** Number of successfully generated routes */
|
|
152
|
+
successful: number;
|
|
153
|
+
/** Number of failed routes */
|
|
154
|
+
failed: number;
|
|
155
|
+
/** Total generation duration in milliseconds */
|
|
156
|
+
totalDuration: number;
|
|
157
|
+
/** Effective generation mode */
|
|
158
|
+
mode: SSGMode;
|
|
159
|
+
/** Number of routes rendered during this run */
|
|
160
|
+
rebuilt: number;
|
|
161
|
+
/** Number of current routes skipped as unchanged */
|
|
162
|
+
skipped: number;
|
|
163
|
+
/** Number of stale routes removed from output */
|
|
164
|
+
removed: number;
|
|
165
|
+
/** Number of rendered routes whose HTML bytes were unchanged */
|
|
166
|
+
cacheHits: number;
|
|
167
|
+
/** Invalidation keys applied to this run */
|
|
168
|
+
invalidatedKeys: string[];
|
|
169
|
+
/** Concrete route paths applied to this run */
|
|
170
|
+
invalidatedRoutes: string[];
|
|
171
|
+
/** Per-route details */
|
|
172
|
+
routes: Array<{
|
|
173
|
+
/** URL path */path: string; /** Output file path relative to outputDir */
|
|
174
|
+
filePath: string; /** File size in bytes */
|
|
175
|
+
fileSize: number; /** Render duration in milliseconds */
|
|
176
|
+
renderDuration: number; /** Number of resources discovered and rendered */
|
|
177
|
+
resourceCount: number; /** Render or generation status */
|
|
178
|
+
status: RouteRenderStatus; /** Why this route was rendered, skipped, or removed */
|
|
179
|
+
reason: RouteRenderReason; /** Whether the output file was written during this run */
|
|
180
|
+
written: boolean; /** Error message if rendering failed */
|
|
181
|
+
error?: string;
|
|
182
|
+
}>;
|
|
183
|
+
}
|
|
184
|
+
/** Resource discovery result for a single route */
|
|
185
|
+
interface DiscoveredResources {
|
|
186
|
+
[key: string]: {
|
|
187
|
+
count: number;
|
|
188
|
+
dependencies: string[];
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//#endregion
|
|
192
|
+
//#region src/ssg/create-static-gen.d.ts
|
|
193
|
+
type AnyRouteConfig = RouteConfig<string>;
|
|
194
|
+
type StrictRouteConfig<TRoute extends AnyRouteConfig> = Omit<TRoute, 'params' | 'entries'> & {
|
|
195
|
+
params?: RouteConfig<TRoute['path']>['params'];
|
|
196
|
+
entries?: RouteConfig<TRoute['path']>['entries'];
|
|
197
|
+
};
|
|
198
|
+
type StrictRouteConfigs<TRoutes extends readonly AnyRouteConfig[]> = { [TIndex in keyof TRoutes]: TRoutes[TIndex] extends AnyRouteConfig ? StrictRouteConfig<TRoutes[TIndex]> : never };
|
|
199
|
+
type StaticGenRouteSource<TRoutes extends readonly AnyRouteConfig[]> = {
|
|
200
|
+
routes: TRoutes & StrictRouteConfigs<TRoutes>;
|
|
201
|
+
registry?: never;
|
|
202
|
+
} | {
|
|
203
|
+
registry: RouteRegistry;
|
|
204
|
+
routes?: never;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Create a Static Site Generator
|
|
208
|
+
*
|
|
209
|
+
* Usage:
|
|
210
|
+
* ```ts
|
|
211
|
+
* const ssg = createStaticGen({
|
|
212
|
+
* routes: [
|
|
213
|
+
* { path: '/', component: HomePage },
|
|
214
|
+
* { path: '/about', component: AboutPage },
|
|
215
|
+
* ],
|
|
216
|
+
* outputDir: './dist',
|
|
217
|
+
* dataOverrides: {
|
|
218
|
+
* '/api/posts': { posts: [...] }
|
|
219
|
+
* }
|
|
220
|
+
* });
|
|
221
|
+
*
|
|
222
|
+
* const result = await ssg.generate();
|
|
223
|
+
* console.log(`Generated ${result.successful}/${result.totalRoutes} routes`);
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
declare function createStaticGen<const TRoutes extends readonly AnyRouteConfig[]>(options: Omit<SSGOptions<TRoutes>, 'routes' | 'registry'> & StaticGenRouteSource<TRoutes>): {
|
|
227
|
+
/**
|
|
228
|
+
* Generate static HTML for all routes
|
|
229
|
+
* Writes to outputDir with metadata.json
|
|
230
|
+
* Returns detailed results
|
|
231
|
+
*/
|
|
232
|
+
generate(generateOptions?: SSGGenerateOptions): Promise<SSGResult>;
|
|
233
|
+
/**
|
|
234
|
+
* Get effective config in a serializable form for diagnostics.
|
|
235
|
+
*/
|
|
236
|
+
getConfig(): {
|
|
237
|
+
routeCount: number;
|
|
238
|
+
outputDir: string;
|
|
239
|
+
seed: number;
|
|
240
|
+
concurrency: number;
|
|
241
|
+
parallelism: number;
|
|
242
|
+
hasDataOverrides: boolean;
|
|
243
|
+
assetCount: number;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Get the last generation result
|
|
247
|
+
* Returns null if generate() hasn't been called
|
|
248
|
+
*/
|
|
249
|
+
getResult(): SSGResult | null;
|
|
250
|
+
};
|
|
251
|
+
//#endregion
|
|
252
|
+
export { type DiscoveredResources, type DocumentRenderArgs, type DocumentRenderContext, type DocumentRenderer, type RouteConfig, type RouteRenderReason, type RouteRenderResult, type RouteRenderStatus, type SSGAssetSource, type SSGGenerateOptions, type SSGMetadata, type SSGMode, type SSGOptions, type SSGResult, createStaticGen };
|