veryfront 0.1.754 → 0.1.756

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.
Files changed (108) hide show
  1. package/esm/cli/auth/callback-server.d.ts +4 -1
  2. package/esm/cli/auth/callback-server.d.ts.map +1 -1
  3. package/esm/cli/auth/callback-server.js +52 -13
  4. package/esm/cli/auth/index.d.ts +1 -1
  5. package/esm/cli/auth/index.d.ts.map +1 -1
  6. package/esm/cli/auth/index.js +1 -1
  7. package/esm/cli/auth/login.d.ts +2 -0
  8. package/esm/cli/auth/login.d.ts.map +1 -1
  9. package/esm/cli/auth/login.js +18 -6
  10. package/esm/cli/commands/demo/demo.d.ts.map +1 -1
  11. package/esm/cli/commands/demo/demo.js +6 -7
  12. package/esm/deno.js +1 -1
  13. package/esm/src/agent/runtime/index.d.ts +3 -96
  14. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  15. package/esm/src/agent/runtime/index.js +21 -341
  16. package/esm/src/agent/runtime/model-capabilities.d.ts +3 -0
  17. package/esm/src/agent/runtime/model-capabilities.d.ts.map +1 -0
  18. package/esm/src/agent/runtime/model-capabilities.js +18 -0
  19. package/esm/src/agent/runtime/runtime-tool-config.d.ts +14 -0
  20. package/esm/src/agent/runtime/runtime-tool-config.d.ts.map +1 -0
  21. package/esm/src/agent/runtime/runtime-tool-config.js +37 -0
  22. package/esm/src/agent/runtime/skill-policy-enforcement.d.ts +16 -0
  23. package/esm/src/agent/runtime/skill-policy-enforcement.d.ts.map +1 -0
  24. package/esm/src/agent/runtime/skill-policy-enforcement.js +55 -0
  25. package/esm/src/agent/runtime/tool-result-continuation.d.ts +34 -0
  26. package/esm/src/agent/runtime/tool-result-continuation.d.ts.map +1 -0
  27. package/esm/src/agent/runtime/tool-result-continuation.js +194 -0
  28. package/esm/src/agent/schemas/agent.schema.d.ts +7 -0
  29. package/esm/src/agent/schemas/agent.schema.d.ts.map +1 -1
  30. package/esm/src/agent/schemas/agent.schema.js +9 -3
  31. package/esm/src/agent/schemas/index.d.ts +1 -1
  32. package/esm/src/agent/schemas/index.d.ts.map +1 -1
  33. package/esm/src/agent/schemas/index.js +1 -1
  34. package/esm/src/cache/dependency-graph.d.ts +1 -0
  35. package/esm/src/cache/dependency-graph.d.ts.map +1 -1
  36. package/esm/src/cache/dependency-graph.js +7 -1
  37. package/esm/src/modules/server/module-batch-handler.d.ts.map +1 -1
  38. package/esm/src/modules/server/module-batch-handler.js +47 -35
  39. package/esm/src/modules/server/module-server.d.ts.map +1 -1
  40. package/esm/src/modules/server/module-server.js +31 -9
  41. package/esm/src/modules/server/rate-limiter.d.ts +3 -2
  42. package/esm/src/modules/server/rate-limiter.d.ts.map +1 -1
  43. package/esm/src/platform/adapters/base.d.ts +24 -3
  44. package/esm/src/platform/adapters/base.d.ts.map +1 -1
  45. package/esm/src/platform/adapters/base.js +15 -1
  46. package/esm/src/platform/adapters/runtime/bun/websocket-adapter.d.ts +2 -0
  47. package/esm/src/platform/adapters/runtime/bun/websocket-adapter.d.ts.map +1 -1
  48. package/esm/src/platform/adapters/runtime/bun/websocket-adapter.js +33 -1
  49. package/esm/src/platform/adapters/runtime/node/websocket-adapter.d.ts +1 -1
  50. package/esm/src/platform/adapters/runtime/node/websocket-adapter.d.ts.map +1 -1
  51. package/esm/src/platform/adapters/runtime/node/websocket-adapter.js +3 -10
  52. package/esm/src/proxy/handler.d.ts.map +1 -1
  53. package/esm/src/proxy/handler.js +25 -116
  54. package/esm/src/proxy/local-project-resolver.d.ts +18 -0
  55. package/esm/src/proxy/local-project-resolver.d.ts.map +1 -0
  56. package/esm/src/proxy/local-project-resolver.js +63 -0
  57. package/esm/src/proxy/proxy-token-resolution.d.ts +37 -0
  58. package/esm/src/proxy/proxy-token-resolution.d.ts.map +1 -0
  59. package/esm/src/proxy/proxy-token-resolution.js +51 -0
  60. package/esm/src/rendering/orchestrator/module-loader/index.d.ts +10 -0
  61. package/esm/src/rendering/orchestrator/module-loader/index.d.ts.map +1 -1
  62. package/esm/src/rendering/orchestrator/module-loader/index.js +23 -158
  63. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts +20 -0
  64. package/esm/src/rendering/orchestrator/module-loader/module-persistence.d.ts.map +1 -0
  65. package/esm/src/rendering/orchestrator/module-loader/module-persistence.js +80 -0
  66. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts +59 -0
  67. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.d.ts.map +1 -0
  68. package/esm/src/rendering/orchestrator/module-loader/module-transform-cache.js +97 -0
  69. package/esm/src/routing/api/handler.d.ts +2 -1
  70. package/esm/src/routing/api/handler.d.ts.map +1 -1
  71. package/esm/src/routing/api/handler.js +2 -1
  72. package/esm/src/routing/api/route-executor.d.ts +3 -0
  73. package/esm/src/routing/api/route-executor.d.ts.map +1 -1
  74. package/esm/src/routing/api/route-executor.js +28 -0
  75. package/esm/src/runtime/runtime-bridge.js +2 -2
  76. package/esm/src/security/http/base-handler.d.ts +3 -2
  77. package/esm/src/security/http/base-handler.d.ts.map +1 -1
  78. package/esm/src/security/http/base-handler.js +1 -1
  79. package/esm/src/security/sandbox/project-worker.d.ts +1 -0
  80. package/esm/src/security/sandbox/project-worker.d.ts.map +1 -1
  81. package/esm/src/security/sandbox/project-worker.js +17 -1
  82. package/esm/src/security/sandbox/worker-egress-guard.d.ts +15 -0
  83. package/esm/src/security/sandbox/worker-egress-guard.d.ts.map +1 -0
  84. package/esm/src/security/sandbox/worker-egress-guard.js +201 -0
  85. package/esm/src/security/sandbox/worker-permissions.d.ts +6 -2
  86. package/esm/src/security/sandbox/worker-permissions.d.ts.map +1 -1
  87. package/esm/src/security/sandbox/worker-permissions.js +34 -3
  88. package/esm/src/security/sandbox/worker-pool.d.ts +1 -1
  89. package/esm/src/security/sandbox/worker-pool.d.ts.map +1 -1
  90. package/esm/src/security/sandbox/worker-pool.js +35 -9
  91. package/esm/src/server/handlers/preview/hmr-client-manager.d.ts +3 -2
  92. package/esm/src/server/handlers/preview/hmr-client-manager.d.ts.map +1 -1
  93. package/esm/src/server/handlers/preview/hmr.handler.d.ts.map +1 -1
  94. package/esm/src/server/handlers/preview/hmr.handler.js +4 -1
  95. package/esm/src/server/handlers/request/api/api-handler-wrapper.js +1 -1
  96. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts +32 -0
  97. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts.map +1 -0
  98. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.js +27 -0
  99. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/import-rewriter.d.ts.map +1 -1
  100. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/import-rewriter.js +23 -3
  101. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
  102. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +32 -30
  103. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.d.ts +34 -0
  104. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.d.ts.map +1 -0
  105. package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/persistence.js +30 -0
  106. package/esm/src/utils/version-constant.d.ts +1 -1
  107. package/esm/src/utils/version-constant.js +1 -1
  108. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/adapters/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/adapters/base.ts"],"names":[],"mappings":"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"}
