@demiurgejs/core 0.2.0-beta.4 → 0.2.0-beta.5
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 +23 -0
- package/bin/demiurge.mjs +17 -1
- package/dist/adapter/index.d.ts +1 -1
- package/dist/adapter/index.d.ts.map +1 -1
- package/dist/browser/file-router.d.ts +1 -1
- package/dist/chunks/{document-shell-CpJnFtSC.js → document-shell-9GPwtcTt.js} +2 -2
- package/dist/chunks/{document-shell-CpJnFtSC.js.map → document-shell-9GPwtcTt.js.map} +1 -1
- package/dist/chunks/{image-codec-BmzWnH6W.js → image-codec-Dh1POFhE.js} +2 -2
- package/dist/chunks/{image-codec-BmzWnH6W.js.map → image-codec-Dh1POFhE.js.map} +1 -1
- package/dist/chunks/{images-BQ80950B.js → images-CG7ZzayG.js} +2 -2
- package/dist/chunks/{images-BQ80950B.js.map → images-CG7ZzayG.js.map} +1 -1
- package/dist/chunks/{index-BVk9zWbe.js → index-0MNiR_wo.js} +4 -3
- package/dist/chunks/{index-BVk9zWbe.js.map → index-0MNiR_wo.js.map} +1 -1
- package/dist/chunks/plugin-BZauDxRY.js +2310 -0
- package/dist/chunks/plugin-BZauDxRY.js.map +1 -0
- package/dist/chunks/streaming-GYIsVTQH.js +560 -0
- package/dist/chunks/streaming-GYIsVTQH.js.map +1 -0
- package/dist/chunks/testing-CUwGj2ie.js +4751 -0
- package/dist/chunks/testing-CUwGj2ie.js.map +1 -0
- package/dist/chunks/{vite-DO70kZA6.js → vite-QoqrGl6f.js} +43 -43
- package/dist/chunks/vite-QoqrGl6f.js.map +1 -0
- package/dist/cli.d.ts +4 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +224 -98
- package/dist/cli.js.map +1 -1
- package/dist/config/index.js +2 -2
- package/dist/config/types.d.ts +11 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/edge/index.js +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +161 -139
- package/dist/index.js.map +1 -1
- package/dist/inspect/command.d.ts +28 -0
- package/dist/inspect/command.d.ts.map +1 -0
- package/dist/inspect/index.d.ts +9 -0
- package/dist/inspect/index.d.ts.map +1 -0
- package/dist/inspect/redact.d.ts +35 -0
- package/dist/inspect/redact.d.ts.map +1 -0
- package/dist/inspect/report.d.ts +24 -0
- package/dist/inspect/report.d.ts.map +1 -0
- package/dist/inspect/types.d.ts +102 -0
- package/dist/inspect/types.d.ts.map +1 -0
- package/dist/internal/testing.js +12 -12
- package/dist/node/http.d.ts +5 -0
- package/dist/node/http.d.ts.map +1 -1
- package/dist/node/index.d.ts +1 -1
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +26 -24
- package/dist/node/index.js.map +1 -1
- package/dist/route/index.d.ts +1 -0
- package/dist/route/index.d.ts.map +1 -1
- package/dist/route/mutation.d.ts.map +1 -1
- package/dist/route/serialization.d.ts +24 -0
- package/dist/route/serialization.d.ts.map +1 -0
- package/dist/route/webhook.d.ts +6 -1
- package/dist/route/webhook.d.ts.map +1 -1
- package/dist/router/manifest.d.ts.map +1 -1
- package/dist/security/audit.d.ts +2 -1
- package/dist/security/audit.d.ts.map +1 -1
- package/dist/security/authorization.d.ts +36 -0
- package/dist/security/authorization.d.ts.map +1 -0
- package/dist/security/csrf.d.ts.map +1 -1
- package/dist/security/env-startup.d.ts +0 -2
- package/dist/security/env-startup.d.ts.map +1 -1
- package/dist/security/env.d.ts +27 -8
- package/dist/security/env.d.ts.map +1 -1
- package/dist/security/exceptions.d.ts +29 -0
- package/dist/security/exceptions.d.ts.map +1 -0
- package/dist/security/finding-codes.d.ts +56 -0
- package/dist/security/finding-codes.d.ts.map +1 -0
- package/dist/security/index.d.ts +5 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/policy.d.ts +2 -5
- package/dist/security/policy.d.ts.map +1 -1
- package/dist/security/report.d.ts +2 -1
- package/dist/security/report.d.ts.map +1 -1
- package/dist/security/request.d.ts +1 -0
- package/dist/security/request.d.ts.map +1 -1
- package/dist/security/types.d.ts +138 -5
- package/dist/security/types.d.ts.map +1 -1
- package/dist/security/upload.d.ts +3 -3
- package/dist/security/upload.d.ts.map +1 -1
- package/dist/security/verification.d.ts.map +1 -1
- package/dist/server/request-handler.d.ts +3 -2
- package/dist/server/request-handler.d.ts.map +1 -1
- package/dist/server-only/browser.d.ts +2 -0
- package/dist/server-only/browser.d.ts.map +1 -0
- package/dist/server-only/browser.js +4 -0
- package/dist/server-only/browser.js.map +1 -0
- package/dist/server-only/index.d.ts +2 -0
- package/dist/server-only/index.d.ts.map +1 -0
- package/dist/server-only/index.js +2 -0
- package/dist/server-only/index.js.map +1 -0
- package/dist/static/index.js +4 -4
- package/dist/vite/index.d.ts +9 -4
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +28 -21
- package/dist/vite/plugin.d.ts +18 -2
- package/dist/vite/plugin.d.ts.map +1 -1
- package/dist/vite/policy-verification.d.ts +33 -2
- package/dist/vite/policy-verification.d.ts.map +1 -1
- package/dist/vite/route-audit.d.ts +14 -2
- package/dist/vite/route-audit.d.ts.map +1 -1
- package/dist/vite/server-only-boundary.d.ts +8 -0
- package/dist/vite/server-only-boundary.d.ts.map +1 -0
- package/package.json +6 -1
- package/dist/chunks/env-startup-DOBYWlZD.js +0 -257
- package/dist/chunks/env-startup-DOBYWlZD.js.map +0 -1
- package/dist/chunks/plugin-BQgMiHxa.js +0 -1827
- package/dist/chunks/plugin-BQgMiHxa.js.map +0 -1
- package/dist/chunks/streaming-BEbPN7Uk.js +0 -469
- package/dist/chunks/streaming-BEbPN7Uk.js.map +0 -1
- package/dist/chunks/testing-DueXbMo4.js +0 -4167
- package/dist/chunks/testing-DueXbMo4.js.map +0 -1
- package/dist/chunks/vite-DO70kZA6.js.map +0 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The diagnostic code vocabulary of Demiurge.
|
|
3
|
+
*
|
|
4
|
+
* ADR 0018 gives the build verifier and the runtime audit one vocabulary. A
|
|
5
|
+
* code names one condition. The build verifier reports a subset of the codes,
|
|
6
|
+
* because the build cannot read a value that only a request supplies.
|
|
7
|
+
*/
|
|
8
|
+
export type SecurityFindingCode =
|
|
9
|
+
/** The route inherits no access declaration. */
|
|
10
|
+
"access-declaration-missing"
|
|
11
|
+
/** The route runs each inherited authorization hook. */
|
|
12
|
+
| "access-authorized"
|
|
13
|
+
/** An access exception removed each inherited authorization hook. */
|
|
14
|
+
| "access-exception"
|
|
15
|
+
/** The route declares public access. */
|
|
16
|
+
| "access-public"
|
|
17
|
+
/** The CORS policy is invalid. */
|
|
18
|
+
| "cors-invalid"
|
|
19
|
+
/** The CORS policy names a method that the route does not serve. */
|
|
20
|
+
| "cors-method-unavailable"
|
|
21
|
+
/** The document accepts no Content-Security-Policy. */
|
|
22
|
+
| "csp-disabled"
|
|
23
|
+
/** A document script needs a nonce for the effective script-src policy. */
|
|
24
|
+
| "csp-script-missing-nonce"
|
|
25
|
+
/** The effective script-src policy blocks a document script. */
|
|
26
|
+
| "csp-script-src-blocked"
|
|
27
|
+
/** The route accepts no CSRF check for an unsafe method. */
|
|
28
|
+
| "csrf-disabled"
|
|
29
|
+
/** The route inherits no document policy. */
|
|
30
|
+
| "document-policy-missing"
|
|
31
|
+
/** The rate limit policy is invalid. */
|
|
32
|
+
| "rate-limit-invalid"
|
|
33
|
+
/** The unsafe route declares no rate limit. */
|
|
34
|
+
| "rate-limit-missing"
|
|
35
|
+
/** Trusted Types report-only mode has no deliverable target. */
|
|
36
|
+
| "report-only-target-missing"
|
|
37
|
+
/** The route raises the inherited request body limit. */
|
|
38
|
+
| "request-body-limit-raised"
|
|
39
|
+
/** Google Tag Manager is a wide trust boundary. */
|
|
40
|
+
| "script-gtm-wide-trust-boundary"
|
|
41
|
+
/** A third-party script declares no integrity hash. */
|
|
42
|
+
| "script-integrity-missing"
|
|
43
|
+
/** A third-party script declares no purpose. */
|
|
44
|
+
| "script-purpose-missing"
|
|
45
|
+
/** A third-party script runs before the application is interactive. */
|
|
46
|
+
| "script-third-party-before-interactive"
|
|
47
|
+
/** A security exception states no reason. */
|
|
48
|
+
| "security-exception-reason-missing"
|
|
49
|
+
/** The security headers failed to render. */
|
|
50
|
+
| "security-header-render-failed";
|
|
51
|
+
/**
|
|
52
|
+
* The codes that the build verifier reports. Each code is a member of
|
|
53
|
+
* `SecurityFindingCode`.
|
|
54
|
+
*/
|
|
55
|
+
export type StaticPolicyFindingCode = Extract<SecurityFindingCode, "access-declaration-missing" | "cors-invalid" | "cors-method-unavailable" | "document-policy-missing" | "rate-limit-invalid" | "security-exception-reason-missing" | "security-header-render-failed">;
|
|
56
|
+
//# sourceMappingURL=finding-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finding-codes.d.ts","sourceRoot":"","sources":["../../src/security/finding-codes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB;AAC7B,gDAAgD;AAC9C,4BAA4B;AAC9B,wDAAwD;GACtD,mBAAmB;AACrB,qEAAqE;GACnE,kBAAkB;AACpB,wCAAwC;GACtC,eAAe;AACjB,kCAAkC;GAChC,cAAc;AAChB,oEAAoE;GAClE,yBAAyB;AAC3B,uDAAuD;GACrD,cAAc;AAChB,2EAA2E;GACzE,0BAA0B;AAC5B,gEAAgE;GAC9D,wBAAwB;AAC1B,4DAA4D;GAC1D,eAAe;AACjB,6CAA6C;GAC3C,yBAAyB;AAC3B,wCAAwC;GACtC,oBAAoB;AACtB,+CAA+C;GAC7C,oBAAoB;AACtB,gEAAgE;GAC9D,4BAA4B;AAC9B,yDAAyD;GACvD,2BAA2B;AAC7B,mDAAmD;GACjD,gCAAgC;AAClC,uDAAuD;GACrD,0BAA0B;AAC5B,gDAAgD;GAC9C,wBAAwB;AAC1B,uEAAuE;GACrE,uCAAuC;AACzC,6CAA6C;GAC3C,mCAAmC;AACrC,6CAA6C;GAC3C,+BAA+B,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAC3C,mBAAmB,EACjB,4BAA4B,GAC5B,cAAc,GACd,yBAAyB,GACzB,yBAAyB,GACzB,oBAAoB,GACpB,mCAAmC,GACnC,+BAA+B,CAClC,CAAC"}
|
package/dist/security/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { auditScriptDependencies, createSecurityAudit, } from "./audit";
|
|
2
|
+
export { authorizeRoute, defineAuthorization, mergeRouteAccess, permitsRequest, resolveRouteAccess, } from "./authorization";
|
|
2
3
|
export { applyCorsHeaders, createCorsHeaders, createCorsPreflightResponse, validateCorsPolicy, } from "./cors";
|
|
3
4
|
export { createSecureCookie, readSecureCookie, secureCookieName, validateSecureCookie, } from "./cookies";
|
|
4
5
|
export type { CookieIssue, CookieIssueCode, CookieSameSite, CookieScope, SecureCookieDeclaration, SecureCookieDefinition, } from "./cookies";
|
|
@@ -18,12 +19,14 @@ export { createSessionManager, SessionStoreConflictError, SessionStoreUnavailabl
|
|
|
18
19
|
export type { ServerSession, SessionManager, SessionManagerOptions, } from "./session-manager";
|
|
19
20
|
export type { MemorySessionStoreOptions, SessionData, SessionNamespace, SessionPrimitive, SessionRecord, SessionStore, SessionStoreCandidate, SessionStoreWriteResult, } from "./session-store";
|
|
20
21
|
export { createSecurityReportHandler, } from "./report";
|
|
21
|
-
export { enforceAllowedMethods, enforceRequestSecurity, parseBodySize, } from "./request";
|
|
22
|
+
export { DEFAULT_MAX_BODY_SIZE, enforceAllowedMethods, enforceRequestSecurity, parseBodySize, } from "./request";
|
|
22
23
|
export { validateUploads, } from "./upload";
|
|
23
24
|
export { validateRouteModules } from "./verification";
|
|
24
25
|
export type { RouteModuleVerificationOptions } from "./verification";
|
|
25
26
|
export { checkWebSocketOrigin, enforceWebSocketOrigin, } from "./websocket";
|
|
26
|
-
export type { ContentSecurityPolicy, CorsPolicy, CorsRequestContext, CorsResponseOptions, CsrfPolicy, CspHashAlgorithm, CspDirectiveValue, CspDirectiveReplacement, CspSource, CspSourceDirective, FetchMetadataCheck, FetchMetadataDestination, FetchMetadataPolicy, FetchMetadataPolicyOptions, FetchMetadataReason, MemoryRateLimitStoreOptions, RateLimitKey, RateLimitPolicy, RateLimitResult, RateLimitStore, ReferrerPolicy, ReportingEndpointUrl, ReportingEndpoints, SecurityAudit, SecurityAuditFinding, SecurityAuditOptions, ScriptDependencyAuditOptions, RequestSecurityPolicy, RoutePolicy, RouteSecurityNeeds, RouteSecurityPolicy, SecurityHeadersOptions, SecurityHeaderPolicy, SecurityPolicy, SecurityPreset, StrictTransportSecurityPolicy, TrustedTypesPolicy, } from "./types";
|
|
27
|
+
export type { AuthorizationDecision, AuthorizationDenial, AuthorizationDenialStatus, ContentSecurityPolicy, CorsPolicy, CorsRequestContext, CorsResponseOptions, CsrfPolicy, CspHashAlgorithm, CspDirectiveValue, CspDirectiveReplacement, CspSource, CspSourceDirective, FetchMetadataCheck, FetchMetadataDestination, FetchMetadataPolicy, FetchMetadataPolicyOptions, FetchMetadataReason, BodySizeException, BodySizeValue, CspException, CsrfException, CsrfPolicyOptions, MemoryRateLimitStoreOptions, RateLimitKey, RateLimitPolicy, RateLimitResult, RateLimitStore, ReferrerPolicy, ReportingEndpointUrl, ReportingEndpoints, SecurityAudit, SecurityAuditFinding, SecurityException, SecurityExceptionOrigin, SecurityAuditOptions, ScriptDependencyAuditOptions, MergedRoutePolicy, RequestSecurityPolicy, ResolvedRouteAccess, RouteAccessException, RouteAccessPolicy, RouteAccessSource, RouteAuthorizationEntry, RouteAuthorizationHook, RoutePolicy, RouteSecurityNeeds, RouteSecurityPolicy, SecurityHeadersOptions, SecurityHeaderPolicy, SecurityPolicy, SecurityPreset, StrictTransportSecurityPolicy, TrustedTypesPolicy, } from "./types";
|
|
28
|
+
export type { SecurityFindingCode, StaticPolicyFindingCode, } from "./finding-codes";
|
|
29
|
+
export { attachExceptionSource, getBodySizeException, getCspException, getCsrfException, isSecurityException, resolveCsp, resolveCsrf, resolveMaxBodySize, } from "./exceptions";
|
|
27
30
|
export type { UploadFilePolicy, UploadPolicy, UploadValidationIssue, UploadValidationResult, } from "./upload";
|
|
28
31
|
export type { EnvSchema, EnvSchemaDescriptor, EnvSource, EnvValidationIssue, EnvVariable, EnvVariableDescriptor, EnvVariableKind, InferEnvSchema, } from "./env";
|
|
29
32
|
export type { SecurityReportContext, SecurityReportHandlerOptions, SecurityReportPayload, } from "./report";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CspHashAlgorithm, RoutePolicy, RouteSecurityPolicy, SecurityHeadersOptions, SecurityPolicy, SecurityPreset } from "./types";
|
|
1
|
+
import type { CspHashAlgorithm, MergedRoutePolicy, RoutePolicy, RouteSecurityPolicy, SecurityHeadersOptions, SecurityPolicy, SecurityPreset } from "./types";
|
|
2
2
|
export declare const cspNonce: "'nonce-{nonce}'";
|
|
3
3
|
export declare const security: {
|
|
4
4
|
api(options?: SecurityPolicy): SecurityPolicy;
|
|
@@ -10,10 +10,7 @@ export declare const security: {
|
|
|
10
10
|
export declare function defineSecurityPolicy(policy: SecurityPolicy): SecurityPolicy;
|
|
11
11
|
export declare function defineRoutePolicy(policy: RoutePolicy): RoutePolicy;
|
|
12
12
|
export declare function mergeSecurityPolicies(...policies: Array<SecurityPolicy | false | undefined>): SecurityPolicy;
|
|
13
|
-
export declare function mergeRoutePolicies(...policies: Array<RoutePolicy | false | undefined>):
|
|
14
|
-
document: SecurityPolicy | undefined;
|
|
15
|
-
security?: RouteSecurityPolicy;
|
|
16
|
-
};
|
|
13
|
+
export declare function mergeRoutePolicies(...policies: Array<RoutePolicy | false | undefined>): MergedRoutePolicy;
|
|
17
14
|
export declare function mergeRouteSecurityPolicies(...policies: Array<RouteSecurityPolicy | false | undefined>): RouteSecurityPolicy;
|
|
18
15
|
export declare function cspHash(source: string, algorithm?: CspHashAlgorithm): Promise<string>;
|
|
19
16
|
export declare function createSecurityHeaders(policy: SecurityPolicy, options?: SecurityHeadersOptions): Headers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/security/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAGhB,iBAAiB,EACjB,WAAW,EAEX,mBAAmB,EACnB,sBAAsB,EAEtB,cAAc,EACd,cAAc,EAGf,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,QAAQ,mBAAmC,CAAC;AAyCzD,eAAO,MAAM,QAAQ;kBACN,cAAc;iBAQd,cAAc,YAAW,cAAc;qBAepC,cAAc;qBASd,cAAc;kCASD,cAAc;CAW5C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,kBAE1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,eAEpD;AAED,wBAAgB,qBAAqB,CACnC,GAAG,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,GAAG,SAAS,CAAC,kBASvD;AAED,wBAAgB,kBAAkB,CAChC,GAAG,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC,GAClD,iBAAiB,CAqBnB;AAED,wBAAgB,0BAA0B,CACxC,GAAG,QAAQ,EAAE,KAAK,CAAC,mBAAmB,GAAG,KAAK,GAAG,SAAS,CAAC,uBAe5D;AA2FD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,gBAA2B,mBAQvC;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,sBAA2B,WAsCrC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,GAAG,KAAK,GAAG,SAAS,WAc3C;AAED,wBAAgB,cAAc,WAK7B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { BodySizeValue } from "./types";
|
|
1
2
|
type MaybePromise<T> = Promise<T> | T;
|
|
2
3
|
export type SecurityReportPayload = unknown;
|
|
3
4
|
export type SecurityReportHandlerOptions = {
|
|
4
|
-
maxBodySize?:
|
|
5
|
+
maxBodySize?: BodySizeValue;
|
|
5
6
|
onReport?: (report: SecurityReportPayload, context: SecurityReportContext) => MaybePromise<void>;
|
|
6
7
|
};
|
|
7
8
|
export type SecurityReportContext = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/security/report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/security/report.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,KAAK,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEtC,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE5C,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,CACT,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,qBAAqB,KAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,4BAAiC,IAEC,SAAS,OAAO,uBAqD5D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { HttpMethod } from "../route/types";
|
|
2
2
|
import type { RequestSecurityPolicy } from "./types";
|
|
3
|
+
export declare const DEFAULT_MAX_BODY_SIZE: "1mb";
|
|
3
4
|
export declare function enforceRequestSecurity(policy: RequestSecurityPolicy | undefined, request: Request, method: HttpMethod): Response | null;
|
|
4
5
|
export declare class RequestBodyTooLargeError extends Error {
|
|
5
6
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/security/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/security/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAcrD,eAAO,MAAM,qBAAqB,EAAG,KAAc,CAAC;AAEpD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,mBA+BnB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;;CAKlD;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,OAAO,EAAE,OAAO,WAoDjB;AAED,wBAAgB,2BAA2B,aAE1C;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,GAAG,SAAS,EACzC,MAAM,EAAE,UAAU,mBAgBnB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,UA2BnD"}
|
package/dist/security/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ScriptTag } from "../document/scripts";
|
|
2
|
-
import type {
|
|
2
|
+
import type { SecurityFindingCode } from "./finding-codes";
|
|
3
|
+
import type { HttpMethod, HttpRouteContext } from "../route/types";
|
|
3
4
|
export type CspSource = "'self'" | "'none'" | "'unsafe-inline'" | "'unsafe-eval'" | "'strict-dynamic'" | "data:" | "blob:" | "https:" | "http:" | (string & {});
|
|
4
5
|
export type CspDirectiveReplacement<Source extends string = CspSource> = {
|
|
5
6
|
replace: readonly Source[];
|
|
@@ -73,6 +74,37 @@ export type TrustedTypesPolicy = {
|
|
|
73
74
|
policies?: readonly string[];
|
|
74
75
|
requireFor?: readonly ["script"];
|
|
75
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* The origin of a security exception. An application declares an exception in
|
|
79
|
+
* a `@policy.ts` file or in a route file. A framework helper declares an
|
|
80
|
+
* exception on behalf of the application.
|
|
81
|
+
*/
|
|
82
|
+
export type SecurityExceptionOrigin = "application" | "framework";
|
|
83
|
+
/**
|
|
84
|
+
* A typed security exception.
|
|
85
|
+
*
|
|
86
|
+
* Every exception states a reason, and the audit reports that reason. The
|
|
87
|
+
* `value` field holds the value that the application accepts. Each exception
|
|
88
|
+
* of the framework uses this one shape, so a reader learns one syntax.
|
|
89
|
+
*/
|
|
90
|
+
export type SecurityException<Value> = {
|
|
91
|
+
/** The origin of the declaration. The default origin is "application". */
|
|
92
|
+
origin?: SecurityExceptionOrigin;
|
|
93
|
+
/** The reason that the application accepts this value. */
|
|
94
|
+
reason: string;
|
|
95
|
+
/** The file or the framework helper that declared the exception. */
|
|
96
|
+
source?: string;
|
|
97
|
+
/** The value that the application accepts. */
|
|
98
|
+
value: Value;
|
|
99
|
+
};
|
|
100
|
+
/** Accepts a document that carries no Content-Security-Policy. */
|
|
101
|
+
export type CspException = SecurityException<false>;
|
|
102
|
+
/** Accepts an unsafe method that runs no CSRF check. */
|
|
103
|
+
export type CsrfException = SecurityException<false>;
|
|
104
|
+
/** A request body limit, in bytes or with a b, kb, mb, or gb suffix. */
|
|
105
|
+
export type BodySizeValue = number | `${number}${"b" | "gb" | "kb" | "mb"}`;
|
|
106
|
+
/** Accepts a request body limit above the default limit. */
|
|
107
|
+
export type BodySizeException = SecurityException<BodySizeValue>;
|
|
76
108
|
export type CorsPolicy = {
|
|
77
109
|
credentials?: boolean;
|
|
78
110
|
exposeHeaders?: readonly string[];
|
|
@@ -91,11 +123,16 @@ export type CorsResponseOptions = {
|
|
|
91
123
|
methods?: readonly HttpMethod[];
|
|
92
124
|
preflight?: false;
|
|
93
125
|
};
|
|
94
|
-
export type
|
|
126
|
+
export type CsrfPolicyOptions = {
|
|
95
127
|
cookie?: string;
|
|
96
128
|
field?: string;
|
|
97
129
|
header?: string;
|
|
98
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* A route declares `true` or an options object to protect an unsafe method.
|
|
133
|
+
* A route that accepts no CSRF protection declares a `CsrfException`.
|
|
134
|
+
*/
|
|
135
|
+
export type CsrfPolicy = true | CsrfException | CsrfPolicyOptions;
|
|
99
136
|
/**
|
|
100
137
|
* A value of the `Sec-Fetch-Dest` header. The list holds the destinations that
|
|
101
138
|
* a cross-site exemption usually names. Any other string stays valid.
|
|
@@ -136,7 +173,14 @@ export type FetchMetadataCheck = {
|
|
|
136
173
|
};
|
|
137
174
|
export type RequestSecurityPolicy = {
|
|
138
175
|
allowedMethods?: readonly HttpMethod[];
|
|
139
|
-
|
|
176
|
+
/**
|
|
177
|
+
* A route that declares no value still inherits the ADR 0015 default of
|
|
178
|
+
* `"1mb"`. The shared pipeline enforces the effective value while it reads
|
|
179
|
+
* the body, so a request with no `Content-Length` header cannot pass it. A
|
|
180
|
+
* route that raises this value above the default is a typed exception that
|
|
181
|
+
* `createSecurityAudit(...)` reports.
|
|
182
|
+
*/
|
|
183
|
+
maxBodySize?: BodySizeValue | BodySizeException;
|
|
140
184
|
};
|
|
141
185
|
export type RateLimitKey = "ip" | {
|
|
142
186
|
header: string;
|
|
@@ -172,14 +216,102 @@ export type RouteSecurityPolicy = {
|
|
|
172
216
|
rateLimit?: RateLimitPolicy;
|
|
173
217
|
request?: RequestSecurityPolicy;
|
|
174
218
|
};
|
|
219
|
+
/**
|
|
220
|
+
* The status that a denied request receives. The default status is 403.
|
|
221
|
+
*/
|
|
222
|
+
export type AuthorizationDenialStatus = 401 | 403 | 404;
|
|
223
|
+
export type AuthorizationDenial = {
|
|
224
|
+
allow: false;
|
|
225
|
+
status?: AuthorizationDenialStatus;
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* The result of an authorization hook. The framework permits the request only
|
|
229
|
+
* for `true` or for an object with `allow: true`. Every other result denies
|
|
230
|
+
* the request.
|
|
231
|
+
*/
|
|
232
|
+
export type AuthorizationDecision = boolean | {
|
|
233
|
+
allow: true;
|
|
234
|
+
} | AuthorizationDenial;
|
|
235
|
+
/**
|
|
236
|
+
* An application check that decides if the person can use the route.
|
|
237
|
+
*
|
|
238
|
+
* The hook reads the request context that inherited middleware filled in. The
|
|
239
|
+
* framework supplies no roles, no tenants, and no permission language.
|
|
240
|
+
*/
|
|
241
|
+
export type RouteAuthorizationHook = {
|
|
242
|
+
bivarianceHack(context: HttpRouteContext<string, object>): AuthorizationDecision | Promise<AuthorizationDecision>;
|
|
243
|
+
}["bivarianceHack"];
|
|
244
|
+
/**
|
|
245
|
+
* An explicit exception that removes each inherited authorization hook for
|
|
246
|
+
* this subtree. The reason makes the exception auditable.
|
|
247
|
+
*/
|
|
248
|
+
export type RouteAccessException = {
|
|
249
|
+
reason: string;
|
|
250
|
+
/** The part of the route tree that the exception covers. */
|
|
251
|
+
scope?: string;
|
|
252
|
+
/** The file that declared the exception. */
|
|
253
|
+
source?: string;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* The access declaration of the route policy cascade.
|
|
257
|
+
*
|
|
258
|
+
* A route requires an inherited declaration. The declaration states public
|
|
259
|
+
* access, or it supplies an authorization hook. A child declaration adds a
|
|
260
|
+
* restriction. Only an explicit exception removes an inherited hook.
|
|
261
|
+
*/
|
|
262
|
+
export type RouteAccessPolicy = {
|
|
263
|
+
/** An authorization hook that must permit the request. */
|
|
264
|
+
authorize?: RouteAuthorizationHook;
|
|
265
|
+
/** The status that a denial from this subtree uses. */
|
|
266
|
+
denyStatus?: AuthorizationDenialStatus;
|
|
267
|
+
/** States that the route serves every person. */
|
|
268
|
+
public?: boolean;
|
|
269
|
+
/** Removes each inherited authorization hook for this subtree. */
|
|
270
|
+
replaces?: RouteAccessException;
|
|
271
|
+
};
|
|
272
|
+
export type RouteAuthorizationEntry = {
|
|
273
|
+
authorize: RouteAuthorizationHook;
|
|
274
|
+
/** The file that declared the hook. */
|
|
275
|
+
source?: string;
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* The effective access of one route, after the framework reads the cascade.
|
|
279
|
+
*/
|
|
280
|
+
export type ResolvedRouteAccess = {
|
|
281
|
+
/** Each inherited hook, from the root of the subtree to the route. */
|
|
282
|
+
chain: readonly RouteAuthorizationEntry[];
|
|
283
|
+
/** `true` when some declaration in the cascade states access. */
|
|
284
|
+
declared: boolean;
|
|
285
|
+
denyStatus: AuthorizationDenialStatus;
|
|
286
|
+
exceptions: readonly RouteAccessException[];
|
|
287
|
+
/** `true` when the declared access leaves no hook to run. */
|
|
288
|
+
public: boolean;
|
|
289
|
+
};
|
|
290
|
+
/** One access declaration and the file that supplied it. */
|
|
291
|
+
export type RouteAccessSource = {
|
|
292
|
+
policy?: RouteAccessPolicy;
|
|
293
|
+
source?: string;
|
|
294
|
+
};
|
|
175
295
|
export type RoutePolicy = {
|
|
296
|
+
access?: RouteAccessPolicy;
|
|
176
297
|
document?: SecurityPolicy;
|
|
177
298
|
security?: RouteSecurityPolicy;
|
|
178
299
|
};
|
|
300
|
+
/** A route policy after the framework merges the cascade. */
|
|
301
|
+
export type MergedRoutePolicy = Omit<RoutePolicy, "access"> & {
|
|
302
|
+
access: ResolvedRouteAccess;
|
|
303
|
+
};
|
|
179
304
|
export type SecurityAuditFinding = {
|
|
180
|
-
code:
|
|
305
|
+
code: SecurityFindingCode;
|
|
181
306
|
message: string;
|
|
307
|
+
/**
|
|
308
|
+
* The origin of the declaration that caused the finding. The audit sets
|
|
309
|
+
* this field for a finding that reports a typed security exception.
|
|
310
|
+
*/
|
|
311
|
+
origin?: SecurityExceptionOrigin;
|
|
182
312
|
severity: "error" | "info" | "warning";
|
|
313
|
+
/** The file or the framework helper that declared the exception. */
|
|
314
|
+
source?: string;
|
|
183
315
|
};
|
|
184
316
|
export type SecurityAuditOptions = {
|
|
185
317
|
document?: {
|
|
@@ -189,6 +321,7 @@ export type SecurityAuditOptions = {
|
|
|
189
321
|
scripts?: readonly ScriptTag[];
|
|
190
322
|
};
|
|
191
323
|
route?: {
|
|
324
|
+
access?: ResolvedRouteAccess;
|
|
192
325
|
cors?: CorsPolicy;
|
|
193
326
|
method: HttpMethod;
|
|
194
327
|
security?: RouteSecurityPolicy;
|
|
@@ -215,7 +348,7 @@ export type SecurityHeaderPolicy = {
|
|
|
215
348
|
strictTransportSecurity?: StrictTransportSecurityPolicy | false;
|
|
216
349
|
};
|
|
217
350
|
export type SecurityPolicy = {
|
|
218
|
-
csp?: ContentSecurityPolicy |
|
|
351
|
+
csp?: ContentSecurityPolicy | CspException;
|
|
219
352
|
headers?: SecurityHeaderPolicy;
|
|
220
353
|
trustedTypes?: TrustedTypesPolicy | false;
|
|
221
354
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BodySizeValue } from "./types";
|
|
2
2
|
export type UploadFilePolicy = {
|
|
3
|
-
maxSize?:
|
|
3
|
+
maxSize?: BodySizeValue;
|
|
4
4
|
required?: boolean;
|
|
5
5
|
types?: readonly string[];
|
|
6
6
|
};
|
|
7
7
|
export type UploadPolicy = {
|
|
8
8
|
files: Record<string, UploadFilePolicy>;
|
|
9
|
-
maxTotalSize?:
|
|
9
|
+
maxTotalSize?: BodySizeValue;
|
|
10
10
|
};
|
|
11
11
|
export type UploadValidationIssue = {
|
|
12
12
|
code: "file-missing" | "file-too-large" | "file-type-not-allowed" | "total-upload-too-large";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/security/upload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/security/upload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EACA,cAAc,GACd,gBAAgB,GAChB,uBAAuB,GACvB,wBAAwB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,GACnB,sBAAsB,CAwCxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/security/verification.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/security/verification.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAKV,WAAW,EACZ,MAAM,UAAU,CAAC;AAalB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAYF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAC9C,OAAO,GAAE,8BAAmC,iBAmC7C"}
|
|
@@ -44,8 +44,9 @@ export type PageRenderer = (match: LoadedRouteMatch, options: SsrRenderOptions)
|
|
|
44
44
|
export declare function createRequestHandler(options: RequestHandlerOptions): (request: Request) => Promise<Response>;
|
|
45
45
|
export declare function handleRequestWithManifest(manifest: RouteManifest, request: Request, options?: RequestRuntimeOptions): Promise<Response>;
|
|
46
46
|
export declare function loadInheritedRoutePolicy(manifest: RouteManifest, route: Pick<RouteRecord, "fileSegments">, routeModule: RouteModule, capability: RouteCapability | undefined): Promise<{
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
access: import("..").ResolvedRouteAccess;
|
|
48
|
+
document?: import("..").SecurityPolicy | undefined;
|
|
49
|
+
security?: import("..").RouteSecurityPolicy | undefined;
|
|
49
50
|
}>;
|
|
50
51
|
export {};
|
|
51
52
|
//# sourceMappingURL=request-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-handler.d.ts","sourceRoot":"","sources":["../../src/server/request-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAYL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAKL,KAAK,aAAa,EAElB,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,
|
|
1
|
+
{"version":3,"file":"request-handler.d.ts","sourceRoot":"","sources":["../../src/server/request-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/server-only/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sources":["../../src/server-only/browser.ts"],"sourcesContent":["export {};\n\n// A browser build resolves the \"browser\" condition of the\n// \"@demiurgejs/core/server-only\" package export to this file. A build that\n// reaches this file put a server-only module in a browser bundle. The error\n// on evaluation stops that bundle from running.\nthrow new Error(\n 'Demiurge found a server-only module in a browser bundle. Remove the import of \"@demiurgejs/core/server-only\" from client code, or move the server logic to a module that no client module imports.',\n);\n"],"names":[],"mappings":"AAMA,MAAM,IAAI;AAAA,EACR;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server-only/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/static/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { readFile as A, mkdir as x, mkdtemp as G, cp as K, writeFile as L, rm as C, rename as ut } from "node:fs/promises";
|
|
2
2
|
import { resolve as h, relative as E, sep as O, extname as lt, dirname as M, join as $ } from "node:path";
|
|
3
|
-
import { d as ft, S as j } from "../chunks/index-
|
|
4
|
-
import { i as H, v as dt,
|
|
3
|
+
import { d as ft, S as j } from "../chunks/index-0MNiR_wo.js";
|
|
4
|
+
import { i as H, v as dt, b as ht, d as D, l as Z, e as pt, c as mt, h as wt, r as yt, f as gt, g as St, j as Et, m as vt, k as Y, n as $t } from "../chunks/testing-CUwGj2ie.js";
|
|
5
5
|
import "react-dom/server";
|
|
6
6
|
import { c as Ot, D as Rt, C as Q, I as Tt, R as At } from "../chunks/static-files-ehaD1kE7.js";
|
|
7
7
|
import "react";
|
|
8
8
|
import "react/jsx-runtime";
|
|
9
|
-
import { t as Ft, n as Nt, r as Pt } from "../chunks/image-codec-
|
|
10
|
-
import { e as X, g as bt, p as xt, h as Ct } from "../chunks/images-
|
|
9
|
+
import { t as Ft, n as Nt, r as Pt } from "../chunks/image-codec-Dh1POFhE.js";
|
|
10
|
+
import { e as X, g as bt, p as xt, h as Ct } from "../chunks/images-CG7ZzayG.js";
|
|
11
11
|
import { createServer as Ht } from "node:http";
|
|
12
12
|
import { pathToRegexp as It } from "path-to-regexp";
|
|
13
13
|
async function Jt(t) {
|
package/dist/vite/index.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
export { assertRootNotFoundRoute as unstable_assertRootNotFoundRoute,
|
|
1
|
+
export { assertRootNotFoundRoute as unstable_assertRootNotFoundRoute, createClientEntrySource as unstable_createClientEntrySource, createClientEnvSource as unstable_createClientEnvSource, createServerEntrySource as unstable_createServerEntrySource, createDocumentHtml as unstable_createDocumentHtml, createDevRouteImporters as unstable_createDevRouteImporters, handleDevRequest as unstable_handleDevRequest, stripClientPageData as unstable_stripClientPageData, verifyRoutePolicies as unstable_verifyRoutePolicies, formatStaticPolicyFindings as unstable_formatStaticPolicyFindings, } from "./plugin";
|
|
2
2
|
export { isRouteAuditEnabled as unstable_isRouteAuditEnabled, } from "./plugin";
|
|
3
|
-
export { verifyRoutePolicySource as unstable_verifyRoutePolicySource, } from "./policy-verification";
|
|
3
|
+
export { auditRouteAccessCoverage as unstable_auditRouteAccessCoverage, declaresPageRoute as unstable_declaresPageRoute, inspectRouteFile as unstable_inspectRouteFile, verifyRoutePolicySource as unstable_verifyRoutePolicySource, } from "./policy-verification";
|
|
4
|
+
export type { DocumentCspState as unstable_DocumentCspState, RouteAccessState as unstable_RouteAccessState, RouteFileInspection as unstable_RouteFileInspection, StaticPolicyFinding as unstable_StaticPolicyFinding, } from "./policy-verification";
|
|
4
5
|
export { findEnvKeyReferences as unstable_findEnvKeyReferences, findImportPath as unstable_findEnvImportPath, findServerEnvKeys as unstable_findServerEnvKeys, formatEnvBoundaryFindings as unstable_formatEnvBoundaryFindings, } from "./env-boundary";
|
|
5
6
|
export type { EnvBoundaryFinding as unstable_EnvBoundaryFinding, } from "./env-boundary";
|
|
6
|
-
export {
|
|
7
|
+
export { formatServerOnlyBoundaryFindings as unstable_formatServerOnlyBoundaryFindings, formatServerOnlyDevError as unstable_formatServerOnlyDevError, importsServerOnlyMarker as unstable_importsServerOnlyMarker, } from "./server-only-boundary";
|
|
8
|
+
export type { ServerOnlyBoundaryFinding as unstable_ServerOnlyBoundaryFinding, } from "./server-only-boundary";
|
|
9
|
+
export { createRouteAudit as unstable_createRouteAudit, renderRouteAuditDocument as unstable_renderRouteAuditDocument, ROUTE_AUDIT_PATH as unstable_ROUTE_AUDIT_PATH, ROUTE_AUDIT_VERSION as unstable_ROUTE_AUDIT_VERSION, } from "./route-audit";
|
|
7
10
|
export { demiurge as unstable_demiurge, } from "./plugin";
|
|
8
11
|
export type { DemiurgeVitePluginApi as unstable_DemiurgeVitePluginApi, DemiurgeVitePluginOptions as unstable_DemiurgeVitePluginOptions, } from "./plugin";
|
|
9
|
-
export type { RouteAudit, RouteAuditCacheRead, RouteAuditRoute, RouteAuditScript, } from "./route-audit";
|
|
12
|
+
export type { RouteAudit as unstable_RouteAudit, RouteAuditCacheRead as unstable_RouteAuditCacheRead, RouteAuditRoute as unstable_RouteAuditRoute, RouteAuditScript as unstable_RouteAuditScript, RouteAuditSection as unstable_RouteAuditSection, } from "./route-audit";
|
|
13
|
+
export { inspectRoutePolicies as unstable_inspectRoutePolicies, } from "./plugin";
|
|
14
|
+
export type { RoutePolicyInspection as unstable_RoutePolicyInspection, } from "./plugin";
|
|
10
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/vite/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,gCAAgC,EAC3D,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,IAAI,gCAAgC,EAC3D,uBAAuB,IAAI,gCAAgC,EAC3D,qBAAqB,IAAI,8BAA8B,EACvD,uBAAuB,IAAI,gCAAgC,EAC3D,kBAAkB,IAAI,2BAA2B,EACjD,uBAAuB,IAAI,gCAAgC,EAC3D,gBAAgB,IAAI,yBAAyB,EAC7C,mBAAmB,IAAI,4BAA4B,EACnD,mBAAmB,IAAI,4BAA4B,EACnD,0BAA0B,IAAI,mCAAmC,GAClE,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,IAAI,iCAAiC,EAC7D,iBAAiB,IAAI,0BAA0B,EAC/C,gBAAgB,IAAI,yBAAyB,EAC7C,uBAAuB,IAAI,gCAAgC,GAC5D,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,IAAI,yBAAyB,EAC7C,gBAAgB,IAAI,yBAAyB,EAC7C,mBAAmB,IAAI,4BAA4B,EACnD,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,IAAI,6BAA6B,EACrD,cAAc,IAAI,0BAA0B,EAC5C,iBAAiB,IAAI,0BAA0B,EAC/C,yBAAyB,IAAI,kCAAkC,GAChE,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,kBAAkB,IAAI,2BAA2B,GAClD,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gCAAgC,IAAI,yCAAyC,EAC7E,wBAAwB,IAAI,iCAAiC,EAC7D,uBAAuB,IAAI,gCAAgC,GAC5D,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,yBAAyB,IAAI,kCAAkC,GAChE,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,IAAI,iCAAiC,EAC7D,gBAAgB,IAAI,yBAAyB,EAC7C,mBAAmB,IAAI,4BAA4B,GACpD,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,IAAI,iBAAiB,GAC9B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,qBAAqB,IAAI,8BAA8B,EACvD,yBAAyB,IAAI,kCAAkC,GAChE,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,UAAU,IAAI,mBAAmB,EACjC,mBAAmB,IAAI,4BAA4B,EACnD,eAAe,IAAI,wBAAwB,EAC3C,gBAAgB,IAAI,yBAAyB,EAC7C,iBAAiB,IAAI,0BAA0B,GAChD,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,IAAI,6BAA6B,GACtD,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,qBAAqB,IAAI,8BAA8B,GACxD,MAAM,UAAU,CAAC"}
|
package/dist/vite/index.js
CHANGED
|
@@ -1,25 +1,32 @@
|
|
|
1
|
-
import { R as t, a as s,
|
|
1
|
+
import { R as t, a as s, b as n, c as u, d as r, e as l, f as o, g as i, h as _, i as b, j as c, k as d, l as R, m as v, n as y, o as m, p as f, q as E, r as S, s as g, t as p, u as A, v as D, w as P, x as O, y as F, z as I, A as T } from "../chunks/plugin-BZauDxRY.js";
|
|
2
2
|
export {
|
|
3
3
|
t as unstable_ROUTE_AUDIT_PATH,
|
|
4
|
-
s as
|
|
5
|
-
n as
|
|
6
|
-
u as
|
|
7
|
-
r as
|
|
8
|
-
l as
|
|
9
|
-
o as
|
|
10
|
-
i as
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
c as
|
|
14
|
-
d as
|
|
15
|
-
R as
|
|
16
|
-
v as
|
|
17
|
-
|
|
18
|
-
m as
|
|
19
|
-
|
|
20
|
-
E as
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
4
|
+
s as unstable_ROUTE_AUDIT_VERSION,
|
|
5
|
+
n as unstable_assertRootNotFoundRoute,
|
|
6
|
+
u as unstable_auditRouteAccessCoverage,
|
|
7
|
+
r as unstable_createClientEntrySource,
|
|
8
|
+
l as unstable_createClientEnvSource,
|
|
9
|
+
o as unstable_createDevRouteImporters,
|
|
10
|
+
i as unstable_createDocumentHtml,
|
|
11
|
+
_ as unstable_createRouteAudit,
|
|
12
|
+
b as unstable_createServerEntrySource,
|
|
13
|
+
c as unstable_declaresPageRoute,
|
|
14
|
+
d as unstable_demiurge,
|
|
15
|
+
R as unstable_findEnvImportPath,
|
|
16
|
+
v as unstable_findEnvKeyReferences,
|
|
17
|
+
y as unstable_findServerEnvKeys,
|
|
18
|
+
m as unstable_formatEnvBoundaryFindings,
|
|
19
|
+
f as unstable_formatServerOnlyBoundaryFindings,
|
|
20
|
+
E as unstable_formatServerOnlyDevError,
|
|
21
|
+
S as unstable_formatStaticPolicyFindings,
|
|
22
|
+
g as unstable_handleDevRequest,
|
|
23
|
+
p as unstable_importsServerOnlyMarker,
|
|
24
|
+
A as unstable_inspectRouteFile,
|
|
25
|
+
D as unstable_inspectRoutePolicies,
|
|
26
|
+
P as unstable_isRouteAuditEnabled,
|
|
27
|
+
O as unstable_renderRouteAuditDocument,
|
|
28
|
+
F as unstable_stripClientPageData,
|
|
29
|
+
I as unstable_verifyRoutePolicies,
|
|
30
|
+
T as unstable_verifyRoutePolicySource
|
|
24
31
|
};
|
|
25
32
|
//# sourceMappingURL=index.js.map
|