@noodleseed/one 0.82.0 → 0.84.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 (243) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +4 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/catalog-data-platform-auth.d.ts.map +1 -1
  5. package/dist/commands/catalog-data-platform-auth.js +70 -2
  6. package/dist/commands/catalog-data-platform-auth.js.map +1 -1
  7. package/dist/commands/platform-account-reset-args.d.ts +40 -0
  8. package/dist/commands/platform-account-reset-args.d.ts.map +1 -0
  9. package/dist/commands/platform-account-reset-args.js +181 -0
  10. package/dist/commands/platform-account-reset-args.js.map +1 -0
  11. package/dist/commands/platform-account-reset-files.d.ts +9 -0
  12. package/dist/commands/platform-account-reset-files.d.ts.map +1 -0
  13. package/dist/commands/platform-account-reset-files.js +45 -0
  14. package/dist/commands/platform-account-reset-files.js.map +1 -0
  15. package/dist/commands/platform-account-reset-ops.d.ts +3 -0
  16. package/dist/commands/platform-account-reset-ops.d.ts.map +1 -0
  17. package/dist/commands/platform-account-reset-ops.js +162 -0
  18. package/dist/commands/platform-account-reset-ops.js.map +1 -0
  19. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
  20. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  21. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  22. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +39 -3
  23. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  24. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  25. package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts +1 -0
  26. package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts.map +1 -1
  27. package/node_modules/@noodle-borg/service/dist/assistant-interactive.js +1 -0
  28. package/node_modules/@noodle-borg/service/dist/assistant-interactive.js.map +1 -1
  29. package/node_modules/@noodle-borg/service/dist/billing/enforcement-activation.d.ts +4 -4
  30. package/node_modules/@noodle-borg/service/dist/billing/read-contract.d.ts +6 -6
  31. package/node_modules/@noodle-borg/service/dist/index.d.ts +4 -1
  32. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  33. package/node_modules/@noodle-borg/service/dist/index.js +2 -0
  34. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  35. package/node_modules/@noodle-borg/service/dist/main.js +5 -0
  36. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  37. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts.map +1 -1
  38. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +1 -0
  39. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -1
  40. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  41. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +1 -0
  42. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  43. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.d.ts.map +1 -1
  44. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js +17 -0
  45. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js.map +1 -1
  46. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts +2 -2
  47. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
  48. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +25 -5
  49. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
  50. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +5 -3
  51. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
  52. package/node_modules/@noodle-borg/service/dist/oauth/store.js +5 -5
  53. package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
  54. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts.map +1 -1
  55. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js +7 -2
  56. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js.map +1 -1
  57. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts +1 -1
  58. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts.map +1 -1
  59. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js.map +1 -1
  60. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.d.ts.map +1 -1
  61. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +1 -1
  62. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -1
  63. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.d.ts.map +1 -1
  64. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js +6 -1
  65. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js.map +1 -1
  66. package/node_modules/@noodle-borg/service/dist/options.d.ts +13 -0
  67. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  68. package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.d.ts +9 -0
  69. package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.d.ts.map +1 -0
  70. package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.js +24 -0
  71. package/node_modules/@noodle-borg/service/dist/platform-account-reset-config.js.map +1 -0
  72. package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.d.ts +12 -0
  73. package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.d.ts.map +1 -0
  74. package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.js +110 -0
  75. package/node_modules/@noodle-borg/service/dist/platform-account-reset-dispatch-lock-postgres.js.map +1 -0
  76. package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.d.ts +9 -0
  77. package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.d.ts.map +1 -0
  78. package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.js +46 -0
  79. package/node_modules/@noodle-borg/service/dist/platform-account-reset-fingerprint.js.map +1 -0
  80. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts +77 -0
  81. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts.map +1 -0
  82. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js +144 -0
  83. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js.map +1 -0
  84. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.d.ts +29 -0
  85. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.d.ts.map +1 -0
  86. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.js +59 -0
  87. package/node_modules/@noodle-borg/service/dist/platform-account-reset-operator.js.map +1 -0
  88. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.d.ts +11 -0
  89. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.d.ts.map +1 -0
  90. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.js +22 -0
  91. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-helpers.js.map +1 -0
  92. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.d.ts +41 -0
  93. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.d.ts.map +1 -0
  94. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.js +314 -0
  95. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-postgres.js.map +1 -0
  96. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.d.ts +14 -0
  97. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.d.ts.map +1 -0
  98. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.js +210 -0
  99. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-resources-postgres.js.map +1 -0
  100. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.d.ts +11 -0
  101. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.d.ts.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.js +71 -0
  103. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ownership-rollback-postgres.js.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.d.ts +12 -0
  105. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.d.ts.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.js +2 -0
  107. package/node_modules/@noodle-borg/service/dist/platform-account-reset-ports.js.map +1 -0
  108. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts +22 -0
  109. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts.map +1 -0
  110. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js +177 -0
  111. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js.map +1 -0
  112. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts +35 -0
  113. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts.map +1 -0
  114. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js +184 -0
  115. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.d.ts +11 -0
  117. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.d.ts.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.js +120 -0
  119. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-persistence-postgres.js.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.d.ts +79 -0
  121. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.d.ts.map +1 -0
  122. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.js +286 -0
  123. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.js.map +1 -0
  124. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.d.ts +21 -0
  125. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.d.ts.map +1 -0
  126. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.js +81 -0
  127. package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.js.map +1 -0
  128. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts +46 -0
  129. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts.map +1 -0
  130. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js +283 -0
  131. package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js.map +1 -0
  132. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.d.ts +13 -0
  133. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.d.ts.map +1 -0
  134. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.js +81 -0
  135. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.js.map +1 -0
  136. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.d.ts +30 -0
  137. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.d.ts.map +1 -0
  138. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.js +248 -0
  139. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.js.map +1 -0
  140. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts +29 -0
  141. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts.map +1 -0
  142. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js +281 -0
  143. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js.map +1 -0
  144. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.d.ts +55 -0
  145. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.d.ts.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.js +262 -0
  147. package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.js.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.d.ts +7 -0
  149. package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.d.ts.map +1 -0
  150. package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.js +439 -0
  151. package/node_modules/@noodle-borg/service/dist/platform-account-reset-schema-postgres.js.map +1 -0
  152. package/node_modules/@noodle-borg/service/dist/platform-account-reset.d.ts +276 -0
  153. package/node_modules/@noodle-borg/service/dist/platform-account-reset.d.ts.map +1 -0
  154. package/node_modules/@noodle-borg/service/dist/platform-account-reset.js +141 -0
  155. package/node_modules/@noodle-borg/service/dist/platform-account-reset.js.map +1 -0
  156. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts +1 -1
  157. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.d.ts.map +1 -1
  158. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js +5 -1
  159. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js.map +1 -1
  160. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.d.ts.map +1 -1
  161. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js +10 -1
  162. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js.map +1 -1
  163. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts +5 -10
  164. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts.map +1 -1
  165. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js +86 -47
  166. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js.map +1 -1
  167. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.d.ts +17 -0
  168. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.d.ts.map +1 -0
  169. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.js +240 -0
  170. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-transaction-postgres.js.map +1 -0
  171. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +63 -63
  172. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts +1 -1
  173. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts +18 -1
  174. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts.map +1 -1
  175. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js +97 -2
  176. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js.map +1 -1
  177. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts +4 -1
  178. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts.map +1 -1
  179. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js +4 -0
  180. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js.map +1 -1
  181. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts +7 -2
  182. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts.map +1 -1
  183. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js +24 -2
  184. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js.map +1 -1
  185. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts.map +1 -1
  186. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js +4 -0
  187. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js.map +1 -1
  188. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts +7 -1
  189. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts.map +1 -1
  190. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js +121 -8
  191. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js.map +1 -1
  192. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.d.ts.map +1 -1
  193. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js +11 -1
  194. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js.map +1 -1
  195. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts +5 -3
  196. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts.map +1 -1
  197. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js +15 -1
  198. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js.map +1 -1
  199. package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts +23 -2
  200. package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts.map +1 -1
  201. package/node_modules/@noodle-borg/service/dist/platform-identity.js +21 -0
  202. package/node_modules/@noodle-borg/service/dist/platform-identity.js.map +1 -1
  203. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +8 -0
  204. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -1
  205. package/node_modules/@noodle-borg/service/dist/registry-state.js +15 -2
  206. package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -1
  207. package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -0
  208. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  209. package/node_modules/@noodle-borg/service/dist/registry.js +4 -1
  210. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  211. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts +1 -1
  212. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts.map +1 -1
  213. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +1 -0
  214. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js.map +1 -1
  215. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.d.ts +8 -0
  216. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.d.ts.map +1 -0
  217. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.js +36 -0
  218. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset-dispatch.js.map +1 -0
  219. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.d.ts +22 -0
  220. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.d.ts.map +1 -0
  221. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.js +201 -0
  222. package/node_modules/@noodle-borg/service/dist/routes/platform-account-reset.js.map +1 -0
  223. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.d.ts +18 -0
  224. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.d.ts.map +1 -0
  225. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.js +36 -0
  226. package/node_modules/@noodle-borg/service/dist/routes/private-platform-auth-dispatch.js.map +1 -0
  227. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +2 -1
  228. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
  229. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  230. package/node_modules/@noodle-borg/service/dist/serve.js +16 -1
  231. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  232. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  233. package/node_modules/@noodle-borg/service/dist/service.js +4 -5
  234. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  235. package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts +22 -3
  236. package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts.map +1 -1
  237. package/node_modules/@noodle-borg/service/dist/workos-directory.js +56 -5
  238. package/node_modules/@noodle-borg/service/dist/workos-directory.js.map +1 -1
  239. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +7 -0
  240. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
  241. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +5 -0
  242. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
  243. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import { type PlatformAccountResetExecuteRequest, type PlatformAccountResetResult } from './platform-account-reset.js';
