@portel/photon 1.22.1 → 1.23.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.
Files changed (211) hide show
  1. package/README.md +19 -8
  2. package/dist/a2ui/mapper.d.ts +40 -0
  3. package/dist/a2ui/mapper.d.ts.map +1 -0
  4. package/dist/a2ui/mapper.js +286 -0
  5. package/dist/a2ui/mapper.js.map +1 -0
  6. package/dist/a2ui/types.d.ts +129 -0
  7. package/dist/a2ui/types.d.ts.map +1 -0
  8. package/dist/a2ui/types.js +20 -0
  9. package/dist/a2ui/types.js.map +1 -0
  10. package/dist/ag-ui/adapter.d.ts +9 -1
  11. package/dist/ag-ui/adapter.d.ts.map +1 -1
  12. package/dist/ag-ui/adapter.js +33 -16
  13. package/dist/ag-ui/adapter.js.map +1 -1
  14. package/dist/auto-ui/beam/routes/api-daemon.d.ts +18 -0
  15. package/dist/auto-ui/beam/routes/api-daemon.d.ts.map +1 -0
  16. package/dist/auto-ui/beam/routes/api-daemon.js +118 -0
  17. package/dist/auto-ui/beam/routes/api-daemon.js.map +1 -0
  18. package/dist/auto-ui/beam.d.ts.map +1 -1
  19. package/dist/auto-ui/beam.js +34 -34
  20. package/dist/auto-ui/beam.js.map +1 -1
  21. package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
  22. package/dist/auto-ui/bridge/renderers.js +371 -0
  23. package/dist/auto-ui/bridge/renderers.js.map +1 -1
  24. package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
  25. package/dist/auto-ui/streamable-http-transport.js +38 -1
  26. package/dist/auto-ui/streamable-http-transport.js.map +1 -1
  27. package/dist/auto-ui/types.d.ts +19 -0
  28. package/dist/auto-ui/types.d.ts.map +1 -1
  29. package/dist/auto-ui/types.js.map +1 -1
  30. package/dist/beam.bundle.js +757 -107
  31. package/dist/beam.bundle.js.map +4 -4
  32. package/dist/cli/commands/beam.d.ts.map +1 -1
  33. package/dist/cli/commands/beam.js +2 -0
  34. package/dist/cli/commands/beam.js.map +1 -1
  35. package/dist/cli/commands/build.d.ts.map +1 -1
  36. package/dist/cli/commands/build.js +2 -0
  37. package/dist/cli/commands/build.js.map +1 -1
  38. package/dist/cli/commands/doctor.d.ts.map +1 -1
  39. package/dist/cli/commands/doctor.js +92 -3
  40. package/dist/cli/commands/doctor.js.map +1 -1
  41. package/dist/cli/commands/host.d.ts.map +1 -1
  42. package/dist/cli/commands/host.js +9 -1
  43. package/dist/cli/commands/host.js.map +1 -1
  44. package/dist/cli/commands/info.d.ts.map +1 -1
  45. package/dist/cli/commands/info.js +7 -3
  46. package/dist/cli/commands/info.js.map +1 -1
  47. package/dist/cli/commands/init.d.ts.map +1 -1
  48. package/dist/cli/commands/init.js +4 -0
  49. package/dist/cli/commands/init.js.map +1 -1
  50. package/dist/cli/commands/maker.d.ts +8 -0
  51. package/dist/cli/commands/maker.d.ts.map +1 -1
  52. package/dist/cli/commands/maker.js +113 -46
  53. package/dist/cli/commands/maker.js.map +1 -1
  54. package/dist/cli/commands/marketplace.d.ts.map +1 -1
  55. package/dist/cli/commands/marketplace.js +7 -1
  56. package/dist/cli/commands/marketplace.js.map +1 -1
  57. package/dist/cli/commands/mcp.d.ts +10 -0
  58. package/dist/cli/commands/mcp.d.ts.map +1 -1
  59. package/dist/cli/commands/mcp.js +215 -4
  60. package/dist/cli/commands/mcp.js.map +1 -1
  61. package/dist/cli/commands/package.d.ts.map +1 -1
  62. package/dist/cli/commands/package.js +33 -15
  63. package/dist/cli/commands/package.js.map +1 -1
  64. package/dist/cli/commands/ps.d.ts +16 -0
  65. package/dist/cli/commands/ps.d.ts.map +1 -0
  66. package/dist/cli/commands/ps.js +267 -0
  67. package/dist/cli/commands/ps.js.map +1 -0
  68. package/dist/cli/commands/run.d.ts.map +1 -1
  69. package/dist/cli/commands/run.js +7 -0
  70. package/dist/cli/commands/run.js.map +1 -1
  71. package/dist/cli/commands/update.d.ts.map +1 -1
  72. package/dist/cli/commands/update.js +14 -4
  73. package/dist/cli/commands/update.js.map +1 -1
  74. package/dist/cli/index.d.ts.map +1 -1
  75. package/dist/cli/index.js +9 -4
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/context-store.d.ts +4 -4
  78. package/dist/context-store.d.ts.map +1 -1
  79. package/dist/context-store.js +20 -17
  80. package/dist/context-store.js.map +1 -1
  81. package/dist/context.d.ts +5 -4
  82. package/dist/context.d.ts.map +1 -1
  83. package/dist/context.js +68 -14
  84. package/dist/context.js.map +1 -1
  85. package/dist/daemon/client.d.ts +60 -0
  86. package/dist/daemon/client.d.ts.map +1 -1
  87. package/dist/daemon/client.js +76 -0
  88. package/dist/daemon/client.js.map +1 -1
  89. package/dist/daemon/execution-history-sqlite.d.ts +50 -0
  90. package/dist/daemon/execution-history-sqlite.d.ts.map +1 -0
  91. package/dist/daemon/execution-history-sqlite.js +165 -0
  92. package/dist/daemon/execution-history-sqlite.js.map +1 -0
  93. package/dist/daemon/execution-history.d.ts +78 -0
  94. package/dist/daemon/execution-history.d.ts.map +1 -0
  95. package/dist/daemon/execution-history.js +246 -0
  96. package/dist/daemon/execution-history.js.map +1 -0
  97. package/dist/daemon/hot-reload-state.d.ts +27 -0
  98. package/dist/daemon/hot-reload-state.d.ts.map +1 -0
  99. package/dist/daemon/hot-reload-state.js +48 -0
  100. package/dist/daemon/hot-reload-state.js.map +1 -0
  101. package/dist/daemon/protocol.d.ts +5 -1
  102. package/dist/daemon/protocol.d.ts.map +1 -1
  103. package/dist/daemon/protocol.js +13 -0
  104. package/dist/daemon/protocol.js.map +1 -1
  105. package/dist/daemon/registry-keys.d.ts +88 -0
  106. package/dist/daemon/registry-keys.d.ts.map +1 -0
  107. package/dist/daemon/registry-keys.js +91 -0
  108. package/dist/daemon/registry-keys.js.map +1 -0
  109. package/dist/daemon/server.js +1521 -186
  110. package/dist/daemon/server.js.map +1 -1
  111. package/dist/daemon/session-resolver.d.ts +28 -0
  112. package/dist/daemon/session-resolver.d.ts.map +1 -0
  113. package/dist/daemon/session-resolver.js +41 -0
  114. package/dist/daemon/session-resolver.js.map +1 -0
  115. package/dist/data-migration.js +20 -9
  116. package/dist/data-migration.js.map +1 -1
  117. package/dist/loader.d.ts +22 -8
  118. package/dist/loader.d.ts.map +1 -1
  119. package/dist/loader.js +214 -94
  120. package/dist/loader.js.map +1 -1
  121. package/dist/marketplace-manager.d.ts.map +1 -1
  122. package/dist/marketplace-manager.js +9 -5
  123. package/dist/marketplace-manager.js.map +1 -1
  124. package/dist/namespace-migration.d.ts.map +1 -1
  125. package/dist/namespace-migration.js +28 -23
  126. package/dist/namespace-migration.js.map +1 -1
  127. package/dist/photon-cli-runner.d.ts.map +1 -1
  128. package/dist/photon-cli-runner.js +57 -8
  129. package/dist/photon-cli-runner.js.map +1 -1
  130. package/dist/serv/auth/auth-store.d.ts +155 -0
  131. package/dist/serv/auth/auth-store.d.ts.map +1 -0
  132. package/dist/serv/auth/auth-store.js +240 -0
  133. package/dist/serv/auth/auth-store.js.map +1 -0
  134. package/dist/serv/auth/endpoints.d.ts +113 -0
  135. package/dist/serv/auth/endpoints.d.ts.map +1 -0
  136. package/dist/serv/auth/endpoints.js +1005 -0
  137. package/dist/serv/auth/endpoints.js.map +1 -0
  138. package/dist/serv/auth/http-adapter.d.ts +60 -0
  139. package/dist/serv/auth/http-adapter.d.ts.map +1 -0
  140. package/dist/serv/auth/http-adapter.js +235 -0
  141. package/dist/serv/auth/http-adapter.js.map +1 -0
  142. package/dist/serv/auth/jwt.d.ts +92 -6
  143. package/dist/serv/auth/jwt.d.ts.map +1 -1
  144. package/dist/serv/auth/jwt.js +226 -24
  145. package/dist/serv/auth/jwt.js.map +1 -1
  146. package/dist/serv/auth/oauth-sqlite-stores.d.ts +48 -0
  147. package/dist/serv/auth/oauth-sqlite-stores.d.ts.map +1 -0
  148. package/dist/serv/auth/oauth-sqlite-stores.js +212 -0
  149. package/dist/serv/auth/oauth-sqlite-stores.js.map +1 -0
  150. package/dist/serv/auth/sqlite-stores.d.ts +85 -0
  151. package/dist/serv/auth/sqlite-stores.d.ts.map +1 -0
  152. package/dist/serv/auth/sqlite-stores.js +446 -0
  153. package/dist/serv/auth/sqlite-stores.js.map +1 -0
  154. package/dist/serv/auth/well-known.d.ts +54 -1
  155. package/dist/serv/auth/well-known.d.ts.map +1 -1
  156. package/dist/serv/auth/well-known.js +166 -17
  157. package/dist/serv/auth/well-known.js.map +1 -1
  158. package/dist/serv/index.d.ts +45 -2
  159. package/dist/serv/index.d.ts.map +1 -1
  160. package/dist/serv/index.js +65 -1
  161. package/dist/serv/index.js.map +1 -1
  162. package/dist/serv/types/index.d.ts +80 -0
  163. package/dist/serv/types/index.d.ts.map +1 -1
  164. package/dist/serv/types/index.js.map +1 -1
  165. package/dist/server.d.ts.map +1 -1
  166. package/dist/server.js +61 -6
  167. package/dist/server.js.map +1 -1
  168. package/dist/shared/announce-context.d.ts +51 -0
  169. package/dist/shared/announce-context.d.ts.map +1 -0
  170. package/dist/shared/announce-context.js +73 -0
  171. package/dist/shared/announce-context.js.map +1 -0
  172. package/dist/shared/audit-sqlite.d.ts +63 -0
  173. package/dist/shared/audit-sqlite.d.ts.map +1 -0
  174. package/dist/shared/audit-sqlite.js +187 -0
  175. package/dist/shared/audit-sqlite.js.map +1 -0
  176. package/dist/shared/audit.d.ts +25 -3
  177. package/dist/shared/audit.d.ts.map +1 -1
  178. package/dist/shared/audit.js +97 -3
  179. package/dist/shared/audit.js.map +1 -1
  180. package/dist/shared/error-handler.d.ts +10 -1
  181. package/dist/shared/error-handler.d.ts.map +1 -1
  182. package/dist/shared/error-handler.js +17 -2
  183. package/dist/shared/error-handler.js.map +1 -1
  184. package/dist/shared/security.d.ts +12 -0
  185. package/dist/shared/security.d.ts.map +1 -1
  186. package/dist/shared/security.js +80 -0
  187. package/dist/shared/security.js.map +1 -1
  188. package/dist/shared/sqlite-runtime.d.ts +46 -0
  189. package/dist/shared/sqlite-runtime.d.ts.map +1 -0
  190. package/dist/shared/sqlite-runtime.js +110 -0
  191. package/dist/shared/sqlite-runtime.js.map +1 -0
  192. package/dist/tasks/store.d.ts +1 -1
  193. package/dist/tasks/store.d.ts.map +1 -1
  194. package/dist/tasks/store.js +29 -15
  195. package/dist/tasks/store.js.map +1 -1
  196. package/dist/telemetry/metrics.d.ts +26 -0
  197. package/dist/telemetry/metrics.d.ts.map +1 -1
  198. package/dist/telemetry/metrics.js +31 -0
  199. package/dist/telemetry/metrics.js.map +1 -1
  200. package/dist/test-runner.d.ts.map +1 -1
  201. package/dist/test-runner.js +3 -3
  202. package/dist/test-runner.js.map +1 -1
  203. package/dist/version-checker.d.ts.map +1 -1
  204. package/dist/version-checker.js +7 -14
  205. package/dist/version-checker.js.map +1 -1
  206. package/dist/version.d.ts +12 -0
  207. package/dist/version.d.ts.map +1 -1
  208. package/dist/version.js +103 -1
  209. package/dist/version.js.map +1 -1
  210. package/package.json +6 -2
  211. package/templates/photon.template.ts +7 -13
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../src/serv/auth/endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * HTTP adapter for the OAuth 2.1 authorization server.
3
+ *
4
+ * Bridges Node's IncomingMessage / ServerResponse to the pure-function
5
+ * `AuthRequest` / `AuthResponse` shape that the endpoint handlers speak.
6
+ * Same composition pattern as `handleStreamableHTTP` in
7
+ * src/auto-ui/streamable-http-transport.ts: returns `true` when the
8
+ * request was matched + handled, `false` so the host HTTP server can
9
+ * fall through to other routes.
10
+ *
11
+ * Routes mounted:
12
+ * GET /tenant/<slug>/.well-known/oauth-authorization-server
13
+ * GET /tenant/<slug>/.well-known/oauth-protected-resource
14
+ * GET /tenant/<slug>/authorize
15
+ * POST /tenant/<slug>/token
16
+ * POST /tenant/<slug>/register
17
+ * GET /tenant/<slug>/consent
18
+ * POST /tenant/<slug>/consent
19
+ * POST /tenant/<slug>/revoke
20
+ * POST /tenant/<slug>/introspect
21
+ *
22
+ * `<slug>` is optional when `singleTenant` is configured — the same
23
+ * routes are also accepted at the path root for self-host deployments.
24
+ */
25
+ import type { IncomingMessage, ServerResponse } from 'http';
26
+ import type { Serv } from '../index.js';
27
+ import type { Tenant } from '../types/index.js';
28
+ export interface AuthServerHTTPOptions {
29
+ /** The Serv instance that owns the AS state. */
30
+ serv: Serv;
31
+ /**
32
+ * Resolve the tenant for a request. Typical implementations pull the
33
+ * slug from the URL path (`/tenant/<slug>/...`), look it up in the
34
+ * tenant store, and return the Tenant row (or null for 404).
35
+ */
36
+ resolveTenant: (req: IncomingMessage, slug: string | null) => Promise<Tenant | null>;
37
+ /**
38
+ * Resolve the caller identity from the request. Returns `undefined` for
39
+ * unauthenticated requests — `/authorize` will then redirect to the
40
+ * configured login URL with `return_to`. For the self-host
41
+ * `PHOTON_SINGLE_USER=1` short-circuit, bake the tenant-owner id into
42
+ * the return value so every request lands authenticated.
43
+ */
44
+ resolveUserId: (req: IncomingMessage, tenant: Tenant) => Promise<string | undefined>;
45
+ /**
46
+ * When set, also accept the AS endpoints at the root path (no
47
+ * `/tenant/<slug>/` prefix). The `resolveTenant` callback will be
48
+ * invoked with `slug = null` so the host can return the single tenant.
49
+ */
50
+ singleTenant?: boolean;
51
+ /** Optional structured logger. Best-effort. */
52
+ log?: (level: 'info' | 'warn' | 'error', msg: string, meta?: Record<string, unknown>) => void;
53
+ }
54
+ /**
55
+ * Match + handle an AS HTTP request. Returns `false` when the request's
56
+ * path doesn't belong to the AS so the host can fall through to other
57
+ * mounts. Returns `true` for handled, rejected, or errored requests.
58
+ */
59
+ export declare function handleAuthServerHTTP(req: IncomingMessage, res: ServerResponse, options: AuthServerHTTPOptions): Promise<boolean>;
60
+ //# sourceMappingURL=http-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-adapter.d.ts","sourceRoot":"","sources":["../../../src/serv/auth/http-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAiB5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,IAAI,EAAE,IAAI,CAAC;IACX;;;;OAIG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrF;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrF;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/F;AAMD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAiFlB"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * HTTP adapter for the OAuth 2.1 authorization server.
3
+ *
4
+ * Bridges Node's IncomingMessage / ServerResponse to the pure-function
5
+ * `AuthRequest` / `AuthResponse` shape that the endpoint handlers speak.
6
+ * Same composition pattern as `handleStreamableHTTP` in
7
+ * src/auto-ui/streamable-http-transport.ts: returns `true` when the
8
+ * request was matched + handled, `false` so the host HTTP server can
9
+ * fall through to other routes.
10
+ *
11
+ * Routes mounted:
12
+ * GET /tenant/<slug>/.well-known/oauth-authorization-server
13
+ * GET /tenant/<slug>/.well-known/oauth-protected-resource
14
+ * GET /tenant/<slug>/authorize
15
+ * POST /tenant/<slug>/token
16
+ * POST /tenant/<slug>/register
17
+ * GET /tenant/<slug>/consent
18
+ * POST /tenant/<slug>/consent
19
+ * POST /tenant/<slug>/revoke
20
+ * POST /tenant/<slug>/introspect
21
+ *
22
+ * `<slug>` is optional when `singleTenant` is configured — the same
23
+ * routes are also accepted at the path root for self-host deployments.
24
+ */
25
+ import { handleAuthorize, handleConsent, handleToken, handleRegister, handleRevoke, handleIntrospect, } from './endpoints.js';
26
+ import { handleAuthServerRequest, handleProtectedResourceRequest, } from './well-known.js';
27
+ // ============================================================================
28
+ // Public entrypoint
29
+ // ============================================================================
30
+ /**
31
+ * Match + handle an AS HTTP request. Returns `false` when the request's
32
+ * path doesn't belong to the AS so the host can fall through to other
33
+ * mounts. Returns `true` for handled, rejected, or errored requests.
34
+ */
35
+ export async function handleAuthServerHTTP(req, res, options) {
36
+ const parsed = parsePathname(req, options.singleTenant);
37
+ if (!parsed)
38
+ return false;
39
+ // CORS + preflight
40
+ res.setHeader('Access-Control-Allow-Origin', '*');
41
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
42
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Accept');
43
+ if (req.method === 'OPTIONS') {
44
+ res.writeHead(204);
45
+ res.end();
46
+ return true;
47
+ }
48
+ const tenant = await options.resolveTenant(req, parsed.slug);
49
+ if (!tenant) {
50
+ writeJson(res, 404, { error: 'tenant_not_found', error_description: 'Unknown tenant slug' });
51
+ return true;
52
+ }
53
+ // Well-known metadata is tenant-scoped but doesn't need full endpoint deps.
54
+ const wellKnownConfig = options.serv.wellKnownConfig;
55
+ if (parsed.endpoint === '.well-known/oauth-authorization-server' && req.method === 'GET') {
56
+ const response = handleAuthServerRequest(wellKnownConfig, tenant);
57
+ writeResponse(res, response);
58
+ return true;
59
+ }
60
+ if (parsed.endpoint === '.well-known/oauth-protected-resource' && req.method === 'GET') {
61
+ const response = handleProtectedResourceRequest(wellKnownConfig, tenant);
62
+ writeResponse(res, response);
63
+ return true;
64
+ }
65
+ const deps = options.serv.buildEndpointDeps(tenant);
66
+ // Build the AuthRequest. /authorize uses query params only, so reading
67
+ // the body would waste cycles; everything else expects form-urlencoded
68
+ // or JSON. parseBody handles both with a size cap.
69
+ const needsBody = req.method === 'POST';
70
+ let body;
71
+ if (needsBody) {
72
+ try {
73
+ body = await readBody(req, MAX_BODY_BYTES);
74
+ }
75
+ catch (err) {
76
+ if (err instanceof Error && err.message === 'body_too_large') {
77
+ writeJson(res, 413, {
78
+ error: 'invalid_request',
79
+ error_description: 'request body exceeds the configured maximum',
80
+ });
81
+ }
82
+ else {
83
+ writeJson(res, 400, {
84
+ error: 'invalid_request',
85
+ error_description: 'could not read request body',
86
+ });
87
+ }
88
+ return true;
89
+ }
90
+ }
91
+ const userId = await options.resolveUserId(req, tenant);
92
+ const authReq = {
93
+ method: req.method ?? 'GET',
94
+ url: absoluteUrl(req),
95
+ headers: normalizeHeaders(req.headers),
96
+ body,
97
+ userId,
98
+ };
99
+ const response = await dispatch(parsed.endpoint, authReq, deps);
100
+ if (!response) {
101
+ // Matched the /tenant/... prefix but not a known endpoint — fall
102
+ // through so the host can surface its own 404 shape.
103
+ return false;
104
+ }
105
+ options.log?.('info', 'as_http_request', {
106
+ endpoint: parsed.endpoint,
107
+ status: response.status,
108
+ tenant: tenant.slug,
109
+ });
110
+ writeResponse(res, response);
111
+ return true;
112
+ }
113
+ // ============================================================================
114
+ // Route dispatch
115
+ // ============================================================================
116
+ async function dispatch(endpoint, req, deps) {
117
+ switch (endpoint) {
118
+ case 'authorize':
119
+ return handleAuthorize(req, deps);
120
+ case 'token':
121
+ return handleToken(req, deps);
122
+ case 'register':
123
+ return handleRegister(req, deps);
124
+ case 'consent':
125
+ return handleConsent(req, deps);
126
+ case 'revoke':
127
+ return handleRevoke(req, deps);
128
+ case 'introspect':
129
+ return handleIntrospect(req, deps);
130
+ default:
131
+ return null;
132
+ }
133
+ }
134
+ /**
135
+ * Recognize `/tenant/<slug>/<endpoint>` and, when singleTenant is set,
136
+ * the bare `/endpoint` form. The endpoint bucket preserves the
137
+ * `.well-known/...` sub-path when present.
138
+ */
139
+ function parsePathname(req, singleTenant) {
140
+ const url = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
141
+ const parts = url.pathname.split('/').filter(Boolean);
142
+ if (parts.length === 0)
143
+ return null;
144
+ if (parts[0] === 'tenant') {
145
+ if (parts.length < 3)
146
+ return null;
147
+ const slug = parts[1];
148
+ const endpoint = parts.slice(2).join('/');
149
+ if (!KNOWN_ENDPOINTS.has(endpoint))
150
+ return null;
151
+ return { slug, endpoint };
152
+ }
153
+ if (singleTenant) {
154
+ const endpoint = parts.join('/');
155
+ if (!KNOWN_ENDPOINTS.has(endpoint))
156
+ return null;
157
+ return { slug: null, endpoint };
158
+ }
159
+ return null;
160
+ }
161
+ const KNOWN_ENDPOINTS = new Set([
162
+ 'authorize',
163
+ 'token',
164
+ 'register',
165
+ 'consent',
166
+ 'revoke',
167
+ 'introspect',
168
+ '.well-known/oauth-authorization-server',
169
+ '.well-known/oauth-protected-resource',
170
+ ]);
171
+ // ============================================================================
172
+ // Request/response plumbing
173
+ // ============================================================================
174
+ const MAX_BODY_BYTES = 64 * 1024; // 64 KiB — plenty for any AS request
175
+ function absoluteUrl(req) {
176
+ const host = req.headers.host ?? 'localhost';
177
+ // The `forwarded`/`x-forwarded-proto` headers win when present so
178
+ // reverse-proxied deployments see the real external scheme.
179
+ const proto = firstHeader(req.headers['x-forwarded-proto']) ?? 'http';
180
+ return `${proto}://${host}${req.url ?? '/'}`;
181
+ }
182
+ function normalizeHeaders(raw) {
183
+ const out = {};
184
+ for (const [key, value] of Object.entries(raw)) {
185
+ if (value === undefined)
186
+ continue;
187
+ out[key.toLowerCase()] = value;
188
+ }
189
+ return out;
190
+ }
191
+ function firstHeader(raw) {
192
+ if (raw === undefined)
193
+ return undefined;
194
+ return Array.isArray(raw) ? raw[0] : raw;
195
+ }
196
+ async function readBody(req, maxBytes) {
197
+ return new Promise((resolve, reject) => {
198
+ let size = 0;
199
+ let tooLarge = false;
200
+ const chunks = [];
201
+ req.on('data', (chunk) => {
202
+ size += chunk.length;
203
+ if (!tooLarge && size > maxBytes) {
204
+ tooLarge = true;
205
+ }
206
+ if (!tooLarge)
207
+ chunks.push(chunk);
208
+ // Don't destroy the socket here — drain remaining chunks so the
209
+ // caller can still write a proper 413 response. Destroying the
210
+ // request mid-read leaves the client with ECONNRESET and no way
211
+ // to distinguish "too large" from "server crashed."
212
+ });
213
+ req.on('end', () => {
214
+ if (tooLarge)
215
+ reject(new Error('body_too_large'));
216
+ else
217
+ resolve(Buffer.concat(chunks).toString('utf-8'));
218
+ });
219
+ req.on('error', reject);
220
+ });
221
+ }
222
+ function writeResponse(res, response) {
223
+ for (const [key, value] of Object.entries(response.headers)) {
224
+ if (value !== undefined)
225
+ res.setHeader(key, value);
226
+ }
227
+ res.writeHead(response.status);
228
+ res.end(response.body);
229
+ }
230
+ function writeJson(res, status, body) {
231
+ res.setHeader('Content-Type', 'application/json');
232
+ res.writeHead(status);
233
+ res.end(JSON.stringify(body));
234
+ }
235
+ //# sourceMappingURL=http-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/serv/auth/http-adapter.ts"],"names":[],"mappings":"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"}
@@ -6,21 +6,82 @@
6
6
  */
