@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,120 @@
1
+ import { canonicalJson, sha256Canonical } from './platform-account-reset-fingerprint.js';
2
+ import { PlatformAccountResetPreviewError, } from './platform-account-reset-preview-result.js';
3
+ export async function persistPlatformAccountResetPreview(connection, inspection, options) {
4
+ const result = inspection.result;
5
+ if (result.blockers.length !== 0)
6
+ throw new PlatformAccountResetPreviewError('operation_conflict');
7
+ await connection.query(`INSERT INTO platform_account_reset_operations
8
+ (operation_id, lifecycle, release_sha, rollout_generation, workos_realm,
9
+ source_epoch, preview_checksum, target_set_fingerprint, request_fingerprint,
10
+ approved_target_set_fingerprint, actor_fingerprint, safe_result,
11
+ preview_expires_at, created_at, updated_at)
12
+ VALUES ($1, 'previewed', $2, $3, $4, $5, $6, $7, $8, $9, $10, $11::jsonb,
13
+ $12, $13, $13)`, [
14
+ result.operationId,
15
+ result.releaseSha,
16
+ result.rolloutGeneration,
17
+ options.workosRealm,
18
+ result.sourceEpoch,
19
+ result.previewChecksum,
20
+ result.targetSetFingerprint,
21
+ result.requestFingerprint,
22
+ options.approvedTargetSetFingerprint,
23
+ options.actorFingerprint,
24
+ JSON.stringify(inspection.safeResult),
25
+ options.previewExpiresAt,
26
+ options.createdAt,
27
+ ]);
28
+ for (const [principalId, sourceSnapshotFingerprint] of inspection.targetSnapshots) {
29
+ await connection.query(`INSERT INTO platform_account_reset_targets
30
+ (operation_id, principal_id, target_fingerprint,
31
+ source_snapshot_fingerprint, lifecycle)
32
+ VALUES ($1, $2, $3, $4, 'previewed')`, [
33
+ result.operationId,
34
+ principalId,
35
+ sha256Canonical({ schemaVersion: 1, principalId }),
36
+ sourceSnapshotFingerprint,
37
+ ]);
38
+ }
39
+ for (const resource of inspection.cleanupResources) {
40
+ await connection.query(`INSERT INTO platform_account_reset_cleanup_ledger
41
+ (operation_id, provider, resource_kind, provider_locator,
42
+ locator_fingerprint, state, created_at, updated_at)
43
+ VALUES ($1, $2, $3, $4, $5, 'pending', $6, $6)`, [
44
+ result.operationId,
45
+ resource.provider,
46
+ resource.resourceKind,
47
+ canonicalJson(resource.locator),
48
+ resource.locatorFingerprint,
49
+ options.createdAt,
50
+ ]);
51
+ }
52
+ const eventFingerprint = sha256Canonical({
53
+ schemaVersion: 1,
54
+ label: 'platform_account_reset_event:previewed',
55
+ operationId: result.operationId,
56
+ previewChecksum: result.previewChecksum,
57
+ targetSetFingerprint: result.targetSetFingerprint,
58
+ targetCount: result.counts.targetCount,
59
+ resourceCount: inspection.cleanupResources.length,
60
+ blockerCount: 0,
61
+ });
62
+ await connection.query(`INSERT INTO platform_account_reset_events
63
+ (operation_id, event_type, target_set_fingerprint, event_fingerprint,
64
+ target_count, resource_count, blocker_count, created_at)
65
+ VALUES ($1, 'previewed', $2, $3, $4, $5, 0, $6)`, [
66
+ result.operationId,
67
+ result.targetSetFingerprint,
68
+ eventFingerprint,
69
+ result.counts.targetCount,
70
+ inspection.cleanupResources.length,
71
+ options.createdAt,
72
+ ]);
73
+ }
74
+ export async function assertPlatformAccountResetCleanupEvidence(connection, operationId, inspection) {
75
+ const ledger = await connection.query(`SELECT provider, resource_kind, provider_locator, locator_fingerprint
76
+ FROM platform_account_reset_cleanup_ledger
77
+ WHERE operation_id = $1
78
+ ORDER BY provider, resource_kind, locator_fingerprint
79
+ FOR SHARE`, [operationId]);
80
+ const storedResources = [];
81
+ for (const row of ledger.rows) {
82
+ let locator;
83
+ try {
84
+ locator = JSON.parse(row.provider_locator);
85
+ }
86
+ catch {
87
+ throw new PlatformAccountResetPreviewError('operation_conflict');
88
+ }
89
+ if (!isCleanupProvider(row.provider) || !isRecord(locator))
90
+ throw new PlatformAccountResetPreviewError('operation_conflict');
91
+ const fingerprint = sha256Canonical({
92
+ schemaVersion: 1,
93
+ label: `platform_account_reset_locator:${row.provider}:${row.resource_kind}`,
94
+ locator,
95
+ });
96
+ if (fingerprint !== row.locator_fingerprint)
97
+ throw new PlatformAccountResetPreviewError('operation_conflict');
98
+ storedResources.push({
99
+ provider: row.provider,
100
+ resourceKind: row.resource_kind,
101
+ locator,
102
+ locatorFingerprint: row.locator_fingerprint,
103
+ });
104
+ }
105
+ const storedFingerprint = sha256Canonical({
106
+ schemaVersion: 1,
107
+ label: 'platform_account_reset_cleanup_set',
108
+ resources: storedResources,
109
+ });
110
+ if (storedFingerprint !== inspection.cleanupSetFingerprint ||
111
+ canonicalJson(storedResources) !== canonicalJson(inspection.cleanupResources))
112
+ throw new PlatformAccountResetPreviewError('operation_conflict');
113
+ }
114
+ function isCleanupProvider(value) {
115
+ return ['postgres', 'object_storage', 'github', 'stripe', 'workos'].includes(value);
116
+ }
117
+ function isRecord(value) {
118
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
119
+ }
120
+ //# sourceMappingURL=platform-account-reset-preview-persistence-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-preview-persistence-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-persistence-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { type PlatformAccountResetPreviewRequest } from './platform-account-reset.js';
2
+ import { type PlatformAccountResetWorkosEvidence } from './platform-account-reset-preview-evidence-postgres.js';
3
+ import { type PlatformAccountResetLocalInspection } from './platform-account-reset-preview-local-postgres.js';
4
+ import { type PlatformAccountResetPreviewResult } from './platform-account-reset-preview-result.js';
5
+ import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
6
+ import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
7
+ import type { PlatformAccountResetDirectory } from './workos-directory.js';
8
+ export { PlatformAccountResetPreviewError, type PlatformAccountResetPreviewResult, } from './platform-account-reset-preview-result.js';
9
+ type PreviewConnection = PlatformIdentityQueryable & {
10
+ release?: () => void;
11
+ };
12
+ type PreviewPool = PlatformIdentityQueryable & {
13
+ connect?: () => Promise<PreviewConnection>;
14
+ };
15
+ export interface PlatformAccountResetPreviewEvidence {
16
+ readonly operationId: string;
17
+ readonly releaseSha: string;
18
+ readonly expectedGeneration: number;
19
+ readonly previewChecksum: string | null;
20
+ }
21
+ interface PreviewOptions {
22
+ readonly directory: PlatformAccountResetDirectory;
23
+ readonly sourceAvailability: PlatformAuthInventorySourceManifest;
24
+ readonly googleRealm: string;
25
+ readonly workosRealm: string;
26
+ readonly releaseSha: string;
27
+ readonly actorFingerprint: string;
28
+ readonly approvedTargetSetFingerprint: string;
29
+ readonly excludedSubjects: readonly {
30
+ readonly subject: string;
31
+ readonly kind: 'workload' | 'synthetic';
32
+ }[];
33
+ readonly now?: () => Date;
34
+ readonly operationId?: () => string;
35
+ readonly providerTimeoutMs?: number;
36
+ readonly localCaptureTimeoutMs?: number;
37
+ readonly previewTtlMs?: number;
38
+ }
39
+ interface StoredOperationRow {
40
+ readonly lifecycle: string;
41
+ readonly release_sha: string;
42
+ readonly rollout_generation: string;
43
+ readonly workos_realm: string;
44
+ readonly source_epoch: string;
45
+ readonly preview_checksum: string;
46
+ readonly target_set_fingerprint: string;
47
+ readonly request_fingerprint: string;
48
+ readonly safe_result: unknown;
49
+ readonly preview_expires_at: Date | string;
50
+ readonly created_at: Date | string;
51
+ }
52
+ interface StoredTargetRow {
53
+ readonly principal_id: string;
54
+ readonly source_snapshot_fingerprint: string;
55
+ }
56
+ interface StoredSnapshot {
57
+ readonly stored: StoredOperationRow;
58
+ readonly targetRows: readonly StoredTargetRow[];
59
+ readonly request: PlatformAccountResetPreviewRequest;
60
+ readonly previewExpiresAt: Date;
61
+ readonly fingerprint: string;
62
+ }
63
+ export interface PlatformAccountResetPreparedPreviewValidation extends StoredSnapshot {
64
+ readonly local: PlatformAccountResetLocalInspection;
65
+ readonly remote: PlatformAccountResetWorkosEvidence;
66
+ }
67
+ /**
68
+ * Release-A preview store. Local evidence is captured twice in short fenced transactions. WorkOS reads are
69
+ * bounded and happen between those transactions, with no database transaction or table lock held.
70
+ */
71
+ export declare class PostgresPlatformAccountResetPreviewStore {
72
+ #private;
73
+ constructor(pool: PreviewPool, options: PreviewOptions);
74
+ preview(rawRequest: PlatformAccountResetPreviewRequest): Promise<PlatformAccountResetPreviewResult>;
75
+ assertUsable(evidence: PlatformAccountResetPreviewEvidence): Promise<PlatformAccountResetPreviewResult>;
76
+ prepareUsable(evidence: PlatformAccountResetPreviewEvidence, deadline?: number): Promise<PlatformAccountResetPreparedPreviewValidation>;
77
+ assertPrepared(connection: PlatformIdentityQueryable, evidence: PlatformAccountResetPreviewEvidence, prepared: PlatformAccountResetPreparedPreviewValidation): Promise<PlatformAccountResetPreviewResult>;
78
+ }
79
+ //# sourceMappingURL=platform-account-reset-preview-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-preview-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { PlatformAccountResetPreviewRequestSchema, PlatformAccountResetResultSchema, } from './platform-account-reset.js';
3
+ import { remainingPlatformAccountResetDispatchMilliseconds } from './platform-account-reset-dispatch-lock-postgres.js';
4
+ import { canonicalJson, sha256Canonical } from './platform-account-reset-fingerprint.js';
5
+ import { loadPlatformAccountResetWorkosEvidence, } from './platform-account-reset-preview-evidence-postgres.js';
6
+ import { inspectPlatformAccountResetLocalEvidence, } from './platform-account-reset-preview-local-postgres.js';
7
+ import { assertPlatformAccountResetCleanupEvidence, persistPlatformAccountResetPreview, } from './platform-account-reset-preview-persistence-postgres.js';
8
+ import { combinePlatformAccountResetEvidence, PlatformAccountResetPreviewError, } from './platform-account-reset-preview-result.js';
9
+ import { PostgresPlatformAuthLegacyInventorySources } from './platform-auth-inventory-legacy-sources-postgres.js';
10
+ import { assertPlatformAuthInventorySourceFence, lockPlatformAuthInventorySourceFenceTargets, PLATFORM_ACCOUNT_RESET_PREVIEW_TABLES, readPlatformAuthInventorySourceEpoch, runPlatformAuthInventorySourceFenceTransaction, } from './platform-auth-inventory-source-fence-postgres.js';
11
+ export { PlatformAccountResetPreviewError, } from './platform-account-reset-preview-result.js';
12
+ const PREVIEW_TTL_MS = 15 * 60 * 1000;
13
+ const DEFAULT_PROVIDER_TIMEOUT_MS = 5_000;
14
+ const DEFAULT_LOCAL_CAPTURE_TIMEOUT_MS = 5_000;
15
+ const MAX_LOCAL_CAPTURE_TIMEOUT_MS = 60_000;
16
+ const ASSERTION_TABLES = [
17
+ ...PLATFORM_ACCOUNT_RESET_PREVIEW_TABLES,
18
+ 'platform_account_reset_cleanup_ledger',
19
+ ];
20
+ const EMPTY_REMOTE_EVIDENCE = {
21
+ resources: [],
22
+ providerUnavailableCount: 0,
23
+ conflictCount: 0,
24
+ };
25
+ /**
26
+ * Release-A preview store. Local evidence is captured twice in short fenced transactions. WorkOS reads are
27
+ * bounded and happen between those transactions, with no database transaction or table lock held.
28
+ */
29
+ export class PostgresPlatformAccountResetPreviewStore {
30
+ #pool;
31
+ #options;
32
+ constructor(pool, options) {
33
+ this.#pool = pool;
34
+ this.#options = {
35
+ ...options,
36
+ now: options.now ?? (() => new Date()),
37
+ operationId: options.operationId ?? (() => `reset-${randomUUID()}`),
38
+ providerTimeoutMs: validTimeout(options.providerTimeoutMs),
39
+ localCaptureTimeoutMs: validLocalCaptureTimeout(options.localCaptureTimeoutMs),
40
+ previewTtlMs: validPreviewTtl(options.previewTtlMs),
41
+ };
42
+ }
43
+ async preview(rawRequest) {
44
+ const request = PlatformAccountResetPreviewRequestSchema.parse(rawRequest);
45
+ const operationId = this.#options.operationId();
46
+ const first = await this.#captureLocal(request, operationId);
47
+ const previewExpiresAt = validTimestamp(first.previewExpiresAt);
48
+ if (first.local.blockers.length !== 0)
49
+ return combinePlatformAccountResetEvidence(first.local, EMPTY_REMOTE_EVIDENCE, previewExpiresAt).result;
50
+ const remote = await this.#readRemote(first.local);
51
+ return runPlatformAuthInventorySourceFenceTransaction(this.#pool, async (connection) => {
52
+ await this.#assertSourceFence(connection);
53
+ await lockPlatformAuthInventorySourceFenceTargets(connection, first.local.targets);
54
+ await this.#assertDatabaseDeadline(connection, first.previewExpiresAt);
55
+ const second = await this.#inspectLocal(connection, request, operationId);
56
+ this.#assertSameLocalEvidence(first.local, second);
57
+ const inspection = combinePlatformAccountResetEvidence(second, remote, previewExpiresAt);
58
+ if (inspection.result.blockers.length !== 0)
59
+ return inspection.result;
60
+ await persistPlatformAccountResetPreview(connection, inspection, {
61
+ actorFingerprint: this.#options.actorFingerprint,
62
+ approvedTargetSetFingerprint: this.#options.approvedTargetSetFingerprint,
63
+ workosRealm: this.#options.workosRealm,
64
+ createdAt: first.createdAt,
65
+ previewExpiresAt: first.previewExpiresAt,
66
+ });
67
+ await this.#assertDatabaseDeadline(connection, first.previewExpiresAt);
68
+ return inspection.result;
69
+ }, this.#transactionOptions(PLATFORM_ACCOUNT_RESET_PREVIEW_TABLES));
70
+ }
71
+ async assertUsable(evidence) {
72
+ const prepared = await this.prepareUsable(evidence);
73
+ return runPlatformAuthInventorySourceFenceTransaction(this.#pool, (connection) => this.assertPrepared(connection, evidence, prepared), this.#transactionOptions(ASSERTION_TABLES));
74
+ }
75
+ async prepareUsable(evidence, deadline) {
76
+ const first = await this.#captureUsability(evidence, PLATFORM_ACCOUNT_RESET_PREVIEW_TABLES, deadline);
77
+ const remote = await this.#readRemote(first.local, deadline);
78
+ if (deadline !== undefined)
79
+ remainingPlatformAccountResetDispatchMilliseconds(deadline, Number.MAX_SAFE_INTEGER);
80
+ return { ...first, remote };
81
+ }
82
+ async assertPrepared(connection, evidence, prepared) {
83
+ await this.#assertSourceFence(connection);
84
+ const stored = await this.#loadStoredSnapshot(connection, evidence);
85
+ if (stored.fingerprint !== prepared.fingerprint)
86
+ throw new PlatformAccountResetPreviewError('operation_conflict');
87
+ await lockPlatformAuthInventorySourceFenceTargets(connection, stored.targetRows.map((row) => row.principal_id));
88
+ const local = await this.#inspectLocal(connection, stored.request, evidence.operationId, true);
89
+ this.#assertSameLocalEvidence(prepared.local, local);
90
+ const inspection = combinePlatformAccountResetEvidence(local, prepared.remote, stored.previewExpiresAt);
91
+ if (inspection.result.blockers.length !== 0)
92
+ throw new PlatformAccountResetPreviewError(inspection.result.blockers[0]?.code ?? 'operation_conflict');
93
+ this.#assertStoredInspection(stored, inspection);
94
+ await assertPlatformAccountResetCleanupEvidence(connection, evidence.operationId, inspection);
95
+ const parsedSafeResult = PlatformAccountResetResultSchema.safeParse(stored.stored.safe_result);
96
+ if (!parsedSafeResult.success ||
97
+ canonicalJson(parsedSafeResult.data) !== canonicalJson(inspection.safeResult))
98
+ throw new PlatformAccountResetPreviewError('operation_conflict');
99
+ return {
100
+ ...parsedSafeResult.data,
101
+ workosRealmFingerprint: local.workosRealmFingerprint,
102
+ previewExpiresAt: stored.previewExpiresAt.toISOString(),
103
+ };
104
+ }
105
+ async #captureLocal(request, operationId) {
106
+ return runPlatformAuthInventorySourceFenceTransaction(this.#pool, async (connection) => {
107
+ await this.#assertSourceFence(connection);
108
+ await lockPlatformAuthInventorySourceFenceTargets(connection, request.targetSet.principalIds);
109
+ const authority = await connection.query(`WITH authority AS MATERIALIZED (
110
+ SELECT clock_timestamp() AS created_at
111
+ )
112
+ SELECT authority.created_at::text AS created_at,
113
+ (authority.created_at + $1::bigint * interval '1 millisecond')::text
114
+ AS preview_expires_at
115
+ FROM authority`, [this.#options.previewTtlMs]);
116
+ const timestamp = authority.rows[0];
117
+ if (timestamp === undefined)
118
+ throw new PlatformAccountResetPreviewError('operation_conflict');
119
+ const local = await this.#inspectLocal(connection, request, operationId);
120
+ return {
121
+ local,
122
+ createdAt: timestamp.created_at,
123
+ previewExpiresAt: timestamp.preview_expires_at,
124
+ };
125
+ }, this.#transactionOptions(PLATFORM_ACCOUNT_RESET_PREVIEW_TABLES));
126
+ }
127
+ async #captureUsability(evidence, lockTables, deadline) {
128
+ return runPlatformAuthInventorySourceFenceTransaction(this.#pool, async (connection) => {
129
+ await this.#assertSourceFence(connection);
130
+ const stored = await this.#loadStoredSnapshot(connection, evidence);
131
+ await lockPlatformAuthInventorySourceFenceTargets(connection, stored.targetRows.map((row) => row.principal_id));
132
+ const local = await this.#inspectLocal(connection, stored.request, evidence.operationId, true);
133
+ return { ...stored, local };
134
+ }, this.#transactionOptions(lockTables, deadline));
135
+ }
136
+ #inspectLocal(connection, request, operationId, ignoreCurrentOperation = false) {
137
+ return inspectPlatformAccountResetLocalEvidence(connection, request, operationId, {
138
+ sourceAvailability: this.#options.sourceAvailability,
139
+ googleRealm: this.#options.googleRealm,
140
+ workosRealm: this.#options.workosRealm,
141
+ releaseSha: this.#options.releaseSha,
142
+ excludedSubjects: this.#options.excludedSubjects,
143
+ ignoreCurrentOperation,
144
+ });
145
+ }
146
+ async #readRemote(local, dispatchDeadline) {
147
+ const providerTimeoutMs = dispatchDeadline === undefined
148
+ ? this.#options.providerTimeoutMs
149
+ : remainingPlatformAccountResetDispatchMilliseconds(dispatchDeadline, this.#options.providerTimeoutMs);
150
+ const controller = new AbortController();
151
+ const deadline = new Date(Date.now() + providerTimeoutMs);
152
+ let timeout;
153
+ try {
154
+ timeout = setTimeout(() => controller.abort(new DOMException('account reset provider deadline exceeded', 'AbortError')), providerTimeoutMs);
155
+ return await loadPlatformAccountResetWorkosEvidence(local.normalizedContacts, this.#options.directory, this.#options.workosRealm, { signal: controller.signal, deadline });
156
+ }
157
+ finally {
158
+ if (timeout !== undefined)
159
+ clearTimeout(timeout);
160
+ }
161
+ }
162
+ async #loadStoredSnapshot(connection, evidence) {
163
+ const operation = await connection.query(`SELECT lifecycle, release_sha, rollout_generation::text, workos_realm,
164
+ source_epoch::text, preview_checksum, target_set_fingerprint,
165
+ request_fingerprint, safe_result, preview_expires_at, created_at
166
+ FROM platform_account_reset_operations
167
+ WHERE operation_id = $1
168
+ AND preview_expires_at > clock_timestamp()
169
+ AND preview_expires_at =
170
+ created_at + $2::bigint * interval '1 millisecond'
171
+ FOR SHARE`, [evidence.operationId, this.#options.previewTtlMs]);
172
+ const stored = operation.rows[0];
173
+ if (stored === undefined || stored.lifecycle !== 'previewed')
174
+ throw new PlatformAccountResetPreviewError('operation_conflict');
175
+ if (stored.release_sha !== evidence.releaseSha ||
176
+ evidence.releaseSha !== this.#options.releaseSha)
177
+ throw new PlatformAccountResetPreviewError('release_mismatch');
178
+ if (Number(stored.rollout_generation) !== evidence.expectedGeneration)
179
+ throw new PlatformAccountResetPreviewError('generation_mismatch');
180
+ if (evidence.previewChecksum === null || stored.preview_checksum !== evidence.previewChecksum)
181
+ throw new PlatformAccountResetPreviewError('operation_conflict');
182
+ if (stored.workos_realm !== this.#options.workosRealm)
183
+ throw new PlatformAccountResetPreviewError('operation_conflict');
184
+ const previewExpiresAt = new Date(stored.preview_expires_at);
185
+ const createdAt = new Date(stored.created_at);
186
+ if (!Number.isFinite(previewExpiresAt.getTime()) ||
187
+ !Number.isFinite(createdAt.getTime()) ||
188
+ previewExpiresAt.getTime() - createdAt.getTime() !== this.#options.previewTtlMs)
189
+ throw new PlatformAccountResetPreviewError('operation_conflict');
190
+ const targetRows = await connection.query(`SELECT principal_id, source_snapshot_fingerprint
191
+ FROM platform_account_reset_targets
192
+ WHERE operation_id = $1 AND lifecycle = 'previewed'
193
+ ORDER BY principal_id
194
+ FOR SHARE`, [evidence.operationId]);
195
+ if (targetRows.rows.length !== 3)
196
+ throw new PlatformAccountResetPreviewError('operation_conflict');
197
+ const currentEpoch = Number(await readPlatformAuthInventorySourceEpoch(connection));
198
+ if (currentEpoch !== Number(stored.source_epoch))
199
+ throw new PlatformAccountResetPreviewError('source_epoch_mismatch');
200
+ const request = {
201
+ schemaVersion: 1,
202
+ targetSet: {
203
+ schemaVersion: 1,
204
+ principalIds: targetRows.rows.map((row) => row.principal_id),
205
+ },
206
+ releaseSha: stored.release_sha,
207
+ expectedGeneration: Number(stored.rollout_generation),
208
+ sourceEpoch: Number(stored.source_epoch),
209
+ workosRealm: stored.workos_realm,
210
+ };
211
+ return {
212
+ stored,
213
+ targetRows: targetRows.rows,
214
+ request,
215
+ previewExpiresAt,
216
+ fingerprint: sha256Canonical({
217
+ schemaVersion: 1,
218
+ label: 'platform_account_reset_stored_preview',
219
+ stored: {
220
+ ...stored,
221
+ preview_expires_at: previewExpiresAt.toISOString(),
222
+ created_at: createdAt.toISOString(),
223
+ },
224
+ targetRows: targetRows.rows,
225
+ }),
226
+ };
227
+ }
228
+ async #assertSourceFence(connection) {
229
+ const sources = new PostgresPlatformAuthLegacyInventorySources({
230
+ googleRealm: this.#options.googleRealm,
231
+ sourceAvailability: this.#options.sourceAvailability,
232
+ excludedSubjects: this.#options.excludedSubjects,
233
+ });
234
+ await sources.assertManifest(connection);
235
+ await assertPlatformAuthInventorySourceFence(connection, this.#options.sourceAvailability);
236
+ }
237
+ #assertSameLocalEvidence(first, second) {
238
+ if (first.evidenceFingerprint !== second.evidenceFingerprint)
239
+ throw new PlatformAccountResetPreviewError('operation_conflict');
240
+ }
241
+ #assertStoredInspection(stored, inspection) {
242
+ if (inspection.result.previewChecksum !== stored.stored.preview_checksum ||
243
+ inspection.result.targetSetFingerprint !== stored.stored.target_set_fingerprint ||
244
+ inspection.result.requestFingerprint !== stored.stored.request_fingerprint)
245
+ throw new PlatformAccountResetPreviewError('operation_conflict');
246
+ for (const row of stored.targetRows) {
247
+ if (inspection.targetSnapshots.get(row.principal_id) !== row.source_snapshot_fingerprint)
248
+ throw new PlatformAccountResetPreviewError('operation_conflict');
249
+ }
250
+ }
251
+ async #assertDatabaseDeadline(connection, previewExpiresAt) {
252
+ const live = await connection.query('SELECT $1::timestamptz > clock_timestamp() AS live', [previewExpiresAt]);
253
+ if (live.rows[0]?.live !== true)
254
+ throw new PlatformAccountResetPreviewError('operation_conflict');
255
+ }
256
+ #transactionOptions(lockTables, deadline) {
257
+ const timeout = deadline === undefined
258
+ ? this.#options.localCaptureTimeoutMs
259
+ : remainingPlatformAccountResetDispatchMilliseconds(deadline, this.#options.localCaptureTimeoutMs);
260
+ return {
261
+ lockTables,
262
+ lockTimeoutMs: timeout,
263
+ statementTimeoutMs: timeout,
264
+ };
265
+ }
266
+ }
267
+ function validTimeout(value) {
268
+ return value !== undefined && Number.isFinite(value) && value > 0
269
+ ? Math.floor(value)
270
+ : DEFAULT_PROVIDER_TIMEOUT_MS;
271
+ }
272
+ function validLocalCaptureTimeout(value) {
273
+ return value !== undefined && Number.isSafeInteger(value) && value > 0
274
+ ? Math.min(value, MAX_LOCAL_CAPTURE_TIMEOUT_MS)
275
+ : DEFAULT_LOCAL_CAPTURE_TIMEOUT_MS;
276
+ }
277
+ function validPreviewTtl(value) {
278
+ return value !== undefined && Number.isSafeInteger(value) && value > 0 ? value : PREVIEW_TTL_MS;
279
+ }
280
+ function validTimestamp(value) {
281
+ const timestamp = new Date(value);
282
+ if (!Number.isFinite(timestamp.getTime()))
283
+ throw new PlatformAccountResetPreviewError('operation_conflict');
284
+ return timestamp;
285
+ }
286
+ //# sourceMappingURL=platform-account-reset-preview-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-preview-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { PlatformAccountResetBlockerCode, PlatformAccountResetResult } from './platform-account-reset.js';
2
+ import type { PlatformAccountResetCleanupResource } from './platform-account-reset-ownership-postgres.js';
3
+ import type { PlatformAccountResetWorkosEvidence } from './platform-account-reset-preview-evidence-postgres.js';
4
+ import type { PlatformAccountResetLocalInspection } from './platform-account-reset-preview-local-postgres.js';
5
+ export interface PlatformAccountResetPreviewResult extends PlatformAccountResetResult {
6
+ readonly workosRealmFingerprint: string;
7
+ readonly previewExpiresAt: string;
8
+ }
9
+ export declare class PlatformAccountResetPreviewError extends Error {
10
+ readonly code: PlatformAccountResetBlockerCode;
11
+ constructor(code: PlatformAccountResetBlockerCode);
12
+ }
13
+ export interface PlatformAccountResetFrozenInspection {
14
+ readonly result: PlatformAccountResetPreviewResult;
15
+ readonly safeResult: PlatformAccountResetResult;
16
+ readonly targetSnapshots: ReadonlyMap<string, string>;
17
+ readonly cleanupResources: readonly PlatformAccountResetCleanupResource[];
18
+ readonly cleanupSetFingerprint: string;
19
+ }
20
+ export declare function combinePlatformAccountResetEvidence(local: PlatformAccountResetLocalInspection, remote: PlatformAccountResetWorkosEvidence, previewExpiresAt: Date): PlatformAccountResetFrozenInspection;
21
+ //# sourceMappingURL=platform-account-reset-preview-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-preview-result.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAC;AAChH,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,oDAAoD,CAAC;AAE9G,MAAM,WAAW,iCAAkC,SAAQ,0BAA0B;IACnF,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;gBAEnC,IAAI,EAAE,+BAA+B;CAKlD;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,MAAM,EAAE,iCAAiC,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,mCAAmC,EAAE,CAAC;IAC1E,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,mCAAmC,EAC1C,MAAM,EAAE,kCAAkC,EAC1C,gBAAgB,EAAE,IAAI,GACrB,oCAAoC,CA4EtC"}
@@ -0,0 +1,81 @@
1
+ import { canonicalJson, sha256Canonical } from './platform-account-reset-fingerprint.js';
2
+ export class PlatformAccountResetPreviewError extends Error {
3
+ code;
4
+ constructor(code) {
5
+ super(`Platform account-reset preview rejected: ${code}`);
6
+ this.name = 'PlatformAccountResetPreviewError';
7
+ this.code = code;
8
+ }
9
+ }
10
+ export function combinePlatformAccountResetEvidence(local, remote, previewExpiresAt) {
11
+ const blockers = new Map(local.blockers.map((entry) => [entry.code, entry.count]));
12
+ if (remote.providerUnavailableCount !== 0)
13
+ blockers.set('provider_cleanup_pending', remote.providerUnavailableCount);
14
+ if (remote.conflictCount !== 0)
15
+ blockers.set('workos_user_conflict', remote.conflictCount);
16
+ const cleanupResources = [...local.cleanupResources, ...remote.resources].sort((left, right) => canonicalJson(left).localeCompare(canonicalJson(right)));
17
+ const cleanupSetFingerprint = sha256Canonical({
18
+ schemaVersion: 1,
19
+ label: 'platform_account_reset_cleanup_set',
20
+ resources: cleanupResources,
21
+ });
22
+ const targetSnapshots = new Map();
23
+ for (const target of local.targets) {
24
+ targetSnapshots.set(target, sha256Canonical({
25
+ ...(local.targetEvidence.get(target) ?? {}),
26
+ workos: remote.resources.filter((resource) => resource.locator.principalId === target),
27
+ }));
28
+ }
29
+ const eligibilityFingerprint = sha256Canonical({
30
+ schemaVersion: 1,
31
+ label: 'platform_account_reset_eligibility',
32
+ targetSnapshots: [...targetSnapshots],
33
+ });
34
+ const targetSetFingerprint = sha256Canonical({
35
+ schemaVersion: 1,
36
+ label: 'platform_account_reset_target_set',
37
+ principalIds: local.targets,
38
+ eligibilityFingerprint,
39
+ });
40
+ const previewChecksum = sha256Canonical({
41
+ schemaVersion: 1,
42
+ releaseSha: local.request.releaseSha,
43
+ rolloutGeneration: local.request.expectedGeneration,
44
+ workosRealmFingerprint: local.workosRealmFingerprint,
45
+ sourceEpoch: local.request.sourceEpoch,
46
+ targetSetFingerprint,
47
+ ownershipFingerprint: local.ownershipFingerprint,
48
+ cleanupSetFingerprint,
49
+ });
50
+ const blockerList = [...blockers]
51
+ .map(([code, count]) => ({ code, count }))
52
+ .sort((left, right) => left.code.localeCompare(right.code));
53
+ const safeResult = {
54
+ schemaVersion: 1,
55
+ operationId: local.operationId,
56
+ lifecycle: 'previewed',
57
+ releaseSha: local.request.releaseSha,
58
+ rolloutGeneration: local.request.expectedGeneration,
59
+ sourceEpoch: local.request.sourceEpoch,
60
+ previewChecksum,
61
+ targetSetFingerprint,
62
+ requestFingerprint: local.requestFingerprint,
63
+ counts: {
64
+ ...local.counts,
65
+ providerObjectCount: local.counts.providerObjectCount + remote.resources.length,
66
+ },
67
+ blockers: blockerList,
68
+ };
69
+ return {
70
+ safeResult,
71
+ result: {
72
+ ...safeResult,
73
+ workosRealmFingerprint: local.workosRealmFingerprint,
74
+ previewExpiresAt: previewExpiresAt.toISOString(),
75
+ },
76
+ targetSnapshots,
77
+ cleanupResources,
78
+ cleanupSetFingerprint,
79
+ };
80
+ }
81
+ //# sourceMappingURL=platform-account-reset-preview-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-account-reset-preview-result.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-result.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAUzF,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IAChD,IAAI,CAAkC;IAE/C,YAAY,IAAqC;QAC/C,KAAK,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAUD,MAAM,UAAU,mCAAmC,CACjD,KAA0C,EAC1C,MAA0C,EAC1C,gBAAsB;IAEtB,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CACzD,CAAC;IACF,IAAI,MAAM,CAAC,wBAAwB,KAAK,CAAC;QACvC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC5E,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC;QAAE,QAAQ,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3F,MAAM,gBAAgB,GAAG,CAAC,GAAG,KAAK,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC7F,aAAa,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACxD,CAAC;IACF,MAAM,qBAAqB,GAAG,eAAe,CAAC;QAC5C,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,oCAAoC;QAC3C,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,eAAe,CAAC,GAAG,CACjB,MAAM,EACN,eAAe,CAAC;YACd,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3C,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC;SACvF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,sBAAsB,GAAG,eAAe,CAAC;QAC7C,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,oCAAoC;QAC3C,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,eAAe,CAAC;QAC3C,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,mCAAmC;QAC1C,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,sBAAsB;KACvB,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,eAAe,CAAC;QACtC,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;QACpC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB;QACnD,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;QACpD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;QACtC,oBAAoB;QACpB,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,qBAAqB;KACtB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,CAAC,GAAG,QAAQ,CAAC;SAC9B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACzC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAM,UAAU,GAA+B;QAC7C,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,SAAS,EAAE,WAAW;QACtB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;QACpC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,kBAAkB;QACnD,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;QACtC,eAAe;QACf,oBAAoB;QACpB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,MAAM,EAAE;YACN,GAAG,KAAK,CAAC,MAAM;YACf,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM;SAChF;QACD,QAAQ,EAAE,WAAW;KACtB,CAAC;IACF,OAAO;QACL,UAAU;QACV,MAAM,EAAE;YACN,GAAG,UAAU;YACb,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,gBAAgB,EAAE,gBAAgB,CAAC,WAAW,EAAE;SACjD;QACD,eAAe;QACf,gBAAgB;QAChB,qBAAqB;KACtB,CAAC;AACJ,CAAC"}