@noodleseed/one 0.63.0 → 0.64.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 (440) hide show
  1. package/dist/auth-discovery.d.ts +17 -0
  2. package/dist/auth-discovery.d.ts.map +1 -0
  3. package/dist/auth-discovery.js +54 -0
  4. package/dist/auth-discovery.js.map +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +3 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/catalog-data-platform-auth.d.ts +7 -0
  9. package/dist/commands/catalog-data-platform-auth.d.ts.map +1 -0
  10. package/dist/commands/catalog-data-platform-auth.js +47 -0
  11. package/dist/commands/catalog-data-platform-auth.js.map +1 -0
  12. package/dist/commands/catalog.d.ts.map +1 -1
  13. package/dist/commands/catalog.js +6 -3
  14. package/dist/commands/catalog.js.map +1 -1
  15. package/dist/commands/docs-mcp.d.ts +3 -3
  16. package/dist/commands/docs-mcp.js +3 -3
  17. package/dist/commands/platform-auth-finalization-args.d.ts +13 -0
  18. package/dist/commands/platform-auth-finalization-args.d.ts.map +1 -0
  19. package/dist/commands/platform-auth-finalization-args.js +29 -0
  20. package/dist/commands/platform-auth-finalization-args.js.map +1 -0
  21. package/dist/commands/platform-auth-migration-args.d.ts +71 -0
  22. package/dist/commands/platform-auth-migration-args.d.ts.map +1 -0
  23. package/dist/commands/platform-auth-migration-args.js +320 -0
  24. package/dist/commands/platform-auth-migration-args.js.map +1 -0
  25. package/dist/commands/platform-auth-migration-ops.d.ts +3 -0
  26. package/dist/commands/platform-auth-migration-ops.d.ts.map +1 -0
  27. package/dist/commands/platform-auth-migration-ops.js +369 -0
  28. package/dist/commands/platform-auth-migration-ops.js.map +1 -0
  29. package/dist/commands/project-setup.js +1 -1
  30. package/dist/commands/project-setup.js.map +1 -1
  31. package/dist/config.d.ts +4 -4
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/control-plane.d.ts +0 -11
  34. package/dist/control-plane.d.ts.map +1 -1
  35. package/dist/control-plane.js +1 -8
  36. package/dist/control-plane.js.map +1 -1
  37. package/dist/doctor.d.ts.map +1 -1
  38. package/dist/doctor.js +3 -5
  39. package/dist/doctor.js.map +1 -1
  40. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  41. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  42. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  43. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  44. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  45. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  46. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts +2 -2
  47. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts.map +1 -1
  48. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js +1 -1
  49. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +1 -1
  50. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  51. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts +26 -0
  52. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.d.ts.map +1 -1
  53. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js +105 -1
  54. package/node_modules/@noodle-borg/service/dist/auth/deploy-gate.js.map +1 -1
  55. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.d.ts +25 -0
  56. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.d.ts.map +1 -0
  57. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.js +99 -0
  58. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.js.map +1 -0
  59. package/node_modules/@noodle-borg/service/dist/index.d.ts +15 -0
  60. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  61. package/node_modules/@noodle-borg/service/dist/index.js +15 -0
  62. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  63. package/node_modules/@noodle-borg/service/dist/main.js +112 -19
  64. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  65. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts +1 -1
  66. package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
  67. package/node_modules/@noodle-borg/service/dist/oauth/app.js +9 -1
  68. package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
  69. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.d.ts +24 -0
  70. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.d.ts.map +1 -0
  71. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.js +88 -0
  72. package/node_modules/@noodle-borg/service/dist/oauth/authorization-initiation.js.map +1 -0
  73. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts +2 -0
  74. package/node_modules/@noodle-borg/service/dist/oauth/branding.d.ts.map +1 -1
  75. package/node_modules/@noodle-borg/service/dist/oauth/branding.js +3 -2
  76. package/node_modules/@noodle-borg/service/dist/oauth/branding.js.map +1 -1
  77. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +1 -1
  78. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -1
  79. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.d.ts +5 -0
  80. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.d.ts.map +1 -0
  81. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.js +19 -0
  82. package/node_modules/@noodle-borg/service/dist/oauth/consent-token.js.map +1 -0
  83. package/node_modules/@noodle-borg/service/dist/oauth/consent.js +1 -1
  84. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts.map +1 -1
  85. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js +216 -28
  86. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js.map +1 -1
  87. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.d.ts +13 -0
  88. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.d.ts.map +1 -0
  89. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.js +62 -0
  90. package/node_modules/@noodle-borg/service/dist/oauth/first-party-client.js.map +1 -0
  91. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts +4 -0
  92. package/node_modules/@noodle-borg/service/dist/oauth/metadata.d.ts.map +1 -0
  93. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js +20 -0
  94. package/node_modules/@noodle-borg/service/dist/oauth/metadata.js.map +1 -0
  95. package/node_modules/@noodle-borg/service/dist/oauth/paths.d.ts.map +1 -1
  96. package/node_modules/@noodle-borg/service/dist/oauth/paths.js +2 -0
  97. package/node_modules/@noodle-borg/service/dist/oauth/paths.js.map +1 -1
  98. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.d.ts +15 -0
  99. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.d.ts.map +1 -0
  100. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js +58 -0
  101. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.d.ts +8 -0
  103. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.js +49 -0
  105. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-postgres.js.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.d.ts +3 -0
  107. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.d.ts.map +1 -0
  108. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.js +7 -0
  109. package/node_modules/@noodle-borg/service/dist/oauth/postgres-time.js.map +1 -0
  110. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts +20 -25
  111. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  112. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +105 -196
  113. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  114. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts +36 -0
  115. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +157 -0
  117. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.d.ts +4 -0
  119. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.d.ts.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js +110 -0
  121. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres-schema.js.map +1 -0
  122. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts +7 -4
  123. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
  124. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +63 -120
  125. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
  126. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +19 -6
  127. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
  128. package/node_modules/@noodle-borg/service/dist/oauth/store.js +24 -2
  129. package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/oauth/tokens.d.ts +1 -1
  131. package/node_modules/@noodle-borg/service/dist/oauth/tokens.d.ts.map +1 -1
  132. package/node_modules/@noodle-borg/service/dist/oauth/tokens.js +1 -1
  133. package/node_modules/@noodle-borg/service/dist/oauth/tokens.js.map +1 -1
  134. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.d.ts +4 -0
  135. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.d.ts.map +1 -0
  136. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.js +8 -0
  137. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-availability.js.map +1 -0
  138. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts +34 -0
  139. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.d.ts.map +1 -0
  140. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js +109 -0
  141. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-handler.js.map +1 -0
  142. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts +22 -0
  143. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.d.ts.map +1 -0
  144. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js +30 -0
  145. package/node_modules/@noodle-borg/service/dist/oauth/upstream-callback-support.js.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.d.ts +21 -0
  147. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.d.ts.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +56 -0
  149. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -0
  150. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.d.ts +30 -0
  151. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.d.ts.map +1 -0
  152. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js +94 -0
  153. package/node_modules/@noodle-borg/service/dist/oauth/upstream-federation.js.map +1 -0
  154. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.d.ts +33 -0
  155. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.d.ts.map +1 -0
  156. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.js +27 -0
  157. package/node_modules/@noodle-borg/service/dist/oauth/upstream-human.js.map +1 -0
  158. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.d.ts +13 -0
  159. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.d.ts.map +1 -0
  160. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.js +63 -0
  161. package/node_modules/@noodle-borg/service/dist/oauth/upstream-provider-choice.js.map +1 -0
  162. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.d.ts +20 -0
  163. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.d.ts.map +1 -0
  164. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.js +40 -0
  165. package/node_modules/@noodle-borg/service/dist/oauth/upstream-rollout-store.js.map +1 -0
  166. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.d.ts +115 -0
  167. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.d.ts.map +1 -0
  168. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.js +310 -0
  169. package/node_modules/@noodle-borg/service/dist/oauth/workos-events.js.map +1 -0
  170. package/node_modules/@noodle-borg/service/dist/oauth/workos.d.ts +65 -0
  171. package/node_modules/@noodle-borg/service/dist/oauth/workos.d.ts.map +1 -0
  172. package/node_modules/@noodle-borg/service/dist/oauth/workos.js +85 -0
  173. package/node_modules/@noodle-borg/service/dist/oauth/workos.js.map +1 -0
  174. package/node_modules/@noodle-borg/service/dist/options.d.ts +11 -2
  175. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  176. package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts +2 -0
  177. package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts.map +1 -1
  178. package/node_modules/@noodle-borg/service/dist/personal-workspace.js +8 -2
  179. package/node_modules/@noodle-borg/service/dist/personal-workspace.js.map +1 -1
  180. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts +67 -0
  181. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.d.ts.map +1 -0
  182. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.js +54 -0
  183. package/node_modules/@noodle-borg/service/dist/platform-auth-configuration.js.map +1 -0
  184. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.d.ts +25 -0
  185. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.d.ts.map +1 -0
  186. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.js +61 -0
  187. package/node_modules/@noodle-borg/service/dist/platform-auth-frozen-candidate-postgres.js.map +1 -0
  188. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.d.ts +32 -0
  189. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.d.ts.map +1 -0
  190. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js +231 -0
  191. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-legacy-sources-postgres.js.map +1 -0
  192. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.d.ts +29 -0
  193. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.d.ts.map +1 -0
  194. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.js +350 -0
  195. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-postgres.js.map +1 -0
  196. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.d.ts +50 -0
  197. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.d.ts.map +1 -0
  198. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js +239 -0
  199. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-local-subjects-postgres.js.map +1 -0
  200. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.d.ts +66 -0
  201. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.d.ts.map +1 -0
  202. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.js +77 -0
  203. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-paging.js.map +1 -0
  204. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.d.ts +40 -0
  205. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.d.ts.map +1 -0
  206. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.js +355 -0
  207. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-postgres.js.map +1 -0
  208. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.d.ts +41 -0
  209. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.d.ts.map +1 -0
  210. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.js +230 -0
  211. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-progress-postgres.js.map +1 -0
  212. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts +20 -0
  213. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.d.ts.map +1 -0
  214. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js +126 -0
  215. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-source-fence-postgres.js.map +1 -0
  216. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.d.ts +8 -0
  217. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.d.ts.map +1 -0
  218. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.js +86 -0
  219. package/node_modules/@noodle-borg/service/dist/platform-auth-inventory-sources.js.map +1 -0
  220. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.d.ts +42 -0
  221. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.d.ts.map +1 -0
  222. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.js +368 -0
  223. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-postgres.js.map +1 -0
  224. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.d.ts +86 -0
  225. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.d.ts.map +1 -0
  226. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.js +474 -0
  227. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-runs-postgres.js.map +1 -0
  228. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.d.ts +17 -0
  229. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.d.ts.map +1 -0
  230. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.js +435 -0
  231. package/node_modules/@noodle-borg/service/dist/platform-auth-migration-schema.js.map +1 -0
  232. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.d.ts +202 -0
  233. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.d.ts.map +1 -0
  234. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.js +313 -0
  235. package/node_modules/@noodle-borg/service/dist/platform-auth-migration.js.map +1 -0
  236. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.d.ts +48 -0
  237. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.d.ts.map +1 -0
  238. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.js +158 -0
  239. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-batches.js.map +1 -0
  240. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.d.ts +43 -0
  241. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.d.ts.map +1 -0
  242. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.js +92 -0
  243. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-effects.js.map +1 -0
  244. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.d.ts +31 -0
  245. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.d.ts.map +1 -0
  246. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.js +94 -0
  247. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-operation-postgres.js.map +1 -0
  248. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.d.ts +102 -0
  249. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.d.ts.map +1 -0
  250. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.js +2 -0
  251. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-ports.js.map +1 -0
  252. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.d.ts +17 -0
  253. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.d.ts.map +1 -0
  254. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.js +367 -0
  255. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-postgres.js.map +1 -0
  256. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.d.ts +10 -0
  257. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.d.ts.map +1 -0
  258. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.js +37 -0
  259. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-remote-status.js.map +1 -0
  260. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.d.ts +36 -0
  261. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.d.ts.map +1 -0
  262. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.js +156 -0
  263. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-rollout.js.map +1 -0
  264. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.d.ts +4 -0
  265. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.d.ts.map +1 -0
  266. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.js +162 -0
  267. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-schema.js.map +1 -0
  268. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.d.ts +92 -0
  269. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.d.ts.map +1 -0
  270. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.js +271 -0
  271. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-postgres.js.map +1 -0
  272. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.d.ts +13 -0
  273. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.d.ts.map +1 -0
  274. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.js +67 -0
  275. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-state-support.js.map +1 -0
  276. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.d.ts +15 -0
  277. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.d.ts.map +1 -0
  278. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.js +47 -0
  279. package/node_modules/@noodle-borg/service/dist/platform-auth-operator-support.js.map +1 -0
  280. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +1569 -0
  281. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts.map +1 -0
  282. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.js +274 -0
  283. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.js.map +1 -0
  284. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.d.ts +41 -0
  285. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.d.ts.map +1 -0
  286. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.js +163 -0
  287. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres-support.js.map +1 -0
  288. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.d.ts +34 -0
  289. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.d.ts.map +1 -0
  290. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.js +274 -0
  291. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-postgres.js.map +1 -0
  292. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.d.ts +3 -0
  293. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.d.ts.map +1 -0
  294. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.js +120 -0
  295. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification-schema.js.map +1 -0
  296. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.d.ts +79 -0
  297. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.d.ts.map +1 -0
  298. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.js +88 -0
  299. package/node_modules/@noodle-borg/service/dist/platform-auth-remote-verification.js.map +1 -0
  300. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.d.ts +6 -0
  301. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.d.ts.map +1 -0
  302. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.js +38 -0
  303. package/node_modules/@noodle-borg/service/dist/platform-auth-rollback-guard.js.map +1 -0
  304. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.d.ts +61 -0
  305. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.d.ts.map +1 -0
  306. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.js +292 -0
  307. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-postgres.js.map +1 -0
  308. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.d.ts +19 -0
  309. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.d.ts.map +1 -0
  310. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.js +121 -0
  311. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-readiness-postgres.js.map +1 -0
  312. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts +119 -0
  313. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.d.ts.map +1 -0
  314. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.js +194 -0
  315. package/node_modules/@noodle-borg/service/dist/platform-auth-rollout-support.js.map +1 -0
  316. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts +36 -0
  317. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.d.ts.map +1 -0
  318. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js +93 -0
  319. package/node_modules/@noodle-borg/service/dist/platform-auth-runtime.js.map +1 -0
  320. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts +32 -0
  321. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.d.ts.map +1 -0
  322. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js +68 -0
  323. package/node_modules/@noodle-borg/service/dist/platform-auth-service-bootstrap.js.map +1 -0
  324. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.d.ts +36 -0
  325. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.d.ts.map +1 -0
  326. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.js +92 -0
  327. package/node_modules/@noodle-borg/service/dist/platform-identity-maintenance.js.map +1 -0
  328. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts +23 -0
  329. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.d.ts.map +1 -0
  330. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js +231 -0
  331. package/node_modules/@noodle-borg/service/dist/platform-identity-postgres.js.map +1 -0
  332. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts +13 -0
  333. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts.map +1 -0
  334. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js +399 -0
  335. package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js.map +1 -0
  336. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.d.ts +18 -0
  337. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.d.ts.map +1 -0
  338. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.js +25 -0
  339. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-enqueue.js.map +1 -0
  340. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.d.ts +15 -0
  341. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.d.ts.map +1 -0
  342. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.js +74 -0
  343. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-evidence-postgres.js.map +1 -0
  344. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts +19 -0
  345. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.d.ts.map +1 -0
  346. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js +249 -0
  347. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-postgres.js.map +1 -0
  348. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.d.ts +34 -0
  349. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.d.ts.map +1 -0
  350. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js +275 -0
  351. package/node_modules/@noodle-borg/service/dist/platform-identity-sync-recovery-postgres.js.map +1 -0
  352. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts +98 -0
  353. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.d.ts.map +1 -0
  354. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js +179 -0
  355. package/node_modules/@noodle-borg/service/dist/platform-identity-sync.js.map +1 -0
  356. package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts +110 -0
  357. package/node_modules/@noodle-borg/service/dist/platform-identity.d.ts.map +1 -0
  358. package/node_modules/@noodle-borg/service/dist/platform-identity.js +312 -0
  359. package/node_modules/@noodle-borg/service/dist/platform-identity.js.map +1 -0
  360. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.d.ts +6 -0
  361. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.d.ts.map +1 -0
  362. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js +36 -0
  363. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js.map +1 -0
  364. package/node_modules/@noodle-borg/service/dist/routes/billing-read.d.ts.map +1 -1
  365. package/node_modules/@noodle-borg/service/dist/routes/billing-read.js +3 -9
  366. package/node_modules/@noodle-borg/service/dist/routes/billing-read.js.map +1 -1
  367. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.d.ts.map +1 -1
  368. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js +3 -3
  369. package/node_modules/@noodle-borg/service/dist/routes/billing-stripe.js.map +1 -1
  370. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.d.ts.map +1 -1
  371. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.js +3 -1
  372. package/node_modules/@noodle-borg/service/dist/routes/github-run-claim.js.map +1 -1
  373. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.d.ts +8 -0
  374. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.d.ts.map +1 -0
  375. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.js +40 -0
  376. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration-dispatch.js.map +1 -0
  377. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.d.ts +13 -0
  378. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.d.ts.map +1 -0
  379. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.js +158 -0
  380. package/node_modules/@noodle-borg/service/dist/routes/platform-auth-migration.js.map +1 -0
  381. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +21 -3
  382. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
  383. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  384. package/node_modules/@noodle-borg/service/dist/serve.js +61 -146
  385. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  386. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +1 -0
  387. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -1
  388. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +3 -0
  389. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -1
  390. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  391. package/node_modules/@noodle-borg/service/dist/service.js +17 -29
  392. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  393. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  394. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +60 -19
  395. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  396. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +1 -2
  397. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  398. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +0 -40
  399. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  400. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.d.ts +5 -0
  401. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.d.ts.map +1 -0
  402. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.js +176 -0
  403. package/node_modules/@noodle-borg/service/dist/store/postgres-personal-workspace.js.map +1 -0
  404. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts +2 -0
  405. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  406. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +43 -1
  407. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  408. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +2 -1
  409. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
  410. package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts +71 -0
  411. package/node_modules/@noodle-borg/service/dist/workos-directory.d.ts.map +1 -0
  412. package/node_modules/@noodle-borg/service/dist/workos-directory.js +175 -0
  413. package/node_modules/@noodle-borg/service/dist/workos-directory.js.map +1 -0
  414. package/node_modules/@noodle-borg/service/package.json +1 -0
  415. package/node_modules/@workos-inc/node/LICENSE +21 -0
  416. package/node_modules/@workos-inc/node/README.md +140 -0
  417. package/node_modules/@workos-inc/node/lib/factory-B8vTFojy.d.cts +9727 -0
  418. package/node_modules/@workos-inc/node/lib/factory-B8vTFojy.d.mts +9727 -0
  419. package/node_modules/@workos-inc/node/lib/factory-CoKXdPX2.cjs +8426 -0
  420. package/node_modules/@workos-inc/node/lib/factory-CoKXdPX2.cjs.map +1 -0
  421. package/node_modules/@workos-inc/node/lib/factory-MKPb5Egh.mjs +8241 -0
  422. package/node_modules/@workos-inc/node/lib/factory-MKPb5Egh.mjs.map +1 -0
  423. package/node_modules/@workos-inc/node/lib/index.cjs +449 -0
  424. package/node_modules/@workos-inc/node/lib/index.cjs.map +1 -0
  425. package/node_modules/@workos-inc/node/lib/index.d.cts +478 -0
  426. package/node_modules/@workos-inc/node/lib/index.d.mts +478 -0
  427. package/node_modules/@workos-inc/node/lib/index.mjs +394 -0
  428. package/node_modules/@workos-inc/node/lib/index.mjs.map +1 -0
  429. package/node_modules/@workos-inc/node/lib/index.worker.cjs +60 -0
  430. package/node_modules/@workos-inc/node/lib/index.worker.cjs.map +1 -0
  431. package/node_modules/@workos-inc/node/lib/index.worker.d.cts +16 -0
  432. package/node_modules/@workos-inc/node/lib/index.worker.d.mts +16 -0
  433. package/node_modules/@workos-inc/node/lib/index.worker.mjs +35 -0
  434. package/node_modules/@workos-inc/node/lib/index.worker.mjs.map +1 -0
  435. package/node_modules/@workos-inc/node/lib/webapi-BgpV54gi.mjs +3224 -0
  436. package/node_modules/@workos-inc/node/lib/webapi-BgpV54gi.mjs.map +1 -0
  437. package/node_modules/@workos-inc/node/lib/webapi-BzGFatFp.cjs +3271 -0
  438. package/node_modules/@workos-inc/node/lib/webapi-BzGFatFp.cjs.map +1 -0
  439. package/node_modules/@workos-inc/node/package.json +96 -0
  440. package/package.json +2 -1
