@noodleseed/one 0.7.0 → 0.10.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 (213) hide show
  1. package/dist/banner.d.ts +11 -0
  2. package/dist/banner.d.ts.map +1 -0
  3. package/dist/banner.js +183 -0
  4. package/dist/banner.js.map +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +6 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/author-loop.d.ts.map +1 -1
  9. package/dist/commands/author-loop.js +78 -3
  10. package/dist/commands/author-loop.js.map +1 -1
  11. package/dist/commands/deploy-ops.d.ts +1 -30
  12. package/dist/commands/deploy-ops.d.ts.map +1 -1
  13. package/dist/commands/deploy-ops.js +79 -88
  14. package/dist/commands/deploy-ops.js.map +1 -1
  15. package/dist/commands/deploy-output.d.ts +31 -0
  16. package/dist/commands/deploy-output.d.ts.map +1 -0
  17. package/dist/commands/deploy-output.js +86 -0
  18. package/dist/commands/deploy-output.js.map +1 -0
  19. package/dist/commands/deploy-version-resolution.d.ts +20 -0
  20. package/dist/commands/deploy-version-resolution.d.ts.map +1 -0
  21. package/dist/commands/deploy-version-resolution.js +77 -0
  22. package/dist/commands/deploy-version-resolution.js.map +1 -0
  23. package/dist/commands/docs-mcp.d.ts +32 -0
  24. package/dist/commands/docs-mcp.d.ts.map +1 -0
  25. package/dist/commands/docs-mcp.js +66 -0
  26. package/dist/commands/docs-mcp.js.map +1 -0
  27. package/dist/commands/mcp-apps.d.ts.map +1 -1
  28. package/dist/commands/mcp-apps.js +38 -37
  29. package/dist/commands/mcp-apps.js.map +1 -1
  30. package/dist/commands/project-setup.d.ts +1 -1
  31. package/dist/commands/project-setup.d.ts.map +1 -1
  32. package/dist/commands/project-setup.js +36 -2
  33. package/dist/commands/project-setup.js.map +1 -1
  34. package/dist/commands/shared.d.ts +1 -0
  35. package/dist/commands/shared.d.ts.map +1 -1
  36. package/dist/commands/shared.js +10 -4
  37. package/dist/commands/shared.js.map +1 -1
  38. package/dist/deploy-version.d.ts +3 -0
  39. package/dist/deploy-version.d.ts.map +1 -0
  40. package/dist/deploy-version.js +28 -0
  41. package/dist/deploy-version.js.map +1 -0
  42. package/dist/deploy.d.ts +5 -1
  43. package/dist/deploy.d.ts.map +1 -1
  44. package/dist/deploy.js +27 -3
  45. package/dist/deploy.js.map +1 -1
  46. package/dist/dev.d.ts.map +1 -1
  47. package/dist/dev.js +9 -1
  48. package/dist/dev.js.map +1 -1
  49. package/dist/devtools-chat.d.ts +76 -0
  50. package/dist/devtools-chat.d.ts.map +1 -0
  51. package/dist/devtools-chat.js +114 -0
  52. package/dist/devtools-chat.js.map +1 -0
  53. package/dist/devtools-env.d.ts +16 -0
  54. package/dist/devtools-env.d.ts.map +1 -0
  55. package/dist/devtools-env.js +71 -0
  56. package/dist/devtools-env.js.map +1 -0
  57. package/dist/devtools-harness.d.ts +28 -0
  58. package/dist/devtools-harness.d.ts.map +1 -0
  59. package/dist/devtools-harness.js +387 -0
  60. package/dist/devtools-harness.js.map +1 -0
  61. package/dist/devtools-preview.d.ts +42 -0
  62. package/dist/devtools-preview.d.ts.map +1 -0
  63. package/dist/devtools-preview.js +394 -0
  64. package/dist/devtools-preview.js.map +1 -0
  65. package/dist/first-run-entry.d.ts +2 -0
  66. package/dist/first-run-entry.d.ts.map +1 -0
  67. package/dist/first-run-entry.js +36 -0
  68. package/dist/first-run-entry.js.map +1 -0
  69. package/dist/first-run.d.ts +26 -0
  70. package/dist/first-run.d.ts.map +1 -0
  71. package/dist/first-run.js +439 -0
  72. package/dist/first-run.js.map +1 -0
  73. package/dist/gradient.d.ts +46 -0
  74. package/dist/gradient.d.ts.map +1 -0
  75. package/dist/gradient.js +87 -0
  76. package/dist/gradient.js.map +1 -0
  77. package/dist/openapi-import.d.ts.map +1 -1
  78. package/dist/openapi-import.js +47 -8
  79. package/dist/openapi-import.js.map +1 -1
  80. package/dist/preview-session.d.ts +46 -0
  81. package/dist/preview-session.d.ts.map +1 -0
  82. package/dist/preview-session.js +132 -0
  83. package/dist/preview-session.js.map +1 -0
  84. package/dist/project.d.ts +2 -0
  85. package/dist/project.d.ts.map +1 -1
  86. package/dist/project.js +2 -0
  87. package/dist/project.js.map +1 -1
  88. package/dist/prompts.d.ts +61 -0
  89. package/dist/prompts.d.ts.map +1 -0
  90. package/dist/prompts.js +209 -0
  91. package/dist/prompts.js.map +1 -0
  92. package/dist/react-widget-build.js +3 -1
  93. package/dist/react-widget-build.js.map +1 -1
  94. package/dist/status.d.ts +58 -0
  95. package/dist/status.d.ts.map +1 -0
  96. package/dist/status.js +106 -0
  97. package/dist/status.js.map +1 -0
  98. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  99. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  100. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  101. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  102. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  103. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  104. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  105. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.d.ts +23 -0
  106. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.d.ts.map +1 -0
  107. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.js +41 -0
  108. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.js.map +1 -0
  109. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts +2 -6
  110. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
  111. package/node_modules/@noodle-borg/connector-defs/dist/compile.js +10 -32
  112. package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
  113. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +16 -0
  114. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
  115. package/node_modules/@noodle-borg/connector-defs/dist/schema.js +6 -0
  116. package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
  117. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +7 -0
  118. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  119. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +14 -5
  120. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  121. package/node_modules/@noodle-borg/module/dist/contract.d.ts +12 -0
  122. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  123. package/node_modules/@noodle-borg/module/dist/contract.js +41 -0
  124. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  125. package/node_modules/@noodle-borg/openapi-import/dist/index.d.ts +4 -0
  126. package/node_modules/@noodle-borg/openapi-import/dist/index.d.ts.map +1 -1
  127. package/node_modules/@noodle-borg/openapi-import/dist/index.js +27 -1
  128. package/node_modules/@noodle-borg/openapi-import/dist/index.js.map +1 -1
  129. package/node_modules/@noodle-borg/openapi-import/dist/response-schema.d.ts +50 -0
  130. package/node_modules/@noodle-borg/openapi-import/dist/response-schema.d.ts.map +1 -0
  131. package/node_modules/@noodle-borg/openapi-import/dist/response-schema.js +227 -0
  132. package/node_modules/@noodle-borg/openapi-import/dist/response-schema.js.map +1 -0
  133. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts +20 -2
  134. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js +37 -2
  136. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts +18 -0
  138. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts.map +1 -0
  139. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js +29 -0
  140. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js.map +1 -0
  141. package/node_modules/@noodle-borg/service/dist/main.js +7 -0
  142. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  143. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
  144. package/node_modules/@noodle-borg/service/dist/oauth/app.js +2 -1
  145. package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
  146. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts +30 -0
  147. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/oauth/branding.js +224 -0
  149. package/node_modules/@noodle-borg/service/dist/oauth/branding.js.map +1 -0
  150. package/node_modules/@noodle-borg/service/dist/oauth/consent.d.ts +0 -6
  151. package/node_modules/@noodle-borg/service/dist/oauth/consent.d.ts.map +1 -1
  152. package/node_modules/@noodle-borg/service/dist/oauth/consent.js +23 -34
  153. package/node_modules/@noodle-borg/service/dist/oauth/consent.js.map +1 -1
  154. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.d.ts.map +1 -1
  155. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js +13 -28
  156. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js.map +1 -1
  157. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +1 -1
  158. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
  159. package/node_modules/@noodle-borg/service/dist/registry-helpers.js +5 -3
  160. package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
  161. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts +1 -0
  162. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  163. package/node_modules/@noodle-borg/service/dist/registry-targets.js +4 -0
  164. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  165. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +59 -0
  166. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -0
  167. package/node_modules/@noodle-borg/service/dist/registry-types.js +2 -0
  168. package/node_modules/@noodle-borg/service/dist/registry-types.js.map +1 -0
  169. package/node_modules/@noodle-borg/service/dist/registry.d.ts +8 -65
  170. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  171. package/node_modules/@noodle-borg/service/dist/registry.js +100 -82
  172. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  173. package/node_modules/@noodle-borg/service/dist/routes/access-mode.d.ts +4 -0
  174. package/node_modules/@noodle-borg/service/dist/routes/access-mode.d.ts.map +1 -0
  175. package/node_modules/@noodle-borg/service/dist/routes/access-mode.js +15 -0
  176. package/node_modules/@noodle-borg/service/dist/routes/access-mode.js.map +1 -0
  177. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +1 -1
  178. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  179. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +34 -21
  180. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  181. package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
  182. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +4 -6
  183. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  184. package/node_modules/@noodle-borg/service/dist/serve.d.ts +6 -0
  185. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  186. package/node_modules/@noodle-borg/service/dist/serve.js +72 -32
  187. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  188. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.d.ts +7 -0
  189. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.d.ts.map +1 -0
  190. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.js +14 -0
  191. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.js.map +1 -0
  192. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  193. package/node_modules/@noodle-borg/service/dist/service.js +32 -3
  194. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  195. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  196. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +13 -2
  197. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  198. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +3 -2
  199. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  200. package/node_modules/@noodle-borg/service/dist/store/postgres.js +41 -9
  201. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  202. package/node_modules/@noodle-borg/service/dist/store.d.ts +9 -3
  203. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  204. package/node_modules/@noodle-borg/service/dist/store.js +29 -27
  205. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  206. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -0
  207. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  208. package/node_modules/@noodle-borg/transport-http/dist/handler.js +37 -0
  209. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  210. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +1 -1
  211. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
  212. package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
  213. package/package.json +3 -2
