@noodleseed/one 0.48.0 → 0.49.1

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 (273) hide show
  1. package/dist/cli.js +6 -6
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/archive-ops.js +1 -1
  4. package/dist/commands/archive-ops.js.map +1 -1
  5. package/dist/commands/auth-metadata-readiness.d.ts +8 -0
  6. package/dist/commands/auth-metadata-readiness.d.ts.map +1 -0
  7. package/dist/commands/auth-metadata-readiness.js +164 -0
  8. package/dist/commands/auth-metadata-readiness.js.map +1 -0
  9. package/dist/commands/auth-ops.d.ts +3 -0
  10. package/dist/commands/auth-ops.d.ts.map +1 -1
  11. package/dist/commands/auth-ops.js +37 -82
  12. package/dist/commands/auth-ops.js.map +1 -1
  13. package/dist/commands/author-loop.d.ts +7 -3
  14. package/dist/commands/author-loop.d.ts.map +1 -1
  15. package/dist/commands/author-loop.js +33 -62
  16. package/dist/commands/author-loop.js.map +1 -1
  17. package/dist/commands/billing-admission-output.d.ts +16 -0
  18. package/dist/commands/billing-admission-output.d.ts.map +1 -0
  19. package/dist/commands/billing-admission-output.js +40 -0
  20. package/dist/commands/billing-admission-output.js.map +1 -0
  21. package/dist/commands/billing-enforcement-activation-args.d.ts +40 -0
  22. package/dist/commands/billing-enforcement-activation-args.d.ts.map +1 -0
  23. package/dist/commands/billing-enforcement-activation-args.js +125 -0
  24. package/dist/commands/billing-enforcement-activation-args.js.map +1 -0
  25. package/dist/commands/billing-enforcement-activation-files.d.ts +11 -0
  26. package/dist/commands/billing-enforcement-activation-files.d.ts.map +1 -0
  27. package/dist/commands/billing-enforcement-activation-files.js +54 -0
  28. package/dist/commands/billing-enforcement-activation-files.js.map +1 -0
  29. package/dist/commands/billing-enforcement-activation-ops.d.ts +2 -0
  30. package/dist/commands/billing-enforcement-activation-ops.d.ts.map +1 -0
  31. package/dist/commands/billing-enforcement-activation-ops.js +283 -0
  32. package/dist/commands/billing-enforcement-activation-ops.js.map +1 -0
  33. package/dist/commands/billing-enforcement-ops.d.ts.map +1 -1
  34. package/dist/commands/billing-enforcement-ops.js +5 -1
  35. package/dist/commands/billing-enforcement-ops.js.map +1 -1
  36. package/dist/commands/billing-read-ops.d.ts.map +1 -1
  37. package/dist/commands/billing-read-ops.js +15 -3
  38. package/dist/commands/billing-read-ops.js.map +1 -1
  39. package/dist/commands/billing-read-view.d.ts +40 -1
  40. package/dist/commands/billing-read-view.d.ts.map +1 -1
  41. package/dist/commands/billing-read-view.js +50 -0
  42. package/dist/commands/billing-read-view.js.map +1 -1
  43. package/dist/commands/catalog-data-resources.d.ts.map +1 -1
  44. package/dist/commands/catalog-data-resources.js +4 -3
  45. package/dist/commands/catalog-data-resources.js.map +1 -1
  46. package/dist/commands/config-values.d.ts.map +1 -1
  47. package/dist/commands/config-values.js +18 -2
  48. package/dist/commands/config-values.js.map +1 -1
  49. package/dist/commands/deploy-ops.d.ts +1 -0
  50. package/dist/commands/deploy-ops.d.ts.map +1 -1
  51. package/dist/commands/deploy-ops.js +5 -0
  52. package/dist/commands/deploy-ops.js.map +1 -1
  53. package/dist/commands/deploy-status-ops.js +1 -1
  54. package/dist/commands/deploy-status-ops.js.map +1 -1
  55. package/dist/commands/devtools.d.ts +1 -1
  56. package/dist/commands/devtools.d.ts.map +1 -1
  57. package/dist/commands/devtools.js +23 -4
  58. package/dist/commands/devtools.js.map +1 -1
  59. package/dist/commands/local-readiness.d.ts +6 -0
  60. package/dist/commands/local-readiness.d.ts.map +1 -0
  61. package/dist/commands/local-readiness.js +48 -0
  62. package/dist/commands/local-readiness.js.map +1 -0
  63. package/dist/commands/shared.d.ts.map +1 -1
  64. package/dist/commands/shared.js +13 -0
  65. package/dist/commands/shared.js.map +1 -1
  66. package/dist/deploy.d.ts +1 -0
  67. package/dist/deploy.d.ts.map +1 -1
  68. package/dist/deploy.js +1 -0
  69. package/dist/deploy.js.map +1 -1
  70. package/dist/local-target.d.ts +16 -0
  71. package/dist/local-target.d.ts.map +1 -0
  72. package/dist/local-target.js +35 -0
  73. package/dist/local-target.js.map +1 -0
  74. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.d.ts.map +1 -1
  75. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js +7 -8
  76. package/node_modules/@noodle-borg/agent-kit/dist/skill-connect-refs.js.map +1 -1
  77. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -1
  78. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  79. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +1 -1
  80. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  81. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  82. package/node_modules/@noodle-borg/auth/dist/discovery.d.ts +11 -3
  83. package/node_modules/@noodle-borg/auth/dist/discovery.d.ts.map +1 -1
  84. package/node_modules/@noodle-borg/auth/dist/discovery.js +42 -7
  85. package/node_modules/@noodle-borg/auth/dist/discovery.js.map +1 -1
  86. package/node_modules/@noodle-borg/auth/dist/index.d.ts +1 -1
  87. package/node_modules/@noodle-borg/auth/dist/index.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/auth/dist/index.js +1 -1
  89. package/node_modules/@noodle-borg/auth/dist/index.js.map +1 -1
  90. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  91. package/node_modules/@noodle-borg/protocol/dist/mapping.js +2 -0
  92. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  93. package/node_modules/@noodle-borg/runtime/dist/result.d.ts +3 -1
  94. package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
  95. package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
  96. package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.d.ts +10 -0
  97. package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.d.ts.map +1 -1
  98. package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.js +26 -1
  99. package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.js.map +1 -1
  100. package/node_modules/@noodle-borg/service/dist/billing/authoritative-admission.d.ts +46 -0
  101. package/node_modules/@noodle-borg/service/dist/billing/authoritative-admission.d.ts.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/billing/authoritative-admission.js +111 -0
  103. package/node_modules/@noodle-borg/service/dist/billing/authoritative-admission.js.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/billing/commercial-enforcement-projection.d.ts +80 -0
  105. package/node_modules/@noodle-borg/service/dist/billing/commercial-enforcement-projection.d.ts.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/billing/commercial-enforcement-projection.js +2 -0
  107. package/node_modules/@noodle-borg/service/dist/billing/commercial-enforcement-projection.js.map +1 -0
  108. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.d.ts +18 -0
  109. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.d.ts.map +1 -0
  110. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.js +51 -0
  111. package/node_modules/@noodle-borg/service/dist/billing/commercial-entitlements.js.map +1 -0
  112. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation-support.d.ts +34 -0
  113. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation-support.d.ts.map +1 -0
  114. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation-support.js +125 -0
  115. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation-support.js.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation.d.ts +265 -0
  117. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation.d.ts.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation.js +340 -0
  119. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation.js.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.d.ts +1 -1
  121. package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts +15 -3
  122. package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -1
  123. package/node_modules/@noodle-borg/service/dist/billing/integration.js +56 -3
  124. package/node_modules/@noodle-borg/service/dist/billing/integration.js.map +1 -1
  125. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts +20 -0
  126. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.d.ts.map +1 -0
  127. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js +121 -0
  128. package/node_modules/@noodle-borg/service/dist/billing/postgres-authoritative-authority.js.map +1 -0
  129. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-apps.d.ts +10 -0
  130. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-apps.d.ts.map +1 -0
  131. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-apps.js +33 -0
  132. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-apps.js.map +1 -0
  133. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.d.ts +25 -0
  134. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.d.ts.map +1 -0
  135. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js +248 -0
  136. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-counters.js.map +1 -0
  137. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts +17 -0
  138. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.d.ts.map +1 -0
  139. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js +278 -0
  140. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-projection.js.map +1 -0
  141. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-transaction.d.ts +7 -0
  142. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-transaction.d.ts.map +1 -0
  143. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-transaction.js +63 -0
  144. package/node_modules/@noodle-borg/service/dist/billing/postgres-commercial-enforcement-transaction.js.map +1 -0
  145. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-locks.d.ts +6 -0
  146. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-locks.d.ts.map +1 -0
  147. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-locks.js +89 -0
  148. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-locks.js.map +1 -0
  149. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-preflight.d.ts +13 -0
  150. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-preflight.d.ts.map +1 -0
  151. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-preflight.js +193 -0
  152. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-preflight.js.map +1 -0
  153. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.d.ts +4 -0
  154. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.d.ts.map +1 -0
  155. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.js +119 -0
  156. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-schema.js.map +1 -0
  157. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-support.d.ts +65 -0
  158. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-support.d.ts.map +1 -0
  159. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-support.js +159 -0
  160. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation-support.js.map +1 -0
  161. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation.d.ts +31 -0
  162. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation.d.ts.map +1 -0
  163. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation.js +247 -0
  164. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-activation.js.map +1 -0
  165. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.d.ts.map +1 -1
  166. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.js +40 -0
  167. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.js.map +1 -1
  168. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.d.ts +1 -0
  169. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.d.ts.map +1 -1
  170. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.js +45 -22
  171. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.js.map +1 -1
  172. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.d.ts +33 -0
  173. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.d.ts.map +1 -0
  174. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.js +158 -0
  175. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission-ledger.js.map +1 -0
  176. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts +18 -0
  177. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.d.ts.map +1 -0
  178. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js +326 -0
  179. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-admission.js.map +1 -0
  180. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.d.ts +2 -0
  181. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.d.ts.map +1 -1
  182. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.js +10 -5
  183. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.js.map +1 -1
  184. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.js +3 -3
  185. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.js.map +1 -1
  186. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.d.ts +3 -1
  187. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.d.ts.map +1 -1
  188. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.js +8 -2
  189. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.js.map +1 -1
  190. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js +4 -4
  191. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js.map +1 -1
  192. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts +2 -2
  193. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts.map +1 -1
  194. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js.map +1 -1
  195. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.js +1 -1
  196. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts.map +1 -1
  197. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js +27 -1
  198. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js.map +1 -1
  199. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.d.ts +33 -0
  200. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.d.ts.map +1 -0
  201. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js +272 -0
  202. package/node_modules/@noodle-borg/service/dist/billing/postgres-production-app-admission.js.map +1 -0
  203. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -1
  204. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +2 -0
  205. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -1
  206. package/node_modules/@noodle-borg/service/dist/billing/read-contract.d.ts +174 -28
  207. package/node_modules/@noodle-borg/service/dist/billing/read-contract.d.ts.map +1 -1
  208. package/node_modules/@noodle-borg/service/dist/billing/read-contract.js +51 -6
  209. package/node_modules/@noodle-borg/service/dist/billing/read-contract.js.map +1 -1
  210. package/node_modules/@noodle-borg/service/dist/billing-public.d.ts +3 -0
  211. package/node_modules/@noodle-borg/service/dist/billing-public.d.ts.map +1 -1
  212. package/node_modules/@noodle-borg/service/dist/billing-public.js +3 -0
  213. package/node_modules/@noodle-borg/service/dist/billing-public.js.map +1 -1
  214. package/node_modules/@noodle-borg/service/dist/options.d.ts +14 -2
  215. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  216. package/node_modules/@noodle-borg/service/dist/persistence-options.d.ts.map +1 -1
  217. package/node_modules/@noodle-borg/service/dist/persistence-options.js +9 -0
  218. package/node_modules/@noodle-borg/service/dist/persistence-options.js.map +1 -1
  219. package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -0
  220. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  221. package/node_modules/@noodle-borg/service/dist/registry.js +10 -0
  222. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  223. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts.map +1 -1
  224. package/node_modules/@noodle-borg/service/dist/routes/archive.js +18 -1
  225. package/node_modules/@noodle-borg/service/dist/routes/archive.js.map +1 -1
  226. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-activation.d.ts +15 -0
  227. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-activation.d.ts.map +1 -0
  228. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-activation.js +197 -0
  229. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-activation.js.map +1 -0
  230. package/node_modules/@noodle-borg/service/dist/routes/billing-production-app-response.d.ts +15 -0
  231. package/node_modules/@noodle-borg/service/dist/routes/billing-production-app-response.d.ts.map +1 -0
  232. package/node_modules/@noodle-borg/service/dist/routes/billing-production-app-response.js +33 -0
  233. package/node_modules/@noodle-borg/service/dist/routes/billing-production-app-response.js.map +1 -0
  234. package/node_modules/@noodle-borg/service/dist/routes/billing-read.d.ts +2 -0
  235. package/node_modules/@noodle-borg/service/dist/routes/billing-read.d.ts.map +1 -1
  236. package/node_modules/@noodle-borg/service/dist/routes/billing-read.js +203 -41
  237. package/node_modules/@noodle-borg/service/dist/routes/billing-read.js.map +1 -1
  238. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +4 -0
  239. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts.map +1 -1
  240. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js +25 -0
  241. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js.map +1 -1
  242. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.d.ts +1 -0
  243. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.d.ts.map +1 -1
  244. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.js +9 -1
  245. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.js.map +1 -1
  246. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  247. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +19 -1
  248. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  249. package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
  250. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +19 -1
  251. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  252. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  253. package/node_modules/@noodle-borg/service/dist/serve.js +41 -1
  254. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  255. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  256. package/node_modules/@noodle-borg/service/dist/service.js +6 -3
  257. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  258. package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js +3 -3
  259. package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js.map +1 -1
  260. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts +5 -7
  261. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.d.ts.map +1 -1
  262. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.js +71 -0
  263. package/node_modules/@noodle-borg/service/dist/store/postgres-apps.js.map +1 -1
  264. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.d.ts.map +1 -1
  265. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js +7 -0
  266. package/node_modules/@noodle-borg/service/dist/store/postgres-github-runs.js.map +1 -1
  267. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  268. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +5 -0
  269. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  270. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  271. package/node_modules/@noodle-borg/service/dist/store/postgres.js +29 -34
  272. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  273. package/package.json +1 -1