@@ -1 +1,15 @@
1
- export {};
1
+ const WEBSOCKET_UPGRADE_RESPONSE_KIND = "websocket-upgrade";
2
+ export function createWebSocketUpgradeResponse(input = {}) {
3
+ return {
4
+ kind: WEBSOCKET_UPGRADE_RESPONSE_KIND,
5
+ status: 101,
6
+ statusText: input.statusText ?? "Switching Protocols",
7
+ headers: new Headers(input.headers),
8
+ body: null,
9
+ };
10
+ }
11
+ export function isWebSocketUpgradeResponse(value) {
12
+ return typeof value === "object" && value !== null &&
13
+ value.kind === WEBSOCKET_UPGRADE_RESPONSE_KIND &&
14
+ value.status === 101;
15
+ }
@@ -14,5 +14,7 @@ export declare class BunWebSocket {
14
14
  onmessage: ((event: MessageEvent) => void) | null;
15
15
  send(_data: string | ArrayBuffer): void;
16
16
  close(_code?: number, _reason?: string): void;
17
+ addEventListener(type: string, listener: EventListener): void;
18
+ removeEventListener(type: string, _listener: EventListener): void;
17
19
  }
18
20
  //# sourceMappingURL=websocket-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/bun/websocket-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGrE,qBAAa,gBAAiB,YAAW,aAAa;IACpD,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;CAerD;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK;IAE3B,UAAU,SAAqB;IAE/B,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IASvC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAG9C"}