@@ -1,3 +1,5 @@
1
+ import { type OpenApiImportSchema } from './response-schema.js';
2
+ export { type ImportResponseSchemaContext, importResponseSchema, kindToFieldType, MAX_RESPONSE_SCHEMA_DEPTH, MAX_RESPONSE_SCHEMA_NODES, type OpenApiImportProperty, type OpenApiImportSchema, toOutputJsonSchema, } from './response-schema.js';
1
3
  export type OpenApiMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';
2
4
  export type OpenApiParameterLocation = 'path' | 'query';
3
5
  export interface OpenApiImportParameter {
@@ -17,6 +19,8 @@ export interface OpenApiImportOperation {
17
19
  readonly parameters: readonly OpenApiImportParameter[];
18
20
  readonly hasRequestBody: boolean;
19
21
  readonly query: readonly string[];
22
+ /** Typed output tree imported from the 2xx application/json response schema, when supported. */
23
+ readonly output?: OpenApiImportSchema;
20
24
  }
21
25
  export type OpenApiImportAuth = {
22
26
  readonly kind: 'apiKey';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import YAML from 'yaml';
2
+ import { importResponseSchema, kindToFieldType, toOutputJsonSchema, } from './response-schema.js';
3
+ export { importResponseSchema, kindToFieldType, MAX_RESPONSE_SCHEMA_DEPTH, MAX_RESPONSE_SCHEMA_NODES, toOutputJsonSchema, } from './response-schema.js';
2
4
  const METHODS = new Set(['get', 'post', 'put', 'patch', 'delete']);
3
5
  export function parseOpenApiToIr(source, options) {
4
6
  const doc = YAML.parse(source);
@@ -32,6 +34,12 @@ export function parseOpenApiToIr(source, options) {
32
34
  warnings.push(`${name}: requestBody imported as opaque JSON string placeholder`);
33
35
  }
34
36
  const safeName = uniqueName(manifestIdentifier(name), new Set(operations.map((op) => op.safeName)));
37
+ const responseCtx = {
38
+ operationName: name,
39
+ componentSchemas: isRecord(doc.components?.schemas) ? doc.components.schemas : {},
40
+ warnings,
41
+ };
42
+ const output = importResponseSchema(operation.responses, responseCtx);
35
43
  operations.push({
36
44
  name,
37
45
  safeName,
@@ -43,6 +51,7 @@ export function parseOpenApiToIr(source, options) {
43
51
  parameters,
44
52
  hasRequestBody,
45
53
  query: parameters.filter((param) => param.in === 'query').map((param) => param.name),
54
+ ...(output !== undefined ? { output } : {}),
46
55
  });
47
56
  }
48
57
  }
@@ -138,6 +147,7 @@ export function renderOpenApiManifestYaml(ir) {
138
147
  name: operation.safeName,
139
148
  description: operation.description,
140
149
  inputSchema: inputSchema(operation),
150
+ ...outputSchemaEntry(operation),
141
151
  fulfilment: {
142
152
  use: `api.${operation.safeName}`,
143
153
  args: Object.fromEntries(operation.parameters.map((param) => [param.name, `\${input.${param.name}}`])),
@@ -204,6 +214,7 @@ export function mergeOpenApiIntoDraft(input) {
204
214
  name: toolName,
205
215
  description: operation.description,
206
216
  inputSchema: inputSchema(operation),
217
+ ...outputSchemaEntry(operation),
207
218
  fulfilment: {
208
219
  use: `${connectorAlias}.${operationName}`,
209
220
  args: Object.fromEntries(operation.parameters.map((param) => [param.name, `\${input.${param.name}}`])),
@@ -250,10 +261,25 @@ function connectorOperation(operation) {
250
261
  { type: param.type, ...(param.required ? { required: true } : {}) },
251
262
  ])),
252
263
  ...(operation.query.length > 0 ? { query: [...operation.query] } : {}),
253
- output: { value: { type: 'object' } },
264
+ output: {
265
+ value: {
266
+ type: operation.output !== undefined ? kindToFieldType(operation.output) : 'object',
267
+ },
268
+ },
254
269
  response: { value: '${response.json}' },
255
270
  };
256
271
  }
272
+ function outputSchemaEntry(operation) {
273
+ if (operation.output === undefined)
274
+ return {};
275
+ return {
276
+ outputSchema: {
277
+ type: 'object',
278
+ properties: { value: toOutputJsonSchema(operation.output) },
279
+ required: ['value'],
280
+ },
281
+ };
282
+ }
257
283
  function inputSchema(operation) {
258
284
  return {
259
285
  type: 'object',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AA6DxB,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAExF,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAA4B;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAM5B,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,GAAG,CAAC;IACxF,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAEhG,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YACnC,MAAM,SAAS,GAAG,YAKjB,CAAC;YACF,mBAAmB,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,UAAU,CACrB,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CACxF,CAAC;YACF,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC;iBAC5C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC;iBAC9D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACf,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;gBAC/C,EAAE,EAAE,KAAK,CAAC,EAA8B;gBACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI;gBACjC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;aAClC,CAAC,CAAC,CAAC;YACN,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC;YAC3D,IAAI,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,0DAA0D,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,QAAQ,GAAG,UAAU,CACzB,kBAAkB,CAAC,IAAI,CAAC,EACxB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAC7C,CAAC;YACF,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI;gBACJ,QAAQ;gBACR,MAAM,EAAE,MAAuB;gBAC/B,aAAa,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBACnD,IAAI;gBACJ,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC;gBACzD,WAAW,EAAE,QAAQ,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,GAAG;gBACpD,UAAU;gBACV,cAAc;gBACd,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aACrF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC/F,OAAO;QACL,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAChC,OAAO;QACP,UAAU;QACV,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACnD,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAiB,EAAE,UAAoB;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO;IACrC,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,UAA6B,EAC7B,eAAwB,EACxB,QAAkB;IAElB,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,IAAmC,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CACX,oBAAoB,IAAI,+EAA+E,CACxG,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,CAAC;YACd,QAAQ,CAAC,IAAI,CACX,oBAAoB,IAAI,uDAAuD,MAAM,CAAC,MAAM,wCAAwC,CACrI,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,oBAAoB,IAAI,0CAA0C,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAe;IACtD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IACE,MAAM,CAAC,IAAI,KAAK,MAAM;QACtB,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QACjC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,QAAQ,EACxC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAAmB;IAC7D,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,UAAU,EAAE;YACV;gBACE,EAAE,EAAE,EAAE,CAAC,WAAW;gBAClB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;oBACJ,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,cAAc,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;oBAC5B,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD;gBACD,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CACtF;aACF;SACF;KACF,CAAC,EAAE,CAAC;AACP,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAAmB;IAC3D,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,eAAe,EAAE,KAAK;QACtB,MAAM,EAAE;YACN,IAAI,EAAE,EAAE,CAAC,WAAW;YACpB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,EAAE,CAAC,WAAW;SACtB;QACD,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,EAAE,EAAE,EAAE,CAAC,WAAW;gBAClB,OAAO,EAAE,OAAO;aACjB;SACF;QACD,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,SAAS,CAAC,QAAQ;YACxB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;YACnC,UAAU,EAAE;gBACV,GAAG,EAAE,OAAO,SAAS,CAAC,QAAQ,EAAE;gBAChC,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAC7E;aACF;SACF,CAAC,CAAC;KACJ,CAAC,EAAE,CAAC;AACP,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAiC;IAEjC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,UAAU,IAAI,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,kBAAkB,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAA4B,CAAC;IAClF,QAAQ,CAAC,UAAU,GAAG,kBAAkB,CAAC;IACzC,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,sDAAsD,cAAc,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,QAAQ,CAAC,KAAK;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACxF,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;QACzD,CAAC,CAAC,EAAE,CACP,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAEvB,MAAM,UAAU,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,UAAU;SACP,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,SAAS,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACjF,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAClD,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACnE,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CACX,iBAAiB,KAAK,CAAC,EAAE,CAAC,WAAW,kCAAkC,WAAW,GAAG,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;IAChG,MAAM,iBAAiB,GACrB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAC/B,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,iBAAiB,CAAC,EAAE,GAAG,WAAW,CAAC;IAEnC,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACvD,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE;QACrC,CAAC,CAAC,EAAE,CAAC;IACP,iBAAiB,CAAC,UAAU,GAAG,EAAE,CAAC;IAElC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC9D,IAAI,aAAa,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,QAAQ,kBAAkB,aAAa,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,SAAS,aAAa,kCAAkC,QAAQ,GAAG,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,mBAAmB,KAAK,SAAS;YAAE,SAAS;QAC/C,iBAAiB,CAAC,UAAsC,CAAC,aAAa,CAAC,GAAG,mBAAmB,CAAC;QAC/F,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC;YACnC,UAAU,EAAE;gBACV,GAAG,EAAE,GAAG,cAAc,IAAI,aAAa,EAAE;gBACzC,IAAI,EAAE,MAAM,CAAC,WAAW,CACtB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAC7E;aACF;SACF,CAAC,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAE3E,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAClC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QACzC,UAAU;QACV,eAAe;QACf,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU;QAC/B,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,KAAK,GAAG,KAAK;SAChB,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;IACjB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;AAC9E,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiC;IAC3D,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,aAAa;QAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE;QACtC,IAAI,EAAE,SAAS,CAAC,aAAa;QAC7B,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI;YACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;SACpE,CAAC,CACH;QACD,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACrC,QAAQ,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,SAAiC;IACpD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CACxF;QACD,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3F,oBAAoB,EAAE,KAAK;KAC5B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAe;IACpC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAI,MAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,KAAa;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,yBAAyB,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAAC,GAA4B;IAC1D,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACjC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,CAAC,UAAuC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,QAA6B;IAC7D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,IAAI,GAAG,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Response-schema import: converts an operation's OpenAPI `responses` block into a bounded,
3
+ * typed output tree (`OpenApiImportSchema`) used to render tool-level Zod/JSON-Schema output.
4
+ * Parsed documents are untrusted: bounded depth/node budgets, no external `$ref` dereferencing,
5
+ * and no network fetches — external refs are a structured, repairable import error.
6
+ */
7
+ export type OpenApiImportSchema = {
8
+ readonly kind: 'string';
9
+ readonly nullable?: boolean;
10
+ readonly enum?: readonly string[];
11
+ } | {
12
+ readonly kind: 'number';
13
+ readonly nullable?: boolean;
14
+ } | {
15
+ readonly kind: 'boolean';
16
+ readonly nullable?: boolean;
17
+ } | {
18
+ readonly kind: 'array';
19
+ readonly nullable?: boolean;
20
+ readonly items: OpenApiImportSchema;
21
+ } | {
22
+ readonly kind: 'object';
23
+ readonly nullable?: boolean;
24
+ readonly properties: readonly OpenApiImportProperty[];
25
+ } | {
26
+ readonly kind: 'unknown';
27
+ };
28
+ export interface OpenApiImportProperty {
29
+ readonly name: string;
30
+ readonly required: boolean;
31
+ readonly schema: OpenApiImportSchema;
32
+ }
33
+ export declare const MAX_RESPONSE_SCHEMA_DEPTH = 8;
34
+ export declare const MAX_RESPONSE_SCHEMA_NODES = 200;
35
+ export interface ImportResponseSchemaContext {
36
+ readonly operationName: string;
37
+ readonly componentSchemas: Record<string, unknown>;
38
+ readonly warnings: string[];
39
+ }
40
+ /**
41
+ * Picks the best 2xx `application/json` schema from an operation's `responses` block and
42
+ * converts it. Returns `undefined` (with warnings pushed to the context) when the operation
43
+ * has no typeable JSON response; throws only for external `$ref`s.
44
+ */
45
+ export declare function importResponseSchema(responses: unknown, ctx: ImportResponseSchemaContext): OpenApiImportSchema | undefined;
46
+ /** Maps a schema tree's top-level kind to the flat connector output field type. */
47
+ export declare function kindToFieldType(schema: OpenApiImportSchema): string;
48
+ /** Renders the schema tree as JSON Schema for a manifest tool `outputSchema` value subtree. */
49
+ export declare function toOutputJsonSchema(schema: OpenApiImportSchema): Record<string, unknown>;
50
+ //# sourceMappingURL=response-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-schema.d.ts","sourceRoot":"","sources":["../src/response-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC3F;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,GAC5F;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACvD,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAEjC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;CAC7B;AAKD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE,2BAA2B,GAC/B,mBAAmB,GAAG,SAAS,CAuBjC;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAGnE;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsCvF"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Response-schema import: converts an operation's OpenAPI `responses` block into a bounded,
3
+ * typed output tree (`OpenApiImportSchema`) used to render tool-level Zod/JSON-Schema output.
4
+ * Parsed documents are untrusted: bounded depth/node budgets, no external `$ref` dereferencing,
5
+ * and no network fetches — external refs are a structured, repairable import error.
6
+ */
7
+ export const MAX_RESPONSE_SCHEMA_DEPTH = 8;
8
+ export const MAX_RESPONSE_SCHEMA_NODES = 200;
9
+ const UNKNOWN = { kind: 'unknown' };
10
+ const UNSUPPORTED_COMPOSITIONS = ['oneOf', 'anyOf', 'allOf', 'not'];
11
+ /**
12
+ * Picks the best 2xx `application/json` schema from an operation's `responses` block and
13
+ * converts it. Returns `undefined` (with warnings pushed to the context) when the operation
14
+ * has no typeable JSON response; throws only for external `$ref`s.
15
+ */
16
+ export function importResponseSchema(responses, ctx) {
17
+ if (!isRecord(responses))
18
+ return undefined;
19
+ const statusKey = pickSuccessStatus(Object.keys(responses));
20
+ if (statusKey === undefined) {
21
+ if (jsonMediaSchema(contentOf(responses.default)) !== undefined) {
22
+ ctx.warnings.push(`${ctx.operationName}: only a "default" response declares a JSON schema; output left untyped`);
23
+ }
24
+ return undefined;
25
+ }
26
+ const content = contentOf(responses[statusKey]);
27
+ if (content === undefined)
28
+ return undefined;
29
+ const schema = jsonMediaSchema(content);
30
+ if (schema === undefined) {
31
+ ctx.warnings.push(`${ctx.operationName}: ${statusKey} response has no application/json content; output left untyped`);
32
+ return undefined;
33
+ }
34
+ const state = { nodes: 0, boundWarned: false };
35
+ const converted = convertSchema(schema, ctx, state, 0, new Set());
36
+ return converted.kind === 'unknown' ? undefined : converted;
37
+ }
38
+ /** Maps a schema tree's top-level kind to the flat connector output field type. */
39
+ export function kindToFieldType(schema) {
40
+ if (schema.kind === 'unknown' || schema.nullable === true)
41
+ return 'object';
42
+ return schema.kind;
43
+ }
44
+ /** Renders the schema tree as JSON Schema for a manifest tool `outputSchema` value subtree. */
45
+ export function toOutputJsonSchema(schema) {
46
+ switch (schema.kind) {
47
+ case 'string':
48
+ return withNullable({ type: 'string', ...(schema.enum !== undefined ? { enum: [...schema.enum] } : {}) }, schema.nullable);
49
+ case 'number':
50
+ return withNullable({ type: 'number' }, schema.nullable);
51
+ case 'boolean':
52
+ return withNullable({ type: 'boolean' }, schema.nullable);
53
+ case 'array':
54
+ return withNullable({ type: 'array', items: toOutputJsonSchema(schema.items) }, schema.nullable);
55
+ case 'object': {
56
+ if (schema.properties.length === 0)
57
+ return withNullable({ type: 'object' }, schema.nullable);
58
+ const required = schema.properties
59
+ .filter((property) => property.required)
60
+ .map((property) => property.name);
61
+ return withNullable({
62
+ type: 'object',
63
+ properties: Object.fromEntries(schema.properties.map((property) => [
64
+ property.name,
65
+ toOutputJsonSchema(property.schema),
66
+ ])),
67
+ ...(required.length > 0 ? { required } : {}),
68
+ }, schema.nullable);
69
+ }
70
+ case 'unknown':
71
+ return {};
72
+ }
73
+ }
74
+ function convertSchema(raw, ctx, state, depth, visitedRefs) {
75
+ if (!isRecord(raw))
76
+ return UNKNOWN;
77
+ state.nodes += 1;
78
+ if (depth > MAX_RESPONSE_SCHEMA_DEPTH || state.nodes > MAX_RESPONSE_SCHEMA_NODES) {
79
+ if (!state.boundWarned) {
80
+ state.boundWarned = true;
81
+ ctx.warnings.push(`${ctx.operationName}: response schema exceeds the import depth/size bound (depth ${MAX_RESPONSE_SCHEMA_DEPTH}, ${MAX_RESPONSE_SCHEMA_NODES} nodes); deeper parts left untyped`);
82
+ }
83
+ return UNKNOWN;
84
+ }
85
+ if (typeof raw.$ref === 'string') {
86
+ return convertRef(raw.$ref, ctx, state, depth, visitedRefs);
87
+ }
88
+ for (const keyword of UNSUPPORTED_COMPOSITIONS) {
89
+ if (raw[keyword] !== undefined) {
90
+ ctx.warnings.push(`${ctx.operationName}: response schema uses unsupported "${keyword}"; that part is left untyped`);
91
+ return UNKNOWN;
92
+ }
93
+ }
94
+ const normalized = normalizeType(raw, ctx);
95
+ if (normalized === undefined)
96
+ return UNKNOWN;
97
+ const { type, nullable } = normalized;
98
+ const nullableSpread = nullable ? { nullable: true } : {};
99
+ switch (type) {
100
+ case 'string': {
101
+ const enumValues = stringEnum(raw.enum);
102
+ return {
103
+ kind: 'string',
104
+ ...nullableSpread,
105
+ ...(enumValues !== undefined ? { enum: enumValues } : {}),
106
+ };
107
+ }
108
+ case 'number':
109
+ case 'integer':
110
+ return { kind: 'number', ...nullableSpread };
111
+ case 'boolean':
112
+ return { kind: 'boolean', ...nullableSpread };
113
+ case 'array':
114
+ return {
115
+ kind: 'array',
116
+ ...nullableSpread,
117
+ items: raw.items === undefined
118
+ ? UNKNOWN
119
+ : convertSchema(raw.items, ctx, state, depth + 1, visitedRefs),
120
+ };
121
+ case 'object': {
122
+ const properties = isRecord(raw.properties) ? raw.properties : {};
123
+ const required = new Set(Array.isArray(raw.required)
124
+ ? raw.required.filter((name) => typeof name === 'string')
125
+ : []);
126
+ return {
127
+ kind: 'object',
128
+ ...nullableSpread,
129
+ properties: Object.entries(properties).map(([name, propertySchema]) => ({
130
+ name,
131
+ required: required.has(name),
132
+ schema: convertSchema(propertySchema, ctx, state, depth + 1, visitedRefs),
133
+ })),
134
+ };
135
+ }
136
+ default:
137
+ ctx.warnings.push(`${ctx.operationName}: response schema type "${type}" is not supported; that part is left untyped`);
138
+ return UNKNOWN;
139
+ }
140
+ }
141
+ function convertRef(ref, ctx, state, depth, visitedRefs) {
142
+ if (!ref.startsWith('#')) {
143
+ throw new Error(`import openapi: operation "${ctx.operationName}" response schema references external $ref "${ref}"; ` +
144
+ 'external references are not fetched during import — bundle the document into one file ' +
145
+ '(e.g. `npx @redocly/cli bundle`) and re-run');
146
+ }
147
+ const prefix = '#/components/schemas/';
148
+ if (!ref.startsWith(prefix)) {
149
+ ctx.warnings.push(`${ctx.operationName}: response schema $ref "${ref}" is not a component schema reference; that part is left untyped`);
150
+ return UNKNOWN;
151
+ }
152
+ const name = ref.slice(prefix.length);
153
+ if (visitedRefs.has(name)) {
154
+ ctx.warnings.push(`${ctx.operationName}: response schema $ref "${ref}" is circular; the repeated part is left untyped`);
155
+ return UNKNOWN;
156
+ }
157
+ const target = ctx.componentSchemas[name];
158
+ if (target === undefined) {
159
+ ctx.warnings.push(`${ctx.operationName}: response schema $ref "${ref}" does not resolve; that part is left untyped`);
160
+ return UNKNOWN;
161
+ }
162
+ return convertSchema(target, ctx, state, depth, new Set([...visitedRefs, name]));
163
+ }
164
+ function normalizeType(raw, ctx) {
165
+ const nullable30 = raw.nullable === true;
166
+ if (typeof raw.type === 'string')
167
+ return { type: raw.type, nullable: nullable30 };
168
+ if (Array.isArray(raw.type)) {
169
+ const entries = raw.type.filter((entry) => typeof entry === 'string');
170
+ const nonNull = entries.filter((entry) => entry !== 'null');
171
+ const nullable = nullable30 || nonNull.length < entries.length;
172
+ if (nonNull.length === 1 && nonNull[0] !== undefined) {
173
+ return { type: nonNull[0], nullable };
174
+ }
175
+ ctx.warnings.push(`${ctx.operationName}: response schema type array [${entries.join(', ')}] is not supported; that part is left untyped`);
176
+ return undefined;
177
+ }
178
+ if (isRecord(raw.properties))
179
+ return { type: 'object', nullable: nullable30 };
180
+ if (raw.items !== undefined)
181
+ return { type: 'array', nullable: nullable30 };
182
+ return undefined;
183
+ }
184
+ function stringEnum(value) {
185
+ if (!Array.isArray(value) || value.length === 0)
186
+ return undefined;
187
+ if (!value.every((entry) => typeof entry === 'string'))
188
+ return undefined;
189
+ return value;
190
+ }
191
+ function pickSuccessStatus(keys) {
192
+ if (keys.includes('200'))
193
+ return '200';
194
+ const numeric = keys
195
+ .filter((key) => /^2\d\d$/.test(key))
196
+ .sort((a, b) => Number(a) - Number(b))[0];
197
+ if (numeric !== undefined)
198
+ return numeric;
199
+ return keys.find((key) => key.toUpperCase() === '2XX');
200
+ }
201
+ function contentOf(response) {
202
+ if (!isRecord(response) || !isRecord(response.content))
203
+ return undefined;
204
+ return response.content;
205
+ }
206
+ function jsonMediaSchema(content) {
207
+ if (content === undefined)
208
+ return undefined;
209
+ for (const [mediaType, media] of Object.entries(content)) {
210
+ const bare = mediaType.split(';')[0]?.trim().toLowerCase() ?? '';
211
+ if (bare === 'application/json' || /^application\/[\w.-]+\+json$/.test(bare)) {
212
+ if (isRecord(media) && media.schema !== undefined)
213
+ return media.schema;
214
+ }
215
+ }
216
+ return undefined;
217
+ }
218
+ function withNullable(schema, nullable) {
219
+ if (nullable !== true)
220
+ return schema;
221
+ const type = schema.type;
222
+ return { ...schema, type: [type, 'null'] };
223
+ }
224
+ function isRecord(value) {
225
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
226
+ }
227
+ //# sourceMappingURL=response-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-schema.js","sourceRoot":"","sources":["../src/response-schema.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export declare function constantTimeEqual(a: string, b: string): boolean;
29
29
  /** Allows every deploy — the localhost-dev default (safe only on a loopback bind). */
30
30
  export declare function allowAllGate(): DeployAuthGate;
31
31
  export interface GoogleIdTokenVerifier {
32
- verify(token: string, audience: string): Promise<{
32
+ verify(token: string, audience: string | readonly string[]): Promise<{
33
33
  subject: string;
34
34
  email: string;
35
35
  }>;
@@ -42,7 +42,12 @@ export interface SignupAuthorizer {
42
42
  }
43
43
  export type ControlPlaneSignupMode = 'restricted' | 'public';
44
44
  export interface GoogleControlPlaneGateOptions {
45
- readonly audience: string;
45
+ /**
46
+ * One or more accepted OIDC audiences (control-plane OAuth client IDs). A presented Google ID token is
47
+ * accepted when its `aud` matches ANY of these — e.g. the gcloud CLI client plus the hosted console's
48
+ * Google web client (ADR 0116). All are passed to google-auth-library, which matches against the list.
49
+ */
50
+ readonly audience: string | readonly string[];
46
51
  readonly admins: readonly string[];
47
52
  readonly allowedEmailDomain?: string;
48
53
  readonly signupMode?: ControlPlaneSignupMode;
@@ -56,6 +61,19 @@ export declare class GoogleControlPlaneGate implements DeployAuthGate {
56
61
  constructor(options: GoogleControlPlaneGateOptions);
57
62
  authorize(req: IncomingMessage): Promise<ControlPlaneAuthResult>;
58
63
  }
64
+ /**
65
+ * Tries several control-plane gates in order and accepts the first that authorizes. On the hosted control
66
+ * plane a first-party caller may present EITHER an AS-issued token (MCP clients, CLI) OR a Google ID token
67
+ * from a trusted audience (the console, [ADR 0116](../../../../docs/decisions/0116-host-the-developer-console.md)) —
68
+ * restoring the ADR 0039 Google control-plane path alongside the self-hosted AS (ADR 0042). A `403`
69
+ * (identity verified but denied) is definitive and short-circuits; a `401` (couldn't verify this token) falls
70
+ * through to the next gate, so each verifier gets a chance at a token it doesn't recognize.
71
+ */
72
+ export declare class CompositeControlPlaneGate implements DeployAuthGate {
73
+ #private;
74
+ constructor(gates: readonly DeployAuthGate[]);
75
+ authorize(req: IncomingMessage): Promise<ControlPlaneAuthResult>;
76
+ }
59
77
  export interface NoodleOAuthControlPlaneGateOptions {
60
78
  readonly verifier: (token: string, audience: string) => Promise<{
61
79
  readonly subject: string;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-gate.d.ts","sourceRoot":"","sources":["../../src/auth/deploy-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-gate.d.ts","sourceRoot":"","sources":["../../src/auth/deploy-gate.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,12 @@ export class GoogleControlPlaneGate {
27
27
  #deniedSubjects;
28
28
  #verifier;
29
29
  constructor(options) {
30
- if (options.audience.length === 0)
30
+ const audiences = typeof options.audience === 'string' ? [options.audience] : options.audience;
31
+ if (audiences.length === 0 || audiences.some((value) => value.length === 0)) {
31
32
  throw new Error('Google audience must be non-empty');
33
+ }
34
+ // Preserve the configured shape: a lone string stays a string (byte-for-byte unchanged single-audience
35
+ // behavior), a list stays a list. google-auth-library accepts either and matches a token's `aud`.
32
36
  this.#audience = options.audience;
33
37
  this.#admins = new Set(options.admins.map((value) => value.toLowerCase()));
34
38
  this.#allowedEmailDomain = normalizeEmailDomain(options.allowedEmailDomain ?? '@noodleseed.com');
@@ -68,6 +72,36 @@ export class GoogleControlPlaneGate {
68
72
  };
69
73
  }
70
74
  }
75
+ /**
76
+ * Tries several control-plane gates in order and accepts the first that authorizes. On the hosted control
77
+ * plane a first-party caller may present EITHER an AS-issued token (MCP clients, CLI) OR a Google ID token
78
+ * from a trusted audience (the console, [ADR 0116](../../../../docs/decisions/0116-host-the-developer-console.md)) —
79
+ * restoring the ADR 0039 Google control-plane path alongside the self-hosted AS (ADR 0042). A `403`
80
+ * (identity verified but denied) is definitive and short-circuits; a `401` (couldn't verify this token) falls
81
+ * through to the next gate, so each verifier gets a chance at a token it doesn't recognize.
82
+ */
83
+ export class CompositeControlPlaneGate {
84
+ #gates;
85
+ constructor(gates) {
86
+ if (gates.length === 0) {
87
+ throw new Error('composite control-plane gate requires at least one gate');
88
+ }
89
+ this.#gates = gates;
90
+ }
91
+ async authorize(req) {
92
+ let last = { ok: false, status: 401, message: 'invalid bearer token' };
93
+ for (const gate of this.#gates) {
94
+ const result = await gate.authorize(req);
95
+ if (result.ok)
96
+ return result;
97
+ // 403 = identity verified but denied (domain/deny-list): definitive, do not try another verifier.
98
+ if (result.status === 403)
99
+ return result;
100
+ last = result;
101
+ }
102
+ return last;
103
+ }
104
+ }
71
105
  export class NoodleOAuthControlPlaneGate {
72
106
  #verifier;
73
107
  #audience;
@@ -132,7 +166,8 @@ class GoogleOAuthVerifier {
132
166
  #clientPromise;
133
167
  async verify(token, audience) {
134
168
  const client = await this.#client();
135
- const ticket = await client.verifyIdToken({ idToken: token, audience });
169
+ const audiences = typeof audience === 'string' ? [audience] : [...audience];
170
+ const ticket = await client.verifyIdToken({ idToken: token, audience: audiences });
136
171
  const payload = ticket.getPayload();
137
172
  const subject = payload?.sub;
138
173
  const email = payload?.email;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-gate.js","sourceRoot":"","sources":["../../src/auth/deploy-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-gate.js","sourceRoot":"","sources":["../../src/auth/deploy-gate.ts"],"names":[],"mappings":"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"}