@atlasauth/cli 0.24.0 → 0.25.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 (530) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +4 -4
  3. package/dist/args.d.ts +0 -601
  4. package/dist/args.js +0 -289
  5. package/dist/args.js.map +0 -1
  6. package/dist/cli.d.ts +0 -2
  7. package/dist/cli.js +0 -19
  8. package/dist/cli.js.map +0 -1
  9. package/dist/commands/actions-gallery.d.ts +0 -8
  10. package/dist/commands/actions-gallery.js +0 -197
  11. package/dist/commands/actions-gallery.js.map +0 -1
  12. package/dist/commands/actions.d.ts +0 -13
  13. package/dist/commands/actions.js +0 -135
  14. package/dist/commands/actions.js.map +0 -1
  15. package/dist/commands/admin.d.ts +0 -49
  16. package/dist/commands/admin.js +0 -353
  17. package/dist/commands/admin.js.map +0 -1
  18. package/dist/commands/api-keys.d.ts +0 -4
  19. package/dist/commands/api-keys.js +0 -96
  20. package/dist/commands/api-keys.js.map +0 -1
  21. package/dist/commands/auth.d.ts +0 -25
  22. package/dist/commands/auth.js +0 -102
  23. package/dist/commands/auth.js.map +0 -1
  24. package/dist/commands/config.d.ts +0 -104
  25. package/dist/commands/config.js +0 -1506
  26. package/dist/commands/config.js.map +0 -1
  27. package/dist/commands/csp.d.ts +0 -32
  28. package/dist/commands/csp.js +0 -180
  29. package/dist/commands/csp.js.map +0 -1
  30. package/dist/commands/dev.d.ts +0 -8
  31. package/dist/commands/dev.js +0 -84
  32. package/dist/commands/dev.js.map +0 -1
  33. package/dist/commands/fga.d.ts +0 -10
  34. package/dist/commands/fga.js +0 -146
  35. package/dist/commands/fga.js.map +0 -1
  36. package/dist/commands/golive.d.ts +0 -40
  37. package/dist/commands/golive.js +0 -285
  38. package/dist/commands/golive.js.map +0 -1
  39. package/dist/commands/id-accounts.d.ts +0 -13
  40. package/dist/commands/id-accounts.js +0 -195
  41. package/dist/commands/id-accounts.js.map +0 -1
  42. package/dist/commands/import-better-auth.d.ts +0 -3
  43. package/dist/commands/import-better-auth.js +0 -164
  44. package/dist/commands/import-better-auth.js.map +0 -1
  45. package/dist/commands/import.d.ts +0 -3
  46. package/dist/commands/import.js +0 -123
  47. package/dist/commands/import.js.map +0 -1
  48. package/dist/commands/info.d.ts +0 -75
  49. package/dist/commands/info.js +0 -362
  50. package/dist/commands/info.js.map +0 -1
  51. package/dist/commands/init.d.ts +0 -3
  52. package/dist/commands/init.js +0 -438
  53. package/dist/commands/init.js.map +0 -1
  54. package/dist/commands/integrations.d.ts +0 -8
  55. package/dist/commands/integrations.js +0 -112
  56. package/dist/commands/integrations.js.map +0 -1
  57. package/dist/commands/listen.d.ts +0 -17
  58. package/dist/commands/listen.js +0 -223
  59. package/dist/commands/listen.js.map +0 -1
  60. package/dist/commands/mcp.d.ts +0 -38
  61. package/dist/commands/mcp.js +0 -111
  62. package/dist/commands/mcp.js.map +0 -1
  63. package/dist/commands/migrate.d.ts +0 -16
  64. package/dist/commands/migrate.js +0 -114
  65. package/dist/commands/migrate.js.map +0 -1
  66. package/dist/commands/move-origin.d.ts +0 -11
  67. package/dist/commands/move-origin.js +0 -95
  68. package/dist/commands/move-origin.js.map +0 -1
  69. package/dist/commands/operator.d.ts +0 -18
  70. package/dist/commands/operator.js +0 -238
  71. package/dist/commands/operator.js.map +0 -1
  72. package/dist/commands/orgs.d.ts +0 -4
  73. package/dist/commands/orgs.js +0 -72
  74. package/dist/commands/orgs.js.map +0 -1
  75. package/dist/commands/pages.d.ts +0 -14
  76. package/dist/commands/pages.js +0 -113
  77. package/dist/commands/pages.js.map +0 -1
  78. package/dist/commands/partner-platforms.d.ts +0 -10
  79. package/dist/commands/partner-platforms.js +0 -157
  80. package/dist/commands/partner-platforms.js.map +0 -1
  81. package/dist/commands/project-commands.d.ts +0 -38
  82. package/dist/commands/project-commands.js +0 -361
  83. package/dist/commands/project-commands.js.map +0 -1
  84. package/dist/commands/referrals.d.ts +0 -69
  85. package/dist/commands/referrals.js +0 -1056
  86. package/dist/commands/referrals.js.map +0 -1
  87. package/dist/commands/resources.d.ts +0 -44
  88. package/dist/commands/resources.js +0 -234
  89. package/dist/commands/resources.js.map +0 -1
  90. package/dist/commands/sessions.d.ts +0 -4
  91. package/dist/commands/sessions.js +0 -28
  92. package/dist/commands/sessions.js.map +0 -1
  93. package/dist/commands/shared.d.ts +0 -38
  94. package/dist/commands/shared.js +0 -69
  95. package/dist/commands/shared.js.map +0 -1
  96. package/dist/commands/status.d.ts +0 -3
  97. package/dist/commands/status.js +0 -77
  98. package/dist/commands/status.js.map +0 -1
  99. package/dist/commands/users.d.ts +0 -4
  100. package/dist/commands/users.js +0 -100
  101. package/dist/commands/users.js.map +0 -1
  102. package/dist/commands/webhooks.d.ts +0 -34
  103. package/dist/commands/webhooks.js +0 -301
  104. package/dist/commands/webhooks.js.map +0 -1
  105. package/dist/config-http.d.ts +0 -29
  106. package/dist/config-http.js +0 -64
  107. package/dist/config-http.js.map +0 -1
  108. package/dist/config.d.ts +0 -64
  109. package/dist/config.js +0 -69
  110. package/dist/config.js.map +0 -1
  111. package/dist/context.d.ts +0 -72
  112. package/dist/context.js +0 -27
  113. package/dist/context.js.map +0 -1
  114. package/dist/define-config.d.ts +0 -9
  115. package/dist/define-config.js +0 -8
  116. package/dist/define-config.js.map +0 -1
  117. package/dist/errors.d.ts +0 -15
  118. package/dist/errors.js +0 -25
  119. package/dist/errors.js.map +0 -1
  120. package/dist/help.d.ts +0 -8
  121. package/dist/help.js +0 -868
  122. package/dist/help.js.map +0 -1
  123. package/dist/import/csv.d.ts +0 -6
  124. package/dist/import/csv.js +0 -63
  125. package/dist/import/csv.js.map +0 -1
  126. package/dist/import/vendors.d.ts +0 -57
  127. package/dist/import/vendors.js +0 -568
  128. package/dist/import/vendors.js.map +0 -1
  129. package/dist/index.d.ts +0 -33
  130. package/dist/index.js +0 -81
  131. package/dist/index.js.map +0 -1
  132. package/dist/io.d.ts +0 -21
  133. package/dist/io.js +0 -28
  134. package/dist/io.js.map +0 -1
  135. package/dist/migrate/appwrite/plugin.d.ts +0 -2
  136. package/dist/migrate/appwrite/plugin.js +0 -103
  137. package/dist/migrate/appwrite/plugin.js.map +0 -1
  138. package/dist/migrate/auth0/plugin.d.ts +0 -2
  139. package/dist/migrate/auth0/plugin.js +0 -126
  140. package/dist/migrate/auth0/plugin.js.map +0 -1
  141. package/dist/migrate/authentik/plugin.d.ts +0 -2
  142. package/dist/migrate/authentik/plugin.js +0 -135
  143. package/dist/migrate/authentik/plugin.js.map +0 -1
  144. package/dist/migrate/azure-ad-b2c/plugin.d.ts +0 -8
  145. package/dist/migrate/azure-ad-b2c/plugin.js +0 -165
  146. package/dist/migrate/azure-ad-b2c/plugin.js.map +0 -1
  147. package/dist/migrate/better-auth/integration.d.ts +0 -59
  148. package/dist/migrate/better-auth/integration.js +0 -81
  149. package/dist/migrate/better-auth/integration.js.map +0 -1
  150. package/dist/migrate/better-auth/orchestrator.d.ts +0 -43
  151. package/dist/migrate/better-auth/orchestrator.js +0 -525
  152. package/dist/migrate/better-auth/orchestrator.js.map +0 -1
  153. package/dist/migrate/better-auth/output.d.ts +0 -20
  154. package/dist/migrate/better-auth/output.js +0 -146
  155. package/dist/migrate/better-auth/output.js.map +0 -1
  156. package/dist/migrate/better-auth/translate.d.ts +0 -77
  157. package/dist/migrate/better-auth/translate.js +0 -1989
  158. package/dist/migrate/better-auth/translate.js.map +0 -1
  159. package/dist/migrate/clerk/plugin.d.ts +0 -2
  160. package/dist/migrate/clerk/plugin.js +0 -76
  161. package/dist/migrate/clerk/plugin.js.map +0 -1
  162. package/dist/migrate/cognito/plugin.d.ts +0 -5
  163. package/dist/migrate/cognito/plugin.js +0 -170
  164. package/dist/migrate/cognito/plugin.js.map +0 -1
  165. package/dist/migrate/corbado/plugin.d.ts +0 -2
  166. package/dist/migrate/corbado/plugin.js +0 -63
  167. package/dist/migrate/corbado/plugin.js.map +0 -1
  168. package/dist/migrate/descope/plugin.d.ts +0 -2
  169. package/dist/migrate/descope/plugin.js +0 -83
  170. package/dist/migrate/descope/plugin.js.map +0 -1
  171. package/dist/migrate/entra-external-id/plugin.d.ts +0 -8
  172. package/dist/migrate/entra-external-id/plugin.js +0 -12
  173. package/dist/migrate/entra-external-id/plugin.js.map +0 -1
  174. package/dist/migrate/export/appwrite-config.d.ts +0 -28
  175. package/dist/migrate/export/appwrite-config.js +0 -170
  176. package/dist/migrate/export/appwrite-config.js.map +0 -1
  177. package/dist/migrate/export/appwrite.d.ts +0 -51
  178. package/dist/migrate/export/appwrite.js +0 -288
  179. package/dist/migrate/export/appwrite.js.map +0 -1
  180. package/dist/migrate/export/auth0-config.d.ts +0 -29
  181. package/dist/migrate/export/auth0-config.js +0 -249
  182. package/dist/migrate/export/auth0-config.js.map +0 -1
  183. package/dist/migrate/export/auth0.d.ts +0 -62
  184. package/dist/migrate/export/auth0.js +0 -575
  185. package/dist/migrate/export/auth0.js.map +0 -1
  186. package/dist/migrate/export/authentik-config.d.ts +0 -45
  187. package/dist/migrate/export/authentik-config.js +0 -357
  188. package/dist/migrate/export/authentik-config.js.map +0 -1
  189. package/dist/migrate/export/authentik.d.ts +0 -110
  190. package/dist/migrate/export/authentik.js +0 -838
  191. package/dist/migrate/export/authentik.js.map +0 -1
  192. package/dist/migrate/export/azure-config.d.ts +0 -58
  193. package/dist/migrate/export/azure-config.js +0 -344
  194. package/dist/migrate/export/azure-config.js.map +0 -1
  195. package/dist/migrate/export/azure.d.ts +0 -85
  196. package/dist/migrate/export/azure.js +0 -373
  197. package/dist/migrate/export/azure.js.map +0 -1
  198. package/dist/migrate/export/clerk-config.d.ts +0 -26
  199. package/dist/migrate/export/clerk-config.js +0 -227
  200. package/dist/migrate/export/clerk-config.js.map +0 -1
  201. package/dist/migrate/export/clerk.d.ts +0 -46
  202. package/dist/migrate/export/clerk.js +0 -486
  203. package/dist/migrate/export/clerk.js.map +0 -1
  204. package/dist/migrate/export/cognito-config.d.ts +0 -25
  205. package/dist/migrate/export/cognito-config.js +0 -273
  206. package/dist/migrate/export/cognito-config.js.map +0 -1
  207. package/dist/migrate/export/cognito.d.ts +0 -103
  208. package/dist/migrate/export/cognito.js +0 -441
  209. package/dist/migrate/export/cognito.js.map +0 -1
  210. package/dist/migrate/export/corbado-config.d.ts +0 -20
  211. package/dist/migrate/export/corbado-config.js +0 -63
  212. package/dist/migrate/export/corbado-config.js.map +0 -1
  213. package/dist/migrate/export/corbado.d.ts +0 -37
  214. package/dist/migrate/export/corbado.js +0 -132
  215. package/dist/migrate/export/corbado.js.map +0 -1
  216. package/dist/migrate/export/descope.d.ts +0 -35
  217. package/dist/migrate/export/descope.js +0 -208
  218. package/dist/migrate/export/descope.js.map +0 -1
  219. package/dist/migrate/export/fake-vendor.test-helper.d.ts +0 -27
  220. package/dist/migrate/export/fake-vendor.test-helper.js +0 -41
  221. package/dist/migrate/export/fake-vendor.test-helper.js.map +0 -1
  222. package/dist/migrate/export/firebase-config.d.ts +0 -24
  223. package/dist/migrate/export/firebase-config.js +0 -215
  224. package/dist/migrate/export/firebase-config.js.map +0 -1
  225. package/dist/migrate/export/firebase.d.ts +0 -102
  226. package/dist/migrate/export/firebase.js +0 -464
  227. package/dist/migrate/export/firebase.js.map +0 -1
  228. package/dist/migrate/export/frameworks/app-users.d.ts +0 -42
  229. package/dist/migrate/export/frameworks/app-users.js +0 -161
  230. package/dist/migrate/export/frameworks/app-users.js.map +0 -1
  231. package/dist/migrate/export/frameworks/authjs.d.ts +0 -41
  232. package/dist/migrate/export/frameworks/authjs.js +0 -146
  233. package/dist/migrate/export/frameworks/authjs.js.map +0 -1
  234. package/dist/migrate/export/frameworks/devise.d.ts +0 -39
  235. package/dist/migrate/export/frameworks/devise.js +0 -218
  236. package/dist/migrate/export/frameworks/devise.js.map +0 -1
  237. package/dist/migrate/export/frameworks/django.d.ts +0 -45
  238. package/dist/migrate/export/frameworks/django.js +0 -315
  239. package/dist/migrate/export/frameworks/django.js.map +0 -1
  240. package/dist/migrate/export/frameworks/lucia.d.ts +0 -42
  241. package/dist/migrate/export/frameworks/lucia.js +0 -263
  242. package/dist/migrate/export/frameworks/lucia.js.map +0 -1
  243. package/dist/migrate/export/frameworks/tables.d.ts +0 -90
  244. package/dist/migrate/export/frameworks/tables.js +0 -325
  245. package/dist/migrate/export/frameworks/tables.js.map +0 -1
  246. package/dist/migrate/export/frameworks/webauthn.d.ts +0 -25
  247. package/dist/migrate/export/frameworks/webauthn.js +0 -130
  248. package/dist/migrate/export/frameworks/webauthn.js.map +0 -1
  249. package/dist/migrate/export/frontegg-config.d.ts +0 -29
  250. package/dist/migrate/export/frontegg-config.js +0 -238
  251. package/dist/migrate/export/frontegg-config.js.map +0 -1
  252. package/dist/migrate/export/frontegg.d.ts +0 -67
  253. package/dist/migrate/export/frontegg.js +0 -410
  254. package/dist/migrate/export/frontegg.js.map +0 -1
  255. package/dist/migrate/export/fusionauth-config.d.ts +0 -26
  256. package/dist/migrate/export/fusionauth-config.js +0 -226
  257. package/dist/migrate/export/fusionauth-config.js.map +0 -1
  258. package/dist/migrate/export/fusionauth.d.ts +0 -99
  259. package/dist/migrate/export/fusionauth.js +0 -642
  260. package/dist/migrate/export/fusionauth.js.map +0 -1
  261. package/dist/migrate/export/hanko-config.d.ts +0 -27
  262. package/dist/migrate/export/hanko-config.js +0 -265
  263. package/dist/migrate/export/hanko-config.js.map +0 -1
  264. package/dist/migrate/export/hanko.d.ts +0 -52
  265. package/dist/migrate/export/hanko.js +0 -605
  266. package/dist/migrate/export/hanko.js.map +0 -1
  267. package/dist/migrate/export/keycloak-config.d.ts +0 -19
  268. package/dist/migrate/export/keycloak-config.js +0 -219
  269. package/dist/migrate/export/keycloak-config.js.map +0 -1
  270. package/dist/migrate/export/keycloak.d.ts +0 -155
  271. package/dist/migrate/export/keycloak.js +0 -878
  272. package/dist/migrate/export/keycloak.js.map +0 -1
  273. package/dist/migrate/export/kinde-descope-config.d.ts +0 -38
  274. package/dist/migrate/export/kinde-descope-config.js +0 -172
  275. package/dist/migrate/export/kinde-descope-config.js.map +0 -1
  276. package/dist/migrate/export/kinde.d.ts +0 -57
  277. package/dist/migrate/export/kinde.js +0 -333
  278. package/dist/migrate/export/kinde.js.map +0 -1
  279. package/dist/migrate/export/ldap.d.ts +0 -53
  280. package/dist/migrate/export/ldap.js +0 -277
  281. package/dist/migrate/export/ldap.js.map +0 -1
  282. package/dist/migrate/export/logto-config.d.ts +0 -27
  283. package/dist/migrate/export/logto-config.js +0 -264
  284. package/dist/migrate/export/logto-config.js.map +0 -1
  285. package/dist/migrate/export/logto.d.ts +0 -150
  286. package/dist/migrate/export/logto.js +0 -809
  287. package/dist/migrate/export/logto.js.map +0 -1
  288. package/dist/migrate/export/magic-config.d.ts +0 -14
  289. package/dist/migrate/export/magic-config.js +0 -28
  290. package/dist/migrate/export/magic-config.js.map +0 -1
  291. package/dist/migrate/export/magic.d.ts +0 -31
  292. package/dist/migrate/export/magic.js +0 -93
  293. package/dist/migrate/export/magic.js.map +0 -1
  294. package/dist/migrate/export/mini-yaml.d.ts +0 -19
  295. package/dist/migrate/export/mini-yaml.js +0 -581
  296. package/dist/migrate/export/mini-yaml.js.map +0 -1
  297. package/dist/migrate/export/nhost-config.d.ts +0 -26
  298. package/dist/migrate/export/nhost-config.js +0 -360
  299. package/dist/migrate/export/nhost-config.js.map +0 -1
  300. package/dist/migrate/export/nhost.d.ts +0 -64
  301. package/dist/migrate/export/nhost.js +0 -304
  302. package/dist/migrate/export/nhost.js.map +0 -1
  303. package/dist/migrate/export/okta-config.d.ts +0 -30
  304. package/dist/migrate/export/okta-config.js +0 -205
  305. package/dist/migrate/export/okta-config.js.map +0 -1
  306. package/dist/migrate/export/okta.d.ts +0 -43
  307. package/dist/migrate/export/okta.js +0 -337
  308. package/dist/migrate/export/okta.js.map +0 -1
  309. package/dist/migrate/export/onelogin.d.ts +0 -22
  310. package/dist/migrate/export/onelogin.js +0 -123
  311. package/dist/migrate/export/onelogin.js.map +0 -1
  312. package/dist/migrate/export/ory-config.d.ts +0 -58
  313. package/dist/migrate/export/ory-config.js +0 -451
  314. package/dist/migrate/export/ory-config.js.map +0 -1
  315. package/dist/migrate/export/ory.d.ts +0 -81
  316. package/dist/migrate/export/ory.js +0 -555
  317. package/dist/migrate/export/ory.js.map +0 -1
  318. package/dist/migrate/export/password-detect.d.ts +0 -29
  319. package/dist/migrate/export/password-detect.js +0 -81
  320. package/dist/migrate/export/password-detect.js.map +0 -1
  321. package/dist/migrate/export/pingone.d.ts +0 -36
  322. package/dist/migrate/export/pingone.js +0 -218
  323. package/dist/migrate/export/pingone.js.map +0 -1
  324. package/dist/migrate/export/plugin-kit.d.ts +0 -25
  325. package/dist/migrate/export/plugin-kit.js +0 -82
  326. package/dist/migrate/export/plugin-kit.js.map +0 -1
  327. package/dist/migrate/export/pocketbase-config.d.ts +0 -28
  328. package/dist/migrate/export/pocketbase-config.js +0 -180
  329. package/dist/migrate/export/pocketbase-config.js.map +0 -1
  330. package/dist/migrate/export/pocketbase.d.ts +0 -52
  331. package/dist/migrate/export/pocketbase.js +0 -243
  332. package/dist/migrate/export/pocketbase.js.map +0 -1
  333. package/dist/migrate/export/project-files.d.ts +0 -15
  334. package/dist/migrate/export/project-files.js +0 -43
  335. package/dist/migrate/export/project-files.js.map +0 -1
  336. package/dist/migrate/export/propelauth-config.d.ts +0 -18
  337. package/dist/migrate/export/propelauth-config.js +0 -58
  338. package/dist/migrate/export/propelauth-config.js.map +0 -1
  339. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +0 -62
  340. package/dist/migrate/export/propelauth-harness.test-helper.js +0 -109
  341. package/dist/migrate/export/propelauth-harness.test-helper.js.map +0 -1
  342. package/dist/migrate/export/propelauth.d.ts +0 -48
  343. package/dist/migrate/export/propelauth.js +0 -255
  344. package/dist/migrate/export/propelauth.js.map +0 -1
  345. package/dist/migrate/export/record-set.d.ts +0 -44
  346. package/dist/migrate/export/record-set.js +0 -98
  347. package/dist/migrate/export/record-set.js.map +0 -1
  348. package/dist/migrate/export/source-lines.d.ts +0 -17
  349. package/dist/migrate/export/source-lines.js +0 -43
  350. package/dist/migrate/export/source-lines.js.map +0 -1
  351. package/dist/migrate/export/sso-metadata.d.ts +0 -47
  352. package/dist/migrate/export/sso-metadata.js +0 -180
  353. package/dist/migrate/export/sso-metadata.js.map +0 -1
  354. package/dist/migrate/export/stytch-config.d.ts +0 -22
  355. package/dist/migrate/export/stytch-config.js +0 -102
  356. package/dist/migrate/export/stytch-config.js.map +0 -1
  357. package/dist/migrate/export/stytch.d.ts +0 -68
  358. package/dist/migrate/export/stytch.js +0 -510
  359. package/dist/migrate/export/stytch.js.map +0 -1
  360. package/dist/migrate/export/supabase-config.d.ts +0 -48
  361. package/dist/migrate/export/supabase-config.js +0 -408
  362. package/dist/migrate/export/supabase-config.js.map +0 -1
  363. package/dist/migrate/export/supabase.d.ts +0 -86
  364. package/dist/migrate/export/supabase.js +0 -524
  365. package/dist/migrate/export/supabase.js.map +0 -1
  366. package/dist/migrate/export/supertokens-config.d.ts +0 -20
  367. package/dist/migrate/export/supertokens-config.js +0 -150
  368. package/dist/migrate/export/supertokens-config.js.map +0 -1
  369. package/dist/migrate/export/supertokens.d.ts +0 -125
  370. package/dist/migrate/export/supertokens.js +0 -464
  371. package/dist/migrate/export/supertokens.js.map +0 -1
  372. package/dist/migrate/export/table.d.ts +0 -35
  373. package/dist/migrate/export/table.js +0 -248
  374. package/dist/migrate/export/table.js.map +0 -1
  375. package/dist/migrate/export/translate-kit.d.ts +0 -46
  376. package/dist/migrate/export/translate-kit.js +0 -148
  377. package/dist/migrate/export/translate-kit.js.map +0 -1
  378. package/dist/migrate/export/userfront-config.d.ts +0 -15
  379. package/dist/migrate/export/userfront-config.js +0 -49
  380. package/dist/migrate/export/userfront-config.js.map +0 -1
  381. package/dist/migrate/export/userfront.d.ts +0 -38
  382. package/dist/migrate/export/userfront.js +0 -189
  383. package/dist/migrate/export/userfront.js.map +0 -1
  384. package/dist/migrate/export/vendor-http.d.ts +0 -46
  385. package/dist/migrate/export/vendor-http.js +0 -138
  386. package/dist/migrate/export/vendor-http.js.map +0 -1
  387. package/dist/migrate/export/workos-config.d.ts +0 -23
  388. package/dist/migrate/export/workos-config.js +0 -125
  389. package/dist/migrate/export/workos-config.js.map +0 -1
  390. package/dist/migrate/export/workos.d.ts +0 -46
  391. package/dist/migrate/export/workos.js +0 -272
  392. package/dist/migrate/export/workos.js.map +0 -1
  393. package/dist/migrate/export/zip.d.ts +0 -8
  394. package/dist/migrate/export/zip.js +0 -66
  395. package/dist/migrate/export/zip.js.map +0 -1
  396. package/dist/migrate/export/zitadel-config.d.ts +0 -37
  397. package/dist/migrate/export/zitadel-config.js +0 -279
  398. package/dist/migrate/export/zitadel-config.js.map +0 -1
  399. package/dist/migrate/export/zitadel.d.ts +0 -82
  400. package/dist/migrate/export/zitadel.js +0 -447
  401. package/dist/migrate/export/zitadel.js.map +0 -1
  402. package/dist/migrate/firebase/plugin.d.ts +0 -2
  403. package/dist/migrate/firebase/plugin.js +0 -152
  404. package/dist/migrate/firebase/plugin.js.map +0 -1
  405. package/dist/migrate/framework/builtins.d.ts +0 -2
  406. package/dist/migrate/framework/builtins.js +0 -52
  407. package/dist/migrate/framework/builtins.js.map +0 -1
  408. package/dist/migrate/framework/commands.d.ts +0 -20
  409. package/dist/migrate/framework/commands.js +0 -58
  410. package/dist/migrate/framework/commands.js.map +0 -1
  411. package/dist/migrate/framework/custom.d.ts +0 -12
  412. package/dist/migrate/framework/custom.js +0 -96
  413. package/dist/migrate/framework/custom.js.map +0 -1
  414. package/dist/migrate/framework/orchestrator.d.ts +0 -113
  415. package/dist/migrate/framework/orchestrator.js +0 -532
  416. package/dist/migrate/framework/orchestrator.js.map +0 -1
  417. package/dist/migrate/framework/plugin.d.ts +0 -167
  418. package/dist/migrate/framework/plugin.js +0 -3
  419. package/dist/migrate/framework/plugin.js.map +0 -1
  420. package/dist/migrate/framework/registry.d.ts +0 -11
  421. package/dist/migrate/framework/registry.js +0 -44
  422. package/dist/migrate/framework/registry.js.map +0 -1
  423. package/dist/migrate/framework/report.d.ts +0 -17
  424. package/dist/migrate/framework/report.js +0 -103
  425. package/dist/migrate/framework/report.js.map +0 -1
  426. package/dist/migrate/frameworks/plugins.d.ts +0 -29
  427. package/dist/migrate/frameworks/plugins.js +0 -402
  428. package/dist/migrate/frameworks/plugins.js.map +0 -1
  429. package/dist/migrate/frameworks/report.d.ts +0 -92
  430. package/dist/migrate/frameworks/report.js +0 -207
  431. package/dist/migrate/frameworks/report.js.map +0 -1
  432. package/dist/migrate/frameworks/translate-js.d.ts +0 -5
  433. package/dist/migrate/frameworks/translate-js.js +0 -503
  434. package/dist/migrate/frameworks/translate-js.js.map +0 -1
  435. package/dist/migrate/frameworks/translate-rails-django.d.ts +0 -3
  436. package/dist/migrate/frameworks/translate-rails-django.js +0 -1391
  437. package/dist/migrate/frameworks/translate-rails-django.js.map +0 -1
  438. package/dist/migrate/frontegg/plugin.d.ts +0 -2
  439. package/dist/migrate/frontegg/plugin.js +0 -78
  440. package/dist/migrate/frontegg/plugin.js.map +0 -1
  441. package/dist/migrate/fusionauth/plugin.d.ts +0 -2
  442. package/dist/migrate/fusionauth/plugin.js +0 -109
  443. package/dist/migrate/fusionauth/plugin.js.map +0 -1
  444. package/dist/migrate/hanko/plugin.d.ts +0 -2
  445. package/dist/migrate/hanko/plugin.js +0 -100
  446. package/dist/migrate/hanko/plugin.js.map +0 -1
  447. package/dist/migrate/keycloak/plugin.d.ts +0 -2
  448. package/dist/migrate/keycloak/plugin.js +0 -148
  449. package/dist/migrate/keycloak/plugin.js.map +0 -1
  450. package/dist/migrate/kinde/plugin.d.ts +0 -2
  451. package/dist/migrate/kinde/plugin.js +0 -105
  452. package/dist/migrate/kinde/plugin.js.map +0 -1
  453. package/dist/migrate/ldap/plugin.d.ts +0 -2
  454. package/dist/migrate/ldap/plugin.js +0 -73
  455. package/dist/migrate/ldap/plugin.js.map +0 -1
  456. package/dist/migrate/logto/plugin.d.ts +0 -2
  457. package/dist/migrate/logto/plugin.js +0 -131
  458. package/dist/migrate/logto/plugin.js.map +0 -1
  459. package/dist/migrate/magic/plugin.d.ts +0 -2
  460. package/dist/migrate/magic/plugin.js +0 -56
  461. package/dist/migrate/magic/plugin.js.map +0 -1
  462. package/dist/migrate/nhost/plugin.d.ts +0 -2
  463. package/dist/migrate/nhost/plugin.js +0 -115
  464. package/dist/migrate/nhost/plugin.js.map +0 -1
  465. package/dist/migrate/oidc/plugin.d.ts +0 -2
  466. package/dist/migrate/oidc/plugin.js +0 -73
  467. package/dist/migrate/oidc/plugin.js.map +0 -1
  468. package/dist/migrate/okta/plugin.d.ts +0 -2
  469. package/dist/migrate/okta/plugin.js +0 -105
  470. package/dist/migrate/okta/plugin.js.map +0 -1
  471. package/dist/migrate/onelogin/plugin.d.ts +0 -2
  472. package/dist/migrate/onelogin/plugin.js +0 -61
  473. package/dist/migrate/onelogin/plugin.js.map +0 -1
  474. package/dist/migrate/ory/plugin.d.ts +0 -2
  475. package/dist/migrate/ory/plugin.js +0 -186
  476. package/dist/migrate/ory/plugin.js.map +0 -1
  477. package/dist/migrate/ping-identity/plugin.d.ts +0 -2
  478. package/dist/migrate/ping-identity/plugin.js +0 -100
  479. package/dist/migrate/ping-identity/plugin.js.map +0 -1
  480. package/dist/migrate/pocketbase/plugin.d.ts +0 -2
  481. package/dist/migrate/pocketbase/plugin.js +0 -99
  482. package/dist/migrate/pocketbase/plugin.js.map +0 -1
  483. package/dist/migrate/propelauth/plugin.d.ts +0 -2
  484. package/dist/migrate/propelauth/plugin.js +0 -65
  485. package/dist/migrate/propelauth/plugin.js.map +0 -1
  486. package/dist/migrate/saml/plugin.d.ts +0 -2
  487. package/dist/migrate/saml/plugin.js +0 -79
  488. package/dist/migrate/saml/plugin.js.map +0 -1
  489. package/dist/migrate/stytch/plugin.d.ts +0 -2
  490. package/dist/migrate/stytch/plugin.js +0 -97
  491. package/dist/migrate/stytch/plugin.js.map +0 -1
  492. package/dist/migrate/supabase/plugin.d.ts +0 -2
  493. package/dist/migrate/supabase/plugin.js +0 -149
  494. package/dist/migrate/supabase/plugin.js.map +0 -1
  495. package/dist/migrate/supertokens/plugin.d.ts +0 -2
  496. package/dist/migrate/supertokens/plugin.js +0 -114
  497. package/dist/migrate/supertokens/plugin.js.map +0 -1
  498. package/dist/migrate/user-table/plugin.d.ts +0 -2
  499. package/dist/migrate/user-table/plugin.js +0 -62
  500. package/dist/migrate/user-table/plugin.js.map +0 -1
  501. package/dist/migrate/userfront/plugin.d.ts +0 -2
  502. package/dist/migrate/userfront/plugin.js +0 -60
  503. package/dist/migrate/userfront/plugin.js.map +0 -1
  504. package/dist/migrate/workos/plugin.d.ts +0 -2
  505. package/dist/migrate/workos/plugin.js +0 -81
  506. package/dist/migrate/workos/plugin.js.map +0 -1
  507. package/dist/migrate/zitadel/plugin.d.ts +0 -2
  508. package/dist/migrate/zitadel/plugin.js +0 -114
  509. package/dist/migrate/zitadel/plugin.js.map +0 -1
  510. package/dist/output.d.ts +0 -41
  511. package/dist/output.js +0 -72
  512. package/dist/output.js.map +0 -1
  513. package/dist/project.d.ts +0 -64
  514. package/dist/project.js +0 -86
  515. package/dist/project.js.map +0 -1
  516. package/dist/prompt.d.ts +0 -15
  517. package/dist/prompt.js +0 -46
  518. package/dist/prompt.js.map +0 -1
  519. package/dist/run.d.ts +0 -12
  520. package/dist/run.js +0 -157
  521. package/dist/run.js.map +0 -1
  522. package/dist/secrets.d.ts +0 -41
  523. package/dist/secrets.js +0 -142
  524. package/dist/secrets.js.map +0 -1
  525. package/dist/serialize.d.ts +0 -30
  526. package/dist/serialize.js +0 -131
  527. package/dist/serialize.js.map +0 -1
  528. package/dist/version.d.ts +0 -7
  529. package/dist/version.js +0 -21
  530. package/dist/version.js.map +0 -1
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.keycloakPlugin = void 0;
4
- const node_fs_1 = require("node:fs");
5
- const node_path_1 = require("node:path");
6
- const errors_1 = require("../../errors");
7
- const keycloak_1 = require("../export/keycloak");
8
- const keycloak_config_1 = require("../export/keycloak-config");
9
- const plugin_kit_1 = require("../export/plugin-kit");
10
- /**
11
- * `atlas migrate keycloak` — a Keycloak (or Red Hat build of Keycloak) realm:
12
- * its settings as Atlas config (Admin API or a realm export); users with their
13
- * federated identities, roles, groups, organizations, SSO brokers, TOTP,
14
- * recovery codes and passkeys from a REALM EXPORT (`kc.sh export`, the only
15
- * path that carries password hashes and OTP secrets) or the Admin API (no
16
- * secrets); the `keycloak` bridge preset for access / ID tokens; lazy migration
17
- * through the password grant; and the code. Your admin credentials stay on this machine.
18
- */
19
- const URL_SPEC = { flag: '--keycloak-url', env: 'KEYCLOAK_URL', label: 'your Keycloak base URL (https://sso.example.com; with /auth on Keycloak 16 and older)', required: false };
20
- const REALM = { flag: '--keycloak-realm', env: 'KEYCLOAK_REALM', label: 'the realm to move', required: false };
21
- const CLIENT_ID = { flag: '--keycloak-client-id', env: 'KEYCLOAK_CLIENT_ID', label: 'an admin client (service account with view-users, view-realm, query-users, view-clients) or the client of an admin user (default admin-cli)', required: false };
22
- const CLIENT_SECRET = { flag: '--keycloak-client-secret', env: 'KEYCLOAK_CLIENT_SECRET', label: 'that client\'s secret', required: false, secret: true };
23
- const ADMIN_USER = { flag: '--keycloak-admin-user', env: 'KEYCLOAK_ADMIN_USER', label: 'an admin user (alternative to a client)', required: false };
24
- const ADMIN_PASSWORD = { flag: '--keycloak-admin-password', env: 'KEYCLOAK_ADMIN_PASSWORD', label: 'that admin user\'s password', required: false, secret: true };
25
- const AUTH_REALM = { flag: '--keycloak-auth-realm', env: 'KEYCLOAK_AUTH_REALM', label: 'the realm the admin credential lives in (default master for a user, the realm for a client)', required: false };
26
- const EXPORT_FILE = { flag: '--keycloak-export', env: 'KEYCLOAK_EXPORT', label: 'a realm export: the file or folder `kc.sh export` wrote', required: false };
27
- const RP_ID = { flag: '--keycloak-rp-id', env: 'KEYCLOAK_RP_ID', label: 'the WebAuthn relying-party id when the realm leaves it empty', required: false };
28
- const GROUPS_AS = { flag: '--groups-as', env: 'ATLAS_MIGRATE_GROUPS_AS', label: 'how groups move: roles, organizations or skip', required: false };
29
- const LAZY_CLIENT = { flag: '--keycloak-lazy-client-id', env: 'KEYCLOAK_LAZY_CLIENT_ID', label: 'a client with Direct access grants enabled (lazy migration)', required: false };
30
- function groupsAs(p) {
31
- const raw = p.credential(GROUPS_AS) ?? 'roles';
32
- if (raw !== 'roles' && raw !== 'organizations' && raw !== 'skip')
33
- throw new errors_1.CliError(`Keycloak: --groups-as must be roles, organizations or skip (got ${raw}).`);
34
- return raw;
35
- }
36
- function baseUrl(p, required) {
37
- const raw = p.credential({ ...URL_SPEC, required });
38
- return raw ? (0, keycloak_1.keycloakBase)(raw) : undefined;
39
- }
40
- function adminApi(p, realm) {
41
- const url = baseUrl(p, true);
42
- const username = p.credential(ADMIN_USER);
43
- const password = p.credential(ADMIN_PASSWORD);
44
- const clientId = p.credential(CLIENT_ID);
45
- const clientSecret = p.credential(CLIENT_SECRET);
46
- if (!(username && password) && !(clientId && clientSecret)) {
47
- throw new errors_1.CliError('Keycloak: pass an admin client (--set keycloak-client-id=… and KEYCLOAK_CLIENT_SECRET) or an admin user (--set keycloak-admin-user=… and KEYCLOAK_ADMIN_PASSWORD).');
48
- }
49
- return { baseUrl: url, realm, clientId, clientSecret, username, password, authRealm: p.credential(AUTH_REALM), fetchImpl: p.fetch };
50
- }
51
- /** The JSON documents of a realm export: one file, or every .json in a folder. */
52
- function readExportDocs(p, path) {
53
- const abs = (0, node_path_1.resolve)(path);
54
- let files;
55
- try {
56
- files = (0, node_fs_1.statSync)(abs).isDirectory() ? (0, node_fs_1.readdirSync)(abs).filter((f) => f.endsWith('.json')).sort().map((f) => (0, node_path_1.join)(abs, f)) : [abs];
57
- }
58
- catch (err) {
59
- throw new errors_1.CliError(`Keycloak: could not read the realm export at ${path}: ${err.message}`);
60
- }
61
- if (!files.length)
62
- throw new errors_1.CliError(`Keycloak: no .json files in ${path}.`);
63
- return files.map((f) => {
64
- try {
65
- return JSON.parse(p.ctx.readFile(f));
66
- }
67
- catch (err) {
68
- throw new errors_1.CliError(`Keycloak: ${f} is not valid JSON: ${err.message}`);
69
- }
70
- });
71
- }
72
- exports.keycloakPlugin = {
73
- vendor: 'keycloak',
74
- source: 'keycloak',
75
- label: 'Keycloak',
76
- help: 'Move a Keycloak realm: its settings (password policy, sessions, OTP and WebAuthn, brokers, clients\' redirect URIs, roles) as Atlas config; users with identities, roles, groups or organizations, SAML and OIDC brokers as SSO connections, and, from a realm export, password hashes (PBKDF2, Argon2), TOTP secrets, recovery codes and passkeys; a zero-logout bridge on your realm\'s tokens; lazy migration through the password grant; and the code. Admin credentials stay on this machine.',
77
- config: {
78
- reads: 'your realm via the Admin REST API, or a realm export',
79
- credentials: [URL_SPEC, REALM, CLIENT_ID, CLIENT_SECRET, ADMIN_USER, ADMIN_PASSWORD, AUTH_REALM, EXPORT_FILE],
80
- async translate(p) {
81
- const file = p.credential(EXPORT_FILE);
82
- if (file) {
83
- const snap = (0, keycloak_1.readKeycloakExport)(readExportDocs(p, file), p.credential(REALM));
84
- return (0, keycloak_config_1.translateKeycloakConfig)(snap.realm, { groupsAs: groupsAs(p), baseUrl: baseUrl(p, false) });
85
- }
86
- const realm = p.credential({ ...REALM, required: true });
87
- const http = (0, keycloak_1.keycloakAdminHttp)(adminApi(p, realm));
88
- const doc = await (0, plugin_kit_1.vendorStep)('Keycloak', () => (0, keycloak_config_1.fetchKeycloakConfig)(http, realm, baseUrl(p, true)));
89
- return (0, keycloak_config_1.translateKeycloakConfig)(doc, { groupsAs: groupsAs(p), baseUrl: baseUrl(p, true) });
90
- },
91
- },
92
- export: {
93
- reads: 'a realm export (kc.sh export) or the Keycloak Admin REST API',
94
- credentials: [EXPORT_FILE, URL_SPEC, REALM, CLIENT_ID, CLIENT_SECRET, ADMIN_USER, ADMIN_PASSWORD, AUTH_REALM, RP_ID],
95
- limits: [
96
- 'Only a realm export carries password hashes (PBKDF2-SHA1/256/512, Argon2), OTP secrets and recovery-code hashes: run `kc.sh export --realm <realm> --file realm.json --users realm_file` (or `--dir`) and pass it with --set keycloak-export=<path>. The Admin API strips every secret.',
97
- 'With the Admin API alone, passwords move by lazy migration (the keycloak preset) and authenticator-app users enrol again; WebAuthn public keys DO come back.',
98
- 'Users of an LDAP / Kerberos user-storage provider have no password in Keycloak: lazy migration lets Keycloak (and the directory) verify them. Users of a provider without local import are not exported.',
99
- 'Identity-provider and client secrets are masked by the Admin API (a realm export keeps them unless they live in a vault): enter them on the SSO connection.',
100
- 'Live sessions are not exportable: the bridge exchanges Keycloak access and ID tokens for Atlas sessions.',
101
- 'Composite roles import as plain roles; fine-grained authorization services are not migrated.',
102
- ],
103
- async run(p, writer, resume) {
104
- const file = p.credential(EXPORT_FILE);
105
- const realm = p.credential(REALM);
106
- const common = { realm, groupsAs: groupsAs(p), rpId: p.credential(RP_ID), onProgress: (m) => p.say(` reading ${m}`) };
107
- if (!file && !(baseUrl(p, false) && realm)) {
108
- throw new errors_1.CliError('Keycloak: pass a realm export (--set keycloak-export=<path>), or the base URL and realm with an admin credential (--set keycloak-url=… --set keycloak-realm=…).');
109
- }
110
- const set = await (0, plugin_kit_1.vendorStep)('Keycloak', async () => file
111
- ? (0, keycloak_1.exportKeycloak)({ ...common, exportDocs: readExportDocs(p, file), api: baseUrl(p, false) ? { baseUrl: baseUrl(p, false), clientId: undefined } : undefined })
112
- : (0, keycloak_1.exportKeycloak)({ ...common, api: adminApi(p, realm) }));
113
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
114
- },
115
- },
116
- bridge: {
117
- preset: 'keycloak',
118
- vars(p, t) {
119
- const vars = { ...t?.bridge?.vars };
120
- const url = baseUrl(p, false);
121
- if (url)
122
- vars.base_url = url;
123
- const realm = p.credential(REALM);
124
- if (realm)
125
- vars.realm = realm;
126
- return vars;
127
- },
128
- },
129
- lazy: {
130
- preset: 'keycloak',
131
- config(p, t) {
132
- const config = { ...t?.lazy?.config };
133
- const url = baseUrl(p, false);
134
- if (url)
135
- config.base_url = url;
136
- const realm = p.credential(REALM);
137
- if (realm)
138
- config.realm = realm;
139
- const client = p.credential(LAZY_CLIENT) ?? p.credential(CLIENT_ID);
140
- if (client)
141
- config.client_id = client;
142
- return config;
143
- },
144
- secret: { flag: '--keycloak-lazy-client-secret', env: 'KEYCLOAK_LAZY_CLIENT_SECRET', label: 'the secret of that client (confidential clients only)', required: false, secret: true },
145
- },
146
- codemod: 'keycloak',
147
- };
148
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/keycloak/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const kindePlugin: MigrationPlugin;
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.kindePlugin = void 0;
4
- const kinde_1 = require("../export/kinde");
5
- const kinde_descope_config_1 = require("../export/kinde-descope-config");
6
- const errors_1 = require("../../errors");
7
- const plugin_kit_1 = require("../export/plugin-kit");
8
- const vendor_http_1 = require("../export/vendor-http");
9
- /**
10
- * `atlas migrate kinde` — Kinde's "All data" export (Settings → Business →
11
- * Export data: an AES-256-CTR encrypted zip holding users.ndjson with bcrypt
12
- * hashes and organizations.ndjson; the Key and IV are shown at download),
13
- * merged with what the Management API adds (identities, organizations,
14
- * members, roles, permissions, invitations). Kinde has no password grant, so
15
- * there is no lazy-migration preset: passwords move with the export. The
16
- * `kinde` bridge preset verifies Kinde's access and ID tokens against the
17
- * business's JWKS.
18
- */
19
- const DOMAIN = { flag: '--kinde-domain', env: 'KINDE_ISSUER_URL', label: 'your Kinde domain (https://example.kinde.com)', required: false };
20
- const CLIENT_ID = { flag: '--kinde-client-id', env: 'KINDE_M2M_CLIENT_ID', label: 'the client id of a machine-to-machine app authorized for the Kinde Management API', required: false };
21
- const CLIENT_SECRET = { flag: '--kinde-client-secret', env: 'KINDE_M2M_CLIENT_SECRET', label: 'that app\'s client secret', required: false, secret: true };
22
- const EXPORT_FILE = { flag: '--kinde-export', env: 'KINDE_EXPORT_FILE', label: 'the Kinde data export (.dat, or the decrypted .zip)', required: false };
23
- const EXPORT_KEY = { flag: '--kinde-export-key', env: 'KINDE_EXPORT_KEY', label: 'the Key Kinde showed with the export (hex)', required: false, secret: true };
24
- const EXPORT_IV = { flag: '--kinde-export-iv', env: 'KINDE_EXPORT_IV', label: 'the IV Kinde showed with the export (hex)', required: false };
25
- function domainOf(p) {
26
- const raw = p.credential(DOMAIN) ?? p.ctx.env.KINDE_DOMAIN?.trim();
27
- return raw ? (0, plugin_kit_1.hostOf)(raw) : undefined;
28
- }
29
- exports.kindePlugin = {
30
- vendor: 'kinde',
31
- source: 'kinde',
32
- label: 'Kinde',
33
- help: 'Move a Kinde business: applications, connections, roles, permissions and APIs as Atlas config; users with their bcrypt password hashes from Kinde\'s encrypted data export, plus organizations, members and roles from the Management API (social accounts relink by verified email); a zero-logout bridge for Kinde tokens; and the code. The export key and API credentials stay on this machine.',
34
- config: {
35
- reads: 'your Kinde business via the Management API (applications, connections, roles, permissions, APIs)',
36
- credentials: [DOMAIN, CLIENT_ID, CLIENT_SECRET],
37
- async translate(p) {
38
- const domain = domainOf(p);
39
- if (!domain)
40
- throw new errors_1.CliError('Kinde: your Kinde domain is needed (--kinde-domain or KINDE_ISSUER_URL).');
41
- const clientId = (0, plugin_kit_1.need)(p, CLIENT_ID);
42
- const clientSecret = (0, plugin_kit_1.need)(p, CLIENT_SECRET);
43
- const base = `https://${domain}`;
44
- let token;
45
- const http = new vendor_http_1.VendorHttp({
46
- vendor: 'Kinde',
47
- baseUrl: `${base}/api/v1`,
48
- headers: async () => ({ authorization: `Bearer ${(token ??= await (0, kinde_1.m2mToken)(base, { clientId, clientSecret, fetchImpl: p.fetch }))}` }),
49
- fetchImpl: p.fetch,
50
- });
51
- const snap = await (0, plugin_kit_1.vendorStep)('Kinde', () => (0, kinde_descope_config_1.fetchKindeConfig)(http, domain));
52
- return (0, kinde_descope_config_1.translateKindeConfig)(snap);
53
- },
54
- },
55
- export: {
56
- reads: 'the Kinde data export (--kinde-export with its Key and IV) and/or the Kinde Management API',
57
- credentials: [DOMAIN, CLIENT_ID, CLIENT_SECRET, EXPORT_FILE, EXPORT_KEY, EXPORT_IV],
58
- limits: [
59
- 'Password hashes only come from the "All data" export (Settings → Business → Export data), which the business owner approves; Kinde has no password grant, so without it users set a new password (or sign in with a code / social login).',
60
- 'MFA secrets and passkeys are not exportable: users enrol again.',
61
- 'Sessions are not exported: Kinde tokens are JWTs, exchanged by the kinde bridge preset.',
62
- ],
63
- async run(p, writer, resume) {
64
- const file = (0, plugin_kit_1.localFile)(p, EXPORT_FILE, 'bytes');
65
- const domain = domainOf(p);
66
- const clientId = p.credential(CLIENT_ID);
67
- const clientSecret = p.credential(CLIENT_SECRET);
68
- if (!file && !(domain && clientId && clientSecret)) {
69
- throw new errors_1.CliError('Kinde: pass the data export (--kinde-export with --kinde-export-key and --kinde-export-iv), Management API credentials (KINDE_ISSUER_URL, KINDE_M2M_CLIENT_ID, KINDE_M2M_CLIENT_SECRET), or both.');
70
- }
71
- let encryptedExport;
72
- let zip;
73
- if (file) {
74
- // A zip (already decrypted) starts with PK\x03\x04; anything else is the encrypted .dat.
75
- if (file.length >= 4 && file.readUInt32LE(0) === 0x04034b50)
76
- zip = file;
77
- else
78
- encryptedExport = { data: file, key: (0, plugin_kit_1.need)(p, EXPORT_KEY), iv: (0, plugin_kit_1.need)(p, EXPORT_IV) };
79
- }
80
- const set = await (0, plugin_kit_1.vendorStep)('Kinde', () => (0, kinde_1.exportKinde)({
81
- domain,
82
- clientId,
83
- clientSecret,
84
- encryptedExport,
85
- zip,
86
- includeDefaultOrganization: (0, plugin_kit_1.flag)(p, 'kinde-include-default-org'),
87
- fetchImpl: p.fetch,
88
- onProgress: (m) => p.say(` reading ${m}`),
89
- }));
90
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
91
- },
92
- },
93
- bridge: {
94
- preset: 'kinde',
95
- vars(p, t) {
96
- const domain = domainOf(p) ?? t?.bridge?.vars.domain;
97
- const vars = {};
98
- if (domain)
99
- vars.domain = domain;
100
- return vars;
101
- },
102
- },
103
- codemod: 'kinde',
104
- };
105
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/kinde/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const ldapPlugin: MigrationPlugin;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ldapPlugin = void 0;
4
- const node_path_1 = require("node:path");
5
- const args_1 = require("../../args");
6
- const errors_1 = require("../../errors");
7
- const ldap_1 = require("../export/ldap");
8
- const plugin_kit_1 = require("../export/plugin-kit");
9
- /**
10
- * `atlas migrate ldap export --file dir.ldif` — an LDAP directory (OpenLDAP,
11
- * 389 DS, PingDirectory, Oracle/Sun DS, Active Directory) from an LDIF export
12
- * made with the directory's own tools. Users keep a password hash Atlas can
13
- * verify; the rest move by lazy migration (the `ldap` preset binds to the
14
- * directory over ldaps:// on the user's first sign-in).
15
- */
16
- const GROUPS = { flag: 'ldap-groups', env: 'LDAP_GROUPS', label: 'what groups become: roles (default), organizations or none', required: false };
17
- const ID_ATTRIBUTE = { flag: 'ldap-id-attribute', env: 'LDAP_ID_ATTRIBUTE', label: 'the attribute used as the user id (entryUUID, nsUniqueId, objectGUID …)', required: false };
18
- const URL_SPEC = { flag: 'ldap-url', env: 'LDAP_URL', label: 'the directory URL for lazy migration (ldaps://ldap.example.com:636)', required: false };
19
- const BIND_DN = { flag: 'ldap-bind-dn', env: 'LDAP_BIND_DN', label: 'the service account DN for lazy migration', required: false };
20
- const BASE_DN = { flag: 'ldap-base-dn', env: 'LDAP_BASE_DN', label: 'the search base for lazy migration', required: false };
21
- const FILTER = { flag: 'ldap-user-filter', env: 'LDAP_USER_FILTER', label: 'the user search filter with {{username}}', required: false };
22
- const TRUST = { flag: 'ldap-trust-emails', env: 'LDAP_TRUST_EMAILS', label: 'mark directory addresses verified (true or false)', required: false };
23
- function file(p) {
24
- return (0, args_1.str)(p.args.values, 'file') ?? p.credential({ flag: 'file', env: 'ATLAS_MIGRATE_FILE', label: 'the LDIF file (--file)', required: true });
25
- }
26
- exports.ldapPlugin = {
27
- vendor: 'ldap',
28
- source: 'ldap',
29
- label: 'LDAP / Active Directory',
30
- help: 'Move a directory: users (mail, uid, names, phones, disabled and locked state, creation and last login), groups as roles or organizations, and every userPassword hash Atlas verifies ({SSHA}, {SMD5}, {PBKDF2-*}, {CRYPT}$6$…, bcrypt, Argon2, …). Export the directory as LDIF first (slapcat, ldifde, export-ldif, dsctl db2ldif); the file is read on this machine. Passwords Atlas cannot verify (Active Directory, DES crypt, pass-through) move by lazy migration against your directory over ldaps://.',
31
- export: {
32
- reads: 'a local LDIF export of the directory (--file)',
33
- credentials: [GROUPS, ID_ATTRIBUTE, TRUST],
34
- limits: [
35
- 'Active Directory never exports password hashes (unicodePwd is write-only): configure lazy migration (preset ldap) so each user moves on their first sign-in.',
36
- 'Traditional DES {CRYPT} and pass-through schemes ({SASL}) cannot be verified by Atlas: those users move by lazy migration.',
37
- 'Directory addresses were set by administrators, not confirmed by the users: they import unverified unless --set ldap-trust-emails=true.',
38
- ],
39
- async run(p, writer, resume) {
40
- const path = (0, node_path_1.resolve)(file(p));
41
- const { entries, problems } = (0, ldap_1.parseLdif)(p.ctx.readFile(path));
42
- if (!entries.length)
43
- throw new errors_1.CliError(`No entries found in ${path}: is it an LDIF export?`);
44
- const mode = p.credential(GROUPS) ?? 'roles';
45
- if (!['roles', 'organizations', 'none'].includes(mode))
46
- throw new errors_1.CliError('--set ldap-groups must be roles, organizations or none.');
47
- const set = (0, ldap_1.mapLdif)(entries, {
48
- groups: mode,
49
- idAttribute: p.credential(ID_ATTRIBUTE),
50
- trustEmails: p.credential(TRUST) === 'true',
51
- origin: `LDIF export ${path}`,
52
- });
53
- for (const problem of problems.slice(0, 20))
54
- set.warn(`LDIF: ${problem}`);
55
- p.say(` read ${entries.length} entries from ${path}`);
56
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
57
- },
58
- },
59
- lazy: {
60
- preset: 'ldap',
61
- config(p) {
62
- const config = {};
63
- for (const [key, spec] of [['url', URL_SPEC], ['bind_dn', BIND_DN], ['base_dn', BASE_DN], ['user_filter', FILTER], ['id_attribute', ID_ATTRIBUTE]]) {
64
- const v = p.credential(spec);
65
- if (v)
66
- config[key] = v;
67
- }
68
- return config;
69
- },
70
- secret: { flag: 'ldap-bind-password', env: 'LDAP_BIND_PASSWORD', label: 'the service account password', required: false, secret: true },
71
- },
72
- };
73
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/ldap/plugin.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,qCAAiC;AACjC,yCAAwC;AACxC,yCAAoD;AACpD,qDAAsD;AAGtD;;;;;;GAMG;AAEH,MAAM,MAAM,GAAmB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,4DAA4D,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACjK,MAAM,YAAY,GAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,yEAAyE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAChM,MAAM,QAAQ,GAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,qEAAqE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACtK,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,2CAA2C,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACnJ,MAAM,OAAO,GAAmB,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,oCAAoC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC5I,MAAM,MAAM,GAAmB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,0CAA0C,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACzJ,MAAM,KAAK,GAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,mDAAmD,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAEnK,SAAS,IAAI,CAAC,CAAgB;IAC5B,OAAO,IAAA,UAAG,EAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE,CAAC;AACnJ,CAAC;AAEY,QAAA,UAAU,GAAoB;IACzC,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,+eAA+e;IACrf,MAAM,EAAE;QACN,KAAK,EAAE,+CAA+C;QACtD,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC;QAC1C,MAAM,EAAE;YACN,8JAA8J;YAC9J,4HAA4H;YAC5H,yIAAyI;SAC1I;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM;YACzB,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAA,gBAAS,EAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,MAAM,IAAI,iBAAQ,CAAC,uBAAuB,IAAI,yBAAyB,CAAC,CAAC;YAC9F,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;YAC7C,IAAI,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,iBAAQ,CAAC,yDAAyD,CAAC,CAAC;YACtI,MAAM,GAAG,GAAG,IAAA,cAAO,EAAC,OAAO,EAAE;gBAC3B,MAAM,EAAE,IAA0C;gBAClD,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;gBACvC,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM;gBAC3C,MAAM,EAAE,eAAe,IAAI,EAAE;aAC9B,CAAC,CAAC;YACH,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,MAAM,iBAAiB,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,IAAA,2BAAc,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;KACF;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,MAAM,CAAC,CAAC;YACN,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAU,EAAE,CAAC;gBAC5J,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,8BAA8B,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;KACxI;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const logtoPlugin: MigrationPlugin;
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logtoPlugin = void 0;
4
- const node_path_1 = require("node:path");
5
- const errors_1 = require("../../errors");
6
- const logto_1 = require("../export/logto");
7
- const logto_config_1 = require("../export/logto-config");
8
- const tables_1 = require("../export/frameworks/tables");
9
- const plugin_kit_1 = require("../export/plugin-kit");
10
- /**
11
- * `atlas migrate logto` — a Logto tenant (self-hosted or Logto Cloud): the
12
- * sign-in experience, connectors, applications, API resources and roles as
13
- * Atlas config; users, social and enterprise identities, organizations,
14
- * roles, invitations and personal access tokens through the Management API
15
- * (a machine-to-machine app on this machine) or from a database dump of a
16
- * self-hosted Logto, which also carries password hashes, TOTP secrets,
17
- * passkeys and backup codes; the `logto` bridge preset (an ID token verified
18
- * against the tenant's `/oidc/jwks`); lazy migration through the Management
19
- * API's password check; and the code.
20
- */
21
- const ENDPOINT = { flag: '--logto-endpoint', env: 'LOGTO_ENDPOINT', label: 'your Logto endpoint (https://auth.example.com or https://abc123.logto.app)', required: false };
22
- const TENANT = { flag: '--logto-tenant-id', env: 'LOGTO_TENANT_ID', label: 'the tenant id (default on a self-hosted Logto; the abc123 of abc123.logto.app on Logto Cloud)', required: false };
23
- const APP_ID = { flag: '--logto-m2m-app-id', env: 'LOGTO_M2M_APP_ID', label: 'the id of a machine-to-machine app with the Management API role', required: false };
24
- const APP_SECRET = { flag: '--logto-m2m-app-secret', env: 'LOGTO_M2M_APP_SECRET', label: 'that app\'s secret', required: false, secret: true };
25
- const DUMP = { flag: '--logto-dump', env: 'LOGTO_DUMP_DIR', label: 'a folder of database table dumps (users.csv, roles.csv, organizations.csv, …)', required: false };
26
- const CLIENT_ID = { flag: '--logto-client-id', env: 'LOGTO_APP_ID', label: 'the id of your Logto application (the audience of its ID tokens)', required: false };
27
- const PATS = { flag: '--logto-personal-access-tokens', env: 'LOGTO_PERSONAL_ACCESS_TOKENS', label: 'true, to read each user\'s personal access tokens too (one API call per user)', required: false };
28
- const RP_ID = { flag: '--rp-id', env: 'ATLAS_MIGRATE_RP_ID', label: 'the WebAuthn relying party id passkeys were registered for', required: false };
29
- function endpointOf(p, required) {
30
- const raw = p.credential({ ...ENDPOINT, required });
31
- if (!raw)
32
- return undefined;
33
- try {
34
- return (0, logto_1.normalizeEndpoint)(raw);
35
- }
36
- catch (err) {
37
- throw new errors_1.CliError(`Logto: ${err.message}`);
38
- }
39
- }
40
- function m2m(p) {
41
- const appId = p.credential(APP_ID);
42
- const appSecret = p.credential(APP_SECRET);
43
- return appId && appSecret ? { appId, appSecret } : undefined;
44
- }
45
- function tenantOf(p, endpoint) {
46
- return p.credential(TENANT)?.trim() ?? (endpoint ? (0, logto_1.tenantOfEndpoint)(endpoint) : null) ?? 'default';
47
- }
48
- exports.logtoPlugin = {
49
- vendor: 'logto',
50
- source: 'logto',
51
- label: 'Logto',
52
- help: 'Move a Logto tenant (self-hosted or Logto Cloud): its sign-in experience, connectors, applications, API resources and roles as Atlas config; users, social and enterprise identities, organizations, roles, invitations and personal access tokens through the Management API with a machine-to-machine app (on this machine) or from a database dump, which also carries password hashes, TOTP secrets, passkeys and backup codes; a zero-logout bridge on the tenant\'s ID tokens; lazy migration for passwords you cannot export; and the code.',
53
- config: {
54
- reads: 'your Logto tenant via the Management API',
55
- credentials: [ENDPOINT, TENANT, APP_ID, APP_SECRET],
56
- async translate(p) {
57
- const endpoint = endpointOf(p, true);
58
- const credentials = m2m(p);
59
- if (!credentials)
60
- throw new errors_1.CliError('Logto: pass the machine-to-machine app id and secret (--set logto-m2m-app-id=… --set logto-m2m-app-secret=…, or LOGTO_M2M_APP_ID / LOGTO_M2M_APP_SECRET).');
61
- const tenantId = tenantOf(p, endpoint);
62
- const http = (0, logto_1.logtoManagementHttp)({ endpoint, m2m: credentials, tenantId, fetchImpl: p.fetch });
63
- return (0, logto_config_1.translateLogtoConfig)(await (0, plugin_kit_1.vendorStep)('Logto', () => (0, logto_config_1.fetchLogtoConfig)(http, endpoint, tenantId)));
64
- },
65
- },
66
- export: {
67
- reads: 'the Logto Management API (machine-to-machine app) or a database dump of a self-hosted Logto',
68
- credentials: [ENDPOINT, TENANT, APP_ID, APP_SECRET, DUMP, RP_ID, PATS],
69
- limits: [
70
- 'The Management API never returns MFA secrets (TOTP keys, WebAuthn credentials, backup codes): those users enrol again, unless you export from the database of a self-hosted Logto (--set logto-dump=<folder>).',
71
- 'The Management API does not reliably return password hashes: a database dump of a self-hosted Logto carries them (Argon2, bcrypt, SHA-family and legacy expressions). Logto Cloud tenants, and every user without a hash, move by lazy migration (the logto preset).',
72
- 'Passkeys move only with the relying-party id they were registered for (--set rp-id=…, or the endpoint host): your Atlas domain must match it.',
73
- 'Machine-to-machine apps and their secrets are not exported: create Atlas M2M clients.',
74
- 'Logto sessions are encrypted cookies of your app\'s SDK: the bridge exchanges the ID token inside them (see the guide for the extractor).',
75
- 'Personal access tokens come over the API one call per user: add --set logto-personal-access-tokens=true.',
76
- ],
77
- async run(p, writer, resume) {
78
- const dumpDir = p.credential(DUMP);
79
- const endpoint = endpointOf(p, false);
80
- const credentials = m2m(p);
81
- if (!dumpDir && !(endpoint && credentials)) {
82
- throw new errors_1.CliError('Logto: pass a database dump (--set logto-dump=<folder>), or the endpoint with a machine-to-machine app (--set logto-endpoint=… plus LOGTO_M2M_APP_ID and LOGTO_M2M_APP_SECRET).');
83
- }
84
- const set = await (0, plugin_kit_1.vendorStep)('Logto', async () => (0, logto_1.exportLogto)({
85
- tables: dumpDir ? (0, tables_1.readDumpDir)((0, node_path_1.resolve)(dumpDir)) : undefined,
86
- endpoint,
87
- m2m: credentials,
88
- tenantId: p.credential(TENANT)?.trim(),
89
- rpId: p.credential(RP_ID)?.trim(),
90
- personalAccessTokens: /^(1|true|yes)$/i.test(p.credential(PATS)?.trim() ?? ''),
91
- fetchImpl: p.fetch,
92
- onProgress: (m) => p.say(` reading ${m}`),
93
- }));
94
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
95
- },
96
- },
97
- bridge: {
98
- preset: 'logto',
99
- vars(p, t) {
100
- const vars = { ...t?.bridge?.vars };
101
- const endpoint = endpointOf(p, false);
102
- if (endpoint)
103
- vars.base_url = endpoint;
104
- const clientId = p.credential(CLIENT_ID);
105
- if (clientId)
106
- vars.client_id = clientId;
107
- return vars;
108
- },
109
- },
110
- lazy: {
111
- preset: 'logto',
112
- config(p, t) {
113
- const config = { ...t?.lazy?.config };
114
- const endpoint = endpointOf(p, false);
115
- if (endpoint)
116
- config.base_url = endpoint;
117
- const appId = p.credential(APP_ID);
118
- if (appId)
119
- config.app_id = appId;
120
- const tenant = p.credential(TENANT)?.trim();
121
- if (tenant)
122
- config.tenant_id = tenant;
123
- else if (endpoint && (0, logto_1.tenantOfEndpoint)(endpoint))
124
- config.tenant_id = (0, logto_1.tenantOfEndpoint)(endpoint);
125
- return config;
126
- },
127
- secret: APP_SECRET,
128
- },
129
- codemod: 'logto',
130
- };
131
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/logto/plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const magicPlugin: MigrationPlugin;
@@ -1,56 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.magicPlugin = void 0;
4
- const magic_1 = require("../export/magic");
5
- const magic_config_1 = require("../export/magic-config");
6
- const plugin_kit_1 = require("../export/plugin-kit");
7
- /**
8
- * `atlas migrate magic` — users from the export file in your Magic dashboard
9
- * (Magic has no API to list users), their issuers from an optional email →
10
- * issuer file, and the `magic` bridge preset (DID tokens verified against the
11
- * signer's own key and your client id). Magic holds no passwords.
12
- */
13
- const USERS_FILE = { flag: '--magic-users-file', env: 'MAGIC_USERS_FILE', label: 'the user export file from your Magic dashboard (CSV)', required: true };
14
- const ISSUERS_FILE = { flag: '--magic-issuers-file', env: 'MAGIC_ISSUERS_FILE', label: 'a file mapping each email to its Magic issuer (did:ethr:…)', required: false };
15
- const CLIENT_ID = { flag: '--magic-client-id', env: 'MAGIC_CLIENT_ID', label: 'your Magic client id (did:magic:…)', required: false };
16
- function clientId(p) {
17
- return p.credential(CLIENT_ID) ?? (p.ctx.env.NEXT_PUBLIC_MAGIC_CLIENT_ID?.trim() || undefined);
18
- }
19
- exports.magicPlugin = {
20
- vendor: 'magic',
21
- source: 'magic',
22
- label: 'Magic (magic.link)',
23
- help: 'Move a Magic (magic.link) app: users from the export file in your Magic dashboard, with verified emails and, when you have them, Magic issuers so the zero-logout bridge recognises each person\'s current DID token; email code and link sign-in as Atlas config; and the code. Magic has no user-listing API, so no Magic secret key is needed.',
24
- config: {
25
- reads: 'nothing from Magic (it has no settings API): the translation lists where each Magic setting lives',
26
- credentials: [CLIENT_ID],
27
- async translate(p) {
28
- return (0, magic_config_1.translateMagicConfig)({ ...(clientId(p) ? { clientId: clientId(p) } : {}) });
29
- },
30
- },
31
- export: {
32
- reads: 'the Magic dashboard user export (--magic-users-file) and an optional email → issuer file (--magic-issuers-file)',
33
- credentials: [USERS_FILE, ISSUERS_FILE],
34
- limits: [
35
- 'Magic has no API to list users: export them from the Magic dashboard (Users → Export) and pass that file with --magic-users-file.',
36
- 'The dashboard export has no issuers. Users without one are imported by email and sign in with an email code; give an email → issuer file (--magic-issuers-file) to keep their current sessions alive through the bridge.',
37
- 'Magic holds no passwords. Embedded wallet keys cannot be exported: users export them from Magic themselves.',
38
- ],
39
- async run(p, writer, resume) {
40
- const usersText = (0, plugin_kit_1.localFile)(p, USERS_FILE, 'text');
41
- if (usersText === undefined)
42
- (0, plugin_kit_1.need)(p, USERS_FILE);
43
- const set = await (0, plugin_kit_1.vendorStep)('Magic', async () => (0, magic_1.exportMagic)({ usersText: usersText, issuersText: (0, plugin_kit_1.localFile)(p, ISSUERS_FILE, 'text'), onProgress: (m) => p.say(` reading ${m}`) }));
44
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
45
- },
46
- },
47
- bridge: {
48
- preset: 'magic',
49
- vars(p, t) {
50
- const id = t?.bridge?.vars.client_id ?? clientId(p);
51
- return id ? { ...t?.bridge?.vars, client_id: id } : { ...t?.bridge?.vars };
52
- },
53
- },
54
- codemod: 'magic',
55
- };
56
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/magic/plugin.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAC9C,yDAA8D;AAE9D,qDAAmF;AAEnF;;;;;GAKG;AAEH,MAAM,UAAU,GAAmB,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,sDAAsD,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1K,MAAM,YAAY,GAAmB,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,4DAA4D,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACvL,MAAM,SAAS,GAAmB,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,oCAAoC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAEtJ,SAAS,QAAQ,CAAC,CAAgB;IAChC,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC;AACjG,CAAC;AAEY,QAAA,WAAW,GAAoB;IAC1C,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,oBAAoB;IAC3B,IAAI,EAAE,mVAAmV;IACzV,MAAM,EAAE;QACN,KAAK,EAAE,mGAAmG;QAC1G,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,KAAK,CAAC,SAAS,CAAC,CAAC;YACf,OAAO,IAAA,mCAAoB,EAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,iHAAiH;QACxH,WAAW,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;QACvC,MAAM,EAAE;YACN,mIAAmI;YACnI,0NAA0N;YAC1N,6GAA6G;SAC9G;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM;YACzB,MAAM,SAAS,GAAG,IAAA,sBAAS,EAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,SAAS,KAAK,SAAS;gBAAE,IAAA,iBAAI,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAU,EAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,SAAS,EAAE,SAAU,EAAE,WAAW,EAAE,IAAA,sBAAS,EAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvL,MAAM,IAAA,2BAAc,EAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;KACF;IACD,MAAM,EAAE;QACN,MAAM,EAAE,OAAO;QACf,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC7E,CAAC;KACF;IACD,OAAO,EAAE,OAAO;CACjB,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { MigrationPlugin } from '../framework/plugin';
2
- export declare const nhostPlugin: MigrationPlugin;