@@ -0,0 +1,197 @@
1
+ import { BillingEnforcementActivationApprovalSchema, BillingEnforcementActivationConflictError, BillingEnforcementActivationMutationResultSchema, BillingEnforcementActivationPreviewSchema, BillingEnforcementActivationStatusSchema, billingEnforcementActivationSuccessAudit, normalizeActivationServiceUrl, parseBillingEnforcementActivateRequest, parseBillingEnforcementRollbackRequest, } from '../billing/enforcement-activation.js';
2
+ import { readJsonBody, sendForbidden, sendJson, sendUnauthorized } from '../http-util.js';
3
+ import { emitAuditMirrors } from '../store/audit.js';
4
+ export async function handleBillingEnforcementActivation(req, res, deps, action) {
5
+ const identity = await authorizeOperator(req, res, deps, action);
6
+ if (identity === undefined)
7
+ return;
8
+ const store = deps.store;
9
+ if (store === undefined) {
10
+ await emitDenial(deps.audit, 409, 'store_required', action, identity);
11
+ return sendJson(res, 409, {
12
+ ok: false,
13
+ code: 'billing_enforcement_activation_store_required',
14
+ error: 'billing enforcement activation requires the configured PostgreSQL lifecycle store',
15
+ });
16
+ }
17
+ if (action === 'status')
18
+ return handleStatus(res, { ...deps, store }, identity);
19
+ const serviceUrl = deps.serviceUrl;
20
+ if (serviceUrl === undefined) {
21
+ await emitDenial(deps.audit, 409, 'service_required', action, identity);
22
+ return sendJson(res, 409, {
23
+ ok: false,
24
+ code: 'billing_enforcement_activation_service_required',
25
+ error: 'billing enforcement activation requires the configured public service URL',
26
+ });
27
+ }
28
+ const body = await readJsonBody(req, deps.maxBody);
29
+ if (!body.ok) {
30
+ await emitDenial(deps.audit, body.status, 'invalid_request', action, identity);
31
+ return sendJson(res, body.status, { ok: false, error: body.error });
32
+ }
33
+ const configuredDeps = { ...deps, store, serviceUrl };
34
+ if (action === 'preview')
35
+ return handlePreview(res, configuredDeps, identity, body.value);
36
+ return handleMutation(res, configuredDeps, identity, action, body.value);
37
+ }
38
+ async function handleStatus(res, deps, identity) {
39
+ try {
40
+ const status = BillingEnforcementActivationStatusSchema.parse(await deps.store.getActivationStatus());
41
+ await deps.audit.emit(statusAudit(status, identity));
42
+ sendJson(res, 200, { ok: true, data: status });
43
+ }
44
+ catch (error) {
45
+ await handleStoreError(res, deps.audit, 'status', identity, error);
46
+ }
47
+ }
48
+ async function handlePreview(res, deps, identity, value) {
49
+ const approval = BillingEnforcementActivationApprovalSchema.safeParse(value);
50
+ if (!approval.success) {
51
+ await emitDenial(deps.audit, 400, 'invalid_request', 'preview', identity);
52
+ return sendJson(res, 400, {
53
+ ok: false,
54
+ error: `invalid billing enforcement activation approval: ${approval.error.message}`,
55
+ });
56
+ }
57
+ try {
58
+ if (approval.data.service !== normalizeActivationServiceUrl(deps.serviceUrl)) {
59
+ throw new BillingEnforcementActivationConflictError('activation_configuration_unavailable', 'activation approval targets a different service');
60
+ }
61
+ const preview = BillingEnforcementActivationPreviewSchema.parse(await deps.store.previewActivation({ approval: approval.data }));
62
+ await deps.audit.emit(previewAudit(preview, identity));
63
+ sendJson(res, 200, { ok: true, data: preview });
64
+ }
65
+ catch (error) {
66
+ await handleStoreError(res, deps.audit, 'preview', identity, error);
67
+ }
68
+ }
69
+ async function handleMutation(res, deps, identity, action, value) {
70
+ let request;
71
+ try {
72
+ request =
73
+ action === 'activate'
74
+ ? parseBillingEnforcementActivateRequest(value)
75
+ : parseBillingEnforcementRollbackRequest(value);
76
+ }
77
+ catch (error) {
78
+ await emitDenial(deps.audit, 400, 'invalid_request', action, identity);
79
+ return sendJson(res, 400, {
80
+ ok: false,
81
+ error: error instanceof Error ? error.message : String(error),
82
+ });
83
+ }
84
+ try {
85
+ const service = normalizeActivationServiceUrl(deps.serviceUrl);
86
+ const rawResult = action === 'activate'
87
+ ? await deps.store.activateEnforcement({
88
+ request: request,
89
+ actor: identity,
90
+ service,
91
+ })
92
+ : await deps.store.rollbackEnforcement({
93
+ request: request,
94
+ actor: identity,
95
+ service,
96
+ });
97
+ const result = BillingEnforcementActivationMutationResultSchema.parse(rawResult);
98
+ await emitSuccess(deps, result, identity);
99
+ sendJson(res, action === 'activate' && !result.replayed ? 201 : 200, {
100
+ ok: true,
101
+ data: result,
102
+ });
103
+ }
104
+ catch (error) {
105
+ await handleStoreError(res, deps.audit, action, identity, error);
106
+ }
107
+ }
108
+ async function authorizeOperator(req, res, deps, action) {
109
+ const auth = await deps.gate.authorize(req);
110
+ if (!auth.ok) {
111
+ await emitDenial(deps.audit, auth.status, 'authorization_failed', action);
112
+ if (auth.status === 401)
113
+ sendUnauthorized(res, auth.message);
114
+ else
115
+ sendForbidden(res, auth.message);
116
+ return undefined;
117
+ }
118
+ if (auth.identity === undefined) {
119
+ await emitDenial(deps.audit, 401, 'identity_required', action);
120
+ sendUnauthorized(res, 'identity required');
121
+ return undefined;
122
+ }
123
+ if (!auth.identity.superAdmin) {
124
+ await emitDenial(deps.audit, 403, 'super_admin_required', action, auth.identity);
125
+ sendForbidden(res, 'super-admin required');
126
+ return undefined;
127
+ }
128
+ return auth.identity;
129
+ }
130
+ async function handleStoreError(res, audit, action, identity, error) {
131
+ if (error instanceof BillingEnforcementActivationConflictError) {
132
+ await emitDenial(audit, 409, error.code, action, identity);
133
+ sendJson(res, 409, { ok: false, code: error.code, error: error.message });
134
+ return;
135
+ }
136
+ await emitDenial(audit, 500, 'internal_error', action, identity);
137
+ throw error;
138
+ }
139
+ function emitSuccess(deps, result, identity) {
140
+ const event = billingEnforcementActivationSuccessAudit(result, identity);
141
+ return deps.store.successAuditMode === 'transactional'
142
+ ? emitAuditMirrors(deps.audit, event)
143
+ : deps.audit.emit(event);
144
+ }
145
+ function statusAudit(status, identity) {
146
+ return {
147
+ eventType: eventType('status'),
148
+ org: 'platform',
149
+ actorSubject: identity.subject,
150
+ actorEmail: identity.email,
151
+ decision: 'allow',
152
+ status: 200,
153
+ details: {
154
+ state: status.state,
155
+ generation: status.generation,
156
+ activeEpochId: status.activeEpochId,
157
+ },
158
+ };
159
+ }
160
+ function previewAudit(preview, identity) {
161
+ return {
162
+ eventType: eventType('preview'),
163
+ org: 'platform',
164
+ actorSubject: identity.subject,
165
+ actorEmail: identity.email,
166
+ decision: 'allow',
167
+ status: 200,
168
+ details: {
169
+ ready: preview.ready,
170
+ blockerCount: preview.blockers.length,
171
+ approvalChecksum: preview.approvalChecksum,
172
+ previewChecksum: preview.previewChecksum,
173
+ },
174
+ };
175
+ }
176
+ function emitDenial(audit, status, reasonCode, action, identity) {
177
+ return audit.emit({
178
+ eventType: eventType(action),
179
+ org: 'platform',
180
+ decision: 'deny',
181
+ status,
182
+ reasonCode,
183
+ ...(identity === undefined
184
+ ? {}
185
+ : { actorSubject: identity.subject, actorEmail: identity.email }),
186
+ });
187
+ }
188
+ function eventType(action) {
189
+ if (action === 'status')
190
+ return 'billing.enforcement.activation.read';
191
+ if (action === 'preview')
192
+ return 'billing.enforcement.activation.previewed';
193
+ if (action === 'activate')
194
+ return 'billing.enforcement.activated';
195
+ return 'billing.enforcement.rolled_back';
196
+ }
197
+ //# sourceMappingURL=billing-enforcement-activation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-enforcement-activation.js","sourceRoot":"","sources":["../../src/routes/billing-enforcement-activation.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,0CAA0C,EAC1C,yCAAyC,EAEzC,gDAAgD,EAEhD,yCAAyC,EAEzC,wCAAwC,EAGxC,wCAAwC,EACxC,6BAA6B,EAC7B,sCAAsC,EACtC,sCAAsC,GACvC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAkB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgBrE,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,GAAoB,EACpB,GAAmB,EACnB,IAAyB,EACzB,MAA+C;IAE/C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,+CAA+C;YACrD,KAAK,EAAE,mFAAmF;SAC3F,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,iDAAiD;YACvD,KAAK,EAAE,2EAA2E;SACnF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACtD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1F,OAAO,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,GAAmB,EACnB,IAAiF,EACjF,QAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,wCAAwC,CAAC,KAAK,CAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CACvC,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAmB,EACnB,IAGC,EACD,QAA8B,EAC9B,KAAc;IAEd,MAAM,QAAQ,GAAG,0CAA0C,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,oDAAoD,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;SACpF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,yCAAyC,CACjD,sCAAsC,EACtC,iDAAiD,CAClD,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,yCAAyC,CAAC,KAAK,CAC7D,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAChE,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,GAAmB,EACnB,IAGC,EACD,QAA8B,EAC9B,MAA+B,EAC/B,KAAc;IAEd,IAAI,OAA8E,CAAC;IACnF,IAAI,CAAC;QACH,OAAO;YACL,MAAM,KAAK,UAAU;gBACnB,CAAC,CAAC,sCAAsC,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,sCAAsC,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM,SAAS,GACb,MAAM,KAAK,UAAU;YACnB,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,OAA4C;gBACrD,KAAK,EAAE,QAAQ;gBACf,OAAO;aACR,CAAC;YACJ,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBACnC,OAAO,EAAE,OAA4C;gBACrD,KAAK,EAAE,QAAQ;gBACf,OAAO;aACR,CAAC,CAAC;QACT,MAAM,MAAM,GAAG,gDAAgD,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE;YACnE,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAoB,EACpB,GAAmB,EACnB,IAAyB,EACzB,MAA+C;IAE/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;;YACxD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;QAC/D,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjF,aAAa,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,GAAmB,EACnB,KAAgB,EAChB,MAA+C,EAC/C,QAA8B,EAC9B,KAAc;IAEd,IAAI,KAAK,YAAY,yCAAyC,EAAE,CAAC;QAC/D,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,KAAK,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAClB,IAAiF,EACjF,MAAkD,EAClD,QAA8B;IAE9B,MAAM,KAAK,GAAG,wCAAwC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,eAAe;QACpD,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAClB,MAA0C,EAC1C,QAA8B;IAE9B,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC9B,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,QAAQ,CAAC,OAAO;QAC9B,UAAU,EAAE,QAAQ,CAAC,KAAK;QAC1B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;SACpC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,OAA4C,EAC5C,QAA8B;IAE9B,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;QAC/B,GAAG,EAAE,UAAU;QACf,YAAY,EAAE,QAAQ,CAAC,OAAO;QAC9B,UAAU,EAAE,QAAQ,CAAC,KAAK;QAC1B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YACrC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,KAAgB,EAChB,MAAc,EACd,UAAkB,EAClB,MAA+C,EAC/C,QAA+B;IAE/B,OAAO,KAAK,CAAC,IAAI,CAAC;QAChB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;QAC5B,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,MAAM;QAChB,MAAM;QACN,UAAU;QACV,GAAG,CAAC,QAAQ,KAAK,SAAS;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,MAA+C;IAChE,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,qCAAqC,CAAC;IACtE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,0CAA0C,CAAC;IAC5E,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,+BAA+B,CAAC;IAClE,OAAO,iCAAiC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { ServerResponse } from 'node:http';
2
+ import type { AuditSink } from '../store/audit.js';
3
+ interface ProductionAppAdmissionRejectionContext {
4
+ readonly audit: AuditSink;
5
+ readonly eventType: 'deploy.rejected' | 'rollback.rejected' | 'app.restore.rejected';
6
+ readonly org: string;
7
+ readonly app: string;
8
+ readonly env?: string;
9
+ readonly actorSubject?: string;
10
+ readonly actorEmail?: string;
11
+ }
12
+ /** Translate the two typed commercial admission failures without disclosing pooled-account details. */
13
+ export declare function respondProductionAppAdmissionError(res: ServerResponse, error: unknown, context: ProductionAppAdmissionRejectionContext): Promise<boolean>;
14
+ export {};
15
+ //# sourceMappingURL=billing-production-app-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-production-app-response.d.ts","sourceRoot":"","sources":["../../src/routes/billing-production-app-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,sCAAsC;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;IACrF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,uGAAuG;AACvG,wBAAsB,kCAAkC,CACtD,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,sCAAsC,GAC9C,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
@@ -0,0 +1,33 @@
1
+ import { BillingProductionAppAdmissionError } from '../billing/postgres-production-app-admission.js';
2
+ import { sendJson } from '../http-util.js';
3
+ /** Translate the two typed commercial admission failures without disclosing pooled-account details. */
4
+ export async function respondProductionAppAdmissionError(res, error, context) {
5
+ if (!(error instanceof BillingProductionAppAdmissionError))
6
+ return false;
7
+ const response = productionAppAdmissionResponse(error.code);
8
+ await context.audit.emit({
9
+ eventType: context.eventType,
10
+ org: context.org,
11
+ app: context.app,
12
+ ...(context.env !== undefined ? { env: context.env } : {}),
13
+ decision: 'deny',
14
+ status: response.status,
15
+ reasonCode: error.code,
16
+ ...(context.actorSubject !== undefined ? { actorSubject: context.actorSubject } : {}),
17
+ ...(context.actorEmail !== undefined ? { actorEmail: context.actorEmail } : {}),
18
+ });
19
+ sendJson(res, response.status, { ok: false, code: error.code, error: response.message });
20
+ return true;
21
+ }
22
+ function productionAppAdmissionResponse(code) {
23
+ return code === 'production_app_limit_exceeded'
24
+ ? {
25
+ status: 409,
26
+ message: 'production app limit reached; archive an active app or contact support',
27
+ }
28
+ : {
29
+ status: 503,
30
+ message: 'billing enforcement is temporarily unavailable; retry later',
31
+ };
32
+ }
33
+ //# sourceMappingURL=billing-production-app-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-production-app-response.js","sourceRoot":"","sources":["../../src/routes/billing-production-app-response.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kCAAkC,EAAE,MAAM,iDAAiD,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAa3C,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,GAAmB,EACnB,KAAc,EACd,OAA+C;IAE/C,IAAI,CAAC,CAAC,KAAK,YAAY,kCAAkC,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,MAAM,QAAQ,GAAG,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACvB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,KAAK,CAAC,IAAI;QACtB,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAgD;IAItF,OAAO,IAAI,KAAK,+BAA+B;QAC7C,CAAC,CAAC;YACE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,wEAAwE;SAClF;QACH,CAAC,CAAC;YACE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,6DAA6D;SACvE,CAAC;AACR,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
2
  import type { DeployAuthGate } from '../auth/deploy-gate.js';
