@demiurgejs/core 0.0.0 → 0.1.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/LICENSE +21 -0
- package/README.md +75 -2
- package/dist/adapter/index.d.ts +20 -0
- package/dist/adapter/index.d.ts.map +1 -0
- package/dist/browser/file-router.d.ts +30 -0
- package/dist/browser/file-router.d.ts.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/chunks/index-BnX9Qxbm.js +44 -0
- package/dist/chunks/index-BnX9Qxbm.js.map +1 -0
- package/dist/chunks/ssr-O3d7Q73U.js +273 -0
- package/dist/chunks/ssr-O3d7Q73U.js.map +1 -0
- package/dist/chunks/streaming-27pwhjGC.js +343 -0
- package/dist/chunks/streaming-27pwhjGC.js.map +1 -0
- package/dist/chunks/testing-BBnJ5WUR.js +2871 -0
- package/dist/chunks/testing-BBnJ5WUR.js.map +1 -0
- package/dist/data/cache.d.ts +95 -0
- package/dist/data/cache.d.ts.map +1 -0
- package/dist/data/idempotency.d.ts +24 -0
- package/dist/data/idempotency.d.ts.map +1 -0
- package/dist/data/index.d.ts +5 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/testing.d.ts +7 -0
- package/dist/data/testing.d.ts.map +1 -0
- package/dist/data/testing.js +134 -0
- package/dist/data/testing.js.map +1 -0
- package/dist/document/hydration.d.ts +13 -0
- package/dist/document/hydration.d.ts.map +1 -0
- package/dist/document/index.d.ts +13 -0
- package/dist/document/index.d.ts.map +1 -0
- package/dist/document/links.d.ts +17 -0
- package/dist/document/links.d.ts.map +1 -0
- package/dist/document/metadata.d.ts +62 -0
- package/dist/document/metadata.d.ts.map +1 -0
- package/dist/document/render.d.ts +28 -0
- package/dist/document/render.d.ts.map +1 -0
- package/dist/document/scripts.d.ts +24 -0
- package/dist/document/scripts.d.ts.map +1 -0
- package/dist/document/seo.d.ts +42 -0
- package/dist/document/seo.d.ts.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1318 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/testing.d.ts +3 -0
- package/dist/internal/testing.d.ts.map +1 -0
- package/dist/internal/testing.js +22 -0
- package/dist/internal/testing.js.map +1 -0
- package/dist/node/http.d.ts +28 -0
- package/dist/node/http.d.ts.map +1 -0
- package/dist/node/index.d.ts +45 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +385 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/static.d.ts +9 -0
- package/dist/node/static.d.ts.map +1 -0
- package/dist/node/streaming.d.ts +5 -0
- package/dist/node/streaming.d.ts.map +1 -0
- package/dist/package-name.d.ts +2 -0
- package/dist/package-name.d.ts.map +1 -0
- package/dist/platform/analytics.d.ts +20 -0
- package/dist/platform/analytics.d.ts.map +1 -0
- package/dist/platform/fonts.d.ts +35 -0
- package/dist/platform/fonts.d.ts.map +1 -0
- package/dist/platform/images.d.ts +49 -0
- package/dist/platform/images.d.ts.map +1 -0
- package/dist/platform/index.d.ts +9 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/observability.d.ts +60 -0
- package/dist/platform/observability.d.ts.map +1 -0
- package/dist/route/action.d.ts +33 -0
- package/dist/route/action.d.ts.map +1 -0
- package/dist/route/http-error.d.ts +24 -0
- package/dist/route/http-error.d.ts.map +1 -0
- package/dist/route/index.d.ts +10 -0
- package/dist/route/index.d.ts.map +1 -0
- package/dist/route/page.d.ts +5 -0
- package/dist/route/page.d.ts.map +1 -0
- package/dist/route/response.d.ts +100 -0
- package/dist/route/response.d.ts.map +1 -0
- package/dist/route/types.d.ts +186 -0
- package/dist/route/types.d.ts.map +1 -0
- package/dist/route/webhook.d.ts +25 -0
- package/dist/route/webhook.d.ts.map +1 -0
- package/dist/router/index.d.ts +5 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/manifest.d.ts +117 -0
- package/dist/router/manifest.d.ts.map +1 -0
- package/dist/router/navigation-data.d.ts +9 -0
- package/dist/router/navigation-data.d.ts.map +1 -0
- package/dist/routing/generate.d.ts +14 -0
- package/dist/routing/generate.d.ts.map +1 -0
- package/dist/routing/index.d.ts +3 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/types.d.ts +38 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/security/audit.d.ts +16 -0
- package/dist/security/audit.d.ts.map +1 -0
- package/dist/security/cors.d.ts +7 -0
- package/dist/security/cors.d.ts.map +1 -0
- package/dist/security/csrf.d.ts +15 -0
- package/dist/security/csrf.d.ts.map +1 -0
- package/dist/security/env.d.ts +69 -0
- package/dist/security/env.d.ts.map +1 -0
- package/dist/security/index.d.ts +17 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/policy.d.ts +18 -0
- package/dist/security/policy.d.ts.map +1 -0
- package/dist/security/rate-limit.d.ts +6 -0
- package/dist/security/rate-limit.d.ts.map +1 -0
- package/dist/security/report.d.ts +13 -0
- package/dist/security/report.d.ts.map +1 -0
- package/dist/security/request.d.ts +11 -0
- package/dist/security/request.d.ts.map +1 -0
- package/dist/security/types.d.ts +137 -0
- package/dist/security/types.d.ts.map +1 -0
- package/dist/security/upload.d.ts +23 -0
- package/dist/security/upload.d.ts.map +1 -0
- package/dist/security/websocket.d.ts +13 -0
- package/dist/security/websocket.d.ts.map +1 -0
- package/dist/server/errors.d.ts +13 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/failure-site.d.ts +2 -0
- package/dist/server/failure-site.d.ts.map +1 -0
- package/dist/server/fallbacks.d.ts +10 -0
- package/dist/server/fallbacks.d.ts.map +1 -0
- package/dist/server/index.d.ts +14 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/negotiate.d.ts +3 -0
- package/dist/server/negotiate.d.ts.map +1 -0
- package/dist/server/not-found.d.ts +11 -0
- package/dist/server/not-found.d.ts.map +1 -0
- package/dist/server/problem.d.ts +18 -0
- package/dist/server/problem.d.ts.map +1 -0
- package/dist/server/render-tree.d.ts +4 -0
- package/dist/server/render-tree.d.ts.map +1 -0
- package/dist/server/request-handler.d.ts +40 -0
- package/dist/server/request-handler.d.ts.map +1 -0
- package/dist/server/request-metadata.d.ts +7 -0
- package/dist/server/request-metadata.d.ts.map +1 -0
- package/dist/server/ssr.d.ts +17 -0
- package/dist/server/ssr.d.ts.map +1 -0
- package/dist/static/index.d.ts +23 -0
- package/dist/static/index.d.ts.map +1 -0
- package/dist/static/index.js +256 -0
- package/dist/static/index.js.map +1 -0
- package/dist/vite/index.d.ts +4 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +580 -0
- package/dist/vite/index.js.map +1 -0
- package/dist/vite/plugin.d.ts +37 -0
- package/dist/vite/plugin.d.ts.map +1 -0
- package/package.json +90 -4
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export type CacheScope = "build" | "none" | "private" | "public" | "request";
|
|
2
|
+
export type CacheKeyPart = boolean | null | number | string | {
|
|
3
|
+
readonly [key: string]: CacheKeyPart;
|
|
4
|
+
} | readonly CacheKeyPart[];
|
|
5
|
+
export type CacheKey = readonly CacheKeyPart[];
|
|
6
|
+
export type CacheTag = {
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
export type CacheDuration = number | `${number}${"h" | "m" | "ms" | "s"}`;
|
|
10
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
11
|
+
export type CacheRequest<TResult> = {
|
|
12
|
+
fn: () => MaybePromise<TResult>;
|
|
13
|
+
key: CacheKey;
|
|
14
|
+
scope?: CacheScope;
|
|
15
|
+
staleWhileRevalidate?: CacheDuration;
|
|
16
|
+
tags?: readonly CacheTag[];
|
|
17
|
+
ttl?: CacheDuration;
|
|
18
|
+
};
|
|
19
|
+
export type QueryDefinition<TArgs extends readonly unknown[], TResult> = {
|
|
20
|
+
fn: (...args: TArgs) => MaybePromise<TResult>;
|
|
21
|
+
key: (...args: TArgs) => CacheKey;
|
|
22
|
+
scope?: CacheScope;
|
|
23
|
+
staleWhileRevalidate?: CacheDuration;
|
|
24
|
+
tags?: (...args: TArgs) => readonly CacheTag[];
|
|
25
|
+
ttl?: CacheDuration;
|
|
26
|
+
};
|
|
27
|
+
export type Query<TArgs extends readonly unknown[], TResult> = (...args: TArgs) => CacheRequest<TResult>;
|
|
28
|
+
export type Cache = {
|
|
29
|
+
get: <TResult>(request: CacheRequest<TResult>) => Promise<TResult>;
|
|
30
|
+
invalidateKey: (key: CacheKey) => Promise<boolean>;
|
|
31
|
+
invalidateTags: (tags: readonly CacheTag[]) => Promise<number>;
|
|
32
|
+
};
|
|
33
|
+
export type CacheNamespace = {
|
|
34
|
+
app: string;
|
|
35
|
+
environment: string;
|
|
36
|
+
schemaVersion: number | string;
|
|
37
|
+
};
|
|
38
|
+
export type CacheStoreEntry = {
|
|
39
|
+
expiresAt: number | null;
|
|
40
|
+
staleUntil: number | null;
|
|
41
|
+
tags: readonly string[];
|
|
42
|
+
value: unknown;
|
|
43
|
+
};
|
|
44
|
+
export type CacheStore = {
|
|
45
|
+
acquireRefreshLease?: (key: string, token: string, expiresAt: number) => MaybePromise<boolean>;
|
|
46
|
+
delete: (key: string) => MaybePromise<boolean>;
|
|
47
|
+
get: (key: string) => MaybePromise<CacheStoreEntry | undefined>;
|
|
48
|
+
invalidateTags: (tags: readonly string[]) => MaybePromise<number>;
|
|
49
|
+
publishRefresh?: (key: string, token: string, entry: CacheStoreEntry) => MaybePromise<boolean>;
|
|
50
|
+
releaseRefreshLease?: (key: string, token: string) => MaybePromise<void>;
|
|
51
|
+
set: (key: string, entry: CacheStoreEntry) => MaybePromise<void>;
|
|
52
|
+
};
|
|
53
|
+
export type CreateCacheOptions = {
|
|
54
|
+
namespace: CacheNamespace;
|
|
55
|
+
now?: () => number;
|
|
56
|
+
onBackgroundError?: (error: unknown) => void;
|
|
57
|
+
refreshLeaseTtl?: CacheDuration;
|
|
58
|
+
store: CacheStore;
|
|
59
|
+
waitUntil?: (promise: Promise<void>) => void;
|
|
60
|
+
};
|
|
61
|
+
export type Invalidation = {
|
|
62
|
+
key: (key: CacheKey) => Promise<InvalidationResult>;
|
|
63
|
+
keys: (keys: readonly CacheKey[]) => Promise<InvalidationResult>;
|
|
64
|
+
tag: (tag: CacheTag) => Promise<InvalidationResult>;
|
|
65
|
+
tags: (tags: readonly CacheTag[]) => Promise<InvalidationResult>;
|
|
66
|
+
};
|
|
67
|
+
export type InvalidationResult = {
|
|
68
|
+
deleted: number;
|
|
69
|
+
kind: "key" | "tag";
|
|
70
|
+
};
|
|
71
|
+
export type MemoryCacheOptions = {
|
|
72
|
+
maximumEntries?: number;
|
|
73
|
+
now?: () => number;
|
|
74
|
+
onBackgroundError?: (error: unknown) => void;
|
|
75
|
+
refreshLeaseTtl?: CacheDuration;
|
|
76
|
+
waitUntil?: (promise: Promise<void>) => void;
|
|
77
|
+
};
|
|
78
|
+
export type MemoryCacheStoreOptions = {
|
|
79
|
+
entries?: Map<string, CacheStoreEntry>;
|
|
80
|
+
maximumEntries?: number;
|
|
81
|
+
now?: () => number;
|
|
82
|
+
};
|
|
83
|
+
export declare function query<TArgs extends readonly unknown[], TResult>(definition: QueryDefinition<TArgs, TResult>): Query<TArgs, TResult>;
|
|
84
|
+
export declare function tag(id: string): CacheTag;
|
|
85
|
+
export declare function defineTags<TTags extends Record<string, (...args: never[]) => CacheTag>>(tags: TTags): TTags;
|
|
86
|
+
export declare function createCache(options: CreateCacheOptions): Cache;
|
|
87
|
+
export declare function createMemoryCache(options?: MemoryCacheOptions): Cache;
|
|
88
|
+
export declare function createMemoryCacheStore(options?: MemoryCacheStoreOptions): CacheStore;
|
|
89
|
+
export declare function serializeCacheNamespace(namespace: CacheNamespace): string;
|
|
90
|
+
export declare function createInvalidation(cache: Pick<Cache, "invalidateKey" | "invalidateTags">): Invalidation;
|
|
91
|
+
export declare function parseCacheDuration(duration: CacheDuration | undefined): number;
|
|
92
|
+
export declare function serializeCacheKey(key: CacheKey): string;
|
|
93
|
+
export declare function serializeCacheTag(tag: CacheTag): string;
|
|
94
|
+
export {};
|
|
95
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/data/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type CacheDuration, type CacheKey } from "./cache";
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
export type IdempotencyRequest<TResult> = {
|
|
4
|
+
fn: () => MaybePromise<TResult>;
|
|
5
|
+
key: CacheKey;
|
|
6
|
+
ttl?: CacheDuration;
|
|
7
|
+
};
|
|
8
|
+
export type IdempotencyResult<TResult> = {
|
|
9
|
+
key: string;
|
|
10
|
+
replayed: boolean;
|
|
11
|
+
value: TResult;
|
|
12
|
+
};
|
|
13
|
+
export type IdempotencyStore = {
|
|
14
|
+
run: <TResult>(request: IdempotencyRequest<TResult>) => Promise<IdempotencyResult<TResult>>;
|
|
15
|
+
};
|
|
16
|
+
export type MemoryIdempotencyStoreOptions = {
|
|
17
|
+
defaultTtl?: CacheDuration;
|
|
18
|
+
maximumEntries?: number;
|
|
19
|
+
now?: () => number;
|
|
20
|
+
};
|
|
21
|
+
export declare function createMemoryIdempotencyStore(options?: MemoryIdempotencyStoreOptions): IdempotencyStore;
|
|
22
|
+
export declare function runIdempotentMutation<TResult>(store: IdempotencyStore, request: IdempotencyRequest<TResult>): Promise<IdempotencyResult<TResult>>;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=idempotency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/data/idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACd,MAAM,SAAS,CAAC;AAEjB,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI;IACxC,EAAE,EAAE,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAChC,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,CAAC,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,IAAI;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,CAAC,OAAO,EACX,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,KACjC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC1C,CAAC;AAQF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB,CAAC;AAKF,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB,CAwElB;AAwBD,wBAAgB,qBAAqB,CAAC,OAAO,EAC3C,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,uCAGrC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createCache, createInvalidation, createMemoryCache, createMemoryCacheStore, defineTags, parseCacheDuration, query, serializeCacheKey, serializeCacheNamespace, serializeCacheTag, tag, } from "./cache";
|
|
2
|
+
export { createMemoryIdempotencyStore, runIdempotentMutation, } from "./idempotency";
|
|
3
|
+
export type { Cache, CacheDuration, CacheKey, CacheKeyPart, CacheRequest, CacheScope, CacheNamespace, CacheStore, CacheStoreEntry, CacheTag, CreateCacheOptions, Invalidation, InvalidationResult, Query, QueryDefinition, MemoryCacheOptions, MemoryCacheStoreOptions, } from "./cache";
|
|
4
|
+
export type { IdempotencyRequest, IdempotencyResult, IdempotencyStore, MemoryIdempotencyStoreOptions, } from "./idempotency";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,GAAG,GACJ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,KAAK,EACL,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CacheStore } from "./cache";
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
export type CacheStoreFactory = () => MaybePromise<CacheStore>;
|
|
4
|
+
export declare function verifyCacheStoreContract(createStore: CacheStoreFactory): Promise<void>;
|
|
5
|
+
export declare function verifyCacheStoreRefreshContract(createStore: CacheStoreFactory): Promise<void>;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/data/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,SAAS,CAAC;AAE3D,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;AAE/D,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,iBAAiB,iBA8E/B;AAED,wBAAsB,+BAA+B,CACnD,WAAW,EAAE,iBAAiB,iBAwF/B"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
async function d(i) {
|
|
2
|
+
const e = await i(), s = `demiurge-contract:${Date.now()}:${Math.random()}`, t = `${s}:alpha`, l = `${s}:beta`, o = `${s}:gamma`, n = `${s}:tag:alpha`, u = `${s}:tag:beta`, r = Date.now() + 6e4, h = {
|
|
3
|
+
expiresAt: r,
|
|
4
|
+
staleUntil: r + 5e3,
|
|
5
|
+
tags: [n],
|
|
6
|
+
value: { id: "alpha", revision: 1 }
|
|
7
|
+
};
|
|
8
|
+
try {
|
|
9
|
+
a(
|
|
10
|
+
await e.get(t) === void 0,
|
|
11
|
+
"get() must return undefined for a missing key"
|
|
12
|
+
), await e.set(t, h), w(await e.get(t), h, "set() then get()");
|
|
13
|
+
const c = {
|
|
14
|
+
...h,
|
|
15
|
+
value: { id: "alpha", revision: 2 }
|
|
16
|
+
};
|
|
17
|
+
await e.set(t, c), w(
|
|
18
|
+
await e.get(t),
|
|
19
|
+
c,
|
|
20
|
+
"set() must replace an existing key"
|
|
21
|
+
), await e.set(l, {
|
|
22
|
+
expiresAt: r + 1e4,
|
|
23
|
+
staleUntil: r + 15e3,
|
|
24
|
+
tags: [u],
|
|
25
|
+
value: "beta"
|
|
26
|
+
}), await e.set(o, {
|
|
27
|
+
expiresAt: r + 2e4,
|
|
28
|
+
staleUntil: r + 25e3,
|
|
29
|
+
tags: [n, u],
|
|
30
|
+
value: ["gamma"]
|
|
31
|
+
}), a(
|
|
32
|
+
await e.invalidateTags([n]) === 2,
|
|
33
|
+
"invalidateTags() must return the number of entries deleted, counting each entry once"
|
|
34
|
+
), a(
|
|
35
|
+
await e.get(t) === void 0 && await e.get(o) === void 0,
|
|
36
|
+
"invalidateTags() must delete every entry carrying a matching tag"
|
|
37
|
+
), a(
|
|
38
|
+
(await e.get(l))?.value === "beta",
|
|
39
|
+
"invalidateTags() must preserve entries with no matching tag"
|
|
40
|
+
), a(
|
|
41
|
+
await e.delete(l) === !0,
|
|
42
|
+
"delete() must report an existing key"
|
|
43
|
+
), a(
|
|
44
|
+
await e.delete(l) === !1,
|
|
45
|
+
"delete() must report a missing key"
|
|
46
|
+
);
|
|
47
|
+
} finally {
|
|
48
|
+
await Promise.all([
|
|
49
|
+
e.delete(t),
|
|
50
|
+
e.delete(l),
|
|
51
|
+
e.delete(o)
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function m(i) {
|
|
56
|
+
const e = await i(), s = `demiurge-refresh-contract:${Date.now()}:${Math.random()}`, t = `${s}:entry`, l = `${s}:tag`, o = `${s}:first`, n = `${s}:second`, u = Date.now() + 6e4;
|
|
57
|
+
a(
|
|
58
|
+
!!(e.acquireRefreshLease && e.publishRefresh && e.releaseRefreshLease),
|
|
59
|
+
"SWR support requires acquireRefreshLease(), publishRefresh(), and releaseRefreshLease()"
|
|
60
|
+
);
|
|
61
|
+
const r = e.acquireRefreshLease, h = e.publishRefresh, c = e.releaseRefreshLease, f = {
|
|
62
|
+
expiresAt: Date.now() - 1,
|
|
63
|
+
staleUntil: Date.now() + 12e4,
|
|
64
|
+
tags: [l],
|
|
65
|
+
value: "original"
|
|
66
|
+
}, g = {
|
|
67
|
+
...f,
|
|
68
|
+
expiresAt: Date.now() + 6e4,
|
|
69
|
+
value: "refreshed"
|
|
70
|
+
};
|
|
71
|
+
try {
|
|
72
|
+
await e.set(t, f), a(
|
|
73
|
+
await r(t, o, u),
|
|
74
|
+
"acquireRefreshLease() must acquire an unowned key"
|
|
75
|
+
), a(
|
|
76
|
+
!await r(t, n, u),
|
|
77
|
+
"acquireRefreshLease() must exclude a second owner"
|
|
78
|
+
), a(
|
|
79
|
+
!await h(t, n, g),
|
|
80
|
+
"publishRefresh() must reject a non-owner token"
|
|
81
|
+
), await c(t, n), a(
|
|
82
|
+
!await r(t, n, u),
|
|
83
|
+
"releaseRefreshLease() must not release another owner's lease"
|
|
84
|
+
), a(
|
|
85
|
+
await h(t, o, g),
|
|
86
|
+
"publishRefresh() must atomically publish for the current owner"
|
|
87
|
+
), w(
|
|
88
|
+
await e.get(t),
|
|
89
|
+
g,
|
|
90
|
+
"publishRefresh() for the current owner"
|
|
91
|
+
), a(
|
|
92
|
+
await r(t, n, u),
|
|
93
|
+
"successful publication must release the refresh lease"
|
|
94
|
+
), a(await e.delete(t), "delete() must remove the refreshed entry"), a(
|
|
95
|
+
!await h(t, n, f),
|
|
96
|
+
"delete() must cancel an in-flight refresh lease"
|
|
97
|
+
), await e.set(t, f), a(
|
|
98
|
+
await r(t, o, u),
|
|
99
|
+
"a lease must be reusable after deletion"
|
|
100
|
+
), a(
|
|
101
|
+
await e.invalidateTags([l]) === 1,
|
|
102
|
+
"invalidateTags() must remove the leased entry"
|
|
103
|
+
), a(
|
|
104
|
+
!await h(t, o, g),
|
|
105
|
+
"tag invalidation must cancel an in-flight refresh lease"
|
|
106
|
+
);
|
|
107
|
+
} finally {
|
|
108
|
+
await e.delete(t);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function w(i, e, s) {
|
|
112
|
+
a(!!i, `${s} must preserve the entry`), a(
|
|
113
|
+
i?.expiresAt === e.expiresAt,
|
|
114
|
+
`${s} must preserve expiresAt`
|
|
115
|
+
), a(
|
|
116
|
+
i?.staleUntil === e.staleUntil,
|
|
117
|
+
`${s} must preserve staleUntil`
|
|
118
|
+
), a(
|
|
119
|
+
JSON.stringify(i?.tags) === JSON.stringify(e.tags),
|
|
120
|
+
`${s} must preserve tags`
|
|
121
|
+
), a(
|
|
122
|
+
JSON.stringify(i?.value) === JSON.stringify(e.value),
|
|
123
|
+
`${s} must preserve JSON-compatible values`
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
function a(i, e) {
|
|
127
|
+
if (!i)
|
|
128
|
+
throw new Error(`Cache store contract failed: ${e}.`);
|
|
129
|
+
}
|
|
130
|
+
export {
|
|
131
|
+
d as verifyCacheStoreContract,
|
|
132
|
+
m as verifyCacheStoreRefreshContract
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sources":["../../src/data/testing.ts"],"sourcesContent":["import type { CacheStore, CacheStoreEntry } from \"./cache\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nexport type CacheStoreFactory = () => MaybePromise<CacheStore>;\n\nexport async function verifyCacheStoreContract(\n createStore: CacheStoreFactory,\n) {\n const store = await createStore();\n const prefix = `demiurge-contract:${Date.now()}:${Math.random()}`;\n const alphaKey = `${prefix}:alpha`;\n const betaKey = `${prefix}:beta`;\n const gammaKey = `${prefix}:gamma`;\n const alphaTag = `${prefix}:tag:alpha`;\n const betaTag = `${prefix}:tag:beta`;\n const future = Date.now() + 60_000;\n const alpha = {\n expiresAt: future,\n staleUntil: future + 5_000,\n tags: [alphaTag],\n value: { id: \"alpha\", revision: 1 },\n } satisfies CacheStoreEntry;\n\n try {\n assert(\n await store.get(alphaKey) === undefined,\n \"get() must return undefined for a missing key\",\n );\n\n await store.set(alphaKey, alpha);\n assertEntry(await store.get(alphaKey), alpha, \"set() then get()\");\n\n const updatedAlpha = {\n ...alpha,\n value: { id: \"alpha\", revision: 2 },\n } satisfies CacheStoreEntry;\n await store.set(alphaKey, updatedAlpha);\n assertEntry(\n await store.get(alphaKey),\n updatedAlpha,\n \"set() must replace an existing key\",\n );\n\n await store.set(betaKey, {\n expiresAt: future + 10_000,\n staleUntil: future + 15_000,\n tags: [betaTag],\n value: \"beta\",\n });\n await store.set(gammaKey, {\n expiresAt: future + 20_000,\n staleUntil: future + 25_000,\n tags: [alphaTag, betaTag],\n value: [\"gamma\"],\n });\n\n assert(\n await store.invalidateTags([alphaTag]) === 2,\n \"invalidateTags() must return the number of entries deleted, counting each entry once\",\n );\n assert(\n await store.get(alphaKey) === undefined &&\n await store.get(gammaKey) === undefined,\n \"invalidateTags() must delete every entry carrying a matching tag\",\n );\n assert(\n (await store.get(betaKey))?.value === \"beta\",\n \"invalidateTags() must preserve entries with no matching tag\",\n );\n assert(\n await store.delete(betaKey) === true,\n \"delete() must report an existing key\",\n );\n assert(\n await store.delete(betaKey) === false,\n \"delete() must report a missing key\",\n );\n } finally {\n await Promise.all([\n store.delete(alphaKey),\n store.delete(betaKey),\n store.delete(gammaKey),\n ]);\n }\n}\n\nexport async function verifyCacheStoreRefreshContract(\n createStore: CacheStoreFactory,\n) {\n const store = await createStore();\n const prefix = `demiurge-refresh-contract:${Date.now()}:${Math.random()}`;\n const key = `${prefix}:entry`;\n const tag = `${prefix}:tag`;\n const firstToken = `${prefix}:first`;\n const secondToken = `${prefix}:second`;\n const leaseExpiresAt = Date.now() + 60_000;\n\n assert(\n Boolean(\n store.acquireRefreshLease &&\n store.publishRefresh &&\n store.releaseRefreshLease,\n ),\n \"SWR support requires acquireRefreshLease(), publishRefresh(), and releaseRefreshLease()\",\n );\n\n const acquireRefreshLease = store.acquireRefreshLease!;\n const publishRefresh = store.publishRefresh!;\n const releaseRefreshLease = store.releaseRefreshLease!;\n const original = {\n expiresAt: Date.now() - 1,\n staleUntil: Date.now() + 120_000,\n tags: [tag],\n value: \"original\",\n } satisfies CacheStoreEntry;\n const refreshed = {\n ...original,\n expiresAt: Date.now() + 60_000,\n value: \"refreshed\",\n } satisfies CacheStoreEntry;\n\n try {\n await store.set(key, original);\n assert(\n await acquireRefreshLease(key, firstToken, leaseExpiresAt),\n \"acquireRefreshLease() must acquire an unowned key\",\n );\n assert(\n !await acquireRefreshLease(key, secondToken, leaseExpiresAt),\n \"acquireRefreshLease() must exclude a second owner\",\n );\n assert(\n !await publishRefresh(key, secondToken, refreshed),\n \"publishRefresh() must reject a non-owner token\",\n );\n await releaseRefreshLease(key, secondToken);\n assert(\n !await acquireRefreshLease(key, secondToken, leaseExpiresAt),\n \"releaseRefreshLease() must not release another owner's lease\",\n );\n assert(\n await publishRefresh(key, firstToken, refreshed),\n \"publishRefresh() must atomically publish for the current owner\",\n );\n assertEntry(\n await store.get(key),\n refreshed,\n \"publishRefresh() for the current owner\",\n );\n assert(\n await acquireRefreshLease(key, secondToken, leaseExpiresAt),\n \"successful publication must release the refresh lease\",\n );\n assert(await store.delete(key), \"delete() must remove the refreshed entry\");\n assert(\n !await publishRefresh(key, secondToken, original),\n \"delete() must cancel an in-flight refresh lease\",\n );\n\n await store.set(key, original);\n assert(\n await acquireRefreshLease(key, firstToken, leaseExpiresAt),\n \"a lease must be reusable after deletion\",\n );\n assert(\n await store.invalidateTags([tag]) === 1,\n \"invalidateTags() must remove the leased entry\",\n );\n assert(\n !await publishRefresh(key, firstToken, refreshed),\n \"tag invalidation must cancel an in-flight refresh lease\",\n );\n } finally {\n await store.delete(key);\n }\n}\n\nfunction assertEntry(\n actual: CacheStoreEntry | undefined,\n expected: CacheStoreEntry,\n operation: string,\n) {\n assert(Boolean(actual), `${operation} must preserve the entry`);\n assert(\n actual?.expiresAt === expected.expiresAt,\n `${operation} must preserve expiresAt`,\n );\n assert(\n actual?.staleUntil === expected.staleUntil,\n `${operation} must preserve staleUntil`,\n );\n assert(\n JSON.stringify(actual?.tags) === JSON.stringify(expected.tags),\n `${operation} must preserve tags`,\n );\n assert(\n JSON.stringify(actual?.value) === JSON.stringify(expected.value),\n `${operation} must preserve JSON-compatible values`,\n );\n}\n\nfunction assert(condition: boolean, requirement: string): asserts condition {\n if (!condition) {\n throw new Error(`Cache store contract failed: ${requirement}.`);\n }\n}\n"],"names":["verifyCacheStoreContract","createStore","store","prefix","alphaKey","betaKey","gammaKey","alphaTag","betaTag","future","alpha","assert","assertEntry","updatedAlpha","verifyCacheStoreRefreshContract","key","tag","firstToken","secondToken","leaseExpiresAt","acquireRefreshLease","publishRefresh","releaseRefreshLease","original","refreshed","actual","expected","operation","condition","requirement"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type InitialRouteData = {
|
|
2
|
+
data?: unknown;
|
|
3
|
+
hasData: boolean;
|
|
4
|
+
navigation?: "document";
|
|
5
|
+
};
|
|
6
|
+
export declare const HYDRATION_DATA_ELEMENT_ID = "__demiurge_data";
|
|
7
|
+
export declare const HYDRATION_ROOT_ATTRIBUTE = "data-demiurge-hydrate";
|
|
8
|
+
export declare const HYDRATION_FALLBACK_ATTRIBUTE = "data-demiurge-fallback";
|
|
9
|
+
export declare function serializeInitialRouteData(data: unknown, options?: {
|
|
10
|
+
navigation?: "document";
|
|
11
|
+
}): string;
|
|
12
|
+
export declare function readInitialRouteData(source: Document): InitialRouteData | undefined;
|
|
13
|
+
//# sourceMappingURL=hydration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../src/document/hydration.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,yBAAyB,oBAAoB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAIhE,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAO,UAK1C;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,gCAkBpD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { HYDRATION_DATA_ELEMENT_ID, HYDRATION_FALLBACK_ATTRIBUTE, HYDRATION_ROOT_ATTRIBUTE, readInitialRouteData, serializeInitialRouteData, } from "./hydration";
|
|
2
|
+
export { defineLinks, modulePreload, preconnect, preload, resolveLinks, } from "./links";
|
|
3
|
+
export { defineMetadata, link, meta, resolveMetadata, structuredData, } from "./metadata";
|
|
4
|
+
export { renderDocument, } from "./render";
|
|
5
|
+
export { defineScripts, resolveScripts, script, } from "./scripts";
|
|
6
|
+
export { defineOgImage, defineRobots, defineSitemap, renderOgImageResponse, renderOgImageSvg, renderRobots, renderSitemap, } from "./seo";
|
|
7
|
+
export type { InitialRouteData } from "./hydration";
|
|
8
|
+
export type { LinkContribution, PreconnectOptions, PreloadOptions, } from "./links";
|
|
9
|
+
export type { DocumentMetadataTag, LinkTag, Metadata, MetadataTitle, MetaTag, OpenGraphMetadata, ResolvedMetadata, RobotsMetadata, StructuredDataTag, StructuredDataValue, } from "./metadata";
|
|
10
|
+
export type { DocumentBody, RenderDocumentOptions, } from "./render";
|
|
11
|
+
export type { ScriptContribution, ScriptStrategy, ScriptTag, } from "./scripts";
|
|
12
|
+
export type { OgImage, Robots, RobotsDirective, Sitemap, SitemapAlternate, SitemapChangeFrequency, SitemapEntry, } from "./seo";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/document/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,OAAO,EACP,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,aAAa,EACb,cAAc,EACd,MAAM,GACP,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,OAAO,EACP,MAAM,EACN,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,MAAM,OAAO,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { HttpRouteContext, MaybePromise } from "../route";
|
|
2
|
+
import type { LinkTag } from "./metadata";
|
|
3
|
+
export type LinkContribution = readonly LinkTag[] | ((context: HttpRouteContext) => MaybePromise<readonly LinkTag[]>);
|
|
4
|
+
export type PreloadOptions = {
|
|
5
|
+
as: string;
|
|
6
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
7
|
+
type?: string;
|
|
8
|
+
};
|
|
9
|
+
export type PreconnectOptions = {
|
|
10
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
11
|
+
};
|
|
12
|
+
export declare function defineLinks(contribution: LinkContribution): LinkContribution;
|
|
13
|
+
export declare function preconnect(href: string, options?: PreconnectOptions): LinkTag;
|
|
14
|
+
export declare function preload(href: string, options: PreloadOptions): LinkTag;
|
|
15
|
+
export declare function modulePreload(href: string): LinkTag;
|
|
16
|
+
export declare function resolveLinks(contributions: Array<LinkContribution | false | undefined>, context: HttpRouteContext): Promise<LinkTag[]>;
|
|
17
|
+
//# sourceMappingURL=links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/document/links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GACxB,SAAS,OAAO,EAAE,GAClB,CAAC,CAAC,OAAO,EAAE,gBAAgB,KAAK,YAAY,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC;AAEtE,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;CAC/C,CAAC;AAEF,wBAAgB,WAAW,CAAC,YAAY,EAAE,gBAAgB,oBAEzD;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAOT;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAOtE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMnD;AAED,wBAAsB,YAAY,CAChC,aAAa,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC,EAC1D,OAAO,EAAE,gBAAgB,sBAkB1B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export type MetadataTitle = string | {
|
|
2
|
+
default?: string;
|
|
3
|
+
format?: (title: string) => string;
|
|
4
|
+
};
|
|
5
|
+
export type RobotsMetadata = {
|
|
6
|
+
follow?: boolean;
|
|
7
|
+
index?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type OpenGraphMetadata = {
|
|
10
|
+
description?: string;
|
|
11
|
+
image?: string;
|
|
12
|
+
title?: string;
|
|
13
|
+
};
|
|
14
|
+
export type MetaTag = {
|
|
15
|
+
content: string;
|
|
16
|
+
kind: "meta";
|
|
17
|
+
name?: string;
|
|
18
|
+
property?: string;
|
|
19
|
+
};
|
|
20
|
+
export type LinkTag = {
|
|
21
|
+
as?: string;
|
|
22
|
+
crossOrigin?: "anonymous" | "use-credentials";
|
|
23
|
+
href: string;
|
|
24
|
+
hrefLang?: string;
|
|
25
|
+
kind: "link";
|
|
26
|
+
rel: string;
|
|
27
|
+
type?: string;
|
|
28
|
+
};
|
|
29
|
+
export type StructuredDataValue = boolean | null | number | string | readonly StructuredDataValue[] | {
|
|
30
|
+
readonly [key: string]: StructuredDataValue;
|
|
31
|
+
};
|
|
32
|
+
export type StructuredDataTag = {
|
|
33
|
+
kind: "structured-data";
|
|
34
|
+
value: StructuredDataValue;
|
|
35
|
+
};
|
|
36
|
+
export type Metadata = {
|
|
37
|
+
canonical?: string;
|
|
38
|
+
custom?: readonly DocumentMetadataTag[];
|
|
39
|
+
description?: string;
|
|
40
|
+
openGraph?: OpenGraphMetadata;
|
|
41
|
+
robots?: RobotsMetadata;
|
|
42
|
+
structuredData?: readonly StructuredDataTag[];
|
|
43
|
+
title?: MetadataTitle;
|
|
44
|
+
};
|
|
45
|
+
export type DocumentMetadataTag = LinkTag | MetaTag;
|
|
46
|
+
export type ResolvedMetadata = {
|
|
47
|
+
canonical?: string;
|
|
48
|
+
charset: "utf-8";
|
|
49
|
+
custom: DocumentMetadataTag[];
|
|
50
|
+
description?: string;
|
|
51
|
+
openGraph?: OpenGraphMetadata;
|
|
52
|
+
robots?: RobotsMetadata;
|
|
53
|
+
structuredData: StructuredDataTag[];
|
|
54
|
+
title?: string;
|
|
55
|
+
viewport: "width=device-width, initial-scale=1";
|
|
56
|
+
};
|
|
57
|
+
export declare function defineMetadata(metadata: Metadata): Metadata;
|
|
58
|
+
export declare function meta(tag: Omit<MetaTag, "kind">): MetaTag;
|
|
59
|
+
export declare function link(tag: Omit<LinkTag, "kind">): LinkTag;
|
|
60
|
+
export declare function structuredData(value: StructuredDataValue): StructuredDataTag;
|
|
61
|
+
export declare function resolveMetadata(...metadataEntries: Array<Metadata | false | undefined>): ResolvedMetadata;
|
|
62
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/document/metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,MAAM,GACN;IACE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC,CAAC;AAEN,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,IAAI,GACJ,MAAM,GACN,MAAM,GACN,SAAS,mBAAmB,EAAE,GAC9B;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAAE,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,mBAAmB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,qCAAqC,CAAC;CACjD,CAAC;AAEF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,YAEhD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAKxD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAKxD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,iBAAiB,CAK5E;AAED,wBAAgB,eAAe,CAC7B,GAAG,eAAe,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC,GACtD,gBAAgB,CA6BlB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { LinkTag, ResolvedMetadata } from "./metadata";
|
|
2
|
+
import type { ScriptTag } from "./scripts";
|
|
3
|
+
export type DocumentBody = {
|
|
4
|
+
data: unknown;
|
|
5
|
+
fallback?: "not-found";
|
|
6
|
+
html: string;
|
|
7
|
+
navigation?: "document";
|
|
8
|
+
};
|
|
9
|
+
export type RenderDocumentOptions = {
|
|
10
|
+
body?: DocumentBody;
|
|
11
|
+
entrySrc?: string;
|
|
12
|
+
lang?: string;
|
|
13
|
+
links?: LinkTag[];
|
|
14
|
+
metadata?: ResolvedMetadata;
|
|
15
|
+
nonce?: string;
|
|
16
|
+
scripts?: ScriptTag[];
|
|
17
|
+
styles?: string[];
|
|
18
|
+
title?: string;
|
|
19
|
+
};
|
|
20
|
+
export type RenderDocumentShellOptions = Omit<RenderDocumentOptions, "body"> & {
|
|
21
|
+
body: Omit<DocumentBody, "html">;
|
|
22
|
+
};
|
|
23
|
+
export declare function renderDocument(options: RenderDocumentOptions): string;
|
|
24
|
+
export declare function renderDocumentShell({ body, entrySrc, lang, links, metadata, nonce, scripts, styles, title, }: RenderDocumentShellOptions): {
|
|
25
|
+
prefix: string;
|
|
26
|
+
suffix: string;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/document/render.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,OAAO,EACP,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,UAS5D;AAED,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,IAAW,EACX,KAAU,EACV,QAAQ,EACR,KAAK,EACL,OAAY,EACZ,MAAW,EACX,KAAsB,GACvB,EAAE,0BAA0B;;;EAsB5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HttpRouteContext, MaybePromise } from "../route";
|
|
2
|
+
export type ScriptStrategy = "afterInteractive" | "beforeInteractive" | "module";
|
|
3
|
+
export type ScriptTag = {
|
|
4
|
+
async?: boolean;
|
|
5
|
+
dataApi?: string;
|
|
6
|
+
dataDomain?: string;
|
|
7
|
+
defer?: boolean;
|
|
8
|
+
id?: string;
|
|
9
|
+
integrity?: string;
|
|
10
|
+
kind: "script";
|
|
11
|
+
nonce?: string;
|
|
12
|
+
purpose?: string;
|
|
13
|
+
referrerPolicy?: ReferrerPolicy;
|
|
14
|
+
src: string;
|
|
15
|
+
strategy: ScriptStrategy;
|
|
16
|
+
type?: "module" | "text/javascript";
|
|
17
|
+
};
|
|
18
|
+
export type ScriptContribution = readonly ScriptTag[] | ((context: HttpRouteContext) => MaybePromise<readonly ScriptTag[]>);
|
|
19
|
+
export declare function defineScripts(contribution: ScriptContribution): ScriptContribution;
|
|
20
|
+
export declare function script(options: Omit<ScriptTag, "kind" | "strategy"> & {
|
|
21
|
+
strategy?: ScriptStrategy;
|
|
22
|
+
}): ScriptTag;
|
|
23
|
+
export declare function resolveScripts(contributions: Array<ScriptContribution | false | undefined>, context: HttpRouteContext): Promise<ScriptTag[]>;
|
|
24
|
+
//# sourceMappingURL=scripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../src/document/scripts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,QAAQ,CAAC;AAQb,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,iBAAiB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,SAAS,SAAS,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE,gBAAgB,KAAK,YAAY,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC;AAExE,wBAAgB,aAAa,CAAC,YAAY,EAAE,kBAAkB,sBAE7D;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,GAAG;IACrE,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B,GAAG,SAAS,CAoBZ;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,GAAG,SAAS,CAAC,EAC5D,OAAO,EAAE,gBAAgB,wBAkB1B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type SitemapChangeFrequency = "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never";
|
|
2
|
+
export type SitemapAlternate = {
|
|
3
|
+
href: string;
|
|
4
|
+
hrefLang: string;
|
|
5
|
+
};
|
|
6
|
+
export type SitemapEntry = {
|
|
7
|
+
alternates?: readonly SitemapAlternate[];
|
|
8
|
+
changeFrequency?: SitemapChangeFrequency;
|
|
9
|
+
lastModified?: Date | string;
|
|
10
|
+
priority?: number;
|
|
11
|
+
url: string;
|
|
12
|
+
};
|
|
13
|
+
export type Sitemap = {
|
|
14
|
+
entries: readonly SitemapEntry[];
|
|
15
|
+
};
|
|
16
|
+
export type RobotsDirective = {
|
|
17
|
+
allow?: string | readonly string[];
|
|
18
|
+
disallow?: string | readonly string[];
|
|
19
|
+
userAgent: string | readonly string[];
|
|
20
|
+
};
|
|
21
|
+
export type Robots = {
|
|
22
|
+
host?: string;
|
|
23
|
+
rules?: readonly RobotsDirective[];
|
|
24
|
+
sitemap?: string | readonly string[];
|
|
25
|
+
};
|
|
26
|
+
export type OgImage = {
|
|
27
|
+
background?: string;
|
|
28
|
+
brand?: string;
|
|
29
|
+
foreground?: string;
|
|
30
|
+
height?: number;
|
|
31
|
+
subtitle?: string;
|
|
32
|
+
title: string;
|
|
33
|
+
width?: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function defineSitemap(entries: readonly SitemapEntry[]): Sitemap;
|
|
36
|
+
export declare function renderSitemap(sitemap: Sitemap): string;
|
|
37
|
+
export declare function defineRobots(options: Robots): Robots;
|
|
38
|
+
export declare function defineOgImage(options: OgImage): OgImage;
|
|
39
|
+
export declare function renderRobots(robots: Robots): string;
|
|
40
|
+
export declare function renderOgImageSvg(image: OgImage): string;
|
|
41
|
+
export declare function renderOgImageResponse(image: OgImage): Response;
|
|
42
|
+
//# sourceMappingURL=seo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/document/seo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACzC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACtC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,OAAO,CAIvE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,UAU7C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEvD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,UA4B1C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,UAuB9C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,YAOnD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export { createFileRouter, hydrateFileRouter, Link } from "./browser";
|
|
2
|
+
export { assertAdapterCapabilities, checkAdapterCapabilities, defineAdapter, } from "./adapter";
|
|
3
|
+
export { createCache, createInvalidation, createMemoryIdempotencyStore, createMemoryCache, createMemoryCacheStore, defineTags, parseCacheDuration, query, runIdempotentMutation, serializeCacheKey, serializeCacheNamespace, serializeCacheTag, tag, } from "./data";
|
|
4
|
+
export { defineLinks, defineMetadata, defineOgImage, defineRobots, defineScripts, defineSitemap, link, meta, modulePreload, preconnect, preload, resolveLinks, resolveMetadata, resolveScripts, renderOgImageResponse, renderOgImageSvg, renderRobots, renderSitemap, script, structuredData, } from "./document";
|
|
5
|
+
export { href } from "./routing";
|
|
6
|
+
export { analytics, defineFonts, defineInstrumentation, defineImages, font, fontPreloadLinks, isAllowedImageSource, planImageTransform, renderFontFaceCss, } from "./platform";
|
|
7
|
+
export { auditScriptDependencies, createCorsHeaders, createCsrfCookie, createCsrfToken, createMemoryRateLimitStore, createSecurityAudit, createSecurityHeaders, createSecurityReportHandler, cspHash, EnvValidationError, checkWebSocketOrigin, defineRoutePolicy, defineEnvSchema, defineSecurityPolicy, env, enforceCsrfProtection, enforceAllowedMethods, enforceRateLimit, enforceRequestSecurity, enforceWebSocketOrigin, issueCsrfToken, mergeRoutePolicies, mergeRouteSecurityPolicies, mergeSecurityPolicies, parseCookieHeader, parseBodySize, parseRateLimitWindow, security, validateEnv, validateCorsPolicy, validateRateLimitPolicy, validateUploads, } from "./security";
|
|
8
|
+
export { createRequestHandler, handleRequestWithManifest, renderPageResponse, } from "./server";
|
|
9
|
+
export { action, actionInput, html, httpError, HttpError, HTTP_ERROR_STATUSES, isHttpError, json, jsonl, notFound, page, redirect, response, serverTiming, sse, stream, text, toResponse, webhook, } from "./route";
|
|
10
|
+
export type { Adapter, AdapterCapability, AdapterCapabilityCheck, AdapterCapabilityMap, AdapterDefinition, } from "./adapter";
|
|
11
|
+
export type { ActionContext, ActionIdempotency, ActionInput, ActionOptions, HttpErrorDetails, HttpErrorInit, HttpErrorStatus, } from "./route";
|
|
12
|
+
export type { RequestCacheStoreOptions } from "./server";
|
|
13
|
+
export type { Cache, CacheDuration, CacheKey, CacheKeyPart, CacheRequest, CacheScope, CacheNamespace, CacheStore, CacheStoreEntry, CacheTag, CreateCacheOptions, Invalidation, InvalidationResult, IdempotencyRequest, IdempotencyResult, IdempotencyStore, Query, QueryDefinition, MemoryCacheOptions, MemoryCacheStoreOptions, MemoryIdempotencyStoreOptions, } from "./data";
|
|
14
|
+
export type { DocumentMetadataTag, LinkTag, LinkContribution, Metadata, MetadataTitle, MetaTag, OgImage, OpenGraphMetadata, ResolvedMetadata, Robots, RobotsDirective, RobotsMetadata, PreconnectOptions, PreloadOptions, ScriptContribution, ScriptStrategy, ScriptTag, Sitemap, SitemapAlternate, SitemapChangeFrequency, SitemapEntry, StructuredDataTag, StructuredDataValue, } from "./document";
|
|
15
|
+
export type { AnalyticsConsent, FontContribution, FontDefinition, FontStyle, GoogleFontOptions, Instrumentation, InstrumentationEvent, InstrumentationHandler, InstrumentationOptions, ImageFormat, ImagePolicy, ImageTransformOptions, ImageTransformPlan, ImageVariant, LocalFontOptions, PlausibleAnalytics, PlausibleAnalyticsOptions, RemoteImagePattern, ObservabilityValue, RequestSignal, ServerStartSignal, TraceSignal, WebVitalName, WebVitalSignal, } from "./platform";
|
|
16
|
+
export type { InitialRouteData } from "./router";
|
|
17
|
+
export type { AppHref, AppPath, LinkTarget, LinkTo, PathValue, PathVarsFor, RouteParamsFor, RouteConcretePaths, RoutePathVars, } from "./routing";
|
|
18
|
+
export type { HydrateFileRouterOptions } from "./browser";
|
|
19
|
+
export type { SsrOptions, SsrRenderOptions } from "./server";
|
|
20
|
+
export type { HtmlCapability, HttpMethod, HttpRouteContext, JsonCapability, JsonLinesCapability, JsonLinesSource, LayoutProps, MaybePromise, NotFoundCapability, NotFoundProps, PageDataContext, PageDataFunction, PageCapability, PageOptions, PageRenderMode, PageRenderOptions, PathVars, RawResponseCapability, RedirectCapability, ResponseOptions, ResponseCapability, RouteCapability, RouteContext, RouteErrorProps, RouteImporter, RouteDefaultComponent, RouteMiddleware, RouteMiddlewareNext, RouteModule, RouteProps, RouteValue, ServerSentEvent, ServerSentEventSource, ServerSentEventsCapability, ServerTimingInput, ServerTimingMetric, StaticPath, StaticPathsContext, StaticPathsFunction, StreamCapability, StreamChunk, StreamSource, TextCapability, WebhookHmacAlgorithm, WebhookHmacContext, WebhookHmacEncoding, WebhookHmacOptions, } from "./route";
|
|
21
|
+
export type { ContentSecurityPolicy, CorsPolicy, CorsRequestContext, CorsResponseOptions, CsrfCookieOptions, CsrfPolicy, CspHashAlgorithm, CspDirectiveValue, CspSource, EnvSchema, EnvSource, EnvValidationIssue, EnvVariable, InferEnvSchema, IssuedCsrfToken, MemoryRateLimitStoreOptions, RateLimitKey, RateLimitPolicy, RateLimitResult, RateLimitStore, ReferrerPolicy, ReportingEndpointUrl, ReportingEndpoints, SecurityAudit, SecurityAuditFinding, SecurityAuditOptions, ScriptDependencyAuditOptions, SecurityReportContext, SecurityReportHandlerOptions, SecurityReportPayload, RequestSecurityPolicy, RoutePolicy, RouteSecurityPolicy, SecurityHeadersOptions, SecurityHeaderPolicy, SecurityPolicy, SecurityPreset, StrictTransportSecurityPolicy, TrustedTypesPolicy, UploadFilePolicy, UploadPolicy, UploadValidationIssue, UploadValidationResult, WebSocketOriginCheck, WebSocketOriginPolicy, } from "./security";
|
|
22
|
+
export type { PageRenderer, RequestHandler, RequestHandlerOptions, } from "./server";
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|