@noodleseed/one 0.8.0 → 0.11.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 (277) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +16 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/archive-ops.d.ts +3 -0
  5. package/dist/commands/archive-ops.d.ts.map +1 -0
  6. package/dist/commands/archive-ops.js +168 -0
  7. package/dist/commands/archive-ops.js.map +1 -0
  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 +55 -87
  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/org-admin.d.ts +17 -0
  31. package/dist/commands/org-admin.d.ts.map +1 -0
  32. package/dist/commands/org-admin.js +241 -0
  33. package/dist/commands/org-admin.js.map +1 -0
  34. package/dist/commands/policy-ops.d.ts.map +1 -1
  35. package/dist/commands/policy-ops.js +94 -1
  36. package/dist/commands/policy-ops.js.map +1 -1
  37. package/dist/commands/project-setup.d.ts.map +1 -1
  38. package/dist/commands/project-setup.js +29 -0
  39. package/dist/commands/project-setup.js.map +1 -1
  40. package/dist/commands/session.d.ts +1 -15
  41. package/dist/commands/session.d.ts.map +1 -1
  42. package/dist/commands/session.js +15 -170
  43. package/dist/commands/session.js.map +1 -1
  44. package/dist/commands/shared.d.ts +1 -0
  45. package/dist/commands/shared.d.ts.map +1 -1
  46. package/dist/commands/shared.js +21 -9
  47. package/dist/commands/shared.js.map +1 -1
  48. package/dist/commands/update-ops.d.ts +29 -0
  49. package/dist/commands/update-ops.d.ts.map +1 -0
  50. package/dist/commands/update-ops.js +315 -0
  51. package/dist/commands/update-ops.js.map +1 -0
  52. package/dist/config.d.ts +2 -0
  53. package/dist/config.d.ts.map +1 -1
  54. package/dist/config.js.map +1 -1
  55. package/dist/deploy-version.d.ts +3 -0
  56. package/dist/deploy-version.d.ts.map +1 -0
  57. package/dist/deploy-version.js +28 -0
  58. package/dist/deploy-version.js.map +1 -0
  59. package/dist/deploy.d.ts +5 -1
  60. package/dist/deploy.d.ts.map +1 -1
  61. package/dist/deploy.js +27 -3
  62. package/dist/deploy.js.map +1 -1
  63. package/dist/devtools-chat.d.ts +76 -0
  64. package/dist/devtools-chat.d.ts.map +1 -0
  65. package/dist/devtools-chat.js +114 -0
  66. package/dist/devtools-chat.js.map +1 -0
  67. package/dist/devtools-env.d.ts +16 -0
  68. package/dist/devtools-env.d.ts.map +1 -0
  69. package/dist/devtools-env.js +71 -0
  70. package/dist/devtools-env.js.map +1 -0
  71. package/dist/devtools-harness.d.ts +28 -0
  72. package/dist/devtools-harness.d.ts.map +1 -0
  73. package/dist/devtools-harness.js +387 -0
  74. package/dist/devtools-harness.js.map +1 -0
  75. package/dist/devtools-preview.d.ts +42 -0
  76. package/dist/devtools-preview.d.ts.map +1 -0
  77. package/dist/devtools-preview.js +394 -0
  78. package/dist/devtools-preview.js.map +1 -0
  79. package/dist/preview-session.d.ts +46 -0
  80. package/dist/preview-session.d.ts.map +1 -0
  81. package/dist/preview-session.js +132 -0
  82. package/dist/preview-session.js.map +1 -0
  83. package/dist/project.d.ts +2 -0
  84. package/dist/project.d.ts.map +1 -1
  85. package/dist/project.js +2 -0
  86. package/dist/project.js.map +1 -1
  87. package/dist/react-widget-build.js +3 -1
  88. package/dist/react-widget-build.js.map +1 -1
  89. package/dist/update-binary.d.ts +38 -0
  90. package/dist/update-binary.d.ts.map +1 -0
  91. package/dist/update-binary.js +144 -0
  92. package/dist/update-binary.js.map +1 -0
  93. package/dist/update-check.d.ts +40 -0
  94. package/dist/update-check.d.ts.map +1 -0
  95. package/dist/update-check.js +212 -0
  96. package/dist/update-check.js.map +1 -0
  97. package/dist/update-render.d.ts +17 -0
  98. package/dist/update-render.d.ts.map +1 -0
  99. package/dist/update-render.js +39 -0
  100. package/dist/update-render.js.map +1 -0
  101. package/dist/update.d.ts +10 -9
  102. package/dist/update.d.ts.map +1 -1
  103. package/dist/update.js +21 -89
  104. package/dist/update.js.map +1 -1
  105. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  106. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +13 -1
  107. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  108. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  109. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +2 -0
  110. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  111. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  112. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.d.ts +23 -0
  113. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.d.ts.map +1 -0
  114. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.js +41 -0
  115. package/node_modules/@noodle-borg/connector-defs/dist/compile-expr.js.map +1 -0
  116. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts +2 -6
  117. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
  118. package/node_modules/@noodle-borg/connector-defs/dist/compile.js +10 -32
  119. package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
  120. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +16 -0
  121. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
  122. package/node_modules/@noodle-borg/connector-defs/dist/schema.js +6 -0
  123. package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
  124. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +7 -0
  125. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  126. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +14 -5
  127. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  128. package/node_modules/@noodle-borg/module/dist/contract.d.ts +12 -0
  129. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  130. package/node_modules/@noodle-borg/module/dist/contract.js +41 -0
  131. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  132. package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts +43 -0
  133. package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts.map +1 -0
  134. package/node_modules/@noodle-borg/service/dist/archive-sweeper.js +122 -0
  135. package/node_modules/@noodle-borg/service/dist/archive-sweeper.js.map +1 -0
  136. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts +20 -2
  137. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts.map +1 -1
  138. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js +37 -2
  139. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js.map +1 -1
  140. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts +11 -0
  141. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts.map +1 -0
  142. package/node_modules/@noodle-borg/service/dist/commercial-plans.js +119 -0
  143. package/node_modules/@noodle-borg/service/dist/commercial-plans.js.map +1 -0
  144. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts +20 -0
  145. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js +29 -0
  147. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/index.d.ts +3 -1
  149. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  150. package/node_modules/@noodle-borg/service/dist/index.js +2 -0
  151. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  152. package/node_modules/@noodle-borg/service/dist/main.js +7 -0
  153. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  154. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
  155. package/node_modules/@noodle-borg/service/dist/oauth/app.js +2 -1
  156. package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
  157. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts +30 -0
  158. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts.map +1 -0
  159. package/node_modules/@noodle-borg/service/dist/oauth/branding.js +224 -0
  160. package/node_modules/@noodle-borg/service/dist/oauth/branding.js.map +1 -0
  161. package/node_modules/@noodle-borg/service/dist/oauth/consent.d.ts +0 -6
  162. package/node_modules/@noodle-borg/service/dist/oauth/consent.d.ts.map +1 -1
  163. package/node_modules/@noodle-borg/service/dist/oauth/consent.js +23 -34
  164. package/node_modules/@noodle-borg/service/dist/oauth/consent.js.map +1 -1
  165. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.d.ts.map +1 -1
  166. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js +13 -28
  167. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js.map +1 -1
  168. package/node_modules/@noodle-borg/service/dist/options.d.ts +9 -0
  169. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  170. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +1 -1
  171. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
  172. package/node_modules/@noodle-borg/service/dist/registry-helpers.js +5 -3
  173. package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
  174. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +25 -0
  175. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -0
  176. package/node_modules/@noodle-borg/service/dist/registry-state.js +119 -0
  177. package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -0
  178. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts +1 -0
  179. package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
  180. package/node_modules/@noodle-borg/service/dist/registry-targets.js +4 -0
  181. package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
  182. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +59 -0
  183. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -0
  184. package/node_modules/@noodle-borg/service/dist/registry-types.js +2 -0
  185. package/node_modules/@noodle-borg/service/dist/registry-types.js.map +1 -0
  186. package/node_modules/@noodle-borg/service/dist/registry.d.ts +14 -70
  187. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  188. package/node_modules/@noodle-borg/service/dist/registry.js +137 -119
  189. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  190. package/node_modules/@noodle-borg/service/dist/routes/access-mode.d.ts +4 -0
  191. package/node_modules/@noodle-borg/service/dist/routes/access-mode.d.ts.map +1 -0
  192. package/node_modules/@noodle-borg/service/dist/routes/access-mode.js +15 -0
  193. package/node_modules/@noodle-borg/service/dist/routes/access-mode.js.map +1 -0
  194. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts +16 -0
  195. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts.map +1 -0
  196. package/node_modules/@noodle-borg/service/dist/routes/archive.js +83 -0
  197. package/node_modules/@noodle-borg/service/dist/routes/archive.js.map +1 -0
  198. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +2 -19
  199. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  200. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +52 -281
  201. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  202. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +17 -0
  203. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -0
  204. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +88 -0
  205. package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -0
  206. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts +40 -0
  207. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -0
  208. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +353 -0
  209. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -0
  210. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +15 -0
  211. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  212. package/node_modules/@noodle-borg/service/dist/routes/paths.js +47 -0
  213. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  214. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts +20 -0
  215. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -0
  216. package/node_modules/@noodle-borg/service/dist/routes/plans.js +159 -0
  217. package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -0
  218. package/node_modules/@noodle-borg/service/dist/routes/policies.d.ts.map +1 -1
  219. package/node_modules/@noodle-borg/service/dist/routes/policies.js +7 -0
  220. package/node_modules/@noodle-borg/service/dist/routes/policies.js.map +1 -1
  221. package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
  222. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +23 -7
  223. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  224. package/node_modules/@noodle-borg/service/dist/serve.d.ts +6 -0
  225. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  226. package/node_modules/@noodle-borg/service/dist/serve.js +72 -32
  227. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  228. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.d.ts +7 -0
  229. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.d.ts.map +1 -0
  230. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.js +14 -0
  231. package/node_modules/@noodle-borg/service/dist/server-auth-bindings.js.map +1 -0
  232. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  233. package/node_modules/@noodle-borg/service/dist/service.js +139 -7
  234. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  235. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +14 -0
  236. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  237. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +38 -0
  238. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  239. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +25 -0
  240. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -0
  241. package/node_modules/@noodle-borg/service/dist/store/json-file.js +163 -0
  242. package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -0
  243. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +14 -0
  244. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  245. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +16 -0
  246. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  247. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +60 -0
  248. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -0
  249. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +101 -0
  250. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -0
  251. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  252. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +21 -2
  253. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  254. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +23 -8
  255. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  256. package/node_modules/@noodle-borg/service/dist/store/postgres.js +112 -128
  257. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  258. package/node_modules/@noodle-borg/service/dist/store/records.d.ts +35 -0
  259. package/node_modules/@noodle-borg/service/dist/store/records.d.ts.map +1 -0
  260. package/node_modules/@noodle-borg/service/dist/store/records.js +87 -0
  261. package/node_modules/@noodle-borg/service/dist/store/records.js.map +1 -0
  262. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +19 -0
  263. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -0
  264. package/node_modules/@noodle-borg/service/dist/store/validate.js +61 -0
  265. package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -0
  266. package/node_modules/@noodle-borg/service/dist/store.d.ts +75 -45
  267. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  268. package/node_modules/@noodle-borg/service/dist/store.js +61 -224
  269. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  270. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -0
  271. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  272. package/node_modules/@noodle-borg/transport-http/dist/handler.js +37 -0
  273. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  274. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +1 -1
  275. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
  276. package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
  277. package/package.json +3 -2