7
7
  import type { Session, SessionToken, Tenant, User, Membership } from '../types/index.js';
8
8
  export interface JwtConfig {
9
- /** Secret key for signing tokens (min 32 bytes recommended) */
9
+ /**
10
+ * Signing secret for HMAC algorithms (HS256/384/512). Min 32 bytes
11
+ * recommended. Ignored when algorithm is an asymmetric variant.
12
+ */
10
13
  secret: string;
11
14
  /** Token issuer (e.g., 'https://serv.example.com') */
12
15
  issuer: string;
13
16
  /** Default token expiry in seconds */
14
17
  expirySeconds: number;
15
- /** Algorithm to use */
16
- algorithm: 'HS256' | 'HS384' | 'HS512';
18
+ /**
19
+ * Algorithm to use. Asymmetric variants require `privateKey` (PEM) for
20
+ * signing and optionally `publicKey` (PEM) for verification. If the
21
+ * public key is omitted it's derived from the private key.
22
+ */
23
+ algorithm: 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'ES256';
24
+ /** PEM-encoded private key. Required for RS256/ES256. */
25
+ privateKey?: string;
26
+ /** PEM-encoded public key; derived from privateKey if omitted. */
27
+ publicKey?: string;
28
+ /** Key identifier for `kid` header. Optional; useful during key rotation. */
29
+ kid?: string;
17
30
  }
