@atlasauth/cli 0.25.0 → 0.26.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 (546) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +26 -5
  3. package/dist/args.d.ts +631 -0
  4. package/dist/args.js +304 -0
  5. package/dist/args.js.map +1 -0
  6. package/dist/cli.d.ts +2 -0
  7. package/dist/cli.js +19 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/commands/actions-gallery.d.ts +8 -0
  10. package/dist/commands/actions-gallery.js +197 -0
  11. package/dist/commands/actions-gallery.js.map +1 -0
  12. package/dist/commands/actions.d.ts +13 -0
  13. package/dist/commands/actions.js +135 -0
  14. package/dist/commands/actions.js.map +1 -0
  15. package/dist/commands/admin.d.ts +49 -0
  16. package/dist/commands/admin.js +353 -0
  17. package/dist/commands/admin.js.map +1 -0
  18. package/dist/commands/api-keys.d.ts +4 -0
  19. package/dist/commands/api-keys.js +96 -0
  20. package/dist/commands/api-keys.js.map +1 -0
  21. package/dist/commands/auth.d.ts +25 -0
  22. package/dist/commands/auth.js +102 -0
  23. package/dist/commands/auth.js.map +1 -0
  24. package/dist/commands/config.d.ts +128 -0
  25. package/dist/commands/config.js +1822 -0
  26. package/dist/commands/config.js.map +1 -0
  27. package/dist/commands/csp.d.ts +32 -0
  28. package/dist/commands/csp.js +180 -0
  29. package/dist/commands/csp.js.map +1 -0
  30. package/dist/commands/dev.d.ts +8 -0
  31. package/dist/commands/dev.js +84 -0
  32. package/dist/commands/dev.js.map +1 -0
  33. package/dist/commands/doctor-scan.d.ts +27 -0
  34. package/dist/commands/doctor-scan.js +221 -0
  35. package/dist/commands/doctor-scan.js.map +1 -0
  36. package/dist/commands/fga.d.ts +10 -0
  37. package/dist/commands/fga.js +146 -0
  38. package/dist/commands/fga.js.map +1 -0
  39. package/dist/commands/golive.d.ts +40 -0
  40. package/dist/commands/golive.js +297 -0
  41. package/dist/commands/golive.js.map +1 -0
  42. package/dist/commands/id-accounts.d.ts +13 -0
  43. package/dist/commands/id-accounts.js +195 -0
  44. package/dist/commands/id-accounts.js.map +1 -0
  45. package/dist/commands/import-better-auth.d.ts +3 -0
  46. package/dist/commands/import-better-auth.js +164 -0
  47. package/dist/commands/import-better-auth.js.map +1 -0
  48. package/dist/commands/import-jsonl.d.ts +50 -0
  49. package/dist/commands/import-jsonl.js +252 -0
  50. package/dist/commands/import-jsonl.js.map +1 -0
  51. package/dist/commands/import.d.ts +3 -0
  52. package/dist/commands/import.js +133 -0
  53. package/dist/commands/import.js.map +1 -0
  54. package/dist/commands/info.d.ts +75 -0
  55. package/dist/commands/info.js +362 -0
  56. package/dist/commands/info.js.map +1 -0
  57. package/dist/commands/init-next.d.ts +4 -0
  58. package/dist/commands/init-next.js +86 -0
  59. package/dist/commands/init-next.js.map +1 -0
  60. package/dist/commands/init.d.ts +3 -0
  61. package/dist/commands/init.js +525 -0
  62. package/dist/commands/init.js.map +1 -0
  63. package/dist/commands/integrations.d.ts +8 -0
  64. package/dist/commands/integrations.js +112 -0
  65. package/dist/commands/integrations.js.map +1 -0
  66. package/dist/commands/listen.d.ts +17 -0
  67. package/dist/commands/listen.js +223 -0
  68. package/dist/commands/listen.js.map +1 -0
  69. package/dist/commands/mcp.d.ts +38 -0
  70. package/dist/commands/mcp.js +111 -0
  71. package/dist/commands/mcp.js.map +1 -0
  72. package/dist/commands/migrate.d.ts +16 -0
  73. package/dist/commands/migrate.js +114 -0
  74. package/dist/commands/migrate.js.map +1 -0
  75. package/dist/commands/move-origin.d.ts +11 -0
  76. package/dist/commands/move-origin.js +95 -0
  77. package/dist/commands/move-origin.js.map +1 -0
  78. package/dist/commands/operator.d.ts +18 -0
  79. package/dist/commands/operator.js +238 -0
  80. package/dist/commands/operator.js.map +1 -0
  81. package/dist/commands/orgs.d.ts +4 -0
  82. package/dist/commands/orgs.js +72 -0
  83. package/dist/commands/orgs.js.map +1 -0
  84. package/dist/commands/pages.d.ts +14 -0
  85. package/dist/commands/pages.js +113 -0
  86. package/dist/commands/pages.js.map +1 -0
  87. package/dist/commands/partner-platforms.d.ts +10 -0
  88. package/dist/commands/partner-platforms.js +157 -0
  89. package/dist/commands/partner-platforms.js.map +1 -0
  90. package/dist/commands/project-commands.d.ts +38 -0
  91. package/dist/commands/project-commands.js +431 -0
  92. package/dist/commands/project-commands.js.map +1 -0
  93. package/dist/commands/referrals.d.ts +69 -0
  94. package/dist/commands/referrals.js +1056 -0
  95. package/dist/commands/referrals.js.map +1 -0
  96. package/dist/commands/resources.d.ts +44 -0
  97. package/dist/commands/resources.js +234 -0
  98. package/dist/commands/resources.js.map +1 -0
  99. package/dist/commands/sessions.d.ts +4 -0
  100. package/dist/commands/sessions.js +28 -0
  101. package/dist/commands/sessions.js.map +1 -0
  102. package/dist/commands/setup-guide.d.ts +3 -0
  103. package/dist/commands/setup-guide.js +38 -0
  104. package/dist/commands/setup-guide.js.map +1 -0
  105. package/dist/commands/shared.d.ts +38 -0
  106. package/dist/commands/shared.js +69 -0
  107. package/dist/commands/shared.js.map +1 -0
  108. package/dist/commands/status.d.ts +3 -0
  109. package/dist/commands/status.js +77 -0
  110. package/dist/commands/status.js.map +1 -0
  111. package/dist/commands/users.d.ts +4 -0
  112. package/dist/commands/users.js +111 -0
  113. package/dist/commands/users.js.map +1 -0
  114. package/dist/commands/webhooks.d.ts +34 -0
  115. package/dist/commands/webhooks.js +301 -0
  116. package/dist/commands/webhooks.js.map +1 -0
  117. package/dist/config-http.d.ts +38 -0
  118. package/dist/config-http.js +70 -0
  119. package/dist/config-http.js.map +1 -0
  120. package/dist/config.d.ts +64 -0
  121. package/dist/config.js +69 -0
  122. package/dist/config.js.map +1 -0
  123. package/dist/context.d.ts +89 -0
  124. package/dist/context.js +32 -0
  125. package/dist/context.js.map +1 -0
  126. package/dist/define-config.d.ts +9 -0
  127. package/dist/define-config.js +8 -0
  128. package/dist/define-config.js.map +1 -0
  129. package/dist/errors.d.ts +15 -0
  130. package/dist/errors.js +25 -0
  131. package/dist/errors.js.map +1 -0
  132. package/dist/help.d.ts +8 -0
  133. package/dist/help.js +926 -0
  134. package/dist/help.js.map +1 -0
  135. package/dist/import/csv.d.ts +6 -0
  136. package/dist/import/csv.js +63 -0
  137. package/dist/import/csv.js.map +1 -0
  138. package/dist/import/vendors.d.ts +57 -0
  139. package/dist/import/vendors.js +568 -0
  140. package/dist/import/vendors.js.map +1 -0
  141. package/dist/index.d.ts +33 -0
  142. package/dist/index.js +81 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/io.d.ts +21 -0
  145. package/dist/io.js +28 -0
  146. package/dist/io.js.map +1 -0
  147. package/dist/migrate/appwrite/plugin.d.ts +2 -0
  148. package/dist/migrate/appwrite/plugin.js +103 -0
  149. package/dist/migrate/appwrite/plugin.js.map +1 -0
  150. package/dist/migrate/auth0/plugin.d.ts +2 -0
  151. package/dist/migrate/auth0/plugin.js +126 -0
  152. package/dist/migrate/auth0/plugin.js.map +1 -0
  153. package/dist/migrate/authentik/plugin.d.ts +2 -0
  154. package/dist/migrate/authentik/plugin.js +135 -0
  155. package/dist/migrate/authentik/plugin.js.map +1 -0
  156. package/dist/migrate/azure-ad-b2c/plugin.d.ts +8 -0
  157. package/dist/migrate/azure-ad-b2c/plugin.js +165 -0
  158. package/dist/migrate/azure-ad-b2c/plugin.js.map +1 -0
  159. package/dist/migrate/better-auth/integration.d.ts +59 -0
  160. package/dist/migrate/better-auth/integration.js +81 -0
  161. package/dist/migrate/better-auth/integration.js.map +1 -0
  162. package/dist/migrate/better-auth/orchestrator.d.ts +43 -0
  163. package/dist/migrate/better-auth/orchestrator.js +525 -0
  164. package/dist/migrate/better-auth/orchestrator.js.map +1 -0
  165. package/dist/migrate/better-auth/output.d.ts +20 -0
  166. package/dist/migrate/better-auth/output.js +146 -0
  167. package/dist/migrate/better-auth/output.js.map +1 -0
  168. package/dist/migrate/better-auth/translate.d.ts +77 -0
  169. package/dist/migrate/better-auth/translate.js +1989 -0
  170. package/dist/migrate/better-auth/translate.js.map +1 -0
  171. package/dist/migrate/clerk/plugin.d.ts +2 -0
  172. package/dist/migrate/clerk/plugin.js +76 -0
  173. package/dist/migrate/clerk/plugin.js.map +1 -0
  174. package/dist/migrate/cognito/plugin.d.ts +5 -0
  175. package/dist/migrate/cognito/plugin.js +170 -0
  176. package/dist/migrate/cognito/plugin.js.map +1 -0
  177. package/dist/migrate/corbado/plugin.d.ts +2 -0
  178. package/dist/migrate/corbado/plugin.js +63 -0
  179. package/dist/migrate/corbado/plugin.js.map +1 -0
  180. package/dist/migrate/descope/plugin.d.ts +2 -0
  181. package/dist/migrate/descope/plugin.js +83 -0
  182. package/dist/migrate/descope/plugin.js.map +1 -0
  183. package/dist/migrate/entra-external-id/plugin.d.ts +8 -0
  184. package/dist/migrate/entra-external-id/plugin.js +12 -0
  185. package/dist/migrate/entra-external-id/plugin.js.map +1 -0
  186. package/dist/migrate/export/appwrite-config.d.ts +28 -0
  187. package/dist/migrate/export/appwrite-config.js +170 -0
  188. package/dist/migrate/export/appwrite-config.js.map +1 -0
  189. package/dist/migrate/export/appwrite.d.ts +51 -0
  190. package/dist/migrate/export/appwrite.js +288 -0
  191. package/dist/migrate/export/appwrite.js.map +1 -0
  192. package/dist/migrate/export/auth0-config.d.ts +29 -0
  193. package/dist/migrate/export/auth0-config.js +249 -0
  194. package/dist/migrate/export/auth0-config.js.map +1 -0
  195. package/dist/migrate/export/auth0.d.ts +62 -0
  196. package/dist/migrate/export/auth0.js +575 -0
  197. package/dist/migrate/export/auth0.js.map +1 -0
  198. package/dist/migrate/export/authentik-config.d.ts +45 -0
  199. package/dist/migrate/export/authentik-config.js +357 -0
  200. package/dist/migrate/export/authentik-config.js.map +1 -0
  201. package/dist/migrate/export/authentik.d.ts +110 -0
  202. package/dist/migrate/export/authentik.js +838 -0
  203. package/dist/migrate/export/authentik.js.map +1 -0
  204. package/dist/migrate/export/azure-config.d.ts +58 -0
  205. package/dist/migrate/export/azure-config.js +344 -0
  206. package/dist/migrate/export/azure-config.js.map +1 -0
  207. package/dist/migrate/export/azure.d.ts +85 -0
  208. package/dist/migrate/export/azure.js +373 -0
  209. package/dist/migrate/export/azure.js.map +1 -0
  210. package/dist/migrate/export/clerk-config.d.ts +26 -0
  211. package/dist/migrate/export/clerk-config.js +227 -0
  212. package/dist/migrate/export/clerk-config.js.map +1 -0
  213. package/dist/migrate/export/clerk.d.ts +46 -0
  214. package/dist/migrate/export/clerk.js +486 -0
  215. package/dist/migrate/export/clerk.js.map +1 -0
  216. package/dist/migrate/export/cognito-config.d.ts +25 -0
  217. package/dist/migrate/export/cognito-config.js +273 -0
  218. package/dist/migrate/export/cognito-config.js.map +1 -0
  219. package/dist/migrate/export/cognito.d.ts +103 -0
  220. package/dist/migrate/export/cognito.js +441 -0
  221. package/dist/migrate/export/cognito.js.map +1 -0
  222. package/dist/migrate/export/corbado-config.d.ts +20 -0
  223. package/dist/migrate/export/corbado-config.js +63 -0
  224. package/dist/migrate/export/corbado-config.js.map +1 -0
  225. package/dist/migrate/export/corbado.d.ts +37 -0
  226. package/dist/migrate/export/corbado.js +132 -0
  227. package/dist/migrate/export/corbado.js.map +1 -0
  228. package/dist/migrate/export/descope.d.ts +35 -0
  229. package/dist/migrate/export/descope.js +208 -0
  230. package/dist/migrate/export/descope.js.map +1 -0
  231. package/dist/migrate/export/fake-vendor.test-helper.d.ts +27 -0
  232. package/dist/migrate/export/fake-vendor.test-helper.js +41 -0
  233. package/dist/migrate/export/fake-vendor.test-helper.js.map +1 -0
  234. package/dist/migrate/export/firebase-config.d.ts +24 -0
  235. package/dist/migrate/export/firebase-config.js +215 -0
  236. package/dist/migrate/export/firebase-config.js.map +1 -0
  237. package/dist/migrate/export/firebase.d.ts +102 -0
  238. package/dist/migrate/export/firebase.js +464 -0
  239. package/dist/migrate/export/firebase.js.map +1 -0
  240. package/dist/migrate/export/frameworks/app-users.d.ts +42 -0
  241. package/dist/migrate/export/frameworks/app-users.js +161 -0
  242. package/dist/migrate/export/frameworks/app-users.js.map +1 -0
  243. package/dist/migrate/export/frameworks/authjs.d.ts +41 -0
  244. package/dist/migrate/export/frameworks/authjs.js +146 -0
  245. package/dist/migrate/export/frameworks/authjs.js.map +1 -0
  246. package/dist/migrate/export/frameworks/devise.d.ts +39 -0
  247. package/dist/migrate/export/frameworks/devise.js +218 -0
  248. package/dist/migrate/export/frameworks/devise.js.map +1 -0
  249. package/dist/migrate/export/frameworks/django.d.ts +45 -0
  250. package/dist/migrate/export/frameworks/django.js +315 -0
  251. package/dist/migrate/export/frameworks/django.js.map +1 -0
  252. package/dist/migrate/export/frameworks/lucia.d.ts +42 -0
  253. package/dist/migrate/export/frameworks/lucia.js +263 -0
  254. package/dist/migrate/export/frameworks/lucia.js.map +1 -0
  255. package/dist/migrate/export/frameworks/tables.d.ts +90 -0
  256. package/dist/migrate/export/frameworks/tables.js +325 -0
  257. package/dist/migrate/export/frameworks/tables.js.map +1 -0
  258. package/dist/migrate/export/frameworks/webauthn.d.ts +25 -0
  259. package/dist/migrate/export/frameworks/webauthn.js +130 -0
  260. package/dist/migrate/export/frameworks/webauthn.js.map +1 -0
  261. package/dist/migrate/export/frontegg-config.d.ts +29 -0
  262. package/dist/migrate/export/frontegg-config.js +238 -0
  263. package/dist/migrate/export/frontegg-config.js.map +1 -0
  264. package/dist/migrate/export/frontegg.d.ts +67 -0
  265. package/dist/migrate/export/frontegg.js +410 -0
  266. package/dist/migrate/export/frontegg.js.map +1 -0
  267. package/dist/migrate/export/fusionauth-config.d.ts +26 -0
  268. package/dist/migrate/export/fusionauth-config.js +226 -0
  269. package/dist/migrate/export/fusionauth-config.js.map +1 -0
  270. package/dist/migrate/export/fusionauth.d.ts +99 -0
  271. package/dist/migrate/export/fusionauth.js +642 -0
  272. package/dist/migrate/export/fusionauth.js.map +1 -0
  273. package/dist/migrate/export/hanko-config.d.ts +27 -0
  274. package/dist/migrate/export/hanko-config.js +265 -0
  275. package/dist/migrate/export/hanko-config.js.map +1 -0
  276. package/dist/migrate/export/hanko.d.ts +52 -0
  277. package/dist/migrate/export/hanko.js +605 -0
  278. package/dist/migrate/export/hanko.js.map +1 -0
  279. package/dist/migrate/export/keycloak-config.d.ts +19 -0
  280. package/dist/migrate/export/keycloak-config.js +219 -0
  281. package/dist/migrate/export/keycloak-config.js.map +1 -0
  282. package/dist/migrate/export/keycloak.d.ts +155 -0
  283. package/dist/migrate/export/keycloak.js +878 -0
  284. package/dist/migrate/export/keycloak.js.map +1 -0
  285. package/dist/migrate/export/kinde-descope-config.d.ts +38 -0
  286. package/dist/migrate/export/kinde-descope-config.js +172 -0
  287. package/dist/migrate/export/kinde-descope-config.js.map +1 -0
  288. package/dist/migrate/export/kinde.d.ts +57 -0
  289. package/dist/migrate/export/kinde.js +333 -0
  290. package/dist/migrate/export/kinde.js.map +1 -0
  291. package/dist/migrate/export/ldap.d.ts +53 -0
  292. package/dist/migrate/export/ldap.js +277 -0
  293. package/dist/migrate/export/ldap.js.map +1 -0
  294. package/dist/migrate/export/logto-config.d.ts +27 -0
  295. package/dist/migrate/export/logto-config.js +264 -0
  296. package/dist/migrate/export/logto-config.js.map +1 -0
  297. package/dist/migrate/export/logto.d.ts +150 -0
  298. package/dist/migrate/export/logto.js +809 -0
  299. package/dist/migrate/export/logto.js.map +1 -0
  300. package/dist/migrate/export/magic-config.d.ts +14 -0
  301. package/dist/migrate/export/magic-config.js +28 -0
  302. package/dist/migrate/export/magic-config.js.map +1 -0
  303. package/dist/migrate/export/magic.d.ts +31 -0
  304. package/dist/migrate/export/magic.js +93 -0
  305. package/dist/migrate/export/magic.js.map +1 -0
  306. package/dist/migrate/export/mini-yaml.d.ts +19 -0
  307. package/dist/migrate/export/mini-yaml.js +581 -0
  308. package/dist/migrate/export/mini-yaml.js.map +1 -0
  309. package/dist/migrate/export/nhost-config.d.ts +26 -0
  310. package/dist/migrate/export/nhost-config.js +360 -0
  311. package/dist/migrate/export/nhost-config.js.map +1 -0
  312. package/dist/migrate/export/nhost.d.ts +64 -0
  313. package/dist/migrate/export/nhost.js +304 -0
  314. package/dist/migrate/export/nhost.js.map +1 -0
  315. package/dist/migrate/export/okta-config.d.ts +30 -0
  316. package/dist/migrate/export/okta-config.js +205 -0
  317. package/dist/migrate/export/okta-config.js.map +1 -0
  318. package/dist/migrate/export/okta.d.ts +43 -0
  319. package/dist/migrate/export/okta.js +337 -0
  320. package/dist/migrate/export/okta.js.map +1 -0
  321. package/dist/migrate/export/onelogin.d.ts +22 -0
  322. package/dist/migrate/export/onelogin.js +123 -0
  323. package/dist/migrate/export/onelogin.js.map +1 -0
  324. package/dist/migrate/export/ory-config.d.ts +58 -0
  325. package/dist/migrate/export/ory-config.js +451 -0
  326. package/dist/migrate/export/ory-config.js.map +1 -0
  327. package/dist/migrate/export/ory.d.ts +81 -0
  328. package/dist/migrate/export/ory.js +555 -0
  329. package/dist/migrate/export/ory.js.map +1 -0
  330. package/dist/migrate/export/password-detect.d.ts +29 -0
  331. package/dist/migrate/export/password-detect.js +81 -0
  332. package/dist/migrate/export/password-detect.js.map +1 -0
  333. package/dist/migrate/export/pingone.d.ts +36 -0
  334. package/dist/migrate/export/pingone.js +218 -0
  335. package/dist/migrate/export/pingone.js.map +1 -0
  336. package/dist/migrate/export/plugin-kit.d.ts +25 -0
  337. package/dist/migrate/export/plugin-kit.js +82 -0
  338. package/dist/migrate/export/plugin-kit.js.map +1 -0
  339. package/dist/migrate/export/pocketbase-config.d.ts +28 -0
  340. package/dist/migrate/export/pocketbase-config.js +180 -0
  341. package/dist/migrate/export/pocketbase-config.js.map +1 -0
  342. package/dist/migrate/export/pocketbase.d.ts +52 -0
  343. package/dist/migrate/export/pocketbase.js +243 -0
  344. package/dist/migrate/export/pocketbase.js.map +1 -0
  345. package/dist/migrate/export/project-files.d.ts +15 -0
  346. package/dist/migrate/export/project-files.js +43 -0
  347. package/dist/migrate/export/project-files.js.map +1 -0
  348. package/dist/migrate/export/propelauth-config.d.ts +18 -0
  349. package/dist/migrate/export/propelauth-config.js +58 -0
  350. package/dist/migrate/export/propelauth-config.js.map +1 -0
  351. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +62 -0
  352. package/dist/migrate/export/propelauth-harness.test-helper.js +109 -0
  353. package/dist/migrate/export/propelauth-harness.test-helper.js.map +1 -0
  354. package/dist/migrate/export/propelauth.d.ts +48 -0
  355. package/dist/migrate/export/propelauth.js +255 -0
  356. package/dist/migrate/export/propelauth.js.map +1 -0
  357. package/dist/migrate/export/record-set.d.ts +44 -0
  358. package/dist/migrate/export/record-set.js +98 -0
  359. package/dist/migrate/export/record-set.js.map +1 -0
  360. package/dist/migrate/export/source-lines.d.ts +17 -0
  361. package/dist/migrate/export/source-lines.js +43 -0
  362. package/dist/migrate/export/source-lines.js.map +1 -0
  363. package/dist/migrate/export/sso-metadata.d.ts +47 -0
  364. package/dist/migrate/export/sso-metadata.js +180 -0
  365. package/dist/migrate/export/sso-metadata.js.map +1 -0
  366. package/dist/migrate/export/stytch-config.d.ts +22 -0
  367. package/dist/migrate/export/stytch-config.js +102 -0
  368. package/dist/migrate/export/stytch-config.js.map +1 -0
  369. package/dist/migrate/export/stytch.d.ts +68 -0
  370. package/dist/migrate/export/stytch.js +510 -0
  371. package/dist/migrate/export/stytch.js.map +1 -0
  372. package/dist/migrate/export/supabase-config.d.ts +48 -0
  373. package/dist/migrate/export/supabase-config.js +408 -0
  374. package/dist/migrate/export/supabase-config.js.map +1 -0
  375. package/dist/migrate/export/supabase.d.ts +86 -0
  376. package/dist/migrate/export/supabase.js +524 -0
  377. package/dist/migrate/export/supabase.js.map +1 -0
  378. package/dist/migrate/export/supertokens-config.d.ts +20 -0
  379. package/dist/migrate/export/supertokens-config.js +150 -0
  380. package/dist/migrate/export/supertokens-config.js.map +1 -0
  381. package/dist/migrate/export/supertokens.d.ts +125 -0
  382. package/dist/migrate/export/supertokens.js +464 -0
  383. package/dist/migrate/export/supertokens.js.map +1 -0
  384. package/dist/migrate/export/table.d.ts +35 -0
  385. package/dist/migrate/export/table.js +248 -0
  386. package/dist/migrate/export/table.js.map +1 -0
  387. package/dist/migrate/export/translate-kit.d.ts +46 -0
  388. package/dist/migrate/export/translate-kit.js +148 -0
  389. package/dist/migrate/export/translate-kit.js.map +1 -0
  390. package/dist/migrate/export/userfront-config.d.ts +15 -0
  391. package/dist/migrate/export/userfront-config.js +49 -0
  392. package/dist/migrate/export/userfront-config.js.map +1 -0
  393. package/dist/migrate/export/userfront.d.ts +38 -0
  394. package/dist/migrate/export/userfront.js +189 -0
  395. package/dist/migrate/export/userfront.js.map +1 -0
  396. package/dist/migrate/export/vendor-http.d.ts +46 -0
  397. package/dist/migrate/export/vendor-http.js +138 -0
  398. package/dist/migrate/export/vendor-http.js.map +1 -0
  399. package/dist/migrate/export/workos-config.d.ts +23 -0
  400. package/dist/migrate/export/workos-config.js +125 -0
  401. package/dist/migrate/export/workos-config.js.map +1 -0
  402. package/dist/migrate/export/workos.d.ts +46 -0
  403. package/dist/migrate/export/workos.js +272 -0
  404. package/dist/migrate/export/workos.js.map +1 -0
  405. package/dist/migrate/export/zip.d.ts +8 -0
  406. package/dist/migrate/export/zip.js +66 -0
  407. package/dist/migrate/export/zip.js.map +1 -0
  408. package/dist/migrate/export/zitadel-config.d.ts +37 -0
  409. package/dist/migrate/export/zitadel-config.js +279 -0
  410. package/dist/migrate/export/zitadel-config.js.map +1 -0
  411. package/dist/migrate/export/zitadel.d.ts +82 -0
  412. package/dist/migrate/export/zitadel.js +447 -0
  413. package/dist/migrate/export/zitadel.js.map +1 -0
  414. package/dist/migrate/firebase/plugin.d.ts +2 -0
  415. package/dist/migrate/firebase/plugin.js +152 -0
  416. package/dist/migrate/firebase/plugin.js.map +1 -0
  417. package/dist/migrate/framework/builtins.d.ts +2 -0
  418. package/dist/migrate/framework/builtins.js +52 -0
  419. package/dist/migrate/framework/builtins.js.map +1 -0
  420. package/dist/migrate/framework/commands.d.ts +20 -0
  421. package/dist/migrate/framework/commands.js +58 -0
  422. package/dist/migrate/framework/commands.js.map +1 -0
  423. package/dist/migrate/framework/custom.d.ts +12 -0
  424. package/dist/migrate/framework/custom.js +96 -0
  425. package/dist/migrate/framework/custom.js.map +1 -0
  426. package/dist/migrate/framework/orchestrator.d.ts +113 -0
  427. package/dist/migrate/framework/orchestrator.js +532 -0
  428. package/dist/migrate/framework/orchestrator.js.map +1 -0
  429. package/dist/migrate/framework/plugin.d.ts +167 -0
  430. package/dist/migrate/framework/plugin.js +3 -0
  431. package/dist/migrate/framework/plugin.js.map +1 -0
  432. package/dist/migrate/framework/registry.d.ts +11 -0
  433. package/dist/migrate/framework/registry.js +44 -0
  434. package/dist/migrate/framework/registry.js.map +1 -0
  435. package/dist/migrate/framework/report.d.ts +17 -0
  436. package/dist/migrate/framework/report.js +103 -0
  437. package/dist/migrate/framework/report.js.map +1 -0
  438. package/dist/migrate/frameworks/plugins.d.ts +29 -0
  439. package/dist/migrate/frameworks/plugins.js +402 -0
  440. package/dist/migrate/frameworks/plugins.js.map +1 -0
  441. package/dist/migrate/frameworks/report.d.ts +92 -0
  442. package/dist/migrate/frameworks/report.js +207 -0
  443. package/dist/migrate/frameworks/report.js.map +1 -0
  444. package/dist/migrate/frameworks/translate-js.d.ts +5 -0
  445. package/dist/migrate/frameworks/translate-js.js +503 -0
  446. package/dist/migrate/frameworks/translate-js.js.map +1 -0
  447. package/dist/migrate/frameworks/translate-rails-django.d.ts +3 -0
  448. package/dist/migrate/frameworks/translate-rails-django.js +1391 -0
  449. package/dist/migrate/frameworks/translate-rails-django.js.map +1 -0
  450. package/dist/migrate/frontegg/plugin.d.ts +2 -0
  451. package/dist/migrate/frontegg/plugin.js +78 -0
  452. package/dist/migrate/frontegg/plugin.js.map +1 -0
  453. package/dist/migrate/fusionauth/plugin.d.ts +2 -0
  454. package/dist/migrate/fusionauth/plugin.js +109 -0
  455. package/dist/migrate/fusionauth/plugin.js.map +1 -0
  456. package/dist/migrate/hanko/plugin.d.ts +2 -0
  457. package/dist/migrate/hanko/plugin.js +100 -0
  458. package/dist/migrate/hanko/plugin.js.map +1 -0
  459. package/dist/migrate/keycloak/plugin.d.ts +2 -0
  460. package/dist/migrate/keycloak/plugin.js +148 -0
  461. package/dist/migrate/keycloak/plugin.js.map +1 -0
  462. package/dist/migrate/kinde/plugin.d.ts +2 -0
  463. package/dist/migrate/kinde/plugin.js +105 -0
  464. package/dist/migrate/kinde/plugin.js.map +1 -0
  465. package/dist/migrate/ldap/plugin.d.ts +2 -0
  466. package/dist/migrate/ldap/plugin.js +73 -0
  467. package/dist/migrate/ldap/plugin.js.map +1 -0
  468. package/dist/migrate/logto/plugin.d.ts +2 -0
  469. package/dist/migrate/logto/plugin.js +131 -0
  470. package/dist/migrate/logto/plugin.js.map +1 -0
  471. package/dist/migrate/magic/plugin.d.ts +2 -0
  472. package/dist/migrate/magic/plugin.js +56 -0
  473. package/dist/migrate/magic/plugin.js.map +1 -0
  474. package/dist/migrate/nhost/plugin.d.ts +2 -0
  475. package/dist/migrate/nhost/plugin.js +115 -0
  476. package/dist/migrate/nhost/plugin.js.map +1 -0
  477. package/dist/migrate/oidc/plugin.d.ts +2 -0
  478. package/dist/migrate/oidc/plugin.js +73 -0
  479. package/dist/migrate/oidc/plugin.js.map +1 -0
  480. package/dist/migrate/okta/plugin.d.ts +2 -0
  481. package/dist/migrate/okta/plugin.js +105 -0
  482. package/dist/migrate/okta/plugin.js.map +1 -0
  483. package/dist/migrate/onelogin/plugin.d.ts +2 -0
  484. package/dist/migrate/onelogin/plugin.js +61 -0
  485. package/dist/migrate/onelogin/plugin.js.map +1 -0
  486. package/dist/migrate/ory/plugin.d.ts +2 -0
  487. package/dist/migrate/ory/plugin.js +186 -0
  488. package/dist/migrate/ory/plugin.js.map +1 -0
  489. package/dist/migrate/ping-identity/plugin.d.ts +2 -0
  490. package/dist/migrate/ping-identity/plugin.js +100 -0
  491. package/dist/migrate/ping-identity/plugin.js.map +1 -0
  492. package/dist/migrate/pocketbase/plugin.d.ts +2 -0
  493. package/dist/migrate/pocketbase/plugin.js +99 -0
  494. package/dist/migrate/pocketbase/plugin.js.map +1 -0
  495. package/dist/migrate/propelauth/plugin.d.ts +2 -0
  496. package/dist/migrate/propelauth/plugin.js +65 -0
  497. package/dist/migrate/propelauth/plugin.js.map +1 -0
  498. package/dist/migrate/saml/plugin.d.ts +2 -0
  499. package/dist/migrate/saml/plugin.js +79 -0
  500. package/dist/migrate/saml/plugin.js.map +1 -0
  501. package/dist/migrate/stytch/plugin.d.ts +2 -0
  502. package/dist/migrate/stytch/plugin.js +97 -0
  503. package/dist/migrate/stytch/plugin.js.map +1 -0
  504. package/dist/migrate/supabase/plugin.d.ts +2 -0
  505. package/dist/migrate/supabase/plugin.js +149 -0
  506. package/dist/migrate/supabase/plugin.js.map +1 -0
  507. package/dist/migrate/supertokens/plugin.d.ts +2 -0
  508. package/dist/migrate/supertokens/plugin.js +114 -0
  509. package/dist/migrate/supertokens/plugin.js.map +1 -0
  510. package/dist/migrate/user-table/plugin.d.ts +2 -0
  511. package/dist/migrate/user-table/plugin.js +62 -0
  512. package/dist/migrate/user-table/plugin.js.map +1 -0
  513. package/dist/migrate/userfront/plugin.d.ts +2 -0
  514. package/dist/migrate/userfront/plugin.js +60 -0
  515. package/dist/migrate/userfront/plugin.js.map +1 -0
  516. package/dist/migrate/workos/plugin.d.ts +2 -0
  517. package/dist/migrate/workos/plugin.js +81 -0
  518. package/dist/migrate/workos/plugin.js.map +1 -0
  519. package/dist/migrate/zitadel/plugin.d.ts +2 -0
  520. package/dist/migrate/zitadel/plugin.js +114 -0
  521. package/dist/migrate/zitadel/plugin.js.map +1 -0
  522. package/dist/output.d.ts +41 -0
  523. package/dist/output.js +72 -0
  524. package/dist/output.js.map +1 -0
  525. package/dist/project.d.ts +64 -0
  526. package/dist/project.js +86 -0
  527. package/dist/project.js.map +1 -0
  528. package/dist/prompt.d.ts +15 -0
  529. package/dist/prompt.js +46 -0
  530. package/dist/prompt.js.map +1 -0
  531. package/dist/redact.d.ts +41 -0
  532. package/dist/redact.js +115 -0
  533. package/dist/redact.js.map +1 -0
  534. package/dist/run.d.ts +12 -0
  535. package/dist/run.js +169 -0
  536. package/dist/run.js.map +1 -0
  537. package/dist/secrets.d.ts +41 -0
  538. package/dist/secrets.js +142 -0
  539. package/dist/secrets.js.map +1 -0
  540. package/dist/serialize.d.ts +30 -0
  541. package/dist/serialize.js +131 -0
  542. package/dist/serialize.js.map +1 -0
  543. package/dist/version.d.ts +7 -0
  544. package/dist/version.js +21 -0
  545. package/dist/version.js.map +1 -0
  546. package/package.json +3 -3
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchFirebaseConfig = fetchFirebaseConfig;
4
+ exports.translateFirebaseConfig = translateFirebaseConfig;
5
+ const record_set_1 = require("./record-set");
6
+ const translate_kit_1 = require("./translate-kit");
7
+ const vendor_http_1 = require("./vendor-http");
8
+ async function fetchFirebaseConfig(http, projectId) {
9
+ const base = `/v2/projects/${encodeURIComponent(projectId)}`;
10
+ const { body: config } = await http.get(`${base}/config`);
11
+ const list = async (kind) => {
12
+ try {
13
+ const out = [];
14
+ let token;
15
+ do {
16
+ const { body } = await http.get(`${base}/${kind}?pageSize=100${token ? `&nextPageToken=${encodeURIComponent(token)}` : ''}`);
17
+ out.push(...(0, record_set_1.objs)(body?.[kind]));
18
+ token = (0, record_set_1.str)(body?.nextPageToken);
19
+ } while (token);
20
+ return out;
21
+ }
22
+ catch (err) {
23
+ // Tenants and some provider lists exist only on Identity Platform.
24
+ if (err instanceof vendor_http_1.VendorApiError && [400, 403, 404].includes(err.status))
25
+ return [];
26
+ throw err;
27
+ }
28
+ };
29
+ return {
30
+ projectId,
31
+ config: (0, record_set_1.isObj)(config) ? config : {},
32
+ defaultIdps: await list('defaultSupportedIdpConfigs'),
33
+ oidcIdps: await list('oauthIdpConfigs'),
34
+ samlIdps: await list('inboundSamlConfigs'),
35
+ tenants: await list('tenants'),
36
+ };
37
+ }
38
+ /** Firebase's built-in providers → Atlas built-in provider keys. */
39
+ const SOCIAL = {
40
+ 'google.com': 'google',
41
+ 'facebook.com': 'facebook',
42
+ 'twitter.com': 'x',
43
+ 'github.com': 'github',
44
+ 'apple.com': 'apple',
45
+ 'microsoft.com': 'microsoft',
46
+ 'linkedin.com': 'linkedin',
47
+ 'yahoo.com': 'yahoo',
48
+ };
49
+ const node = (o, ...path) => {
50
+ let cur = o;
51
+ for (const k of path)
52
+ cur = (0, record_set_1.isObj)(cur) ? cur[k] : undefined;
53
+ return (0, record_set_1.isObj)(cur) ? cur : {};
54
+ };
55
+ const lastName = (name) => (0, record_set_1.str)(name)?.split('/').pop();
56
+ function translateFirebaseConfig(snap) {
57
+ const b = new translate_kit_1.ConfigBuilder();
58
+ const c = snap.config;
59
+ const signIn = node(c, 'signIn');
60
+ // ── sign-in methods ──
61
+ const email = node(signIn, 'email');
62
+ const emailOn = email.enabled === true;
63
+ const passwordRequired = email.passwordRequired !== false;
64
+ b.set('strategies.password', emailOn && passwordRequired);
65
+ b.add('mapped', 'sign-in method', 'signIn.email.enabled', emailOn ? 'Email / password sign-in on.' : 'Email / password sign-in off.', 'auth_config.strategies.password');
66
+ if (emailOn) {
67
+ // passwordRequired=false is "Email link (passwordless sign-in)".
68
+ b.set('strategies.emailLink', !passwordRequired);
69
+ b.add('mapped', 'sign-in method', 'signIn.email.passwordRequired', passwordRequired ? 'Passwords are required (no email-link sign-in).' : 'Email-link (passwordless) sign-in on.', 'auth_config.strategies.emailLink');
70
+ }
71
+ const phone = node(signIn, 'phoneNumber');
72
+ b.set('strategies.phoneCode', phone.enabled === true);
73
+ b.add('mapped', 'sign-in method', 'signIn.phoneNumber.enabled', phone.enabled === true ? 'SMS code sign-in on. Configure your SMS provider in Atlas.' : 'Phone sign-in off.', 'auth_config.strategies.phoneCode');
74
+ const testNumbers = Object.keys(node(phone, 'testPhoneNumbers'));
75
+ if (testNumbers.length)
76
+ b.add('manual', 'sign-in method', 'signIn.phoneNumber.testPhoneNumbers', `${testNumbers.length} fictional test number(s): use Atlas development instances' test numbers instead (codes are not copied).`);
77
+ const anon = node(signIn, 'anonymous').enabled === true;
78
+ b.set('strategies.anonymous', anon);
79
+ b.add('mapped', 'sign-in method', 'signIn.anonymous.enabled', anon ? 'Guest (anonymous) sign-in on.' : 'Anonymous sign-in off.', 'auth_config.strategies.anonymous');
80
+ if (signIn.allowDuplicateEmails === true) {
81
+ b.add('differs', 'user account linking', 'signIn.allowDuplicateEmails', 'Firebase allowed one account per provider for the same email; Atlas keeps one user per email and links providers to it. Duplicate accounts are reported as conflicts at import.', 'auth_config');
82
+ }
83
+ if ((0, record_set_1.isObj)(signIn.hashConfig)) {
84
+ b.add('mapped', 'password hash parameters', 'signIn.hashConfig', 'The export carries these parameters with every password hash; Atlas verifies Firebase scrypt hashes and re-hashes each password on its first sign-in.');
85
+ }
86
+ // ── social, OIDC and SAML providers ──
87
+ for (const idp of snap.defaultIdps) {
88
+ const id = lastName(idp.name);
89
+ if (!id)
90
+ continue;
91
+ const key = SOCIAL[id];
92
+ if (!key) {
93
+ b.add('manual', 'sign-in method', `defaultSupportedIdpConfigs/${id}`, `"${id}" has no Atlas built-in provider: add it as a custom OAuth provider, or let those users sign in with email.`, 'custom_oauth_providers');
94
+ continue;
95
+ }
96
+ b.socialProvider({ atlasKey: key, vendorName: id, area: 'sign-in method', setting: `defaultSupportedIdpConfigs/${id}`, clientId: (0, record_set_1.str)(idp.clientId), enabled: idp.enabled === true });
97
+ if (id === 'apple.com' && (0, record_set_1.isObj)(idp.appleSignInConfig)) {
98
+ b.add('manual', 'sign-in method', `defaultSupportedIdpConfigs/apple.com.appleSignInConfig`, 'Sign in with Apple: add your Services ID, team id, key id and private key on the Atlas apple provider (and native bundle ids under auth_config.nativeApps).', 'oauth_providers apple');
99
+ }
100
+ }
101
+ for (const idp of snap.oidcIdps) {
102
+ const id = lastName(idp.name);
103
+ if (!id)
104
+ continue;
105
+ const providerKey = id.replace(/^oidc\./, '').toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 48) || 'oidc';
106
+ const upper = providerKey.toUpperCase();
107
+ const issuer = (0, record_set_1.str)(idp.issuer);
108
+ const doc = {
109
+ provider_key: providerKey,
110
+ display_name: (0, record_set_1.str)(idp.displayName) ?? id,
111
+ protocol: 'oidc',
112
+ client_id: (0, record_set_1.str)(idp.clientId) ?? b.placeholder(`${upper}_CLIENT_ID`, `${id} client id`),
113
+ client_secret: b.placeholder(`${upper}_CLIENT_SECRET`, `${id} client secret`),
114
+ enabled: idp.enabled === true,
115
+ allow_sign_in: true,
116
+ allow_sign_up: true,
117
+ };
118
+ if (issuer) {
119
+ doc.issuer = issuer;
120
+ doc.discovery_url = `${issuer.replace(/\/+$/, '')}/.well-known/openid-configuration`;
121
+ }
122
+ const rt = node(idp, 'responseType');
123
+ if (rt.code === true)
124
+ doc.token_endpoint_auth_method = 'client_secret_post';
125
+ b.push('custom_oauth_providers', doc);
126
+ b.providers[id] = providerKey;
127
+ b.add(rt.idToken === true && rt.code !== true ? 'differs' : 'mapped', 'sign-in method', `oauthIdpConfigs/${id}`, `OIDC provider "${id}" becomes the custom OIDC provider "${providerKey}"${rt.idToken === true && rt.code !== true ? ' (Firebase used the implicit id_token flow; Atlas uses the code flow, so the client needs a secret)' : ''}. Add Atlas's redirect URI to the IdP and set ${upper}_CLIENT_SECRET. Imported identities keep provider "${id}"; map it with provider_map ${id}=${providerKey}.`, `custom_oauth_providers ${providerKey}`);
128
+ }
129
+ for (const idp of snap.samlIdps) {
130
+ const id = lastName(idp.name);
131
+ if (!id)
132
+ continue;
133
+ b.add('mapped', 'sign-in method', `inboundSamlConfigs/${id}`, `SAML provider "${(0, record_set_1.str)(idp.displayName) ?? id}" moves with the data export as an SSO connection. Give the IdP Atlas's ACS URL and entity id before turning it on.`, 'sso_connections');
134
+ }
135
+ // ── MFA ──
136
+ const mfa = node(c, 'mfa');
137
+ const state = (0, record_set_1.str)(mfa.state);
138
+ if (state === 'ENABLED' || state === 'MANDATORY') {
139
+ b.set('mfaPolicy', state === 'MANDATORY' ? 'required' : 'optional');
140
+ b.add('mapped', 'multi-factor', 'mfa.state', state === 'MANDATORY' ? 'MFA required.' : 'MFA optional.', 'auth_config.mfaPolicy');
141
+ const sms = (0, record_set_1.strs)(mfa.enabledProviders).includes('PHONE_SMS');
142
+ b.set('mfa.factors.sms', sms);
143
+ b.add('mapped', 'multi-factor', 'mfa.enabledProviders', sms ? 'SMS second factor on; enrolled phone numbers are imported.' : 'No SMS second factor.', 'auth_config.mfa.factors.sms');
144
+ const totp = (0, record_set_1.objs)(mfa.providerConfigs).find((p) => (0, record_set_1.isObj)(p.totpProviderConfig));
145
+ if (totp) {
146
+ b.set('mfa.factors.totp', (0, record_set_1.str)(totp.state) === 'ENABLED');
147
+ b.add('differs', 'multi-factor', 'mfa.providerConfigs.totpProviderConfig', 'Authenticator-app second factor on. Firebase never exports TOTP secrets: enrolled users enrol again in Atlas.', 'auth_config.mfa.factors.totp');
148
+ const adjacent = node(totp, 'totpProviderConfig').adjacentIntervals;
149
+ if (typeof adjacent === 'number')
150
+ b.add('differs', 'multi-factor', 'mfa.providerConfigs.totpProviderConfig.adjacentIntervals', `Firebase accepted ±${adjacent} adjacent interval(s); Atlas accepts ±1.`);
151
+ }
152
+ }
153
+ else {
154
+ b.add('mapped', 'multi-factor', 'mfa.state', 'MFA off.', 'auth_config.mfaPolicy');
155
+ }
156
+ // ── password policy ──
157
+ const pp = node(c, 'passwordPolicyConfig');
158
+ const enforce = (0, record_set_1.str)(pp.passwordPolicyEnforcementState);
159
+ const version = (0, record_set_1.objs)(pp.passwordPolicyVersions)[0];
160
+ const strength = version ? node(version, 'customStrengthOptions') : {};
161
+ if (enforce === 'ENFORCE' || enforce === 'NOT_ENFORCE') {
162
+ if (typeof strength.minPasswordLength === 'number')
163
+ b.set('passwordPolicy.minLength', Math.max(strength.minPasswordLength, 6));
164
+ if (typeof strength.maxPasswordLength === 'number')
165
+ b.set('passwordPolicy.maxLength', Math.min(strength.maxPasswordLength, 4096));
166
+ for (const [fb, atlas] of [
167
+ ['containsUppercaseCharacter', 'requireUppercase'],
168
+ ['containsLowercaseCharacter', 'requireLowercase'],
169
+ ['containsNumericCharacter', 'requireNumber'],
170
+ ['containsNonAlphanumericCharacter', 'requireSymbol'],
171
+ ]) {
172
+ if (typeof strength[fb] === 'boolean')
173
+ b.set(`passwordPolicy.${atlas}`, strength[fb]);
174
+ }
175
+ b.add(enforce === 'ENFORCE' ? 'mapped' : 'differs', 'password policy', 'passwordPolicyConfig', enforce === 'ENFORCE' ? 'Password requirements enforced at sign-up and password change.' : 'Firebase only reported (NOT_ENFORCE) violations; Atlas enforces its policy.', 'auth_config.passwordPolicy');
176
+ if (pp.forceUpgradeOnSignin === true)
177
+ b.add('differs', 'password policy', 'passwordPolicyConfig.forceUpgradeOnSignin', 'Atlas does not force a password change at sign-in for an old password that misses the policy; it applies on the next change.');
178
+ }
179
+ else {
180
+ b.add('differs', 'password policy', 'passwordPolicyConfig', 'No Firebase policy (6 characters minimum). Atlas defaults to 8 and checks breached passwords; imported passwords keep working.', 'auth_config.passwordPolicy');
181
+ }
182
+ // ── domains, blocking functions and the rest ──
183
+ const domains = (0, record_set_1.strs)(c.authorizedDomains);
184
+ const origins = domains.filter((d) => !/\.(firebaseapp\.com|web\.app)$/.test(d)).map((d) => (d === 'localhost' || d.startsWith('127.') ? `http://${d}` : `https://${d}`));
185
+ if (origins.length) {
186
+ b.instance.allowed_origins = origins;
187
+ b.add('differs', 'authorized domains', 'authorizedDomains', `Firebase authorized domains become allowed origins (${origins.length}); the *.firebaseapp.com / *.web.app hosting domains are dropped — add them if you keep hosting there.`, 'instance.allowed_origins');
188
+ }
189
+ const triggers = Object.keys(node(c, 'blockingFunctions', 'triggers'));
190
+ for (const t of triggers) {
191
+ const what = t === 'beforeCreate' ? 'a before-sign-up action (or a user.created webhook)' : t === 'beforeSignIn' ? 'a before-sign-in action (custom claims become a JWT template)' : 'Atlas email / SMS templates and your own delivery provider';
192
+ b.add('manual', 'blocking functions', `blockingFunctions.triggers.${t}`, `Move this Cloud Function to ${what}.`);
193
+ }
194
+ if (node(c, 'emailPrivacyConfig').enableImprovedEmailPrivacy === true)
195
+ b.add('mapped', 'user actions', 'emailPrivacyConfig.enableImprovedEmailPrivacy', 'Atlas never reveals whether an email has an account.');
196
+ if ((0, record_set_1.isObj)(c.autodeleteAnonymousUsers) || c.autodeleteAnonymousUsers === true)
197
+ b.add('manual', 'user actions', 'autodeleteAnonymousUsers', 'Clean up stale guest users with a scheduled call to the Atlas Backend API.');
198
+ if ((0, record_set_1.isObj)(c.recaptchaConfig) && Object.keys(c.recaptchaConfig).length)
199
+ b.add('differs', 'fraud prevention', 'recaptchaConfig', 'Atlas has its own bot protection (turn it on under Attack protection); reCAPTCHA keys are not used.', 'auth_config');
200
+ if ((0, record_set_1.isObj)(c.smsRegionConfig) && Object.keys(c.smsRegionConfig).length)
201
+ b.add('manual', 'fraud prevention', 'smsRegionConfig', 'Restrict SMS countries in Atlas under SMS settings.');
202
+ if ((0, record_set_1.isObj)(c.quota) && Object.keys(c.quota).length)
203
+ b.add('differs', 'quota', 'quota.signUpQuotaConfig', 'Atlas applies its own sign-up rate limits per IP.');
204
+ const sendEmail = node(c, 'notification', 'sendEmail');
205
+ if (Object.keys(sendEmail).length)
206
+ b.add('manual', 'templates', 'notification.sendEmail', 'Recreate customised email templates (and the action URL / custom SMTP) in Atlas; template bodies are not copied.');
207
+ if (node(c, 'multiTenant').allowTenants === true || snap.tenants.length) {
208
+ b.add('manual', 'multi-tenancy', 'multiTenant.allowTenants', `${snap.tenants.length} Identity Platform tenant(s). Export each into its own Atlas instance (tenant=<id>), or all of them as organizations of one instance (tenant=all). Each tenant's own providers and MFA settings are not translated here.`);
209
+ }
210
+ b.add('mapped', 'sessions', 'ID token / refresh token', 'Firebase ID tokens live one hour with long-lived refresh tokens; Atlas keeps its own session lifetime (auth_config.session). The firebase bridge preset exchanges a Firebase ID token for an Atlas session.', 'auth_config.session');
211
+ return b.result(`firebase project ${snap.projectId}`, {
212
+ bridge: { preset: 'firebase', vars: { project_id: snap.projectId } },
213
+ });
214
+ }
215
+ //# sourceMappingURL=firebase-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firebase-config.js","sourceRoot":"","sources":["../../../src/migrate/export/firebase-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import type { IdentityRecord, MfaFactorRecord, UserRecord } from '@atlasauth/migrate';
2
+ import { RecordSet, type Obj } from './record-set';
3
+ import { VendorHttp } from './vendor-http';
4
+ /**
5
+ * `atlas migrate export firebase` — Firebase Authentication and Google Cloud
6
+ * Identity Platform (including multi-tenant projects) onto the canonical
7
+ * bundle models.
8
+ *
9
+ * Two inputs, both on the owner's machine:
10
+ * - the Identity Toolkit Admin REST API (`accounts:batchGet`, the same call
11
+ * the Admin SDK's `listUsers` makes) with a service-account key file or
12
+ * an OAuth access token. The key signs a JWT assertion locally; it is
13
+ * exchanged for an access token at Google and never goes anywhere else.
14
+ * This is the complete export: every provider link (OIDC and SAML too),
15
+ * the second factors and the tenants.
16
+ * - a `firebase auth:export` file (JSON or CSV). It is smaller: the CLI keeps
17
+ * ten social providers only, drops OIDC / SAML / phone links, cannot
18
+ * export a tenant, and its CSV has no second factors.
19
+ *
20
+ * Password hashes are Firebase's modified scrypt; they verify in Atlas with
21
+ * the project's hash parameters (signer key, salt separator, rounds, memory
22
+ * cost), read from the project config with the same credentials or passed as
23
+ * flags (Console → Authentication → Users → ⋮ → Password hash parameters).
24
+ * Every tenant has its own parameters.
25
+ *
26
+ * Firebase never exports TOTP secrets (the enrollment has no fields): those
27
+ * users enrol again. SMS second factors move by phone number. Sessions are
28
+ * not exported: the `firebase` bridge preset exchanges a Firebase ID token.
29
+ */
30
+ export interface FirebaseHashParams {
31
+ signer_key: string;
32
+ salt_separator: string;
33
+ rounds: number;
34
+ mem_cost: number;
35
+ }
36
+ export interface FirebaseServiceAccount {
37
+ client_email: string;
38
+ private_key: string;
39
+ private_key_id?: string;
40
+ project_id?: string;
41
+ token_uri?: string;
42
+ }
43
+ export interface FirebaseExportOptions {
44
+ /** The Firebase / Google Cloud project id. */
45
+ projectId: string;
46
+ /** A service-account key file's JSON (Firebase Authentication Admin or Identity Platform Viewer + hash access). */
47
+ serviceAccountJson?: string;
48
+ /** An OAuth 2.0 access token instead (`gcloud auth print-access-token`). */
49
+ accessToken?: string;
50
+ /** A `firebase auth:export` file (JSON or CSV), instead of the API. */
51
+ usersText?: string;
52
+ usersFileName?: string;
53
+ /** Project-level users (default), one tenant id, or `all` (every tenant, each as an organization). */
54
+ tenant?: string;
55
+ /** Hash parameters from flags; win over what the API reports. */
56
+ hashParams?: Partial<FirebaseHashParams>;
57
+ /** Export anonymous users too (default: left out). */
58
+ includeAnonymous?: boolean;
59
+ fetchImpl?: typeof fetch;
60
+ sleep?: (ms: number) => Promise<void>;
61
+ now?: () => number;
62
+ onProgress?: (message: string) => void;
63
+ }
64
+ /** Firebase's `-_` alphabet → standard base64 (the CLI does the same; the Admin SDK does not). */
65
+ export declare const stdBase64: (v: string) => string;
66
+ export declare function parseServiceAccount(text: string): FirebaseServiceAccount;
67
+ /** The RS256 JWT assertion of the OAuth 2.0 JWT-bearer grant, signed locally with the service account's key. */
68
+ export declare function serviceAccountAssertion(sa: FirebaseServiceAccount, nowSeconds: number): string;
69
+ /** Exchange the assertion for an access token — at Google, the only place the key's signature goes. */
70
+ export declare function serviceAccountToken(sa: FirebaseServiceAccount, fetchImpl?: typeof fetch, now?: () => number): Promise<string>;
71
+ export declare function firebaseHttp(o: {
72
+ accessToken?: string;
73
+ serviceAccount?: FirebaseServiceAccount;
74
+ projectId: string;
75
+ fetchImpl?: typeof fetch;
76
+ sleep?: (ms: number) => Promise<void>;
77
+ now?: () => number;
78
+ }): VendorHttp;
79
+ /** A project's (or tenant's) password hash parameters, from the admin v2 config. Null when the caller cannot read them. */
80
+ export declare function fetchHashConfig(http: VendorHttp, projectId: string, tenant?: string): Promise<{
81
+ params: Partial<FirebaseHashParams>;
82
+ algorithm?: string;
83
+ } | null>;
84
+ /** `signIn.hashConfig` (or the console's names) → the registry's scrypt_firebase params. */
85
+ export declare function hashParamsOf(hc: Obj): Partial<FirebaseHashParams>;
86
+ export declare function exportFirebase(opts: FirebaseExportOptions): Promise<RecordSet>;
87
+ export interface MappedFirebaseUser {
88
+ user: UserRecord | null;
89
+ identities: IdentityRecord[];
90
+ factors: MfaFactorRecord[];
91
+ totp: number;
92
+ anonymous: boolean;
93
+ redacted: boolean;
94
+ otherVersion: boolean;
95
+ }
96
+ export declare function mapFirebaseUser(u: Obj, ctx: {
97
+ params: FirebaseHashParams | null;
98
+ includeAnonymous?: boolean;
99
+ tenant?: string;
100
+ }): MappedFirebaseUser;
101
+ /** `firebase auth:export` JSON (`{"users": [...]}`) or its header-less 52-column CSV → UserInfo-shaped objects. */
102
+ export declare function parseFirebaseExport(text: string, fileName?: string): Obj[];