@@ -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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"}
@@ -0,0 +1,11 @@
1
+ import type { PolicyDocument } from './policy.js';
2
+ export type CommercialPlanName = 'free' | 'pro' | 'scale' | 'enterprise';
3
+ export type CommercialPlanCatalog = Readonly<Record<CommercialPlanName, PolicyDocument>>;
4
+ export declare const COMMERCIAL_PLAN_NAMES: readonly CommercialPlanName[];
5
+ export declare const DEFAULT_COMMERCIAL_PLAN_CATALOG: CommercialPlanCatalog;
6
+ export declare function commercialPlanPolicyId(org: string): string;
7
+ export declare function isCommercialPlanPolicyId(id: string): boolean;
8
+ export declare function isCommercialPlanName(value: unknown): value is CommercialPlanName;
9
+ export declare function resolveCommercialPlanCatalog(override: CommercialPlanCatalog | undefined): CommercialPlanCatalog;
10
+ export declare function planNameForPolicy(policy: PolicyDocument, catalog: CommercialPlanCatalog): CommercialPlanName | undefined;
11
+ //# sourceMappingURL=commercial-plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commercial-plans.d.ts","sourceRoot":"","sources":["../src/commercial-plans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,CAAC;AAEzE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;AAEzF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAK9D,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,qBAwE7C,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAS5D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,qBAAqB,GAAG,SAAS,GAC1C,qBAAqB,CAEvB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,GAAG,SAAS,CAMhC"}
@@ -0,0 +1,119 @@
1
+ import { validateSlug } from './store.js';
2
+ export const COMMERCIAL_PLAN_NAMES = [
3
+ 'free',
4
+ 'pro',
5
+ 'scale',
6
+ 'enterprise',
7
+ ];
8
+ export const DEFAULT_COMMERCIAL_PLAN_CATALOG = {
9
+ free: {
10
+ schemaVersion: 1,
11
+ categories: {
12
+ execute: {
13
+ reason: 'free_plan_quota',
14
+ quota: { limit: 1_000_000, windowSeconds: 2_592_000 },
15
+ rate: {
16
+ algorithm: 'token-bucket',
17
+ limit: 60,
18
+ refillSeconds: 60,
19
+ burst: 120,
20
+ partitionBy: 'subject',
21
+ },
22
+ },
23
+ discovery: { rate: commonReadRate() },
24
+ read: { rate: commonReadRate() },
25
+ },
26
+ },
27
+ pro: {
28
+ schemaVersion: 1,
29
+ categories: {
30
+ execute: {
31
+ reason: 'pro_plan_quota',
32
+ quota: { limit: 10_000_000, windowSeconds: 2_592_000 },
33
+ rate: {
34
+ algorithm: 'token-bucket',
35
+ limit: 300,
36
+ refillSeconds: 60,
37
+ burst: 600,
38
+ partitionBy: 'subject',
39
+ },
40
+ },
41
+ discovery: { rate: commonReadRate() },
42
+ read: { rate: commonReadRate() },
43
+ },
44
+ },
45
+ scale: {
46
+ schemaVersion: 1,
47
+ categories: {
48
+ execute: {
49
+ reason: 'scale_plan_quota',
50
+ quota: { limit: 100_000_000, windowSeconds: 2_592_000 },
51
+ rate: {
52
+ algorithm: 'token-bucket',
53
+ limit: 1_000,
54
+ refillSeconds: 60,
55
+ burst: 2_000,
56
+ partitionBy: 'subject',
57
+ },
58
+ },
59
+ discovery: { rate: commonReadRate() },
60
+ read: { rate: commonReadRate() },
61
+ },
62
+ },
63
+ enterprise: {
64
+ schemaVersion: 1,
65
+ categories: {
66
+ execute: {
67
+ reason: 'enterprise_plan_rate',
68
+ rate: {
69
+ algorithm: 'token-bucket',
70
+ limit: 2_000,
71
+ refillSeconds: 60,
72
+ burst: 4_000,
73
+ partitionBy: 'subject',
74
+ },
75
+ },
76
+ discovery: { rate: commonReadRate() },
77
+ read: { rate: commonReadRate() },
78
+ },
79
+ },
80
+ };
81
+ export function commercialPlanPolicyId(org) {
82
+ return `org:${validateSlug('org', org)}:commercial-plan`;
83
+ }
84
+ export function isCommercialPlanPolicyId(id) {
85
+ const match = /^org:([^:]+):commercial-plan$/.exec(id);
86
+ if (!match)
87
+ return false;
88
+ try {
89
+ validateSlug('org', match[1]);
90
+ return true;
91
+ }
92
+ catch {
93
+ return false;
94
+ }
95
+ }
96
+ export function isCommercialPlanName(value) {
97
+ return typeof value === 'string' && COMMERCIAL_PLAN_NAMES.includes(value);
98
+ }
99
+ export function resolveCommercialPlanCatalog(override) {
100
+ return override ?? DEFAULT_COMMERCIAL_PLAN_CATALOG;
101
+ }
102
+ export function planNameForPolicy(policy, catalog) {
103
+ const fingerprint = JSON.stringify(policy);
104
+ for (const name of COMMERCIAL_PLAN_NAMES) {
105
+ if (JSON.stringify(catalog[name]) === fingerprint)
106
+ return name;
107
+ }
108
+ return undefined;
109
+ }
110
+ function commonReadRate() {
111
+ return {
112
+ algorithm: 'token-bucket',
113
+ limit: 120,
114
+ refillSeconds: 60,
115
+ burst: 240,
116
+ partitionBy: 'subject',
117
+ };
118
+ }
119
+ //# sourceMappingURL=commercial-plans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commercial-plans.js","sourceRoot":"","sources":["../src/commercial-plans.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface DeploymentVersionRecord {
2
+ readonly orgSlug: string;
3
+ readonly appSlug: string;
4
+ readonly environment: string;
5
+ readonly active: boolean;
6
+ readonly deploymentVersion: number;
7
+ readonly serverVersion?: string;
8
+ /** Soft-delete stamp (ADR 0117). An archived record never resolves as an active deployment. */
9
+ readonly archivedAt?: string;
10
+ }
11
+ export interface TenantVersionRef {
12
+ readonly org: string;
13
+ readonly app: string;
14
+ readonly env: string;
15
+ }
16
+ export declare function sameTenantRecord(record: Pick<DeploymentVersionRecord, 'orgSlug' | 'appSlug' | 'environment'>, tenant: TenantVersionRef | Pick<DeploymentVersionRecord, 'orgSlug' | 'appSlug' | 'environment'>): boolean;
17
+ export declare function sameDeploymentScope(a: DeploymentVersionRecord, b: DeploymentVersionRecord): boolean;
18
+ export declare function defaultActiveRecord<T extends DeploymentVersionRecord>(records: readonly T[], ref: TenantVersionRef): T | undefined;
19
+ export declare function compareDeployRecordVersionDescending<T extends DeploymentVersionRecord>(a: T, b: T): number;
20
+ //# sourceMappingURL=deployment-versioning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-versioning.d.ts","sourceRoot":"","sources":["../src/deployment-versioning.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC,EAC5E,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC,GAC9F,OAAO,CAaT;AAED,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,uBAAuB,EAC1B,CAAC,EAAE,uBAAuB,GACzB,OAAO,CAET;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,uBAAuB,EACnE,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,GAAG,EAAE,gBAAgB,GACpB,CAAC,GAAG,SAAS,CAaf;AAED,wBAAgB,oCAAoC,CAAC,CAAC,SAAS,uBAAuB,EACpF,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,MAAM,CAGR"}
@@ -0,0 +1,29 @@
1
+ import { compareServerVersions } from '@noodle-borg/module';
2
+ export function sameTenantRecord(record, tenant) {
3
+ if ('org' in tenant) {
4
+ return (record.orgSlug === tenant.org &&
5
+ record.appSlug === tenant.app &&
6
+ record.environment === tenant.env);
7
+ }
8
+ return (record.orgSlug === tenant.orgSlug &&
9
+ record.appSlug === tenant.appSlug &&
10
+ record.environment === tenant.environment);
11
+ }
12
+ export function sameDeploymentScope(a, b) {
13
+ return sameTenantRecord(a, b) && a.serverVersion === b.serverVersion;
14
+ }
15
+ export function defaultActiveRecord(records, ref) {
16
+ const active = records.filter((record) => record.active && record.archivedAt === undefined && sameTenantRecord(record, ref));
17
+ const versioned = active
18
+ .filter((record) => record.serverVersion !== undefined)
19
+ .sort(compareDeployRecordVersionDescending);
20
+ return (versioned[0] ??
21
+ active
22
+ .filter((record) => record.serverVersion === undefined)
23
+ .sort((a, b) => b.deploymentVersion - a.deploymentVersion)[0]);
24
+ }
25
+ export function compareDeployRecordVersionDescending(a, b) {
26
+ const byVersion = compareServerVersions(b.serverVersion, a.serverVersion);
27
+ return byVersion !== 0 ? byVersion : b.deploymentVersion - a.deploymentVersion;
28
+ }
29
+ //# sourceMappingURL=deployment-versioning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-versioning.js","sourceRoot":"","sources":["../src/deployment-versioning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAmB5D,MAAM,UAAU,gBAAgB,CAC9B,MAA4E,EAC5E,MAA+F;IAE/F,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,OAAO,CACL,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,GAAG;YAC7B,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,GAAG;YAC7B,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,GAAG,CAClC,CAAC;IACJ,CAAC;IACD,OAAO,CACL,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;QACjC,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;QACjC,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,CAA0B,EAC1B,CAA0B;IAE1B,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,aAAa,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAqB,EACrB,GAAqB;IAErB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAC9F,CAAC;IACF,MAAM,SAAS,GAAG,MAAM;SACrB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC;SACtD,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAC9C,OAAO,CACL,SAAS,CAAC,CAAC,CAAC;QACZ,MAAM;aACH,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC;aACtD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,CAAI,EACJ,CAAI;IAEJ,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,aAAuB,EAAE,CAAC,CAAC,aAAuB,CAAC,CAAC;IAC9F,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC;AACjF,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export { ensureAuditSchema, PostgresAuditStore } from '@noodle-borg/module-audit';
2
+ export { ARCHIVE_SWEEP_INTERVAL_MS, ArchiveSweeper, type ArchiveSweeperOptions, DEFAULT_ARCHIVE_RETENTION_DAYS, resolveArchiveRetentionDays, } from './archive-sweeper.js';
2
3
  export { type AssetAdapterKind, type AssetConfigInput, type AssetConfigResolution, type AssetQuotaOverride, createAssetStore, type ResolvedAssetConfig, resolveAssetConfig, } from './asset-config.js';
