@zlooks.cn/gateway-server 1.0.2 → 1.0.4

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 (71) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -3
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/server/app/[pluginId]/[[...path]]/page.js +1 -1
  7. package/.next/server/app/[pluginId]/[[...path]]/page.js.nft.json +1 -1
  8. package/.next/server/app/[pluginId]/[[...path]]/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +1 -1
  16. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/shell/navigation/route.js +1 -1
  19. package/.next/server/app/api/shell/navigation/route.js.nft.json +1 -1
  20. package/.next/server/app/favicon.ico/route.js +1 -1
  21. package/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  22. package/.next/server/app/page.js +2 -2
  23. package/.next/server/app/page.js.nft.json +1 -1
  24. package/.next/server/app/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app-paths-manifest.json +3 -3
  26. package/.next/server/chunks/512.js +2 -0
  27. package/.next/server/chunks/761.js +48 -0
  28. package/.next/server/chunks/{238.js → 919.js} +4 -4
  29. package/.next/server/chunks/941.js +1 -0
  30. package/.next/server/chunks/964.js +1 -1
  31. package/.next/server/chunks/991.js +1 -0
  32. package/.next/server/middleware-build-manifest.js +1 -1
  33. package/.next/server/pages/500.html +1 -1
  34. package/.next/server/server-reference-manifest.json +1 -1
  35. package/.next/static/chunks/130-85ed753dd2afbb75.js +1 -0
  36. package/.next/static/chunks/{192-ad1ffa171aaeadb3.js → 906-02ebd3fcb9fc3f0c.js} +1 -1
  37. package/.next/static/chunks/app/[pluginId]/[[...path]]/page-4dd303371bb755c7.js +1 -0
  38. package/.next/static/chunks/app/layout-8208d5ac4dfff885.js +1 -0
  39. package/.next/trace +22 -22
  40. package/.next/trace-build +1 -1
  41. package/dist/runtime/gateway-runtime.d.ts +3 -0
  42. package/dist/runtime/gateway-runtime.d.ts.map +1 -1
  43. package/dist/runtime/gateway-runtime.js +19 -0
  44. package/dist/runtime/gateway-runtime.js.map +1 -1
  45. package/dist/runtime/mcp-gateway-runtime.d.ts.map +1 -1
  46. package/dist/runtime/mcp-gateway-runtime.js +5 -0
  47. package/dist/runtime/mcp-gateway-runtime.js.map +1 -1
  48. package/dist/runtime/micro-browser-api-proxy.js +5 -1
  49. package/dist/runtime/micro-browser-api-proxy.js.map +1 -1
  50. package/dist/runtime/public-asset-catalog.d.ts +18 -0
  51. package/dist/runtime/public-asset-catalog.d.ts.map +1 -0
  52. package/dist/runtime/public-asset-catalog.js +30 -0
  53. package/dist/runtime/public-asset-catalog.js.map +1 -0
  54. package/dist/runtime/public-asset-discovery.d.ts +20 -0
  55. package/dist/runtime/public-asset-discovery.d.ts.map +1 -0
  56. package/dist/runtime/public-asset-discovery.js +85 -0
  57. package/dist/runtime/public-asset-discovery.js.map +1 -0
  58. package/dist/runtime/public-asset-proxy.d.ts +16 -0
  59. package/dist/runtime/public-asset-proxy.d.ts.map +1 -0
  60. package/dist/runtime/public-asset-proxy.js +127 -0
  61. package/dist/runtime/public-asset-proxy.js.map +1 -0
  62. package/package.json +11 -9
  63. package/.next/server/chunks/514.js +0 -48
  64. package/.next/server/chunks/61.js +0 -1
  65. package/.next/server/chunks/750.js +0 -2
  66. package/.next/server/chunks/939.js +0 -1
  67. package/.next/static/chunks/410-a28dfcd5fc4cf9b3.js +0 -1
  68. package/.next/static/chunks/app/[pluginId]/[[...path]]/page-8e20a213f2a428e0.js +0 -1
  69. package/.next/static/chunks/app/layout-ba60fe835762447a.js +0 -1
  70. /package/.next/static/{1FYzLDXgFQUI3FHFjATi6 → 4JU1L88bqvTqs50yGMNXG}/_buildManifest.js +0 -0
  71. /package/.next/static/{1FYzLDXgFQUI3FHFjATi6 → 4JU1L88bqvTqs50yGMNXG}/_ssgManifest.js +0 -0
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-webpack","duration":129730822,"timestamp":712093325303,"id":14,"parentId":1,"tags":{},"startTime":1788265239830,"traceId":"cf279b9b5cf55cd6"},{"name":"run-typescript","duration":1988687,"timestamp":712223073489,"id":4713,"parentId":1,"tags":{},"startTime":1788265369582,"traceId":"cf279b9b5cf55cd6"},{"name":"static-check","duration":2896787,"timestamp":712225109156,"id":4716,"parentId":1,"tags":{},"startTime":1788265371617,"traceId":"cf279b9b5cf55cd6"},{"name":"static-generation","duration":5719456,"timestamp":712228917988,"id":4736,"parentId":1,"tags":{},"startTime":1788265375426,"traceId":"cf279b9b5cf55cd6"},{"name":"collect-build-traces","duration":34777237,"timestamp":712228007274,"id":4733,"parentId":1,"tags":{},"startTime":1788265374515,"traceId":"cf279b9b5cf55cd6"},{"name":"telemetry-flush","duration":927,"timestamp":712262790390,"id":4744,"parentId":1,"tags":{},"startTime":1788265409300,"traceId":"cf279b9b5cf55cd6"},{"name":"next-build","duration":170282592,"timestamp":712092508742,"id":1,"tags":{"buildMode":"default","version":"16.3.0","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1788265239014,"traceId":"cf279b9b5cf55cd6"}]
1
+ [{"name":"run-webpack","duration":138340288,"timestamp":870271676590,"id":14,"parentId":1,"tags":{},"startTime":1788779733464,"traceId":"4d87ba1f5ce1d4fd"},{"name":"run-typescript","duration":1699881,"timestamp":870410023145,"id":4719,"parentId":1,"tags":{},"startTime":1788779871815,"traceId":"4d87ba1f5ce1d4fd"},{"name":"static-check","duration":2739244,"timestamp":870411764633,"id":4722,"parentId":1,"tags":{},"startTime":1788779873556,"traceId":"4d87ba1f5ce1d4fd"},{"name":"static-generation","duration":5326055,"timestamp":870415275628,"id":4742,"parentId":1,"tags":{},"startTime":1788779877067,"traceId":"4d87ba1f5ce1d4fd"},{"name":"collect-build-traces","duration":31345074,"timestamp":870414505214,"id":4739,"parentId":1,"tags":{},"startTime":1788779876297,"traceId":"4d87ba1f5ce1d4fd"},{"name":"telemetry-flush","duration":490,"timestamp":870445855969,"id":4750,"parentId":1,"tags":{},"startTime":1788779907649,"traceId":"4d87ba1f5ce1d4fd"},{"name":"next-build","duration":174821618,"timestamp":870271034869,"id":1,"tags":{"buildMode":"default","version":"16.3.0","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1788779732823,"traceId":"4d87ba1f5ce1d4fd"}]
@@ -6,10 +6,12 @@ import { BrowserApiDiscoveryRuntime } from './browser-api-discovery-runtime.js';
6
6
  import { McpGatewayRuntime } from './mcp-gateway-runtime.js';
7
7
  import { type GatewayRscAccessPolicy } from './rsc-access-policy.js';
8
8
  import { RscDiscoveryRuntime } from './rsc-discovery-runtime.js';
9
+ import { PublicAssetDiscovery } from './public-asset-discovery.js';
9
10
  type GatewayHost = Pick<HttpNext, 'use' | 'start'>;
10
11
  type GatewayRscRuntime = Pick<RscDiscoveryRuntime, 'artifacts' | 'deployments' | 'locator' | 'start' | 'close'>;
11
12
  type GatewayMcpRuntime = Pick<McpGatewayRuntime, 'middleware' | 'start' | 'close'>;
12
13
  type GatewayBrowserApiRuntime = Pick<BrowserApiDiscoveryRuntime, 'resolve' | 'start' | 'close'>;
14
+ type GatewayPublicAssetRuntime = Pick<PublicAssetDiscovery, 'resolve' | 'start' | 'close'>;
13
15
  type RuntimeLogger = Pick<Logger, 'error' | 'warn' | 'info'>;
14
16
  interface GatewayRuntimeDependencies {
15
17
  logger: RuntimeLogger;
@@ -18,6 +20,7 @@ interface GatewayRuntimeDependencies {
18
20
  createRsc?(application: Application, readConfig: () => GatewayConfig): GatewayRscRuntime;
19
21
  createMcp?(application: Application, config: GatewayConfig['mcp']): GatewayMcpRuntime;
20
22
  createBrowserApi?(application: Application): GatewayBrowserApiRuntime;
23
+ createPublicAssets?(application: Application): GatewayPublicAssetRuntime;
21
24
  createRscAccessPolicy?(rsc: GatewayRscRuntime): GatewayRscAccessPolicy;
22
25
  mountRsc?(host: GatewayHost, rsc: GatewayRscRuntime, policy: GatewayRscAccessPolicy, readConfig: () => GatewayConfig): void;
23
26
  mountBrowserApi?(host: GatewayHost, application: Application, routes: GatewayBrowserApiRuntime, readPublicOrigin: () => string, logger: RuntimeLogger): void;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/gateway-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/gateway-runtime.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import { RscDiscoveryRuntime } from './rsc-discovery-runtime.js';
10
10
  import { mountGatewayRscAdapters } from './rsc-host-adapters.js';
11
11
  import { mountMicroBrowserApiProxy } from './micro-browser-api-proxy.js';
12
12
  import { mountRscBrowserContext } from './rsc-browser-context.js';
13
+ import { PublicAssetDiscovery } from './public-asset-discovery.js';
14
+ import { mountPublicAssetProxy } from './public-asset-proxy.js';
13
15
  export class GatewayRuntime {
14
16
  rsc;
15
17
  rscAccessPolicy;
@@ -18,6 +20,8 @@ export class GatewayRuntime {
18
20
  #initialConfig;
19
21
  #logger;
20
22
  #browserApi;
23
+ #publicAssets;
24
+ #publicTransfers;
21
25
  #reloader;
22
26
  #startHttpPromise;
23
27
  #stopHttpPromise;
@@ -50,6 +54,10 @@ export class GatewayRuntime {
50
54
  this.#host = createHost(initialConfig.public.port, cwd);
51
55
  this.rsc = createRsc(application, () => this.config);
52
56
  this.#browserApi = createBrowserApi(application);
57
+ this.#publicAssets = dependencies.createPublicAssets?.(application) ?? new PublicAssetDiscovery(application, {
58
+ onError: (error) => this.#logger.error({ err: error, event: 'public-asset.discovery.failed' }, 'Public transfer discovery failed'),
59
+ onRejected: (topic, error) => this.#logger.warn({ err: error, topic, event: 'public-asset.discovery.rejected' }, 'Public transfer announcement rejected'),
60
+ });
53
61
  this.rscAccessPolicy = dependencies.createRscAccessPolicy?.(this.rsc)
54
62
  ?? new ActivePublicRscAccessPolicy(this.rsc.deployments);
55
63
  this.#reloader = createRuntimeReloader({
@@ -73,6 +81,14 @@ export class GatewayRuntime {
73
81
  mountRsc(this.#host, this.rsc, this.rscAccessPolicy, () => this.config);
74
82
  this.#host.use((context, next) => this.#useCurrent((state) => state.mcp.middleware(context, next)));
75
83
  mountBrowserApi(this.#host, application, this.#browserApi, () => this.config.public.origin, this.#logger);
84
+ this.#publicTransfers = mountPublicAssetProxy(this.#host, application, {
85
+ resolve: (path, method) => {
86
+ const reserved = ['/api', '/_next', '/_hile', '/-', this.config.mcp.path, this.config.rsc.assetMountPath];
87
+ if (reserved.some((prefix) => path === prefix || path.startsWith(`${prefix.replace(/\/$/, '')}/`)))
88
+ return { status: 'none' };
89
+ return this.#publicAssets.resolve(path, method);
90
+ },
91
+ }, this.#logger);
76
92
  }
77
93
  get config() {
78
94
  return this.#reloader?.current()?.config ?? this.#initialConfig;
@@ -81,6 +97,7 @@ export class GatewayRuntime {
81
97
  try {
82
98
  await this.#requireReloader().update(this.#initialConfig);
83
99
  await this.#browserApi.start();
100
+ await this.#publicAssets.start();
84
101
  await this.rsc.start();
85
102
  }
86
103
  catch (error) {
@@ -125,6 +142,7 @@ export class GatewayRuntime {
125
142
  return stopPromise;
126
143
  }
127
144
  async #stopHostOnce() {
145
+ this.#publicTransfers.close();
128
146
  await this.#startHttpPromise;
129
147
  const stopHttp = this.#stopHttp;
130
148
  if (!stopHttp)
@@ -150,6 +168,7 @@ export class GatewayRuntime {
150
168
  () => this.stopHost(),
151
169
  () => this.#requireReloader().stop(),
152
170
  () => this.#browserApi.close(),
171
+ () => this.#publicAssets.close(),
153
172
  () => this.rsc.close(),
154
173
  ], 'Gateway runtime cleanup failed');
155
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-runtime.js","sourceRoot":"","sources":["../../src/runtime/gateway-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-runtime.js","sourceRoot":"","sources":["../../src/runtime/gateway-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-gateway-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/mcp-gateway-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,KAAK,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,wBAAwB,QAM1B,CAAC;AAEZ,qBAAa,iBAAiB;;IAK1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAC5B,MAAM,EAAE,aAAa,EACpC;IAEJ,IAAW,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAIrD;IAEM,OAAO,IAAI,oBAAoB,CAIrC;IAEY,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDlC;IAEY,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAalC;CAEF"}
1
+ {"version":3,"file":"mcp-gateway-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/mcp-gateway-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,KAAK,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,wBAAwB,QAW1B,CAAC;AAEZ,qBAAa,iBAAiB;;IAK1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAC5B,MAAM,EAAE,aAAa,EACpC;IAEJ,IAAW,UAAU,IAAI,eAAe,CAAC,YAAY,CAAC,CAIrD;IAEM,OAAO,IAAI,oBAAoB,CAIrC;IAEY,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDlC;IAEY,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAalC;CAEF"}
@@ -6,6 +6,11 @@ import { closeInOrder } from './close-in-order.js';
6
6
  export const MCP_GATEWAY_INSTRUCTIONS = [
7
7
  'Capabilities are dynamically discovered from their owning internal Hile microservices.',
8
8
  'Before acting, inspect the current tool, resource, and prompt catalogs and their schemas; never invent a capability.',
9
+ 'Client-side search such as ToolSearch returns a filtered, possibly truncated subset, not the complete MCP tool catalog; never conclude that a tool does not exist solely because it is missing from a search result.',
10
+ 'If search results reach the requested limit or indicate truncation, increase the search limit within client-supported bounds or narrow the query to the exact provider-qualified tool name. Even fewer results do not prove completeness when the query is filtered.',
11
+ 'When a complete inventory is needed, enumerate tools/list and pass each returned nextCursor as cursor on the next request until nextCursor is absent. A client-side search limit is not a tools/list parameter. Stop and report incomplete discovery if a request fails or a cursor repeats.',
12
+ 'For clients with deferred tools, confirm that the required tool is activated and callable in the current run before invoking it; activation in a previous run does not guarantee availability in the current run. Use the exact callable name returned by the client, not a guessed alias.',
13
+ 'On Tool not found, first refresh the relevant catalog and rediscover or reactivate the exact tool in the current run before diagnosing server registration. If you cannot verify the complete authorized catalog, report that uncertainty rather than claiming the server does not expose the tool; do not bypass authentication or blindly retry a write whose outcome is unknown.',
9
14
  "For a multi-step workflow, prefer the owning provider's Prompt when one is available.",
10
15
  'A Prompt is guidance, not evidence that any action succeeded.',
11
16
  'Read current state before a write, obtain explicit user confirmation whenever the workflow requires it, invoke the Tool, and read the resulting state again before reporting success.',
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-gateway-runtime.js","sourceRoot":"","sources":["../../src/runtime/mcp-gateway-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-gateway-runtime.js","sourceRoot":"","sources":["../../src/runtime/mcp-gateway-runtime.ts"],"names":[],"mappings":"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"}
@@ -154,8 +154,12 @@ function assertWritableCookieEffects(response, provider) {
154
154
  }
155
155
  }
156
156
  function applyCookieEffects(context, response, publicOrigin) {
157
+ const effects = response.cookieEffects ?? [];
158
+ if (effects.length === 0)
159
+ return;
157
160
  const secure = new URL(publicOrigin).protocol === 'https:';
158
- for (const effect of response.cookieEffects ?? []) {
161
+ context.cookies.secure = secure;
162
+ for (const effect of effects) {
159
163
  context.cookies.set(effect.name, effect.action === 'set' ? effect.value : '', {
160
164
  httpOnly: true,
161
165
  sameSite: 'lax',
@@ -1 +1 @@
1
- {"version":3,"file":"micro-browser-api-proxy.js","sourceRoot":"","sources":["../../src/runtime/micro-browser-api-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"micro-browser-api-proxy.js","sourceRoot":"","sources":["../../src/runtime/micro-browser-api-proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AssetPeer } from '@zlooks.cn/public-asset';
2
+ export type AssetResolution = {
3
+ status: 'none';
4
+ } | {
5
+ status: 'unavailable';
6
+ } | {
7
+ status: 'method-not-allowed';
8
+ methods: readonly string[];
9
+ } | {
10
+ status: 'matched';
11
+ peer: AssetPeer;
12
+ };
13
+ export declare class PublicAssetCatalog {
14
+ #private;
15
+ reconcile(peers: readonly AssetPeer[], rejectedProviders: ReadonlySet<string>): void;
16
+ resolve(path: string, now: number, method?: string): AssetResolution;
17
+ }
18
+ //# sourceMappingURL=public-asset-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-asset-catalog.d.ts","sourceRoot":"","sources":["../../src/runtime/public-asset-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GACzB;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC5D;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAE3C,qBAAa,kBAAkB;;IAI7B,SAAS,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAUnF;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,eAAe,CAUlE;CACF"}
@@ -0,0 +1,30 @@
1
+ export class PublicAssetCatalog {
2
+ #peers = [];
3
+ #blockedPrefixes = [];
4
+ reconcile(peers, rejectedProviders) {
5
+ const known = [...this.#peers, ...peers];
6
+ this.#blockedPrefixes = known
7
+ .filter(({ announcement }) => rejectedProviders.has(announcement.providerId))
8
+ .map(({ announcement }) => announcement.prefix);
9
+ // Keep rejected ownership only while the provider continues to announce itself.
10
+ this.#peers = [...new Map([
11
+ ...peers,
12
+ ...this.#peers.filter(({ announcement }) => rejectedProviders.has(announcement.providerId)),
13
+ ].map((peer) => [`${peer.announcement.providerId}/${peer.announcement.instanceId}`, peer])).values()].slice(0, 256);
14
+ }
15
+ resolve(path, now, method = 'GET') {
16
+ if (this.#blockedPrefixes.some((prefix) => path.startsWith(prefix)))
17
+ return { status: 'unavailable' };
18
+ const matches = this.#peers.filter(({ announcement }) => path.startsWith(announcement.prefix));
19
+ if (!matches.length)
20
+ return { status: 'none' };
21
+ const active = matches.filter(({ announcement }) => announcement.expiresAt > now);
22
+ if (active.length !== 1)
23
+ return { status: 'unavailable' };
24
+ if (!active[0].announcement.methods.some((allowed) => allowed === method)) {
25
+ return { status: 'method-not-allowed', methods: active[0].announcement.methods };
26
+ }
27
+ return { status: 'matched', peer: active[0] };
28
+ }
29
+ }
30
+ //# sourceMappingURL=public-asset-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-asset-catalog.js","sourceRoot":"","sources":["../../src/runtime/public-asset-catalog.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,kBAAkB;IAC7B,MAAM,GAAyB,EAAE,CAAC;IAClC,gBAAgB,GAAsB,EAAE,CAAC;IAEzC,SAAS,CAAC,KAA2B,EAAE,iBAAsC;QAC3E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,KAAK;aAC1B,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aAC5E,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,gFAAgF;QAChF,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;gBACxB,GAAG,KAAK;gBACR,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;aAC5F,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtH,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,GAAW,EAAE,MAAM,GAAG,KAAK;QAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QACtG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/F,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QAClF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { Application } from '@hile/micro';
2
+ import { type AssetResolution } from './public-asset-catalog.js';
3
+ interface DiscoveryOptions {
4
+ clock?: () => number;
5
+ onError?: (error: unknown) => void;
6
+ onRejected?: (topic: string, error: unknown) => void;
7
+ }
8
+ export declare class PublicAssetDiscovery {
9
+ #private;
10
+ private readonly application;
11
+ private readonly options;
12
+ constructor(application: Pick<Application, 'listRegistryTopicSnapshots'>, options?: DiscoveryOptions);
13
+ start(): Promise<void>;
14
+ refresh(): Promise<void>;
15
+ resolve(path: string, method?: string): AssetResolution;
16
+ close(): Promise<void>;
17
+ private poll;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=public-asset-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-asset-discovery.d.ts","sourceRoot":"","sources":["../../src/runtime/public-asset-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGlF,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,oBAAoB;;IAS7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAF1B,YACmB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,4BAA4B,CAAC,EAC5D,OAAO,GAAE,gBAAqB,EAGhD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAS3B;IAED,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,SAAQ,GAAG,eAAe,CAKrD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3B;YAEa,IAAI;CA6BnB"}
@@ -0,0 +1,85 @@
1
+ import { ASSET_TOPIC_PREFIX, assetAnnouncementSchema, assetTopic } from '@zlooks.cn/public-asset';
2
+ import { z } from 'zod';
3
+ import { PublicAssetCatalog } from './public-asset-catalog.js';
4
+ const addressSchema = z.strictObject({ host: z.string().min(1).max(253), port: z.number().int().min(1).max(65535) });
5
+ export class PublicAssetDiscovery {
6
+ application;
7
+ options;
8
+ #catalog = new PublicAssetCatalog();
9
+ #clock;
10
+ #abort = new AbortController();
11
+ #refreshedAt = -Infinity;
12
+ #timer;
13
+ #active;
14
+ constructor(application, options = {}) {
15
+ this.application = application;
16
+ this.options = options;
17
+ this.#clock = options.clock ?? Date.now;
18
+ }
19
+ async start() {
20
+ await this.refresh();
21
+ this.#abort.signal.throwIfAborted();
22
+ if (!this.#timer) {
23
+ this.#timer = setInterval(() => {
24
+ void this.refresh().catch((error) => this.options.onError?.(error));
25
+ }, 1_000);
26
+ this.#timer.unref();
27
+ }
28
+ }
29
+ refresh() {
30
+ if (this.#active)
31
+ return this.#active;
32
+ const active = this.poll();
33
+ this.#active = active;
34
+ void active.finally(() => { this.#active = undefined; }).catch(() => undefined);
35
+ return active;
36
+ }
37
+ resolve(path, method = 'GET') {
38
+ const resolution = this.#catalog.resolve(path, this.#clock(), method);
39
+ if (resolution.status === 'none')
40
+ return resolution;
41
+ if (this.#abort.signal.aborted || this.#clock() - this.#refreshedAt > 30_000)
42
+ return { status: 'unavailable' };
43
+ return resolution;
44
+ }
45
+ async close() {
46
+ this.#abort.abort();
47
+ if (this.#timer)
48
+ clearInterval(this.#timer);
49
+ this.#timer = undefined;
50
+ await this.#active?.catch(() => undefined);
51
+ }
52
+ async poll() {
53
+ this.#abort.signal.throwIfAborted();
54
+ const snapshots = await this.application.listRegistryTopicSnapshots(ASSET_TOPIC_PREFIX, {
55
+ signal: AbortSignal.any([this.#abort.signal, AbortSignal.timeout(5_000)]),
56
+ });
57
+ this.#abort.signal.throwIfAborted();
58
+ if (snapshots.length > 256)
59
+ throw new Error('Public asset catalog limit exceeded');
60
+ const now = this.#clock();
61
+ const peers = [];
62
+ const rejected = new Set();
63
+ for (const snapshot of snapshots) {
64
+ try {
65
+ const announcement = assetAnnouncementSchema.parse(snapshot.payload);
66
+ if (!snapshot.hasData || snapshot.retained || snapshot.publisherCount !== 1 || snapshot.publishers.length !== 1
67
+ || snapshot.topic !== assetTopic(announcement)
68
+ || announcement.issuedAt > now + 1_000 || announcement.expiresAt <= announcement.issuedAt
69
+ || announcement.expiresAt - announcement.issuedAt > 30_000) {
70
+ throw new Error('Invalid live public asset announcement');
71
+ }
72
+ peers.push({ announcement, address: addressSchema.parse(snapshot.publishers[0]) });
73
+ }
74
+ catch (error) {
75
+ const provider = snapshot.topic.slice(ASSET_TOPIC_PREFIX.length).split('/')[0];
76
+ if (snapshot.topic.startsWith(ASSET_TOPIC_PREFIX) && provider)
77
+ rejected.add(provider);
78
+ this.options.onRejected?.(snapshot.topic, error);
79
+ }
80
+ }
81
+ this.#catalog.reconcile(peers, rejected);
82
+ this.#refreshedAt = now;
83
+ }
84
+ }
85
+ //# sourceMappingURL=public-asset-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-asset-discovery.js","sourceRoot":"","sources":["../../src/runtime/public-asset-discovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,UAAU,EAAkB,MAAM,yBAAyB,CAAC;AAClH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,wBAAwB,CAAC;AAElF,MAAM,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAOrH,MAAM,OAAO,oBAAoB;IASZ,WAAW;IACX,OAAO;IATjB,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACpC,MAAM,CAAe;IACrB,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,YAAY,GAAG,CAAC,QAAQ,CAAC;IACzB,MAAM,CAA6B;IACnC,OAAO,CAA4B;IAEnC,YACmB,WAA4D,EAC5D,OAAO,GAAqB,EAAE;2BAD9B,WAAW;uBACX,OAAO;QAExB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC7B,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/E,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM;YAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QAC/G,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM;YAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,EAAE;YACtF,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1E,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACrE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;uBAC1G,QAAQ,CAAC,KAAK,KAAK,UAAU,CAAC,YAAY,CAAC;uBAC3C,YAAY,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,IAAI,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,QAAQ;uBACtF,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;oBAC7D,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC5D,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/E,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,QAAQ;oBAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import type HttpNext from '@hile/http-next';
2
+ import type { Application } from '@hile/micro';
3
+ import type { Logger } from '@hile/logger';
4
+ import type { AssetResolution } from './public-asset-catalog';
5
+ type Middleware = Parameters<HttpNext['use']>[0];
6
+ type Host = {
7
+ use(middleware: Middleware): unknown;
8
+ };
9
+ /** Generic HTTP projection of an announced, read-only binary stream. */
10
+ export declare function mountPublicAssetProxy(host: Host, application: Pick<Application, 'streamPeer'>, routes: {
11
+ resolve(path: string, method: string): AssetResolution;
12
+ }, logger: Pick<Logger, 'error'>): {
13
+ close(): void;
14
+ };
15
+ export {};
16
+ //# sourceMappingURL=public-asset-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-asset-proxy.d.ts","sourceRoot":"","sources":["../../src/runtime/public-asset-proxy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAK3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,KAAK,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK,IAAI,GAAG;IAAE,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAA;CAAE,CAAC;AAOrD,wEAAwE;AACxE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAC5C,MAAM,EAAE;IAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,EAClE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,KAAK,IAAI,IAAI,CAAA;CAAE,CAyEnB"}
@@ -0,0 +1,127 @@
1
+ import { Readable } from 'node:stream';
2
+ import { pipeline } from 'node:stream/promises';
3
+ import { createExecutionContext } from '@hile/context';
4
+ import { ASSET_CHUNK_BYTES, ASSET_MAX_BYTES, ASSET_REQUEST_HEADERS, assetContentLength, assetMetadataSchema, assetRequestSchema, assetResponseHasBody, } from '@zlooks.cn/public-asset';
5
+ const TRANSFER_TIMEOUT_MS = 60_000;
6
+ const IDLE_TIMEOUT_MS = 10_000;
7
+ const MAX_FRAMES = 16_384;
8
+ const MAX_ACTIVE = 256;
9
+ /** Generic HTTP projection of an announced, read-only binary stream. */
10
+ export function mountPublicAssetProxy(host, application, routes, logger) {
11
+ const active = new Set();
12
+ let closed = false;
13
+ host.use(async (context, next) => {
14
+ const resolution = routes.resolve(context.path, context.method);
15
+ if (resolution.status === 'none')
16
+ return next();
17
+ if (closed || active.size >= MAX_ACTIVE || resolution.status === 'unavailable') {
18
+ return emptyResponse(context, 503);
19
+ }
20
+ if (resolution.status === 'method-not-allowed') {
21
+ context.set('Allow', resolution.methods.join(', '));
22
+ return emptyResponse(context, 405);
23
+ }
24
+ const parsed = assetRequestSchema.safeParse({
25
+ method: context.method, path: context.path, query: context.querystring,
26
+ headers: Object.fromEntries(ASSET_REQUEST_HEADERS.flatMap((name) => {
27
+ const value = context.get(name);
28
+ return value ? [[name, value]] : [];
29
+ })),
30
+ });
31
+ if (!parsed.success)
32
+ return emptyResponse(context, 400);
33
+ if (context.req.aborted || context.res.destroyed)
34
+ return;
35
+ const abort = new AbortController();
36
+ const disconnected = () => abort.abort(new Error('Public transfer disconnected'));
37
+ const timer = setTimeout(() => abort.abort(new Error('Public transfer deadline exceeded')), TRANSFER_TIMEOUT_MS);
38
+ timer.unref();
39
+ active.add(abort);
40
+ context.req.once('aborted', disconnected);
41
+ context.res.once('close', disconnected);
42
+ let source;
43
+ try {
44
+ source = await application.streamPeer(resolution.peer.address, resolution.peer.announcement.operation, parsed.data, {
45
+ context: createExecutionContext({}), signal: abort.signal,
46
+ timeout: TRANSFER_TIMEOUT_MS, idleTimeout: IDLE_TIMEOUT_MS, window: 1,
47
+ });
48
+ // Keep errors observed while validating the head, before pipeline owns the body.
49
+ source.on('error', ignoreStreamError);
50
+ const iterator = source[Symbol.asyncIterator]();
51
+ const first = await iterator.next();
52
+ if (first.done)
53
+ throw new Error('Missing response head');
54
+ const head = assetMetadataSchema.parse(first.value);
55
+ const length = assetContentLength(head);
56
+ const hasBody = assetResponseHasBody(parsed.data.method, head.status);
57
+ if (hasBody && length !== undefined && length > ASSET_MAX_BYTES)
58
+ throw new Error('Transfer size limit exceeded');
59
+ if (!hasBody || length === 0) {
60
+ if (!(await iterator.next()).done)
61
+ throw new Error('Unexpected body for an empty response');
62
+ abort.signal.throwIfAborted();
63
+ context.respond = false;
64
+ context.res.writeHead(head.status, head.headers);
65
+ context.res.end();
66
+ return;
67
+ }
68
+ abort.signal.throwIfAborted();
69
+ context.respond = false;
70
+ context.res.writeHead(head.status, head.headers);
71
+ const body = Readable.from(validatedBody(iterator, length), { objectMode: false, highWaterMark: ASSET_CHUNK_BYTES });
72
+ await pipeline(body, context.res, { signal: abort.signal });
73
+ }
74
+ catch (error) {
75
+ if (!context.req.aborted && !context.res.destroyed) {
76
+ logger.error({ err: error, event: 'public-asset.transfer.failed', providerId: resolution.peer.announcement.providerId }, 'Public binary transfer failed');
77
+ if (context.res.headersSent)
78
+ context.res.destroy();
79
+ else
80
+ emptyResponse(context, 502);
81
+ }
82
+ }
83
+ finally {
84
+ clearTimeout(timer);
85
+ context.req.off('aborted', disconnected);
86
+ context.res.off('close', disconnected);
87
+ abort.abort();
88
+ source?.destroy();
89
+ active.delete(abort);
90
+ }
91
+ });
92
+ return { close() { closed = true; for (const abort of active)
93
+ abort.abort(new Error('Public transfer shutdown')); } };
94
+ }
95
+ async function* validatedBody(iterator, expectedLength) {
96
+ let bytes = 0;
97
+ let frames = 0;
98
+ for (;;) {
99
+ const frame = await iterator.next();
100
+ if (frame.done)
101
+ break;
102
+ if (!Buffer.isBuffer(frame.value) || !frame.value.length || frame.value.length > ASSET_CHUNK_BYTES)
103
+ throw new Error('Invalid binary frame');
104
+ if (++frames > MAX_FRAMES)
105
+ throw new Error('Transfer frame limit exceeded');
106
+ bytes += frame.value.length;
107
+ if (bytes > ASSET_MAX_BYTES || (expectedLength !== undefined && bytes > expectedLength))
108
+ throw new Error('Transfer length exceeded');
109
+ // Hold the final bounded chunk until EOF, so trailing frames cannot look like a successful Content-Length response.
110
+ if (expectedLength !== undefined && bytes === expectedLength) {
111
+ if (!(await iterator.next()).done)
112
+ throw new Error('Trailing response frame');
113
+ yield frame.value;
114
+ return;
115
+ }
116
+ yield frame.value;
117
+ }
118
+ if (expectedLength !== undefined && bytes !== expectedLength)
119
+ throw new Error('Truncated binary transfer');
120
+ }
121
+ function emptyResponse(context, status) {
122
+ context.respond = false;
123
+ context.res.writeHead(status, { 'content-length': '0', 'cache-control': 'no-store' });
124
+ context.res.end();
125
+ }
126
+ function ignoreStreamError() { }
127
+ //# sourceMappingURL=public-asset-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-asset-proxy.js","sourceRoot":"","sources":["../../src/runtime/public-asset-proxy.ts"],"names":[],"mappings":"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"}