@askrjs/askr 0.2.2 → 0.2.4
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/CHANGELOG.md +10 -0
- package/README.md +32 -4
- package/dist/{access-d_DCdwqn.js → access-BucjYZcX.js} +15 -10
- package/dist/actions/index.d.ts +1 -1
- package/dist/actions/index.js +5 -4
- package/dist/{activity-CAJ5eho-.d.ts → activity-DooIuxQO.d.ts} +2 -2
- package/dist/{activity-B2Yy7Wz9.js → activity-FirwPXA_.js} +14 -2
- package/dist/{compose-ref-1Fhs7mbF.js → aria-hKjThHcp.js} +1 -18
- package/dist/benchmark.d.ts +1 -1
- package/dist/benchmark.js +8 -8
- package/dist/boot/index.d.ts +4 -2
- package/dist/boot/index.js +1 -1
- package/dist/{boot-DVwjHCNh.js → boot-tWyF6121.js} +14 -15
- package/dist/{cleanup-DPtpXtA4.js → cleanup-TXSsApEl.js} +6 -11
- package/dist/{component-cleanup-DPe8claJ.js → component-cleanup-jdbgjkT1.js} +2 -2
- package/dist/{component-internal-xW_OnTmC.js → component-internal-C4hKKQBF.js} +16 -7
- package/dist/components/index.d.ts +2 -2
- package/dist/compose-ref-Bfaf4kUC.js +20 -0
- package/dist/control/index.d.ts +1 -1
- package/dist/control/index.js +1 -1
- package/dist/{control-BLVTE1gO.js → control-C-wSaq9V.js} +4 -4
- package/dist/{control-DdFw-Caz.d.ts → control-Cxag1yqV.d.ts} +1 -1
- package/dist/{csp-nonce-CCnMtOW-.js → csp-nonce-9NFUb7hJ.js} +1 -1
- package/dist/data/index.d.ts +1 -1
- package/dist/data/index.js +1 -1
- package/dist/{data-BjUf0PPS.js → data-ghKopAbp.js} +49 -49
- package/dist/{deferred-BRw0gbn5.js → deferred-CxjWCkIn.js} +2 -2
- package/dist/{effect-BQP5o0Kx.js → effect-CNwstBBD.js} +2 -2
- package/dist/{fastlane-DUxiFV9S.js → fastlane-BKZduiBQ.js} +2 -2
- package/dist/{for-internal-DKcYl3nl.js → for-internal-DyBHfKJA.js} +33 -25
- package/dist/foundations/icon/index.d.ts +1 -1
- package/dist/foundations/index.d.ts +2 -2
- package/dist/foundations/index.js +1 -1
- package/dist/foundations/interactions/index.d.ts +1 -1
- package/dist/foundations/interactions/index.js +1 -1
- package/dist/foundations/state/index.d.ts +1 -1
- package/dist/foundations/state/index.js +1 -1
- package/dist/foundations/structures/index.d.ts +2 -2
- package/dist/foundations/structures/index.js +1 -1
- package/dist/foundations/utilities/index.d.ts +1 -1
- package/dist/foundations/utilities/index.js +2 -1
- package/dist/fx/index.d.ts +1 -1
- package/dist/fx/index.js +1 -1
- package/dist/{index-CzH-0LcA.d.ts → index-B1gu0_m0.d.ts} +2 -0
- package/dist/{index-r5THqzPN.d.ts → index-CTpMmzgN.d.ts} +2 -2
- package/dist/{index-DSqXWc77.d.ts → index-Dgjbo2gU.d.ts} +58 -4
- package/dist/index.d.ts +3 -3
- package/dist/index.js +10 -10
- package/dist/{interactions-B-7vkBgx.js → interactions-D102JxBR.js} +10 -3
- package/dist/jsx-dev-runtime.d.ts +2 -2
- package/dist/jsx-runtime-Cg7GqY1S.d.ts +2 -0
- package/dist/{jsx-runtime-Cdd6Gkb0.d.ts → jsx-runtime-gVIaTPw0.d.ts} +2 -2
- package/dist/jsx-runtime.d.ts +2 -2
- package/dist/{lifecycle-batch-BYECQw8T.js → lifecycle-batch-63aXFf2S.js} +2 -2
- package/dist/{lifecycle-operations-DJk_5MrD.js → lifecycle-operations-Q0k3EFnG.js} +94 -2
- package/dist/{navigate-wel1e6cU.d.ts → navigate-F4sHgWbw.d.ts} +3 -1
- package/dist/{navigate-DvJvo--6.js → navigate-ZZu1IV0B.js} +88 -13
- package/dist/{readable-D-JIKCg2.js → readable-Di1fzSwm.js} +1 -1
- package/dist/{renderer-RjZ8LHbt.js → renderer-Cl23O0hV.js} +154 -137
- package/dist/{resolution-dVYwYXrI.js → resolution-ClD-K7Lz.js} +3 -3
- package/dist/{resource-operation-4qFIM02d.js → resource-operation-Vz1S5h2k.js} +4 -4
- package/dist/resources/index.d.ts +3 -37
- package/dist/resources/index.js +6 -6
- package/dist/router/index.d.ts +4 -4
- package/dist/router/index.js +7 -7
- package/dist/{selector-NQiYHwZC.js → selector-CsKuomw0.js} +17 -16
- package/dist/shared-CYBH3F8I.js +27 -0
- package/dist/ssg/index.d.ts +1 -1
- package/dist/ssg/index.js +4 -4
- package/dist/ssr/index.d.ts +8 -2
- package/dist/ssr/index.js +1 -1
- package/dist/{ssr-F87AcFMt.js → ssr-Doog-AfJ.js} +26 -15
- package/dist/{state-Ks-sWTQi.js → state-BGJgYSyQ.js} +3 -3
- package/dist/{structures-C-wmHCi6.js → structures-DFyK5AdQ.js} +4 -4
- package/dist/testing/index.d.ts +3 -1
- package/dist/testing/index.js +6 -5
- package/dist/{types-DkVJhVs9.d.ts → types-DWVrKn9N.d.ts} +5 -0
- package/dist/{verify-hydration-CThsx0pq.js → verify-hydration-BZPJ_kYa.js} +1 -1
- package/package.json +7 -7
- package/dist/jsx-runtime-BTzDdBJ_.d.ts +0 -2
package/dist/ssg/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "../access-
|
|
1
|
+
import "../access-BucjYZcX.js";
|
|
2
2
|
import { n as createRouteRegistry } from "../manifest-D6rfj_jC.js";
|
|
3
3
|
import { o as addRouteBasePath } from "../route-matching-Bo6UqG-5.js";
|
|
4
|
-
import { c as route, n as resolveDeferredValues } from "../deferred-
|
|
5
|
-
import { S as RouteDataLoadError, c as prepareRouteHydrationData, t as bindResolvedRouteData, v as getRenderHandler, y as _preloadRouteHandler } from "../resolution-
|
|
4
|
+
import { c as route, n as resolveDeferredValues } from "../deferred-CxjWCkIn.js";
|
|
5
|
+
import { S as RouteDataLoadError, c as prepareRouteHydrationData, t as bindResolvedRouteData, v as getRenderHandler, y as _preloadRouteHandler } from "../resolution-ClD-K7Lz.js";
|
|
6
6
|
import { n as renderDocument } from "../ssr-DSHd_Q9K.js";
|
|
7
|
-
import { n as renderToString } from "../ssr-
|
|
7
|
+
import { n as renderToString } from "../ssr-Doog-AfJ.js";
|
|
8
8
|
import * as fs from "node:fs/promises";
|
|
9
9
|
import * as pathModule from "node:path";
|
|
10
10
|
import * as os from "node:os";
|
package/dist/ssr/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as JSXElement, s as Props } from "../types-
|
|
1
|
+
import { An as SSRStyleRegistrationValidation, D as SSRPortalState, Dn as DocumentRenderer, E as DeferredBoundaryRegistration, En as DocumentRenderContext, Et as RouteAuthOptions, Kt as RouteRegistry, Mt as RouteHandler, On as SSRData, Tn as DocumentRenderArgs, Tt as Route, Ut as RouteRecord, Xt as RouteRequestResult, c as ServerQueryRegistry, en as CoreTelemetry, gt as AccessDenyDecision, hn as QueryPrefetchContext, kn as SSRStyleRegistration, tn as DataRuntime, vt as AccessRedirectDecision } from "../index-Dgjbo2gU.js";
|
|
2
|
+
import { r as JSXElement, s as Props } from "../types-DWVrKn9N.js";
|
|
3
3
|
import { AuthContext } from "@askrjs/auth";
|
|
4
4
|
//#region src/common/page-render-envelope.d.ts
|
|
5
5
|
declare const PAGE_RENDER_ENVELOPE_VERSION: 1;
|
|
@@ -51,6 +51,7 @@ declare function createRenderContext(seed?: number, opts?: {
|
|
|
51
51
|
params?: Record<string, string>;
|
|
52
52
|
routes?: readonly Route[];
|
|
53
53
|
routeAuth?: RouteAuthOptions;
|
|
54
|
+
authContext?: AuthContext;
|
|
54
55
|
basePath?: string;
|
|
55
56
|
signal?: AbortSignal;
|
|
56
57
|
dataRuntime?: unknown;
|
|
@@ -85,6 +86,9 @@ type SSRRouteSource = {
|
|
|
85
86
|
};
|
|
86
87
|
type RouteRenderOptions = SSRRouteSource & {
|
|
87
88
|
url: string;
|
|
89
|
+
auth?: RouteAuthOptions;
|
|
90
|
+
authContext?: AuthContext;
|
|
91
|
+
signal?: AbortSignal;
|
|
88
92
|
seed?: number;
|
|
89
93
|
data?: SSRData;
|
|
90
94
|
document?: DocumentRenderer;
|
|
@@ -137,6 +141,8 @@ declare function renderToStringSync(component: (props?: Record<string, unknown>)
|
|
|
137
141
|
/** @internal A composed page render envelope. */
|
|
138
142
|
envelope?: PageRenderEnvelope;
|
|
139
143
|
cspNonce?: string;
|
|
144
|
+
/** @internal Request-local authentication for deferred SSR passes. */
|
|
145
|
+
authContext?: import('@askrjs/auth').AuthContext;
|
|
140
146
|
/** @internal Capture request-local registrations produced by this pass. */
|
|
141
147
|
onContext?: (ctx: RenderContext) => void;
|
|
142
148
|
}): string;
|
package/dist/ssr/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { C as SSRDataMissingError } from "../render-context-B7ohlh6t.js";
|
|
2
|
-
import { a as renderResolvedToStringSync, c as createRenderContext, d as withRenderContextAsync, i as renderRouteRequestToString, l as getRenderContext, n as renderToString, o as renderToStringSync, r as renderRouteRequest, s as resolveRequest, t as renderToStream, u as withRenderContext } from "../ssr-
|
|
2
|
+
import { a as renderResolvedToStringSync, c as createRenderContext, d as withRenderContextAsync, i as renderRouteRequestToString, l as getRenderContext, n as renderToString, o as renderToStringSync, r as renderRouteRequest, s as resolveRequest, t as renderToStream, u as withRenderContext } from "../ssr-Doog-AfJ.js";
|
|
3
3
|
export { SSRDataMissingError, createRenderContext, getRenderContext, renderResolvedToStringSync, renderRouteRequest, renderRouteRequestToString, renderToStream, renderToString, renderToStringSync, resolveRequest, withRenderContext, withRenderContextAsync };
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { t as __CONTROL_BOUNDARY__ } from "./control-C-ApnFs1.js";
|
|
2
2
|
import { t as __ERROR_BOUNDARY__ } from "./vnode-D24p6IW2.js";
|
|
3
|
-
import { y as logger } from "./access-
|
|
3
|
+
import { y as logger } from "./access-BucjYZcX.js";
|
|
4
4
|
import { f as getCurrentComponentInstance, w as setCurrentComponentInstance } from "./component-scope-4I3yEMkb.js";
|
|
5
5
|
import { i as isFragmentType, n as Fragment, t as ELEMENT_TYPE } from "./jsx-DRS-qjiN.js";
|
|
6
|
-
import {
|
|
7
|
-
import { t as cleanupComponent } from "./component-cleanup-
|
|
8
|
-
import { p as isPromiseLike } from "./lifecycle-batch-
|
|
9
|
-
import { _ as setControlBoundaryContextFrame, g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, o as rollbackForStateTransaction, r as commitForStateTransaction } from "./for-internal-
|
|
6
|
+
import { _ as getVNodeContextFrame, g as getExecutionContextFrame, n as createComponentInstance, p as callWithContext, y as markVNodeTreeWithContextFrame } from "./component-internal-C4hKKQBF.js";
|
|
7
|
+
import { t as cleanupComponent } from "./component-cleanup-jdbgjkT1.js";
|
|
8
|
+
import { p as isPromiseLike } from "./lifecycle-batch-63aXFf2S.js";
|
|
9
|
+
import { _ as setControlBoundaryContextFrame, g as evaluateShowState, h as evaluateCaseState, i as evaluateForState, o as rollbackForStateTransaction, r as commitForStateTransaction } from "./for-internal-DyBHfKJA.js";
|
|
10
10
|
import { C as SSRDataMissingError, _ as isEmptyPageRenderEnvelope, f as stopRenderPhase$1, h as createPageRenderEnvelope, t as configureRenderContextProvider, u as startRenderPhase$1, v as isPageRenderEnvelope, x as withHydrationRenderUrl } from "./render-context-B7ohlh6t.js";
|
|
11
11
|
import { n as getPublicAttributeName, t as sanitizeCssValue } from "./css-BuPaTOfe.js";
|
|
12
|
-
import { o as isUnsafeUrlAttribute, r as validateCspNonce, t as CspNonceScope } from "./csp-nonce-
|
|
12
|
+
import { o as isUnsafeUrlAttribute, r as validateCspNonce, t as CspNonceScope } from "./csp-nonce-9NFUb7hJ.js";
|
|
13
13
|
import { n as SSR_PORTAL_HOST, t as SSR_PORTAL_ANCHOR } from "./portal-w3oQ6oQU.js";
|
|
14
14
|
import { t as createDataRuntime } from "./data-runtime-7t_Y0iv3.js";
|
|
15
15
|
import { c as withTelemetry, i as dehydrateDataRuntime, t as createQueryPrefetchContext } from "./query-registry-Bua3cDyb.js";
|
|
16
16
|
import { a as resolveRouteFromRoutes, c as removeRouteBasePath, s as normalizeRouteBasePath, t as _resolveRouteMatchFromRoutes } from "./route-matching-Bo6UqG-5.js";
|
|
17
|
-
import { a as resolveRouteRequest, d as DEFERRED_BOUNDARY, l as validateRouteHydrationData, o as getRouteHydrationMetadata, p as isDeferred } from "./resolution-
|
|
17
|
+
import { a as resolveRouteRequest, d as DEFERRED_BOUNDARY, l as validateRouteHydrationData, n as getRouteRenderContext, o as getRouteHydrationMetadata, p as isDeferred } from "./resolution-ClD-K7Lz.js";
|
|
18
18
|
import { n as disposeRegisteredDefaultPortalScope, r as getDefaultPortalHost } from "./default-portal-runtime-DvMvWJVp.js";
|
|
19
19
|
import { n as renderDocument, t as SSR_RENDER_DATA_ATTR } from "./ssr-DSHd_Q9K.js";
|
|
20
20
|
//#region src/ssr/escape.ts
|
|
@@ -198,6 +198,7 @@ function createRenderContext(seed = 12345, opts = {}) {
|
|
|
198
198
|
params: opts.params,
|
|
199
199
|
routes: opts.routes,
|
|
200
200
|
routeAuth: opts.routeAuth,
|
|
201
|
+
authContext: opts.authContext,
|
|
201
202
|
basePath: opts.basePath,
|
|
202
203
|
signal: opts.signal,
|
|
203
204
|
dataRuntime: opts.dataRuntime ?? createDataRuntime({ queryCache }),
|
|
@@ -317,7 +318,11 @@ function resolvePolicyAwareSSRRoute(opts, routeTable) {
|
|
|
317
318
|
if (!matched) throw new Error(`SSR: no route found for url: ${href}`);
|
|
318
319
|
const resolved = getRouteRequestResultSync(resolveRouteRequest(href, {
|
|
319
320
|
registry: opts.registry,
|
|
320
|
-
mode: "ssr"
|
|
321
|
+
mode: "ssr",
|
|
322
|
+
auth: opts.auth,
|
|
323
|
+
authContext: opts.authContext,
|
|
324
|
+
request: opts.request,
|
|
325
|
+
signal: opts.signal
|
|
321
326
|
}));
|
|
322
327
|
if (resolved === null) throw new Error(`SSR: no route found for url: ${href}`);
|
|
323
328
|
if (resolved.kind === "redirect") {
|
|
@@ -340,7 +345,8 @@ function resolvePolicyAwareSSRRoute(opts, routeTable) {
|
|
|
340
345
|
...matched.route,
|
|
341
346
|
handler: routeHasSSRLoader(manifest, matched.route) ? resolved.handler : matched.route.handler
|
|
342
347
|
},
|
|
343
|
-
params: matched.params
|
|
348
|
+
params: matched.params,
|
|
349
|
+
authContext: getRouteRenderContext(resolved)?.auth
|
|
344
350
|
};
|
|
345
351
|
}
|
|
346
352
|
throw new Error(`[Askr] SSR redirect limit exceeded (${MAX_SSR_REDIRECTS}).`);
|
|
@@ -464,8 +470,11 @@ function resolveSSRRouteRender(opts) {
|
|
|
464
470
|
data,
|
|
465
471
|
params: resolvedRoute.params,
|
|
466
472
|
routes: routeTable,
|
|
473
|
+
routeAuth: opts.auth ?? opts.registry.manifest.auth,
|
|
474
|
+
signal: opts.signal ?? opts.request?.signal,
|
|
467
475
|
dataRuntime: opts.dataRuntime,
|
|
468
476
|
queryPrefetch: opts.queryPrefetch,
|
|
477
|
+
authContext: resolvedRoute.authContext,
|
|
469
478
|
envelope: opts.envelope,
|
|
470
479
|
cspNonce
|
|
471
480
|
});
|
|
@@ -1194,7 +1203,8 @@ function renderToStringSync(component, props, options) {
|
|
|
1194
1203
|
const ctx = createRenderContext(seed, {
|
|
1195
1204
|
data: options?.data,
|
|
1196
1205
|
envelope: options?.envelope,
|
|
1197
|
-
cspNonce: nonce
|
|
1206
|
+
cspNonce: nonce,
|
|
1207
|
+
authContext: options?.authContext
|
|
1198
1208
|
});
|
|
1199
1209
|
return withRenderContext(ctx, () => {
|
|
1200
1210
|
startRenderPhase(ctx.renderData);
|
|
@@ -1322,13 +1332,14 @@ function settleWithSignal(promise, signal) {
|
|
|
1322
1332
|
function stripHydrationPayload(html) {
|
|
1323
1333
|
return html.replace(/<script type="application\/json" data-askr-render-data="true">[\s\S]*?<\/script>$/, "");
|
|
1324
1334
|
}
|
|
1325
|
-
function renderBoundary(boundary, state, payload, seed, data, cspNonce) {
|
|
1335
|
+
function renderBoundary(boundary, state, payload, seed, data, cspNonce, authContext) {
|
|
1326
1336
|
const styles = [];
|
|
1327
1337
|
return {
|
|
1328
1338
|
html: stripHydrationPayload(renderToStringSync(() => state === "fulfilled" ? boundary.fulfilled(payload) : boundary.rejected(payload), {}, {
|
|
1329
1339
|
seed,
|
|
1330
1340
|
envelope: data ?? void 0,
|
|
1331
1341
|
cspNonce,
|
|
1342
|
+
authContext,
|
|
1332
1343
|
onContext: (context) => styles.push(...context.ssrStyles.values())
|
|
1333
1344
|
})),
|
|
1334
1345
|
styles
|
|
@@ -1344,7 +1355,7 @@ function patchChunk(id, html, styles, cspNonce) {
|
|
|
1344
1355
|
const selector = `askr-resolve[data-askr-deferred=${JSON.stringify(id)}]`;
|
|
1345
1356
|
return `${styles.length === 0 ? "" : `<style data-askr-style-registry="true" data-askr-deferred-style="true"${cspNonce ? ` nonce="${escapeHtmlAttribute(cspNonce)}"` : ""}>${escapeStyleRawText(styles.map((style) => style.cssText).join("\n"))}\n</style>`}<template data-askr-deferred-patch="${escapeHtmlAttribute(id)}">${html}</template><script${cspNonce ? ` nonce="${escapeHtmlAttribute(cspNonce)}"` : ""} data-askr-deferred-apply="${escapeHtmlAttribute(id)}">(function(s){var t=s.previousElementSibling;var c=t&&t.previousElementSibling;var r=document.querySelector('style[data-askr-style-registry="true"]:not([data-askr-deferred-style])');if(c&&c.tagName==='STYLE'&&r&&r!==c){r.append(c.textContent||'');c.remove();}else if(c&&c.tagName==='STYLE'){c.removeAttribute('data-askr-deferred-style');}var b=document.querySelector(${JSON.stringify(selector)});if(b&&t){b.replaceWith(t.content.cloneNode(true));}if(t)t.remove();s.remove();})(document.currentScript)<\/script>`;
|
|
1346
1357
|
}
|
|
1347
|
-
function createDeferredRenderStream(initialHtml, boundaries, signal, seed, data, runtime, cspNonce) {
|
|
1358
|
+
function createDeferredRenderStream(initialHtml, boundaries, signal, seed, data, runtime, cspNonce, authContext) {
|
|
1348
1359
|
const encoder = new TextEncoder();
|
|
1349
1360
|
const local = new AbortController();
|
|
1350
1361
|
let cancelled = false;
|
|
@@ -1381,7 +1392,7 @@ function createDeferredRenderStream(initialHtml, boundaries, signal, seed, data,
|
|
|
1381
1392
|
try {
|
|
1382
1393
|
const value = await settleWithSignal(boundary.promise, local.signal);
|
|
1383
1394
|
if (!cancelled && !closed) {
|
|
1384
|
-
const rendered = renderBoundary(boundary, "fulfilled", value, seed, data, cspNonce);
|
|
1395
|
+
const rendered = renderBoundary(boundary, "fulfilled", value, seed, data, cspNonce, authContext);
|
|
1385
1396
|
controller.enqueue(encoder.encode(patchChunk(boundary.id, rendered.html, rendered.styles, cspNonce)));
|
|
1386
1397
|
}
|
|
1387
1398
|
} catch (error) {
|
|
@@ -1390,7 +1401,7 @@ function createDeferredRenderStream(initialHtml, boundaries, signal, seed, data,
|
|
|
1390
1401
|
return;
|
|
1391
1402
|
}
|
|
1392
1403
|
if (!cancelled && !closed) {
|
|
1393
|
-
const rendered = renderBoundary(boundary, "rejected", error, seed, data, cspNonce);
|
|
1404
|
+
const rendered = renderBoundary(boundary, "rejected", error, seed, data, cspNonce, authContext);
|
|
1394
1405
|
controller.enqueue(encoder.encode(patchChunk(boundary.id, rendered.html, rendered.styles, cspNonce)));
|
|
1395
1406
|
}
|
|
1396
1407
|
}
|
|
@@ -1480,7 +1491,7 @@ async function renderRouteRequestInternal(options) {
|
|
|
1480
1491
|
kind: "render",
|
|
1481
1492
|
html,
|
|
1482
1493
|
styles: Array.from(context.ssrStyles.values()),
|
|
1483
|
-
...boundaries.length > 0 ? { stream: createDeferredRenderStream(html, boundaries, signal, options.seed, context.hydrationData, runtime, cspNonce) } : {},
|
|
1494
|
+
...boundaries.length > 0 ? { stream: createDeferredRenderStream(html, boundaries, signal, options.seed, context.hydrationData, runtime, cspNonce, context.authContext) } : {},
|
|
1484
1495
|
params: resolved.params
|
|
1485
1496
|
};
|
|
1486
1497
|
if (resolved.record) Object.defineProperty(result, "record", {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { S as isProductionEnvironment } from "./access-
|
|
2
|
-
import { n as isBulkCommitActive, t as deferBulkCommitReadableNotification } from "./fastlane-
|
|
1
|
+
import { S as isProductionEnvironment } from "./access-BucjYZcX.js";
|
|
2
|
+
import { n as isBulkCommitActive, t as deferBulkCommitReadableNotification } from "./fastlane-BKZduiBQ.js";
|
|
3
3
|
import { i as claimHookIndex, p as getCurrentInstance } from "./component-scope-4I3yEMkb.js";
|
|
4
|
-
import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-
|
|
4
|
+
import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-Di1fzSwm.js";
|
|
5
5
|
//#region src/runtime/state.ts
|
|
6
6
|
/**
|
|
7
7
|
* State primitive for Askr components
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { o as getRuntimeRenderer } from "./access-
|
|
1
|
+
import { o as getRuntimeRenderer } from "./access-BucjYZcX.js";
|
|
2
2
|
import { f as getCurrentComponentInstance, m as getCurrentPortalScope } from "./component-scope-4I3yEMkb.js";
|
|
3
3
|
import { n as Fragment, t as ELEMENT_TYPE } from "./jsx-DRS-qjiN.js";
|
|
4
|
-
import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-
|
|
5
|
-
import { t as cleanupComponent } from "./component-cleanup-
|
|
6
|
-
import { c as getCurrentLifecycleCommitBatch, u as registerLifecycleTransaction } from "./lifecycle-batch-
|
|
4
|
+
import { l as notifyReadableReaders, o as markReactivePropsDirtySource, s as markReadableDerivedSubscribersDirty, u as recordReadableRead } from "./readable-Di1fzSwm.js";
|
|
5
|
+
import { t as cleanupComponent } from "./component-cleanup-jdbgjkT1.js";
|
|
6
|
+
import { c as getCurrentLifecycleCommitBatch, u as registerLifecycleTransaction } from "./lifecycle-batch-63aXFf2S.js";
|
|
7
7
|
import { n as getActiveRenderContext } from "./render-context-B7ohlh6t.js";
|
|
8
8
|
import { i as createSSRPortalHostToken, n as SSR_PORTAL_HOST, r as createSSRPortalAnchorToken, t as SSR_PORTAL_ANCHOR } from "./portal-w3oQ6oQU.js";
|
|
9
9
|
import { i as registerDefaultPortalRuntime } from "./default-portal-runtime-DvMvWJVp.js";
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Et as RouteAuthOptions, Kt as RouteRegistry, Pt as RouteMatch, Sn as ComponentFunction, _n as QueryStaleReason, an as Mutation, sn as Query, tn as DataRuntime } from "../index-Dgjbo2gU.js";
|
|
2
2
|
//#region src/testing/render.d.ts
|
|
3
3
|
/** Options for {@link render} and {@link mount}. */
|
|
4
4
|
interface RenderOptions {
|
|
@@ -9,6 +9,8 @@ interface RenderOptions {
|
|
|
9
9
|
container?: HTMLElement;
|
|
10
10
|
/** Surface lifecycle cleanup errors during unmount. */
|
|
11
11
|
cleanupStrict?: boolean;
|
|
12
|
+
/** Isolated data runtime owned by this component render. */
|
|
13
|
+
dataRuntime?: DataRuntime;
|
|
12
14
|
}
|
|
13
15
|
/** Options for {@link renderRoute}. */
|
|
14
16
|
interface RouteRenderOptions extends RenderOptions {
|
package/dist/testing/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { r as flushRuntimeScheduler } from "../access-
|
|
2
|
-
import { u as recordReadableRead } from "../readable-
|
|
1
|
+
import { r as flushRuntimeScheduler } from "../access-BucjYZcX.js";
|
|
2
|
+
import { u as recordReadableRead } from "../readable-Di1fzSwm.js";
|
|
3
3
|
import { l as addInvalidationListener, t as createDataRuntime } from "../data-runtime-7t_Y0iv3.js";
|
|
4
|
-
import { a as normalizeAsyncDataError,
|
|
4
|
+
import { a as normalizeAsyncDataError, o as notifySource, t as createReadableSource } from "../shared-CYBH3F8I.js";
|
|
5
5
|
import { r as computeRouteActivityMatches } from "../route-matching-Bo6UqG-5.js";
|
|
6
|
-
import { a as cleanupApp, r as createSPA, t as createIsland } from "../boot-
|
|
6
|
+
import { a as cleanupApp, r as createSPA, t as createIsland } from "../boot-tWyF6121.js";
|
|
7
7
|
//#region src/testing/render.ts
|
|
8
8
|
const renderStates = /* @__PURE__ */ new WeakMap();
|
|
9
9
|
const eventConstructorNames = {
|
|
@@ -149,7 +149,8 @@ function render(component, options) {
|
|
|
149
149
|
createIsland({
|
|
150
150
|
root: container,
|
|
151
151
|
component,
|
|
152
|
-
cleanupStrict: options?.cleanupStrict
|
|
152
|
+
cleanupStrict: options?.cleanupStrict,
|
|
153
|
+
dataRuntime: options?.dataRuntime
|
|
153
154
|
});
|
|
154
155
|
flush();
|
|
155
156
|
return createRenderResult(container);
|
|
@@ -89,6 +89,11 @@ interface IntrinsicProps extends IntrinsicEventProps {
|
|
|
89
89
|
hidden?: ReactiveProp<IntrinsicBooleanValue>;
|
|
90
90
|
dir?: ReactiveProp<IntrinsicTextValue>;
|
|
91
91
|
lang?: ReactiveProp<IntrinsicTextValue>;
|
|
92
|
+
contentEditable?: ReactiveProp<IntrinsicTextValue>;
|
|
93
|
+
draggable?: ReactiveProp<IntrinsicTextValue>;
|
|
94
|
+
enterKeyHint?: ReactiveProp<IntrinsicTextValue>;
|
|
95
|
+
inputMode?: ReactiveProp<IntrinsicTextValue>;
|
|
96
|
+
spellCheck?: ReactiveProp<IntrinsicTextValue>;
|
|
92
97
|
[attr: `aria-${string}`]: ReactiveProp<IntrinsicAriaValue>;
|
|
93
98
|
[attr: `data-${string}`]: ReactiveProp<IntrinsicDataValue>;
|
|
94
99
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { g as getHydrationRenderUrl, m as withHydrationVerificationRender } from "./render-context-B7ohlh6t.js";
|
|
2
2
|
import { t as SSR_RENDER_DATA_ATTR } from "./ssr-DSHd_Q9K.js";
|
|
3
|
-
import { a as renderResolvedToStringSync } from "./ssr-
|
|
3
|
+
import { a as renderResolvedToStringSync } from "./ssr-Doog-AfJ.js";
|
|
4
4
|
//#region src/ssr/verify-hydration.ts
|
|
5
5
|
function normalizeHydrationHtml(html) {
|
|
6
6
|
const template = document.createElement("template");
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askrjs/askr",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.4",
|
|
4
|
+
"description": "Lane-scheduled deterministic UI framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askr",
|
|
7
7
|
"framework",
|
|
@@ -148,20 +148,20 @@
|
|
|
148
148
|
"prepublishOnly": "npm run check"
|
|
149
149
|
},
|
|
150
150
|
"dependencies": {
|
|
151
|
-
"@askrjs/auth": ">=0.2.
|
|
152
|
-
"@askrjs/schema": ">=0.2.
|
|
151
|
+
"@askrjs/auth": ">=0.2.1 <0.3.0",
|
|
152
|
+
"@askrjs/schema": ">=0.2.1 <0.3.0"
|
|
153
153
|
},
|
|
154
154
|
"devDependencies": {
|
|
155
|
-
"@types/node": "^26.
|
|
155
|
+
"@types/node": "^26.3.0",
|
|
156
156
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
157
157
|
"@vitest/browser-playwright": "4.1.10",
|
|
158
158
|
"cross-env": "^10.1.0",
|
|
159
159
|
"jsdom": "^30.0.1",
|
|
160
160
|
"playwright": "^1.62.1",
|
|
161
|
-
"publint": "^0.3.
|
|
161
|
+
"publint": "^0.3.24",
|
|
162
162
|
"tsd": "^0.33.0",
|
|
163
163
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
164
|
-
"vite": "^8.2.
|
|
164
|
+
"vite": "^8.2.2",
|
|
165
165
|
"vite-plus": "^0.2.8"
|
|
166
166
|
},
|
|
167
167
|
"tsd": {
|