3
4
  export { type AssetStore, type AssetUploadPlan, type AssetUploadTarget, InMemoryAssetStore, type InMemoryAssetStoreOptions, } from './assets.js';
4
5
  export { allowAllGate, bearerToken, type ControlPlaneAuthResult, type ControlPlaneIdentity, constantTimeEqual, type DeployAuthGate, GoogleControlPlaneGate, type GoogleIdTokenVerifier, NoodleOAuthControlPlaneGate, } from './auth/deploy-gate.js';
5
6
  export { type BuildInfo, resolveBuildInfo } from './build-info.js';
7
+ export { COMMERCIAL_PLAN_NAMES, type CommercialPlanCatalog, type CommercialPlanName, commercialPlanPolicyId, DEFAULT_COMMERCIAL_PLAN_CATALOG, isCommercialPlanName, isCommercialPlanPolicyId, planNameForPolicy, resolveCommercialPlanCatalog, } from './commercial-plans.js';
6
8
  export { type CustomerVerifierFactoryOptions, createCustomerVerifierFactory, createFirebaseIdTokenVerifier, } from './customer-verifier.js';
7
9
  export { ORG_DOMAIN_TXT_LABEL, type OrgDomainVerificationResult, type TxtResolver, verifyOrgDomainDns, } from './domain-verification.js';
