@jakuta-inc/worker-proxy 6.0.1 → 6.1.0

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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { AllowedHosts, Backend, PathRewrite, Route, HealthProbeResult, ProxyHealthCheck, ProxyHandlerConfig, ProxyOutcome, ProxyHandler, ProxyError } from "./same-origin-proxy.js";
2
- export { createProxyHandler, createAdminAuthRoute } from "./same-origin-proxy.js";
1
+ export type { AllowedHosts, Backend, PathRewrite, ProxyRoute, HealthProbeResult, ProxyHealthCheck, ProxyHandlerConfig, ProxyOutcome, ProxyHandler, ProxyError } from "./same-origin-proxy.js";
2
+ export { createProxyHandler, createAdminAuthRoute, createAdminApiAuthRoute } from "./same-origin-proxy.js";
3
3
  export { VENTURE_API_PREFIX, createVentureApiRoute } from "./venture_api_route.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzL,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9L,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { createProxyHandler, createAdminAuthRoute } from "./same-origin-proxy.js";
1
+ export { createProxyHandler, createAdminAuthRoute, createAdminApiAuthRoute } from "./same-origin-proxy.js";
2
2
  export { VENTURE_API_PREFIX, createVentureApiRoute } from "./venture_api_route.js";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC3G,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -28,11 +28,11 @@ interface BackendBase {
28
28
  * - `"venture"` — a venture backend must never see the raw `admin_session`
29
29
  * cookie. The proxy deletes the `Cookie` header and, if an `admin_session`
30
30
  * was present, injects `X-Admin-Session: <session_id>` carrying the raw
31
- * session id for `admin-client`'s `extract_session_from_handoff_header`.
31
+ * session id for `admin-shared`'s `extract_session_from_handoff_header`.
32
32
  * Any inbound `X-Admin-Session` header is stripped first (forgery defense).
33
33
  *
34
34
  * Cookie-transform semantics are an attribute of the Backend, not of the
35
- * Route. There is no per-route override. Any caller that could point a route
35
+ * ProxyRoute. There is no per-route override. Any caller that could point a route
36
36
  * at the admin backend while running the venture cookie-stripping transform
37
37
  * would break web session restore on admin-api; attaching the transform to
38
38
  * backend identity makes that state unrepresentable.
@@ -46,7 +46,7 @@ export type Backend = (BackendBase & {
46
46
  * A path-rewrite policy applied to the incoming pathname before forwarding.
47
47
  * Either an identity passthrough or an explicit transform function. Encoded
48
48
  * as a discriminated union so `createProxyHandler` callers cannot omit the
49
- * decision — every Route states its rewrite policy explicitly.
49
+ * decision — every ProxyRoute states its rewrite policy explicitly.
50
50
  */
51
51
  export type PathRewrite = {
52
52
  readonly kind: "identity";
@@ -63,7 +63,7 @@ export type PathRewrite = {
63
63
  * @field target - Backend to forward matched requests to
64
64
  * @field rewrite - Path rewrite policy applied before forwarding
65
65
  */
66
- export interface Route {
66
+ export interface ProxyRoute {
67
67
  readonly pathPrefix: string;
68
68
  readonly target: Backend;
69
69
  readonly rewrite: PathRewrite;
@@ -71,11 +71,11 @@ export interface Route {
71
71
  /**
72
72
  * Result of probing a backend's Jakuta `/status` endpoint.
73
73
  *
74
- * @field status - `"ok"` if the backend responded with a 2xx, `"error"` on non-2xx or network failure
74
+ * @field healthStatus - `"ok"` if the backend responded with a 2xx, `"error"` on non-2xx or network failure
75
75
  * @field probeUrl - The full URL that was probed, useful for error reporting
76
76
  */
77
77
  export interface HealthProbeResult {
78
- readonly status: "ok" | "error";
78
+ readonly healthStatus: "ok" | "error";
79
79
  readonly probeUrl: string;
80
80
  }
81
81
  /**
@@ -96,9 +96,9 @@ export type ProxyHealthCheck = {
96
96
  readonly kind: "disabled";
97
97
  } | {
98
98
  readonly kind: "enabled";
99
- readonly path: string;
99
+ readonly healthPath: string;
100
100
  readonly probeTargets: readonly Backend[];
101
- readonly buildHealthResponse: (results: Record<string, HealthProbeResult>) => Response;
101
+ readonly buildHealthResponse: (healthResults: Record<string, HealthProbeResult>) => Response;
102
102
  };
103
103
  /**
104
104
  * Declarative configuration for `createProxyHandler`.
@@ -109,7 +109,7 @@ export type ProxyHealthCheck = {
109
109
  */
110
110
  export interface ProxyHandlerConfig {
111
111
  readonly allowedHosts: AllowedHosts;
112
- readonly routes: readonly Route[];
112
+ readonly routes: readonly ProxyRoute[];
113
113
  readonly healthCheck: ProxyHealthCheck;
114
114
  }
115
115
  /**
@@ -145,7 +145,7 @@ export interface ProxyHandler {
145
145
  handleRequest(workerRequest: Request): Promise<ProxyOutcome>;
146
146
  }
147
147
  /**
148
- * Build a `Route` that proxies `/auth/*` to the admin backend's `/api/auth/*`
148
+ * Build a `ProxyRoute` that proxies `/auth/*` to the admin backend's `/api/auth/*`
149
149
  * surface with cookies preserved. Every frontend that renders admin-shell's
150
150
  * login UI needs this route, because admin-shell's `AdminRoute.*` constants
151
151
  * (`/auth/login`, `/auth/logout`, `/auth/session`) are the single source of
@@ -157,14 +157,29 @@ export interface ProxyHandler {
157
157
  *
158
158
  * @why Prevents each Worker from hand-writing the admin login rewrite because admin-shell's browser paths and admin-api's server paths intentionally differ.
159
159
  * @param adminBaseUrl - Origin of the jakuta-admin API (scheme + host, no path)
160
- * @returns A Route that matches `/auth` / `/auth/*` and forwards to `adminBaseUrl/api/auth/*`
160
+ * @returns A ProxyRoute that matches `/auth` / `/auth/*` and forwards to `adminBaseUrl/api/auth/*`
161
161
  */
162
- export declare function createAdminAuthRoute(adminBaseUrl: string): Route;
162
+ export declare function createAdminAuthRoute(adminBaseUrl: string): ProxyRoute;
163
+ /**
164
+ * Build a `ProxyRoute` that proxies generated admin-shell `/api/auth/*` requests
165
+ * to the Central Admin backend with cookies preserved.
166
+ *
167
+ * Mount this before the venture `/api/*` route. The generated admin-shell
168
+ * auth client now uses the same `/api/auth/*` route templates as the Central
169
+ * Admin backend, so the worker should forward those paths without rewriting
170
+ * them or applying venture cookie-to-header handoff.
171
+ *
172
+ * @why Preserves generated admin auth paths because venture workers must route
173
+ * Central Admin session requests before the general venture API proxy.
174
+ * @param adminBaseUrl - Origin of the jakuta-admin API (scheme + host, no path)
175
+ * @returns A ProxyRoute that matches `/api/auth` / `/api/auth/*` and forwards to Central Admin unchanged.
176
+ */
177
+ export declare function createAdminApiAuthRoute(adminBaseUrl: string): ProxyRoute;
163
178
  /**
164
179
  * Build a `ProxyHandler` from a declarative `ProxyHandlerConfig`. This is the
165
180
  * single handler constructor — there is no separate venture or central-admin
166
181
  * handler. Consumers express their routing topology as a list of
167
- * `Route`s pointing at `Backend`s, and the handler dispatches by first-match.
182
+ * `ProxyRoute`s pointing at `Backend`s, and the handler dispatches by first-match.
168
183
  *
169
184
  * Every config must declare its `allowedHosts` — the non-empty list of
170
185
  * hostnames this worker accepts. A request for any other hostname is
@@ -1 +1 @@
1
- {"version":3,"file":"same-origin-proxy.d.ts","sourceRoot":"","sources":["../src/same-origin-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE1D,UAAU,WAAW;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,OAAO,GACf,CAAC,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAC1C,CAAC,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,KACvC,QAAQ,CAAC;CACf,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9D;AAkPD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,KAAK,CAShE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CA+D3E"}
1
+ {"version":3,"file":"same-origin-proxy.d.ts","sourceRoot":"","sources":["../src/same-origin-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE1D,UAAU,WAAW;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,OAAO,GACf,CAAC,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,GAC1C,CAAC,WAAW,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,KAC7C,QAAQ,CAAC;CACf,CAAC;AAEN;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;CACxC;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9D;AAiPD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CASrE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAMxE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CA+D3E"}
@@ -18,12 +18,12 @@ async function probeHealth(probedBaseUrl) {
18
18
  signal: AbortSignal.timeout(HEALTH_TIMEOUT_MS),
19
19
  });
20
20
  if (healthResponse.ok) {
21
- return { status: "ok", probeUrl };
21
+ return { healthStatus: "ok", probeUrl };
22
22
  }
23
- return { status: "error", probeUrl };
23
+ return { healthStatus: "error", probeUrl };
24
24
  }
25
25
  catch {
26
- return { status: "error", probeUrl };
26
+ return { healthStatus: "error", probeUrl };
27
27
  }
28
28
  }
29
29
  const ADMIN_SESSION_COOKIE_NAME = "admin_session";
@@ -39,11 +39,11 @@ function findAdminSessionCookieValue(cookieHeader) {
39
39
  return { kind: "absent" };
40
40
  }
41
41
  function readCookieHeader(headers) {
42
- const value = headers.get("cookie");
43
- if (value === null) {
42
+ const cookieHeaderValue = headers.get("cookie");
43
+ if (cookieHeaderValue === null) {
44
44
  return { kind: "absent" };
45
45
  }
46
- return { kind: "present", value };
46
+ return { kind: "present", cookieHeaderValue };
47
47
  }
48
48
  function buildVentureForwardedHeaders(originalHeaders) {
49
49
  const forwarded = new Headers(originalHeaders);
@@ -51,7 +51,7 @@ function buildVentureForwardedHeaders(originalHeaders) {
51
51
  const cookieLookup = readCookieHeader(forwarded);
52
52
  forwarded.delete("cookie");
53
53
  if (cookieLookup.kind === "present") {
54
- const sessionLookup = findAdminSessionCookieValue(cookieLookup.value);
54
+ const sessionLookup = findAdminSessionCookieValue(cookieLookup.cookieHeaderValue);
55
55
  if (sessionLookup.kind === "found") {
56
56
  forwarded.set(ADMIN_SESSION_HANDOFF_HEADER, sessionLookup.sessionValue);
57
57
  }
@@ -63,16 +63,15 @@ function stripInboundHandoffHeader(originalHeaders) {
63
63
  stripped.delete(ADMIN_SESSION_HANDOFF_HEADER);
64
64
  return stripped;
65
65
  }
66
- async function forwardToBackend(forwardInput) {
67
- const target = forwardInput.target;
68
- const targetUrl = new URL(forwardInput.targetPath + forwardInput.originalUrl.search, target.baseUrl);
66
+ async function forwardToBackend({ originalRequest, originalUrl, target, targetPath, }) {
67
+ const targetUrl = new URL(targetPath + originalUrl.search, target.baseUrl);
69
68
  let forwardedHeaders;
70
69
  switch (target.kind) {
71
70
  case "venture":
72
- forwardedHeaders = buildVentureForwardedHeaders(forwardInput.originalRequest.headers);
71
+ forwardedHeaders = buildVentureForwardedHeaders(originalRequest.headers);
73
72
  break;
74
73
  case "admin":
75
- forwardedHeaders = stripInboundHandoffHeader(forwardInput.originalRequest.headers);
74
+ forwardedHeaders = stripInboundHandoffHeader(originalRequest.headers);
76
75
  break;
77
76
  default:
78
77
  forwardedHeaders = target;
@@ -80,9 +79,9 @@ async function forwardToBackend(forwardInput) {
80
79
  }
81
80
  try {
82
81
  return await fetch(new Request(targetUrl, {
83
- method: forwardInput.originalRequest.method,
82
+ method: originalRequest.method,
84
83
  headers: forwardedHeaders,
85
- body: forwardInput.originalRequest.body,
84
+ body: originalRequest.body,
86
85
  redirect: "manual",
87
86
  }));
88
87
  }
@@ -103,23 +102,23 @@ async function forwardToBackend(forwardInput) {
103
102
  });
104
103
  }
105
104
  }
106
- function matchPathPrefix(params) {
107
- if (params.pathname === params.prefix) {
105
+ function matchPathPrefix(pathPrefixMatchInput) {
106
+ if (pathPrefixMatchInput.pathname === pathPrefixMatchInput.prefix) {
108
107
  return { kind: "match" };
109
108
  }
110
- if (params.pathname.startsWith(params.prefix + "/")) {
109
+ if (pathPrefixMatchInput.pathname.startsWith(pathPrefixMatchInput.prefix + "/")) {
111
110
  return { kind: "match" };
112
111
  }
113
112
  return { kind: "no_match" };
114
113
  }
115
- function applyPathRewrite(params) {
116
- switch (params.rewrite.kind) {
114
+ function applyPathRewrite(pathRewriteInput) {
115
+ switch (pathRewriteInput.rewrite.kind) {
117
116
  case "identity":
118
- return params.incomingPath;
117
+ return pathRewriteInput.incomingPath;
119
118
  case "transform":
120
- return params.rewrite.apply(params.incomingPath);
119
+ return pathRewriteInput.rewrite.apply(pathRewriteInput.incomingPath);
121
120
  default:
122
- return params.rewrite;
121
+ return pathRewriteInput.rewrite;
123
122
  }
124
123
  }
125
124
  function matchAllowedHost(matchParams) {
@@ -146,11 +145,11 @@ function buildHostRejectionResponse(rejectionInput) {
146
145
  function normalizeBackend(backend) {
147
146
  return { kind: backend.kind, baseUrl: stripTrailingSlash(backend.baseUrl) };
148
147
  }
149
- function normalizeRoute(route) {
148
+ function normalizeRoute(proxyRoute) {
150
149
  return {
151
- pathPrefix: route.pathPrefix,
152
- target: normalizeBackend(route.target),
153
- rewrite: route.rewrite,
150
+ pathPrefix: proxyRoute.pathPrefix,
151
+ target: normalizeBackend(proxyRoute.target),
152
+ rewrite: proxyRoute.rewrite,
154
153
  };
155
154
  }
156
155
  function normalizeHealthCheck(healthCheck) {
@@ -160,7 +159,7 @@ function normalizeHealthCheck(healthCheck) {
160
159
  case "enabled":
161
160
  return {
162
161
  kind: "enabled",
163
- path: healthCheck.path,
162
+ healthPath: healthCheck.healthPath,
164
163
  probeTargets: healthCheck.probeTargets.map(normalizeBackend),
165
164
  buildHealthResponse: healthCheck.buildHealthResponse,
166
165
  };
@@ -169,7 +168,7 @@ function normalizeHealthCheck(healthCheck) {
169
168
  }
170
169
  }
171
170
  /**
172
- * Build a `Route` that proxies `/auth/*` to the admin backend's `/api/auth/*`
171
+ * Build a `ProxyRoute` that proxies `/auth/*` to the admin backend's `/api/auth/*`
173
172
  * surface with cookies preserved. Every frontend that renders admin-shell's
174
173
  * login UI needs this route, because admin-shell's `AdminRoute.*` constants
175
174
  * (`/auth/login`, `/auth/logout`, `/auth/session`) are the single source of
@@ -181,7 +180,7 @@ function normalizeHealthCheck(healthCheck) {
181
180
  *
182
181
  * @why Prevents each Worker from hand-writing the admin login rewrite because admin-shell's browser paths and admin-api's server paths intentionally differ.
183
182
  * @param adminBaseUrl - Origin of the jakuta-admin API (scheme + host, no path)
184
- * @returns A Route that matches `/auth` / `/auth/*` and forwards to `adminBaseUrl/api/auth/*`
183
+ * @returns A ProxyRoute that matches `/auth` / `/auth/*` and forwards to `adminBaseUrl/api/auth/*`
185
184
  */
186
185
  export function createAdminAuthRoute(adminBaseUrl) {
187
186
  return {
@@ -193,11 +192,32 @@ export function createAdminAuthRoute(adminBaseUrl) {
193
192
  },
194
193
  };
195
194
  }
195
+ /**
196
+ * Build a `ProxyRoute` that proxies generated admin-shell `/api/auth/*` requests
197
+ * to the Central Admin backend with cookies preserved.
198
+ *
199
+ * Mount this before the venture `/api/*` route. The generated admin-shell
200
+ * auth client now uses the same `/api/auth/*` route templates as the Central
201
+ * Admin backend, so the worker should forward those paths without rewriting
202
+ * them or applying venture cookie-to-header handoff.
203
+ *
204
+ * @why Preserves generated admin auth paths because venture workers must route
205
+ * Central Admin session requests before the general venture API proxy.
206
+ * @param adminBaseUrl - Origin of the jakuta-admin API (scheme + host, no path)
207
+ * @returns A ProxyRoute that matches `/api/auth` / `/api/auth/*` and forwards to Central Admin unchanged.
208
+ */
209
+ export function createAdminApiAuthRoute(adminBaseUrl) {
210
+ return {
211
+ pathPrefix: "/api/auth",
212
+ target: { kind: "admin", baseUrl: stripTrailingSlash(adminBaseUrl) },
213
+ rewrite: { kind: "identity" },
214
+ };
215
+ }
196
216
  /**
197
217
  * Build a `ProxyHandler` from a declarative `ProxyHandlerConfig`. This is the
198
218
  * single handler constructor — there is no separate venture or central-admin
199
219
  * handler. Consumers express their routing topology as a list of
200
- * `Route`s pointing at `Backend`s, and the handler dispatches by first-match.
220
+ * `ProxyRoute`s pointing at `Backend`s, and the handler dispatches by first-match.
201
221
  *
202
222
  * Every config must declare its `allowedHosts` — the non-empty list of
203
223
  * hostnames this worker accepts. A request for any other hostname is
@@ -236,7 +256,7 @@ export function createProxyHandler(config) {
236
256
  }
237
257
  const pathname = requestUrl.pathname;
238
258
  if (normalizedHealthCheck.kind === "enabled" &&
239
- pathname === normalizedHealthCheck.path) {
259
+ pathname === normalizedHealthCheck.healthPath) {
240
260
  const probeResults = await Promise.all(normalizedHealthCheck.probeTargets.map(async (backend) => {
241
261
  const probeResult = await probeHealth(backend.baseUrl);
242
262
  return [backend.kind, probeResult];
@@ -248,17 +268,17 @@ export function createProxyHandler(config) {
248
268
  const proxiedResponse = normalizedHealthCheck.buildHealthResponse(resultsByKind);
249
269
  return { proxied: true, proxiedResponse };
250
270
  }
251
- for (const route of normalizedRoutes) {
252
- const match = matchPathPrefix({ pathname, prefix: route.pathPrefix });
271
+ for (const proxyRoute of normalizedRoutes) {
272
+ const match = matchPathPrefix({ pathname, prefix: proxyRoute.pathPrefix });
253
273
  if (match.kind === "match") {
254
274
  const rewrittenPath = applyPathRewrite({
255
- rewrite: route.rewrite,
275
+ rewrite: proxyRoute.rewrite,
256
276
  incomingPath: pathname,
257
277
  });
258
278
  const proxiedResponse = await forwardToBackend({
259
279
  originalRequest: workerRequest,
260
280
  originalUrl: requestUrl,
261
- target: route.target,
281
+ target: proxyRoute.target,
262
282
  targetPath: rewrittenPath,
263
283
  });
264
284
  return { proxied: true, proxiedResponse };
@@ -1 +1 @@
1
- {"version":3,"file":"same-origin-proxy.js","sourceRoot":"","sources":["../src/same-origin-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"same-origin-proxy.js","sourceRoot":"","sources":["../src/same-origin-proxy.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,11 @@
1
- import type { Route } from "./same-origin-proxy.js";
1
+ import type { ProxyRoute } from "./same-origin-proxy.js";
2
2
  export declare const VENTURE_API_PREFIX = "/api";
3
3
  /**
4
- * @why Builds the canonical venture-api route from a venture origin so
5
- * every venture Worker proxy mounts `/api/*` the same way, keeping the
6
- * Worker-side path contract aligned with the Rust `VENTURE_API_PREFIX`
7
- * constant.
4
+ * @why Preserves the shared venture API prefix contract because worker proxy
5
+ * routes and Rust venture routing must agree on one mounted path.
8
6
  *
9
7
  * @param ventureBaseUrl - Origin of the venture backend (scheme + host, no path).
10
- * @returns A Route that matches `/api` / `/api/*` and forwards to `ventureBaseUrl`.
8
+ * @returns A ProxyRoute that matches `/api` / `/api/*` and forwards to `ventureBaseUrl`.
11
9
  */
12
- export declare function createVentureApiRoute(ventureBaseUrl: string): Route;
10
+ export declare function createVentureApiRoute(ventureBaseUrl: string): ProxyRoute;
13
11
  //# sourceMappingURL=venture_api_route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"venture_api_route.d.ts","sourceRoot":"","sources":["../src/venture_api_route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAKpD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,KAAK,CAMnE"}
1
+ {"version":3,"file":"venture_api_route.d.ts","sourceRoot":"","sources":["../src/venture_api_route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,UAAU,CAMxE"}
@@ -3,13 +3,11 @@
3
3
  // and venture Worker proxies all agree on where the admin surface is nested.
4
4
  export const VENTURE_API_PREFIX = "/api";
5
5
  /**
6
- * @why Builds the canonical venture-api route from a venture origin so
7
- * every venture Worker proxy mounts `/api/*` the same way, keeping the
8
- * Worker-side path contract aligned with the Rust `VENTURE_API_PREFIX`
9
- * constant.
6
+ * @why Preserves the shared venture API prefix contract because worker proxy
7
+ * routes and Rust venture routing must agree on one mounted path.
10
8
  *
11
9
  * @param ventureBaseUrl - Origin of the venture backend (scheme + host, no path).
12
- * @returns A Route that matches `/api` / `/api/*` and forwards to `ventureBaseUrl`.
10
+ * @returns A ProxyRoute that matches `/api` / `/api/*` and forwards to `ventureBaseUrl`.
13
11
  */
14
12
  export function createVentureApiRoute(ventureBaseUrl) {
15
13
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"venture_api_route.js","sourceRoot":"","sources":["../src/venture_api_route.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAAsB;IACxD,OAAO;QACH,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;QACpD,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;KAChC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"venture_api_route.js","sourceRoot":"","sources":["../src/venture_api_route.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,cAAsB;IACxD,OAAO;QACH,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE;QACpD,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;KAChC,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakuta-inc/worker-proxy",
3
- "version": "6.0.1",
3
+ "version": "6.1.0",
4
4
  "description": "Same-origin reverse proxy for Jakuta admin panel Cloudflare Workers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",