@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,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchFusionAuthConfig = fetchFusionAuthConfig;
4
+ exports.translateFusionAuthConfig = translateFusionAuthConfig;
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 fetchFusionAuthConfig(http, baseUrl, warn = () => undefined) {
9
+ const list = async (path, key, what) => {
10
+ try {
11
+ const { body } = await http.get(path);
12
+ return (0, record_set_1.isObj)(body) ? (0, record_set_1.objs)(body[key]) : [];
13
+ }
14
+ catch (err) {
15
+ if (!(err instanceof vendor_http_1.VendorApiError) || ![401, 403, 404].includes(err.status))
16
+ throw err;
17
+ if (err.status !== 404)
18
+ warn(`${what} could not be read with this API key (${err.status}) and were skipped.`);
19
+ return [];
20
+ }
21
+ };
22
+ return {
23
+ baseUrl,
24
+ tenants: await list('/api/tenant', 'tenants', 'Tenants'),
25
+ applications: await list('/api/application', 'applications', 'Applications'),
26
+ identityProviders: await list('/api/identity-provider', 'identityProviders', 'Identity providers'),
27
+ lambdas: await list('/api/lambda', 'lambdas', 'Lambdas'),
28
+ webhooks: await list('/api/webhook', 'webhooks', 'Webhooks'),
29
+ themes: await list('/api/theme', 'themes', 'Themes'),
30
+ };
31
+ }
32
+ const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : 0);
33
+ function translateFusionAuthConfig(snap, opts = {}) {
34
+ const b = new translate_kit_1.ConfigBuilder();
35
+ const tenant = (opts.tenantId ? snap.tenants.find((t) => (0, record_set_1.str)(t.id) === opts.tenantId) : snap.tenants.find((t) => t.name === 'Default') ?? snap.tenants[0]) ?? {};
36
+ const tName = (0, record_set_1.str)(tenant.name) ?? 'tenant';
37
+ const area = `tenant ${tName}`;
38
+ b.set('strategies.password', true);
39
+ b.add('differs', 'authentication', 'password', 'Password sign-in. A database export carries the hashes (FusionAuth schemes verify as they are and re-hash on first sign-in); with the API alone, use the fusionauth lazy-migration preset.', 'auth_config.strategies.password');
40
+ if (snap.tenants.length > 1)
41
+ b.add('differs', 'tenants', 'tenants', `${snap.tenants.length} tenants: this report covers "${tName}". One Atlas instance per tenant, or one instance with tenants as organizations (data export tenantsAs).`, 'organizations');
42
+ // ── password rules ──
43
+ const rules = (0, record_set_1.isObj)(tenant.passwordValidationRules) ? tenant.passwordValidationRules : {};
44
+ const min = num(rules.minLength);
45
+ b.set('passwordPolicy.minLength', Math.max(8, min || 8));
46
+ if (min)
47
+ b.add(min < 8 ? 'differs' : 'mapped', area, 'passwordValidationRules.minLength', `${min}${min < 8 ? ' (Atlas requires at least 8; existing passwords still sign in)' : ''}.`, 'auth_config.passwordPolicy.minLength');
48
+ if (num(rules.maxLength)) {
49
+ b.set('passwordPolicy.maxLength', Math.min(num(rules.maxLength), 4096));
50
+ b.add('mapped', area, 'passwordValidationRules.maxLength', `${rules.maxLength}.`, 'auth_config.passwordPolicy.maxLength');
51
+ }
52
+ if (rules.requireMixedCase === true) {
53
+ b.set('passwordPolicy.requireUppercase', true);
54
+ b.set('passwordPolicy.requireLowercase', true);
55
+ b.add('mapped', area, 'passwordValidationRules.requireMixedCase', 'Upper and lower case required.', 'auth_config.passwordPolicy');
56
+ }
57
+ if (rules.requireNumber === true) {
58
+ b.set('passwordPolicy.requireNumber', true);
59
+ b.add('mapped', area, 'passwordValidationRules.requireNumber', 'A number required.', 'auth_config.passwordPolicy.requireNumber');
60
+ }
61
+ if (rules.requireNonAlpha === true) {
62
+ b.set('passwordPolicy.requireSymbol', true);
63
+ b.add('mapped', area, 'passwordValidationRules.requireNonAlpha', 'A non-alphanumeric character required.', 'auth_config.passwordPolicy.requireSymbol');
64
+ }
65
+ const history = (0, record_set_1.isObj)(rules.rememberPreviousPasswords) ? rules.rememberPreviousPasswords : {};
66
+ if (history.enabled === true && num(history.count)) {
67
+ b.set('passwordPolicy.historyCount', num(history.count));
68
+ b.add('mapped', area, 'passwordValidationRules.rememberPreviousPasswords', `Last ${history.count} passwords. Atlas starts the history at the first password set in Atlas.`, 'auth_config.passwordPolicy.historyCount');
69
+ }
70
+ const breach = (0, record_set_1.isObj)(rules.breachDetection) ? rules.breachDetection : {};
71
+ if (breach.enabled === true) {
72
+ b.set('passwordPolicy.checkBreaches', true);
73
+ b.add('mapped', area, 'passwordValidationRules.breachDetection', 'Breached passwords are refused.', 'auth_config.passwordPolicy.checkBreaches');
74
+ }
75
+ const pw = (0, record_set_1.isObj)(tenant.passwordEncryptionConfiguration) ? tenant.passwordEncryptionConfiguration : {};
76
+ if ((0, record_set_1.str)(pw.encryptionScheme))
77
+ b.add('differs', area, `passwordEncryptionConfiguration ${pw.encryptionScheme}`, 'Atlas stores Argon2id; imported FusionAuth hashes verify as they are and re-hash on first sign-in.', 'auth_config.passwordPolicy');
78
+ // ── multi-factor ──
79
+ const mfa = (0, record_set_1.isObj)(tenant.multiFactorConfiguration) ? tenant.multiFactorConfiguration : {};
80
+ const policy = (0, record_set_1.str)(mfa.loginPolicy);
81
+ if (policy === 'Required') {
82
+ b.set('mfaPolicy', 'required');
83
+ b.add('mapped', area, 'multiFactorConfiguration.loginPolicy', 'A second factor on every sign-in.', 'auth_config.mfaPolicy');
84
+ }
85
+ else if (policy === 'Enabled') {
86
+ b.set('mfaPolicy', 'optional');
87
+ b.add('mapped', area, 'multiFactorConfiguration.loginPolicy', 'Second factor optional (users who enrolled are challenged).', 'auth_config.mfaPolicy');
88
+ }
89
+ if ((0, record_set_1.isObj)(mfa.authenticator) && mfa.authenticator.enabled !== false) {
90
+ b.set('mfa.factors.totp', true);
91
+ b.add('mapped', area, 'multiFactorConfiguration.authenticator', 'Authenticator apps. Secrets move with a database export; with the API alone users enrol again.', 'auth_config.mfa.factors.totp');
92
+ }
93
+ if ((0, record_set_1.isObj)(mfa.email) && mfa.email.enabled === true) {
94
+ b.set('mfa.factors.emailCode', true);
95
+ b.add('mapped', area, 'multiFactorConfiguration.email', 'Email code as a second factor.', 'auth_config.mfa.factors.emailCode');
96
+ }
97
+ if ((0, record_set_1.isObj)(mfa.sms) && mfa.sms.enabled === true) {
98
+ b.set('mfa.factors.sms', true);
99
+ b.add('differs', area, 'multiFactorConfiguration.sms', 'SMS second factor: the phone numbers move with the data export; Atlas sends through your own messaging provider (bring your own keys), and recommends TOTP or passkeys.', 'auth_config.mfa.factors.sms');
100
+ }
101
+ const webauthn = (0, record_set_1.isObj)(tenant.webAuthnConfiguration) ? tenant.webAuthnConfiguration : {};
102
+ if (webauthn.enabled === true) {
103
+ b.set('strategies.passkey', true);
104
+ b.set('mfa.factors.passkey', true);
105
+ b.add('differs', area, 'webAuthnConfiguration', `Passkeys. FusionAuth does not export WebAuthn credentials: users register again${(0, record_set_1.str)(webauthn.relyingPartyId) ? ` (relying party ${webauthn.relyingPartyId})` : ''}.`, 'auth_config.mfa.factors.passkey');
106
+ }
107
+ // ── tokens and sessions ──
108
+ const jwt = (0, record_set_1.isObj)(tenant.jwtConfiguration) ? tenant.jwtConfiguration : {};
109
+ if (num(jwt.timeToLiveInSeconds)) {
110
+ b.set('session.jwtTtlSeconds', Math.min(Math.max(num(jwt.timeToLiveInSeconds), 60), 3600));
111
+ b.add('mapped', area, 'jwtConfiguration.timeToLiveInSeconds', `${jwt.timeToLiveInSeconds} seconds (Atlas allows 60 to 3600).`, 'auth_config.session.jwtTtlSeconds');
112
+ }
113
+ if (num(jwt.refreshTokenTimeToLiveInMinutes)) {
114
+ b.set('session.absoluteMs', (0, translate_kit_1.clampSessionMs)(num(jwt.refreshTokenTimeToLiveInMinutes) * 60_000));
115
+ b.add('mapped', area, 'jwtConfiguration.refreshTokenTimeToLiveInMinutes', `${jwt.refreshTokenTimeToLiveInMinutes} minutes.`, 'auth_config.session.absoluteMs');
116
+ }
117
+ if ((0, record_set_1.str)(jwt.refreshTokenExpirationPolicy) === 'SlidingWindow' && num(jwt.refreshTokenTimeToLiveInMinutes)) {
118
+ b.set('session.idleMs', (0, translate_kit_1.clampSessionMs)(num(jwt.refreshTokenTimeToLiveInMinutes) * 60_000));
119
+ b.add('mapped', area, 'jwtConfiguration.refreshTokenExpirationPolicy', 'Sliding window: an idle limit of the same length.', 'auth_config.session.idleMs');
120
+ }
121
+ const failed = (0, record_set_1.isObj)(tenant.failedAuthenticationConfiguration) ? tenant.failedAuthenticationConfiguration : {};
122
+ if (num(failed.tooManyAttempts))
123
+ b.add('mapped', area, 'failedAuthenticationConfiguration', `Lockout after ${failed.tooManyAttempts} failures: Atlas throttles failed sign-ins per account and IP (a locked user can be banned by an administrator).`, 'auth_config.rateLimit');
124
+ // ── applications: sign-up, redirect URLs, roles ──
125
+ const redirects = new Set();
126
+ let roleCount = 0;
127
+ for (const app of snap.applications) {
128
+ if (app.active === false)
129
+ continue;
130
+ const name = (0, record_set_1.str)(app.name) ?? (0, record_set_1.str)(app.id) ?? 'application';
131
+ const reg = (0, record_set_1.isObj)(app.registrationConfiguration) ? app.registrationConfiguration : {};
132
+ if (reg.enabled !== true && !b.auth.signUpMode) {
133
+ b.set('signUpMode', 'restricted');
134
+ b.add('mapped', `applications ${name}`, 'registrationConfiguration.enabled', 'Self-registration is off: Atlas sign-up is restricted (invitations still work).', 'auth_config.signUpMode');
135
+ }
136
+ if (app.verifyRegistration === true) {
137
+ b.set('requireEmailVerification', true);
138
+ b.add('mapped', `applications ${name}`, 'verifyRegistration', 'Email verification required.', 'auth_config.requireEmailVerification');
139
+ }
140
+ const oauth = (0, record_set_1.isObj)(app.oauthConfiguration) ? app.oauthConfiguration : {};
141
+ for (const u of (0, record_set_1.strs)(oauth.authorizedRedirectURLs))
142
+ redirects.add(u);
143
+ if ((0, record_set_1.strs)(oauth.enabledGrants).includes('client_credentials'))
144
+ b.add('manual', `applications ${name}`, 'oauthConfiguration.enabledGrants client_credentials', 'A machine-to-machine application: create an Atlas M2M client for it.', 'oauth_clients');
145
+ if ((0, record_set_1.strs)(oauth.enabledGrants).includes('password'))
146
+ b.add('manual', `applications ${name}`, 'oauthConfiguration.enabledGrants password', 'Resource-owner password grant: Atlas does not offer it; move the app to the authorization-code flow with PKCE.');
147
+ if ((0, record_set_1.isObj)(app.samlv2Configuration) && app.samlv2Configuration.enabled === true)
148
+ b.add('manual', `applications ${name}`, 'samlv2Configuration', 'FusionAuth acting as a SAML identity provider for this application: Atlas can act as one, configure it per service provider.', 'saml_idp');
149
+ for (const r of (0, record_set_1.objs)(app.roles)) {
150
+ const rn = (0, record_set_1.str)(r.name);
151
+ if (!rn)
152
+ continue;
153
+ const key = (0, translate_kit_1.keyOf)(rn);
154
+ if (b.roles[rn])
155
+ continue;
156
+ b.roles[rn] = key;
157
+ roleCount++;
158
+ b.push('roles', { key, name: rn, description: (0, record_set_1.str)(r.description) ?? '', permissions: [] });
159
+ }
160
+ }
161
+ if (roleCount)
162
+ b.add('differs', 'applications', 'roles', `${roleCount} application role(s) become Atlas app roles (roles of the same name in different applications share one key).`, 'roles');
163
+ let exact = 0;
164
+ for (const url of redirects) {
165
+ if (url.includes('*') || !/^https?:\/\//.test(url)) {
166
+ b.add('differs', 'applications', `authorizedRedirectURLs ${url}`, 'Atlas redirect URLs are exact absolute URLs (no wildcards or custom schemes).', 'redirect_urls');
167
+ continue;
168
+ }
169
+ b.push('redirect_urls', { url });
170
+ exact++;
171
+ }
172
+ if (exact)
173
+ b.add('mapped', 'applications', 'authorizedRedirectURLs', `${exact} redirect URL(s).`, 'redirect_urls');
174
+ // ── identity providers ──
175
+ for (const idp of snap.identityProviders) {
176
+ if (idp.enabled === false)
177
+ continue;
178
+ const type = (0, record_set_1.str)(idp.type) ?? '';
179
+ const name = (0, record_set_1.str)(idp.name) ?? type;
180
+ if (type === 'SAMLv2' || type === 'OpenIDConnect') {
181
+ b.add('mapped', 'identity providers', `${name} (${type})`, 'Enterprise IdP: moves with the data export as an Atlas SSO connection; point it at Atlas\'s ACS URL / redirect URI at cutover.', 'sso_connections');
182
+ continue;
183
+ }
184
+ if (type === 'SAMLv2IdPInitiated') {
185
+ b.add('manual', 'identity providers', `${name} (${type})`, 'IdP-initiated SAML: Atlas SAML connections are SP-initiated.');
186
+ continue;
187
+ }
188
+ if (type === 'ExternalJWT' || type === 'SonyPSN' || type === 'Nintendo' || type === 'HYPR') {
189
+ b.add('manual', 'identity providers', `${name} (${type})`, 'No built-in Atlas provider: add it as a custom OAuth provider.', 'custom_oauth_providers');
190
+ continue;
191
+ }
192
+ const key = (0, translate_kit_1.socialKey)(type);
193
+ if (!key) {
194
+ b.add('manual', 'identity providers', `${name} (${type})`, 'No built-in Atlas provider: add it as a custom OAuth provider.', 'custom_oauth_providers');
195
+ continue;
196
+ }
197
+ const first = Object.values((0, record_set_1.isObj)(idp.applicationConfiguration) ? idp.applicationConfiguration : {}).find(record_set_1.isObj);
198
+ const clientId = (0, record_set_1.str)(idp.client_id) ?? (0, record_set_1.str)(first?.client_id);
199
+ b.socialProvider({ atlasKey: key, vendorName: name, area: 'identity providers', setting: `${name} (${type})`, clientId, scopes: (0, record_set_1.str)(idp.scope)?.split(/[\s,]+/).filter(Boolean) });
200
+ }
201
+ // ── what has no counterpart ──
202
+ const email = (0, record_set_1.isObj)(tenant.emailConfiguration) ? tenant.emailConfiguration : {};
203
+ if ((0, record_set_1.str)(email.host))
204
+ b.add('manual', area, 'emailConfiguration', `Mail goes through your own provider in Atlas (bring your own keys): configure ${(0, record_set_1.str)(email.host)} or an email API in the email provider settings; the SMTP password is never returned by FusionAuth.`, 'email_provider');
205
+ const activeLambdas = snap.lambdas.filter((l) => l.enabled !== false);
206
+ if (activeLambdas.length)
207
+ b.add('manual', 'lambdas', `${activeLambdas.length} lambda(s)`, 'JWT populate, reconcile and SAML lambdas: port the claims logic to an Atlas JWT template / action.', 'jwt_templates');
208
+ for (const w of snap.webhooks)
209
+ if (w.enabled !== false)
210
+ b.add('manual', 'webhooks', (0, record_set_1.str)(w.url) ?? (0, record_set_1.str)(w.id) ?? '?', 'FusionAuth webhook: recreate it as an Atlas webhook (event names differ).', 'webhooks');
211
+ if (snap.themes.filter((t) => (0, record_set_1.str)(t.name) !== 'FusionAuth Default').length)
212
+ b.add('manual', 'themes', 'custom themes', 'FusionAuth (FreeMarker) themes: rebuild the look in Atlas branding or the embeddable components.', 'branding');
213
+ if (snap.baseUrl)
214
+ b.add('differs', area, 'issuer', `Tokens carry iss "${(0, record_set_1.str)(tenant.issuer) ?? '(tenant issuer)'}"; Atlas tokens carry your Atlas issuer. Resource servers that pin the old issuer accept both during the bridge window (legacy issuers).`, 'legacy_issuers');
215
+ const vars = {};
216
+ if (snap.baseUrl)
217
+ vars.base_url = snap.baseUrl;
218
+ const issuer = (0, record_set_1.str)(tenant.issuer);
219
+ const urlIssuer = issuer && /^https:\/\//.test(issuer);
220
+ const bridgeVars = { ...vars, ...(issuer && !urlIssuer ? { issuer_name: issuer } : {}) };
221
+ return b.result(`FusionAuth ${area}`, {
222
+ bridge: { preset: urlIssuer ? 'fusionauth_url_issuer' : 'fusionauth', vars: bridgeVars },
223
+ lazy: { preset: 'fusionauth', config: vars },
224
+ });
225
+ }
226
+ //# sourceMappingURL=fusionauth-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fusionauth-config.js","sourceRoot":"","sources":["../../../src/migrate/export/fusionauth-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import type { PasswordHash } from '@atlasauth/migrate';
2
+ import { type Tables } from './frameworks/tables';
3
+ import { RecordSet, type Obj } from './record-set';
4
+ import { VendorHttp } from './vendor-http';
5
+ /**
6
+ * `atlas migrate export fusionauth` — a FusionAuth tenant (self-hosted or
7
+ * FusionAuth Cloud) onto the canonical bundle models. Two ways in, both on the
8
+ * owner's machine:
9
+ *
10
+ * - the API with an API key (read-only is enough): users with their
11
+ * registrations, roles, groups, linked identity providers, two-factor
12
+ * methods (SMS, email) and recovery codes, identity providers (SAML v2 /
13
+ * OpenID Connect as SSO connections), applications and API keys. The API
14
+ * NEVER returns password hashes or authenticator secrets.
15
+ * - a DATABASE DUMP of a self-hosted install (one file per table, see
16
+ * {@link fusionAuthSnapshotFromTables}): the only path with the hashes
17
+ * (`password`, `salt`, `factor`, `encryption_scheme`) and authenticator
18
+ * secrets. FusionAuth Cloud has no database access: ask FusionAuth support
19
+ * for the export, or use the `fusionauth` lazy-migration preset.
20
+ *
21
+ * Both paths build one {@link FusionAuthSnapshot}; {@link mapFusionAuth} maps it.
22
+ * The FusionAuth user id is the `sub` of every FusionAuth JWT, so it is the user id.
23
+ */
24
+ export interface FusionAuthSnapshot {
25
+ baseUrl?: string;
26
+ tenants: Obj[];
27
+ /** Applications with their `roles` ([{ name, isDefault, isSuperRole }]). */
28
+ applications: Obj[];
29
+ /** Groups with `roles` ({ <applicationId>: [role names] }). */
30
+ groups: Obj[];
31
+ identityProviders: Obj[];
32
+ /** Public keys by key id (PEM), for SAML identity providers. */
33
+ keys: Record<string, string>;
34
+ apiKeys: Obj[];
35
+ /**
36
+ * Users in the API shape (`registrations`, `memberships`, `twoFactor.methods`) plus what the API
37
+ * cannot return: `password`, `salt`, `factor`, `encryptionScheme`, `links` (identity provider links) and `recoveryCodes`.
38
+ */
39
+ users: Obj[];
40
+ source: 'api' | 'database';
41
+ }
42
+ export interface FusionAuthMapOptions {
43
+ /** Groups move as organizations (default), as app roles, or not at all. */
44
+ groupsAs?: 'organizations' | 'roles' | 'skip';
45
+ /** Several tenants: each tenant becomes an organization its users belong to. */
46
+ tenantsAs?: 'organizations' | 'skip';
47
+ }
48
+ /**
49
+ * A FusionAuth password (`password`, `salt`, `factor`, `encryption_scheme`) →
50
+ * an Atlas hash. Schemes and their registry ids are documented in core's
51
+ * fusionauth-hashes.ts; salts are base64 except bcrypt's 22-character salt.
52
+ */
53
+ export declare function fusionAuthPassword(u: {
54
+ password?: unknown;
55
+ salt?: unknown;
56
+ factor?: unknown;
57
+ encryptionScheme?: unknown;
58
+ }): {
59
+ hash: PasswordHash;
60
+ } | {
61
+ problem: string;
62
+ } | null;
63
+ export interface FusionAuthApiOptions {
64
+ /** `https://auth.example.com` or `https://acme.fusionauth.io`. */
65
+ baseUrl: string;
66
+ apiKey: string;
67
+ /** Required by FusionAuth when the API key is not tenant-locked and there are several tenants. */
68
+ tenantId?: string;
69
+ pageSize?: number;
70
+ fetchImpl?: typeof fetch;
71
+ sleep?: (ms: number) => Promise<void>;
72
+ onProgress?: (m: string) => void;
73
+ }
74
+ export declare function fusionAuthBase(raw: string): string;
75
+ export declare function fusionAuthHttp(o: FusionAuthApiOptions): VendorHttp;
76
+ /** Read a tenant through the API into a snapshot. */
77
+ export declare function fetchFusionAuth(http: VendorHttp, o: Pick<FusionAuthApiOptions, 'baseUrl' | 'pageSize' | 'onProgress'> & {
78
+ warn?: (m: string) => void;
79
+ }): Promise<FusionAuthSnapshot>;
80
+ /**
81
+ * A snapshot from a dump of a self-hosted FusionAuth database: one file per
82
+ * table (`psql \copy users TO 'users.csv' CSV HEADER`, or `mysql … --batch`
83
+ * converted, or a JSON array), named as in FusionAuth's schema: `users`,
84
+ * `identities` (1.59+), `tenants`, `applications`, `application_roles`,
85
+ * `user_registrations`, `user_registrations_application_roles`, `groups`,
86
+ * `group_members`, `group_application_roles`, `identity_providers`,
87
+ * `identity_provider_links`, `twofactor_methods`, `twofactor_recovery_codes`,
88
+ * `api_keys`, `keys`.
89
+ */
90
+ export declare function fusionAuthSnapshotFromTables(t: Tables): FusionAuthSnapshot;
91
+ /** Map a snapshot (API or database) onto canonical records. */
92
+ export declare function mapFusionAuth(snap: FusionAuthSnapshot, opts?: FusionAuthMapOptions): RecordSet;
93
+ export interface ExportFusionAuthOptions extends FusionAuthMapOptions {
94
+ /** A database dump of a self-hosted install (hashes and authenticator secrets included). */
95
+ tables?: Tables;
96
+ /** The API, when exporting live (no hashes, no authenticator secrets). */
97
+ api?: FusionAuthApiOptions;
98
+ }
99
+ export declare function exportFusionAuth(o: ExportFusionAuthOptions): Promise<RecordSet>;