18
31
  export declare class JwtService {
19
32
  private config;
33
+ private privateKey?;
34
+ private publicKey?;
20
35
  constructor(config: Partial<JwtConfig> & {
21
- secret: string;
22
36
  issuer: string;
37
+ secret?: string;
23
38
  });
39
+ /**
40
+ * Export the public JWK for publication at `/.well-known/jwks.json`.
41
+ * Only meaningful for asymmetric algorithms.
42
+ */
43
+ exportJwk(): Record<string, unknown> | null;
44
+ /**
45
+ * Generate an OAuth access token JWT for the token endpoint.
46
+ *
47
+ * This is a lower-level variant of `generateSessionToken` that accepts
48
+ * the minimal fields needed for an OAuth 2.1 bearer token: `sub`, `scope`,
49
+ * `client_id`, `tenant_id`, plus a TTL. No `Session` object required.
50
+ */
51
+ generateAccessToken(args: {
52
+ sub: string;
53
+ tenantId: string;
54
+ scope: string;
55
+ clientId: string;
56
+ expiresInSeconds: number;
57
+ now?: Date;
58
+ /** Optional jti; random if omitted. */
59
+ jti?: string;
60
+ }): string;
61
+ /**
62
+ * Sign a custom payload (used by RFC 8693 token exchange, where the
63
+ * caller fully controls the claim set including `aud`, `act`, etc.).
64
+ * Caller is responsible for including `iss`, `exp`, `iat`.
65
+ */
66
+ exchangeSign(payload: Record<string, unknown>): string;
67
+ /**
68
+ * Generate an OpenID Connect id_token per OIDC Core §3.1.3.7.
69
+ *
70
+ * Identity assertion about the end-user. Issued when `openid` scope is
71
+ * granted at /token. Signed with the same key/algorithm as access tokens.
72
+ * `azp` (authorized party) claim identifies the client that requested it.
73
+ */
74
+ generateIdToken(args: {
75
+ sub: string;
76
+ tenantId: string;
77
+ clientId: string;
78
+ expiresInSeconds: number;
79
+ now?: Date;
80
+ /** Optional extra claims (email, name, etc.) surfaced from the profile. */
81
+ profile?: Record<string, unknown>;
82
+ /** Optional nonce echoed from the authorize request. */
83
+ nonce?: string;
84
+ }): string;
24
85
  /**
25
86
  * Generate a session token
26
87
  */
@@ -46,16 +107,18 @@ export declare class JwtService {
46
107
  */
47
108
  private verify;
48
109
  /**
49
- * Create HMAC signature
110
+ * Create JWS signature. HMAC for symmetric algs, RSA-PSS / ECDSA for asymmetric.
50
111
  */
51
112
  private createSignature;
113
+ private hashName;
52
114
  }
53
115
  /**
54
116
  * Generate a code verifier for PKCE
55
117
  */
56
118
  export declare function generateCodeVerifier(): string;
57
119
  /**
58
- * Generate a code challenge from a verifier
120
+ * Generate a code challenge from a verifier (RFC 7636 §4.2, S256 method)
121
+ * code_challenge = BASE64URL-ENCODE(SHA256(code_verifier))
59
122
  */
60
123
  export declare function generateCodeChallenge(verifier: string): string;
61
124
  /**
@@ -78,6 +141,28 @@ export declare function encodeOAuthState(state: OAuthState, secret: string): str
78
141
  * Decode and verify OAuth state
79
142
  */
80
143
  export declare function decodeOAuthState(encoded: string, secret: string): OAuthState | null;
144
+ /**
145
+ * Convert a DER-encoded ECDSA signature (Node's default output from
146
+ * `createSign().sign()`) into the IEEE-P1363 r||s encoding required by
147
+ * RFC 7518 §3.4 for JWS ES256/ES384/ES512.
148
+ *
149
+ * DER layout: 0x30 [totalLen] 0x02 [rLen] [r...] 0x02 [sLen] [s...]
150
+ * r and s are encoded as signed integers — DER prepends 0x00 if the high
151
+ * bit of the first byte would otherwise make them negative. P1363 strips
152
+ * that padding and left-zero-pads each component to `componentLen` bytes.
153
+ */
154
+ declare function derToP1363(der: Buffer, componentLen: number): Buffer;
155
+ /**
156
+ * Convert a P1363 r||s signature into DER for Node's `verifier.verify()`.
157
+ * Inverse of `derToP1363`. Used on the verify path so signatures received
158
+ * in spec-compliant JWS form can still be handed to Node's DER-only API.
159
+ */
160
+ declare function p1363ToDer(p1363: Buffer): Buffer;
161
+ /** Internal exports for tests only. */
162
+ export declare const __test_ecdsa__: {
163
+ derToP1363: typeof derToP1363;
164
+ p1363ToDer: typeof p1363ToDer;
165
+ };
81
166
  export declare function getJwtService(config?: Partial<JwtConfig> & {
82
167
  secret: string;
83
168
  issuer: string;
@@ -88,4 +173,5 @@ export declare function initJwtService(config: Partial<JwtConfig> & {
88
173
  }): JwtService;
89
174
  /** Reset the singleton — for testing only. */
90
175
  export declare function resetJwtService(): void;
176
+ export {};
91
177
  //# sourceMappingURL=jwt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/serv/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMzF,MAAM,WAAW,SAAS;IACxB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;CACxC;AAWD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAQ3E;;OAEG;IACH,oBAAoB,CAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,IAAI,EACX,UAAU,CAAC,EAAE,UAAU,GACtB,MAAM;IAwBT;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IA4BtD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAY1C;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,IAAI;IAeZ;;OAEG;IACH,OAAO,CAAC,MAAM;IA8Bd;;OAEG;IACH,OAAO,CAAC,eAAe;CAYxB;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGhF;AAMD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAyBnF;AAoBD,wBAAgB,aAAa,CAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/D,UAAU,CAOZ;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9D,UAAU,CAIZ;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/serv/auth/jwt.ts"],"names":[],"mappings":"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"}