8
10
  export { type EnsureFreeTierDefaultOptions, ensureFreeTierDefault, FREE_TIER_PLAN, FREE_TIER_POLICY_ID, } from './free-tier.js';
@@ -20,5 +22,5 @@ export { InMemoryControlPlaneStore } from './store/control-plane.js';
20
22
  export { PostgresArtifactStore, type PostgresStoreOptions } from './store/postgres.js';
21
23
  export { ensureStateHandleSchema, PostgresStateHandleStore, type PostgresStateHandleStoreOptions, } from './store/postgres-state-handles.js';
22
24
  export { InMemoryUserAppLogStore, type InMemoryUserAppLogStoreOptions, type UserAppLogEvent, type UserAppLogFilter, type UserAppLogInput, type UserAppLogLevel, type UserAppLogSink, type UserAppLogStore, } from './store/user-app-logs.js';
23
- export { type ArtifactStore, CONFIG_NAME_PATTERN, type ConfigScope, type ConfigStore, type ConfigValueMetadata, type ControlPlaneStore, DEPLOYMENT_ID_PATTERN, type DeploymentSummary, type DeployRecord, DOMAIN_PATTERN, InMemoryArtifactStore, InMemoryConfigStore, JsonFileArtifactStore, type ManagedConfigKind, type OrgDomainRecord, type OrgInvitationRecord, type OrgMemberRecord, type OrgRecord, type OrgRole, resolveConfigScope, type SecretEnvelope, type SignupAllowlistKind, type SignupAllowlistRecord, SLUG_PATTERN, scopeChain, type TenantAuthConfig, type TenantRef, validateConfigName, validateConfigScope, validateDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, validateTenantRef, } from './store.js';
25
+ export { type AppArchiveResult, type AppRestoreResult, type ArtifactStore, CONFIG_NAME_PATTERN, type ConfigScope, type ConfigStore, type ConfigValueMetadata, type ControlPlaneStore, DEPLOYMENT_ID_PATTERN, type DeploymentListFilter, type DeploymentSummary, type DeployRecord, DOMAIN_PATTERN, InMemoryArtifactStore, InMemoryConfigStore, JsonFileArtifactStore, type ManagedConfigKind, type OrgDomainRecord, type OrgInvitationRecord, type OrgMemberRecord, type OrgRecord, type OrgRole, resolveConfigScope, type SecretEnvelope, type SignupAllowlistKind, type SignupAllowlistRecord, SLUG_PATTERN, scopeChain, type TenantAuthConfig, type TenantRef, validateConfigName, validateConfigScope, validateDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, validateTenantRef, } from './store.js';
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -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,8 +1,10 @@
1
1
  export { ensureAuditSchema, PostgresAuditStore } from '@noodle-borg/module-audit';
