@aotter/mantle-cloudflare 0.1.0-alpha.9 → 0.1.2-alpha.2
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 +88 -13
- package/dist/auth/conventionalAuth.d.ts +1 -0
- package/dist/auth/conventionalAuth.d.ts.map +1 -1
- package/dist/auth/conventionalAuth.js +2 -0
- package/dist/auth/conventionalAuth.js.map +1 -1
- package/dist/auth/createAuth.d.ts +24 -11
- package/dist/auth/createAuth.d.ts.map +1 -1
- package/dist/auth/createAuth.js +274 -23
- package/dist/auth/createAuth.js.map +1 -1
- package/dist/auth/emailTemplates.d.ts +7 -0
- package/dist/auth/emailTemplates.d.ts.map +1 -0
- package/dist/auth/emailTemplates.js +27 -0
- package/dist/auth/emailTemplates.js.map +1 -0
- package/dist/bindings/KvSiteConfigRepository.d.ts +44 -0
- package/dist/bindings/KvSiteConfigRepository.d.ts.map +1 -0
- package/dist/bindings/KvSiteConfigRepository.js +286 -0
- package/dist/bindings/KvSiteConfigRepository.js.map +1 -0
- package/dist/bindings/R2MediaStorage.d.ts +2 -3
- package/dist/bindings/R2MediaStorage.d.ts.map +1 -1
- package/dist/bindings/R2MediaStorage.js +59 -42
- package/dist/bindings/R2MediaStorage.js.map +1 -1
- package/dist/bindings/WorkersQueueHookDispatcher.d.ts.map +1 -1
- package/dist/bindings/WorkersQueueHookDispatcher.js +10 -8
- package/dist/bindings/WorkersQueueHookDispatcher.js.map +1 -1
- package/dist/bindings/conventionalBindings.d.ts +3 -1
- package/dist/bindings/conventionalBindings.d.ts.map +1 -1
- package/dist/bindings/conventionalBindings.js +4 -1
- package/dist/bindings/conventionalBindings.js.map +1 -1
- package/dist/bindings/index.d.ts +1 -0
- package/dist/bindings/index.d.ts.map +1 -1
- package/dist/bindings/index.js +1 -0
- package/dist/bindings/index.js.map +1 -1
- package/dist/mount/bootRuntimeOnce.d.ts +4 -0
- package/dist/mount/bootRuntimeOnce.d.ts.map +1 -1
- package/dist/mount/bootRuntimeOnce.js +53 -27
- package/dist/mount/bootRuntimeOnce.js.map +1 -1
- package/dist/mount/cmsConfig.d.ts +12 -1
- package/dist/mount/cmsConfig.d.ts.map +1 -1
- package/dist/mount/mountMcp.d.ts.map +1 -1
- package/dist/mount/mountMcp.js +76 -92
- package/dist/mount/mountMcp.js.map +1 -1
- package/dist/mount/mountPublicRoutes.d.ts +1 -0
- package/dist/mount/mountPublicRoutes.d.ts.map +1 -1
- package/dist/mount/mountPublicRoutes.js +74 -59
- package/dist/mount/mountPublicRoutes.js.map +1 -1
- package/dist/mount/mountRuntimeEndpoints.d.ts.map +1 -1
- package/dist/mount/mountRuntimeEndpoints.js +20 -3
- package/dist/mount/mountRuntimeEndpoints.js.map +1 -1
- package/dist/mount/resolveCaller.d.ts +1 -1
- package/dist/mount/resolveCaller.d.ts.map +1 -1
- package/dist/mount/resolveCaller.js +5 -3
- package/dist/mount/resolveCaller.js.map +1 -1
- package/dist/oauth/cachePolicy.d.ts +3 -1
- package/dist/oauth/cachePolicy.d.ts.map +1 -1
- package/dist/oauth/cachePolicy.js +10 -2
- package/dist/oauth/cachePolicy.js.map +1 -1
- package/dist/oauth/index.d.ts +2 -2
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +2 -2
- package/dist/oauth/index.js.map +1 -1
- package/dist/requestDiagnostics.d.ts +53 -0
- package/dist/requestDiagnostics.d.ts.map +1 -0
- package/dist/requestDiagnostics.js +32 -0
- package/dist/requestDiagnostics.js.map +1 -0
- package/dist/testing.d.ts +19 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +263 -0
- package/dist/testing.js.map +1 -0
- package/dist/worker/createMantleWorker.d.ts +5 -0
- package/dist/worker/createMantleWorker.d.ts.map +1 -1
- package/dist/worker/createMantleWorker.js +58 -19
- package/dist/worker/createMantleWorker.js.map +1 -1
- package/package.json +24 -17
- package/dist/auth/rejectCrossOriginMutation.d.ts +0 -2
- package/dist/auth/rejectCrossOriginMutation.d.ts.map +0 -1
- package/dist/auth/rejectCrossOriginMutation.js +0 -15
- package/dist/auth/rejectCrossOriginMutation.js.map +0 -1
- package/dist/oauth/consentHtml.d.ts +0 -15
- package/dist/oauth/consentHtml.d.ts.map +0 -1
- package/dist/oauth/consentHtml.js +0 -91
- package/dist/oauth/consentHtml.js.map +0 -1
- package/dist/oauth/mountOAuth.d.ts +0 -9
- package/dist/oauth/mountOAuth.d.ts.map +0 -1
- package/dist/oauth/mountOAuth.js +0 -37
- package/dist/oauth/mountOAuth.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mountRuntimeEndpoints.js","sourceRoot":"","sources":["../../src/mount/mountRuntimeEndpoints.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"mountRuntimeEndpoints.js","sourceRoot":"","sources":["../../src/mount/mountRuntimeEndpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,5 +43,5 @@ export type CallerResolution = {
|
|
|
43
43
|
* that precedence order. A presented-but-invalid credential never
|
|
44
44
|
* falls back to a valid session cookie. */
|
|
45
45
|
export declare function resolveCaller(request: Request, options: ResolveCallerOptions): Promise<CallerResolution>;
|
|
46
|
-
export declare function contextForVerifiedUser(userId: string | null, authContext: NonNullable<HandlerContext["auth"]>, auth: Auth, base: Pick<HandlerContext, "env" | "waitUntil"
|
|
46
|
+
export declare function contextForVerifiedUser(userId: string | null, authContext: NonNullable<HandlerContext["auth"]>, auth: Auth, base: Pick<HandlerContext, "env" | "waitUntil">, currentRole?: string | null): Promise<HandlerContext>;
|
|
47
47
|
//# sourceMappingURL=resolveCaller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveCaller.d.ts","sourceRoot":"","sources":["../../src/mount/resolveCaller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,gBAAgB,CAAC;QAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;CACH,CAAC;AAEN;oEACoE;AACpE,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,OAAO,KACb,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B;mEAC2D;QAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,CAAC;AAEN;;2CAE2C;AAC3C,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"resolveCaller.d.ts","sourceRoot":"","sources":["../../src/mount/resolveCaller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAEL,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,gBAAgB,CAAC;QAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;CACH,CAAC;AAEN;oEACoE;AACpE,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,OAAO,KACb,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE1E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IACzD,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B;mEAC2D;QAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC,CAAC;AAEN;;2CAE2C;AAC3C,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA8E3B;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAChD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,WAAW,CAAC,EAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,cAAc,CAAC,CAczB"}
|
|
@@ -63,11 +63,13 @@ export async function resolveCaller(request, options) {
|
|
|
63
63
|
credentialId: session.session.id,
|
|
64
64
|
clientId: null,
|
|
65
65
|
scopes: [],
|
|
66
|
-
}, options.auth, base),
|
|
66
|
+
}, options.auth, base, session.user.roleCurrent ? session.user.role ?? null : undefined),
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
-
export async function contextForVerifiedUser(userId, authContext, auth, base) {
|
|
70
|
-
const role =
|
|
69
|
+
export async function contextForVerifiedUser(userId, authContext, auth, base, currentRole) {
|
|
70
|
+
const role = currentRole !== undefined
|
|
71
|
+
? currentRole
|
|
72
|
+
: userId ? await auth.getUserRole(userId) : null;
|
|
71
73
|
const staff = userId && role && STAFF_ROLE_SET.has(role)
|
|
72
74
|
? { id: userId, role: role }
|
|
73
75
|
: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveCaller.js","sourceRoot":"","sources":["../../src/mount/resolveCaller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resolveCaller.js","sourceRoot":"","sources":["../../src/mount/resolveCaller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export declare const PUBLIC_CACHE_TAG = "mantle-public";
|
|
2
|
+
export declare function normalizeCacheScope(scope: string | undefined): string | undefined;
|
|
3
|
+
export declare function scopedPublicCacheTag(scope: string | undefined): string | undefined;
|
|
2
4
|
/** Apply the Worker's final cache decision after OAuth/default dispatch. */
|
|
3
|
-
export declare function applyCachePolicy(request: Request, response: Response): Response;
|
|
5
|
+
export declare function applyCachePolicy(request: Request, response: Response, publicCacheTag?: string | null): Response;
|
|
4
6
|
//# sourceMappingURL=cachePolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cachePolicy.d.ts","sourceRoot":"","sources":["../../src/oauth/cachePolicy.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAEhD,4EAA4E;AAC5E,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"cachePolicy.d.ts","sourceRoot":"","sources":["../../src/oauth/cachePolicy.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEjF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGlF;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,GAAE,MAAM,GAAG,IAAW,GACnC,QAAQ,CAoCV"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
export const PUBLIC_CACHE_TAG = "mantle-public";
|
|
2
|
+
export function normalizeCacheScope(scope) {
|
|
3
|
+
return scope && /^[a-z0-9][a-z0-9_-]{0,63}$/u.test(scope) ? scope : undefined;
|
|
4
|
+
}
|
|
5
|
+
export function scopedPublicCacheTag(scope) {
|
|
6
|
+
const normalized = normalizeCacheScope(scope);
|
|
7
|
+
return normalized ? `${PUBLIC_CACHE_TAG}-${normalized}` : undefined;
|
|
8
|
+
}
|
|
2
9
|
/** Apply the Worker's final cache decision after OAuth/default dispatch. */
|
|
3
|
-
export function applyCachePolicy(request, response) {
|
|
10
|
+
export function applyCachePolicy(request, response, publicCacheTag = null) {
|
|
4
11
|
const headers = new Headers(response.headers);
|
|
5
12
|
const directives = parseCacheDirectives(headers.get("cache-control"));
|
|
6
13
|
const pathname = new URL(request.url).pathname;
|
|
@@ -19,8 +26,9 @@ export function applyCachePolicy(request, response) {
|
|
|
19
26
|
// final policy is authoritative for both public and private responses.
|
|
20
27
|
headers.delete("cdn-cache-control");
|
|
21
28
|
headers.delete("cloudflare-cdn-cache-control");
|
|
22
|
-
if (publicResponse) {
|
|
29
|
+
if (publicResponse && publicCacheTag) {
|
|
23
30
|
mergeVary(headers, "Cookie", "Authorization");
|
|
31
|
+
headers.set("cache-tag", publicCacheTag);
|
|
24
32
|
}
|
|
25
33
|
else {
|
|
26
34
|
headers.set("cache-control", "private, no-store");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cachePolicy.js","sourceRoot":"","sources":["../../src/oauth/cachePolicy.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,
|
|
1
|
+
{"version":3,"file":"cachePolicy.js","sourceRoot":"","sources":["../../src/oauth/cachePolicy.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { mountAuthorize, type MountAuthorizeOptions, } from "
|
|
2
|
-
export { applyCachePolicy } from "./cachePolicy.js";
|
|
1
|
+
export { mountMantleOAuth as mountAuthorize, type MantleOAuthOptions as MountAuthorizeOptions, } from "@aotter/mantle-admin";
|
|
2
|
+
export { applyCachePolicy, scopedPublicCacheTag } from "./cachePolicy.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,IAAI,cAAc,EAClC,KAAK,kBAAkB,IAAI,qBAAqB,GACjD,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/oauth/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { mountAuthorize, } from "
|
|
2
|
-
export { applyCachePolicy } from "./cachePolicy.js";
|
|
1
|
+
export { mountMantleOAuth as mountAuthorize, } from "@aotter/mantle-admin";
|
|
2
|
+
export { applyCachePolicy, scopedPublicCacheTag } from "./cachePolicy.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/oauth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/oauth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,IAAI,cAAc,GAEnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
export type DiagnosticPhase = "oauth" | "role" | "runtime" | "catalog" | "dispatcherBuild" | "dispatch";
|
|
3
|
+
export type CatalogSource = "not-reached" | "kv-hit" | "d1-miss" | "d1-repair" | "d1-kv-error" | "binding-absent";
|
|
4
|
+
export interface BindingDiagnostics {
|
|
5
|
+
calls: number;
|
|
6
|
+
failures: number;
|
|
7
|
+
inFlight: number;
|
|
8
|
+
maxInFlight: number;
|
|
9
|
+
byteSamples: number;
|
|
10
|
+
wallMs: number;
|
|
11
|
+
bytes: number | null;
|
|
12
|
+
bytesSource: "utf8" | "buffer" | "serialized-result" | "object-result" | "mixed" | null;
|
|
13
|
+
}
|
|
14
|
+
export interface RequestDiagnosticRecord {
|
|
15
|
+
version: 1;
|
|
16
|
+
requestId: string;
|
|
17
|
+
surface: "health" | "catalog" | "view" | "procedure" | "admin" | "mcp" | "web" | "r2" | "setup";
|
|
18
|
+
arrivalAt: number;
|
|
19
|
+
simultaneousArrivals: number;
|
|
20
|
+
status: number | null;
|
|
21
|
+
outcome: "http-ok" | "denied" | "error";
|
|
22
|
+
totalMs: number;
|
|
23
|
+
rpcOutcome: "result" | "error" | "tool-error" | "notification" | "invalid-response" | null;
|
|
24
|
+
phases: Record<DiagnosticPhase, number | null>;
|
|
25
|
+
catalog: {
|
|
26
|
+
source: CatalogSource;
|
|
27
|
+
sharedWait: boolean;
|
|
28
|
+
waitMs: number | null;
|
|
29
|
+
bootPublications: number;
|
|
30
|
+
};
|
|
31
|
+
d1: null | {
|
|
32
|
+
bindingCalls: number;
|
|
33
|
+
statements: number;
|
|
34
|
+
unknownStatementCalls: number;
|
|
35
|
+
failures: number;
|
|
36
|
+
inFlight: number;
|
|
37
|
+
maxInFlight: number;
|
|
38
|
+
/** Sums of available metadata; check coverage before treating them as totals. */
|
|
39
|
+
wallMs: number;
|
|
40
|
+
metadataStatements: number;
|
|
41
|
+
durationMs: number | null;
|
|
42
|
+
rowsRead: number | null;
|
|
43
|
+
rowsWritten: number | null;
|
|
44
|
+
resultBytes: number | null;
|
|
45
|
+
};
|
|
46
|
+
kv: null | Record<"get" | "put" | "delete" | "list", BindingDiagnostics>;
|
|
47
|
+
r2: null | Record<"head" | "get" | "put" | "delete" | "list", BindingDiagnostics>;
|
|
48
|
+
}
|
|
49
|
+
export declare const requestDiagnosticContext: AsyncLocalStorage<RequestDiagnosticRecord>;
|
|
50
|
+
/** Capture the initiating request before any asynchronous or shared work. */
|
|
51
|
+
export declare function beginDiagnosticPhase(phase: DiagnosticPhase): () => void;
|
|
52
|
+
export declare function diagnosticPhase<T>(phase: DiagnosticPhase, run: () => Promise<T>): Promise<T>;
|
|
53
|
+
//# sourceMappingURL=requestDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestDiagnostics.d.ts","sourceRoot":"","sources":["../src/requestDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CAAC;AACxG,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAClH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,mBAAmB,GAAG,eAAe,GAAG,OAAO,GAAG,IAAI,CAAC;CACzF;AACD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;IAChG,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAC3F,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IACzG,EAAE,EAAE,IAAI,GAAG;QACT,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QACjI,iFAAiF;QACjF,MAAM,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QACtE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KACjF,CAAC;IACF,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzE,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACnF;AAID,eAAO,MAAM,wBAAwB,4CAAmD,CAAC;AAEzF,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,IAAI,CAUvE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAI5F"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
// Only the testing entry point opens this context. Ordinary production requests
|
|
3
|
+
// have no record, clock reads, binding wrappers, observer or diagnostic headers.
|
|
4
|
+
export const requestDiagnosticContext = new AsyncLocalStorage();
|
|
5
|
+
/** Capture the initiating request before any asynchronous or shared work. */
|
|
6
|
+
export function beginDiagnosticPhase(phase) {
|
|
7
|
+
const record = requestDiagnosticContext.getStore();
|
|
8
|
+
if (!record)
|
|
9
|
+
return noop;
|
|
10
|
+
const started = performance.now();
|
|
11
|
+
let stopped = false;
|
|
12
|
+
return () => {
|
|
13
|
+
if (stopped)
|
|
14
|
+
return;
|
|
15
|
+
stopped = true;
|
|
16
|
+
record.phases[phase] = (record.phases[phase] ?? 0) + performance.now() - started;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function diagnosticPhase(phase, run) {
|
|
20
|
+
if (!requestDiagnosticContext.getStore())
|
|
21
|
+
return run();
|
|
22
|
+
const stop = beginDiagnosticPhase(phase);
|
|
23
|
+
try {
|
|
24
|
+
return run().finally(stop);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
stop();
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function noop() { }
|
|
32
|
+
//# sourceMappingURL=requestDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestDiagnostics.js","sourceRoot":"","sources":["../src/requestDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAoCrD,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,iBAAiB,EAA2B,CAAC;AAEzF,6EAA6E;AAC7E,MAAM,UAAU,oBAAoB,CAAC,KAAsB;IACzD,MAAM,MAAM,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,OAAO,GAAG,EAAE;QACV,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,KAAsB,EAAE,GAAqB;IAC9E,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE;QAAE,OAAO,GAAG,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AAC5E,CAAC;AAED,SAAS,IAAI,KAAU,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Test/performance instrumentation. Never adds response headers or logs data. */
|
|
2
|
+
import { type RequestDiagnosticRecord } from "./requestDiagnostics.js";
|
|
3
|
+
export type { RequestDiagnosticRecord } from "./requestDiagnostics.js";
|
|
4
|
+
export declare function runWithRequestDiagnostics(options: {
|
|
5
|
+
surface: RequestDiagnosticRecord["surface"];
|
|
6
|
+
bindings: {
|
|
7
|
+
d1?: boolean;
|
|
8
|
+
kv?: boolean;
|
|
9
|
+
r2?: boolean;
|
|
10
|
+
};
|
|
11
|
+
}, run: () => Promise<Response>, observe: (record: RequestDiagnosticRecord) => void | Promise<void>): Promise<Response>;
|
|
12
|
+
/** Wrap before passing this same binding to Auth and D1DatabaseDriver. */
|
|
13
|
+
export declare function instrumentD1(db: D1Database): D1Database;
|
|
14
|
+
export declare function instrumentKv(namespace: KVNamespace): KVNamespace;
|
|
15
|
+
/** Payload bytes only; unconsumed/partially consumed GET bodies remain unknown.
|
|
16
|
+
* A successful PUT of the exact GET stream confirms both transfers without
|
|
17
|
+
* wrapping the stream (R2 needs its native known-length property). */
|
|
18
|
+
export declare function instrumentR2(bucket: R2Bucket): R2Bucket;
|
|
19
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAOvE,wBAAgB,yBAAyB,CACvC,OAAO,EAAE;IACP,OAAO,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,EAAE;QAAE,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACxD,EACD,GAAG,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACjE,OAAO,CAAC,QAAQ,CAAC,CAiDnB;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAEvD;AAqED,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,CAchE;AAED;;sEAEsE;AACtE,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAyBvD"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/** Test/performance instrumentation. Never adds response headers or logs data. */
|
|
2
|
+
import { requestDiagnosticContext, } from "./requestDiagnostics.js";
|
|
3
|
+
const active = new Set();
|
|
4
|
+
const wrappedBindings = new WeakMap();
|
|
5
|
+
const nativeStatements = new WeakMap();
|
|
6
|
+
const readBodies = new WeakMap();
|
|
7
|
+
export function runWithRequestDiagnostics(options, run, observe) {
|
|
8
|
+
const operation = () => ({ calls: 0, failures: 0, inFlight: 0, maxInFlight: 0, byteSamples: 0, wallMs: 0, bytes: null, bytesSource: null });
|
|
9
|
+
const record = {
|
|
10
|
+
version: 1, requestId: crypto.randomUUID(), surface: options.surface,
|
|
11
|
+
arrivalAt: Date.now(), simultaneousArrivals: active.size + 1,
|
|
12
|
+
status: null, outcome: "error", totalMs: 0, rpcOutcome: null,
|
|
13
|
+
phases: { oauth: null, role: null, runtime: null, catalog: null, dispatcherBuild: null, dispatch: null },
|
|
14
|
+
catalog: { source: "not-reached", sharedWait: false, waitMs: null, bootPublications: 0 },
|
|
15
|
+
d1: options.bindings.d1 ? { bindingCalls: 0, statements: 0, unknownStatementCalls: 0, failures: 0, inFlight: 0, maxInFlight: 0,
|
|
16
|
+
wallMs: 0, metadataStatements: 0, durationMs: null, rowsRead: null, rowsWritten: null, resultBytes: null } : null,
|
|
17
|
+
kv: options.bindings.kv ? { get: operation(), put: operation(), delete: operation(), list: operation() } : null,
|
|
18
|
+
r2: options.bindings.r2 ? { head: operation(), get: operation(), put: operation(), delete: operation(), list: operation() } : null,
|
|
19
|
+
};
|
|
20
|
+
active.add(record);
|
|
21
|
+
for (const current of active)
|
|
22
|
+
current.simultaneousArrivals = Math.max(current.simultaneousArrivals, active.size);
|
|
23
|
+
const started = performance.now();
|
|
24
|
+
let responseCreatedAt;
|
|
25
|
+
let observation;
|
|
26
|
+
return requestDiagnosticContext.run(record, async () => {
|
|
27
|
+
try {
|
|
28
|
+
const response = await run();
|
|
29
|
+
responseCreatedAt = performance.now();
|
|
30
|
+
active.delete(record);
|
|
31
|
+
record.status = response.status;
|
|
32
|
+
record.outcome = response.status === 401 || response.status === 403 ? "denied" : response.status >= 400 ? "error" : "http-ok";
|
|
33
|
+
record.totalMs = responseCreatedAt - started;
|
|
34
|
+
observation = structuredClone(record);
|
|
35
|
+
if (options.surface === "mcp") {
|
|
36
|
+
if (!response.body)
|
|
37
|
+
observation.rpcOutcome = "notification";
|
|
38
|
+
else {
|
|
39
|
+
try {
|
|
40
|
+
const rpc = await response.clone().json();
|
|
41
|
+
observation.rpcOutcome = !isRecord(rpc) ? "invalid-response" : "error" in rpc ? "error"
|
|
42
|
+
: "result" in rpc ? isRecord(rpc.result) && rpc.result.isError === true ? "tool-error" : "result" : "invalid-response";
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
observation.rpcOutcome = "invalid-response";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return response;
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
record.totalMs = (responseCreatedAt ?? performance.now()) - started;
|
|
53
|
+
active.delete(record);
|
|
54
|
+
// Deferred I/O can complete later. Publish an immutable observation of
|
|
55
|
+
// response-creation time; inFlight/metadata coverage expose partial data.
|
|
56
|
+
try {
|
|
57
|
+
const pending = observe(observation ?? structuredClone(record));
|
|
58
|
+
if (pending)
|
|
59
|
+
void pending.catch(() => { });
|
|
60
|
+
}
|
|
61
|
+
catch { /* Observers cannot change an outcome. */ }
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** Wrap before passing this same binding to Auth and D1DatabaseDriver. */
|
|
66
|
+
export function instrumentD1(db) {
|
|
67
|
+
return wrapDatabase(db);
|
|
68
|
+
}
|
|
69
|
+
function wrapDatabase(db) {
|
|
70
|
+
return cachedProxy(db, (target, key) => {
|
|
71
|
+
const method = Reflect.get(target, key);
|
|
72
|
+
if (typeof method !== "function")
|
|
73
|
+
return method;
|
|
74
|
+
if (key === "prepare")
|
|
75
|
+
return (...args) => wrapStatement(Reflect.apply(method, target, args));
|
|
76
|
+
if (key === "withSession")
|
|
77
|
+
return (...args) => wrapDatabase(Reflect.apply(method, target, args));
|
|
78
|
+
if (key === "batch")
|
|
79
|
+
return (statements) => d1Call(statements.length, false, () => Reflect.apply(method, target, [statements.map((stmt) => nativeStatements.get(stmt) ?? stmt)]));
|
|
80
|
+
if (key === "exec" || key === "dump")
|
|
81
|
+
return (...args) => d1Call(0, true, () => Reflect.apply(method, target, args));
|
|
82
|
+
return method.bind(target);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function wrapStatement(statement) {
|
|
86
|
+
const proxy = cachedProxy(statement, (target, key) => {
|
|
87
|
+
const method = Reflect.get(target, key);
|
|
88
|
+
if (typeof method !== "function")
|
|
89
|
+
return method;
|
|
90
|
+
if (key === "bind")
|
|
91
|
+
return (...args) => wrapStatement(Reflect.apply(method, target, args));
|
|
92
|
+
if (["all", "first", "raw", "run"].includes(String(key))) {
|
|
93
|
+
return (...args) => d1Call(1, false, () => Reflect.apply(method, target, args));
|
|
94
|
+
}
|
|
95
|
+
return method.bind(target);
|
|
96
|
+
});
|
|
97
|
+
nativeStatements.set(proxy, statement);
|
|
98
|
+
return proxy;
|
|
99
|
+
}
|
|
100
|
+
async function d1Call(statements, unknownStatements, run) {
|
|
101
|
+
const metric = requestDiagnosticContext.getStore()?.d1;
|
|
102
|
+
if (!metric)
|
|
103
|
+
return run();
|
|
104
|
+
const started = performance.now();
|
|
105
|
+
metric.bindingCalls++;
|
|
106
|
+
metric.statements += statements;
|
|
107
|
+
metric.inFlight++;
|
|
108
|
+
metric.maxInFlight = Math.max(metric.maxInFlight, metric.inFlight);
|
|
109
|
+
if (unknownStatements)
|
|
110
|
+
metric.unknownStatementCalls++;
|
|
111
|
+
try {
|
|
112
|
+
const result = await run();
|
|
113
|
+
try {
|
|
114
|
+
if (unknownStatements && isRecord(result) && finite(result.count)) {
|
|
115
|
+
metric.statements += result.count;
|
|
116
|
+
metric.unknownStatementCalls--;
|
|
117
|
+
if (finite(result.duration))
|
|
118
|
+
metric.durationMs = (metric.durationMs ?? 0) + result.duration;
|
|
119
|
+
}
|
|
120
|
+
const items = Array.isArray(result) ? result : [result];
|
|
121
|
+
if (items.some((item) => isRecord(item) && item.success === false))
|
|
122
|
+
metric.failures++;
|
|
123
|
+
for (const item of items) {
|
|
124
|
+
if (!isRecord(item) || !isRecord(item.meta))
|
|
125
|
+
continue;
|
|
126
|
+
const meta = item.meta;
|
|
127
|
+
if ([meta.rows_read, meta.rows_written, meta.duration].some(finite))
|
|
128
|
+
metric.metadataStatements++;
|
|
129
|
+
if (finite(meta.rows_read))
|
|
130
|
+
metric.rowsRead = (metric.rowsRead ?? 0) + meta.rows_read;
|
|
131
|
+
if (finite(meta.rows_written))
|
|
132
|
+
metric.rowsWritten = (metric.rowsWritten ?? 0) + meta.rows_written;
|
|
133
|
+
if (finite(meta.duration))
|
|
134
|
+
metric.durationMs = (metric.durationMs ?? 0) + meta.duration;
|
|
135
|
+
}
|
|
136
|
+
const size = valueBytes(result);
|
|
137
|
+
if (size)
|
|
138
|
+
metric.resultBytes = (metric.resultBytes ?? 0) + size.bytes;
|
|
139
|
+
}
|
|
140
|
+
catch { /* Metric inspection is observational. */ }
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
metric.failures++;
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
finally {
|
|
148
|
+
metric.inFlight--;
|
|
149
|
+
metric.wallMs += performance.now() - started;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
export function instrumentKv(namespace) {
|
|
153
|
+
return cachedProxy(namespace, (target, key) => {
|
|
154
|
+
const method = Reflect.get(target, key);
|
|
155
|
+
if (typeof method !== "function")
|
|
156
|
+
return method;
|
|
157
|
+
const operation = key === "getWithMetadata" ? "get" : key;
|
|
158
|
+
if (!["get", "put", "delete", "list"].includes(String(operation)))
|
|
159
|
+
return method.bind(target);
|
|
160
|
+
return async (...args) => {
|
|
161
|
+
const metric = requestDiagnosticContext.getStore()?.kv?.[operation];
|
|
162
|
+
return bindingCall(metric, () => Reflect.apply(method, target, args), (result) => {
|
|
163
|
+
if (operation === "delete")
|
|
164
|
+
return { bytes: 0, source: "utf8" };
|
|
165
|
+
return valueBytes(operation === "put" ? args[1] : key === "getWithMetadata" && isRecord(result) ? result.value : result);
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/** Payload bytes only; unconsumed/partially consumed GET bodies remain unknown.
|
|
171
|
+
* A successful PUT of the exact GET stream confirms both transfers without
|
|
172
|
+
* wrapping the stream (R2 needs its native known-length property). */
|
|
173
|
+
export function instrumentR2(bucket) {
|
|
174
|
+
return cachedProxy(bucket, (target, key) => {
|
|
175
|
+
const method = Reflect.get(target, key);
|
|
176
|
+
if (typeof method !== "function")
|
|
177
|
+
return method;
|
|
178
|
+
if (!["head", "get", "put", "delete", "list"].includes(String(key)))
|
|
179
|
+
return method.bind(target);
|
|
180
|
+
return async (...args) => {
|
|
181
|
+
const metric = requestDiagnosticContext.getStore()?.r2?.[key];
|
|
182
|
+
return bindingCall(metric, () => Reflect.apply(method, target, args), (result) => {
|
|
183
|
+
if (key === "get" && isRecord(result) && result.body instanceof ReadableStream) {
|
|
184
|
+
if (metric)
|
|
185
|
+
readBodies.set(result.body, { metric, consumed: false });
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
if (key === "put" && isRecord(result) && finite(result.size)) {
|
|
189
|
+
const source = args[1] instanceof ReadableStream ? readBodies.get(args[1]) : undefined;
|
|
190
|
+
if (source && !source.consumed) {
|
|
191
|
+
source.consumed = true;
|
|
192
|
+
addBytes(source.metric, { bytes: result.size, source: "object-result" });
|
|
193
|
+
}
|
|
194
|
+
return { bytes: result.size, source: "object-result" };
|
|
195
|
+
}
|
|
196
|
+
if (key === "head" || key === "delete" || (key === "get" && result === null))
|
|
197
|
+
return { bytes: 0, source: "object-result" };
|
|
198
|
+
return key === "list" ? valueBytes(result) : null;
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
async function bindingCall(metric, run, payload) {
|
|
204
|
+
if (!metric)
|
|
205
|
+
return run();
|
|
206
|
+
const started = performance.now();
|
|
207
|
+
metric.calls++;
|
|
208
|
+
metric.inFlight++;
|
|
209
|
+
metric.maxInFlight = Math.max(metric.maxInFlight, metric.inFlight);
|
|
210
|
+
try {
|
|
211
|
+
const result = await run();
|
|
212
|
+
try {
|
|
213
|
+
addBytes(metric, payload(result));
|
|
214
|
+
}
|
|
215
|
+
catch { /* Metric inspection is observational. */ }
|
|
216
|
+
return result;
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
metric.failures++;
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
finally {
|
|
223
|
+
metric.inFlight--;
|
|
224
|
+
metric.wallMs += performance.now() - started;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function addBytes(metric, size) {
|
|
228
|
+
if (!size)
|
|
229
|
+
return;
|
|
230
|
+
metric.bytes = (metric.bytes ?? 0) + size.bytes;
|
|
231
|
+
metric.byteSamples++;
|
|
232
|
+
metric.bytesSource = metric.bytesSource && metric.bytesSource !== size.source ? "mixed" : size.source;
|
|
233
|
+
}
|
|
234
|
+
function valueBytes(value) {
|
|
235
|
+
if (value === null || value === undefined)
|
|
236
|
+
return { bytes: 0, source: "utf8" };
|
|
237
|
+
if (value instanceof ArrayBuffer)
|
|
238
|
+
return { bytes: value.byteLength, source: "buffer" };
|
|
239
|
+
if (ArrayBuffer.isView(value))
|
|
240
|
+
return { bytes: value.byteLength, source: "buffer" };
|
|
241
|
+
if (value instanceof ReadableStream)
|
|
242
|
+
return null;
|
|
243
|
+
if (typeof value === "string")
|
|
244
|
+
return { bytes: new TextEncoder().encode(value).byteLength, source: "utf8" };
|
|
245
|
+
try {
|
|
246
|
+
return { bytes: new TextEncoder().encode(JSON.stringify(value)).byteLength, source: "serialized-result" };
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
function cachedProxy(target, get) {
|
|
253
|
+
const known = wrappedBindings.get(target);
|
|
254
|
+
if (known)
|
|
255
|
+
return known;
|
|
256
|
+
const proxy = new Proxy(target, { get });
|
|
257
|
+
wrappedBindings.set(target, proxy);
|
|
258
|
+
wrappedBindings.set(proxy, proxy);
|
|
259
|
+
return proxy;
|
|
260
|
+
}
|
|
261
|
+
function finite(value) { return typeof value === "number" && Number.isFinite(value) && value >= 0; }
|
|
262
|
+
function isRecord(value) { return value !== null && typeof value === "object"; }
|
|
263
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,8 @@ export interface MantleExtensionApp<Bindings extends object> {
|
|
|
43
43
|
}
|
|
44
44
|
export interface MantleCloudflareEnv extends ConventionalAuthEnv {
|
|
45
45
|
readonly ASSETS?: Fetcher;
|
|
46
|
+
/** Optional derived MCP catalog snapshot. D1 remains canonical. */
|
|
47
|
+
readonly MANTLE_KV?: KVNamespace;
|
|
46
48
|
}
|
|
47
49
|
export interface MantleWorkerBootstrapContext<Env extends MantleCloudflareEnv> {
|
|
48
50
|
readonly env: Env;
|
|
@@ -68,6 +70,8 @@ export interface CreateMantleWorkerOptions<Env extends MantleCloudflareEnv> {
|
|
|
68
70
|
readonly plan: RuntimePlan;
|
|
69
71
|
readonly handlers?: Readonly<Record<string, AnyHandler>>;
|
|
70
72
|
readonly siteDefaults?: SiteDefaults | ((env: Env) => SiteDefaults);
|
|
73
|
+
/** Stable deployment/site identifier used by public cache tags and optional KV. */
|
|
74
|
+
readonly cacheScope?: string | ((env: Env) => string);
|
|
71
75
|
readonly templates?: TemplateRegistry;
|
|
72
76
|
readonly publicPathResolver?: PublicPathResolver;
|
|
73
77
|
readonly mediaAllowSvg?: boolean | ((env: Env) => boolean);
|
|
@@ -75,6 +79,7 @@ export interface CreateMantleWorkerOptions<Env extends MantleCloudflareEnv> {
|
|
|
75
79
|
readonly auth?: (env: Env) => Auth;
|
|
76
80
|
/** Augment conventional adapters for a proven capability such as R2 media. */
|
|
77
81
|
readonly bindings?: (env: Env, conventional: MantleWorkerBindings) => MantleWorkerBindings;
|
|
82
|
+
/** May rerun after initialization fails; keep external side effects out of assembly. */
|
|
78
83
|
readonly extend?: (context: MantleWorkerBootstrapContext<Env>) => MantleWorkerExtension<Env> | void;
|
|
79
84
|
}
|
|
80
85
|
export interface MantleWorkerHandler<Env extends MantleCloudflareEnv> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMantleWorker.d.ts","sourceRoot":"","sources":["../../src/worker/createMantleWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,GAAG,IAAI,OAAO,EACnB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACvB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"createMantleWorker.d.ts","sourceRoot":"","sources":["../../src/worker/createMantleWorker.ts"],"names":[],"mappings":"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"}
|