@@ -0,0 +1,50 @@
1
+ import { type PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
2
+ import { type PlatformAuthBlockerCode } from './platform-auth-migration.js';
3
+ import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
4
+ export type InventoryLocalProvenance = 'principal' | 'google_link' | 'google_billing' | 'org_membership' | 'refresh_family' | 'developer_grant' | 'owner_only_deployer' | 'consent_grant' | 'device_authorization' | 'welcome_provisioning';
5
+ export type InventoryLocalExclusionKind = 'non_platform_identity' | 'suspended_principal' | 'suspended_principal_with_authority' | 'workload' | 'synthetic';
6
+ export interface InventoryLocalSubjectEvidence {
7
+ readonly subject: string;
8
+ readonly provenance: Set<InventoryLocalProvenance>;
9
+ principalId?: string;
10
+ realm?: string;
11
+ identityDrift: boolean;
12
+ excludedEvidence: boolean;
13
+ exclusionKind?: InventoryLocalExclusionKind;
14
+ }
15
+ export interface InventoryFrozenCandidate {
16
+ readonly sourceSubject: string;
17
+ readonly sourceRealm: string;
18
+ readonly principalId: string | null;
19
+ readonly normalizedEmail: string | null;
20
+ readonly emailFingerprint: string | null;
21
+ readonly provenance: readonly InventoryLocalProvenance[];
22
+ readonly blockerCodes: readonly PlatformAuthBlockerCode[];
23
+ readonly sourceFingerprint: string;
24
+ readonly candidateFingerprint: string;
25
+ readonly chainEntry: object;
26
+ }
27
+ export interface InventoryFrozenExclusion {
28
+ readonly subjectFingerprint: string;
29
+ readonly kind: InventoryLocalExclusionKind;
30
+ readonly entryFingerprint: string;
31
+ readonly chainEntry: object;
32
+ }
33
+ /** Keyset-pages the union of platform authority roots and explicit non-human/customer exclusions. */
34
+ export declare class PostgresPlatformAuthInventoryLocalSubjects {
35
+ #private;
36
+ constructor(options: {
37
+ readonly googleRealm: string;
38
+ readonly sourceAvailability?: PlatformAuthInventorySourceManifest;
39
+ readonly excludedSubjects: readonly {
40
+ readonly subject: string;
41
+ readonly kind: 'workload' | 'synthetic';
42
+ }[];
43
+ });
44
+ nextBatch(pool: PlatformIdentityQueryable, after: string | undefined, limit: number, snapshotAt: Date | string): Promise<{
45
+ readonly subjects: readonly InventoryLocalSubjectEvidence[];
46
+ readonly hasMore: boolean;
47
+ }>;
48
+ assertManifest(pool: PlatformIdentityQueryable): Promise<void>;
49
+ }
50
+ //# sourceMappingURL=platform-auth-inventory-local-subjects-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-inventory-local-subjects-postgres.d.ts","sourceRoot":"","sources":["../src/platform-auth-inventory-local-subjects-postgres.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,mCAAmC,EACzC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,qBAAqB,GACrB,eAAe,GACf,sBAAsB,GACtB,sBAAsB,CAAC;AAC3B,MAAM,MAAM,2BAA2B,GACnC,uBAAuB,GACvB,qBAAqB,GACrB,oCAAoC,GACpC,UAAU,GACV,WAAW,CAAC;AAChB,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,2BAA2B,CAAC;CAC7C;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AACD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,qGAAqG;AACrG,qBAAa,0CAA0C;;gBAQzC,OAAO,EAAE;QACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,mCAAmC,CAAC;QAClE,QAAQ,CAAC,gBAAgB,EAAE,SAAS;YAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;SACzC,EAAE,CAAC;KACL;IAMK,SAAS,CACb,IAAI,EAAE,yBAAyB,EAC/B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,IAAI,GAAG,MAAM,GACxB,OAAO,CAAC;QACT,QAAQ,CAAC,QAAQ,EAAE,SAAS,6BAA6B,EAAE,CAAC;QAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAC3B,CAAC;IAwFI,cAAc,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA6LrE"}
@@ -0,0 +1,239 @@
1
+ import { assertPlatformAuthInventorySourceFence } from './platform-auth-inventory-source-fence-postgres.js';
2
+ import { PLATFORM_AUTH_INVENTORY_SOURCE_COLUMNS, } from './platform-auth-inventory-sources.js';
3
+ import { PlatformAuthMigrationError, } from './platform-auth-migration.js';
4
+ /** Keyset-pages the union of platform authority roots and explicit non-human/customer exclusions. */
5
+ export class PostgresPlatformAuthInventoryLocalSubjects {
6
+ #googleRealm;
7
+ #manifest;
8
+ #excludedSubjects;
9
+ constructor(options) {
10
+ this.#googleRealm = options.googleRealm;
11
+ this.#manifest = options.sourceAvailability;
12
+ this.#excludedSubjects = options.excludedSubjects;
13
+ }
14
+ async nextBatch(pool, after, limit, snapshotAt) {
15
+ const evidence = new Map();
16
+ const add = (input) => {
17
+ if (input.subject.length === 0)
18
+ return;
19
+ const prior = evidence.get(input.subject) ?? {
20
+ subject: input.subject,
21
+ provenance: new Set(),
22
+ identityDrift: false,
23
+ excludedEvidence: false,
24
+ };
25
+ if (input.provenance !== undefined)
26
+ prior.provenance.add(input.provenance);
27
+ if (prior.principalId === undefined && input.principalId !== undefined)
28
+ prior.principalId = input.principalId;
29
+ if (prior.realm === undefined && input.realm !== undefined)
30
+ prior.realm = input.realm;
31
+ prior.identityDrift ||= input.identityDrift === true;
32
+ prior.excludedEvidence ||= input.excludedEvidence === true;
33
+ const exclusionKind = strongerExclusion(prior.exclusionKind, input.exclusionKind);
34
+ if (exclusionKind !== undefined)
35
+ prior.exclusionKind = exclusionKind;
36
+ evidence.set(input.subject, prior);
37
+ };
38
+ const pageSize = limit + 1;
39
+ const principals = await pool.query(`SELECT link.external_id COLLATE "C" AS subject, link.principal_id, link.realm,
40
+ principal.status,
41
+ (link.disabled_at IS NULL AND link.principal_id = link.external_id
42
+ AND principal.billing_identity_issuer = 'https://accounts.google.com'
43
+ AND principal.billing_subject = link.external_id) AS canonical
44
+ FROM platform_identity_links link
45
+ JOIN platform_principals principal ON principal.principal_id = link.principal_id
46
+ WHERE link.provider = 'google' AND link.realm = $1
47
+ AND link.external_id COLLATE "C" > $2 COLLATE "C"
48
+ ORDER BY subject LIMIT $3`, [this.#googleRealm, after ?? '', pageSize]);
49
+ for (const row of principals.rows) {
50
+ if (row.status === 'suspended') {
51
+ add({ subject: row.subject, exclusionKind: 'suspended_principal' });
52
+ continue;
53
+ }
54
+ add({
55
+ subject: row.subject,
56
+ provenance: 'principal',
57
+ principalId: row.principal_id,
58
+ realm: row.realm,
59
+ identityDrift: !row.canonical,
60
+ });
61
+ add({
62
+ subject: row.subject,
63
+ provenance: 'google_link',
64
+ principalId: row.principal_id,
65
+ realm: row.realm,
66
+ identityDrift: !row.canonical,
67
+ });
68
+ }
69
+ await this.#addConfiguredRoots(pool, after, pageSize, snapshotAt, add);
70
+ await this.#addExcludedIdentities(pool, after, pageSize, snapshotAt, add);
71
+ await this.#addConfiguredExclusions(pool, after, pageSize, add);
72
+ const order = await pool.query(`SELECT value AS subject FROM unnest($1::text[]) AS value
73
+ ORDER BY value COLLATE "C"`, [[...evidence.keys()]]);
74
+ const ordered = order.rows.flatMap((row) => {
75
+ const entry = evidence.get(row.subject);
76
+ return entry === undefined ? [] : [entry];
77
+ });
78
+ const subjects = ordered.slice(0, limit);
79
+ for (const subject of subjects) {
80
+ if (subject.exclusionKind?.startsWith('suspended') && subject.provenance.size > 0)
81
+ subject.exclusionKind = 'suspended_principal_with_authority';
82
+ }
83
+ return { subjects, hasMore: ordered.length > limit };
84
+ }
85
+ async assertManifest(pool) {
86
+ if (this.#manifest === undefined ||
87
+ Object.keys(this.#manifest).length !==
88
+ Object.keys(PLATFORM_AUTH_INVENTORY_SOURCE_COLUMNS).length ||
89
+ Object.keys(PLATFORM_AUTH_INVENTORY_SOURCE_COLUMNS).some((source) => this.#manifest?.[source] !== 'configured' &&
90
+ this.#manifest?.[source] !== 'not_applicable') ||
91
+ new Set(this.#excludedSubjects.map((entry) => entry.subject)).size !==
92
+ this.#excludedSubjects.length)
93
+ throw new PlatformAuthMigrationError('inventory_unavailable');
94
+ for (const [source, expected] of Object.entries(PLATFORM_AUTH_INVENTORY_SOURCE_COLUMNS)) {
95
+ if (this.#manifest[source] !== 'configured')
96
+ continue;
97
+ const columns = await pool.query(`SELECT attribute.attname AS name,
98
+ format_type(attribute.atttypid, attribute.atttypmod) AS type
99
+ FROM pg_attribute attribute
100
+ WHERE attribute.attrelid = to_regclass($1)
101
+ AND attribute.attnum > 0 AND NOT attribute.attisdropped`, [source]);
102
+ const actual = new Map(columns.rows.map((column) => [column.name, column.type]));
103
+ if (columns.rows.length === 0 || expected.some(([name, type]) => actual.get(name) !== type))
104
+ throw new PlatformAuthMigrationError('inventory_unavailable');
105
+ }
106
+ await assertPlatformAuthInventorySourceFence(pool, this.#manifest);
107
+ }
108
+ async #addConfiguredRoots(pool, after, limit, snapshotAt, add) {
109
+ const roots = [
110
+ [
111
+ 'org_members',
112
+ 'org_membership',
113
+ 'SELECT DISTINCT subject COLLATE "C" AS subject FROM org_members WHERE subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2',
114
+ ],
115
+ [
116
+ 'billing_account_members',
117
+ 'google_billing',
118
+ `SELECT DISTINCT member.subject COLLATE "C" AS subject FROM billing_account_members member JOIN billing_accounts account ON account.id = member.billing_account_id WHERE member.identity_issuer = 'https://accounts.google.com' AND member.role = 'owner' AND account.state = 'active' AND member.subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2`,
119
+ ],
120
+ [
121
+ 'billing_account_defaults',
122
+ 'google_billing',
123
+ `SELECT DISTINCT defaults.subject COLLATE "C" AS subject FROM billing_account_defaults defaults JOIN billing_accounts account ON account.id = defaults.billing_account_id JOIN billing_account_members member ON member.billing_account_id = defaults.billing_account_id AND member.identity_issuer = defaults.identity_issuer AND member.subject = defaults.subject WHERE defaults.identity_issuer = 'https://accounts.google.com' AND member.role = 'owner' AND account.state = 'active' AND defaults.subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2`,
124
+ ],
125
+ [
126
+ 'oauth_refresh_tokens',
127
+ 'refresh_family',
128
+ `SELECT DISTINCT owner_subject COLLATE "C" AS subject FROM oauth_refresh_tokens WHERE identity_kind IS DISTINCT FROM 'customer' AND expires_at > $3::timestamptz AND rotated_at IS NULL AND superseded_by IS NULL AND owner_subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2`,
129
+ true,
130
+ ],
131
+ [
132
+ 'developer_access_grants',
133
+ 'developer_grant',
134
+ `SELECT DISTINCT subject COLLATE "C" AS subject FROM developer_access_grants WHERE revoked_at IS NULL AND (expires_at IS NULL OR expires_at > $3::timestamptz) AND subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2`,
135
+ true,
136
+ ],
137
+ [
138
+ 'deploy_records',
139
+ 'owner_only_deployer',
140
+ `SELECT DISTINCT created_by_subject COLLATE "C" AS subject FROM deploy_records WHERE active = true AND access_mode = 'owner-only' AND created_by_subject IS NOT NULL AND deployment_source IS DISTINCT FROM 'github' AND archived_at IS NULL AND created_by_subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2`,
141
+ ],
142
+ [
143
+ 'oauth_consent_grants',
144
+ 'consent_grant',
145
+ 'SELECT DISTINCT owner_subject COLLATE "C" AS subject FROM oauth_consent_grants WHERE owner_subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2',
146
+ ],
147
+ [
148
+ 'oauth_device_authorizations',
149
+ 'device_authorization',
150
+ `SELECT DISTINCT owner_subject COLLATE "C" AS subject FROM oauth_device_authorizations WHERE owner_subject IS NOT NULL AND identity_kind IS DISTINCT FROM 'customer' AND status IN ('pending', 'approved') AND expires_at > $3::timestamptz AND owner_subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2`,
151
+ true,
152
+ ],
153
+ [
154
+ 'welcome_email_outbox',
155
+ 'welcome_provisioning',
156
+ 'SELECT DISTINCT subject COLLATE "C" AS subject FROM welcome_email_outbox WHERE subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2',
157
+ ],
158
+ ];
159
+ for (const [source, provenance, query, usesSnapshot] of roots) {
160
+ if (this.#manifest?.[source] !== 'configured')
161
+ continue;
162
+ const rows = await this.#safeRows(pool, query, [
163
+ after ?? '',
164
+ limit,
165
+ ...(usesSnapshot === true ? [snapshotAt] : []),
166
+ ]);
167
+ for (const row of rows)
168
+ add({ subject: row.subject, provenance });
169
+ }
170
+ }
171
+ async #addExcludedIdentities(pool, after, limit, snapshotAt, add) {
172
+ const queries = [
173
+ [
174
+ 'oauth_refresh_tokens',
175
+ 'SELECT DISTINCT owner_subject COLLATE "C" AS subject FROM oauth_refresh_tokens WHERE identity_kind = \'customer\' AND expires_at > $3::timestamptz AND owner_subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2',
176
+ true,
177
+ ],
178
+ [
179
+ 'oauth_device_authorizations',
180
+ 'SELECT DISTINCT owner_subject COLLATE "C" AS subject FROM oauth_device_authorizations WHERE owner_subject IS NOT NULL AND identity_kind = \'customer\' AND expires_at > $3::timestamptz AND owner_subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2',
181
+ true,
182
+ ],
183
+ [
184
+ 'oauth_delegated_credentials',
185
+ 'SELECT DISTINCT subject COLLATE "C" AS subject FROM oauth_delegated_credentials WHERE subject COLLATE "C" > $1 COLLATE "C" ORDER BY subject LIMIT $2',
186
+ ],
187
+ ];
188
+ for (const [source, query, usesSnapshot] of queries) {
189
+ if (this.#manifest?.[source] !== 'configured')
190
+ continue;
191
+ const rows = await this.#safeRows(pool, query, [
192
+ after ?? '',
193
+ limit,
194
+ ...(usesSnapshot === true ? [snapshotAt] : []),
195
+ ]);
196
+ for (const row of rows)
197
+ add({
198
+ subject: row.subject,
199
+ excludedEvidence: true,
200
+ exclusionKind: 'non_platform_identity',
201
+ });
202
+ }
203
+ }
204
+ async #addConfiguredExclusions(pool, after, limit, add) {
205
+ if (this.#excludedSubjects.length === 0)
206
+ return;
207
+ const rows = await pool.query(`SELECT excluded.subject, excluded.kind
208
+ FROM unnest($1::text[], $2::text[]) AS excluded(subject, kind)
209
+ WHERE excluded.subject COLLATE "C" > $3 COLLATE "C"
210
+ ORDER BY excluded.subject COLLATE "C" LIMIT $4`, [
211
+ this.#excludedSubjects.map((entry) => entry.subject),
212
+ this.#excludedSubjects.map((entry) => entry.kind),
213
+ after ?? '',
214
+ limit,
215
+ ]);
216
+ for (const row of rows.rows)
217
+ add({ subject: row.subject, exclusionKind: row.kind });
218
+ }
219
+ async #safeRows(pool, query, values) {
220
+ try {
221
+ return (await pool.query(query, values)).rows;
222
+ }
223
+ catch {
224
+ throw new PlatformAuthMigrationError('inventory_unavailable');
225
+ }
226
+ }
227
+ }
228
+ function strongerExclusion(current, next) {
229
+ if (current === 'workload' || current === 'synthetic')
230
+ return current;
231
+ if (next === 'workload' || next === 'synthetic')
232
+ return next;
233
+ if (current?.startsWith('suspended'))
234
+ return current;
235
+ if (next?.startsWith('suspended'))
236
+ return next;
237
+ return current ?? next;
238
+ }
239
+ //# sourceMappingURL=platform-auth-inventory-local-subjects-postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-inventory-local-subjects-postgres.js","sourceRoot":"","sources":["../src/platform-auth-inventory-local-subjects-postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { type PlatformAuthBlockerCode, type PlatformAuthInventory } from './platform-auth-migration.js';
2
+ export declare const PLATFORM_AUTH_INVENTORY_REMOTE_PAGE_SIZE = 100;
3
+ export declare const PLATFORM_AUTH_INVENTORY_LOCAL_BATCH_SIZE = 100;
4
+ export declare const PLATFORM_AUTH_INVENTORY_REMOTE_USER_LIMIT = 200000;
5
+ export declare const PLATFORM_AUTH_INVENTORY_LEASE_SECONDS = 30;
6
+ export interface PlatformAuthInventoryRemoteUser {
7
+ readonly id: string;
8
+ readonly externalId: string | undefined;
9
+ readonly normalizedEmail: string;
10
+ readonly verified: boolean;
11
+ }
12
+ export interface PlatformAuthInventoryPageSource {
13
+ listPage(input: {
14
+ readonly after?: string;
15
+ readonly limit: number;
16
+ }): Promise<{
17
+ readonly users: readonly PlatformAuthInventoryRemoteUser[];
18
+ readonly nextAfter?: string;
19
+ }>;
20
+ }
21
+ export interface PlatformAuthInventoryAdvance {
22
+ readonly state: 'running' | 'completed';
23
+ readonly phase: 'remote' | 'local' | 'completed';
24
+ readonly remotePages: number;
25
+ readonly remoteUsers: number;
26
+ readonly localSubjects: number;
27
+ readonly candidateCount: number;
28
+ readonly excludedCount: number;
29
+ readonly blockers: Readonly<Partial<Record<PlatformAuthBlockerCode, number>>>;
30
+ readonly checksum: string | null;
31
+ }
32
+ export interface InventoryProgressRow {
33
+ readonly phase: 'remote' | 'local' | 'completed';
34
+ readonly remote_after: string | null;
35
+ readonly remote_page_count: number;
36
+ readonly remote_user_count: number;
37
+ readonly remote_chain_hash: string;
38
+ readonly local_after_subject: string | null;
39
+ readonly local_source_epoch: string | null;
40
+ readonly local_snapshot_at: Date | string | null;
41
+ readonly local_subject_count: number;
42
+ readonly candidate_count: number;
43
+ readonly excluded_count: number;
44
+ readonly candidate_chain_hash: string;
45
+ readonly excluded_chain_hash: string;
46
+ readonly artifact_counts: unknown;
47
+ readonly blocker_counts: unknown;
48
+ readonly terminal_error: 'inventory_unavailable' | null;
49
+ readonly lease_token_hash: string | null;
50
+ readonly lease_expires_at: Date | string | null;
51
+ }
52
+ export interface InventoryLease {
53
+ readonly token: string;
54
+ readonly progress: InventoryProgressRow;
55
+ }
56
+ export declare function inventoryHash(value: unknown): string;
57
+ /** Matches PostgreSQL `COLLATE "C"` for bounded in-memory evidence lists. */
58
+ export declare function compareInventoryText(left: string, right: string): number;
59
+ export declare function inventoryChainSeed(kind: 'remote' | 'candidate' | 'excluded'): string;
60
+ export declare function inventoryChain(previous: string, entry: unknown): string;
61
+ export declare function newInventoryLeaseToken(): string;
62
+ export declare function inventoryProgress(row: InventoryProgressRow, checksum?: string | null): PlatformAuthInventoryAdvance;
63
+ export declare function inventoryHasLocalWork(row: InventoryProgressRow): boolean;
64
+ export declare function blockerCounts(value: unknown): Partial<Record<PlatformAuthBlockerCode, number>>;
65
+ export declare function completedInventory(value: unknown, checksum: string | null): PlatformAuthInventory;
66
+ //# sourceMappingURL=platform-auth-inventory-paging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-inventory-paging.d.ts","sourceRoot":"","sources":["../src/platform-auth-inventory-paging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { Buffer } from 'node:buffer';
2
+ import { createHash, randomUUID } from 'node:crypto';
3
+ import { PlatformAuthMigrationError, } from './platform-auth-migration.js';
4
+ export const PLATFORM_AUTH_INVENTORY_REMOTE_PAGE_SIZE = 100;
5
+ export const PLATFORM_AUTH_INVENTORY_LOCAL_BATCH_SIZE = 100;
6
+ export const PLATFORM_AUTH_INVENTORY_REMOTE_USER_LIMIT = 200_000;
7
+ export const PLATFORM_AUTH_INVENTORY_LEASE_SECONDS = 30;
8
+ export function inventoryHash(value) {
9
+ return createHash('sha256').update(JSON.stringify(value)).digest('hex');
10
+ }
11
+ /** Matches PostgreSQL `COLLATE "C"` for bounded in-memory evidence lists. */
12
+ export function compareInventoryText(left, right) {
13
+ return Buffer.compare(Buffer.from(left, 'utf8'), Buffer.from(right, 'utf8'));
14
+ }
15
+ export function inventoryChainSeed(kind) {
16
+ return inventoryHash({ algorithm: 'platform-auth-inventory-chain-v1', kind });
17
+ }
18
+ export function inventoryChain(previous, entry) {
19
+ return inventoryHash({ previous, entry });
20
+ }
21
+ export function newInventoryLeaseToken() {
22
+ return randomUUID();
23
+ }
24
+ export function inventoryProgress(row, checksum = null) {
25
+ return {
26
+ state: row.phase === 'completed' ? 'completed' : 'running',
27
+ phase: row.phase,
28
+ remotePages: row.remote_page_count,
29
+ remoteUsers: row.remote_user_count,
30
+ localSubjects: row.local_subject_count,
31
+ candidateCount: row.candidate_count,
32
+ excludedCount: row.excluded_count,
33
+ blockers: blockerCounts(row.blocker_counts),
34
+ checksum,
35
+ };
36
+ }
37
+ export function inventoryHasLocalWork(row) {
38
+ return (row.local_after_subject !== null ||
39
+ row.local_subject_count !== 0 ||
40
+ row.candidate_count !== 0 ||
41
+ row.excluded_count !== 0);
42
+ }
43
+ export function blockerCounts(value) {
44
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
45
+ return {};
46
+ const result = {};
47
+ for (const [code, count] of Object.entries(value)) {
48
+ if (inventoryBlocker(code) && Number.isInteger(count) && count >= 0 && count !== 0)
49
+ result[code] = count;
50
+ }
51
+ return result;
52
+ }
53
+ export function completedInventory(value, checksum) {
54
+ if (typeof value !== 'object' || value === null || checksum === null)
55
+ throw new PlatformAuthMigrationError('inventory_unavailable');
56
+ const candidate = value;
57
+ if (typeof candidate.candidateCount !== 'number' ||
58
+ typeof candidate.excludedCount !== 'number' ||
59
+ typeof candidate.blockers !== 'object' ||
60
+ candidate.blockers === null)
61
+ throw new PlatformAuthMigrationError('inventory_unavailable');
62
+ return {
63
+ candidateCount: candidate.candidateCount,
64
+ excludedCount: candidate.excludedCount,
65
+ blockers: candidate.blockers,
66
+ checksum,
67
+ };
68
+ }
69
+ function inventoryBlocker(value) {
70
+ return (value === 'missing_verified_email' ||
71
+ value === 'multiple_current_verified_emails' ||
72
+ value === 'shared_verified_email' ||
73
+ value === 'external_id_too_long' ||
74
+ value === 'conflicting_workos_user' ||
75
+ value === 'ambiguous_platform_customer_evidence');
76
+ }
77
+ //# sourceMappingURL=platform-auth-inventory-paging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-inventory-paging.js","sourceRoot":"","sources":["../src/platform-auth-inventory-paging.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { type PlatformAuthInventoryAdvance, type PlatformAuthInventoryPageSource } from './platform-auth-inventory-paging.js';
2
+ import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
3
+ import { type PlatformAuthInventory } from './platform-auth-migration.js';
4
+ import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
5
+ export type { PlatformAuthInventoryAdvance, PlatformAuthInventoryPageSource, } from './platform-auth-inventory-paging.js';
6
+ export { PLATFORM_AUTH_INVENTORY_SOURCES, type PlatformAuthInventorySource, type PlatformAuthInventorySourceManifest, } from './platform-auth-inventory-sources.js';
7
+ type Connection = PlatformIdentityQueryable & {
8
+ release?: () => void;
9
+ };
10
+ type Pool = PlatformIdentityQueryable & {
11
+ connect?: () => Promise<Connection>;
12
+ };
13
+ /**
14
+ * Authoritative, repeatable-read inventory. Internal frozen rows retain the source universe for later fences;
15
+ * this boundary returns aggregate counts and digests only.
16
+ */
17
+ export declare class PostgresPlatformAuthInventoryStore {
18
+ #private;
19
+ constructor(pool: Pool, options?: {
20
+ readonly googleRealm?: string;
21
+ readonly workosRealm?: string;
22
+ readonly workosUsers?: readonly WorkOSInventoryUser[] | (() => Promise<readonly WorkOSInventoryUser[]>);
23
+ readonly workosPageSource?: PlatformAuthInventoryPageSource;
24
+ /** A configured relation must exist; an unavailable relation fails inventory rather than silently narrowing roots. */
25
+ readonly sourceAvailability?: PlatformAuthInventorySourceManifest;
26
+ /** Exact non-human Google subjects supplied by trusted deployment configuration. */
27
+ readonly excludedSubjects?: readonly {
28
+ readonly subject: string;
29
+ readonly kind: 'workload' | 'synthetic';
30
+ }[];
31
+ });
32
+ inspect(runId: string): Promise<PlatformAuthInventory>;
33
+ advance(runId: string): Promise<PlatformAuthInventoryAdvance>;
34
+ }
35
+ interface WorkOSInventoryUser {
36
+ readonly externalId?: string | undefined;
37
+ readonly normalizedEmail: string;
38
+ readonly verified: boolean;
39
+ }
40
+ //# sourceMappingURL=platform-auth-inventory-postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-auth-inventory-postgres.d.ts","sourceRoot":"","sources":["../src/platform-auth-inventory-postgres.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,4BAA4B,EACjC,KAAK,+BAA+B,EACrC,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,YAAY,EACV,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,mCAAmC,GACzC,MAAM,sCAAsC,CAAC;AAE9C,KAAK,UAAU,GAAG,yBAAyB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AACvE,KAAK,IAAI,GAAG,yBAAyB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC;AAChF;;;GAGG;AACH,qBAAa,kCAAkC;;gBAU3C,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;QACP,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,CAAC,EACjB,SAAS,mBAAmB,EAAE,GAC9B,CAAC,MAAM,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACpD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,+BAA+B,CAAC;QAC5D,sHAAsH;QACtH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,mCAAmC,CAAC;QAClE,oFAAoF;QACpF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS;YACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;YACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;SACzC,EAAE,CAAC;KACA;IA4BF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAetD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;CA8RpE;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B"}