2
+ export { ARCHIVE_SWEEP_INTERVAL_MS, ArchiveSweeper, DEFAULT_ARCHIVE_RETENTION_DAYS, resolveArchiveRetentionDays, } from './archive-sweeper.js';
2
3
  export { createAssetStore, resolveAssetConfig, } from './asset-config.js';
3
4
  export { InMemoryAssetStore, } from './assets.js';
4
5
  export { allowAllGate, bearerToken, constantTimeEqual, GoogleControlPlaneGate, NoodleOAuthControlPlaneGate, } from './auth/deploy-gate.js';
5
6
  export { resolveBuildInfo } from './build-info.js';
7
+ export { COMMERCIAL_PLAN_NAMES, commercialPlanPolicyId, DEFAULT_COMMERCIAL_PLAN_CATALOG, isCommercialPlanName, isCommercialPlanPolicyId, planNameForPolicy, resolveCommercialPlanCatalog, } from './commercial-plans.js';
6
8
  export { createCustomerVerifierFactory, createFirebaseIdTokenVerifier, } from './customer-verifier.js';
7
9
  export { ORG_DOMAIN_TXT_LABEL, verifyOrgDomainDns, } from './domain-verification.js';
8
10
  export { ensureFreeTierDefault, FREE_TIER_PLAN, FREE_TIER_POLICY_ID, } from './free-tier.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAKL,gBAAgB,EAEhB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,WAAW,EAGX,iBAAiB,EAEjB,sBAAsB,EAEtB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAEL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EAGpB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,8BAA8B,EAE9B,6BAA6B,EAC7B,wBAAwB,EAIxB,mBAAmB,EAQnB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,GAE7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAKL,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAuB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EAMpB,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EAQpB,kBAAkB,EAElB,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAA6B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,GAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,mBAAmB,EAKnB,qBAAqB,EAGrB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EAOrB,kBAAkB,EAIlB,YAAY,EACZ,UAAU,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EACL,yBAAyB,EACzB,cAAc,EAEd,8BAA8B,EAC9B,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAKL,gBAAgB,EAEhB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,kBAAkB,GAEnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,WAAW,EAGX,iBAAiB,EAEjB,sBAAsB,EAEtB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAkB,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,qBAAqB,EAGrB,sBAAsB,EACtB,+BAA+B,EAC/B,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EAGpB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,qBAAqB,EACrB,cAAc,EACd,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,8BAA8B,EAE9B,6BAA6B,EAC7B,wBAAwB,EAIxB,mBAAmB,EAQnB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,4BAA4B,GAE7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAKL,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,uBAAuB,GAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAuB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EAMpB,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EAQpB,kBAAkB,EAElB,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAA6B,MAAM,qBAAqB,CAAC;AACvF,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,uBAAuB,GAQxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAIL,mBAAmB,EAKnB,qBAAqB,EAIrB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EAOrB,kBAAkB,EAIlB,YAAY,EACZ,UAAU,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -18,6 +18,10 @@ async function main() {