2
+ import { type PlatformAccountResetMutationOutcome, type PlatformAccountResetPool } from './platform-account-reset-operation-postgres.js';
3
+ import type { PlatformAccountResetPreparedPreviewValidation } from './platform-account-reset-preview-postgres.js';
4
+ import { type PlatformAccountResetPreviewResult } from './platform-account-reset-preview-result.js';
5
+ import { assertPlatformAuthInventorySourceFence } from './platform-auth-inventory-source-fence-postgres.js';
6
+ import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
7
+ export type PlatformAccountResetQuarantineBoundary = 'canonical_validated' | 'operation_transitioned' | 'reservations_inserted' | 'principals_suspended' | 'authorization_codes_revoked' | 'consent_revoked' | 'device_authorizations_revoked' | 'developer_grants_revoked' | 'deployments_archived' | 'cleanup_ledger_stamped' | 'targets_transitioned' | 'event_appended';
8
+ interface QuarantineOptions {
9
+ readonly preview: {
10
+ prepareUsable(input: {
11
+ readonly operationId: string;
12
+ readonly releaseSha: string;
13
+ readonly expectedGeneration: number;
14
+ readonly previewChecksum: string;
15
+ }, deadline?: number): Promise<PlatformAccountResetPreparedPreviewValidation>;
16
+ assertPrepared(connection: Parameters<typeof assertPlatformAuthInventorySourceFence>[0], input: {
17
+ readonly operationId: string;
18
+ readonly releaseSha: string;
19
+ readonly expectedGeneration: number;
20
+ readonly previewChecksum: string;
21
+ }, prepared: PlatformAccountResetPreparedPreviewValidation): Promise<PlatformAccountResetPreviewResult>;
22
+ assertUsable(input: {
23
+ readonly operationId: string;
24
+ readonly releaseSha: string;
25
+ readonly expectedGeneration: number;
26
+ readonly previewChecksum: string;
27
+ }): Promise<PlatformAccountResetPreviewResult>;
28
+ };
29
+ readonly sourceAvailability: PlatformAuthInventorySourceManifest;
30
+ readonly releaseSha: string;
31
+ readonly workosRealm: string;
32
+ readonly approvedTargetSetFingerprint: string;
33
+ readonly actorFingerprint: string;
34
+ readonly googleRealm?: string;
35
+ readonly now?: () => Date;
36
+ readonly localCaptureTimeoutMs?: number;
37
+ readonly fault?: (boundary: PlatformAccountResetQuarantineBoundary) => void | Promise<void>;
38
+ }
39
+ export declare class PostgresPlatformAccountResetQuarantineStore {
40
+ #private;
41
+ constructor(pool: PlatformAccountResetPool, options: QuarantineOptions);
42
+ quarantine(rawRequest: PlatformAccountResetExecuteRequest): Promise<PlatformAccountResetResult>;
43
+ apply(rawRequest: PlatformAccountResetExecuteRequest): Promise<PlatformAccountResetMutationOutcome>;
44
+ }
45
+ export {};
46
+ //# sourceMappingURL=platform-account-reset-quarantine-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-quarantine-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-quarantine-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kCAAkC,EAEvC,KAAK,0BAA0B,EAChC,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAOL,KAAK,mCAAmC,EACxC,KAAK,wBAAwB,EAG9B,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,6CAA6C,EAAE,MAAM,8CAA8C,CAAC;AAClH,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,sCAAsC,EAKvC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAEhG,MAAM,MAAM,sCAAsC,GAC9C,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,GACvB,sBAAsB,GACtB,6BAA6B,GAC7B,iBAAiB,GACjB,+BAA+B,GAC/B,0BAA0B,GAC1B,sBAAsB,GACtB,wBAAwB,GACxB,sBAAsB,GACtB,gBAAgB,CAAC;AAErB,UAAU,iBAAiB;IACzB,QAAQ,CAAC,OAAO,EAAE;QAChB,aAAa,CACX,KAAK,EAAE;YACL,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;YACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;SAClC,EACD,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,6CAA6C,CAAC,CAAC;QAC1D,cAAc,CACZ,UAAU,EAAE,UAAU,CAAC,OAAO,sCAAsC,CAAC,CAAC,CAAC,CAAC,EACxE,KAAK,EAAE;YACL,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;YACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;SAClC,EACD,QAAQ,EAAE,6CAA6C,GACtD,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC9C,YAAY,CAAC,KAAK,EAAE;YAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;YAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;YACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;SAClC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;KAChD,CAAC;IACF,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,sCAAsC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7F;AAKD,qBAAa,2CAA2C;;gBAI1C,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,iBAAiB;IAShE,UAAU,CACd,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAAC,0BAA0B,CAAC;IAIhC,KAAK,CACT,UAAU,EAAE,kCAAkC,GAC7C,OAAO,CAAC,mCAAmC,CAAC;CA6WhD"}
@@ -0,0 +1,283 @@
1
+ import { PlatformAccountResetExecuteRequestSchema, } from './platform-account-reset.js';
2
+ import { remainingPlatformAccountResetDispatchMilliseconds, runPlatformAccountResetWithDispatchLock, } from './platform-account-reset-dispatch-lock-postgres.js';
3
+ import { canonicalJson, sha256Canonical } from './platform-account-reset-fingerprint.js';
4
+ import { assertPlatformAccountResetActionReplay, assertPlatformAccountResetApprovedTargetSet, assertPlatformAccountResetRequestMatches, loadPlatformAccountResetFrozenResources, loadPlatformAccountResetTargets, lockPlatformAccountResetOperation, parsePlatformAccountResetSafeResult, platformAccountResetActionEvidence, } from './platform-account-reset-operation-postgres.js';
5
+ import { loadPlatformAccountResetContactEvidence } from './platform-account-reset-preview-evidence-postgres.js';
6
+ import { PlatformAccountResetPreviewError, } from './platform-account-reset-preview-result.js';
7
+ import { PostgresPlatformAuthLegacyInventorySources } from './platform-auth-inventory-legacy-sources-postgres.js';
8
+ import { assertPlatformAuthInventorySourceFence, lockPlatformAuthInventorySourceFenceTargets, PLATFORM_ACCOUNT_RESET_EXECUTION_TABLES, readPlatformAuthInventorySourceEpoch, runPlatformAuthInventorySourceFenceTransaction, } from './platform-auth-inventory-source-fence-postgres.js';
9
+ const DEFAULT_LOCAL_CAPTURE_TIMEOUT_MS = 5_000;
10
+ const MAX_LOCAL_CAPTURE_TIMEOUT_MS = 60_000;
11
+ export class PostgresPlatformAccountResetQuarantineStore {
12
+ #pool;
13
+ #options;
14
+ constructor(pool, options) {
15
+ this.#pool = pool;
16
+ this.#options = {
17
+ ...options,
18
+ googleRealm: options.googleRealm ?? 'accounts.google.com',
19
+ now: options.now ?? (() => new Date()),
20
+ };
21
+ }
22
+ async quarantine(rawRequest) {
23
+ return (await this.apply(rawRequest)).result;
24
+ }
25
+ async apply(rawRequest) {
26
+ const request = PlatformAccountResetExecuteRequestSchema.parse(rawRequest);
27
+ if (request.action !== 'quarantine')
28
+ throw new PlatformAccountResetPreviewError('operation_conflict');
29
+ return runPlatformAccountResetWithDispatchLock(this.#pool, {
30
+ operationId: request.operationId,
31
+ timeoutMs: this.#localCaptureTimeout(),
32
+ task: (context) => this.#applyLocked(request, context.replayLifecycle, context.deadline),
33
+ });
34
+ }
35
+ async #applyLocked(request, replayLifecycle, deadline) {
36
+ const evidence = platformAccountResetActionEvidence(request, this.#options.actorFingerprint);
37
+ const previewEvidence = {
38
+ operationId: request.operationId,
39
+ releaseSha: request.releaseSha,
40
+ expectedGeneration: request.expectedGeneration,
41
+ previewChecksum: request.previewChecksum,
42
+ };
43
+ const prepared = replayLifecycle === 'quarantined'
44
+ ? undefined
45
+ : await this.#options.preview.prepareUsable(previewEvidence, deadline);
46
+ return runPlatformAuthInventorySourceFenceTransaction(this.#pool, async (connection) => {
47
+ await this.#assertSourceFence(connection);
48
+ const operation = await lockPlatformAccountResetOperation(connection, request.operationId);
49
+ assertPlatformAccountResetApprovedTargetSet(operation, this.#options.approvedTargetSetFingerprint);
50
+ const resources = await loadPlatformAccountResetFrozenResources(connection, request.operationId);
51
+ if (operation.lifecycle === 'quarantined') {
52
+ const result = assertPlatformAccountResetActionReplay(evidence, {
53
+ idempotencyKeyHash: operation.quarantine_idempotency_key_hash,
54
+ requestFingerprint: operation.quarantine_request_fingerprint,
55
+ reasonFingerprint: operation.quarantine_reason_fingerprint,
56
+ actorFingerprint: operation.quarantine_actor_fingerprint,
57
+ safeResult: operation.quarantine_safe_result,
58
+ });
59
+ return {
60
+ result,
61
+ registry: this.#registryPlan(resources.apps, operation.quarantined_at),
62
+ };
63
+ }
64
+ const validated = prepared === undefined
65
+ ? undefined
66
+ : await this.#options.preview.assertPrepared(connection, previewEvidence, prepared);
67
+ if (operation.lifecycle !== 'previewed' || validated === undefined)
68
+ throw new PlatformAccountResetPreviewError('operation_conflict');
69
+ assertPlatformAccountResetRequestMatches(operation, request, this.#options);
70
+ this.#assertStoredPreview(operation.safe_result, validated);
71
+ const targets = await loadPlatformAccountResetTargets(connection, request.operationId, 'previewed');
72
+ await lockPlatformAuthInventorySourceFenceTargets(connection, targets);
73
+ await this.#assertCurrentCoordination(connection, operation.source_epoch, request);
74
+ const contacts = await loadPlatformAccountResetContactEvidence(connection, targets, this.#options.sourceAvailability);
75
+ if (contacts.normalizedContacts.size !== 3 ||
76
+ contacts.missingCount !== 0 ||
77
+ contacts.ambiguousCount !== 0)
78
+ throw new PlatformAccountResetPreviewError('operation_conflict');
79
+ await this.#assertSuspensionTrigger(connection);
80
+ const result = this.#quarantineResult(parsePlatformAccountResetSafeResult(operation.safe_result), resources.resourceCount);
81
+ await this.#fault('canonical_validated');
82
+ const operationTransitioned = await connection.query(`WITH authority AS MATERIALIZED (
83
+ SELECT clock_timestamp() AS quarantined_at
84
+ )
85
+ UPDATE platform_account_reset_operations operation
86
+ SET lifecycle = 'quarantined',
87
+ quarantined_at = authority.quarantined_at,
88
+ finalize_after = authority.quarantined_at + interval '24 hours',
89
+ quarantine_idempotency_key_hash = $2,
90
+ quarantine_request_fingerprint = $3,
91
+ quarantine_reason_fingerprint = $4,
92
+ quarantine_actor_fingerprint = $5,
93
+ quarantine_safe_result = $6::jsonb,
94
+ updated_at = authority.quarantined_at
95
+ FROM authority
96
+ WHERE operation.operation_id = $1 AND operation.lifecycle = 'previewed'
97
+ AND operation.preview_expires_at > authority.quarantined_at
98
+ RETURNING operation.quarantined_at::text AS quarantined_at,
99
+ operation.finalize_after::text AS finalize_after`, [
100
+ request.operationId,
101
+ evidence.idempotencyKeyHash,
102
+ evidence.requestFingerprint,
103
+ evidence.reasonFingerprint,
104
+ evidence.actorFingerprint,
105
+ JSON.stringify(result),
106
+ ]);
107
+ if (operationTransitioned.rows.length !== 1)
108
+ throw new PlatformAccountResetPreviewError('operation_conflict');
109
+ const quarantinedAtValue = operationTransitioned.rows[0]?.quarantined_at;
110
+ const finalizeAfterValue = operationTransitioned.rows[0]?.finalize_after;
111
+ const quarantinedAt = validTimestamp(quarantinedAtValue);
112
+ validTimestamp(finalizeAfterValue);
113
+ await this.#fault('operation_transitioned');
114
+ for (const target of targets) {
115
+ const normalizedEmail = contacts.normalizedContacts.get(target);
116
+ if (normalizedEmail === undefined)
117
+ throw new PlatformAccountResetPreviewError('operation_conflict');
118
+ await connection.query(`INSERT INTO platform_account_reset_email_reservations
119
+ (operation_id, realm, normalized_email, principal_id, expires_at, created_at)
120
+ VALUES ($1, $2, $3, $4, $5, $6)`, [
121
+ request.operationId,
122
+ this.#options.workosRealm,
123
+ normalizedEmail,
124
+ target,
125
+ finalizeAfterValue,
126
+ quarantinedAtValue,
127
+ ]);
128
+ }
129
+ await this.#fault('reservations_inserted');
130
+ const suspended = await connection.query(`UPDATE platform_principals
131
+ SET status = 'suspended', suspended_at = $2
132
+ WHERE principal_id = ANY($1::text[]) AND status = 'active'
133
+ RETURNING principal_id`, [targets, quarantinedAtValue]);
134
+ if (suspended.rows.length !== 3)
135
+ throw new PlatformAccountResetPreviewError('principal_not_active');
136
+ await this.#fault('principals_suspended');
137
+ await connection.query(`DELETE FROM oauth_authorization_codes
138
+ WHERE owner_subject = ANY($1::text[])
139
+ AND identity_kind IS DISTINCT FROM 'customer'`, [targets]);
140
+ await this.#fault('authorization_codes_revoked');
141
+ await connection.query(`DELETE FROM oauth_consent_grant_provenance
142
+ WHERE owner_subject = ANY($1::text[]) AND identity_kind = 'platform'`, [targets]);
143
+ await connection.query(`DELETE FROM oauth_consent_grants
144
+ WHERE owner_subject = ANY($1::text[]) AND identity_kind = 'platform'`, [targets]);
145
+ await this.#fault('consent_revoked');
146
+ await connection.query(`DELETE FROM oauth_device_authorizations
147
+ WHERE owner_subject = ANY($1::text[])
148
+ AND identity_kind IS DISTINCT FROM 'customer'`, [targets]);
149
+ await this.#fault('device_authorizations_revoked');
150
+ await connection.query(`UPDATE developer_access_grants
151
+ SET revoked_at = $2, updated_at = $2
152
+ WHERE subject = ANY($1::text[]) AND revoked_at IS NULL`, [targets, quarantinedAtValue]);
153
+ await this.#fault('developer_grants_revoked');
154
+ const archived = await connection.query(`UPDATE deploy_records
155
+ SET archived_at = $2
156
+ WHERE deployment_id = ANY($1::text[]) AND archived_at IS NULL
157
+ RETURNING deployment_id`, [resources.deploymentIds, quarantinedAtValue]);
158
+ if (archived.rows.length !== resources.deploymentIds.length)
159
+ throw new PlatformAccountResetPreviewError('operation_conflict');
160
+ await this.#fault('deployments_archived');
161
+ const archivedIds = archived.rows.map((row) => row.deployment_id);
162
+ const stamped = await connection.query(`UPDATE platform_account_reset_cleanup_ledger
163
+ SET quarantine_archive_at = $3, updated_at = $3
164
+ WHERE operation_id = $1 AND provider = 'postgres'
165
+ AND resource_kind = 'deployment'
166
+ AND provider_locator::jsonb->>'deploymentId' = ANY($2::text[])
167
+ AND quarantine_archive_at IS NULL
168
+ RETURNING ledger_id`, [request.operationId, archivedIds, quarantinedAtValue]);
169
+ if (stamped.rows.length !== archivedIds.length)
170
+ throw new PlatformAccountResetPreviewError('operation_conflict');
171
+ await this.#fault('cleanup_ledger_stamped');
172
+ const targetsTransitioned = await connection.query(`UPDATE platform_account_reset_targets
173
+ SET lifecycle = 'quarantined', updated_at = $2
174
+ WHERE operation_id = $1 AND lifecycle = 'previewed'
175
+ RETURNING principal_id`, [request.operationId, quarantinedAtValue]);
176
+ if (targetsTransitioned.rows.length !== 3)
177
+ throw new PlatformAccountResetPreviewError('operation_conflict');
178
+ await this.#fault('targets_transitioned');
179
+ await connection.query(`INSERT INTO platform_account_reset_events
180
+ (operation_id, event_type, target_set_fingerprint, event_fingerprint,
181
+ target_count, resource_count, blocker_count, created_at)
182
+ VALUES ($1, 'quarantined', $2, $3, 3, $4, 0, $5)`, [
183
+ request.operationId,
184
+ result.targetSetFingerprint,
185
+ sha256Canonical({
186
+ schemaVersion: 1,
187
+ label: 'platform_account_reset_event:quarantined',
188
+ operationId: request.operationId,
189
+ requestFingerprint: evidence.requestFingerprint,
190
+ result,
191
+ }),
192
+ resources.resourceCount,
193
+ quarantinedAtValue,
194
+ ]);
195
+ await this.#fault('event_appended');
196
+ return {
197
+ result,
198
+ registry: {
199
+ action: 'quarantine',
200
+ apps: resources.apps,
201
+ archivedAt: quarantinedAt.toISOString(),
202
+ },
203
+ };
204
+ }, this.#transactionOptions(deadline));
205
+ }
206
+ async #assertSourceFence(connection) {
207
+ await new PostgresPlatformAuthLegacyInventorySources({
208
+ googleRealm: this.#options.googleRealm,
209
+ sourceAvailability: this.#options.sourceAvailability,
210
+ excludedSubjects: [],
211
+ }).assertManifest(connection);
212
+ await assertPlatformAuthInventorySourceFence(connection, this.#options.sourceAvailability);
213
+ }
214
+ async #assertCurrentCoordination(connection, storedSourceEpoch, request) {
215
+ if (Number(await readPlatformAuthInventorySourceEpoch(connection)) !== Number(storedSourceEpoch))
216
+ throw new PlatformAccountResetPreviewError('source_epoch_mismatch');
217
+ const rollout = await connection.query(`SELECT generation::text, lifecycle, workos_percentage
218
+ FROM platform_auth_rollout_state WHERE singleton = true FOR SHARE`);
219
+ const state = rollout.rows[0];
220
+ if (state === undefined || Number(state.generation) !== request.expectedGeneration)
221
+ throw new PlatformAccountResetPreviewError('generation_mismatch');
222
+ if (state.lifecycle !== 'google' || state.workos_percentage !== 0)
223
+ throw new PlatformAccountResetPreviewError('operation_conflict');
224
+ }
225
+ async #assertSuspensionTrigger(connection) {
226
+ const installed = await connection.query(`SELECT 1 FROM pg_trigger
227
+ WHERE tgrelid = to_regclass('platform_principals')
228
+ AND tgname = 'platform_principal_suspension_revokes_refresh_tokens_trigger'
229
+ AND NOT tgisinternal AND tgenabled <> 'D'`);
230
+ if (installed.rows[0] === undefined)
231
+ throw new PlatformAccountResetPreviewError('operation_conflict');
232
+ }
233
+ #assertStoredPreview(value, validated) {
234
+ const stored = parsePlatformAccountResetSafeResult(value);
235
+ const { workosRealmFingerprint: _realm, previewExpiresAt: _expiry, ...safe } = validated;
236
+ if (canonicalJson(stored) !== canonicalJson(safe))
237
+ throw new PlatformAccountResetPreviewError('operation_conflict');
238
+ }
239
+ #quarantineResult(preview, resourceCount) {
240
+ return {
241
+ ...preview,
242
+ lifecycle: 'quarantined',
243
+ counts: {
244
+ ...preview.counts,
245
+ suspendedPrincipalCount: 3,
246
+ cleanupPendingCount: resourceCount,
247
+ },
248
+ };
249
+ }
250
+ #registryPlan(apps, quarantinedAt) {
251
+ const at = quarantinedAt === null ? new Date(Number.NaN) : new Date(quarantinedAt);
252
+ if (!Number.isFinite(at.getTime()))
253
+ throw new PlatformAccountResetPreviewError('operation_conflict');
254
+ return { action: 'quarantine', apps, archivedAt: at.toISOString() };
255
+ }
256
+ async #fault(boundary) {
257
+ await this.#options.fault?.(boundary);
258
+ }
259
+ #transactionOptions(deadline) {
260
+ const timeout = deadline === undefined
261
+ ? this.#localCaptureTimeout()
262
+ : remainingPlatformAccountResetDispatchMilliseconds(deadline, this.#localCaptureTimeout());
263
+ return {
264
+ lockTables: PLATFORM_ACCOUNT_RESET_EXECUTION_TABLES,
265
+ lockTimeoutMs: timeout,
266
+ statementTimeoutMs: timeout,
267
+ };
268
+ }
269
+ #localCaptureTimeout() {
270
+ return Math.min(this.#options.localCaptureTimeoutMs !== undefined &&
271
+ Number.isSafeInteger(this.#options.localCaptureTimeoutMs) &&
272
+ this.#options.localCaptureTimeoutMs > 0
273
+ ? this.#options.localCaptureTimeoutMs
274
+ : DEFAULT_LOCAL_CAPTURE_TIMEOUT_MS, MAX_LOCAL_CAPTURE_TIMEOUT_MS);
275
+ }
276
+ }
277
+ function validTimestamp(value) {
278
+ const timestamp = value === undefined ? new Date(Number.NaN) : new Date(value);
279
+ if (!Number.isFinite(timestamp.getTime()))
280
+ throw new PlatformAccountResetPreviewError('operation_conflict');
281
+ return timestamp;
282
+ }
283
+ //# sourceMappingURL=platform-account-reset-quarantine-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-quarantine-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-quarantine-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { PlatformAccountResetResult } from './platform-account-reset.js';
2
+ import { type PlatformAccountResetCleanupResource } from './platform-account-reset-ownership-postgres.js';
3
+ import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
4
+ import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
5
+ export declare function assertPlatformAccountResetRollbackEligibility(connection: PlatformIdentityQueryable, input: {
6
+ readonly operationId: string;
7
+ readonly targets: readonly string[];
8
+ readonly frozenContacts: ReadonlyMap<string, string>;
9
+ readonly frozenCleanupResources: readonly PlatformAccountResetCleanupResource[];
10
+ readonly sourceAvailability: PlatformAuthInventorySourceManifest;
11
+ readonly baseResult: PlatformAccountResetResult;
12
+ }): Promise<string>;
13
+ //# sourceMappingURL=platform-account-reset-rollback-eligibility-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-rollback-eligibility-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-rollback-eligibility-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gDAAgD,CAAC;AAMxD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAcjF,wBAAsB,6CAA6C,CACjE,UAAU,EAAE,yBAAyB,EACrC,KAAK,EAAE;IACL,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,mCAAmC,EAAE,CAAC;IAChF,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;IACjE,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;CACjD,GACA,OAAO,CAAC,MAAM,CAAC,CA0FjB"}
@@ -0,0 +1,81 @@
1
+ import { canonicalJson, sha256Canonical } from './platform-account-reset-fingerprint.js';
2
+ import { loadPlatformAccountResetOwnershipSnapshot, } from './platform-account-reset-ownership-postgres.js';
3
+ import { loadPlatformAccountResetContactEvidence, loadPlatformAccountResetCustomerEvidence, } from './platform-account-reset-preview-evidence-postgres.js';
4
+ import { PlatformAccountResetPreviewError } from './platform-account-reset-preview-result.js';
5
+ export async function assertPlatformAccountResetRollbackEligibility(connection, input) {
6
+ const verified = await connection.query(`SELECT 1 FROM platform_verified_emails
7
+ WHERE principal_id = ANY($1::text[])
8
+ LIMIT 1`, [input.targets]);
9
+ if (verified.rows[0] !== undefined)
10
+ throw new PlatformAccountResetPreviewError('operation_conflict');
11
+ const customerEvidence = await loadPlatformAccountResetCustomerEvidence(connection, input.targets);
12
+ if (customerEvidence.length !== 0)
13
+ throw new PlatformAccountResetPreviewError('operation_conflict');
14
+ const contactEvidence = await loadPlatformAccountResetContactEvidence(connection, input.targets, input.sourceAvailability);
15
+ if (contactEvidence.missingCount !== 0 ||
16
+ contactEvidence.ambiguousCount !== 0 ||
17
+ canonicalJson(orderedEntries(contactEvidence.normalizedContacts)) !==
18
+ canonicalJson(orderedEntries(input.frozenContacts)))
19
+ throw new PlatformAccountResetPreviewError('operation_conflict');
20
+ const personal = await connection.query(`SELECT binding.principal_subject, binding.org_slug,
21
+ binding.billing_identity_issuer, binding.billing_subject,
22
+ binding.billing_account_id,
23
+ defaults.billing_account_id AS default_billing_account_id,
24
+ home.billing_account_id AS home_billing_account_id,
25
+ home.home_owner_identity_issuer, home.home_owner_subject
26
+ FROM personal_workspace_bindings binding
27
+ LEFT JOIN billing_account_defaults defaults
28
+ ON defaults.identity_issuer = binding.billing_identity_issuer
29
+ AND defaults.subject = binding.billing_subject
30
+ LEFT JOIN org_billing_home_accounts home ON home.org_slug = binding.org_slug
31
+ WHERE binding.principal_subject = ANY($1::text[])
32
+ ORDER BY binding.principal_subject, binding.org_slug`, [input.targets]);
33
+ if (personal.rows.length !== input.targets.length ||
34
+ personal.rows.some((row) => row.billing_identity_issuer !== 'https://accounts.google.com' ||
35
+ row.billing_subject !== row.principal_subject ||
36
+ row.billing_account_id !== row.default_billing_account_id ||
37
+ row.billing_account_id !== row.home_billing_account_id ||
38
+ row.home_owner_identity_issuer !== 'https://accounts.google.com' ||
39
+ row.home_owner_subject !== row.principal_subject))
40
+ throw new PlatformAccountResetPreviewError('operation_conflict');
41
+ const ownership = await loadPlatformAccountResetOwnershipSnapshot(connection, {
42
+ targetPrincipalIds: input.targets,
43
+ quarantine: {
44
+ operationId: input.operationId,
45
+ cleanupResources: input.frozenCleanupResources,
46
+ },
47
+ });
48
+ if (ownership.blockers.length !== 0)
49
+ throw new PlatformAccountResetPreviewError('operation_conflict');
50
+ const frozenLocalResources = input.frozenCleanupResources
51
+ .filter((resource) => resource.provider !== 'workos')
52
+ .sort((left, right) => canonicalJson(left).localeCompare(canonicalJson(right)));
53
+ if (canonicalJson(ownership.cleanupResources) !== canonicalJson(frozenLocalResources) ||
54
+ !sameCounts(ownership.counts, ownership.cleanupResources.length, input.baseResult.counts))
55
+ throw new PlatformAccountResetPreviewError('operation_conflict');
56
+ return sha256Canonical({
57
+ schemaVersion: 1,
58
+ label: 'platform_account_reset_rollback_eligibility',
59
+ targets: input.targets,
60
+ frozenContacts: orderedEntries(input.frozenContacts),
61
+ contactEvidence: [...contactEvidence.evidenceByTarget].sort(([left], [right]) => left.localeCompare(right)),
62
+ personal: personal.rows,
63
+ ownershipFingerprint: ownership.ownershipFingerprint,
64
+ cleanupSetFingerprint: ownership.cleanupSetFingerprint,
65
+ });
66
+ }
67
+ function sameCounts(actual, actualCleanupResourceCount, expected) {
68
+ return (actual.personalOrganizationCount === expected.personalOrganizationCount &&
69
+ actual.soleOwnedOrganizationCount === expected.soleOwnedOrganizationCount &&
70
+ actual.ownerOnlyAppCount === expected.ownerOnlyAppCount &&
71
+ actual.preservedSharedOrganizationCount === expected.preservedSharedOrganizationCount &&
72
+ actual.membershipCount === expected.membershipCount &&
73
+ actual.billingAccountCount === expected.billingAccountCount &&
74
+ actual.credentialCount === expected.credentialCount &&
75
+ actual.providerObjectCount + expected.cleanupPendingCount - actualCleanupResourceCount ===
76
+ expected.providerObjectCount);
77
+ }
78
+ function orderedEntries(values) {
79
+ return [...values].sort(([left], [right]) => left.localeCompare(right));
80
+ }
81
+ //# sourceMappingURL=platform-account-reset-rollback-eligibility-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-rollback-eligibility-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-rollback-eligibility-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type PlatformAccountResetResult } from './platform-account-reset.js';
2
+ import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
3
+ import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
4
+ export interface PlatformAccountResetCanonicalCleanupResource {
5
+ readonly provider: 'postgres' | 'object_storage' | 'github' | 'stripe' | 'workos';
6
+ readonly resourceKind: string;
7
+ readonly locator: Readonly<Record<string, unknown>>;
8
+ readonly locatorFingerprint: string;
9
+ }
10
+ export interface PlatformAccountResetRollbackLocalInspection {
11
+ readonly operationId: string;
12
+ readonly sourceEpoch: number;
13
+ readonly rolloutGeneration: number;
14
+ readonly releaseSha: string;
15
+ readonly targetSetFingerprint: string;
16
+ readonly targets: readonly string[];
17
+ readonly contacts: ReadonlyMap<string, string>;
18
+ readonly workosResources: readonly PlatformAccountResetCanonicalCleanupResource[];
19
+ readonly baseResult: PlatformAccountResetResult;
20
+ readonly evidenceFingerprint: string;
21
+ }
22
+ interface RollbackLocalOptions {
23
+ readonly googleRealm: string;
24
+ readonly workosRealm: string;
25
+ readonly releaseSha: string;
26
+ readonly sourceAvailability: PlatformAuthInventorySourceManifest;
27
+ }
28
+ export declare function inspectPlatformAccountResetRollbackLocalEvidence(connection: PlatformIdentityQueryable, operationId: string, options: RollbackLocalOptions): Promise<PlatformAccountResetRollbackLocalInspection>;
29
+ export {};
30
+ //# sourceMappingURL=platform-account-reset-rollback-local-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-rollback-local-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-rollback-local-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,6BAA6B,CAAC;AAQrC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AA8BjF,MAAM,WAAW,4CAA4C;IAC3D,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,eAAe,EAAE,SAAS,4CAA4C,EAAE,CAAC;IAClF,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;CAClE;AAED,wBAAsB,gDAAgD,CACpE,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,2CAA2C,CAAC,CAuPtD"}