1
+ {"version":3,"file":"websocket-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/bun/websocket-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGrE,qBAAa,gBAAiB,YAAW,aAAa;IACpD,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;CAerD;AAED,qBAAa,YAAY;IACvB,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK;IAE3B,UAAU,SAAqB;IAE/B,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IASvC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAiB7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;CAgBlE"}
@@ -9,7 +9,7 @@ export class BunServerAdapter {
9
9
  }
10
10
  const socket = new BunWebSocket();
11
11
  const response = new Response(null, { status: 101, statusText: "Switching Protocols" });
12
- return { socket: socket, response };
12
+ return { socket, response };
13
13
  }
14
14
  }
15
15
  export class BunWebSocket {
@@ -31,4 +31,36 @@ export class BunWebSocket {
31
31
  close(_code, _reason) {
32
32
  this.readyState = BunWebSocket.CLOSED;
33
33
  }
34
+ addEventListener(type, listener) {
35
+ switch (type) {
36
+ case "open":
37
+ this.onopen = listener;
38
+ return;
39
+ case "close":
40
+ this.onclose = listener;
41
+ return;
42
+ case "error":
43
+ this.onerror = listener;
44
+ return;
45
+ case "message":
46
+ this.onmessage = listener;
47
+ return;
48
+ }
49
+ }
50
+ removeEventListener(type, _listener) {
51
+ switch (type) {
52
+ case "open":
53
+ this.onopen = null;
54
+ return;
55
+ case "close":
56
+ this.onclose = null;
57
+ return;
58
+ case "error":
59
+ this.onerror = null;
60
+ return;
61
+ case "message":
62
+ this.onmessage = null;
63
+ return;
64
+ }
65
+ }
34
66
  }
@@ -1,4 +1,4 @@
1
- import type { ServerAdapter, WebSocketUpgrade } from "../../base.js";
1
+ import { type ServerAdapter, type WebSocketUpgrade } from "../../base.js";
2
2
  import type { WSWebSocket } from "./types.js";
3
3
  export declare class NodeServerAdapter implements ServerAdapter {
4
4
  upgradeWebSocket(request: Request): WebSocketUpgrade;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/node/websocket-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,YAAY,CAAC;AAgC7D,qBAAa,iBAAkB,YAAW,aAAa;IACrD,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IA4CpD,OAAO,CAAC,iBAAiB;CAI1B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA4B;IACtC,UAAU,SAAK;IAEf,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACrD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzD,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK;IAE3B,OAAO,CAAC,eAAe,CAAmC;IAE1D,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IA4BxC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAmBtC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAK3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAiB7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;CAgBlE"}
1
+ {"version":3,"file":"websocket-adapter.d.ts","sourceRoot":"","sources":["../../../../../../src/src/platform/adapters/runtime/node/websocket-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,YAAY,CAAC;AAgC7D,qBAAa,iBAAkB,YAAW,aAAa;IACrD,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IAoCpD,OAAO,CAAC,iBAAiB;CAI1B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAA4B;IACtC,UAAU,SAAK;IAEf,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC/C,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IACrD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEzD,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK;IACzB,MAAM,CAAC,QAAQ,CAAC,OAAO,KAAK;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK;IAE3B,OAAO,CAAC,eAAe,CAAmC;IAE1D,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IA4BxC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAmBtC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAK3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAiB7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;CAgBlE"}
@@ -1,3 +1,4 @@
1
+ import { createWebSocketUpgradeResponse, } from "../../base.js";
1
2
  import { createError, toError } from "../../../../errors/index.js";
2
3
  import { serverLogger } from "../../../../utils/index.js";
3
4
  import { registerWebSocketUpgrade } from "./http-server.js";
@@ -50,16 +51,8 @@ export class NodeServerAdapter {
50
51
  "Sec-WebSocket-Accept": this.generateAcceptKey(key),
51
52
  ...(protocol ? { "Sec-WebSocket-Protocol": protocol } : {}),
52
53
  };
53
- // Node.js (undici) doesn't allow status 101 in Response constructor.
54
- // Create a minimal signal object — only checked for status === 101 upstream.
55
- const response = {
56
- status: 101,
57
- statusText: "Switching Protocols",
58
- headers: new Headers(headers),
59
- body: null,
60
- ok: false,
61
- };
62
- return { socket: socket, response };
54
+ const response = createWebSocketUpgradeResponse({ headers });
55
+ return { socket, response };
63
56
  }
64
57
  generateAcceptKey(key) {
65
58
  const GUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoDnD;;;;;GAKG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAED,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AAqHX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAgGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;0BA+RtD,OAAO,YACH,mBAAmB,KAC3B,OAAO,CAAC,YAAY,CAAC;0BAyQjB,OAAO,YACH,mBAAmB,KAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;0BAxeH,MAAM,EAAE;;EA4gBpC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAwB7E"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA0CnD;;;;;GAKG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAED,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AAqHX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAkFD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;0BAqLtD,OAAO,YACH,mBAAmB,KAC3B,OAAO,CAAC,YAAY,CAAC;0BA6QjB,OAAO,YACH,mBAAmB,KAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;0BAtbH,MAAM,EAAE;;EA4dpC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAwB7E"}
@@ -1,23 +1,11 @@
1
1
  import { TokenManager } from "./token-manager.js";
2
2
  import { parseProjectDomain } from "../server/utils/domain-parser.js";
3
- import { createFileSystem } from "../platform/compat/fs.js";
4
- import { cwd, getEnv } from "../platform/compat/process.js";
5
- import { join } from "../platform/compat/path/index.js";
3
+ import { getEnv } from "../platform/compat/process.js";
6
4
  import { injectContext, ProxySpanNames, withSpan } from "./tracing.js";
7
5
  import { computeContentSourceId } from "../cache/keys.js";
8
6
  import { resolve as resolveContract } from "../extensions/contracts.js";
9
- import { LRUCache } from "../utils/lru-wrapper.js";
10
- import { registerLRUCache } from "../cache/index.js";
11
- /**
12
- * Bounded cache for project paths discovered dynamically at request time
13
- * (slug → absolute path). Previously these were written into the per-handler
14
- * `localProjects` config map, which grew without bound. Using a registered
15
- * LRU keeps the working set capped and exposes it to cache monitoring, while
16
- * the static `config.localProjects` map continues to reflect *configured*
17
- * projects for the public `ProxyHandler.localProjects` surface.
18
- */
19
- const discoveredLocalProjects = new LRUCache({ maxEntries: 100 });
20
- registerLRUCache("proxy-discovered-local-projects", discoveredLocalProjects);
7
+ import { createLocalProjectResolver } from "./local-project-resolver.js";
8
+ import { isMissingCustomDomainProjectError, resolveProxyRequestToken, } from "./proxy-token-resolution.js";
21
9
  /**
22
10
  * Cache the resolved AuthProvider at module scope so the proxy does not pay
23
11
  * the registry lookup on every request. The cache is cleared implicitly when
@@ -148,23 +136,11 @@ function getRequestHost(req, url) {
148
136
  function getScope(environment) {
149
137
  return environment === "preview" ? "preview" : "production";
150
138
  }
151
- function extractUserToken(cookieHeader) {
152
- const match = cookieHeader.match(/(?:^|;\s*)authToken=([^;]+)/);
153
- return match?.[1] ? decodeURIComponent(match[1]) : undefined;
154
- }
155
139
  function parseStatusFromError(error) {
156
140
  const message = error instanceof Error ? error.message : String(error);
157
141
  const match = message.match(/failed: (\d+)/);
158
142
  return match ? Number(match[1]) : null;
159
143
  }
160
- // Brittle on purpose: we string-match the API's OAuth error body. Source of truth is
161
- // veryfront-api/src/api/http/rest/auth/routes.ts — `oauthError(c, 'Project not found
162
- // for domain', ...)`. If that string is renamed, this regex silently regresses to 502.
163
- // Durable fix is a typed error code from the token-mint helper; tracked separately.
164
- function isMissingCustomDomainProjectError(error) {
165
- const message = error instanceof Error ? error.message : String(error);
166
- return /project not found for domain/i.test(message);
167
- }
168
144
  async function extractUserIdFromToken(token, apiBaseUrl, log) {
169
145
  const auth = getAuthProvider();
170
146
  const header = auth.decode(token);
@@ -221,52 +197,7 @@ function isProjectMember(users, userId) {
221
197
  export function createProxyHandler(options) {
222
198
  const { config, cache, logger } = options;
223
199
  const localProjects = config.localProjects ?? {};
224
- const fs = createFileSystem();
225
- async function findLocalProject(slug) {
226
- const mapped = localProjects[slug];
227
- if (mapped)
228
- return mapped;
229
- const projectDirs = ["projects", "data/projects", "examples"];
230
- const basePath = cwd();
231
- // Key the discovery cache by the filesystem root as well as the slug: the
232
- // cache is process-wide, so the same slug can resolve to different paths
233
- // across handlers/workspaces or after a cwd change. Keying by basePath
234
- // prevents a stale entry from one root being proxied for another.
235
- const cacheKey = `${basePath}${slug}`;
236
- const cached = discoveredLocalProjects.get(cacheKey);
237
- if (cached)
238
- return cached;
239
- const candidatePaths = projectDirs.map((dir) => join(basePath, dir, slug));
240
- const existingPaths = await Promise.all(candidatePaths.map(async (projectPath) => {
241
- try {
242
- return (await fs.exists(projectPath)) ? projectPath : null;
243
- }
244
- catch (_) {
245
- /* expected: filesystem check may fail */
246
- return null;
247
- }
248
- }));
249
- for (const projectPath of existingPaths) {
250
- if (!projectPath)
251
- continue;
252
- try {
253
- const [hasApp, hasPages, hasComponents] = await Promise.all([
254
- fs.exists(join(projectPath, "app")),
255
- fs.exists(join(projectPath, "pages")),
256
- fs.exists(join(projectPath, "components")),
257
- ]);
258
- if (!hasApp && !hasPages && !hasComponents)
259
- continue;
260
- discoveredLocalProjects.set(cacheKey, projectPath);
261
- logger?.debug("Dynamically discovered local project", { slug, projectPath });
262
- return projectPath;
263
- }
264
- catch (_) {
265
- // expected: filesystem check may fail
266
- }
267
- }
268
- return undefined;
269
- }
200
+ const localProjectResolver = createLocalProjectResolver({ localProjects, logger });
270
201
  const tokenManager = new TokenManager({
271
202
  apiBaseUrl: config.apiBaseUrl,
272
203
  apiClientId: config.apiClientId,
@@ -315,46 +246,6 @@ export function createProxyHandler(options) {
315
246
  function makeProjectNotFoundContext(base, message, token) {
316
247
  return makeErrorContext(base, 404, message, token, undefined, "project-not-found");
317
248
  }
318
- async function resolveRequestToken(req, url, scope, host, projectSlug, options) {
319
- const userToken = extractUserToken(req.headers.get("cookie") ?? "");
320
- const useSignedInternalControlPlaneToken = options.allowSignedInternalControlPlaneToken &&
321
- isSignedInternalControlPlaneRequest(req, url);
322
- let token;
323
- let tokenFetchError;
324
- if (useSignedInternalControlPlaneToken) {
325
- token = req.headers.get("x-token") ?? undefined;
326
- logger?.debug("Using signed control-plane token for internal request", {
327
- pathname: url.pathname,
328
- scope,
329
- });
330
- }
331
- else if (scope === "preview" && userToken) {
332
- token = userToken;
333
- logger?.debug("Using user auth token for preview");
334
- }
335
- if (!token && config.apiClientId && config.apiClientSecret) {
336
- const customDomain = projectSlug ? undefined : host;
337
- if (projectSlug || customDomain) {
338
- try {
339
- token = await tokenManager.getToken(scope, projectSlug, customDomain);
340
- }
341
- catch (error) {
342
- tokenFetchError = error;
343
- if (!(customDomain && isMissingCustomDomainProjectError(error))) {
344
- logger?.error(options.tokenFetchErrorMessage, error, {
345
- projectSlug,
346
- customDomain,
347
- });
348
- }
349
- }
350
- }
351
- }
352
- if (!token && config.apiToken) {
353
- token = config.apiToken;
354
- logger?.debug("Using static API token fallback");
355
- }
356
- return { token, userToken, tokenFetchError };
357
- }
358
249
  async function checkProtectedAccess(req, url, matchingEnv, userToken, users, logContext) {
359
250
  if (!matchingEnv?.protected)
360
251
  return null;
@@ -434,7 +325,7 @@ export function createProxyHandler(options) {
434
325
  isLocalProject: false,
435
326
  };
436
327
  }
437
- const localPath = projectSlug ? await findLocalProject(projectSlug) : undefined;
328
+ const localPath = projectSlug ? await localProjectResolver.find(projectSlug) : undefined;
438
329
  const isLocalProject = !!localPath;
439
330
  logger?.debug("Processing request", {
440
331
  host,
@@ -450,8 +341,17 @@ export function createProxyHandler(options) {
450
341
  logger?.debug("Local project, skipping token fetch", { localPath });
451
342
  }
452
343
  else {
453
- ({ token, userToken, tokenFetchError } = await resolveRequestToken(req, url, scope, host, projectSlug, {
344
+ ({ token, userToken, tokenFetchError } = await resolveProxyRequestToken({
345
+ req,
346
+ url,
347
+ scope,
348
+ host,
349
+ projectSlug,
350
+ config,
351
+ tokenManager,
352
+ logger,
454
353
  allowSignedInternalControlPlaneToken: true,
354
+ signedInternalControlPlaneRequest: isSignedInternalControlPlaneRequest(req, url),
455
355
  tokenFetchErrorMessage: "Token fetch failed",
456
356
  }));
457
357
  if (projectSlug && !token) {
@@ -589,7 +489,16 @@ export function createProxyHandler(options) {
589
489
  const parsedDomain = parseProjectDomain(host);
590
490
  const scope = getScope(parsedDomain.environment);
591
491
  const projectSlug = parsedDomain.slug ?? undefined;
592
- const { token } = await resolveRequestToken(req, url, scope, host, projectSlug, {
492
+ const { token } = await resolveProxyRequestToken({
493
+ req,
494
+ url,
495
+ scope,
496
+ host,
497
+ projectSlug,
498
+ config,
499
+ tokenManager,
500
+ logger,
501
+ signedInternalControlPlaneRequest: isSignedInternalControlPlaneRequest(req, url),
593
502
  tokenFetchErrorMessage: "Token fetch failed for API",
594
503
  });
595
504
  return token;
@@ -0,0 +1,18 @@
1
+ interface LocalProjectFileSystem {
2
+ exists(path: string): Promise<boolean> | boolean;
3
+ }
4
+ interface LocalProjectLogger {
5
+ debug(message: string, extra?: Record<string, unknown>): void;
6
+ }
7
+ export interface LocalProjectResolverOptions {
8
+ localProjects?: Record<string, string>;
9
+ fs?: LocalProjectFileSystem;
10
+ basePath?: () => string;
11
+ logger?: LocalProjectLogger;
12
+ }
13
+ export interface LocalProjectResolver {
14
+ find(slug: string): Promise<string | undefined>;
15
+ }
16
+ export declare function createLocalProjectResolver(options: LocalProjectResolverOptions): LocalProjectResolver;
17
+ export {};
18
+ //# sourceMappingURL=local-project-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-project-resolver.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/local-project-resolver.ts"],"names":[],"mappings":"AAMA,UAAU,sBAAsB;IAC9B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAClD;AAED,UAAU,kBAAkB;IAC1B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,EAAE,CAAC,EAAE,sBAAsB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjD;AAUD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,oBAAoB,CAyDtB"}
@@ -0,0 +1,63 @@
1
+ import { registerLRUCache } from "../cache/index.js";
2
+ import { createFileSystem } from "../platform/compat/fs.js";
3
+ import { join } from "../platform/compat/path/index.js";
4
+ import { cwd } from "../platform/compat/process.js";
5
+ import { LRUCache } from "../utils/lru-wrapper.js";
6
+ /**
7
+ * Bounded cache for project paths discovered dynamically at request time
8
+ * (slug -> absolute path). Configured `localProjects` are never written here,
9
+ * so `ProxyHandler.localProjects` continues to expose only configured projects.
10
+ */
11
+ const discoveredLocalProjects = new LRUCache({ maxEntries: 100 });
12
+ registerLRUCache("proxy-discovered-local-projects", discoveredLocalProjects);
13
+ export function createLocalProjectResolver(options) {
14
+ const localProjects = options.localProjects ?? {};
15
+ const fs = options.fs ?? createFileSystem();
16
+ const getBasePath = options.basePath ?? cwd;
17
+ const logger = options.logger;
18
+ async function find(slug) {
19
+ const mapped = localProjects[slug];
20
+ if (mapped)
21
+ return mapped;
22
+ const projectDirs = ["projects", "data/projects", "examples"];
23
+ const basePath = getBasePath();
24
+ // Key the discovery cache by the filesystem root as well as the slug: the
25
+ // cache is process-wide, so the same slug can resolve to different paths
26
+ // across handlers/workspaces or after a cwd change. Keying by basePath
27
+ // prevents a stale entry from one root being proxied for another.
28
+ const cacheKey = `${basePath}\0${slug}`;
29
+ const cached = discoveredLocalProjects.get(cacheKey);
30
+ if (cached)
31
+ return cached;
32
+ const candidatePaths = projectDirs.map((dir) => join(basePath, dir, slug));
33
+ const existingPaths = await Promise.all(candidatePaths.map(async (projectPath) => {
34
+ try {
35
+ return (await fs.exists(projectPath)) ? projectPath : null;
36
+ }
37
+ catch (_) {
38
+ return null;
39
+ }
40
+ }));
41
+ for (const projectPath of existingPaths) {
42
+ if (!projectPath)
43
+ continue;
44
+ try {
45
+ const [hasApp, hasPages, hasComponents] = await Promise.all([
46
+ fs.exists(join(projectPath, "app")),
47
+ fs.exists(join(projectPath, "pages")),
48
+ fs.exists(join(projectPath, "components")),
49
+ ]);
50
+ if (!hasApp && !hasPages && !hasComponents)
51
+ continue;
52
+ discoveredLocalProjects.set(cacheKey, projectPath);
53
+ logger?.debug("Dynamically discovered local project", { slug, projectPath });
54
+ return projectPath;
55
+ }
56
+ catch (_) {
57
+ // expected: filesystem check may fail
58
+ }
59
+ }
60
+ return undefined;
61
+ }
62
+ return { find };
63
+ }
@@ -0,0 +1,37 @@
1
+ import type { TokenScope } from "./token-manager.js";
2
+ export interface ProxyTokenResolutionConfig {
3
+ apiClientId: string;
4
+ apiClientSecret: string;
5
+ apiToken?: string;
6
+ }
7
+ export interface ProxyTokenManager {
8
+ getToken(scope: TokenScope, projectSlug?: string, customDomain?: string): Promise<string>;
9
+ }
10
+ export interface ProxyTokenResolutionLogger {
11
+ debug: (msg: string, extra?: Record<string, unknown>) => void;
12
+ info: (msg: string, extra?: Record<string, unknown>) => void;
13
+ warn: (msg: string, extra?: Record<string, unknown>) => void;
14
+ error: (msg: string, error?: Error, extra?: Record<string, unknown>) => void;
15
+ }
16
+ export interface ResolveProxyRequestTokenOptions {
17
+ req: Request;
18
+ url: URL;
19
+ scope: TokenScope;
20
+ host: string;
21
+ projectSlug: string | undefined;
22
+ config: ProxyTokenResolutionConfig;
23
+ tokenManager: ProxyTokenManager;
24
+ logger?: ProxyTokenResolutionLogger;
25
+ allowSignedInternalControlPlaneToken?: boolean;
26
+ signedInternalControlPlaneRequest?: boolean;
27
+ tokenFetchErrorMessage: string;
28
+ }
29
+ export interface ResolvedProxyRequestToken {
30
+ token?: string;
31
+ userToken?: string;
32
+ tokenFetchError?: unknown;
33
+ }
34
+ export declare function extractUserToken(cookieHeader: string): string | undefined;
35
+ export declare function isMissingCustomDomainProjectError(error: unknown): boolean;
36
+ export declare function resolveProxyRequestToken(options: ResolveProxyRequestTokenOptions): Promise<ResolvedProxyRequestToken>;
37
+ //# sourceMappingURL=proxy-token-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-token-resolution.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/proxy-token-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CACN,KAAK,EAAE,UAAU,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,+BAA+B;IAC9C,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,0BAA0B,CAAC;IACnC,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGzE;AAID,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGzE;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAqDpC"}
@@ -0,0 +1,51 @@
1
+ export function extractUserToken(cookieHeader) {
2
+ const match = cookieHeader.match(/(?:^|;\s*)authToken=([^;]+)/);
3
+ return match?.[1] ? decodeURIComponent(match[1]) : undefined;
4
+ }
5
+ // Brittle on purpose: the API currently returns this text when token minting
6
+ // cannot map a custom domain. Tracked in #2217 until a typed error code exists.
7
+ export function isMissingCustomDomainProjectError(error) {
8
+ const message = error instanceof Error ? error.message : String(error);
9
+ return /project not found for domain/i.test(message);
10
+ }
11
+ export async function resolveProxyRequestToken(options) {
12
+ const { config, host, logger, projectSlug, req, scope, tokenFetchErrorMessage, tokenManager, url, } = options;
13
+ const userToken = extractUserToken(req.headers.get("cookie") ?? "");
14
+ const useSignedInternalControlPlaneToken = options.allowSignedInternalControlPlaneToken &&
15
+ options.signedInternalControlPlaneRequest;
16
+ let token;
17
+ let tokenFetchError;
18
+ if (useSignedInternalControlPlaneToken) {
19
+ token = req.headers.get("x-token") ?? undefined;
20
+ logger?.debug("Using signed control-plane token for internal request", {
21
+ pathname: url.pathname,
22
+ scope,
23
+ });
24
+ }
25
+ else if (scope === "preview" && userToken) {
26
+ token = userToken;
27
+ logger?.debug("Using user auth token for preview");
28
+ }
29
+ if (!token && config.apiClientId && config.apiClientSecret) {
30
+ const customDomain = projectSlug ? undefined : host;
31
+ if (projectSlug || customDomain) {
32
+ try {
33
+ token = await tokenManager.getToken(scope, projectSlug, customDomain);
34
+ }
35
+ catch (error) {
36
+ tokenFetchError = error;
37
+ if (!(customDomain && isMissingCustomDomainProjectError(error))) {
38
+ logger?.error(tokenFetchErrorMessage, error, {
39
+ projectSlug,
40
+ customDomain,
41
+ });
42
+ }
43
+ }
44
+ }
45
+ }
46
+ if (!token && config.apiToken) {
47
+ token = config.apiToken;
48
+ logger?.debug("Using static API token fallback");
49
+ }
50
+ return { token, userToken, tokenFetchError };
51
+ }
@@ -9,6 +9,16 @@
9
9
  import type { RuntimeAdapter } from "../../../platform/adapters/base.js";
10
10
  export { createEsmCache, createModuleCache, generateHash } from "./cache.js";
11
11
  export { fetchEsmModule, rewriteEsmPaths } from "./esm-rewriter.js";
12
+ /**
13
+ * Transform a module and all its local dependencies (@/ alias and relative imports).
14
+ *
15
+ * @param filePath - Path to the module
16
+ * @param tmpDir - Temp directory for caching
17
+ * @param localAdapter - Local file system adapter
18
+ * @param config - Module loader configuration
19
+ * @param useLocalAdapter - Whether to use local adapter for reading
20
+ * @returns Path to the transformed module file
21
+ */
12
22
  export declare function transformModuleWithDeps(filePath: string, tmpDir: string, localAdapter: RuntimeAdapter, config: ModuleLoaderConfig, useLocalAdapter?: boolean): Promise<string>;
13
23
  export interface ModuleLoaderConfig {
14
24
  projectDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/orchestrator/module-loader/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AA+BzE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAmEpE,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,kBAAkB,EAC1B,eAAe,UAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,CAsQjB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI5D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6DlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/src/rendering/orchestrator/module-loader/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAuBzE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAkBpE;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,kBAAkB,EAC1B,eAAe,UAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,CAgIjB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAI5D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6DlC"}