18
18
  const publicBaseUrl = process.env.PUBLIC_BASE_URL;
19
19
  const host = process.env.HOST;
20
20
  const googleClientId = process.env.NOODLE_GOOGLE_CLIENT_ID;
21
+ // Extra accepted control-plane audiences beyond the primary client id (e.g. the hosted console's Google
22
+ // web OAuth client, ADR 0116). Comma-separated; a token whose `aud` matches the primary OR any of these
23
+ // verifies. Keeps the gcloud-CLI client working while admitting the console.
24
+ const googleAdditionalAudiences = parseList(process.env.NOODLE_GOOGLE_ADDITIONAL_AUDIENCES);
21
25
  const controlPlaneAllowedEmailDomain = process.env.NOODLE_CONTROL_PLANE_ALLOWED_EMAIL_DOMAIN ?? '@noodleseed.com';
22
26
  const controlPlaneSignupMode = parseSignupMode(process.env.NOODLE_CONTROL_PLANE_SIGNUP_MODE ?? 'restricted');
23
27
  const controlPlaneAdmins = parseList(process.env.NOODLE_CONTROL_PLANE_ADMINS);
@@ -114,6 +118,9 @@ async function main() {
114
118
  ...(host ? { host } : {}),
115
119
  ...(publicBaseUrl ? { publicBaseUrl } : {}),
116
120
  ...(googleClientId ? { googleClientId } : {}),
121
+ ...(googleClientId && googleAdditionalAudiences.length > 0
122
+ ? { googleAdditionalAudiences }
123
+ : {}),
117
124
  ...(googleClientId ? { controlPlaneAllowedEmailDomain } : {}),
118
125
  controlPlaneSignupMode,
119
126
  ...(freeTierDefault ? { freeTierDefault: true } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAiB,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,MAAM,UAAU,GAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3E,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAClD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC3D,wGAAwG;IACxG,wGAAwG;IACxG,6EAA6E;IAC7E,MAAM,yBAAyB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAC5F,MAAM,8BAA8B,GAClC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,iBAAiB,CAAC;IAC7E,MAAM,sBAAsB,GAAG,eAAe,CAC5C,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,YAAY,CAC7D,CAAC;IACF,MAAM,kBAAkB,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC9E,wGAAwG;IACxG,uGAAuG;IACvG,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC7D,0GAA0G;IAC1G,uEAAuE;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC9C,uGAAuG;IACvG,oGAAoG;IACpG,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACpE,IAAI,QAAoC,CAAC;IACzC,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,QAAQ,GAAG;YACT,sBAAsB;YACtB,MAAM;YACN,MAAM;YACN,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC9C,MAAM,KAAK,GAAa,UAAU,CAAC,QAAQ,CAAC,QAAoB,CAAC;QAC/D,CAAC,CAAE,QAAqB;QACxB,CAAC,CAAC,MAAM,CAAC;IACX,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChE,yGAAyG;IACzG,qGAAqG;IACrG,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAAC;IACtF,MAAM,sCAAsC,GAC1C,OAAO,CAAC,GAAG,CAAC,4CAA4C,KAAK,GAAG;QAChE,OAAO,CAAC,GAAG,CAAC,4CAA4C,KAAK,MAAM,CAAC;IACtE,MAAM,+BAA+B,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACtF,yGAAyG;IACzG,uFAAuF;IACvF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;IAC9F,uCAAuC;IACvC,0GAA0G;IAC1G,4GAA4G;IAC5G,sGAAsG;IACtG,wGAAwG;IACxG,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACvD,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IACtE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACxE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;IACzE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC7D,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC;IAC9E,MAAM,wBAAwB,GAAG,2BAA2B,CAC1D,oCAAoC,EACpC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAC/C,CAAC;IACF,MAAM,2BAA2B,GAAG,2BAA2B,CAC7D,uCAAuC,EACvC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAClD,CAAC;IACF,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC5E,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1E,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,OAAO,CAChC,WAAW,IAAI,mBAAmB,IAAI,iBAAiB,IAAI,mBAAmB,CAC/E,CAAC;IACF,wGAAwG;IACxG,MAAM,KAAK,GAAG,kBAAkB;QAC9B,CAAC,CAAC;YACE,MAAM,EAAE,WAAqB;YAC7B,MAAM,EAAE,MAAM,8BAA8B,CAC1C,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1D;YACD,MAAM,EAAE,IAAI,wBAAwB,CAAC;gBACnC,QAAQ,EAAE,mBAA6B;gBACvC,YAAY,EAAE,iBAA2B;gBACzC,WAAW,EAAE,mBAA6B;aAC3C,CAAC;YACF,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,wBAAwB,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE,wBAAwB,EAAE,wBAAwB,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,2BAA2B,KAAK,SAAS;gBAC3C,CAAC,CAAC,EAAE,2BAA2B,EAAE,2BAA2B,EAAE;gBAC9D,CAAC,CAAC,EAAE,CAAC;SACR;QACH,CAAC,CAAC,SAAS,CAAC;IACd,2EAA2E;IAC3E,MAAM,gBAAgB,GACpB,CAAC,kBAAkB,IAAI,WAAW,IAAI,YAAY;QAChD,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,IAAI;QACJ,MAAM;QACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,cAAc,IAAI,yBAAyB,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,EAAE,yBAAyB,EAAE;YAC/B,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,sBAAsB;QACtB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,gGAAgG;QAChG,yCAAyC;QACzC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,sCAAsC;YACxC,CAAC,CAAC,EAAE,sCAAsC,EAAE,IAAI,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,sCAAsC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CACT,cAAc;QACZ,CAAC,CAAC,sEAAsE;QACxE,CAAC,CAAC,uFAAuF,CAC5F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,sBAAsB,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAe,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,iBAAiB,QAAQ,CAAC,sBAAsB,GAAG;QACrD,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,OAAO;gBACP,CAAC,CAAC,gBAAgB,OAAO,GAAG;gBAC5B,CAAC,CAAC,SAAS,CAAC;IAClB,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACnE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9D,OAAO,CAAC,GAAG,CACT,WAAW;QACT,CAAC,CAAC,iBAAiB,WAAW,+BAA+B,YAAY,sBAAsB,OAAO,GAAG;QACzG,CAAC,CAAC,8FAA8F,CACnG,CAAC;IACF,OAAO,CAAC,GAAG,CACT,UAAU;QACR,CAAC,CAAC,oFAAoF;QACtF,CAAC,CAAC,8FAA8F,CACnG,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK;QACH,CAAC,CAAC,qDAAqD,WAAW,6BAA6B;QAC/F,CAAC,CAAC,gBAAgB;YAChB,CAAC,CAAC,yEAAyE,WAAW,EAAE;YACxF,CAAC,CAAC,6HAA6H,CACpI,CAAC;IACF,IAAI,sCAAsC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,+BAA+B,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,iBAAiB,SAAS,aAAa,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,gCAAgC,CAAC,CAAC,CAAC,EAAE,EAAE,CACjH,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CACT,4BAA4B,OAAO,CAAC,GAAG,yEAAyE,CACjH,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAEjF,wGAAwG;IACxG,gGAAgG;IAChG,iFAAiF;IACjF,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACvD,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACxD,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,GAAG,CAAC,KAAyB;IACpC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/D,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY,EAAE,KAAyB;IAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mDAAmD,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACtD,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC;AAC5E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/oauth/app.ts"],"names":[],"mappings":"AAGA,OAAgB,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CA6DT;AAkCD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/oauth/app.ts"],"names":[],"mappings":"AAGA,OAAgB,EAAE,KAAK,OAAO,EAA+B,MAAM,SAAS,CAAC;AAE7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,eAAoB,GAC5B,OAAO,CA6DT;AAkCD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -2,6 +2,7 @@ import { authorizationHandler } from '@modelcontextprotocol/sdk/server/auth/hand
2
2
  import { clientRegistrationHandler } from '@modelcontextprotocol/sdk/server/auth/handlers/register.js';
3
3
  import { tokenHandler } from '@modelcontextprotocol/sdk/server/auth/handlers/token.js';
4
4
  import express, {} from 'express';
5
+ import { renderOAuthErrorPage } from './branding.js';
5
6
  export function createOAuthApp(provider, options = {}) {
6
7
  const app = express();
7
8
  app.disable('x-powered-by');
@@ -55,7 +56,7 @@ function allowCors(_req, res, next) {
55
56
  }
56
57
  function failPlain(res) {
57
58
  if (!res.headersSent)
58
- res.status(500).type('text/plain').send('internal error');
59
+ res.status(500).type('text/html').send(renderOAuthErrorPage());
59
60
  }
60
61
  function rateLimitKey(req, trustProxy) {
61
62
  if (trustProxy) {
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/oauth/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/oauth/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Shared branded shell for the authorization server's user-facing HTML pages (consent, customer sign-in,
3
+ * error). It reproduces the public Noodle Seed website's look — the always-dark stone-950 surface, the warm
4
+ * orange→amber→rose "Mars" ramp, a single Geist typeface, the real Noodle Seed wordmark, a frosted glass
5
+ * card, and the site's dark-pill glow CTA — as a self-contained page (all CSS/JS inline, no build step).
6
+ *
7
+ * Background: the marketing hero animates a WebGL grain-gradient via `@paper-design/shaders`, but loading
8
+ * that at runtime proved unreliable on this security page (CDN cold-build / cross-origin module fetch meant
9
+ * it only appeared after a refresh). So these pages ship an original, dependency-free WebGL grain-gradient
10
+ * (our own GLSL) tuned to the same warm palette, inlined as a plain script — no import/fetch, so it renders
11
+ * on first paint every time — with an on-brand CSS radial-gradient fallback for no-WebGL. Callers pass
12
+ * already-escaped `contentHtml`; the shell escapes the trusted static `title`/`kicker`/`heading`.
13
+ */
14
+ export interface OAuthPageInput {
15
+ /** Document title (also used for the SEO/tab title). */
16
+ readonly title: string;
17
+ /** Small uppercase eyebrow above the headline (e.g. "Authorize"). */
18
+ readonly kicker: string;
19
+ /** The headline. */
20
+ readonly heading: string;
21
+ /** Pre-escaped inner HTML (lede, detail list, form). Callers own their own escaping. */
22
+ readonly contentHtml: string;
23
+ /** Optional pre-built `<script>` block appended before `</body>` (e.g. the customer sign-in module). */
24
+ readonly scriptHtml?: string;
25
+ }
26
+ /** Render one branded authorization-server page around caller-supplied, already-escaped content. */
27
+ export declare function renderOAuthPage(input: OAuthPageInput): string;
28
+ /** A branded 500/error interstitial for the authorization-server catch handler. */
29
+ export declare function renderOAuthErrorPage(): string;
30
+ //# sourceMappingURL=branding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/oauth/branding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiLH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wGAAwG;IACxG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,oGAAoG;AACpG,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CA+B7D;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,IAAI,MAAM,CAQ7C"}