@veryfront/ext-content-mdx 0.1.1176 → 0.1.1178
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/esm/deno.d.ts +2 -0
- package/esm/deno.js +5 -3
- package/esm/src/transforms/import-rewriter/url-builder.d.ts +34 -0
- package/esm/src/transforms/import-rewriter/url-builder.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/url-builder.js +160 -0
- package/esm/src/utils/logger/logger.d.ts.map +1 -1
- package/esm/src/utils/logger/logger.js +43 -41
- package/esm/src/utils/logger/redact.d.ts.map +1 -1
- package/esm/src/utils/logger/redact.js +8 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +2 -2
package/esm/deno.d.ts
CHANGED
|
@@ -373,7 +373,9 @@ declare namespace _default {
|
|
|
373
373
|
"verify:quick": string;
|
|
374
374
|
"typecheck:consumer": string;
|
|
375
375
|
"codemod:chat": string;
|
|
376
|
+
"codemod:esm-sh": string;
|
|
376
377
|
"lint:chat-ratchets": string;
|
|
378
|
+
"lint:esm-sh-codemod": string;
|
|
377
379
|
"lint:test-typecheck": string;
|
|
378
380
|
docs: string;
|
|
379
381
|
"docs:coverage": string;
|
package/esm/deno.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1178",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"nodeModulesDir": "auto",
|
|
6
6
|
"minimumDependencyAge": {
|
|
@@ -436,11 +436,13 @@ export default {
|
|
|
436
436
|
"fmt": "deno fmt src/ cli/ react/ && deno fmt --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts && deno fmt --config=scripts/codemods/deno.json scripts/codemods/",
|
|
437
437
|
"fmt:check": "deno fmt --check src/ cli/ react/ && deno fmt --check --config=scripts/test.deno.json scripts/test/ scripts/build/dnt-polyfill.ts scripts/build/dnt-polyfill.test.ts && deno fmt --check --config=scripts/codemods/deno.json scripts/codemods/",
|
|
438
438
|
"typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/modules/index.ts src/proxy/main.ts src/react/components/ui/index.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/eval/index.ts src/tool/index.ts src/workflow/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
|
|
439
|
-
"verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck && deno task typecheck:consumer && deno task test && deno task test:e2e:binary",
|
|
440
|
-
"verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck",
|
|
439
|
+
"verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck && deno task typecheck:consumer && deno task test && deno task test:e2e:binary",
|
|
440
|
+
"verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:chat-composability && deno task lint:chat-ratchets && deno task lint:esm-sh-codemod && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:module-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck",
|
|
441
441
|
"typecheck:consumer": "deno run --allow-read --allow-run --allow-env --allow-write scripts/typecheck/run-consumer-typecheck.ts",
|
|
442
442
|
"codemod:chat": "deno run --frozen --config=scripts/codemods/deno.json --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-chat-composition.ts",
|
|
443
|
+
"codemod:esm-sh": "deno run --frozen --config=scripts/codemods/deno.json --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-esm-sh-imports.ts",
|
|
443
444
|
"lint:chat-ratchets": "deno run --allow-read scripts/lint/ban-chat-antipatterns.ts && deno check --no-config --frozen --lock=deno.lock scripts/codemods/migrate-chat-composition.ts && deno check --config=deno.json --frozen --lock=deno.lock src/react/chat-barrels.check.ts && deno test --frozen --config=scripts/codemods/deno.json --no-check --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-chat-composition.test.ts",
|
|
445
|
+
"lint:esm-sh-codemod": "deno check --no-config --frozen --lock=deno.lock scripts/codemods/migrate-esm-sh-imports.ts && deno test --frozen --config=scripts/codemods/deno.json --no-check --allow-read --allow-write --allow-env=BABEL_TYPES_8_BREAKING scripts/codemods/migrate-esm-sh-imports.test.ts",
|
|
444
446
|
"lint:test-typecheck": "deno run --allow-read --allow-run scripts/lint/check-test-typecheck-baseline.ts",
|
|
445
447
|
"docs": "deno run --allow-read --allow-write --allow-run --allow-env scripts/docs/generate-api-reference.ts",
|
|
446
448
|
"docs:coverage": "deno run --allow-read scripts/docs/docs-coverage.ts",
|
|
@@ -44,6 +44,40 @@ export declare function getReactImportMap(version: string): Record<string, strin
|
|
|
44
44
|
* Build module server URL for a path.
|
|
45
45
|
*/
|
|
46
46
|
export declare function buildModuleServerUrl(baseUrl: string, path: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Bind an internal module URL to the immutable dependency snapshot that
|
|
49
|
+
* produced it. Flag-off keys intentionally preserve the historical URL shape.
|
|
50
|
+
*/
|
|
51
|
+
export declare function appendDependencyPinningKey(url: string, dependencyPinningCacheKey?: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Bind an import-map prefix target to a dependency snapshot without adding a
|
|
54
|
+
* query string. Import-map prefix targets must end in `/`; placing the token in
|
|
55
|
+
* a reserved path segment keeps that invariant when the browser appends the
|
|
56
|
+
* concrete module suffix.
|
|
57
|
+
*/
|
|
58
|
+
export declare function appendDependencyPinningPathKey(url: string, dependencyPinningCacheKey?: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* Bind a same-origin module-server URL to a dependency snapshot and canonicalize
|
|
61
|
+
* it to a root-relative URL. Foreign origins are preserved byte-for-byte.
|
|
62
|
+
*/
|
|
63
|
+
export declare function appendSameOriginDependencyPinningPathKey(url: string, dependencyPinningCacheKey?: string, moduleServerOrigin?: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Bind a same-origin absolute module URL to an SSR dependency snapshot.
|
|
66
|
+
* Foreign origins and flag-off requests are preserved byte-for-byte.
|
|
67
|
+
*/
|
|
68
|
+
export declare function appendSameOriginSSRDependencyPinningKey(url: string, dependencyPinningCacheKey?: string, moduleServerOrigin?: string): string;
|
|
69
|
+
export interface ExtractedDependencyPinningPath {
|
|
70
|
+
pathname: string;
|
|
71
|
+
cacheKey?: string;
|
|
72
|
+
found: boolean;
|
|
73
|
+
malformed: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Remove a dependency snapshot path segment before module classification and
|
|
77
|
+
* source lookup. The decoded key is validated by the request handler alongside
|
|
78
|
+
* query-based tokens.
|
|
79
|
+
*/
|
|
80
|
+
export declare function extractDependencyPinningPathKey(pathname: string): ExtractedDependencyPinningPath;
|
|
47
81
|
/**
|
|
48
82
|
* Build cross-project import URL.
|
|
49
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-builder.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/import-rewriter/url-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,kEAAkE;AAClE,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAqBR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GAAG,WAAW,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACf,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,IAAI,EAAE,MAAM,GACX,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAGhG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAgDtE"}
|
|
1
|
+
{"version":3,"file":"url-builder.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/import-rewriter/url-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAE9C,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAExC,kEAAkE;AAClE,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAqBR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GAAG,WAAW,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,UAAQ,GACf,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,yBAAyB,CAAC,EAAE,MAAM,GACjC,MAAM,CAcR;AAeD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,yBAAyB,CAAC,EAAE,MAAM,GACjC,MAAM,CA4CR;AAED;;;GAGG;AACH,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,MAAM,EACX,yBAAyB,CAAC,EAAE,MAAM,EAClC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CA8BR;AAED;;;GAGG;AACH,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,MAAM,EACX,yBAAyB,CAAC,EAAE,MAAM,EAClC,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAwBR;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,GACf,8BAA8B,CA4ChC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,IAAI,EAAE,MAAM,GACX,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAGhG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAgDtE"}
|
|
@@ -75,6 +75,166 @@ export function buildModuleServerUrl(baseUrl, path) {
|
|
|
75
75
|
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
76
76
|
return `${normalizedBase}${normalizedPath}`;
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Bind an internal module URL to the immutable dependency snapshot that
|
|
80
|
+
* produced it. Flag-off keys intentionally preserve the historical URL shape.
|
|
81
|
+
*/
|
|
82
|
+
export function appendDependencyPinningKey(url, dependencyPinningCacheKey) {
|
|
83
|
+
if (!dependencyPinningCacheKey?.startsWith("on:"))
|
|
84
|
+
return url;
|
|
85
|
+
const hashIndex = url.indexOf("#");
|
|
86
|
+
const hash = hashIndex === -1 ? "" : url.slice(hashIndex);
|
|
87
|
+
const urlWithoutHash = hashIndex === -1 ? url : url.slice(0, hashIndex);
|
|
88
|
+
const queryIndex = urlWithoutHash.indexOf("?");
|
|
89
|
+
const path = queryIndex === -1 ? urlWithoutHash : urlWithoutHash.slice(0, queryIndex);
|
|
90
|
+
const params = new URLSearchParams(queryIndex === -1 ? "" : urlWithoutHash.slice(queryIndex + 1));
|
|
91
|
+
params.set("pins", dependencyPinningCacheKey);
|
|
92
|
+
return `${path}?${params.toString()}${hash}`;
|
|
93
|
+
}
|
|
94
|
+
const DEPENDENCY_PINNING_PATH_MARKER = "_pins/";
|
|
95
|
+
const MODULE_SERVER_PATH_PREFIXES = ["/_vf_modules/"];
|
|
96
|
+
const DEPENDENCY_PINNING_PATH_KEY_PATTERN = /^on:[A-Za-z0-9._-]+$/;
|
|
97
|
+
function decodeDependencyPinningPathKey(encodedKey) {
|
|
98
|
+
try {
|
|
99
|
+
const cacheKey = decodeURIComponent(encodedKey);
|
|
100
|
+
return DEPENDENCY_PINNING_PATH_KEY_PATTERN.test(cacheKey) ? cacheKey : undefined;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Bind an import-map prefix target to a dependency snapshot without adding a
|
|
108
|
+
* query string. Import-map prefix targets must end in `/`; placing the token in
|
|
109
|
+
* a reserved path segment keeps that invariant when the browser appends the
|
|
110
|
+
* concrete module suffix.
|
|
111
|
+
*/
|
|
112
|
+
export function appendDependencyPinningPathKey(url, dependencyPinningCacheKey) {
|
|
113
|
+
if (!dependencyPinningCacheKey?.startsWith("on:"))
|
|
114
|
+
return url;
|
|
115
|
+
const hashIndex = url.indexOf("#");
|
|
116
|
+
const hash = hashIndex === -1 ? "" : url.slice(hashIndex);
|
|
117
|
+
const urlWithoutHash = hashIndex === -1 ? url : url.slice(0, hashIndex);
|
|
118
|
+
const queryIndex = urlWithoutHash.indexOf("?");
|
|
119
|
+
const path = queryIndex === -1 ? urlWithoutHash : urlWithoutHash.slice(0, queryIndex);
|
|
120
|
+
const params = new URLSearchParams(queryIndex === -1 ? "" : urlWithoutHash.slice(queryIndex + 1));
|
|
121
|
+
for (const prefix of MODULE_SERVER_PATH_PREFIXES) {
|
|
122
|
+
const prefixIndex = path.indexOf(prefix);
|
|
123
|
+
if (prefixIndex === -1)
|
|
124
|
+
continue;
|
|
125
|
+
const origin = path.slice(0, prefixIndex);
|
|
126
|
+
if (origin !== "" && !/^https?:\/\/[^/]+$/i.test(origin))
|
|
127
|
+
continue;
|
|
128
|
+
let modulePath = path.slice(prefixIndex + prefix.length);
|
|
129
|
+
if (modulePath.startsWith(DEPENDENCY_PINNING_PATH_MARKER)) {
|
|
130
|
+
const existingKeyEnd = modulePath.indexOf("/", DEPENDENCY_PINNING_PATH_MARKER.length);
|
|
131
|
+
const encodedExistingKey = existingKeyEnd === -1
|
|
132
|
+
? modulePath.slice(DEPENDENCY_PINNING_PATH_MARKER.length)
|
|
133
|
+
: modulePath.slice(DEPENDENCY_PINNING_PATH_MARKER.length, existingKeyEnd);
|
|
134
|
+
if (decodeDependencyPinningPathKey(encodedExistingKey)) {
|
|
135
|
+
if (existingKeyEnd === -1)
|
|
136
|
+
return url;
|
|
137
|
+
modulePath = modulePath.slice(existingKeyEnd + 1);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
params.delete("pins");
|
|
141
|
+
const query = params.size > 0 ? `?${params.toString()}` : "";
|
|
142
|
+
return `${origin}${prefix}${DEPENDENCY_PINNING_PATH_MARKER}${encodeURIComponent(dependencyPinningCacheKey)}/${modulePath}${query}${hash}`;
|
|
143
|
+
}
|
|
144
|
+
return url;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Bind a same-origin module-server URL to a dependency snapshot and canonicalize
|
|
148
|
+
* it to a root-relative URL. Foreign origins are preserved byte-for-byte.
|
|
149
|
+
*/
|
|
150
|
+
export function appendSameOriginDependencyPinningPathKey(url, dependencyPinningCacheKey, moduleServerOrigin) {
|
|
151
|
+
if (!dependencyPinningCacheKey?.startsWith("on:"))
|
|
152
|
+
return url;
|
|
153
|
+
if (url.startsWith("/_vf_modules/")) {
|
|
154
|
+
return appendDependencyPinningPathKey(url, dependencyPinningCacheKey);
|
|
155
|
+
}
|
|
156
|
+
if (!moduleServerOrigin ||
|
|
157
|
+
(!/^https?:\/\//i.test(url) && !url.startsWith("//"))) {
|
|
158
|
+
return url;
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
const requestOrigin = new URL(moduleServerOrigin);
|
|
162
|
+
const target = new URL(url, requestOrigin);
|
|
163
|
+
if (target.origin !== requestOrigin.origin ||
|
|
164
|
+
!target.pathname.startsWith("/_vf_modules/")) {
|
|
165
|
+
return url;
|
|
166
|
+
}
|
|
167
|
+
return appendDependencyPinningPathKey(`${target.pathname}${target.search}${target.hash}`, dependencyPinningCacheKey);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return url;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Bind a same-origin absolute module URL to an SSR dependency snapshot.
|
|
175
|
+
* Foreign origins and flag-off requests are preserved byte-for-byte.
|
|
176
|
+
*/
|
|
177
|
+
export function appendSameOriginSSRDependencyPinningKey(url, dependencyPinningCacheKey, moduleServerOrigin) {
|
|
178
|
+
if (!dependencyPinningCacheKey?.startsWith("on:") ||
|
|
179
|
+
!moduleServerOrigin ||
|
|
180
|
+
(!/^https?:\/\//i.test(url) && !url.startsWith("//"))) {
|
|
181
|
+
return url;
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
const requestOrigin = new URL(moduleServerOrigin);
|
|
185
|
+
const target = new URL(url, requestOrigin);
|
|
186
|
+
if (target.origin !== requestOrigin.origin ||
|
|
187
|
+
!target.pathname.startsWith("/_vf_modules/")) {
|
|
188
|
+
return url;
|
|
189
|
+
}
|
|
190
|
+
target.searchParams.set("ssr", "true");
|
|
191
|
+
return appendDependencyPinningKey(target.href, dependencyPinningCacheKey);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return url;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Remove a dependency snapshot path segment before module classification and
|
|
199
|
+
* source lookup. The decoded key is validated by the request handler alongside
|
|
200
|
+
* query-based tokens.
|
|
201
|
+
*/
|
|
202
|
+
export function extractDependencyPinningPathKey(pathname) {
|
|
203
|
+
for (const prefix of MODULE_SERVER_PATH_PREFIXES) {
|
|
204
|
+
const markerPrefix = `${prefix}${DEPENDENCY_PINNING_PATH_MARKER}`;
|
|
205
|
+
if (!pathname.startsWith(markerPrefix))
|
|
206
|
+
continue;
|
|
207
|
+
const encodedKeyAndPath = pathname.slice(markerPrefix.length);
|
|
208
|
+
const separatorIndex = encodedKeyAndPath.indexOf("/");
|
|
209
|
+
const encodedKey = separatorIndex === -1
|
|
210
|
+
? encodedKeyAndPath
|
|
211
|
+
: encodedKeyAndPath.slice(0, separatorIndex);
|
|
212
|
+
const cacheKey = decodeDependencyPinningPathKey(encodedKey);
|
|
213
|
+
if (!cacheKey) {
|
|
214
|
+
return { pathname, found: false, malformed: false };
|
|
215
|
+
}
|
|
216
|
+
if (separatorIndex === -1) {
|
|
217
|
+
return { pathname, found: true, malformed: true };
|
|
218
|
+
}
|
|
219
|
+
const modulePath = encodedKeyAndPath.slice(separatorIndex + 1);
|
|
220
|
+
if (modulePath.startsWith(DEPENDENCY_PINNING_PATH_MARKER)) {
|
|
221
|
+
const nestedKeyEnd = modulePath.indexOf("/", DEPENDENCY_PINNING_PATH_MARKER.length);
|
|
222
|
+
const nestedEncodedKey = nestedKeyEnd === -1
|
|
223
|
+
? modulePath.slice(DEPENDENCY_PINNING_PATH_MARKER.length)
|
|
224
|
+
: modulePath.slice(DEPENDENCY_PINNING_PATH_MARKER.length, nestedKeyEnd);
|
|
225
|
+
if (decodeDependencyPinningPathKey(nestedEncodedKey)) {
|
|
226
|
+
return { pathname, found: true, malformed: true };
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
pathname: `${prefix}${modulePath}`,
|
|
231
|
+
cacheKey,
|
|
232
|
+
found: true,
|
|
233
|
+
malformed: false,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
return { pathname, found: false, malformed: false };
|
|
237
|
+
}
|
|
78
238
|
/**
|
|
79
239
|
* Build cross-project import URL.
|
|
80
240
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -193,6 +193,9 @@ function extractAliasToEntryField(entry, context, sourceKey, targetKey, coerce)
|
|
|
193
193
|
entry[targetKey] = coerce(context[sourceKey]);
|
|
194
194
|
delete context[sourceKey];
|
|
195
195
|
}
|
|
196
|
+
function sanitizeStringFieldValue(value) {
|
|
197
|
+
return sanitizeUrlCredentials(String(value));
|
|
198
|
+
}
|
|
196
199
|
class ConsoleLogger {
|
|
197
200
|
prefix;
|
|
198
201
|
options;
|
|
@@ -223,10 +226,10 @@ class ConsoleLogger {
|
|
|
223
226
|
if (this.componentName)
|
|
224
227
|
entry.component = this.componentName;
|
|
225
228
|
// Extract known fields to top level for easier Grafana filtering
|
|
226
|
-
extractToEntryField(entry, mergedContext, "requestId",
|
|
227
|
-
extractToEntryField(entry, mergedContext, "traceId",
|
|
228
|
-
extractToEntryField(entry, mergedContext, "spanId",
|
|
229
|
-
extractToEntryField(entry, mergedContext, "projectSlug",
|
|
229
|
+
extractToEntryField(entry, mergedContext, "requestId", sanitizeStringFieldValue);
|
|
230
|
+
extractToEntryField(entry, mergedContext, "traceId", sanitizeStringFieldValue);
|
|
231
|
+
extractToEntryField(entry, mergedContext, "spanId", sanitizeStringFieldValue);
|
|
232
|
+
extractToEntryField(entry, mergedContext, "projectSlug", sanitizeStringFieldValue);
|
|
230
233
|
extractToEntryField(entry, mergedContext, "durationMs", (v) => Number(v));
|
|
231
234
|
// Auto-inject trace context from OTel when not already set
|
|
232
235
|
if ((this.options.injectTraceContext ?? true) && traceContextGetter && !entry.traceId) {
|
|
@@ -237,45 +240,44 @@ class ConsoleLogger {
|
|
|
237
240
|
}
|
|
238
241
|
}
|
|
239
242
|
// Extract standard snake_case fields for Loki filtering
|
|
240
|
-
extractToEntryField(entry, mergedContext, "request_id",
|
|
241
|
-
extractToEntryField(entry, mergedContext, "trace_id",
|
|
242
|
-
extractToEntryField(entry, mergedContext, "span_id",
|
|
243
|
-
extractToEntryField(entry, mergedContext, "project_slug",
|
|
244
|
-
//
|
|
245
|
-
//
|
|
246
|
-
|
|
247
|
-
extractToEntryField(entry, mergedContext, "
|
|
248
|
-
extractToEntryField(entry, mergedContext, "
|
|
249
|
-
extractToEntryField(entry, mergedContext, "
|
|
250
|
-
extractToEntryField(entry, mergedContext, "
|
|
251
|
-
extractToEntryField(entry, mergedContext, "
|
|
252
|
-
extractToEntryField(entry, mergedContext, "
|
|
253
|
-
extractToEntryField(entry, mergedContext, "
|
|
254
|
-
extractToEntryField(entry, mergedContext, "
|
|
255
|
-
extractToEntryField(entry, mergedContext, "
|
|
256
|
-
extractToEntryField(entry, mergedContext, "
|
|
257
|
-
extractToEntryField(entry, mergedContext, "
|
|
258
|
-
extractToEntryField(entry, mergedContext, "
|
|
259
|
-
extractToEntryField(entry, mergedContext, "
|
|
260
|
-
extractToEntryField(entry, mergedContext, "
|
|
261
|
-
extractToEntryField(entry, mergedContext, "
|
|
262
|
-
extractToEntryField(entry, mergedContext, "
|
|
263
|
-
extractToEntryField(entry, mergedContext, "
|
|
264
|
-
extractToEntryField(entry, mergedContext, "
|
|
265
|
-
extractToEntryField(entry, mergedContext, "user_visible", (v) => String(v));
|
|
243
|
+
extractToEntryField(entry, mergedContext, "request_id", sanitizeStringFieldValue);
|
|
244
|
+
extractToEntryField(entry, mergedContext, "trace_id", sanitizeStringFieldValue);
|
|
245
|
+
extractToEntryField(entry, mergedContext, "span_id", sanitizeStringFieldValue);
|
|
246
|
+
extractToEntryField(entry, mergedContext, "project_slug", sanitizeStringFieldValue);
|
|
247
|
+
// Lifted string fields are removed from mergedContext before redactSensitive
|
|
248
|
+
// runs, so scrub credential-shaped text while preserving the field value.
|
|
249
|
+
extractToEntryField(entry, mergedContext, "request_url", sanitizeStringFieldValue);
|
|
250
|
+
extractToEntryField(entry, mergedContext, "domain", sanitizeStringFieldValue);
|
|
251
|
+
extractToEntryField(entry, mergedContext, "project_id", sanitizeStringFieldValue);
|
|
252
|
+
extractToEntryField(entry, mergedContext, "release_id", sanitizeStringFieldValue);
|
|
253
|
+
extractToEntryField(entry, mergedContext, "branch_id", sanitizeStringFieldValue);
|
|
254
|
+
extractToEntryField(entry, mergedContext, "branch_name", sanitizeStringFieldValue);
|
|
255
|
+
extractToEntryField(entry, mergedContext, "run_execution_id", sanitizeStringFieldValue);
|
|
256
|
+
extractToEntryField(entry, mergedContext, "run_id", sanitizeStringFieldValue);
|
|
257
|
+
extractToEntryField(entry, mergedContext, "agent_id", sanitizeStringFieldValue);
|
|
258
|
+
extractToEntryField(entry, mergedContext, "thread_id", sanitizeStringFieldValue);
|
|
259
|
+
extractToEntryField(entry, mergedContext, "schedule_id", sanitizeStringFieldValue);
|
|
260
|
+
extractToEntryField(entry, mergedContext, "schedule_name", sanitizeStringFieldValue);
|
|
261
|
+
extractToEntryField(entry, mergedContext, "tool_name", sanitizeStringFieldValue);
|
|
262
|
+
extractToEntryField(entry, mergedContext, "tool_call_id", sanitizeStringFieldValue);
|
|
263
|
+
extractToEntryField(entry, mergedContext, "batch_id", sanitizeStringFieldValue);
|
|
264
|
+
extractToEntryField(entry, mergedContext, "run_target", sanitizeStringFieldValue);
|
|
265
|
+
extractToEntryField(entry, mergedContext, "task", sanitizeStringFieldValue);
|
|
266
|
+
extractToEntryField(entry, mergedContext, "event_kind", sanitizeStringFieldValue);
|
|
267
|
+
extractToEntryField(entry, mergedContext, "user_visible", sanitizeStringFieldValue);
|
|
266
268
|
extractToEntryField(entry, mergedContext, "duration_ms", (v) => Number(v));
|
|
267
|
-
extractToEntryField(entry, mergedContext, "user_id",
|
|
268
|
-
extractToEntryField(entry, mergedContext, "conversation_id",
|
|
269
|
+
extractToEntryField(entry, mergedContext, "user_id", sanitizeStringFieldValue);
|
|
270
|
+
extractToEntryField(entry, mergedContext, "conversation_id", sanitizeStringFieldValue);
|
|
269
271
|
// Also extract camelCase variants so callers can use either convention
|
|
270
|
-
extractToEntryField(entry, mergedContext, "userId",
|
|
271
|
-
extractToEntryField(entry, mergedContext, "conversationId",
|
|
272
|
-
extractAliasToEntryField(entry, mergedContext, "runId", "run_id",
|
|
273
|
-
extractAliasToEntryField(entry, mergedContext, "agentId", "agent_id",
|
|
274
|
-
extractAliasToEntryField(entry, mergedContext, "threadId", "thread_id",
|
|
275
|
-
extractAliasToEntryField(entry, mergedContext, "scheduleId", "schedule_id",
|
|
276
|
-
extractAliasToEntryField(entry, mergedContext, "scheduleName", "schedule_name",
|
|
277
|
-
extractAliasToEntryField(entry, mergedContext, "toolName", "tool_name",
|
|
278
|
-
extractAliasToEntryField(entry, mergedContext, "toolCallId", "tool_call_id",
|
|
272
|
+
extractToEntryField(entry, mergedContext, "userId", sanitizeStringFieldValue);
|
|
273
|
+
extractToEntryField(entry, mergedContext, "conversationId", sanitizeStringFieldValue);
|
|
274
|
+
extractAliasToEntryField(entry, mergedContext, "runId", "run_id", sanitizeStringFieldValue);
|
|
275
|
+
extractAliasToEntryField(entry, mergedContext, "agentId", "agent_id", sanitizeStringFieldValue);
|
|
276
|
+
extractAliasToEntryField(entry, mergedContext, "threadId", "thread_id", sanitizeStringFieldValue);
|
|
277
|
+
extractAliasToEntryField(entry, mergedContext, "scheduleId", "schedule_id", sanitizeStringFieldValue);
|
|
278
|
+
extractAliasToEntryField(entry, mergedContext, "scheduleName", "schedule_name", sanitizeStringFieldValue);
|
|
279
|
+
extractAliasToEntryField(entry, mergedContext, "toolName", "tool_name", sanitizeStringFieldValue);
|
|
280
|
+
extractAliasToEntryField(entry, mergedContext, "toolCallId", "tool_call_id", sanitizeStringFieldValue);
|
|
279
281
|
// Emit snake_case aliases for camelCase fields (transition period)
|
|
280
282
|
if (entry.requestId && !entry.request_id)
|
|
281
283
|
entry.request_id = entry.requestId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,eAAe,CAAC;AAmDrC;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAcnD;
|
|
1
|
+
{"version":3,"file":"redact.d.ts","sourceRoot":"","sources":["../../../../src/src/utils/logger/redact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,eAAe,CAAC;AAmDrC;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAcnD;AAoFD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAEhD;AA6BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyB5D;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBxD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,CAAC,SAAS;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,EAC5D,KAAK,EAAE,CAAC,GAAG,CAAC,CAMb"}
|
|
@@ -98,6 +98,8 @@ function hasToJson(value) {
|
|
|
98
98
|
return typeof value.toJSON === "function";
|
|
99
99
|
}
|
|
100
100
|
function redactValue(value, depth, seen) {
|
|
101
|
+
if (typeof value === "string")
|
|
102
|
+
return sanitizeUrlCredentials(value);
|
|
101
103
|
if (Array.isArray(value)) {
|
|
102
104
|
if (depth >= MAX_DEPTH || seen.has(value))
|
|
103
105
|
return REDACTED;
|
|
@@ -127,6 +129,10 @@ function redactValue(value, depth, seen) {
|
|
|
127
129
|
if (isRecord(serialized) || Array.isArray(serialized)) {
|
|
128
130
|
return redactValue(serialized, depth + 1, seen);
|
|
129
131
|
}
|
|
132
|
+
if (typeof serialized === "string") {
|
|
133
|
+
const sanitized = sanitizeUrlCredentials(serialized);
|
|
134
|
+
return sanitized === serialized ? value : sanitized;
|
|
135
|
+
}
|
|
130
136
|
// Scalar result (string/number/…): the object serializes safely as-is.
|
|
131
137
|
return value;
|
|
132
138
|
}
|
|
@@ -160,7 +166,8 @@ function redactValue(value, depth, seen) {
|
|
|
160
166
|
}
|
|
161
167
|
}
|
|
162
168
|
// Primitives and scalar-serializing objects (Date, URL, …) are returned
|
|
163
|
-
// untouched: they are not key/value bags we
|
|
169
|
+
// untouched: except for string values above, they are not key/value bags we
|
|
170
|
+
// can safely rewrite.
|
|
164
171
|
return value;
|
|
165
172
|
}
|
|
166
173
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veryfront/ext-content-mdx",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1178",
|
|
4
4
|
"description": "Veryfront first-party extension package for ext-content-mdx",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"veryfront",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"vfile": "6.0.3"
|
|
68
68
|
},
|
|
69
69
|
"peerDependencies": {
|
|
70
|
-
"veryfront": "^0.1.
|
|
70
|
+
"veryfront": "^0.1.1178"
|
|
71
71
|
},
|
|
72
72
|
"type": "module",
|
|
73
73
|
"types": "./esm/extensions/ext-content-mdx/src/index.d.ts",
|