3
+ import type { BillingCommercialEnforcementProjectionStore } from '../billing/commercial-enforcement-projection.js';
3
4
  import type { ServerRegistry } from '../registry.js';
4
5
  import type { ControlPlaneStore } from '../store.js';
5
6
  interface BillingReadDeps {
@@ -8,6 +9,7 @@ interface BillingReadDeps {
8
9
  readonly registry: ServerRegistry;
9
10
  readonly billingUsageEnabled?: boolean;
10
11
  readonly clock?: () => Date;
12
+ readonly billingCommercialEnforcementProjectionStore?: BillingCommercialEnforcementProjectionStore;
11
13
  }
12
14
  export declare function handleBillingAccountList(req: IncomingMessage, res: ServerResponse, deps: BillingReadDeps): Promise<void>;
13
15
  export declare function handleBillingAccountInspect(req: IncomingMessage, res: ServerResponse, billingAccountId: string, deps: BillingReadDeps): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"billing-read.d.ts","sourceRoot":"","sources":["../../src/routes/billing-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAmB7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAYrD,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAgFf;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAgCf"}
1
+ {"version":3,"file":"billing-read.d.ts","sourceRoot":"","sources":["../../src/routes/billing-read.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAEV,2CAA2C,EAE5C,MAAM,iDAAiD,CAAC;AAmBzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAYrD,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,2CAA2C,CAAC,EAAE,2CAA2C,CAAC;CACpG;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAsFf;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CAmCf"}