@atlasauth/cli 0.23.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 (527) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/package.json +3 -3
  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 -90
  25. package/dist/commands/config.js +0 -1430
  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/errors.d.ts +0 -15
  115. package/dist/errors.js +0 -25
  116. package/dist/errors.js.map +0 -1
  117. package/dist/help.d.ts +0 -8
  118. package/dist/help.js +0 -868
  119. package/dist/help.js.map +0 -1
  120. package/dist/import/csv.d.ts +0 -6
  121. package/dist/import/csv.js +0 -63
  122. package/dist/import/csv.js.map +0 -1
  123. package/dist/import/vendors.d.ts +0 -57
  124. package/dist/import/vendors.js +0 -568
  125. package/dist/import/vendors.js.map +0 -1
  126. package/dist/index.d.ts +0 -32
  127. package/dist/index.js +0 -79
  128. package/dist/index.js.map +0 -1
  129. package/dist/io.d.ts +0 -21
  130. package/dist/io.js +0 -28
  131. package/dist/io.js.map +0 -1
  132. package/dist/migrate/appwrite/plugin.d.ts +0 -2
  133. package/dist/migrate/appwrite/plugin.js +0 -103
  134. package/dist/migrate/appwrite/plugin.js.map +0 -1
  135. package/dist/migrate/auth0/plugin.d.ts +0 -2
  136. package/dist/migrate/auth0/plugin.js +0 -126
  137. package/dist/migrate/auth0/plugin.js.map +0 -1
  138. package/dist/migrate/authentik/plugin.d.ts +0 -2
  139. package/dist/migrate/authentik/plugin.js +0 -135
  140. package/dist/migrate/authentik/plugin.js.map +0 -1
  141. package/dist/migrate/azure-ad-b2c/plugin.d.ts +0 -8
  142. package/dist/migrate/azure-ad-b2c/plugin.js +0 -165
  143. package/dist/migrate/azure-ad-b2c/plugin.js.map +0 -1
  144. package/dist/migrate/better-auth/integration.d.ts +0 -59
  145. package/dist/migrate/better-auth/integration.js +0 -81
  146. package/dist/migrate/better-auth/integration.js.map +0 -1
  147. package/dist/migrate/better-auth/orchestrator.d.ts +0 -43
  148. package/dist/migrate/better-auth/orchestrator.js +0 -525
  149. package/dist/migrate/better-auth/orchestrator.js.map +0 -1
  150. package/dist/migrate/better-auth/output.d.ts +0 -20
  151. package/dist/migrate/better-auth/output.js +0 -146
  152. package/dist/migrate/better-auth/output.js.map +0 -1
  153. package/dist/migrate/better-auth/translate.d.ts +0 -77
  154. package/dist/migrate/better-auth/translate.js +0 -1989
  155. package/dist/migrate/better-auth/translate.js.map +0 -1
  156. package/dist/migrate/clerk/plugin.d.ts +0 -2
  157. package/dist/migrate/clerk/plugin.js +0 -76
  158. package/dist/migrate/clerk/plugin.js.map +0 -1
  159. package/dist/migrate/cognito/plugin.d.ts +0 -5
  160. package/dist/migrate/cognito/plugin.js +0 -170
  161. package/dist/migrate/cognito/plugin.js.map +0 -1
  162. package/dist/migrate/corbado/plugin.d.ts +0 -2
  163. package/dist/migrate/corbado/plugin.js +0 -63
  164. package/dist/migrate/corbado/plugin.js.map +0 -1
  165. package/dist/migrate/descope/plugin.d.ts +0 -2
  166. package/dist/migrate/descope/plugin.js +0 -83
  167. package/dist/migrate/descope/plugin.js.map +0 -1
  168. package/dist/migrate/entra-external-id/plugin.d.ts +0 -8
  169. package/dist/migrate/entra-external-id/plugin.js +0 -12
  170. package/dist/migrate/entra-external-id/plugin.js.map +0 -1
  171. package/dist/migrate/export/appwrite-config.d.ts +0 -28
  172. package/dist/migrate/export/appwrite-config.js +0 -170
  173. package/dist/migrate/export/appwrite-config.js.map +0 -1
  174. package/dist/migrate/export/appwrite.d.ts +0 -51
  175. package/dist/migrate/export/appwrite.js +0 -288
  176. package/dist/migrate/export/appwrite.js.map +0 -1
  177. package/dist/migrate/export/auth0-config.d.ts +0 -29
  178. package/dist/migrate/export/auth0-config.js +0 -249
  179. package/dist/migrate/export/auth0-config.js.map +0 -1
  180. package/dist/migrate/export/auth0.d.ts +0 -62
  181. package/dist/migrate/export/auth0.js +0 -575
  182. package/dist/migrate/export/auth0.js.map +0 -1
  183. package/dist/migrate/export/authentik-config.d.ts +0 -45
  184. package/dist/migrate/export/authentik-config.js +0 -357
  185. package/dist/migrate/export/authentik-config.js.map +0 -1
  186. package/dist/migrate/export/authentik.d.ts +0 -110
  187. package/dist/migrate/export/authentik.js +0 -838
  188. package/dist/migrate/export/authentik.js.map +0 -1
  189. package/dist/migrate/export/azure-config.d.ts +0 -58
  190. package/dist/migrate/export/azure-config.js +0 -344
  191. package/dist/migrate/export/azure-config.js.map +0 -1
  192. package/dist/migrate/export/azure.d.ts +0 -85
  193. package/dist/migrate/export/azure.js +0 -373
  194. package/dist/migrate/export/azure.js.map +0 -1
  195. package/dist/migrate/export/clerk-config.d.ts +0 -26
  196. package/dist/migrate/export/clerk-config.js +0 -227
  197. package/dist/migrate/export/clerk-config.js.map +0 -1
  198. package/dist/migrate/export/clerk.d.ts +0 -46
  199. package/dist/migrate/export/clerk.js +0 -486
  200. package/dist/migrate/export/clerk.js.map +0 -1
  201. package/dist/migrate/export/cognito-config.d.ts +0 -25
  202. package/dist/migrate/export/cognito-config.js +0 -273
  203. package/dist/migrate/export/cognito-config.js.map +0 -1
  204. package/dist/migrate/export/cognito.d.ts +0 -103
  205. package/dist/migrate/export/cognito.js +0 -441
  206. package/dist/migrate/export/cognito.js.map +0 -1
  207. package/dist/migrate/export/corbado-config.d.ts +0 -20
  208. package/dist/migrate/export/corbado-config.js +0 -63
  209. package/dist/migrate/export/corbado-config.js.map +0 -1
  210. package/dist/migrate/export/corbado.d.ts +0 -37
  211. package/dist/migrate/export/corbado.js +0 -132
  212. package/dist/migrate/export/corbado.js.map +0 -1
  213. package/dist/migrate/export/descope.d.ts +0 -35
  214. package/dist/migrate/export/descope.js +0 -208
  215. package/dist/migrate/export/descope.js.map +0 -1
  216. package/dist/migrate/export/fake-vendor.test-helper.d.ts +0 -27
  217. package/dist/migrate/export/fake-vendor.test-helper.js +0 -41
  218. package/dist/migrate/export/fake-vendor.test-helper.js.map +0 -1
  219. package/dist/migrate/export/firebase-config.d.ts +0 -24
  220. package/dist/migrate/export/firebase-config.js +0 -215
  221. package/dist/migrate/export/firebase-config.js.map +0 -1
  222. package/dist/migrate/export/firebase.d.ts +0 -102
  223. package/dist/migrate/export/firebase.js +0 -464
  224. package/dist/migrate/export/firebase.js.map +0 -1
  225. package/dist/migrate/export/frameworks/app-users.d.ts +0 -42
  226. package/dist/migrate/export/frameworks/app-users.js +0 -161
  227. package/dist/migrate/export/frameworks/app-users.js.map +0 -1
  228. package/dist/migrate/export/frameworks/authjs.d.ts +0 -41
  229. package/dist/migrate/export/frameworks/authjs.js +0 -146
  230. package/dist/migrate/export/frameworks/authjs.js.map +0 -1
  231. package/dist/migrate/export/frameworks/devise.d.ts +0 -39
  232. package/dist/migrate/export/frameworks/devise.js +0 -218
  233. package/dist/migrate/export/frameworks/devise.js.map +0 -1
  234. package/dist/migrate/export/frameworks/django.d.ts +0 -45
  235. package/dist/migrate/export/frameworks/django.js +0 -315
  236. package/dist/migrate/export/frameworks/django.js.map +0 -1
  237. package/dist/migrate/export/frameworks/lucia.d.ts +0 -42
  238. package/dist/migrate/export/frameworks/lucia.js +0 -263
  239. package/dist/migrate/export/frameworks/lucia.js.map +0 -1
  240. package/dist/migrate/export/frameworks/tables.d.ts +0 -90
  241. package/dist/migrate/export/frameworks/tables.js +0 -325
  242. package/dist/migrate/export/frameworks/tables.js.map +0 -1
  243. package/dist/migrate/export/frameworks/webauthn.d.ts +0 -25
  244. package/dist/migrate/export/frameworks/webauthn.js +0 -130
  245. package/dist/migrate/export/frameworks/webauthn.js.map +0 -1
  246. package/dist/migrate/export/frontegg-config.d.ts +0 -29
  247. package/dist/migrate/export/frontegg-config.js +0 -238
  248. package/dist/migrate/export/frontegg-config.js.map +0 -1
  249. package/dist/migrate/export/frontegg.d.ts +0 -67
  250. package/dist/migrate/export/frontegg.js +0 -410
  251. package/dist/migrate/export/frontegg.js.map +0 -1
  252. package/dist/migrate/export/fusionauth-config.d.ts +0 -26
  253. package/dist/migrate/export/fusionauth-config.js +0 -226
  254. package/dist/migrate/export/fusionauth-config.js.map +0 -1
  255. package/dist/migrate/export/fusionauth.d.ts +0 -99
  256. package/dist/migrate/export/fusionauth.js +0 -642
  257. package/dist/migrate/export/fusionauth.js.map +0 -1
  258. package/dist/migrate/export/hanko-config.d.ts +0 -27
  259. package/dist/migrate/export/hanko-config.js +0 -265
  260. package/dist/migrate/export/hanko-config.js.map +0 -1
  261. package/dist/migrate/export/hanko.d.ts +0 -52
  262. package/dist/migrate/export/hanko.js +0 -605
  263. package/dist/migrate/export/hanko.js.map +0 -1
  264. package/dist/migrate/export/keycloak-config.d.ts +0 -19
  265. package/dist/migrate/export/keycloak-config.js +0 -219
  266. package/dist/migrate/export/keycloak-config.js.map +0 -1
  267. package/dist/migrate/export/keycloak.d.ts +0 -155
  268. package/dist/migrate/export/keycloak.js +0 -878
  269. package/dist/migrate/export/keycloak.js.map +0 -1
  270. package/dist/migrate/export/kinde-descope-config.d.ts +0 -38
  271. package/dist/migrate/export/kinde-descope-config.js +0 -172
  272. package/dist/migrate/export/kinde-descope-config.js.map +0 -1
  273. package/dist/migrate/export/kinde.d.ts +0 -57
  274. package/dist/migrate/export/kinde.js +0 -333
  275. package/dist/migrate/export/kinde.js.map +0 -1
  276. package/dist/migrate/export/ldap.d.ts +0 -53
  277. package/dist/migrate/export/ldap.js +0 -277
  278. package/dist/migrate/export/ldap.js.map +0 -1
  279. package/dist/migrate/export/logto-config.d.ts +0 -27
  280. package/dist/migrate/export/logto-config.js +0 -264
  281. package/dist/migrate/export/logto-config.js.map +0 -1
  282. package/dist/migrate/export/logto.d.ts +0 -150
  283. package/dist/migrate/export/logto.js +0 -809
  284. package/dist/migrate/export/logto.js.map +0 -1
  285. package/dist/migrate/export/magic-config.d.ts +0 -14
  286. package/dist/migrate/export/magic-config.js +0 -28
  287. package/dist/migrate/export/magic-config.js.map +0 -1
  288. package/dist/migrate/export/magic.d.ts +0 -31
  289. package/dist/migrate/export/magic.js +0 -93
  290. package/dist/migrate/export/magic.js.map +0 -1
  291. package/dist/migrate/export/mini-yaml.d.ts +0 -19
  292. package/dist/migrate/export/mini-yaml.js +0 -581
  293. package/dist/migrate/export/mini-yaml.js.map +0 -1
  294. package/dist/migrate/export/nhost-config.d.ts +0 -26
  295. package/dist/migrate/export/nhost-config.js +0 -360
  296. package/dist/migrate/export/nhost-config.js.map +0 -1
  297. package/dist/migrate/export/nhost.d.ts +0 -64
  298. package/dist/migrate/export/nhost.js +0 -304
  299. package/dist/migrate/export/nhost.js.map +0 -1
  300. package/dist/migrate/export/okta-config.d.ts +0 -30
  301. package/dist/migrate/export/okta-config.js +0 -205
  302. package/dist/migrate/export/okta-config.js.map +0 -1
  303. package/dist/migrate/export/okta.d.ts +0 -43
  304. package/dist/migrate/export/okta.js +0 -337
  305. package/dist/migrate/export/okta.js.map +0 -1
  306. package/dist/migrate/export/onelogin.d.ts +0 -22
  307. package/dist/migrate/export/onelogin.js +0 -123
  308. package/dist/migrate/export/onelogin.js.map +0 -1
  309. package/dist/migrate/export/ory-config.d.ts +0 -58
  310. package/dist/migrate/export/ory-config.js +0 -451
  311. package/dist/migrate/export/ory-config.js.map +0 -1
  312. package/dist/migrate/export/ory.d.ts +0 -81
  313. package/dist/migrate/export/ory.js +0 -555
  314. package/dist/migrate/export/ory.js.map +0 -1
  315. package/dist/migrate/export/password-detect.d.ts +0 -29
  316. package/dist/migrate/export/password-detect.js +0 -81
  317. package/dist/migrate/export/password-detect.js.map +0 -1
  318. package/dist/migrate/export/pingone.d.ts +0 -36
  319. package/dist/migrate/export/pingone.js +0 -218
  320. package/dist/migrate/export/pingone.js.map +0 -1
  321. package/dist/migrate/export/plugin-kit.d.ts +0 -25
  322. package/dist/migrate/export/plugin-kit.js +0 -82
  323. package/dist/migrate/export/plugin-kit.js.map +0 -1
  324. package/dist/migrate/export/pocketbase-config.d.ts +0 -28
  325. package/dist/migrate/export/pocketbase-config.js +0 -180
  326. package/dist/migrate/export/pocketbase-config.js.map +0 -1
  327. package/dist/migrate/export/pocketbase.d.ts +0 -52
  328. package/dist/migrate/export/pocketbase.js +0 -243
  329. package/dist/migrate/export/pocketbase.js.map +0 -1
  330. package/dist/migrate/export/project-files.d.ts +0 -15
  331. package/dist/migrate/export/project-files.js +0 -43
  332. package/dist/migrate/export/project-files.js.map +0 -1
  333. package/dist/migrate/export/propelauth-config.d.ts +0 -18
  334. package/dist/migrate/export/propelauth-config.js +0 -58
  335. package/dist/migrate/export/propelauth-config.js.map +0 -1
  336. package/dist/migrate/export/propelauth-harness.test-helper.d.ts +0 -62
  337. package/dist/migrate/export/propelauth-harness.test-helper.js +0 -109
  338. package/dist/migrate/export/propelauth-harness.test-helper.js.map +0 -1
  339. package/dist/migrate/export/propelauth.d.ts +0 -48
  340. package/dist/migrate/export/propelauth.js +0 -255
  341. package/dist/migrate/export/propelauth.js.map +0 -1
  342. package/dist/migrate/export/record-set.d.ts +0 -44
  343. package/dist/migrate/export/record-set.js +0 -98
  344. package/dist/migrate/export/record-set.js.map +0 -1
  345. package/dist/migrate/export/source-lines.d.ts +0 -17
  346. package/dist/migrate/export/source-lines.js +0 -43
  347. package/dist/migrate/export/source-lines.js.map +0 -1
  348. package/dist/migrate/export/sso-metadata.d.ts +0 -47
  349. package/dist/migrate/export/sso-metadata.js +0 -180
  350. package/dist/migrate/export/sso-metadata.js.map +0 -1
  351. package/dist/migrate/export/stytch-config.d.ts +0 -22
  352. package/dist/migrate/export/stytch-config.js +0 -102
  353. package/dist/migrate/export/stytch-config.js.map +0 -1
  354. package/dist/migrate/export/stytch.d.ts +0 -68
  355. package/dist/migrate/export/stytch.js +0 -510
  356. package/dist/migrate/export/stytch.js.map +0 -1
  357. package/dist/migrate/export/supabase-config.d.ts +0 -48
  358. package/dist/migrate/export/supabase-config.js +0 -408
  359. package/dist/migrate/export/supabase-config.js.map +0 -1
  360. package/dist/migrate/export/supabase.d.ts +0 -86
  361. package/dist/migrate/export/supabase.js +0 -524
  362. package/dist/migrate/export/supabase.js.map +0 -1
  363. package/dist/migrate/export/supertokens-config.d.ts +0 -20
  364. package/dist/migrate/export/supertokens-config.js +0 -150
  365. package/dist/migrate/export/supertokens-config.js.map +0 -1
  366. package/dist/migrate/export/supertokens.d.ts +0 -125
  367. package/dist/migrate/export/supertokens.js +0 -464
  368. package/dist/migrate/export/supertokens.js.map +0 -1
  369. package/dist/migrate/export/table.d.ts +0 -35
  370. package/dist/migrate/export/table.js +0 -248
  371. package/dist/migrate/export/table.js.map +0 -1
  372. package/dist/migrate/export/translate-kit.d.ts +0 -46
  373. package/dist/migrate/export/translate-kit.js +0 -148
  374. package/dist/migrate/export/translate-kit.js.map +0 -1
  375. package/dist/migrate/export/userfront-config.d.ts +0 -15
  376. package/dist/migrate/export/userfront-config.js +0 -49
  377. package/dist/migrate/export/userfront-config.js.map +0 -1
  378. package/dist/migrate/export/userfront.d.ts +0 -38
  379. package/dist/migrate/export/userfront.js +0 -189
  380. package/dist/migrate/export/userfront.js.map +0 -1
  381. package/dist/migrate/export/vendor-http.d.ts +0 -46
  382. package/dist/migrate/export/vendor-http.js +0 -138
  383. package/dist/migrate/export/vendor-http.js.map +0 -1
  384. package/dist/migrate/export/workos-config.d.ts +0 -23
  385. package/dist/migrate/export/workos-config.js +0 -125
  386. package/dist/migrate/export/workos-config.js.map +0 -1
  387. package/dist/migrate/export/workos.d.ts +0 -46
  388. package/dist/migrate/export/workos.js +0 -272
  389. package/dist/migrate/export/workos.js.map +0 -1
  390. package/dist/migrate/export/zip.d.ts +0 -8
  391. package/dist/migrate/export/zip.js +0 -66
  392. package/dist/migrate/export/zip.js.map +0 -1
  393. package/dist/migrate/export/zitadel-config.d.ts +0 -37
  394. package/dist/migrate/export/zitadel-config.js +0 -279
  395. package/dist/migrate/export/zitadel-config.js.map +0 -1
  396. package/dist/migrate/export/zitadel.d.ts +0 -82
  397. package/dist/migrate/export/zitadel.js +0 -447
  398. package/dist/migrate/export/zitadel.js.map +0 -1
  399. package/dist/migrate/firebase/plugin.d.ts +0 -2
  400. package/dist/migrate/firebase/plugin.js +0 -152
  401. package/dist/migrate/firebase/plugin.js.map +0 -1
  402. package/dist/migrate/framework/builtins.d.ts +0 -2
  403. package/dist/migrate/framework/builtins.js +0 -52
  404. package/dist/migrate/framework/builtins.js.map +0 -1
  405. package/dist/migrate/framework/commands.d.ts +0 -20
  406. package/dist/migrate/framework/commands.js +0 -58
  407. package/dist/migrate/framework/commands.js.map +0 -1
  408. package/dist/migrate/framework/custom.d.ts +0 -12
  409. package/dist/migrate/framework/custom.js +0 -96
  410. package/dist/migrate/framework/custom.js.map +0 -1
  411. package/dist/migrate/framework/orchestrator.d.ts +0 -113
  412. package/dist/migrate/framework/orchestrator.js +0 -532
  413. package/dist/migrate/framework/orchestrator.js.map +0 -1
  414. package/dist/migrate/framework/plugin.d.ts +0 -167
  415. package/dist/migrate/framework/plugin.js +0 -3
  416. package/dist/migrate/framework/plugin.js.map +0 -1
  417. package/dist/migrate/framework/registry.d.ts +0 -11
  418. package/dist/migrate/framework/registry.js +0 -44
  419. package/dist/migrate/framework/registry.js.map +0 -1
  420. package/dist/migrate/framework/report.d.ts +0 -17
  421. package/dist/migrate/framework/report.js +0 -103
  422. package/dist/migrate/framework/report.js.map +0 -1
  423. package/dist/migrate/frameworks/plugins.d.ts +0 -29
  424. package/dist/migrate/frameworks/plugins.js +0 -402
  425. package/dist/migrate/frameworks/plugins.js.map +0 -1
  426. package/dist/migrate/frameworks/report.d.ts +0 -92
  427. package/dist/migrate/frameworks/report.js +0 -207
  428. package/dist/migrate/frameworks/report.js.map +0 -1
  429. package/dist/migrate/frameworks/translate-js.d.ts +0 -5
  430. package/dist/migrate/frameworks/translate-js.js +0 -503
  431. package/dist/migrate/frameworks/translate-js.js.map +0 -1
  432. package/dist/migrate/frameworks/translate-rails-django.d.ts +0 -3
  433. package/dist/migrate/frameworks/translate-rails-django.js +0 -1391
  434. package/dist/migrate/frameworks/translate-rails-django.js.map +0 -1
  435. package/dist/migrate/frontegg/plugin.d.ts +0 -2
  436. package/dist/migrate/frontegg/plugin.js +0 -78
  437. package/dist/migrate/frontegg/plugin.js.map +0 -1
  438. package/dist/migrate/fusionauth/plugin.d.ts +0 -2
  439. package/dist/migrate/fusionauth/plugin.js +0 -109
  440. package/dist/migrate/fusionauth/plugin.js.map +0 -1
  441. package/dist/migrate/hanko/plugin.d.ts +0 -2
  442. package/dist/migrate/hanko/plugin.js +0 -100
  443. package/dist/migrate/hanko/plugin.js.map +0 -1
  444. package/dist/migrate/keycloak/plugin.d.ts +0 -2
  445. package/dist/migrate/keycloak/plugin.js +0 -148
  446. package/dist/migrate/keycloak/plugin.js.map +0 -1
  447. package/dist/migrate/kinde/plugin.d.ts +0 -2
  448. package/dist/migrate/kinde/plugin.js +0 -105
  449. package/dist/migrate/kinde/plugin.js.map +0 -1
  450. package/dist/migrate/ldap/plugin.d.ts +0 -2
  451. package/dist/migrate/ldap/plugin.js +0 -73
  452. package/dist/migrate/ldap/plugin.js.map +0 -1
  453. package/dist/migrate/logto/plugin.d.ts +0 -2
  454. package/dist/migrate/logto/plugin.js +0 -131
  455. package/dist/migrate/logto/plugin.js.map +0 -1
  456. package/dist/migrate/magic/plugin.d.ts +0 -2
  457. package/dist/migrate/magic/plugin.js +0 -56
  458. package/dist/migrate/magic/plugin.js.map +0 -1
  459. package/dist/migrate/nhost/plugin.d.ts +0 -2
  460. package/dist/migrate/nhost/plugin.js +0 -115
  461. package/dist/migrate/nhost/plugin.js.map +0 -1
  462. package/dist/migrate/oidc/plugin.d.ts +0 -2
  463. package/dist/migrate/oidc/plugin.js +0 -73
  464. package/dist/migrate/oidc/plugin.js.map +0 -1
  465. package/dist/migrate/okta/plugin.d.ts +0 -2
  466. package/dist/migrate/okta/plugin.js +0 -105
  467. package/dist/migrate/okta/plugin.js.map +0 -1
  468. package/dist/migrate/onelogin/plugin.d.ts +0 -2
  469. package/dist/migrate/onelogin/plugin.js +0 -61
  470. package/dist/migrate/onelogin/plugin.js.map +0 -1
  471. package/dist/migrate/ory/plugin.d.ts +0 -2
  472. package/dist/migrate/ory/plugin.js +0 -186
  473. package/dist/migrate/ory/plugin.js.map +0 -1
  474. package/dist/migrate/ping-identity/plugin.d.ts +0 -2
  475. package/dist/migrate/ping-identity/plugin.js +0 -100
  476. package/dist/migrate/ping-identity/plugin.js.map +0 -1
  477. package/dist/migrate/pocketbase/plugin.d.ts +0 -2
  478. package/dist/migrate/pocketbase/plugin.js +0 -99
  479. package/dist/migrate/pocketbase/plugin.js.map +0 -1
  480. package/dist/migrate/propelauth/plugin.d.ts +0 -2
  481. package/dist/migrate/propelauth/plugin.js +0 -65
  482. package/dist/migrate/propelauth/plugin.js.map +0 -1
  483. package/dist/migrate/saml/plugin.d.ts +0 -2
  484. package/dist/migrate/saml/plugin.js +0 -79
  485. package/dist/migrate/saml/plugin.js.map +0 -1
  486. package/dist/migrate/stytch/plugin.d.ts +0 -2
  487. package/dist/migrate/stytch/plugin.js +0 -97
  488. package/dist/migrate/stytch/plugin.js.map +0 -1
  489. package/dist/migrate/supabase/plugin.d.ts +0 -2
  490. package/dist/migrate/supabase/plugin.js +0 -149
  491. package/dist/migrate/supabase/plugin.js.map +0 -1
  492. package/dist/migrate/supertokens/plugin.d.ts +0 -2
  493. package/dist/migrate/supertokens/plugin.js +0 -114
  494. package/dist/migrate/supertokens/plugin.js.map +0 -1
  495. package/dist/migrate/user-table/plugin.d.ts +0 -2
  496. package/dist/migrate/user-table/plugin.js +0 -62
  497. package/dist/migrate/user-table/plugin.js.map +0 -1
  498. package/dist/migrate/userfront/plugin.d.ts +0 -2
  499. package/dist/migrate/userfront/plugin.js +0 -60
  500. package/dist/migrate/userfront/plugin.js.map +0 -1
  501. package/dist/migrate/workos/plugin.d.ts +0 -2
  502. package/dist/migrate/workos/plugin.js +0 -81
  503. package/dist/migrate/workos/plugin.js.map +0 -1
  504. package/dist/migrate/zitadel/plugin.d.ts +0 -2
  505. package/dist/migrate/zitadel/plugin.js +0 -114
  506. package/dist/migrate/zitadel/plugin.js.map +0 -1
  507. package/dist/output.d.ts +0 -41
  508. package/dist/output.js +0 -72
  509. package/dist/output.js.map +0 -1
  510. package/dist/project.d.ts +0 -64
  511. package/dist/project.js +0 -86
  512. package/dist/project.js.map +0 -1
  513. package/dist/prompt.d.ts +0 -15
  514. package/dist/prompt.js +0 -46
  515. package/dist/prompt.js.map +0 -1
  516. package/dist/run.d.ts +0 -12
  517. package/dist/run.js +0 -157
  518. package/dist/run.js.map +0 -1
  519. package/dist/secrets.d.ts +0 -41
  520. package/dist/secrets.js +0 -142
  521. package/dist/secrets.js.map +0 -1
  522. package/dist/serialize.d.ts +0 -30
  523. package/dist/serialize.js +0 -131
  524. package/dist/serialize.js.map +0 -1
  525. package/dist/version.d.ts +0 -7
  526. package/dist/version.js +0 -21
  527. package/dist/version.js.map +0 -1
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zitadelPlugin = void 0;
4
- const node_path_1 = require("node:path");
5
- const errors_1 = require("../../errors");
6
- const zitadel_1 = require("../export/zitadel");
7
- const zitadel_config_1 = require("../export/zitadel-config");
8
- const plugin_kit_1 = require("../export/plugin-kit");
9
- /**
10
- * `atlas migrate zitadel` — ZITADEL Cloud and self-hosted ZITADEL: policies,
11
- * applications, project roles and identity providers as Atlas config; users
12
- * with their password hashes, TOTP secrets, verified email and phone, social
13
- * and enterprise links, project roles (as app roles) and organizations with
14
- * their members, from ZITADEL's own export (a file, or the admin API with a
15
- * service-user token); a zero-logout bridge for ZITADEL ID tokens and JWT
16
- * access tokens; lazy migration through the session API; and the code. The
17
- * token stays on this machine.
18
- */
19
- const URL_SPEC = { flag: '--zitadel-url', env: 'ZITADEL_URL', label: 'your ZITADEL URL (https://<instance>.zitadel.cloud, or your own domain)', required: false };
20
- const TOKEN = { flag: '--zitadel-token', env: 'ZITADEL_TOKEN', label: 'a service user\'s personal access token (IAM_OWNER to export, IAM_LOGIN_CLIENT for lazy migration)', required: false, secret: true };
21
- const EXPORT_FILE = { flag: '--zitadel-export', env: 'ZITADEL_EXPORT_FILE', label: 'the JSON file `zitadel export` wrote (or a saved POST /admin/v1/export response)', required: false };
22
- const ORGS = { flag: '--zitadel-orgs', env: 'ZITADEL_ORGS', label: 'how organizations move: auto (when there is more than one), all or skip', required: false };
23
- function instanceUrl(p) {
24
- const raw = p.credential(URL_SPEC);
25
- return raw ? (0, zitadel_1.zitadelBase)(raw) : undefined;
26
- }
27
- function orgsMode(p) {
28
- const raw = (p.credential(ORGS) ?? 'auto').trim().toLowerCase();
29
- if (raw !== 'auto' && raw !== 'all' && raw !== 'skip')
30
- throw new errors_1.CliError(`ZITADEL: --set zitadel-orgs takes auto, all or skip (got ${raw}).`);
31
- return raw;
32
- }
33
- function readDocument(p, path) {
34
- try {
35
- return JSON.parse(p.ctx.readFile((0, node_path_1.resolve)(path)));
36
- }
37
- catch (err) {
38
- throw new errors_1.CliError(`ZITADEL: could not read the export ${path}: ${err.message}`);
39
- }
40
- }
41
- exports.zitadelPlugin = {
42
- vendor: 'zitadel',
43
- source: 'zitadel',
44
- label: 'ZITADEL',
45
- help: 'Move ZITADEL (Cloud or self-hosted): login, password and lockout policy, applications, project roles and identity providers as Atlas config; users with password hashes, TOTP secrets, verified email and phone, social and enterprise links, roles and organizations from ZITADEL\'s own export; a zero-logout bridge for ZITADEL ID tokens and JWT access tokens; lazy migration through the session API; and the code. Your service-user token stays on this machine.',
46
- config: {
47
- reads: 'a `zitadel export` file, or your instance through the admin API (policies, applications, roles, identity providers, actions)',
48
- credentials: [EXPORT_FILE, URL_SPEC, TOKEN],
49
- async translate(p) {
50
- const file = p.credential(EXPORT_FILE);
51
- const url = instanceUrl(p);
52
- if (file)
53
- return (0, zitadel_config_1.translateZitadelConfig)((0, zitadel_config_1.configSnapshotFromExport)(readDocument(p, file), file, url));
54
- const token = p.credential(TOKEN);
55
- if (!url || !token) {
56
- throw new errors_1.CliError('ZITADEL: pass the export file (--set zitadel-export=<file>), or your instance URL and a service-user token (--set zitadel-url=… --set zitadel-token=…).');
57
- }
58
- return (0, zitadel_config_1.translateZitadelConfig)(await (0, plugin_kit_1.vendorStep)('ZITADEL', () => (0, zitadel_config_1.fetchZitadelConfig)({ instance: url, token, fetchImpl: p.fetch })));
59
- },
60
- },
61
- export: {
62
- reads: 'ZITADEL\'s export (a `zitadel export` file, or POST /admin/v1/export with a service-user token)',
63
- credentials: [EXPORT_FILE, URL_SPEC, TOKEN, ORGS],
64
- limits: [
65
- 'Passkeys and security keys live only in ZITADEL\'s event store and are not exported: users register a passkey again.',
66
- 'Password hashes and TOTP secrets need the export with passwords and secrets on (`zitadel export`, or an IAM_OWNER token on the admin API). With a narrower role the export lists users through the user API instead, and passwords move by lazy migration.',
67
- 'Machine users (service accounts) are not exported: recreate them as Atlas API keys or M2M clients.',
68
- 'Organizations become Atlas organizations when the instance has more than one (--set zitadel-orgs=all to always, skip to never); organization roles other than ORG_OWNER join as plain members.',
69
- 'Sessions are opaque to Atlas: the bridge accepts ZITADEL ID tokens and JWT access tokens instead.',
70
- ],
71
- async run(p, writer, resume) {
72
- const file = p.credential(EXPORT_FILE);
73
- const orgs = orgsMode(p);
74
- let set;
75
- if (file) {
76
- const url = instanceUrl(p);
77
- set = await (0, plugin_kit_1.vendorStep)('ZITADEL', async () => (0, zitadel_1.mapZitadel)({ ...(0, zitadel_1.readZitadelExport)(readDocument(p, file)), instance: url }, { orgs }));
78
- }
79
- else {
80
- const url = instanceUrl(p);
81
- if (!url)
82
- throw new errors_1.CliError('ZITADEL: pass the export file (--set zitadel-export=<file>), or your instance URL and a service-user token (--set zitadel-url=… --set zitadel-token=…).');
83
- const token = (0, plugin_kit_1.need)(p, TOKEN);
84
- set = await (0, plugin_kit_1.vendorStep)('ZITADEL', () => (0, zitadel_1.exportZitadelApi)({ instance: url, token, orgs, fetchImpl: p.fetch, onProgress: (m) => p.say(` reading ${m}`) }));
85
- }
86
- await (0, plugin_kit_1.writeRecordSet)(set, writer, resume, p.say);
87
- },
88
- },
89
- bridge: {
90
- preset: 'zitadel',
91
- vars(p, t) {
92
- const vars = { ...t?.bridge?.vars };
93
- const url = instanceUrl(p);
94
- if (url)
95
- vars.issuer = url;
96
- if (!vars.issuer)
97
- throw new errors_1.CliError('ZITADEL: the bridge needs the issuer: pass your instance URL (--set zitadel-url=https://<instance>.zitadel.cloud).');
98
- return vars;
99
- },
100
- },
101
- lazy: {
102
- preset: 'zitadel',
103
- config(p, t) {
104
- const config = { ...t?.lazy?.config };
105
- const url = instanceUrl(p);
106
- if (url)
107
- config.base_url = url;
108
- return config;
109
- },
110
- secret: TOKEN,
111
- },
112
- codemod: 'zitadel',
113
- };
114
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/migrate/zitadel/plugin.ts"],"names":[],"mappings":"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"}
package/dist/output.d.ts DELETED
@@ -1,41 +0,0 @@
1
- import type { IO } from './io';
2
- /**
3
- * A single rendered column: a header plus a getter that pulls the raw value off
4
- * a row. Getters (not keys) because a few columns are derived — a user's name
5
- * joins first + last, a webhook's events join an array — and a getter keeps that
6
- * shaping next to the column instead of forcing a pre-massaged row.
7
- */
8
- export interface Column<T> {
9
- header: string;
10
- get: (row: T) => unknown;
11
- }
12
- /**
13
- * Epoch-millisecond timestamp → ISO-8601, the form every Atlas `*_at` field
14
- * takes on the wire. Blank for null (e.g. a user who never signed in) so the
15
- * column stays readable rather than printing `1970-...`.
16
- */
17
- export declare function fmtTime(value: unknown): string;
18
- /**
19
- * Hand-rolled fixed-width table — the only "formatting library" this CLI has.
20
- * Columns are padded to the widest cell (header included); a dashed rule sits
21
- * under the header; trailing padding on the last column is trimmed so lines
22
- * don't carry invisible whitespace. Empty input prints a friendly placeholder
23
- * rather than a bare header with no rows.
24
- */
25
- export declare function renderTable<T>(columns: Column<T>[], rows: T[]): string;
26
- /** Pretty-print any value as the `--json` output on stdout. */
27
- export declare function printJson(io: IO, value: unknown): void;
28
- /**
29
- * Print a cursor-paginated list as either raw JSON or a table, and — in table
30
- * mode, when there is another page — a footer naming the exact flag to fetch
31
- * it. Keeping the hint next to the data is what makes `--starting-after`
32
- * discoverable without the user reading `--help`.
33
- */
34
- export declare function printList<T>(io: IO, opts: {
35
- json: boolean;
36
- columns: Column<T>[];
37
- }, page: {
38
- data: T[];
39
- has_more?: boolean;
40
- next_cursor?: string | null;
41
- }, raw?: unknown): void;
package/dist/output.js DELETED
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fmtTime = fmtTime;
4
- exports.renderTable = renderTable;
5
- exports.printJson = printJson;
6
- exports.printList = printList;
7
- /** Render a value as a table cell: null/undefined blank, arrays joined, objects JSON. */
8
- function cell(value) {
9
- if (value === null || value === undefined)
10
- return '';
11
- if (Array.isArray(value))
12
- return value.map((v) => cell(v)).join(', ');
13
- if (typeof value === 'object')
14
- return JSON.stringify(value);
15
- return String(value);
16
- }
17
- /**
18
- * Epoch-millisecond timestamp → ISO-8601, the form every Atlas `*_at` field
19
- * takes on the wire. Blank for null (e.g. a user who never signed in) so the
20
- * column stays readable rather than printing `1970-...`.
21
- */
22
- function fmtTime(value) {
23
- if (value === null || value === undefined)
24
- return '';
25
- const n = Number(value);
26
- if (!Number.isFinite(n))
27
- return '';
28
- return new Date(n).toISOString();
29
- }
30
- /**
31
- * Hand-rolled fixed-width table — the only "formatting library" this CLI has.
32
- * Columns are padded to the widest cell (header included); a dashed rule sits
33
- * under the header; trailing padding on the last column is trimmed so lines
34
- * don't carry invisible whitespace. Empty input prints a friendly placeholder
35
- * rather than a bare header with no rows.
36
- */
37
- function renderTable(columns, rows) {
38
- if (rows.length === 0)
39
- return '(no results)';
40
- const matrix = rows.map((row) => columns.map((col) => cell(col.get(row))));
41
- const widths = columns.map((col, i) => Math.max(col.header.length, ...matrix.map((r) => r[i].length)));
42
- const pad = (text, width) => text.padEnd(width);
43
- const line = (fields) => fields.map((f, i) => pad(f, widths[i])).join(' ').replace(/\s+$/, '');
44
- const lines = [
45
- line(columns.map((c) => c.header)),
46
- line(widths.map((w) => '-'.repeat(w))),
47
- ...matrix.map((r) => line(r)),
48
- ];
49
- return lines.join('\n');
50
- }
51
- /** Pretty-print any value as the `--json` output on stdout. */
52
- function printJson(io, value) {
53
- io.out(JSON.stringify(value, null, 2));
54
- }
55
- /**
56
- * Print a cursor-paginated list as either raw JSON or a table, and — in table
57
- * mode, when there is another page — a footer naming the exact flag to fetch
58
- * it. Keeping the hint next to the data is what makes `--starting-after`
59
- * discoverable without the user reading `--help`.
60
- */
61
- function printList(io, opts, page, raw = page) {
62
- if (opts.json) {
63
- printJson(io, raw);
64
- return;
65
- }
66
- io.out(renderTable(opts.columns, page.data));
67
- if (page.has_more && page.next_cursor) {
68
- io.out('');
69
- io.out(`More results — fetch the next page with: --starting-after ${page.next_cursor}`);
70
- }
71
- }
72
- //# sourceMappingURL=output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
package/dist/project.d.ts DELETED
@@ -1,64 +0,0 @@
1
- import { type ConfigHttp } from './config-http';
2
- import type { RunContext } from './context';
3
- /**
4
- * The project manifest `atlas init` keeps at `~/.config/<product>/atlas.json`:
5
- * PUBLIC values only (ids, publishable key, hosts, redirect URIs) plus the path
6
- * of each secret file. `atlas env`, `atlas preflight --instance` and
7
- * `atlas client rotate` read it, so they know where a secret lives without
8
- * ever holding it in the manifest.
9
- */
10
- export type InstanceEnv = 'development' | 'production';
11
- export interface ProjectInstance {
12
- instance_id: string;
13
- environment: InstanceEnv;
14
- publishable_key: string;
15
- frontend_api_host: string | null;
16
- issuer: string | null;
17
- discovery_url: string | null;
18
- jwks_uri: string | null;
19
- /** The file holding ATLAS_SECRET_KEY. */
20
- secret_file: string;
21
- oauth_client?: {
22
- id: string;
23
- client_id: string;
24
- redirect_uris: string[];
25
- secret_file: string | null;
26
- };
27
- webhook?: {
28
- id: string;
29
- url: string;
30
- secret_file: string | null;
31
- };
32
- custom_domain?: {
33
- host: string;
34
- cname_target: string | null;
35
- status: string;
36
- };
37
- email?: {
38
- mode: 'managed' | 'development' | 'none';
39
- from_address?: string | null;
40
- };
41
- }
42
- export interface ProjectManifest {
43
- product: string;
44
- api_url: string;
45
- instances: Partial<Record<InstanceEnv, ProjectInstance>>;
46
- }
47
- export declare const MANIFEST_FILE = "atlas.json";
48
- export declare function manifestPath(env: NodeJS.ProcessEnv, product: string): string;
49
- export declare function readManifest(env: NodeJS.ProcessEnv, product: string): ProjectManifest | undefined;
50
- export declare function writeManifest(env: NodeJS.ProcessEnv, manifest: ProjectManifest): string;
51
- /** Find the project + instance an instance id belongs to, scanning every product directory. */
52
- export declare function findInstance(env: NodeJS.ProcessEnv, instanceId: string, product?: string): {
53
- manifest: ProjectManifest;
54
- instance: ProjectInstance;
55
- } | undefined;
56
- export declare function parseInstanceEnv(raw: string | undefined, fallback: InstanceEnv): InstanceEnv;
57
- /** The raw HTTP client for a credential (the context's, or the real one). */
58
- export declare function httpFor(ctx: RunContext, opts: {
59
- secretKey: string;
60
- apiUrl: string;
61
- headers?: Record<string, string>;
62
- }): ConfigHttp;
63
- /** Read the instance secret key from the project's secret file. */
64
- export declare function instanceSecretFromFile(instance: ProjectInstance): string;
package/dist/project.js DELETED
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MANIFEST_FILE = void 0;
4
- exports.manifestPath = manifestPath;
5
- exports.readManifest = readManifest;
6
- exports.writeManifest = writeManifest;
7
- exports.findInstance = findInstance;
8
- exports.parseInstanceEnv = parseInstanceEnv;
9
- exports.httpFor = httpFor;
10
- exports.instanceSecretFromFile = instanceSecretFromFile;
11
- const node_fs_1 = require("node:fs");
12
- const node_os_1 = require("node:os");
13
- const node_path_1 = require("node:path");
14
- const config_http_1 = require("./config-http");
15
- const errors_1 = require("./errors");
16
- const secrets_1 = require("./secrets");
17
- exports.MANIFEST_FILE = 'atlas.json';
18
- function manifestPath(env, product) {
19
- return (0, node_path_1.join)((0, secrets_1.productDir)(env, product), exports.MANIFEST_FILE);
20
- }
21
- function readManifest(env, product) {
22
- try {
23
- return JSON.parse((0, node_fs_1.readFileSync)(manifestPath(env, product), 'utf8'));
24
- }
25
- catch {
26
- return undefined;
27
- }
28
- }
29
- function writeManifest(env, manifest) {
30
- const dir = (0, secrets_1.productDir)(env, manifest.product);
31
- (0, node_fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
32
- const path = (0, node_path_1.join)(dir, exports.MANIFEST_FILE);
33
- (0, node_fs_1.writeFileSync)(path, JSON.stringify(manifest, null, 2) + '\n', { mode: 0o600 });
34
- (0, node_fs_1.chmodSync)(path, 0o600);
35
- return path;
36
- }
37
- /** Find the project + instance an instance id belongs to, scanning every product directory. */
38
- function findInstance(env, instanceId, product) {
39
- const products = product ? [product] : listProducts(env);
40
- for (const p of products) {
41
- const m = readManifest(env, p);
42
- for (const inst of Object.values(m?.instances ?? {})) {
43
- if (inst && inst.instance_id === instanceId)
44
- return { manifest: m, instance: inst };
45
- }
46
- }
47
- return undefined;
48
- }
49
- function listProducts(env) {
50
- const base = env.XDG_CONFIG_HOME?.trim() || (0, node_path_1.join)(env.HOME?.trim() || (0, node_os_1.homedir)(), '.config');
51
- try {
52
- return (0, node_fs_1.readdirSync)(base).filter((d) => {
53
- try {
54
- (0, node_fs_1.readFileSync)((0, node_path_1.join)(base, d, exports.MANIFEST_FILE));
55
- return true;
56
- }
57
- catch {
58
- return false;
59
- }
60
- });
61
- }
62
- catch {
63
- return [];
64
- }
65
- }
66
- function parseInstanceEnv(raw, fallback) {
67
- if (raw === undefined)
68
- return fallback;
69
- if (raw !== 'development' && raw !== 'production') {
70
- throw new errors_1.CliError(`--instance-env must be development or production, got '${raw}'.`);
71
- }
72
- return raw;
73
- }
74
- /** The raw HTTP client for a credential (the context's, or the real one). */
75
- function httpFor(ctx, opts) {
76
- return (ctx.makeHttp ?? config_http_1.createConfigHttp)(opts);
77
- }
78
- /** Read the instance secret key from the project's secret file. */
79
- function instanceSecretFromFile(instance) {
80
- const key = (0, secrets_1.readEnvFile)(instance.secret_file)?.ATLAS_SECRET_KEY;
81
- if (!key) {
82
- throw new errors_1.CliError(`No ATLAS_SECRET_KEY in ${instance.secret_file}. Re-run 'atlas init' with --rotate-secret to mint a new one.`);
83
- }
84
- return key;
85
- }
86
- //# sourceMappingURL=project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
package/dist/prompt.d.ts DELETED
@@ -1,15 +0,0 @@
1
- /**
2
- * The interactive input seam for `atlas login`. An interface (not a direct
3
- * `readline` call) so tests script answers without a TTY, and so `secret()`
4
- * can hide the key no matter where it's wired.
5
- */
6
- export interface Prompter {
7
- /** A visible line of input, with an optional default shown in brackets. */
8
- text(query: string, opts?: {
9
- default?: string;
10
- }): Promise<string>;
11
- /** A hidden line of input — the terminal never echoes what's typed. */
12
- secret(query: string): Promise<string>;
13
- }
14
- /** The real prompter, reading the TTY. Not exercised by unit tests (they inject). */
15
- export declare function defaultPrompter(input?: NodeJS.ReadableStream, output?: NodeJS.WritableStream): Prompter;
package/dist/prompt.js DELETED
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultPrompter = defaultPrompter;
4
- const node_readline_1 = require("node:readline");
5
- function ask(input, output, query) {
6
- const rl = (0, node_readline_1.createInterface)({ input, output });
7
- return new Promise((resolve) => {
8
- rl.question(query, (answer) => {
9
- rl.close();
10
- resolve(answer);
11
- });
12
- });
13
- }
14
- /** The real prompter, reading the TTY. Not exercised by unit tests (they inject). */
15
- function defaultPrompter(input = process.stdin, output = process.stdout) {
16
- return {
17
- async text(query, opts) {
18
- const suffix = opts?.default ? ` [${opts.default}]` : '';
19
- const answer = (await ask(input, output, `${query}${suffix}: `)).trim();
20
- return answer || opts?.default || '';
21
- },
22
- secret(query) {
23
- // Echo the prompt, then mute readline's output so the secret never lands
24
- // on screen or in scrollback. `_writeToOutput` is readline's own hook;
25
- // overriding it is the standard way to hide typed input.
26
- return new Promise((resolve) => {
27
- const rl = (0, node_readline_1.createInterface)({ input, output, terminal: true });
28
- let muted = false;
29
- const rlInternal = rl;
30
- rlInternal._writeToOutput = (s) => {
31
- if (!muted)
32
- output.write(s);
33
- };
34
- output.write(`${query}: `);
35
- muted = true;
36
- rl.question('', (answer) => {
37
- muted = false;
38
- output.write('\n');
39
- rl.close();
40
- resolve(answer.trim());
41
- });
42
- });
43
- },
44
- };
45
- }
46
- //# sourceMappingURL=prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":";;AAyBA,0CAiCC;AA1DD,iDAAgD;AAchD,SAAS,GAAG,CAAC,KAA4B,EAAE,MAA6B,EAAE,KAAa;IACrF,MAAM,EAAE,GAAG,IAAA,+BAAe,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qFAAqF;AACrF,SAAgB,eAAe,CAC7B,QAA+B,OAAO,CAAC,KAAK,EAC5C,SAAgC,OAAO,CAAC,MAAM;IAE9C,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI;YACpB,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxE,OAAO,MAAM,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,KAAK;YACV,yEAAyE;YACzE,uEAAuE;YACvE,yDAAyD;YACzD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,IAAA,+BAAe,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,MAAM,UAAU,GAAG,EAAyD,CAAC;gBAC7E,UAAU,CAAC,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE;oBACxC,IAAI,CAAC,KAAK;wBAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC3B,KAAK,GAAG,IAAI,CAAC;gBACb,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;oBACzB,KAAK,GAAG,KAAK,CAAC;oBACd,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACnB,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/run.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import { type ParsedArgs } from './args';
2
- import type { RunContext } from './context';
3
- /** A command handler: given the context and parsed args, do the work; return an exit code. */
4
- export type Handler = (ctx: RunContext, args: ParsedArgs) => Promise<number>;
5
- /**
6
- * The CLI's whole control flow, as a pure function of (argv, context) → exit
7
- * code. It NEVER calls `process.exit` and NEVER throws: the bin calls it and
8
- * exits with what it returns, and every test drives this same path with a
9
- * captured IO. All error reporting funnels through the one try/catch so a user
10
- * sees a clean message and a non-zero code — never a stack trace.
11
- */
12
- export declare function run(argv: string[], ctx: RunContext): Promise<number>;
package/dist/run.js DELETED
@@ -1,157 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.run = run;
4
- const backend_1 = require("@atlasauth/backend");
5
- const args_1 = require("./args");
6
- const actions_1 = require("./commands/actions");
7
- const pages_1 = require("./commands/pages");
8
- const api_keys_1 = require("./commands/api-keys");
9
- const auth_1 = require("./commands/auth");
10
- const operator_1 = require("./commands/operator");
11
- const config_1 = require("./commands/config");
12
- const init_1 = require("./commands/init");
13
- const golive_1 = require("./commands/golive");
14
- const import_1 = require("./commands/import");
15
- const info_1 = require("./commands/info");
16
- const csp_1 = require("./commands/csp");
17
- const fga_1 = require("./commands/fga");
18
- const dev_1 = require("./commands/dev");
19
- const listen_1 = require("./commands/listen");
20
- const migrate_1 = require("./commands/migrate");
21
- const move_origin_1 = require("./commands/move-origin");
22
- const mcp_1 = require("./commands/mcp");
23
- const project_commands_1 = require("./commands/project-commands");
24
- const orgs_1 = require("./commands/orgs");
25
- const referrals_1 = require("./commands/referrals");
26
- const sessions_1 = require("./commands/sessions");
27
- const status_1 = require("./commands/status");
28
- const users_1 = require("./commands/users");
29
- const webhooks_1 = require("./commands/webhooks");
30
- const integrations_1 = require("./commands/integrations");
31
- const id_accounts_1 = require("./commands/id-accounts");
32
- const admin_1 = require("./commands/admin");
33
- const partner_platforms_1 = require("./commands/partner-platforms");
34
- const resources_1 = require("./commands/resources");
35
- const errors_1 = require("./errors");
36
- const help_1 = require("./help");
37
- const version_1 = require("./version");
38
- /** The command table — the single place every top-level command is registered. */
39
- const COMMANDS = {
40
- login: auth_1.login,
41
- logout: auth_1.logout,
42
- whoami: auth_1.whoami,
43
- token: operator_1.token,
44
- keys: operator_1.keys,
45
- users: users_1.users,
46
- orgs: orgs_1.orgs,
47
- 'api-keys': api_keys_1.apiKeys,
48
- webhooks: webhooks_1.webhooks,
49
- integrations: integrations_1.integrations,
50
- 'partner-platforms': partner_platforms_1.partnerPlatforms,
51
- 'id-accounts': id_accounts_1.idAccounts,
52
- admin: admin_1.admin,
53
- sessions: sessions_1.sessions,
54
- config: config_1.config,
55
- plan: config_1.planCommand,
56
- apply: config_1.applyCommand,
57
- actions: actions_1.actions,
58
- pages: pages_1.pages,
59
- init: init_1.init,
60
- preflight: project_commands_1.preflight,
61
- doctor: project_commands_1.doctor,
62
- golive: golive_1.golive,
63
- env: project_commands_1.envCommand,
64
- client: project_commands_1.client,
65
- referrals: referrals_1.referrals,
66
- status: status_1.status,
67
- import: import_1.importUsers,
68
- migrate: migrate_1.migrate,
69
- info: info_1.info,
70
- mcp: mcp_1.mcp,
71
- listen: listen_1.listen,
72
- dev: dev_1.dev,
73
- 'move-origin': move_origin_1.moveOrigin,
74
- csp: csp_1.csp,
75
- fga: fga_1.fga,
76
- workflows: (0, resources_1.resourceCommand)('workflows', resources_1.WORKFLOWS),
77
- chat: (0, resources_1.resourceCommand)('chat', resources_1.CHAT),
78
- cloud: (0, resources_1.resourceCommand)('cloud', resources_1.CLOUD),
79
- 'saml-idp': (0, resources_1.resourceCommand)('saml-idp', resources_1.SAML_IDP),
80
- provisioning: (0, resources_1.resourceCommand)('provisioning', resources_1.PROVISIONING),
81
- catalog: (0, resources_1.resourceCommand)('catalog', resources_1.CATALOG),
82
- 'device-sso': (0, resources_1.resourceCommand)('device-sso', resources_1.DEVICE_SSO),
83
- 'connection-actions': (0, resources_1.resourceCommand)('connection-actions', resources_1.CONNECTION_ACTIONS),
84
- triggers: (0, resources_1.resourceCommand)('triggers', resources_1.TRIGGERS),
85
- agents: (0, resources_1.resourceCommand)('agents', resources_1.AGENTS),
86
- telemetry: (0, resources_1.resourceCommand)('telemetry', resources_1.TELEMETRY),
87
- pdp: (0, resources_1.resourceCommand)('pdp', resources_1.PDP),
88
- billing: (0, resources_1.resourceCommand)('billing', resources_1.BILLING),
89
- audit: (0, resources_1.resourceCommand)('audit', resources_1.AUDIT),
90
- federation: (0, resources_1.resourceCommand)('federation', resources_1.FEDERATION),
91
- vc: (0, resources_1.resourceCommand)('vc', resources_1.VC),
92
- };
93
- /**
94
- * The CLI's whole control flow, as a pure function of (argv, context) → exit
95
- * code. It NEVER calls `process.exit` and NEVER throws: the bin calls it and
96
- * exits with what it returns, and every test drives this same path with a
97
- * captured IO. All error reporting funnels through the one try/catch so a user
98
- * sees a clean message and a non-zero code — never a stack trace.
99
- */
100
- async function run(argv, ctx) {
101
- let args;
102
- try {
103
- args = (0, args_1.parse)(argv);
104
- }
105
- catch (err) {
106
- return report(ctx, err);
107
- }
108
- // --version wins over everything, like most CLIs.
109
- if (args.values.version) {
110
- ctx.io.out((0, version_1.getVersion)());
111
- return 0;
112
- }
113
- const command = args.positionals[0];
114
- // Bare `atlas` or `atlas --help`: top-level help on stdout, success.
115
- if (!command) {
116
- ctx.io.out(help_1.TOP_HELP);
117
- return 0;
118
- }
119
- const handler = COMMANDS[command];
120
- if (!handler) {
121
- ctx.io.err(`Unknown command '${command}'.`);
122
- ctx.io.err("Run 'atlas --help' to see available commands.");
123
- return 1;
124
- }
125
- // `atlas <command> --help`: command-specific help on stdout, success.
126
- if (args.values.help) {
127
- ctx.io.out(help_1.COMMAND_HELP[command] ?? help_1.TOP_HELP);
128
- return 0;
129
- }
130
- try {
131
- return await handler(ctx, args);
132
- }
133
- catch (err) {
134
- return report(ctx, err);
135
- }
136
- }
137
- /**
138
- * Turn any thrown error into a clean stderr message + exit code. An
139
- * {@link AtlasApiError} keeps its HTTP status and stable `code` so the user can
140
- * act on it; a {@link CliError} carries its own code; anything else is an
141
- * unexpected bug reported as its message (still no stack).
142
- */
143
- function report(ctx, err) {
144
- if (err instanceof backend_1.AtlasApiError) {
145
- const code = err.code ? ` [${err.code}]` : '';
146
- ctx.io.err(`atlas: API error (HTTP ${err.status})${code}: ${err.message}`);
147
- return 1;
148
- }
149
- if (err instanceof errors_1.CliError) {
150
- ctx.io.err(`atlas: ${err.message}`);
151
- return err.exitCode;
152
- }
153
- const message = err instanceof Error ? err.message : String(err);
154
- ctx.io.err(`atlas: ${message}`);
155
- return 1;
156
- }
157
- //# sourceMappingURL=run.js.map
package/dist/run.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}