@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.
- package/CHANGELOG.md +6 -0
- package/package.json +4 -4
- package/dist/args.d.ts +0 -601
- package/dist/args.js +0 -289
- package/dist/args.js.map +0 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +0 -19
- package/dist/cli.js.map +0 -1
- package/dist/commands/actions-gallery.d.ts +0 -8
- package/dist/commands/actions-gallery.js +0 -197
- package/dist/commands/actions-gallery.js.map +0 -1
- package/dist/commands/actions.d.ts +0 -13
- package/dist/commands/actions.js +0 -135
- package/dist/commands/actions.js.map +0 -1
- package/dist/commands/admin.d.ts +0 -49
- package/dist/commands/admin.js +0 -353
- package/dist/commands/admin.js.map +0 -1
- package/dist/commands/api-keys.d.ts +0 -4
- package/dist/commands/api-keys.js +0 -96
- package/dist/commands/api-keys.js.map +0 -1
- package/dist/commands/auth.d.ts +0 -25
- package/dist/commands/auth.js +0 -102
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/config.d.ts +0 -104
- package/dist/commands/config.js +0 -1506
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/csp.d.ts +0 -32
- package/dist/commands/csp.js +0 -180
- package/dist/commands/csp.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -8
- package/dist/commands/dev.js +0 -84
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/fga.d.ts +0 -10
- package/dist/commands/fga.js +0 -146
- package/dist/commands/fga.js.map +0 -1
- package/dist/commands/golive.d.ts +0 -40
- package/dist/commands/golive.js +0 -285
- package/dist/commands/golive.js.map +0 -1
- package/dist/commands/id-accounts.d.ts +0 -13
- package/dist/commands/id-accounts.js +0 -195
- package/dist/commands/id-accounts.js.map +0 -1
- package/dist/commands/import-better-auth.d.ts +0 -3
- package/dist/commands/import-better-auth.js +0 -164
- package/dist/commands/import-better-auth.js.map +0 -1
- package/dist/commands/import.d.ts +0 -3
- package/dist/commands/import.js +0 -123
- package/dist/commands/import.js.map +0 -1
- package/dist/commands/info.d.ts +0 -75
- package/dist/commands/info.js +0 -362
- package/dist/commands/info.js.map +0 -1
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.js +0 -438
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/integrations.d.ts +0 -8
- package/dist/commands/integrations.js +0 -112
- package/dist/commands/integrations.js.map +0 -1
- package/dist/commands/listen.d.ts +0 -17
- package/dist/commands/listen.js +0 -223
- package/dist/commands/listen.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -38
- package/dist/commands/mcp.js +0 -111
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/migrate.d.ts +0 -16
- package/dist/commands/migrate.js +0 -114
- package/dist/commands/migrate.js.map +0 -1
- package/dist/commands/move-origin.d.ts +0 -11
- package/dist/commands/move-origin.js +0 -95
- package/dist/commands/move-origin.js.map +0 -1
- package/dist/commands/operator.d.ts +0 -18
- package/dist/commands/operator.js +0 -238
- package/dist/commands/operator.js.map +0 -1
- package/dist/commands/orgs.d.ts +0 -4
- package/dist/commands/orgs.js +0 -72
- package/dist/commands/orgs.js.map +0 -1
- package/dist/commands/pages.d.ts +0 -14
- package/dist/commands/pages.js +0 -113
- package/dist/commands/pages.js.map +0 -1
- package/dist/commands/partner-platforms.d.ts +0 -10
- package/dist/commands/partner-platforms.js +0 -157
- package/dist/commands/partner-platforms.js.map +0 -1
- package/dist/commands/project-commands.d.ts +0 -38
- package/dist/commands/project-commands.js +0 -361
- package/dist/commands/project-commands.js.map +0 -1
- package/dist/commands/referrals.d.ts +0 -69
- package/dist/commands/referrals.js +0 -1056
- package/dist/commands/referrals.js.map +0 -1
- package/dist/commands/resources.d.ts +0 -44
- package/dist/commands/resources.js +0 -234
- package/dist/commands/resources.js.map +0 -1
- package/dist/commands/sessions.d.ts +0 -4
- package/dist/commands/sessions.js +0 -28
- package/dist/commands/sessions.js.map +0 -1
- package/dist/commands/shared.d.ts +0 -38
- package/dist/commands/shared.js +0 -69
- package/dist/commands/shared.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.js +0 -77
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/users.d.ts +0 -4
- package/dist/commands/users.js +0 -100
- package/dist/commands/users.js.map +0 -1
- package/dist/commands/webhooks.d.ts +0 -34
- package/dist/commands/webhooks.js +0 -301
- package/dist/commands/webhooks.js.map +0 -1
- package/dist/config-http.d.ts +0 -29
- package/dist/config-http.js +0 -64
- package/dist/config-http.js.map +0 -1
- package/dist/config.d.ts +0 -64
- package/dist/config.js +0 -69
- package/dist/config.js.map +0 -1
- package/dist/context.d.ts +0 -72
- package/dist/context.js +0 -27
- package/dist/context.js.map +0 -1
- package/dist/define-config.d.ts +0 -9
- package/dist/define-config.js +0 -8
- package/dist/define-config.js.map +0 -1
- package/dist/errors.d.ts +0 -15
- package/dist/errors.js +0 -25
- package/dist/errors.js.map +0 -1
- package/dist/help.d.ts +0 -8
- package/dist/help.js +0 -868
- package/dist/help.js.map +0 -1
- package/dist/import/csv.d.ts +0 -6
- package/dist/import/csv.js +0 -63
- package/dist/import/csv.js.map +0 -1
- package/dist/import/vendors.d.ts +0 -57
- package/dist/import/vendors.js +0 -568
- package/dist/import/vendors.js.map +0 -1
- package/dist/index.d.ts +0 -33
- package/dist/index.js +0 -81
- package/dist/index.js.map +0 -1
- package/dist/io.d.ts +0 -21
- package/dist/io.js +0 -28
- package/dist/io.js.map +0 -1
- package/dist/migrate/appwrite/plugin.d.ts +0 -2
- package/dist/migrate/appwrite/plugin.js +0 -103
- package/dist/migrate/appwrite/plugin.js.map +0 -1
- package/dist/migrate/auth0/plugin.d.ts +0 -2
- package/dist/migrate/auth0/plugin.js +0 -126
- package/dist/migrate/auth0/plugin.js.map +0 -1
- package/dist/migrate/authentik/plugin.d.ts +0 -2
- package/dist/migrate/authentik/plugin.js +0 -135
- package/dist/migrate/authentik/plugin.js.map +0 -1
- package/dist/migrate/azure-ad-b2c/plugin.d.ts +0 -8
- package/dist/migrate/azure-ad-b2c/plugin.js +0 -165
- package/dist/migrate/azure-ad-b2c/plugin.js.map +0 -1
- package/dist/migrate/better-auth/integration.d.ts +0 -59
- package/dist/migrate/better-auth/integration.js +0 -81
- package/dist/migrate/better-auth/integration.js.map +0 -1
- package/dist/migrate/better-auth/orchestrator.d.ts +0 -43
- package/dist/migrate/better-auth/orchestrator.js +0 -525
- package/dist/migrate/better-auth/orchestrator.js.map +0 -1
- package/dist/migrate/better-auth/output.d.ts +0 -20
- package/dist/migrate/better-auth/output.js +0 -146
- package/dist/migrate/better-auth/output.js.map +0 -1
- package/dist/migrate/better-auth/translate.d.ts +0 -77
- package/dist/migrate/better-auth/translate.js +0 -1989
- package/dist/migrate/better-auth/translate.js.map +0 -1
- package/dist/migrate/clerk/plugin.d.ts +0 -2
- package/dist/migrate/clerk/plugin.js +0 -76
- package/dist/migrate/clerk/plugin.js.map +0 -1
- package/dist/migrate/cognito/plugin.d.ts +0 -5
- package/dist/migrate/cognito/plugin.js +0 -170
- package/dist/migrate/cognito/plugin.js.map +0 -1
- package/dist/migrate/corbado/plugin.d.ts +0 -2
- package/dist/migrate/corbado/plugin.js +0 -63
- package/dist/migrate/corbado/plugin.js.map +0 -1
- package/dist/migrate/descope/plugin.d.ts +0 -2
- package/dist/migrate/descope/plugin.js +0 -83
- package/dist/migrate/descope/plugin.js.map +0 -1
- package/dist/migrate/entra-external-id/plugin.d.ts +0 -8
- package/dist/migrate/entra-external-id/plugin.js +0 -12
- package/dist/migrate/entra-external-id/plugin.js.map +0 -1
- package/dist/migrate/export/appwrite-config.d.ts +0 -28
- package/dist/migrate/export/appwrite-config.js +0 -170
- package/dist/migrate/export/appwrite-config.js.map +0 -1
- package/dist/migrate/export/appwrite.d.ts +0 -51
- package/dist/migrate/export/appwrite.js +0 -288
- package/dist/migrate/export/appwrite.js.map +0 -1
- package/dist/migrate/export/auth0-config.d.ts +0 -29
- package/dist/migrate/export/auth0-config.js +0 -249
- package/dist/migrate/export/auth0-config.js.map +0 -1
- package/dist/migrate/export/auth0.d.ts +0 -62
- package/dist/migrate/export/auth0.js +0 -575
- package/dist/migrate/export/auth0.js.map +0 -1
- package/dist/migrate/export/authentik-config.d.ts +0 -45
- package/dist/migrate/export/authentik-config.js +0 -357
- package/dist/migrate/export/authentik-config.js.map +0 -1
- package/dist/migrate/export/authentik.d.ts +0 -110
- package/dist/migrate/export/authentik.js +0 -838
- package/dist/migrate/export/authentik.js.map +0 -1
- package/dist/migrate/export/azure-config.d.ts +0 -58
- package/dist/migrate/export/azure-config.js +0 -344
- package/dist/migrate/export/azure-config.js.map +0 -1
- package/dist/migrate/export/azure.d.ts +0 -85
- package/dist/migrate/export/azure.js +0 -373
- package/dist/migrate/export/azure.js.map +0 -1
- package/dist/migrate/export/clerk-config.d.ts +0 -26
- package/dist/migrate/export/clerk-config.js +0 -227
- package/dist/migrate/export/clerk-config.js.map +0 -1
- package/dist/migrate/export/clerk.d.ts +0 -46
- package/dist/migrate/export/clerk.js +0 -486
- package/dist/migrate/export/clerk.js.map +0 -1
- package/dist/migrate/export/cognito-config.d.ts +0 -25
- package/dist/migrate/export/cognito-config.js +0 -273
- package/dist/migrate/export/cognito-config.js.map +0 -1
- package/dist/migrate/export/cognito.d.ts +0 -103
- package/dist/migrate/export/cognito.js +0 -441
- package/dist/migrate/export/cognito.js.map +0 -1
- package/dist/migrate/export/corbado-config.d.ts +0 -20
- package/dist/migrate/export/corbado-config.js +0 -63
- package/dist/migrate/export/corbado-config.js.map +0 -1
- package/dist/migrate/export/corbado.d.ts +0 -37
- package/dist/migrate/export/corbado.js +0 -132
- package/dist/migrate/export/corbado.js.map +0 -1
- package/dist/migrate/export/descope.d.ts +0 -35
- package/dist/migrate/export/descope.js +0 -208
- package/dist/migrate/export/descope.js.map +0 -1
- package/dist/migrate/export/fake-vendor.test-helper.d.ts +0 -27
- package/dist/migrate/export/fake-vendor.test-helper.js +0 -41
- package/dist/migrate/export/fake-vendor.test-helper.js.map +0 -1
- package/dist/migrate/export/firebase-config.d.ts +0 -24
- package/dist/migrate/export/firebase-config.js +0 -215
- package/dist/migrate/export/firebase-config.js.map +0 -1
- package/dist/migrate/export/firebase.d.ts +0 -102
- package/dist/migrate/export/firebase.js +0 -464
- package/dist/migrate/export/firebase.js.map +0 -1
- package/dist/migrate/export/frameworks/app-users.d.ts +0 -42
- package/dist/migrate/export/frameworks/app-users.js +0 -161
- package/dist/migrate/export/frameworks/app-users.js.map +0 -1
- package/dist/migrate/export/frameworks/authjs.d.ts +0 -41
- package/dist/migrate/export/frameworks/authjs.js +0 -146
- package/dist/migrate/export/frameworks/authjs.js.map +0 -1
- package/dist/migrate/export/frameworks/devise.d.ts +0 -39
- package/dist/migrate/export/frameworks/devise.js +0 -218
- package/dist/migrate/export/frameworks/devise.js.map +0 -1
- package/dist/migrate/export/frameworks/django.d.ts +0 -45
- package/dist/migrate/export/frameworks/django.js +0 -315
- package/dist/migrate/export/frameworks/django.js.map +0 -1
- package/dist/migrate/export/frameworks/lucia.d.ts +0 -42
- package/dist/migrate/export/frameworks/lucia.js +0 -263
- package/dist/migrate/export/frameworks/lucia.js.map +0 -1
- package/dist/migrate/export/frameworks/tables.d.ts +0 -90
- package/dist/migrate/export/frameworks/tables.js +0 -325
- package/dist/migrate/export/frameworks/tables.js.map +0 -1
- package/dist/migrate/export/frameworks/webauthn.d.ts +0 -25
- package/dist/migrate/export/frameworks/webauthn.js +0 -130
- package/dist/migrate/export/frameworks/webauthn.js.map +0 -1
- package/dist/migrate/export/frontegg-config.d.ts +0 -29
- package/dist/migrate/export/frontegg-config.js +0 -238
- package/dist/migrate/export/frontegg-config.js.map +0 -1
- package/dist/migrate/export/frontegg.d.ts +0 -67
- package/dist/migrate/export/frontegg.js +0 -410
- package/dist/migrate/export/frontegg.js.map +0 -1
- package/dist/migrate/export/fusionauth-config.d.ts +0 -26
- package/dist/migrate/export/fusionauth-config.js +0 -226
- package/dist/migrate/export/fusionauth-config.js.map +0 -1
- package/dist/migrate/export/fusionauth.d.ts +0 -99
- package/dist/migrate/export/fusionauth.js +0 -642
- package/dist/migrate/export/fusionauth.js.map +0 -1
- package/dist/migrate/export/hanko-config.d.ts +0 -27
- package/dist/migrate/export/hanko-config.js +0 -265
- package/dist/migrate/export/hanko-config.js.map +0 -1
- package/dist/migrate/export/hanko.d.ts +0 -52
- package/dist/migrate/export/hanko.js +0 -605
- package/dist/migrate/export/hanko.js.map +0 -1
- package/dist/migrate/export/keycloak-config.d.ts +0 -19
- package/dist/migrate/export/keycloak-config.js +0 -219
- package/dist/migrate/export/keycloak-config.js.map +0 -1
- package/dist/migrate/export/keycloak.d.ts +0 -155
- package/dist/migrate/export/keycloak.js +0 -878
- package/dist/migrate/export/keycloak.js.map +0 -1
- package/dist/migrate/export/kinde-descope-config.d.ts +0 -38
- package/dist/migrate/export/kinde-descope-config.js +0 -172
- package/dist/migrate/export/kinde-descope-config.js.map +0 -1
- package/dist/migrate/export/kinde.d.ts +0 -57
- package/dist/migrate/export/kinde.js +0 -333
- package/dist/migrate/export/kinde.js.map +0 -1
- package/dist/migrate/export/ldap.d.ts +0 -53
- package/dist/migrate/export/ldap.js +0 -277
- package/dist/migrate/export/ldap.js.map +0 -1
- package/dist/migrate/export/logto-config.d.ts +0 -27
- package/dist/migrate/export/logto-config.js +0 -264
- package/dist/migrate/export/logto-config.js.map +0 -1
- package/dist/migrate/export/logto.d.ts +0 -150
- package/dist/migrate/export/logto.js +0 -809
- package/dist/migrate/export/logto.js.map +0 -1
- package/dist/migrate/export/magic-config.d.ts +0 -14
- package/dist/migrate/export/magic-config.js +0 -28
- package/dist/migrate/export/magic-config.js.map +0 -1
- package/dist/migrate/export/magic.d.ts +0 -31
- package/dist/migrate/export/magic.js +0 -93
- package/dist/migrate/export/magic.js.map +0 -1
- package/dist/migrate/export/mini-yaml.d.ts +0 -19
- package/dist/migrate/export/mini-yaml.js +0 -581
- package/dist/migrate/export/mini-yaml.js.map +0 -1
- package/dist/migrate/export/nhost-config.d.ts +0 -26
- package/dist/migrate/export/nhost-config.js +0 -360
- package/dist/migrate/export/nhost-config.js.map +0 -1
- package/dist/migrate/export/nhost.d.ts +0 -64
- package/dist/migrate/export/nhost.js +0 -304
- package/dist/migrate/export/nhost.js.map +0 -1
- package/dist/migrate/export/okta-config.d.ts +0 -30
- package/dist/migrate/export/okta-config.js +0 -205
- package/dist/migrate/export/okta-config.js.map +0 -1
- package/dist/migrate/export/okta.d.ts +0 -43
- package/dist/migrate/export/okta.js +0 -337
- package/dist/migrate/export/okta.js.map +0 -1
- package/dist/migrate/export/onelogin.d.ts +0 -22
- package/dist/migrate/export/onelogin.js +0 -123
- package/dist/migrate/export/onelogin.js.map +0 -1
- package/dist/migrate/export/ory-config.d.ts +0 -58
- package/dist/migrate/export/ory-config.js +0 -451
- package/dist/migrate/export/ory-config.js.map +0 -1
- package/dist/migrate/export/ory.d.ts +0 -81
- package/dist/migrate/export/ory.js +0 -555
- package/dist/migrate/export/ory.js.map +0 -1
- package/dist/migrate/export/password-detect.d.ts +0 -29
- package/dist/migrate/export/password-detect.js +0 -81
- package/dist/migrate/export/password-detect.js.map +0 -1
- package/dist/migrate/export/pingone.d.ts +0 -36
- package/dist/migrate/export/pingone.js +0 -218
- package/dist/migrate/export/pingone.js.map +0 -1
- package/dist/migrate/export/plugin-kit.d.ts +0 -25
- package/dist/migrate/export/plugin-kit.js +0 -82
- package/dist/migrate/export/plugin-kit.js.map +0 -1
- package/dist/migrate/export/pocketbase-config.d.ts +0 -28
- package/dist/migrate/export/pocketbase-config.js +0 -180
- package/dist/migrate/export/pocketbase-config.js.map +0 -1
- package/dist/migrate/export/pocketbase.d.ts +0 -52
- package/dist/migrate/export/pocketbase.js +0 -243
- package/dist/migrate/export/pocketbase.js.map +0 -1
- package/dist/migrate/export/project-files.d.ts +0 -15
- package/dist/migrate/export/project-files.js +0 -43
- package/dist/migrate/export/project-files.js.map +0 -1
- package/dist/migrate/export/propelauth-config.d.ts +0 -18
- package/dist/migrate/export/propelauth-config.js +0 -58
- package/dist/migrate/export/propelauth-config.js.map +0 -1
- package/dist/migrate/export/propelauth-harness.test-helper.d.ts +0 -62
- package/dist/migrate/export/propelauth-harness.test-helper.js +0 -109
- package/dist/migrate/export/propelauth-harness.test-helper.js.map +0 -1
- package/dist/migrate/export/propelauth.d.ts +0 -48
- package/dist/migrate/export/propelauth.js +0 -255
- package/dist/migrate/export/propelauth.js.map +0 -1
- package/dist/migrate/export/record-set.d.ts +0 -44
- package/dist/migrate/export/record-set.js +0 -98
- package/dist/migrate/export/record-set.js.map +0 -1
- package/dist/migrate/export/source-lines.d.ts +0 -17
- package/dist/migrate/export/source-lines.js +0 -43
- package/dist/migrate/export/source-lines.js.map +0 -1
- package/dist/migrate/export/sso-metadata.d.ts +0 -47
- package/dist/migrate/export/sso-metadata.js +0 -180
- package/dist/migrate/export/sso-metadata.js.map +0 -1
- package/dist/migrate/export/stytch-config.d.ts +0 -22
- package/dist/migrate/export/stytch-config.js +0 -102
- package/dist/migrate/export/stytch-config.js.map +0 -1
- package/dist/migrate/export/stytch.d.ts +0 -68
- package/dist/migrate/export/stytch.js +0 -510
- package/dist/migrate/export/stytch.js.map +0 -1
- package/dist/migrate/export/supabase-config.d.ts +0 -48
- package/dist/migrate/export/supabase-config.js +0 -408
- package/dist/migrate/export/supabase-config.js.map +0 -1
- package/dist/migrate/export/supabase.d.ts +0 -86
- package/dist/migrate/export/supabase.js +0 -524
- package/dist/migrate/export/supabase.js.map +0 -1
- package/dist/migrate/export/supertokens-config.d.ts +0 -20
- package/dist/migrate/export/supertokens-config.js +0 -150
- package/dist/migrate/export/supertokens-config.js.map +0 -1
- package/dist/migrate/export/supertokens.d.ts +0 -125
- package/dist/migrate/export/supertokens.js +0 -464
- package/dist/migrate/export/supertokens.js.map +0 -1
- package/dist/migrate/export/table.d.ts +0 -35
- package/dist/migrate/export/table.js +0 -248
- package/dist/migrate/export/table.js.map +0 -1
- package/dist/migrate/export/translate-kit.d.ts +0 -46
- package/dist/migrate/export/translate-kit.js +0 -148
- package/dist/migrate/export/translate-kit.js.map +0 -1
- package/dist/migrate/export/userfront-config.d.ts +0 -15
- package/dist/migrate/export/userfront-config.js +0 -49
- package/dist/migrate/export/userfront-config.js.map +0 -1
- package/dist/migrate/export/userfront.d.ts +0 -38
- package/dist/migrate/export/userfront.js +0 -189
- package/dist/migrate/export/userfront.js.map +0 -1
- package/dist/migrate/export/vendor-http.d.ts +0 -46
- package/dist/migrate/export/vendor-http.js +0 -138
- package/dist/migrate/export/vendor-http.js.map +0 -1
- package/dist/migrate/export/workos-config.d.ts +0 -23
- package/dist/migrate/export/workos-config.js +0 -125
- package/dist/migrate/export/workos-config.js.map +0 -1
- package/dist/migrate/export/workos.d.ts +0 -46
- package/dist/migrate/export/workos.js +0 -272
- package/dist/migrate/export/workos.js.map +0 -1
- package/dist/migrate/export/zip.d.ts +0 -8
- package/dist/migrate/export/zip.js +0 -66
- package/dist/migrate/export/zip.js.map +0 -1
- package/dist/migrate/export/zitadel-config.d.ts +0 -37
- package/dist/migrate/export/zitadel-config.js +0 -279
- package/dist/migrate/export/zitadel-config.js.map +0 -1
- package/dist/migrate/export/zitadel.d.ts +0 -82
- package/dist/migrate/export/zitadel.js +0 -447
- package/dist/migrate/export/zitadel.js.map +0 -1
- package/dist/migrate/firebase/plugin.d.ts +0 -2
- package/dist/migrate/firebase/plugin.js +0 -152
- package/dist/migrate/firebase/plugin.js.map +0 -1
- package/dist/migrate/framework/builtins.d.ts +0 -2
- package/dist/migrate/framework/builtins.js +0 -52
- package/dist/migrate/framework/builtins.js.map +0 -1
- package/dist/migrate/framework/commands.d.ts +0 -20
- package/dist/migrate/framework/commands.js +0 -58
- package/dist/migrate/framework/commands.js.map +0 -1
- package/dist/migrate/framework/custom.d.ts +0 -12
- package/dist/migrate/framework/custom.js +0 -96
- package/dist/migrate/framework/custom.js.map +0 -1
- package/dist/migrate/framework/orchestrator.d.ts +0 -113
- package/dist/migrate/framework/orchestrator.js +0 -532
- package/dist/migrate/framework/orchestrator.js.map +0 -1
- package/dist/migrate/framework/plugin.d.ts +0 -167
- package/dist/migrate/framework/plugin.js +0 -3
- package/dist/migrate/framework/plugin.js.map +0 -1
- package/dist/migrate/framework/registry.d.ts +0 -11
- package/dist/migrate/framework/registry.js +0 -44
- package/dist/migrate/framework/registry.js.map +0 -1
- package/dist/migrate/framework/report.d.ts +0 -17
- package/dist/migrate/framework/report.js +0 -103
- package/dist/migrate/framework/report.js.map +0 -1
- package/dist/migrate/frameworks/plugins.d.ts +0 -29
- package/dist/migrate/frameworks/plugins.js +0 -402
- package/dist/migrate/frameworks/plugins.js.map +0 -1
- package/dist/migrate/frameworks/report.d.ts +0 -92
- package/dist/migrate/frameworks/report.js +0 -207
- package/dist/migrate/frameworks/report.js.map +0 -1
- package/dist/migrate/frameworks/translate-js.d.ts +0 -5
- package/dist/migrate/frameworks/translate-js.js +0 -503
- package/dist/migrate/frameworks/translate-js.js.map +0 -1
- package/dist/migrate/frameworks/translate-rails-django.d.ts +0 -3
- package/dist/migrate/frameworks/translate-rails-django.js +0 -1391
- package/dist/migrate/frameworks/translate-rails-django.js.map +0 -1
- package/dist/migrate/frontegg/plugin.d.ts +0 -2
- package/dist/migrate/frontegg/plugin.js +0 -78
- package/dist/migrate/frontegg/plugin.js.map +0 -1
- package/dist/migrate/fusionauth/plugin.d.ts +0 -2
- package/dist/migrate/fusionauth/plugin.js +0 -109
- package/dist/migrate/fusionauth/plugin.js.map +0 -1
- package/dist/migrate/hanko/plugin.d.ts +0 -2
- package/dist/migrate/hanko/plugin.js +0 -100
- package/dist/migrate/hanko/plugin.js.map +0 -1
- package/dist/migrate/keycloak/plugin.d.ts +0 -2
- package/dist/migrate/keycloak/plugin.js +0 -148
- package/dist/migrate/keycloak/plugin.js.map +0 -1
- package/dist/migrate/kinde/plugin.d.ts +0 -2
- package/dist/migrate/kinde/plugin.js +0 -105
- package/dist/migrate/kinde/plugin.js.map +0 -1
- package/dist/migrate/ldap/plugin.d.ts +0 -2
- package/dist/migrate/ldap/plugin.js +0 -73
- package/dist/migrate/ldap/plugin.js.map +0 -1
- package/dist/migrate/logto/plugin.d.ts +0 -2
- package/dist/migrate/logto/plugin.js +0 -131
- package/dist/migrate/logto/plugin.js.map +0 -1
- package/dist/migrate/magic/plugin.d.ts +0 -2
- package/dist/migrate/magic/plugin.js +0 -56
- package/dist/migrate/magic/plugin.js.map +0 -1
- package/dist/migrate/nhost/plugin.d.ts +0 -2
- package/dist/migrate/nhost/plugin.js +0 -115
- package/dist/migrate/nhost/plugin.js.map +0 -1
- package/dist/migrate/oidc/plugin.d.ts +0 -2
- package/dist/migrate/oidc/plugin.js +0 -73
- package/dist/migrate/oidc/plugin.js.map +0 -1
- package/dist/migrate/okta/plugin.d.ts +0 -2
- package/dist/migrate/okta/plugin.js +0 -105
- package/dist/migrate/okta/plugin.js.map +0 -1
- package/dist/migrate/onelogin/plugin.d.ts +0 -2
- package/dist/migrate/onelogin/plugin.js +0 -61
- package/dist/migrate/onelogin/plugin.js.map +0 -1
- package/dist/migrate/ory/plugin.d.ts +0 -2
- package/dist/migrate/ory/plugin.js +0 -186
- package/dist/migrate/ory/plugin.js.map +0 -1
- package/dist/migrate/ping-identity/plugin.d.ts +0 -2
- package/dist/migrate/ping-identity/plugin.js +0 -100
- package/dist/migrate/ping-identity/plugin.js.map +0 -1
- package/dist/migrate/pocketbase/plugin.d.ts +0 -2
- package/dist/migrate/pocketbase/plugin.js +0 -99
- package/dist/migrate/pocketbase/plugin.js.map +0 -1
- package/dist/migrate/propelauth/plugin.d.ts +0 -2
- package/dist/migrate/propelauth/plugin.js +0 -65
- package/dist/migrate/propelauth/plugin.js.map +0 -1
- package/dist/migrate/saml/plugin.d.ts +0 -2
- package/dist/migrate/saml/plugin.js +0 -79
- package/dist/migrate/saml/plugin.js.map +0 -1
- package/dist/migrate/stytch/plugin.d.ts +0 -2
- package/dist/migrate/stytch/plugin.js +0 -97
- package/dist/migrate/stytch/plugin.js.map +0 -1
- package/dist/migrate/supabase/plugin.d.ts +0 -2
- package/dist/migrate/supabase/plugin.js +0 -149
- package/dist/migrate/supabase/plugin.js.map +0 -1
- package/dist/migrate/supertokens/plugin.d.ts +0 -2
- package/dist/migrate/supertokens/plugin.js +0 -114
- package/dist/migrate/supertokens/plugin.js.map +0 -1
- package/dist/migrate/user-table/plugin.d.ts +0 -2
- package/dist/migrate/user-table/plugin.js +0 -62
- package/dist/migrate/user-table/plugin.js.map +0 -1
- package/dist/migrate/userfront/plugin.d.ts +0 -2
- package/dist/migrate/userfront/plugin.js +0 -60
- package/dist/migrate/userfront/plugin.js.map +0 -1
- package/dist/migrate/workos/plugin.d.ts +0 -2
- package/dist/migrate/workos/plugin.js +0 -81
- package/dist/migrate/workos/plugin.js.map +0 -1
- package/dist/migrate/zitadel/plugin.d.ts +0 -2
- package/dist/migrate/zitadel/plugin.js +0 -114
- package/dist/migrate/zitadel/plugin.js.map +0 -1
- package/dist/output.d.ts +0 -41
- package/dist/output.js +0 -72
- package/dist/output.js.map +0 -1
- package/dist/project.d.ts +0 -64
- package/dist/project.js +0 -86
- package/dist/project.js.map +0 -1
- package/dist/prompt.d.ts +0 -15
- package/dist/prompt.js +0 -46
- package/dist/prompt.js.map +0 -1
- package/dist/run.d.ts +0 -12
- package/dist/run.js +0 -157
- package/dist/run.js.map +0 -1
- package/dist/secrets.d.ts +0 -41
- package/dist/secrets.js +0 -142
- package/dist/secrets.js.map +0 -1
- package/dist/serialize.d.ts +0 -30
- package/dist/serialize.js +0 -131
- package/dist/serialize.js.map +0 -1
- package/dist/version.d.ts +0 -7
- package/dist/version.js +0 -21
- package/dist/version.js.map +0 -1
package/dist/commands/init.js
DELETED
|
@@ -1,438 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.init = init;
|
|
4
|
-
const node_fs_1 = require("node:fs");
|
|
5
|
-
const node_path_1 = require("node:path");
|
|
6
|
-
const backend_1 = require("@atlasauth/backend");
|
|
7
|
-
const args_1 = require("../args");
|
|
8
|
-
const errors_1 = require("../errors");
|
|
9
|
-
const output_1 = require("../output");
|
|
10
|
-
const project_1 = require("../project");
|
|
11
|
-
const secrets_1 = require("../secrets");
|
|
12
|
-
const shared_1 = require("./shared");
|
|
13
|
-
/**
|
|
14
|
-
* `atlas init` — set up an Atlas app for a product in one idempotent command.
|
|
15
|
-
*
|
|
16
|
-
* It drives the platform API (a `psk_` platform key) to find or create the app
|
|
17
|
-
* + instance, then the instance's own Backend API to set sign-in strategies,
|
|
18
|
-
* the email sender, the custom domain, a first-party OAuth client and a
|
|
19
|
-
* webhook endpoint. Re-running finds each thing by name / host / URL and only
|
|
20
|
-
* fills what is missing.
|
|
21
|
-
*
|
|
22
|
-
* Every secret it receives goes straight into a 0600 file under
|
|
23
|
-
* `~/.config/<product>/` (directory 0700); stdout carries only public values
|
|
24
|
-
* and file paths. Before anything that would hand back a NEW secret is
|
|
25
|
-
* created, the target file is checked: an existing, different file is refused
|
|
26
|
-
* unless `--force`, so a secret is never minted only to be thrown away.
|
|
27
|
-
*/
|
|
28
|
-
const STRATEGY_ALIASES = {
|
|
29
|
-
password: 'password',
|
|
30
|
-
email_code: 'emailCode',
|
|
31
|
-
email_link: 'emailLink',
|
|
32
|
-
passkey: 'passkey',
|
|
33
|
-
phone_code: 'phoneCode',
|
|
34
|
-
username: 'username',
|
|
35
|
-
siwe: 'siwe',
|
|
36
|
-
};
|
|
37
|
-
/** Strategies that need email delivery: turned on only once the instance can send. */
|
|
38
|
-
const EMAIL_STRATEGIES = new Set(['emailCode', 'emailLink']);
|
|
39
|
-
const EMAIL_PROVIDERS = ['resend', 'brevo'];
|
|
40
|
-
function camel(s) {
|
|
41
|
-
return s.replace(/_([a-z])/g, (_m, c) => c.toUpperCase());
|
|
42
|
-
}
|
|
43
|
-
function parseOptions(args) {
|
|
44
|
-
const v = args.values;
|
|
45
|
-
const product = (0, args_1.str)(v, 'product');
|
|
46
|
-
if (!product)
|
|
47
|
-
throw new errors_1.CliError('atlas init requires --product <name>.');
|
|
48
|
-
(0, secrets_1.assertProductName)(product);
|
|
49
|
-
const environment = (0, project_1.parseInstanceEnv)((0, args_1.str)(v, 'instance-env'), 'production');
|
|
50
|
-
const domain = (0, args_1.str)(v, 'domain')?.trim().toLowerCase().replace(/\.$/, '');
|
|
51
|
-
if (domain && !/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/.test(domain)) {
|
|
52
|
-
throw new errors_1.CliError(`--domain must be a domain name like example.com, got '${domain}'.`);
|
|
53
|
-
}
|
|
54
|
-
const emailRaw = (0, args_1.str)(v, 'email') ?? (domain ? 'managed' : 'none');
|
|
55
|
-
if (emailRaw !== 'managed' && emailRaw !== 'development' && emailRaw !== 'none') {
|
|
56
|
-
throw new errors_1.CliError(`--email must be managed, development or none, got '${emailRaw}'.`);
|
|
57
|
-
}
|
|
58
|
-
if (emailRaw === 'managed' && !domain && !(0, args_1.str)(v, 'email-from')) {
|
|
59
|
-
throw new errors_1.CliError('--email managed needs --domain (or --email-from <address on your domain>).');
|
|
60
|
-
}
|
|
61
|
-
if (emailRaw === 'development' && environment !== 'development') {
|
|
62
|
-
throw new errors_1.CliError('--email development is only for --instance-env development. Use --email managed on production.');
|
|
63
|
-
}
|
|
64
|
-
const providerRaw = (0, args_1.str)(v, 'email-provider');
|
|
65
|
-
if (providerRaw !== undefined && !EMAIL_PROVIDERS.includes(providerRaw)) {
|
|
66
|
-
throw new errors_1.CliError(`--email-provider must be ${EMAIL_PROVIDERS.join(' or ')}, got '${providerRaw}'. Configure other providers with PUT /v1/messaging_providers/email.`);
|
|
67
|
-
}
|
|
68
|
-
const emailKeyFile = (0, args_1.str)(v, 'email-key-file');
|
|
69
|
-
if (emailKeyFile !== undefined && !providerRaw)
|
|
70
|
-
throw new errors_1.CliError('--email-key-file needs --email-provider resend|brevo.');
|
|
71
|
-
const strategies = (0, args_1.list)(v, 'strategies').map((s) => STRATEGY_ALIASES[s] ?? camel(s));
|
|
72
|
-
const redirects = (0, args_1.list)(v, 'client-redirect');
|
|
73
|
-
for (const r of redirects) {
|
|
74
|
-
try {
|
|
75
|
-
new URL(r);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
throw new errors_1.CliError(`--client-redirect must be an absolute URL, got '${r}'.`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
const backchannelUrl = (0, args_1.str)(v, 'backchannel');
|
|
82
|
-
if (backchannelUrl !== undefined) {
|
|
83
|
-
let u;
|
|
84
|
-
try {
|
|
85
|
-
u = new URL(backchannelUrl);
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
throw new errors_1.CliError(`--backchannel must be an absolute URL, got '${backchannelUrl}'.`);
|
|
89
|
-
}
|
|
90
|
-
if (u.protocol !== 'https:' && !['localhost', '127.0.0.1', '[::1]'].includes(u.hostname)) {
|
|
91
|
-
throw new errors_1.CliError('--backchannel must be an https URL (http only on localhost).');
|
|
92
|
-
}
|
|
93
|
-
if (redirects.length === 0)
|
|
94
|
-
throw new errors_1.CliError('--backchannel needs --client-redirect: it is set on the OAuth client.');
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
product,
|
|
98
|
-
appName: (0, args_1.str)(v, 'name') || product,
|
|
99
|
-
environment,
|
|
100
|
-
domain,
|
|
101
|
-
authHost: (0, args_1.str)(v, 'auth-host') || (domain ? `auth.${domain}` : undefined),
|
|
102
|
-
strategies,
|
|
103
|
-
email: emailRaw,
|
|
104
|
-
emailFrom: (0, args_1.str)(v, 'email-from') || (emailRaw === 'managed' && domain ? `noreply@mail.${domain}` : undefined),
|
|
105
|
-
emailProvider: providerRaw,
|
|
106
|
-
emailKeyFile,
|
|
107
|
-
redirects,
|
|
108
|
-
webhookUrl: (0, args_1.str)(v, 'webhook-url'),
|
|
109
|
-
backchannelUrl,
|
|
110
|
-
force: v.force === true,
|
|
111
|
-
rotateSecret: v['rotate-secret'] === true,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
/** The platform key and API URL: ATLAS_PLATFORM_KEY, else a stored profile holding a psk_ key. */
|
|
115
|
-
function platformAuth(ctx, args) {
|
|
116
|
-
const file = ctx.config.load();
|
|
117
|
-
const profile = (0, args_1.str)(args.values, 'profile') || file.active_profile || 'default';
|
|
118
|
-
const stored = file.profiles[profile];
|
|
119
|
-
const envKey = ctx.env.ATLAS_PLATFORM_KEY?.trim();
|
|
120
|
-
const key = envKey || ((stored?.secret_key?.startsWith('psk_') || /^atlas_(live|test)_psk_/.test(stored?.secret_key ?? '')) ? stored?.secret_key : undefined);
|
|
121
|
-
if (!key) {
|
|
122
|
-
throw new errors_1.CliError("atlas init needs a platform key (psk_…). Set ATLAS_PLATFORM_KEY, or store one with 'atlas login --secret-key psk_…'.");
|
|
123
|
-
}
|
|
124
|
-
const apiUrl = (0, shared_1.envApiUrl)(ctx.env) || stored?.api_url || backend_1.DEFAULT_API_URL;
|
|
125
|
-
return { secretKey: key, apiUrl };
|
|
126
|
-
}
|
|
127
|
-
const isStatus = (err, status) => err instanceof backend_1.AtlasApiError && err.status === status;
|
|
128
|
-
/**
|
|
129
|
-
* Read the customer's provider key from a file, or stdin with '-'. A bare key,
|
|
130
|
-
* or a dotenv line (`RESEND_API_KEY=re_…`). Never from argv, never printed.
|
|
131
|
-
*/
|
|
132
|
-
function readProviderKey(ctx, file) {
|
|
133
|
-
let text;
|
|
134
|
-
try {
|
|
135
|
-
text = ctx.readFile(file === '-' ? '/dev/stdin' : file);
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
throw new errors_1.CliError(`Could not read the email provider key from ${file === '-' ? 'stdin' : file}.`);
|
|
139
|
-
}
|
|
140
|
-
const line = text.split(/\r?\n/).map((l) => l.trim()).find((l) => l && !l.startsWith('#')) ?? '';
|
|
141
|
-
const m = /^[A-Za-z_][A-Za-z0-9_]*=(.*)$/.exec(line);
|
|
142
|
-
const key = (m ? m[1] : line).trim().replace(/^"(.*)"$/, '$1');
|
|
143
|
-
if (!key || /\s/.test(key))
|
|
144
|
-
throw new errors_1.CliError(`No email provider key found in ${file === '-' ? 'stdin' : file}.`);
|
|
145
|
-
return key;
|
|
146
|
-
}
|
|
147
|
-
/** Refuse up front when a NEW secret would land on an existing, different file. */
|
|
148
|
-
function assertFreeForNewSecret(path, force) {
|
|
149
|
-
if ((0, node_fs_1.existsSync)(path) && !force) {
|
|
150
|
-
throw new errors_1.CliError(`${path} already exists. A new secret would be created and could not be saved there. Move the file aside, or re-run with --force to replace it.`);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
async function init(ctx, args) {
|
|
154
|
-
const opts = parseOptions(args);
|
|
155
|
-
const json = (0, shared_1.wantsJson)(args.values);
|
|
156
|
-
const log = (line) => (json ? ctx.io.err(line) : ctx.io.out(line));
|
|
157
|
-
const dir = (0, secrets_1.productDir)(ctx.env, opts.product);
|
|
158
|
-
const env = opts.environment;
|
|
159
|
-
const secretFile = (0, node_path_1.join)(dir, `${env}.env`);
|
|
160
|
-
const clientFile = (0, node_path_1.join)(dir, `${env}-oauth-client.env`);
|
|
161
|
-
const webhookFile = (0, node_path_1.join)(dir, `${env}-webhook.env`);
|
|
162
|
-
// The plan, then a confirmation unless --yes.
|
|
163
|
-
log(`atlas init: ${opts.appName} (${env})`);
|
|
164
|
-
log(` strategies: ${opts.strategies.length ? opts.strategies.join(', ') : '(instance defaults)'}`);
|
|
165
|
-
log(` email: ${opts.email}${opts.email === 'managed' ? ` from ${opts.emailFrom}` : ''}${opts.emailProvider ? ` (your ${opts.emailProvider} account)` : ''}`);
|
|
166
|
-
if (opts.authHost)
|
|
167
|
-
log(` domain: ${opts.authHost}`);
|
|
168
|
-
if (opts.redirects.length)
|
|
169
|
-
log(` client: first-party OAuth client → ${opts.redirects.join(', ')}`);
|
|
170
|
-
if (opts.webhookUrl)
|
|
171
|
-
log(` webhook: ${opts.webhookUrl}`);
|
|
172
|
-
log(` secrets: ${dir} (0600 files, never printed)`);
|
|
173
|
-
if (args.values.yes !== true) {
|
|
174
|
-
const answer = (await ctx.prompt.text('Proceed? (y/N)')).trim().toLowerCase();
|
|
175
|
-
if (answer !== 'y' && answer !== 'yes')
|
|
176
|
-
throw new errors_1.CliError('Aborted. Nothing was changed.');
|
|
177
|
-
}
|
|
178
|
-
const platform = platformAuth(ctx, args);
|
|
179
|
-
const plat = (0, project_1.httpFor)(ctx, platform);
|
|
180
|
-
// --- 1. app + instance --------------------------------------------------
|
|
181
|
-
const apps = (await plat.get('/v1/platform/apps')).data ?? [];
|
|
182
|
-
let app = apps.find((a) => a.name === opts.appName && a.environment === env);
|
|
183
|
-
let created = false;
|
|
184
|
-
if (!app) {
|
|
185
|
-
assertFreeForNewSecret(secretFile, opts.force);
|
|
186
|
-
const origins = [...new Set(opts.redirects.map((r) => new URL(r).origin).filter((o) => o.startsWith('http')))];
|
|
187
|
-
app = await plat.post('/v1/platform/apps', {
|
|
188
|
-
name: opts.appName,
|
|
189
|
-
environment: env,
|
|
190
|
-
create_development_sibling: false,
|
|
191
|
-
...(origins.length ? { allowed_origins: origins } : {}),
|
|
192
|
-
});
|
|
193
|
-
created = true;
|
|
194
|
-
(0, secrets_1.writeSecretFile)(dir, `${env}.env`, { ATLAS_SECRET_KEY: app.secret ?? '' }, {
|
|
195
|
-
force: opts.force,
|
|
196
|
-
comment: `Atlas secret key for ${opts.appName} (${env}, ${app.id}). Server-side only.`,
|
|
197
|
-
});
|
|
198
|
-
log(`Created app ${app.id}. Secret key written to ${secretFile}.`);
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
log(`Found app ${app.id}.`);
|
|
202
|
-
}
|
|
203
|
-
let secretKey = (0, secrets_1.readEnvFile)(secretFile)?.ATLAS_SECRET_KEY;
|
|
204
|
-
if (!secretKey) {
|
|
205
|
-
if (!opts.rotateSecret) {
|
|
206
|
-
throw new errors_1.CliError(`App ${app.id} exists but its secret key is not in ${secretFile}. Re-run with --rotate-secret to mint a new one (existing keys keep working for the default overlap window).`);
|
|
207
|
-
}
|
|
208
|
-
const rotated = await plat.post(`/v1/platform/apps/${app.id}/rotate_secret`, {});
|
|
209
|
-
(0, secrets_1.writeSecretFile)(dir, `${env}.env`, { ATLAS_SECRET_KEY: rotated.secret }, {
|
|
210
|
-
force: true,
|
|
211
|
-
comment: `Atlas secret key for ${opts.appName} (${env}, ${app.id}). Server-side only.`,
|
|
212
|
-
});
|
|
213
|
-
secretKey = rotated.secret;
|
|
214
|
-
const until = rotated.previous_keys_expire_at ? new Date(rotated.previous_keys_expire_at).toISOString() : 'now';
|
|
215
|
-
log(`Minted a new secret key into ${secretFile}. Previous keys stop working: ${until}.`);
|
|
216
|
-
}
|
|
217
|
-
const api = (0, project_1.httpFor)(ctx, { secretKey, apiUrl: platform.apiUrl });
|
|
218
|
-
const previous = (0, project_1.readManifest)(ctx.env, opts.product);
|
|
219
|
-
const record = {
|
|
220
|
-
...(previous?.instances[env] ?? {}),
|
|
221
|
-
instance_id: app.id,
|
|
222
|
-
environment: env,
|
|
223
|
-
publishable_key: app.publishable_key,
|
|
224
|
-
frontend_api_host: app.frontend_api_host,
|
|
225
|
-
issuer: null,
|
|
226
|
-
discovery_url: null,
|
|
227
|
-
jwks_uri: null,
|
|
228
|
-
secret_file: secretFile,
|
|
229
|
-
};
|
|
230
|
-
// --- 2. email sender (before strategies: email methods need it) ----------
|
|
231
|
-
// Always the customer's own provider account: Atlas lends none. The key comes
|
|
232
|
-
// from --email-key-file (or stdin) and is sent once; it is never printed.
|
|
233
|
-
const providerKey = () => {
|
|
234
|
-
if (!opts.emailProvider || !opts.emailKeyFile) {
|
|
235
|
-
throw new errors_1.CliError(`--email ${opts.email} sends through your own email provider. Pass --email-provider resend|brevo and --email-key-file <path> (or - to read it from stdin).`);
|
|
236
|
-
}
|
|
237
|
-
return { transport: opts.emailProvider, config: { api_key: readProviderKey(ctx, opts.emailKeyFile) } };
|
|
238
|
-
};
|
|
239
|
-
let emailReady = opts.email === 'none';
|
|
240
|
-
if (opts.email === 'managed') {
|
|
241
|
-
let managed;
|
|
242
|
-
try {
|
|
243
|
-
managed = await api.get('/v1/messaging_providers/email/managed');
|
|
244
|
-
}
|
|
245
|
-
catch (err) {
|
|
246
|
-
if (!isStatus(err, 404))
|
|
247
|
-
throw err;
|
|
248
|
-
managed = await api.post('/v1/messaging_providers/email/managed', { from_address: opts.emailFrom, ...providerKey() });
|
|
249
|
-
log(`Registered ${opts.emailFrom} on your ${opts.emailProvider} account (managed email).`);
|
|
250
|
-
}
|
|
251
|
-
emailReady = managed.verified;
|
|
252
|
-
record.email = { mode: 'managed', from_address: managed.from_address };
|
|
253
|
-
if (!managed.verified) {
|
|
254
|
-
log('Publish these DNS records for managed email, then run: atlas init again (or POST /v1/messaging_providers/email/managed/verify):');
|
|
255
|
-
for (const r of managed.records ?? []) {
|
|
256
|
-
log(` ${r.type.padEnd(5)} ${r.name} ${r.value}${r.priority !== undefined ? ` (priority ${r.priority})` : ''}`);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
log(`Managed email verified: ${managed.from_address}.`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else if (opts.email === 'development') {
|
|
264
|
-
const providers = await api.get('/v1/messaging_providers');
|
|
265
|
-
let dev;
|
|
266
|
-
if (providers.email?.mode === 'development' && !opts.emailKeyFile) {
|
|
267
|
-
dev = await api.get('/v1/messaging_providers/email/development');
|
|
268
|
-
}
|
|
269
|
-
else if (providers.email && !opts.emailKeyFile) {
|
|
270
|
-
dev = await api.post('/v1/messaging_providers/email/development', {
|
|
271
|
-
provider_id: providers.email.id,
|
|
272
|
-
...(opts.emailFrom ? { from_address: opts.emailFrom } : {}),
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
dev = await api.post('/v1/messaging_providers/email/development', {
|
|
277
|
-
...providerKey(),
|
|
278
|
-
...(opts.emailFrom ? { from_address: opts.emailFrom } : {}),
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
emailReady = dev.active;
|
|
282
|
-
record.email = { mode: 'development', from_address: dev.from_address };
|
|
283
|
-
log(`Development email sender on: your provider, from ${dev.from_address} (capped, development instances only).`);
|
|
284
|
-
if (dev.note)
|
|
285
|
-
log(` Note: ${dev.note}`);
|
|
286
|
-
}
|
|
287
|
-
else {
|
|
288
|
-
record.email = { mode: 'none' };
|
|
289
|
-
}
|
|
290
|
-
// --- 3. strategies --------------------------------------------------------
|
|
291
|
-
// Every requested method is switched on, even before the email sender is
|
|
292
|
-
// ready: the instance accepts the write and simply does not offer a method
|
|
293
|
-
// that needs email (it reports it under inactive_methods) until it can send.
|
|
294
|
-
if (opts.strategies.length) {
|
|
295
|
-
const current = (await api.get('/v1/instance')).auth_config_resolved?.strategies ?? {};
|
|
296
|
-
const missing = opts.strategies.filter((s) => current[s] !== true);
|
|
297
|
-
if (missing.length) {
|
|
298
|
-
try {
|
|
299
|
-
const res = await api.patch('/v1/instance', { auth_config: { strategies: Object.fromEntries(missing.map((s) => [s, true])) } });
|
|
300
|
-
log(`Turned on: ${missing.join(', ')}.`);
|
|
301
|
-
const inactive = (res?.inactive_methods ?? []).map((m) => m.method);
|
|
302
|
-
if (inactive.length) {
|
|
303
|
-
log(`Not offered to users yet (they need an email provider, and this instance cannot send email): ${inactive.join(', ')}. They become active once email can be sent.`);
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
catch (err) {
|
|
307
|
-
// An older server refuses email methods without a sender: say so, keep going.
|
|
308
|
-
if (!(err instanceof backend_1.AtlasApiError && err.status === 422 && err.code === 'EMAIL_PROVIDER_REQUIRED'))
|
|
309
|
-
throw err;
|
|
310
|
-
log(`Not turned on yet: ${err.message} Re-run atlas init once email can be sent.`);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
if (!emailReady && missing.some((s) => EMAIL_STRATEGIES.has(s))) {
|
|
314
|
-
log('Email code / email link need the email sender: they start working as soon as it is ready.');
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
// --- 4. custom domain ------------------------------------------------------
|
|
318
|
-
if (opts.authHost) {
|
|
319
|
-
const domains = (await api.get('/v1/domains')).data ?? [];
|
|
320
|
-
let d = domains.find((x) => x.host === opts.authHost);
|
|
321
|
-
if (!d) {
|
|
322
|
-
d = await api.post('/v1/domains', { host: opts.authHost, role: 'fapi' });
|
|
323
|
-
log(`Added custom domain ${opts.authHost}.`);
|
|
324
|
-
}
|
|
325
|
-
record.custom_domain = { host: d.host, cname_target: d.cname_target, status: d.status };
|
|
326
|
-
if (!d.live && d.cname_target) {
|
|
327
|
-
log(`Publish this DNS record for the sign-in domain: CNAME ${d.host} → ${d.cname_target} (DNS only, not proxied).`);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
// --- 5. first-party OAuth client -----------------------------------------
|
|
331
|
-
if (opts.redirects.length) {
|
|
332
|
-
const clientName = `${opts.appName} (${env})`;
|
|
333
|
-
const clients = (await api.get('/v1/oauth_clients')).data ?? [];
|
|
334
|
-
const existing = clients.find((c) => c.name === clientName);
|
|
335
|
-
if (existing) {
|
|
336
|
-
const missingUris = opts.redirects.filter((r) => !existing.redirect_uris.includes(r));
|
|
337
|
-
if (missingUris.length) {
|
|
338
|
-
await api.patch(`/v1/oauth_clients/${existing.id}`, { redirect_uris: [...existing.redirect_uris, ...missingUris] });
|
|
339
|
-
log(`Added redirect URIs to OAuth client ${existing.client_id}: ${missingUris.join(', ')}.`);
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
log(`Found OAuth client ${existing.client_id}.`);
|
|
343
|
-
}
|
|
344
|
-
if (opts.backchannelUrl && existing.backchannel_logout_uri !== opts.backchannelUrl) {
|
|
345
|
-
await api.patch(`/v1/oauth_clients/${existing.id}`, { backchannel_logout_uri: opts.backchannelUrl });
|
|
346
|
-
log(`Set the back-channel logout URI of ${existing.client_id} to ${opts.backchannelUrl}.`);
|
|
347
|
-
}
|
|
348
|
-
const hasSecret = Boolean((0, secrets_1.readEnvFile)(clientFile)?.ATLAS_CLIENT_SECRET);
|
|
349
|
-
if (!hasSecret)
|
|
350
|
-
log(`Its secret is not in ${clientFile}. Mint one with: atlas client rotate ${existing.id} --product ${opts.product} --instance-env ${env}`);
|
|
351
|
-
record.oauth_client = {
|
|
352
|
-
id: existing.id,
|
|
353
|
-
client_id: existing.client_id,
|
|
354
|
-
redirect_uris: [...new Set([...existing.redirect_uris, ...missingUris])],
|
|
355
|
-
secret_file: hasSecret ? clientFile : null,
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
assertFreeForNewSecret(clientFile, opts.force);
|
|
360
|
-
const c = await api.post('/v1/oauth_clients', {
|
|
361
|
-
name: clientName,
|
|
362
|
-
redirect_uris: opts.redirects,
|
|
363
|
-
first_party: true,
|
|
364
|
-
...(opts.backchannelUrl ? { backchannel_logout_uri: opts.backchannelUrl } : {}),
|
|
365
|
-
});
|
|
366
|
-
if (c.client_secret) {
|
|
367
|
-
(0, secrets_1.writeSecretFile)(dir, `${env}-oauth-client.env`, { ATLAS_CLIENT_ID: c.client_id, ATLAS_CLIENT_SECRET: c.client_secret }, {
|
|
368
|
-
force: opts.force,
|
|
369
|
-
comment: `OAuth client ${c.id} for ${opts.appName} (${env}). Server-side only.`,
|
|
370
|
-
});
|
|
371
|
-
}
|
|
372
|
-
record.oauth_client = { id: c.id, client_id: c.client_id, redirect_uris: c.redirect_uris, secret_file: c.client_secret ? clientFile : null };
|
|
373
|
-
log(`Created first-party OAuth client ${c.client_id}. Secret written to ${clientFile}.`);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
if (opts.backchannelUrl) {
|
|
377
|
-
log(`Back-channel logout goes to ${opts.backchannelUrl}. Serve it with @atlasauth/backend: expressBackchannelLogout, fastifyBackchannelLogoutPlugin or nextBackchannelLogout ({ issuer, clientId, onLogout }). Test it with POST /v1/oauth_clients/{id}/backchannel_logout/test.`);
|
|
378
|
-
}
|
|
379
|
-
// --- 6. webhook endpoint ---------------------------------------------------
|
|
380
|
-
if (opts.webhookUrl) {
|
|
381
|
-
const hooks = (await api.get('/v1/webhook_endpoints')).data ?? [];
|
|
382
|
-
const existing = hooks.find((h) => h.url === opts.webhookUrl);
|
|
383
|
-
if (existing) {
|
|
384
|
-
const hasSecret = Boolean((0, secrets_1.readEnvFile)(webhookFile)?.ATLAS_WEBHOOK_SECRET);
|
|
385
|
-
record.webhook = { id: existing.id, url: existing.url, secret_file: hasSecret ? webhookFile : null };
|
|
386
|
-
log(`Found webhook endpoint ${existing.id}.`);
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
assertFreeForNewSecret(webhookFile, opts.force);
|
|
390
|
-
const h = await api.post('/v1/webhook_endpoints', { url: opts.webhookUrl });
|
|
391
|
-
if (h.secret) {
|
|
392
|
-
(0, secrets_1.writeSecretFile)(dir, `${env}-webhook.env`, { ATLAS_WEBHOOK_SECRET: h.secret }, {
|
|
393
|
-
force: opts.force,
|
|
394
|
-
comment: `Signing secret for webhook endpoint ${h.id} (${opts.webhookUrl}).`,
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
record.webhook = { id: h.id, url: h.url, secret_file: h.secret ? webhookFile : null };
|
|
398
|
-
log(`Created webhook endpoint ${h.id}. Signing secret written to ${webhookFile}.`);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
// --- 7. public endpoints, manifest, summary ----------------------------------
|
|
402
|
-
const inst = await api.get('/v1/instance').catch(() => undefined);
|
|
403
|
-
const host = inst?.frontend_api_host ?? app.frontend_api_host;
|
|
404
|
-
const base = host ? `https://${host}` : null;
|
|
405
|
-
record.publishable_key = inst?.publishable_key ?? app.publishable_key;
|
|
406
|
-
record.frontend_api_host = host ?? null;
|
|
407
|
-
record.issuer = inst?.issuer ?? app.issuer ?? base;
|
|
408
|
-
record.discovery_url = inst?.discovery_url ?? app.discovery_url ?? (record.issuer ? `${record.issuer}/.well-known/openid-configuration` : null);
|
|
409
|
-
record.jwks_uri = inst?.jwks_uri ?? app.jwks_uri ?? (base ? `${base}/.well-known/jwks.json` : null);
|
|
410
|
-
const manifest = {
|
|
411
|
-
product: opts.product,
|
|
412
|
-
api_url: platform.apiUrl,
|
|
413
|
-
instances: { ...(previous?.instances ?? {}), [env]: record },
|
|
414
|
-
};
|
|
415
|
-
const manifestFile = (0, project_1.writeManifest)(ctx.env, manifest);
|
|
416
|
-
if (json) {
|
|
417
|
-
(0, output_1.printJson)(ctx.io, { created, manifest: manifestFile, ...record });
|
|
418
|
-
return 0;
|
|
419
|
-
}
|
|
420
|
-
ctx.io.out('');
|
|
421
|
-
ctx.io.out(`Done. ${created ? 'Created' : 'Updated'} ${opts.appName} (${env}).`);
|
|
422
|
-
ctx.io.out(` Instance: ${record.instance_id}`);
|
|
423
|
-
ctx.io.out(` Publishable key: ${record.publishable_key}`);
|
|
424
|
-
ctx.io.out(` Frontend API: ${base ?? '(not assigned)'}`);
|
|
425
|
-
ctx.io.out(` Issuer: ${record.issuer ?? '(unknown)'}`);
|
|
426
|
-
ctx.io.out(` Discovery: ${record.discovery_url ?? '(unknown)'}`);
|
|
427
|
-
if (record.oauth_client)
|
|
428
|
-
ctx.io.out(` OAuth client id: ${record.oauth_client.client_id}`);
|
|
429
|
-
ctx.io.out(` Secret key file: ${secretFile}`);
|
|
430
|
-
if (record.oauth_client?.secret_file)
|
|
431
|
-
ctx.io.out(` Client secret file: ${record.oauth_client.secret_file}`);
|
|
432
|
-
if (record.webhook?.secret_file)
|
|
433
|
-
ctx.io.out(` Webhook secret file: ${record.webhook.secret_file}`);
|
|
434
|
-
ctx.io.out(` Project manifest: ${manifestFile}`);
|
|
435
|
-
ctx.io.out(`Next: atlas preflight --product ${opts.product} --instance-env ${env}, and atlas env --product ${opts.product} --format dotenv`);
|
|
436
|
-
return 0;
|
|
437
|
-
}
|
|
438
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type ParsedArgs } from '../args';
|
|
2
|
-
import type { RunContext } from '../context';
|
|
3
|
-
/**
|
|
4
|
-
* `atlas integrations list | get <id> | set <id> | remove <id> | deliveries <id>`:
|
|
5
|
-
* identity integrations — the presets (chatly, forumulate, cookiemunch,
|
|
6
|
-
* referalli) and custom ones — with their health and delivery log.
|
|
7
|
-
*/
|
|
8
|
-
export declare function integrations(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.integrations = integrations;
|
|
4
|
-
const args_1 = require("../args");
|
|
5
|
-
const errors_1 = require("../errors");
|
|
6
|
-
const output_1 = require("../output");
|
|
7
|
-
const project_1 = require("../project");
|
|
8
|
-
const shared_1 = require("./shared");
|
|
9
|
-
const COLUMNS = [
|
|
10
|
-
{ header: 'ID', get: (i) => i.id },
|
|
11
|
-
{ header: 'NAME', get: (i) => i.name ?? i.id },
|
|
12
|
-
{ header: 'STATUS', get: (i) => (i.connected ? (i.enabled ? 'on' : 'off') : 'not connected') },
|
|
13
|
-
{ header: 'AUDIENCE', get: (i) => i.audience ?? '' },
|
|
14
|
-
{ header: 'LAST MINT', get: (i) => (i.health?.last_minted_at ? (0, output_1.fmtTime)(i.health.last_minted_at) : '') },
|
|
15
|
-
{ header: 'REFUSED 24H', get: (i) => i.health?.verify_errors_24h ?? '' },
|
|
16
|
-
];
|
|
17
|
-
const DELIVERY_COLUMNS = [
|
|
18
|
-
{ header: 'WHEN', get: (d) => (0, output_1.fmtTime)(d.created_at) },
|
|
19
|
-
{ header: 'KIND', get: (d) => (d.kind === 'event' ? (d.event_type ?? 'event') : 'back-channel logout') },
|
|
20
|
-
{ header: 'STATUS', get: (d) => d.status },
|
|
21
|
-
{ header: 'HTTP', get: (d) => d.http_status ?? '' },
|
|
22
|
-
{ header: 'ERROR', get: (d) => d.error ?? '' },
|
|
23
|
-
{ header: 'TRACE', get: (d) => d.trace_id ?? '' },
|
|
24
|
-
];
|
|
25
|
-
/** A URL flag: absent = unchanged (preset default), "none" = null (no receiver). */
|
|
26
|
-
const urlFlag = (v) => (v === undefined ? undefined : v === 'none' ? null : v);
|
|
27
|
-
/**
|
|
28
|
-
* `atlas integrations list | get <id> | set <id> | remove <id> | deliveries <id>`:
|
|
29
|
-
* identity integrations — the presets (chatly, forumulate, cookiemunch,
|
|
30
|
-
* referalli) and custom ones — with their health and delivery log.
|
|
31
|
-
*/
|
|
32
|
-
async function integrations(ctx, args) {
|
|
33
|
-
const sub = args.positionals[1];
|
|
34
|
-
const id = args.positionals[2];
|
|
35
|
-
const json = (0, shared_1.wantsJson)(args.values);
|
|
36
|
-
const http = () => {
|
|
37
|
-
const auth = (0, shared_1.resolveAuth)(ctx, args.values);
|
|
38
|
-
return (0, project_1.httpFor)(ctx, { secretKey: auth.secretKey, apiUrl: auth.apiUrl });
|
|
39
|
-
};
|
|
40
|
-
const path = (i, rest = '') => `/v1/instance/integrations/${encodeURIComponent(i)}${rest}`;
|
|
41
|
-
const needId = () => {
|
|
42
|
-
if (!id)
|
|
43
|
-
throw new errors_1.CliError(`integrations ${sub} needs an integration id (a preset such as chatly, or your own id).`);
|
|
44
|
-
return id;
|
|
45
|
-
};
|
|
46
|
-
switch (sub) {
|
|
47
|
-
case 'list': {
|
|
48
|
-
const page = await http().get('/v1/instance/integrations');
|
|
49
|
-
if (json)
|
|
50
|
-
(0, output_1.printJson)(ctx.io, page);
|
|
51
|
-
else
|
|
52
|
-
ctx.io.out((0, output_1.renderTable)(COLUMNS, page.data));
|
|
53
|
-
return 0;
|
|
54
|
-
}
|
|
55
|
-
case 'get': {
|
|
56
|
-
(0, output_1.printJson)(ctx.io, await http().get(path(needId())));
|
|
57
|
-
return 0;
|
|
58
|
-
}
|
|
59
|
-
case 'set': {
|
|
60
|
-
const target = needId();
|
|
61
|
-
const body = {};
|
|
62
|
-
const audience = (0, args_1.str)(args.values, 'audience');
|
|
63
|
-
if (audience)
|
|
64
|
-
body.audience = audience;
|
|
65
|
-
const name = (0, args_1.str)(args.values, 'name');
|
|
66
|
-
if (name)
|
|
67
|
-
body.name = name;
|
|
68
|
-
const events = urlFlag((0, args_1.str)(args.values, 'events-url'));
|
|
69
|
-
if (events !== undefined)
|
|
70
|
-
body.events_url = events;
|
|
71
|
-
const bcl = urlFlag((0, args_1.str)(args.values, 'backchannel-logout-url'));
|
|
72
|
-
if (bcl !== undefined)
|
|
73
|
-
body.backchannel_logout_url = bcl;
|
|
74
|
-
const oauthClient = urlFlag((0, args_1.str)(args.values, 'oauth-client-id'));
|
|
75
|
-
if (oauthClient !== undefined)
|
|
76
|
-
body.oauth_client_id = oauthClient;
|
|
77
|
-
if (args.values.disable === true)
|
|
78
|
-
body.enabled = false;
|
|
79
|
-
if (Object.keys(body).length === 0)
|
|
80
|
-
throw new errors_1.CliError('integrations set needs --audience (and --name for a custom integration), or --disable.');
|
|
81
|
-
const saved = await http().put(path(target, args.values['dry-run'] === true ? '?dry_run=true' : ''), body);
|
|
82
|
-
if (json)
|
|
83
|
-
(0, output_1.printJson)(ctx.io, saved);
|
|
84
|
-
else
|
|
85
|
-
ctx.io.out(`${saved.dry_run ? 'Would save' : 'Saved'} ${saved.id}: ${saved.enabled ? 'on' : 'off'}, audience ${saved.audience}. In your app: getToken({ for: '${saved.id}' }).`);
|
|
86
|
-
return 0;
|
|
87
|
-
}
|
|
88
|
-
case 'remove': {
|
|
89
|
-
const target = needId();
|
|
90
|
-
await http().delete(path(target));
|
|
91
|
-
if (json)
|
|
92
|
-
(0, output_1.printJson)(ctx.io, { id: target, removed: true });
|
|
93
|
-
else
|
|
94
|
-
ctx.io.out(`Removed ${target}.`);
|
|
95
|
-
return 0;
|
|
96
|
-
}
|
|
97
|
-
case 'deliveries': {
|
|
98
|
-
const trace = (0, args_1.str)(args.values, 'trace');
|
|
99
|
-
const page = await http().get(path(needId(), `/deliveries${trace ? `?trace=${encodeURIComponent(trace)}` : ''}`));
|
|
100
|
-
if (json)
|
|
101
|
-
(0, output_1.printJson)(ctx.io, page);
|
|
102
|
-
else
|
|
103
|
-
ctx.io.out((0, output_1.renderTable)(DELIVERY_COLUMNS, page.data));
|
|
104
|
-
return 0;
|
|
105
|
-
}
|
|
106
|
-
default:
|
|
107
|
-
throw new errors_1.CliError(sub
|
|
108
|
-
? `Unknown subcommand 'integrations ${sub}'. Try: list, get, set, remove, deliveries.`
|
|
109
|
-
: 'integrations needs a subcommand: list, get, set, remove, deliveries.');
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=integrations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/commands/integrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type ParsedArgs } from '../args';
|
|
2
|
-
import type { RunContext } from '../context';
|
|
3
|
-
/** Parse a Server-Sent Events byte stream into `{event, id, data}` messages. */
|
|
4
|
-
export declare function readSse(body: ReadableStream<Uint8Array>): AsyncGenerator<{
|
|
5
|
-
event: string;
|
|
6
|
-
id?: string;
|
|
7
|
-
data: string;
|
|
8
|
-
}>;
|
|
9
|
-
/**
|
|
10
|
-
* `atlas listen --forward-to <url> [--events user.*,session.created]`: the
|
|
11
|
-
* Stripe-CLI pattern for local webhook development. Opens a signed event
|
|
12
|
-
* stream from the instance, POSTs each event to your local server with the
|
|
13
|
-
* normal `atlas-id` / `atlas-timestamp` / `atlas-signature` headers, and
|
|
14
|
-
* prints what your server answered. The signing secret is for this session
|
|
15
|
-
* only and is written to a 0600 file; point your verifier at it.
|
|
16
|
-
*/
|
|
17
|
-
export declare function listen(ctx: RunContext, args: ParsedArgs): Promise<number>;
|