workos 0.19.0 → 0.20.2
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/README.md +4 -646
- package/bin/workos.js +44 -0
- package/package.json +18 -99
- package/LICENSE +0 -47
- package/dist/bin.d.ts +0 -2
- package/dist/bin.js +0 -1790
- package/dist/bin.js.map +0 -1
- package/dist/cli.config.d.ts +0 -88
- package/dist/cli.config.js +0 -110
- package/dist/cli.config.js.map +0 -1
- package/dist/commands/api/catalog.d.ts +0 -23
- package/dist/commands/api/catalog.js +0 -97
- package/dist/commands/api/catalog.js.map +0 -1
- package/dist/commands/api/format.d.ts +0 -5
- package/dist/commands/api/format.js +0 -46
- package/dist/commands/api/format.js.map +0 -1
- package/dist/commands/api/index.d.ts +0 -15
- package/dist/commands/api/index.js +0 -213
- package/dist/commands/api/index.js.map +0 -1
- package/dist/commands/api/interactive.d.ts +0 -3
- package/dist/commands/api/interactive.js +0 -133
- package/dist/commands/api/interactive.js.map +0 -1
- package/dist/commands/api/request.d.ts +0 -14
- package/dist/commands/api/request.js +0 -38
- package/dist/commands/api/request.js.map +0 -1
- package/dist/commands/api-key-mgmt.d.ts +0 -16
- package/dist/commands/api-key-mgmt.js +0 -96
- package/dist/commands/api-key-mgmt.js.map +0 -1
- package/dist/commands/audit-log.d.ts +0 -26
- package/dist/commands/audit-log.js +0 -155
- package/dist/commands/audit-log.js.map +0 -1
- package/dist/commands/auth-status.d.ts +0 -1
- package/dist/commands/auth-status.js +0 -57
- package/dist/commands/auth-status.js.map +0 -1
- package/dist/commands/claim.d.ts +0 -11
- package/dist/commands/claim.js +0 -143
- package/dist/commands/claim.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.js +0 -54
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/connection.d.ts +0 -13
- package/dist/commands/connection.js +0 -96
- package/dist/commands/connection.js.map +0 -1
- package/dist/commands/debug-sso.d.ts +0 -1
- package/dist/commands/debug-sso.js +0 -78
- package/dist/commands/debug-sso.js.map +0 -1
- package/dist/commands/debug-sync.d.ts +0 -1
- package/dist/commands/debug-sync.js +0 -102
- package/dist/commands/debug-sync.js.map +0 -1
- package/dist/commands/debug.d.ts +0 -28
- package/dist/commands/debug.js +0 -406
- package/dist/commands/debug.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -22
- package/dist/commands/dev.js +0 -145
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/directory.d.ts +0 -27
- package/dist/commands/directory.js +0 -176
- package/dist/commands/directory.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -12
- package/dist/commands/doctor.js +0 -41
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/emulate.d.ts +0 -7
- package/dist/commands/emulate.js +0 -69
- package/dist/commands/emulate.js.map +0 -1
- package/dist/commands/env.d.ts +0 -19
- package/dist/commands/env.js +0 -303
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/event.d.ts +0 -9
- package/dist/commands/event.js +0 -43
- package/dist/commands/event.js.map +0 -1
- package/dist/commands/feature-flag.d.ts +0 -12
- package/dist/commands/feature-flag.js +0 -96
- package/dist/commands/feature-flag.js.map +0 -1
- package/dist/commands/install-skill.d.ts +0 -85
- package/dist/commands/install-skill.js +0 -332
- package/dist/commands/install-skill.js.map +0 -1
- package/dist/commands/install.d.ts +0 -6
- package/dist/commands/install.js +0 -51
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/invitation.d.ts +0 -19
- package/dist/commands/invitation.js +0 -94
- package/dist/commands/invitation.js.map +0 -1
- package/dist/commands/list-skills.d.ts +0 -4
- package/dist/commands/list-skills.js +0 -52
- package/dist/commands/list-skills.js.map +0 -1
- package/dist/commands/login.d.ts +0 -32
- package/dist/commands/login.js +0 -239
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -1
- package/dist/commands/logout.js +0 -17
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/mcp.d.ts +0 -14
- package/dist/commands/mcp.js +0 -99
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/membership.d.ts +0 -20
- package/dist/commands/membership.js +0 -129
- package/dist/commands/membership.js.map +0 -1
- package/dist/commands/migrations.d.ts +0 -2
- package/dist/commands/migrations.js +0 -50
- package/dist/commands/migrations.js.map +0 -1
- package/dist/commands/onboard-user.d.ts +0 -7
- package/dist/commands/onboard-user.js +0 -61
- package/dist/commands/onboard-user.js.map +0 -1
- package/dist/commands/org-domain.d.ts +0 -4
- package/dist/commands/org-domain.js +0 -45
- package/dist/commands/org-domain.js.map +0 -1
- package/dist/commands/organization.d.ts +0 -14
- package/dist/commands/organization.js +0 -103
- package/dist/commands/organization.js.map +0 -1
- package/dist/commands/permission.d.ts +0 -20
- package/dist/commands/permission.js +0 -93
- package/dist/commands/permission.js.map +0 -1
- package/dist/commands/portal.d.ts +0 -7
- package/dist/commands/portal.js +0 -26
- package/dist/commands/portal.js.map +0 -1
- package/dist/commands/role.d.ts +0 -17
- package/dist/commands/role.js +0 -122
- package/dist/commands/role.js.map +0 -1
- package/dist/commands/seed.d.ts +0 -6
- package/dist/commands/seed.js +0 -298
- package/dist/commands/seed.js.map +0 -1
- package/dist/commands/session.d.ts +0 -8
- package/dist/commands/session.js +0 -63
- package/dist/commands/session.js.map +0 -1
- package/dist/commands/setup-org.d.ts +0 -6
- package/dist/commands/setup-org.js +0 -99
- package/dist/commands/setup-org.js.map +0 -1
- package/dist/commands/setup.d.ts +0 -50
- package/dist/commands/setup.js +0 -237
- package/dist/commands/setup.js.map +0 -1
- package/dist/commands/telemetry.d.ts +0 -3
- package/dist/commands/telemetry.js +0 -88
- package/dist/commands/telemetry.js.map +0 -1
- package/dist/commands/uninstall-skill.d.ts +0 -11
- package/dist/commands/uninstall-skill.js +0 -117
- package/dist/commands/uninstall-skill.js.map +0 -1
- package/dist/commands/user.d.ts +0 -19
- package/dist/commands/user.js +0 -92
- package/dist/commands/user.js.map +0 -1
- package/dist/commands/vault-run.d.ts +0 -13
- package/dist/commands/vault-run.js +0 -195
- package/dist/commands/vault-run.js.map +0 -1
- package/dist/commands/vault.d.ts +0 -25
- package/dist/commands/vault.js +0 -153
- package/dist/commands/vault.js.map +0 -1
- package/dist/commands/verify-login.d.ts +0 -25
- package/dist/commands/verify-login.js +0 -158
- package/dist/commands/verify-login.js.map +0 -1
- package/dist/commands/webhook.d.ts +0 -3
- package/dist/commands/webhook.js +0 -92
- package/dist/commands/webhook.js.map +0 -1
- package/dist/craft-pre-release.sh +0 -10
- package/dist/dashboard/components/AnimatedLogo.d.ts +0 -8
- package/dist/dashboard/components/AnimatedLogo.js +0 -16
- package/dist/dashboard/components/AnimatedLogo.js.map +0 -1
- package/dist/dashboard/components/CompletionView.d.ts +0 -13
- package/dist/dashboard/components/CompletionView.js +0 -25
- package/dist/dashboard/components/CompletionView.js.map +0 -1
- package/dist/dashboard/components/ConfirmPrompt.d.ts +0 -9
- package/dist/dashboard/components/ConfirmPrompt.js +0 -25
- package/dist/dashboard/components/ConfirmPrompt.js.map +0 -1
- package/dist/dashboard/components/CredentialsForm.d.ts +0 -10
- package/dist/dashboard/components/CredentialsForm.js +0 -47
- package/dist/dashboard/components/CredentialsForm.js.map +0 -1
- package/dist/dashboard/components/Dashboard.d.ts +0 -3
- package/dist/dashboard/components/Dashboard.js +0 -100
- package/dist/dashboard/components/Dashboard.js.map +0 -1
- package/dist/dashboard/components/DashboardLayout.d.ts +0 -24
- package/dist/dashboard/components/DashboardLayout.js +0 -25
- package/dist/dashboard/components/DashboardLayout.js.map +0 -1
- package/dist/dashboard/components/DiffPanel.d.ts +0 -9
- package/dist/dashboard/components/DiffPanel.js +0 -136
- package/dist/dashboard/components/DiffPanel.js.map +0 -1
- package/dist/dashboard/components/InlinePrompt.d.ts +0 -8
- package/dist/dashboard/components/InlinePrompt.js +0 -19
- package/dist/dashboard/components/InlinePrompt.js.map +0 -1
- package/dist/dashboard/components/OutputPanel.d.ts +0 -10
- package/dist/dashboard/components/OutputPanel.js +0 -100
- package/dist/dashboard/components/OutputPanel.js.map +0 -1
- package/dist/dashboard/components/Panel.d.ts +0 -12
- package/dist/dashboard/components/Panel.js +0 -6
- package/dist/dashboard/components/Panel.js.map +0 -1
- package/dist/dashboard/components/TextInput.d.ts +0 -13
- package/dist/dashboard/components/TextInput.js +0 -57
- package/dist/dashboard/components/TextInput.js.map +0 -1
- package/dist/dashboard/components/WelcomeArt.d.ts +0 -2
- package/dist/dashboard/components/WelcomeArt.js +0 -9
- package/dist/dashboard/components/WelcomeArt.js.map +0 -1
- package/dist/dashboard/hooks/useAnimation.d.ts +0 -7
- package/dist/dashboard/hooks/useAnimation.js +0 -24
- package/dist/dashboard/hooks/useAnimation.js.map +0 -1
- package/dist/dashboard/hooks/useKeyboard.d.ts +0 -8
- package/dist/dashboard/hooks/useKeyboard.js +0 -18
- package/dist/dashboard/hooks/useKeyboard.js.map +0 -1
- package/dist/dashboard/hooks/useTerminalSize.d.ts +0 -8
- package/dist/dashboard/hooks/useTerminalSize.js +0 -23
- package/dist/dashboard/hooks/useTerminalSize.js.map +0 -1
- package/dist/dashboard/index.d.ts +0 -6
- package/dist/dashboard/index.js +0 -36
- package/dist/dashboard/index.js.map +0 -1
- package/dist/dashboard/lib/diff-utils.d.ts +0 -21
- package/dist/dashboard/lib/diff-utils.js +0 -271
- package/dist/dashboard/lib/diff-utils.js.map +0 -1
- package/dist/dashboard/lib/logo-frames.d.ts +0 -20
- package/dist/dashboard/lib/logo-frames.js +0 -109
- package/dist/dashboard/lib/logo-frames.js.map +0 -1
- package/dist/dashboard/lib/welcome-art.d.ts +0 -1
- package/dist/dashboard/lib/welcome-art.js +0 -5
- package/dist/dashboard/lib/welcome-art.js.map +0 -1
- package/dist/dashboard/types.d.ts +0 -5
- package/dist/dashboard/types.js +0 -2
- package/dist/dashboard/types.js.map +0 -1
- package/dist/doctor/agent-prompt.d.ts +0 -10
- package/dist/doctor/agent-prompt.js +0 -190
- package/dist/doctor/agent-prompt.js.map +0 -1
- package/dist/doctor/checks/ai-analysis.d.ts +0 -9
- package/dist/doctor/checks/ai-analysis.js +0 -124
- package/dist/doctor/checks/ai-analysis.js.map +0 -1
- package/dist/doctor/checks/auth-patterns.d.ts +0 -2
- package/dist/doctor/checks/auth-patterns.js +0 -569
- package/dist/doctor/checks/auth-patterns.js.map +0 -1
- package/dist/doctor/checks/connectivity.d.ts +0 -2
- package/dist/doctor/checks/connectivity.js +0 -35
- package/dist/doctor/checks/connectivity.js.map +0 -1
- package/dist/doctor/checks/dashboard.d.ts +0 -3
- package/dist/doctor/checks/dashboard.js +0 -123
- package/dist/doctor/checks/dashboard.js.map +0 -1
- package/dist/doctor/checks/environment.d.ts +0 -2
- package/dist/doctor/checks/environment.js +0 -86
- package/dist/doctor/checks/environment.js.map +0 -1
- package/dist/doctor/checks/framework.d.ts +0 -2
- package/dist/doctor/checks/framework.js +0 -94
- package/dist/doctor/checks/framework.js.map +0 -1
- package/dist/doctor/checks/host-execution.d.ts +0 -2
- package/dist/doctor/checks/host-execution.js +0 -21
- package/dist/doctor/checks/host-execution.js.map +0 -1
- package/dist/doctor/checks/language.d.ts +0 -6
- package/dist/doctor/checks/language.js +0 -104
- package/dist/doctor/checks/language.js.map +0 -1
- package/dist/doctor/checks/mcp.d.ts +0 -15
- package/dist/doctor/checks/mcp.js +0 -34
- package/dist/doctor/checks/mcp.js.map +0 -1
- package/dist/doctor/checks/runtime.d.ts +0 -2
- package/dist/doctor/checks/runtime.js +0 -20
- package/dist/doctor/checks/runtime.js.map +0 -1
- package/dist/doctor/checks/sdk.d.ts +0 -2
- package/dist/doctor/checks/sdk.js +0 -192
- package/dist/doctor/checks/sdk.js.map +0 -1
- package/dist/doctor/checks/skills.d.ts +0 -9
- package/dist/doctor/checks/skills.js +0 -84
- package/dist/doctor/checks/skills.js.map +0 -1
- package/dist/doctor/clipboard.d.ts +0 -1
- package/dist/doctor/clipboard.js +0 -43
- package/dist/doctor/clipboard.js.map +0 -1
- package/dist/doctor/index.d.ts +0 -26
- package/dist/doctor/index.js +0 -182
- package/dist/doctor/index.js.map +0 -1
- package/dist/doctor/issues.d.ts +0 -63
- package/dist/doctor/issues.js +0 -199
- package/dist/doctor/issues.js.map +0 -1
- package/dist/doctor/json-output.d.ts +0 -2
- package/dist/doctor/json-output.js +0 -4
- package/dist/doctor/json-output.js.map +0 -1
- package/dist/doctor/output.d.ts +0 -7
- package/dist/doctor/output.js +0 -289
- package/dist/doctor/output.js.map +0 -1
- package/dist/doctor/types.d.ts +0 -203
- package/dist/doctor/types.js +0 -2
- package/dist/doctor/types.js.map +0 -1
- package/dist/integrations/dotnet/index.d.ts +0 -8
- package/dist/integrations/dotnet/index.js +0 -170
- package/dist/integrations/dotnet/index.js.map +0 -1
- package/dist/integrations/elixir/index.d.ts +0 -8
- package/dist/integrations/elixir/index.js +0 -146
- package/dist/integrations/elixir/index.js.map +0 -1
- package/dist/integrations/go/index.d.ts +0 -11
- package/dist/integrations/go/index.js +0 -212
- package/dist/integrations/go/index.js.map +0 -1
- package/dist/integrations/kotlin/index.d.ts +0 -4
- package/dist/integrations/kotlin/index.js +0 -78
- package/dist/integrations/kotlin/index.js.map +0 -1
- package/dist/integrations/nextjs/index.d.ts +0 -4
- package/dist/integrations/nextjs/index.js +0 -93
- package/dist/integrations/nextjs/index.js.map +0 -1
- package/dist/integrations/nextjs/utils.d.ts +0 -8
- package/dist/integrations/nextjs/utils.js +0 -68
- package/dist/integrations/nextjs/utils.js.map +0 -1
- package/dist/integrations/node/index.d.ts +0 -4
- package/dist/integrations/node/index.js +0 -52
- package/dist/integrations/node/index.js.map +0 -1
- package/dist/integrations/php/index.d.ts +0 -4
- package/dist/integrations/php/index.js +0 -51
- package/dist/integrations/php/index.js.map +0 -1
- package/dist/integrations/php-laravel/index.d.ts +0 -4
- package/dist/integrations/php-laravel/index.js +0 -51
- package/dist/integrations/php-laravel/index.js.map +0 -1
- package/dist/integrations/python/index.d.ts +0 -9
- package/dist/integrations/python/index.js +0 -249
- package/dist/integrations/python/index.js.map +0 -1
- package/dist/integrations/react/index.d.ts +0 -4
- package/dist/integrations/react/index.js +0 -49
- package/dist/integrations/react/index.js.map +0 -1
- package/dist/integrations/react-router/index.d.ts +0 -4
- package/dist/integrations/react-router/index.js +0 -94
- package/dist/integrations/react-router/index.js.map +0 -1
- package/dist/integrations/react-router/utils.d.ts +0 -10
- package/dist/integrations/react-router/utils.js +0 -162
- package/dist/integrations/react-router/utils.js.map +0 -1
- package/dist/integrations/ruby/index.d.ts +0 -8
- package/dist/integrations/ruby/index.js +0 -137
- package/dist/integrations/ruby/index.js.map +0 -1
- package/dist/integrations/sveltekit/index.d.ts +0 -4
- package/dist/integrations/sveltekit/index.js +0 -50
- package/dist/integrations/sveltekit/index.js.map +0 -1
- package/dist/integrations/tanstack-start/index.d.ts +0 -4
- package/dist/integrations/tanstack-start/index.js +0 -51
- package/dist/integrations/tanstack-start/index.js.map +0 -1
- package/dist/integrations/vanilla-js/index.d.ts +0 -4
- package/dist/integrations/vanilla-js/index.js +0 -49
- package/dist/integrations/vanilla-js/index.js.map +0 -1
- package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.d.ts +0 -7
- package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js +0 -12
- package/dist/lib/__test-helpers__/mock-unclaimed-env-api-error.js.map +0 -1
- package/dist/lib/adapters/cli-adapter.d.ts +0 -113
- package/dist/lib/adapters/cli-adapter.js +0 -641
- package/dist/lib/adapters/cli-adapter.js.map +0 -1
- package/dist/lib/adapters/dashboard-adapter.d.ts +0 -34
- package/dist/lib/adapters/dashboard-adapter.js +0 -121
- package/dist/lib/adapters/dashboard-adapter.js.map +0 -1
- package/dist/lib/adapters/headless-adapter.d.ts +0 -80
- package/dist/lib/adapters/headless-adapter.js +0 -347
- package/dist/lib/adapters/headless-adapter.js.map +0 -1
- package/dist/lib/adapters/index.d.ts +0 -4
- package/dist/lib/adapters/index.js +0 -4
- package/dist/lib/adapters/index.js.map +0 -1
- package/dist/lib/adapters/types.d.ts +0 -41
- package/dist/lib/adapters/types.js +0 -2
- package/dist/lib/adapters/types.js.map +0 -1
- package/dist/lib/agent-interface.d.ts +0 -84
- package/dist/lib/agent-interface.js +0 -840
- package/dist/lib/agent-interface.js.map +0 -1
- package/dist/lib/agent-runner.d.ts +0 -9
- package/dist/lib/agent-runner.js +0 -261
- package/dist/lib/agent-runner.js.map +0 -1
- package/dist/lib/ai-content.d.ts +0 -14
- package/dist/lib/ai-content.js +0 -131
- package/dist/lib/ai-content.js.map +0 -1
- package/dist/lib/api-error-handler.d.ts +0 -18
- package/dist/lib/api-error-handler.js +0 -76
- package/dist/lib/api-error-handler.js.map +0 -1
- package/dist/lib/api-key.d.ts +0 -14
- package/dist/lib/api-key.js +0 -37
- package/dist/lib/api-key.js.map +0 -1
- package/dist/lib/api.d.ts +0 -25
- package/dist/lib/api.js +0 -120
- package/dist/lib/api.js.map +0 -1
- package/dist/lib/background-refresh.d.ts +0 -29
- package/dist/lib/background-refresh.js +0 -95
- package/dist/lib/background-refresh.js.map +0 -1
- package/dist/lib/command-aliases.d.ts +0 -8
- package/dist/lib/command-aliases.js +0 -12
- package/dist/lib/command-aliases.js.map +0 -1
- package/dist/lib/completion-data.d.ts +0 -33
- package/dist/lib/completion-data.js +0 -33
- package/dist/lib/completion-data.js.map +0 -1
- package/dist/lib/config-store.d.ts +0 -63
- package/dist/lib/config-store.js +0 -293
- package/dist/lib/config-store.js.map +0 -1
- package/dist/lib/config.d.ts +0 -34
- package/dist/lib/config.js +0 -37
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/constants.d.ts +0 -51
- package/dist/lib/constants.js +0 -50
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/credential-discovery.d.ts +0 -42
- package/dist/lib/credential-discovery.js +0 -100
- package/dist/lib/credential-discovery.js.map +0 -1
- package/dist/lib/credential-proxy.d.ts +0 -45
- package/dist/lib/credential-proxy.js +0 -364
- package/dist/lib/credential-proxy.js.map +0 -1
- package/dist/lib/credential-store.d.ts +0 -32
- package/dist/lib/credential-store.js +0 -236
- package/dist/lib/credential-store.js.map +0 -1
- package/dist/lib/credentials.d.ts +0 -13
- package/dist/lib/credentials.js +0 -34
- package/dist/lib/credentials.js.map +0 -1
- package/dist/lib/dev-command.d.ts +0 -26
- package/dist/lib/dev-command.js +0 -129
- package/dist/lib/dev-command.js.map +0 -1
- package/dist/lib/device-auth.d.ts +0 -48
- package/dist/lib/device-auth.js +0 -176
- package/dist/lib/device-auth.js.map +0 -1
- package/dist/lib/device-id.d.ts +0 -25
- package/dist/lib/device-id.js +0 -102
- package/dist/lib/device-id.js.map +0 -1
- package/dist/lib/ensure-auth.d.ts +0 -12
- package/dist/lib/ensure-auth.js +0 -111
- package/dist/lib/ensure-auth.js.map +0 -1
- package/dist/lib/env-writer.d.ts +0 -25
- package/dist/lib/env-writer.js +0 -90
- package/dist/lib/env-writer.js.map +0 -1
- package/dist/lib/events.d.ts +0 -248
- package/dist/lib/events.js +0 -19
- package/dist/lib/events.js.map +0 -1
- package/dist/lib/framework-config.d.ts +0 -133
- package/dist/lib/framework-config.js +0 -11
- package/dist/lib/framework-config.js.map +0 -1
- package/dist/lib/helper-functions.d.ts +0 -1
- package/dist/lib/helper-functions.js +0 -2
- package/dist/lib/helper-functions.js.map +0 -1
- package/dist/lib/host-probe.d.ts +0 -28
- package/dist/lib/host-probe.js +0 -154
- package/dist/lib/host-probe.js.map +0 -1
- package/dist/lib/installer-core.d.ts +0 -569
- package/dist/lib/installer-core.js +0 -1134
- package/dist/lib/installer-core.js.map +0 -1
- package/dist/lib/installer-core.types.d.ts +0 -162
- package/dist/lib/installer-core.types.js +0 -2
- package/dist/lib/installer-core.types.js.map +0 -1
- package/dist/lib/mcp-clients.d.ts +0 -45
- package/dist/lib/mcp-clients.js +0 -297
- package/dist/lib/mcp-clients.js.map +0 -1
- package/dist/lib/port-detection.d.ts +0 -7
- package/dist/lib/port-detection.js +0 -244
- package/dist/lib/port-detection.js.map +0 -1
- package/dist/lib/post-install.d.ts +0 -8
- package/dist/lib/post-install.js +0 -51
- package/dist/lib/post-install.js.map +0 -1
- package/dist/lib/preferences.d.ts +0 -143
- package/dist/lib/preferences.js +0 -227
- package/dist/lib/preferences.js.map +0 -1
- package/dist/lib/progress-tracker.d.ts +0 -22
- package/dist/lib/progress-tracker.js +0 -47
- package/dist/lib/progress-tracker.js.map +0 -1
- package/dist/lib/registry.d.ts +0 -42
- package/dist/lib/registry.js +0 -96
- package/dist/lib/registry.js.map +0 -1
- package/dist/lib/resolve-install-credentials.d.ts +0 -11
- package/dist/lib/resolve-install-credentials.js +0 -53
- package/dist/lib/resolve-install-credentials.js.map +0 -1
- package/dist/lib/run-with-core.d.ts +0 -7
- package/dist/lib/run-with-core.js +0 -559
- package/dist/lib/run-with-core.js.map +0 -1
- package/dist/lib/safe-tools.d.ts +0 -2
- package/dist/lib/safe-tools.js +0 -212
- package/dist/lib/safe-tools.js.map +0 -1
- package/dist/lib/scaffold/index.d.ts +0 -1
- package/dist/lib/scaffold/index.js +0 -2
- package/dist/lib/scaffold/index.js.map +0 -1
- package/dist/lib/scaffold/scaffold.d.ts +0 -66
- package/dist/lib/scaffold/scaffold.js +0 -156
- package/dist/lib/scaffold/scaffold.js.map +0 -1
- package/dist/lib/settings.d.ts +0 -60
- package/dist/lib/settings.js +0 -31
- package/dist/lib/settings.js.map +0 -1
- package/dist/lib/staging-api.d.ts +0 -22
- package/dist/lib/staging-api.js +0 -74
- package/dist/lib/staging-api.js.map +0 -1
- package/dist/lib/startup-notice-gate.d.ts +0 -21
- package/dist/lib/startup-notice-gate.js +0 -29
- package/dist/lib/startup-notice-gate.js.map +0 -1
- package/dist/lib/telemetry-notice.d.ts +0 -25
- package/dist/lib/telemetry-notice.js +0 -58
- package/dist/lib/telemetry-notice.js.map +0 -1
- package/dist/lib/token-refresh-client.d.ts +0 -23
- package/dist/lib/token-refresh-client.js +0 -89
- package/dist/lib/token-refresh-client.js.map +0 -1
- package/dist/lib/token-refresh.d.ts +0 -12
- package/dist/lib/token-refresh.js +0 -27
- package/dist/lib/token-refresh.js.map +0 -1
- package/dist/lib/unclaimed-env-api.d.ts +0 -42
- package/dist/lib/unclaimed-env-api.js +0 -139
- package/dist/lib/unclaimed-env-api.js.map +0 -1
- package/dist/lib/unclaimed-env-provision.d.ts +0 -24
- package/dist/lib/unclaimed-env-provision.js +0 -80
- package/dist/lib/unclaimed-env-provision.js.map +0 -1
- package/dist/lib/unclaimed-warning.d.ts +0 -15
- package/dist/lib/unclaimed-warning.js +0 -78
- package/dist/lib/unclaimed-warning.js.map +0 -1
- package/dist/lib/validation/build-validator.d.ts +0 -21
- package/dist/lib/validation/build-validator.js +0 -153
- package/dist/lib/validation/build-validator.js.map +0 -1
- package/dist/lib/validation/index.d.ts +0 -4
- package/dist/lib/validation/index.js +0 -4
- package/dist/lib/validation/index.js.map +0 -1
- package/dist/lib/validation/quick-checks.d.ts +0 -19
- package/dist/lib/validation/quick-checks.js +0 -192
- package/dist/lib/validation/quick-checks.js.map +0 -1
- package/dist/lib/validation/security-checks.d.ts +0 -35
- package/dist/lib/validation/security-checks.js +0 -106
- package/dist/lib/validation/security-checks.js.map +0 -1
- package/dist/lib/validation/types.d.ts +0 -56
- package/dist/lib/validation/types.js +0 -2
- package/dist/lib/validation/types.js.map +0 -1
- package/dist/lib/validation/validator.d.ts +0 -13
- package/dist/lib/validation/validator.js +0 -711
- package/dist/lib/validation/validator.js.map +0 -1
- package/dist/lib/version-check.d.ts +0 -6
- package/dist/lib/version-check.js +0 -46
- package/dist/lib/version-check.js.map +0 -1
- package/dist/lib/workos-api.d.ts +0 -30
- package/dist/lib/workos-api.js +0 -69
- package/dist/lib/workos-api.js.map +0 -1
- package/dist/lib/workos-client.d.ts +0 -58
- package/dist/lib/workos-client.js +0 -140
- package/dist/lib/workos-client.js.map +0 -1
- package/dist/lib/workos-management.d.ts +0 -32
- package/dist/lib/workos-management.js +0 -149
- package/dist/lib/workos-management.js.map +0 -1
- package/dist/nextjs/nextjs-installer-agent.d.ts +0 -5
- package/dist/nextjs/nextjs-installer-agent.js +0 -6
- package/dist/nextjs/nextjs-installer-agent.js.map +0 -1
- package/dist/nextjs/utils.d.ts +0 -4
- package/dist/nextjs/utils.js +0 -5
- package/dist/nextjs/utils.js.map +0 -1
- package/dist/react/react-installer-agent.d.ts +0 -4
- package/dist/react/react-installer-agent.js +0 -5
- package/dist/react/react-installer-agent.js.map +0 -1
- package/dist/react-router/react-router-installer-agent.d.ts +0 -4
- package/dist/react-router/react-router-installer-agent.js +0 -5
- package/dist/react-router/react-router-installer-agent.js.map +0 -1
- package/dist/react-router/utils.d.ts +0 -4
- package/dist/react-router/utils.js +0 -5
- package/dist/react-router/utils.js.map +0 -1
- package/dist/run.d.ts +0 -33
- package/dist/run.js +0 -58
- package/dist/run.js.map +0 -1
- package/dist/smoke-test.ts +0 -881
- package/dist/steps/add-or-update-environment-variables.d.ts +0 -10
- package/dist/steps/add-or-update-environment-variables.js +0 -155
- package/dist/steps/add-or-update-environment-variables.js.map +0 -1
- package/dist/steps/index.d.ts +0 -3
- package/dist/steps/index.js +0 -4
- package/dist/steps/index.js.map +0 -1
- package/dist/steps/run-prettier.d.ts +0 -5
- package/dist/steps/run-prettier.js +0 -50
- package/dist/steps/run-prettier.js.map +0 -1
- package/dist/steps/upload-environment-variables/EnvironmentProvider.d.ts +0 -8
- package/dist/steps/upload-environment-variables/EnvironmentProvider.js +0 -7
- package/dist/steps/upload-environment-variables/EnvironmentProvider.js.map +0 -1
- package/dist/steps/upload-environment-variables/index.d.ts +0 -6
- package/dist/steps/upload-environment-variables/index.js +0 -69
- package/dist/steps/upload-environment-variables/index.js.map +0 -1
- package/dist/steps/upload-environment-variables/providers/vercel.d.ts +0 -14
- package/dist/steps/upload-environment-variables/providers/vercel.js +0 -107
- package/dist/steps/upload-environment-variables/providers/vercel.js.map +0 -1
- package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +0 -4
- package/dist/tanstack-start/tanstack-start-installer-agent.js +0 -5
- package/dist/tanstack-start/tanstack-start-installer-agent.js.map +0 -1
- package/dist/telemetry.d.ts +0 -2
- package/dist/telemetry.js +0 -29
- package/dist/telemetry.js.map +0 -1
- package/dist/test/force-insecure-storage.d.ts +0 -1
- package/dist/test/force-insecure-storage.js +0 -9
- package/dist/test/force-insecure-storage.js.map +0 -1
- package/dist/test/setup.d.ts +0 -1
- package/dist/test/setup.js +0 -38
- package/dist/test/setup.js.map +0 -1
- package/dist/utils/analytics.d.ts +0 -66
- package/dist/utils/analytics.js +0 -330
- package/dist/utils/analytics.js.map +0 -1
- package/dist/utils/bash.d.ts +0 -2
- package/dist/utils/bash.js +0 -17
- package/dist/utils/bash.js.map +0 -1
- package/dist/utils/box.d.ts +0 -9
- package/dist/utils/box.js +0 -15
- package/dist/utils/box.js.map +0 -1
- package/dist/utils/cli-exit.d.ts +0 -15
- package/dist/utils/cli-exit.js +0 -11
- package/dist/utils/cli-exit.js.map +0 -1
- package/dist/utils/cli-symbols.d.ts +0 -44
- package/dist/utils/cli-symbols.js +0 -58
- package/dist/utils/cli-symbols.js.map +0 -1
- package/dist/utils/command-invocation.d.ts +0 -10
- package/dist/utils/command-invocation.js +0 -26
- package/dist/utils/command-invocation.js.map +0 -1
- package/dist/utils/command-telemetry.d.ts +0 -17
- package/dist/utils/command-telemetry.js +0 -67
- package/dist/utils/command-telemetry.js.map +0 -1
- package/dist/utils/crash-reporter.d.ts +0 -13
- package/dist/utils/crash-reporter.js +0 -91
- package/dist/utils/crash-reporter.js.map +0 -1
- package/dist/utils/debug.d.ts +0 -9
- package/dist/utils/debug.js +0 -105
- package/dist/utils/debug.js.map +0 -1
- package/dist/utils/env-parser.d.ts +0 -5
- package/dist/utils/env-parser.js +0 -18
- package/dist/utils/env-parser.js.map +0 -1
- package/dist/utils/environment.d.ts +0 -10
- package/dist/utils/environment.js +0 -69
- package/dist/utils/environment.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -3
- package/dist/utils/errors.js +0 -7
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/exec-file.d.ts +0 -15
- package/dist/utils/exec-file.js +0 -39
- package/dist/utils/exec-file.js.map +0 -1
- package/dist/utils/exit-codes.d.ts +0 -31
- package/dist/utils/exit-codes.js +0 -69
- package/dist/utils/exit-codes.js.map +0 -1
- package/dist/utils/git-utils.d.ts +0 -23
- package/dist/utils/git-utils.js +0 -86
- package/dist/utils/git-utils.js.map +0 -1
- package/dist/utils/help-json.d.ts +0 -58
- package/dist/utils/help-json.js +0 -1577
- package/dist/utils/help-json.js.map +0 -1
- package/dist/utils/interaction-mode.d.ts +0 -25
- package/dist/utils/interaction-mode.js +0 -99
- package/dist/utils/interaction-mode.js.map +0 -1
- package/dist/utils/lock-art.d.ts +0 -4
- package/dist/utils/lock-art.js +0 -73
- package/dist/utils/lock-art.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -9
- package/dist/utils/logging.js +0 -36
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/ndjson.d.ts +0 -16
- package/dist/utils/ndjson.js +0 -18
- package/dist/utils/ndjson.js.map +0 -1
- package/dist/utils/output.d.ts +0 -60
- package/dist/utils/output.js +0 -124
- package/dist/utils/output.js.map +0 -1
- package/dist/utils/package-json.d.ts +0 -26
- package/dist/utils/package-json.js +0 -32
- package/dist/utils/package-json.js.map +0 -1
- package/dist/utils/package-manager.d.ts +0 -21
- package/dist/utils/package-manager.js +0 -166
- package/dist/utils/package-manager.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -5
- package/dist/utils/paths.js +0 -18
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/platform.d.ts +0 -8
- package/dist/utils/platform.js +0 -7
- package/dist/utils/platform.js.map +0 -1
- package/dist/utils/recovery-hints.d.ts +0 -42
- package/dist/utils/recovery-hints.js +0 -92
- package/dist/utils/recovery-hints.js.map +0 -1
- package/dist/utils/redact.d.ts +0 -5
- package/dist/utils/redact.js +0 -29
- package/dist/utils/redact.js.map +0 -1
- package/dist/utils/register-subcommand.d.ts +0 -10
- package/dist/utils/register-subcommand.js +0 -33
- package/dist/utils/register-subcommand.js.map +0 -1
- package/dist/utils/semver.d.ts +0 -10
- package/dist/utils/semver.js +0 -43
- package/dist/utils/semver.js.map +0 -1
- package/dist/utils/string.d.ts +0 -1
- package/dist/utils/string.js +0 -6
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/summary-box.d.ts +0 -25
- package/dist/utils/summary-box.js +0 -211
- package/dist/utils/summary-box.js.map +0 -1
- package/dist/utils/table.d.ts +0 -5
- package/dist/utils/table.js +0 -18
- package/dist/utils/table.js.map +0 -1
- package/dist/utils/telemetry-client.d.ts +0 -43
- package/dist/utils/telemetry-client.js +0 -171
- package/dist/utils/telemetry-client.js.map +0 -1
- package/dist/utils/telemetry-store-forward.d.ts +0 -11
- package/dist/utils/telemetry-store-forward.js +0 -94
- package/dist/utils/telemetry-store-forward.js.map +0 -1
- package/dist/utils/telemetry-types.d.ts +0 -100
- package/dist/utils/telemetry-types.js +0 -6
- package/dist/utils/telemetry-types.js.map +0 -1
- package/dist/utils/types.d.ts +0 -123
- package/dist/utils/types.js +0 -2
- package/dist/utils/types.js.map +0 -1
- package/dist/utils/ui-utils.d.ts +0 -97
- package/dist/utils/ui-utils.js +0 -449
- package/dist/utils/ui-utils.js.map +0 -1
- package/dist/utils/ui.d.ts +0 -148
- package/dist/utils/ui.js +0 -368
- package/dist/utils/ui.js.map +0 -1
- package/dist/utils/urls.d.ts +0 -13
- package/dist/utils/urls.js +0 -14
- package/dist/utils/urls.js.map +0 -1
- package/dist/utils/vendor/is-unicorn-supported.d.ts +0 -1
- package/dist/utils/vendor/is-unicorn-supported.js +0 -21
- package/dist/utils/vendor/is-unicorn-supported.js.map +0 -1
- package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +0 -4
- package/dist/vanilla-js/vanilla-js-installer-agent.js +0 -5
- package/dist/vanilla-js/vanilla-js-installer-agent.js.map +0 -1
package/dist/commands/claim.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `workos env claim` — claim an unclaimed environment.
|
|
3
|
-
*
|
|
4
|
-
* Reads claim token from active environment, generates a nonce via
|
|
5
|
-
* createClaimNonce(), opens browser to dashboard claim URL, and polls
|
|
6
|
-
* until the environment is claimed.
|
|
7
|
-
*/
|
|
8
|
-
import open from 'open';
|
|
9
|
-
import ui from '../utils/ui.js';
|
|
10
|
-
import { getActiveEnvironment, isUnclaimedEnvironment, markEnvironmentClaimed } from '../lib/config-store.js';
|
|
11
|
-
import { createClaimNonce, UnclaimedEnvApiError } from '../lib/unclaimed-env-api.js';
|
|
12
|
-
import { observeHostFailure } from '../lib/host-probe.js';
|
|
13
|
-
import { logInfo, logError } from '../utils/debug.js';
|
|
14
|
-
import { isJsonMode, outputJson, exitWithError } from '../utils/output.js';
|
|
15
|
-
import { isAgentMode, isCiMode } from '../utils/interaction-mode.js';
|
|
16
|
-
import { sleep } from '../lib/helper-functions.js';
|
|
17
|
-
import { formatWorkOSCommand } from '../utils/command-invocation.js';
|
|
18
|
-
import { networkRetryRecovery } from '../utils/recovery-hints.js';
|
|
19
|
-
const POLL_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
20
|
-
const POLL_INTERVAL_MS = 5_000; // 5 seconds
|
|
21
|
-
const MAX_CONSECUTIVE_FAILURES = 10;
|
|
22
|
-
/**
|
|
23
|
-
* Run the claim flow.
|
|
24
|
-
*/
|
|
25
|
-
export async function runClaim() {
|
|
26
|
-
const activeEnv = getActiveEnvironment();
|
|
27
|
-
if (!activeEnv || !isUnclaimedEnvironment(activeEnv)) {
|
|
28
|
-
if (isJsonMode()) {
|
|
29
|
-
outputJson({ status: 'no_unclaimed_environment', message: 'No unclaimed environment found. Nothing to claim.' });
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
ui.log.info('No unclaimed environment found. Nothing to claim.');
|
|
33
|
-
}
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
// claimToken and clientId guaranteed present by UnclaimedEnvironmentConfig
|
|
37
|
-
logInfo('[claim] Starting claim flow for environment:', activeEnv.name);
|
|
38
|
-
try {
|
|
39
|
-
ui.log.step('Generating claim link...');
|
|
40
|
-
const result = await createClaimNonce(activeEnv.clientId, activeEnv.claimToken);
|
|
41
|
-
if (result.alreadyClaimed) {
|
|
42
|
-
markEnvironmentClaimed();
|
|
43
|
-
if (isJsonMode()) {
|
|
44
|
-
outputJson({ status: 'already_claimed', message: 'Environment already claimed!' });
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
ui.log.success('Environment already claimed!');
|
|
48
|
-
ui.log.info(`Run \`${formatWorkOSCommand('auth login')}\` to connect your account.`);
|
|
49
|
-
}
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
const claimUrl = `https://dashboard.workos.com/claim?nonce=${result.nonce}`;
|
|
53
|
-
if (isJsonMode()) {
|
|
54
|
-
outputJson({
|
|
55
|
-
status: 'claim_url',
|
|
56
|
-
claimUrl,
|
|
57
|
-
nonce: result.nonce,
|
|
58
|
-
permanent: true,
|
|
59
|
-
note: 'Claiming permanently links this environment to your account and cannot be undone.',
|
|
60
|
-
});
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (isCiMode()) {
|
|
64
|
-
exitWithError({
|
|
65
|
-
code: 'unsupported_in_ci',
|
|
66
|
-
message: 'Environment claim requires opening the claim URL outside CI.',
|
|
67
|
-
details: { claimUrl, nonce: result.nonce },
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
ui.log.warn('Claiming permanently links this environment to your account and cannot be undone.');
|
|
71
|
-
ui.log.info(`Open this URL to claim your environment:\n\n ${claimUrl}`);
|
|
72
|
-
try {
|
|
73
|
-
await open(claimUrl, { wait: false });
|
|
74
|
-
if (isAgentMode()) {
|
|
75
|
-
ui.log.info('Browser launch attempted. If it did not open on the host, use the URL above.');
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
ui.log.info('Browser opened automatically');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (openError) {
|
|
82
|
-
observeHostFailure('browser-launch', openError, {
|
|
83
|
-
operation: 'open',
|
|
84
|
-
target: claimUrl,
|
|
85
|
-
label: 'environment claim browser',
|
|
86
|
-
});
|
|
87
|
-
logError('[claim] Failed to open browser:', openError instanceof Error ? openError.message : String(openError));
|
|
88
|
-
ui.log.info('Could not open browser — open the URL above manually.');
|
|
89
|
-
}
|
|
90
|
-
// Poll for claim completion
|
|
91
|
-
const spinner = ui.spinner();
|
|
92
|
-
spinner.start('Waiting for claim...');
|
|
93
|
-
const startTime = Date.now();
|
|
94
|
-
let consecutiveFailures = 0;
|
|
95
|
-
while (Date.now() - startTime < POLL_TIMEOUT_MS) {
|
|
96
|
-
await sleep(POLL_INTERVAL_MS);
|
|
97
|
-
try {
|
|
98
|
-
const check = await createClaimNonce(activeEnv.clientId, activeEnv.claimToken);
|
|
99
|
-
if (check.alreadyClaimed) {
|
|
100
|
-
spinner.stop('Environment claimed!');
|
|
101
|
-
markEnvironmentClaimed();
|
|
102
|
-
ui.log.info(`Run \`${formatWorkOSCommand('auth login')}\` to connect your account.`);
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
consecutiveFailures = 0;
|
|
106
|
-
}
|
|
107
|
-
catch (pollError) {
|
|
108
|
-
const statusCode = pollError instanceof UnclaimedEnvApiError ? pollError.statusCode : undefined;
|
|
109
|
-
if (statusCode === 401) {
|
|
110
|
-
// 401 means the server invalidated the claim token — this happens
|
|
111
|
-
// when the environment is claimed. Safe to promote to sandbox.
|
|
112
|
-
spinner.stop('Claim token is invalid or expired.');
|
|
113
|
-
markEnvironmentClaimed();
|
|
114
|
-
ui.log.warn(`Run \`${formatWorkOSCommand('auth login')}\` to set up your environment.`);
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
consecutiveFailures++;
|
|
118
|
-
logError('[claim] Poll error:', pollError instanceof Error ? pollError.message : 'Unknown');
|
|
119
|
-
if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES) {
|
|
120
|
-
spinner.stop('Too many connection failures');
|
|
121
|
-
ui.log.error(`Polling failed ${consecutiveFailures} times in a row. Check your network and try again.\n` +
|
|
122
|
-
`You can also complete the claim at: ${claimUrl}`);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
if (consecutiveFailures >= 3) {
|
|
126
|
-
spinner.message('Still waiting... (connection issues detected)');
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
spinner.stop('Claim timed out');
|
|
131
|
-
ui.log.info(`Complete the claim in your browser, then run \`${formatWorkOSCommand('env list')}\` to verify.`);
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
135
|
-
logError('[claim] Error:', message);
|
|
136
|
-
exitWithError({
|
|
137
|
-
code: 'claim_failed',
|
|
138
|
-
message: `Could not claim this environment: ${message}`,
|
|
139
|
-
recovery: networkRetryRecovery({ command: formatWorkOSCommand('env claim') }),
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=claim.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `workos env claim` — claim an unclaimed environment.\n *\n * Reads claim token from active environment, generates a nonce via\n * createClaimNonce(), opens browser to dashboard claim URL, and polls\n * until the environment is claimed.\n */\n\nimport open from 'open';\nimport ui from '../utils/ui.js';\nimport { getActiveEnvironment, isUnclaimedEnvironment, markEnvironmentClaimed } from '../lib/config-store.js';\nimport { createClaimNonce, UnclaimedEnvApiError } from '../lib/unclaimed-env-api.js';\nimport { observeHostFailure } from '../lib/host-probe.js';\nimport { logInfo, logError } from '../utils/debug.js';\nimport { isJsonMode, outputJson, exitWithError } from '../utils/output.js';\nimport { isAgentMode, isCiMode } from '../utils/interaction-mode.js';\nimport { sleep } from '../lib/helper-functions.js';\nimport { formatWorkOSCommand } from '../utils/command-invocation.js';\nimport { networkRetryRecovery } from '../utils/recovery-hints.js';\n\nconst POLL_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes\nconst POLL_INTERVAL_MS = 5_000; // 5 seconds\nconst MAX_CONSECUTIVE_FAILURES = 10;\n\n/**\n * Run the claim flow.\n */\nexport async function runClaim(): Promise<void> {\n const activeEnv = getActiveEnvironment();\n\n if (!activeEnv || !isUnclaimedEnvironment(activeEnv)) {\n if (isJsonMode()) {\n outputJson({ status: 'no_unclaimed_environment', message: 'No unclaimed environment found. Nothing to claim.' });\n } else {\n ui.log.info('No unclaimed environment found. Nothing to claim.');\n }\n return;\n }\n\n // claimToken and clientId guaranteed present by UnclaimedEnvironmentConfig\n\n logInfo('[claim] Starting claim flow for environment:', activeEnv.name);\n\n try {\n ui.log.step('Generating claim link...');\n\n const result = await createClaimNonce(activeEnv.clientId, activeEnv.claimToken);\n\n if (result.alreadyClaimed) {\n markEnvironmentClaimed();\n if (isJsonMode()) {\n outputJson({ status: 'already_claimed', message: 'Environment already claimed!' });\n } else {\n ui.log.success('Environment already claimed!');\n ui.log.info(`Run \\`${formatWorkOSCommand('auth login')}\\` to connect your account.`);\n }\n return;\n }\n\n const claimUrl = `https://dashboard.workos.com/claim?nonce=${result.nonce}`;\n\n if (isJsonMode()) {\n outputJson({\n status: 'claim_url',\n claimUrl,\n nonce: result.nonce,\n permanent: true,\n note: 'Claiming permanently links this environment to your account and cannot be undone.',\n });\n return;\n }\n\n if (isCiMode()) {\n exitWithError({\n code: 'unsupported_in_ci',\n message: 'Environment claim requires opening the claim URL outside CI.',\n details: { claimUrl, nonce: result.nonce },\n });\n }\n\n ui.log.warn('Claiming permanently links this environment to your account and cannot be undone.');\n ui.log.info(`Open this URL to claim your environment:\\n\\n ${claimUrl}`);\n\n try {\n await open(claimUrl, { wait: false });\n if (isAgentMode()) {\n ui.log.info('Browser launch attempted. If it did not open on the host, use the URL above.');\n } else {\n ui.log.info('Browser opened automatically');\n }\n } catch (openError) {\n observeHostFailure('browser-launch', openError, {\n operation: 'open',\n target: claimUrl,\n label: 'environment claim browser',\n });\n logError('[claim] Failed to open browser:', openError instanceof Error ? openError.message : String(openError));\n ui.log.info('Could not open browser — open the URL above manually.');\n }\n\n // Poll for claim completion\n const spinner = ui.spinner();\n spinner.start('Waiting for claim...');\n\n const startTime = Date.now();\n let consecutiveFailures = 0;\n\n while (Date.now() - startTime < POLL_TIMEOUT_MS) {\n await sleep(POLL_INTERVAL_MS);\n try {\n const check = await createClaimNonce(activeEnv.clientId, activeEnv.claimToken);\n if (check.alreadyClaimed) {\n spinner.stop('Environment claimed!');\n markEnvironmentClaimed();\n ui.log.info(`Run \\`${formatWorkOSCommand('auth login')}\\` to connect your account.`);\n return;\n }\n consecutiveFailures = 0;\n } catch (pollError) {\n const statusCode = pollError instanceof UnclaimedEnvApiError ? pollError.statusCode : undefined;\n if (statusCode === 401) {\n // 401 means the server invalidated the claim token — this happens\n // when the environment is claimed. Safe to promote to sandbox.\n spinner.stop('Claim token is invalid or expired.');\n markEnvironmentClaimed();\n ui.log.warn(`Run \\`${formatWorkOSCommand('auth login')}\\` to set up your environment.`);\n return;\n }\n consecutiveFailures++;\n logError('[claim] Poll error:', pollError instanceof Error ? pollError.message : 'Unknown');\n if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES) {\n spinner.stop('Too many connection failures');\n ui.log.error(\n `Polling failed ${consecutiveFailures} times in a row. Check your network and try again.\\n` +\n `You can also complete the claim at: ${claimUrl}`,\n );\n return;\n }\n if (consecutiveFailures >= 3) {\n spinner.message('Still waiting... (connection issues detected)');\n }\n }\n }\n\n spinner.stop('Claim timed out');\n ui.log.info(`Complete the claim in your browser, then run \\`${formatWorkOSCommand('env list')}\\` to verify.`);\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logError('[claim] Error:', message);\n exitWithError({\n code: 'claim_failed',\n message: `Could not claim this environment: ${message}`,\n recovery: networkRetryRecovery({ command: formatWorkOSCommand('env claim') }),\n });\n }\n}\n"]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare function runConfigRedirectAdd(uri: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
2
|
-
export declare function runConfigCorsAdd(origin: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
3
|
-
export declare function runConfigHomepageUrlSet(url: string, apiKey: string, baseUrl?: string): Promise<void>;
|
package/dist/commands/config.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { createWorkOSClient } from '../lib/workos-client.js';
|
|
3
|
-
import { outputSuccess, isJsonMode } from '../utils/output.js';
|
|
4
|
-
import { createApiErrorHandler } from '../lib/api-error-handler.js';
|
|
5
|
-
const handleApiError = createApiErrorHandler('Config');
|
|
6
|
-
export async function runConfigRedirectAdd(uri, apiKey, baseUrl) {
|
|
7
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
8
|
-
try {
|
|
9
|
-
const result = await client.redirectUris.add(uri);
|
|
10
|
-
if (result.alreadyExists) {
|
|
11
|
-
if (isJsonMode()) {
|
|
12
|
-
outputSuccess('Redirect URI already exists', { uri, alreadyExists: true });
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
console.log(chalk.yellow('Redirect URI already exists (no change)'));
|
|
16
|
-
}
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
outputSuccess('Added redirect URI', { uri });
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
handleApiError(error);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export async function runConfigCorsAdd(origin, apiKey, baseUrl) {
|
|
26
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
27
|
-
try {
|
|
28
|
-
const result = await client.corsOrigins.add(origin);
|
|
29
|
-
if (result.alreadyExists) {
|
|
30
|
-
if (isJsonMode()) {
|
|
31
|
-
outputSuccess('CORS origin already exists', { origin, alreadyExists: true });
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
console.log(chalk.yellow('CORS origin already exists (no change)'));
|
|
35
|
-
}
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
outputSuccess('Added CORS origin', { origin });
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
handleApiError(error);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export async function runConfigHomepageUrlSet(url, apiKey, baseUrl) {
|
|
45
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
46
|
-
try {
|
|
47
|
-
await client.homepageUrl.set(url);
|
|
48
|
-
outputSuccess('Set homepage URL', { url });
|
|
49
|
-
}
|
|
50
|
-
catch (error) {
|
|
51
|
-
handleApiError(error);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,MAAc,EAAE,OAAgB;IACtF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,aAAa,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,OAAO;QACT,CAAC;QAED,aAAa,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,OAAgB;IACrF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,aAAa,CAAC,4BAA4B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,OAAO;QACT,CAAC;QAED,aAAa,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,GAAW,EAAE,MAAc,EAAE,OAAgB;IACzF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,aAAa,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC","sourcesContent":["import chalk from 'chalk';\nimport { createWorkOSClient } from '../lib/workos-client.js';\nimport { outputSuccess, isJsonMode } from '../utils/output.js';\nimport { createApiErrorHandler } from '../lib/api-error-handler.js';\n\nconst handleApiError = createApiErrorHandler('Config');\n\nexport async function runConfigRedirectAdd(uri: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const result = await client.redirectUris.add(uri);\n\n if (result.alreadyExists) {\n if (isJsonMode()) {\n outputSuccess('Redirect URI already exists', { uri, alreadyExists: true });\n } else {\n console.log(chalk.yellow('Redirect URI already exists (no change)'));\n }\n return;\n }\n\n outputSuccess('Added redirect URI', { uri });\n } catch (error) {\n handleApiError(error);\n }\n}\n\nexport async function runConfigCorsAdd(origin: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const result = await client.corsOrigins.add(origin);\n\n if (result.alreadyExists) {\n if (isJsonMode()) {\n outputSuccess('CORS origin already exists', { origin, alreadyExists: true });\n } else {\n console.log(chalk.yellow('CORS origin already exists (no change)'));\n }\n return;\n }\n\n outputSuccess('Added CORS origin', { origin });\n } catch (error) {\n handleApiError(error);\n }\n}\n\nexport async function runConfigHomepageUrlSet(url: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n await client.homepageUrl.set(url);\n outputSuccess('Set homepage URL', { url });\n } catch (error) {\n handleApiError(error);\n }\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface ConnectionListOptions {
|
|
2
|
-
organizationId?: string;
|
|
3
|
-
connectionType?: string;
|
|
4
|
-
limit?: number;
|
|
5
|
-
before?: string;
|
|
6
|
-
after?: string;
|
|
7
|
-
order?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function runConnectionList(options: ConnectionListOptions, apiKey: string, baseUrl?: string): Promise<void>;
|
|
10
|
-
export declare function runConnectionGet(id: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
11
|
-
export declare function runConnectionDelete(id: string, options: {
|
|
12
|
-
force?: boolean;
|
|
13
|
-
}, apiKey: string, baseUrl?: string): Promise<void>;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { createWorkOSClient } from '../lib/workos-client.js';
|
|
3
|
-
import { formatTable } from '../utils/table.js';
|
|
4
|
-
import { outputSuccess, outputJson, isJsonMode, exitWithError } from '../utils/output.js';
|
|
5
|
-
import { createApiErrorHandler } from '../lib/api-error-handler.js';
|
|
6
|
-
import { isCiMode, isPromptAllowed } from '../utils/interaction-mode.js';
|
|
7
|
-
import ui from '../utils/ui.js';
|
|
8
|
-
const handleApiError = createApiErrorHandler('Connection');
|
|
9
|
-
export async function runConnectionList(options, apiKey, baseUrl) {
|
|
10
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
11
|
-
try {
|
|
12
|
-
const result = await client.sdk.sso.listConnections({
|
|
13
|
-
...(options.organizationId && { organizationId: options.organizationId }),
|
|
14
|
-
...(options.connectionType && { connectionType: options.connectionType }),
|
|
15
|
-
limit: options.limit,
|
|
16
|
-
before: options.before,
|
|
17
|
-
after: options.after,
|
|
18
|
-
order: options.order,
|
|
19
|
-
});
|
|
20
|
-
if (isJsonMode()) {
|
|
21
|
-
outputJson({ data: result.data, listMetadata: result.listMetadata });
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
if (result.data.length === 0) {
|
|
25
|
-
console.log('No connections found.');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const rows = result.data.map((conn) => [
|
|
29
|
-
conn.id,
|
|
30
|
-
conn.name,
|
|
31
|
-
conn.type,
|
|
32
|
-
conn.organizationId || chalk.dim('-'),
|
|
33
|
-
conn.state,
|
|
34
|
-
conn.createdAt,
|
|
35
|
-
]);
|
|
36
|
-
console.log(formatTable([
|
|
37
|
-
{ header: 'ID' },
|
|
38
|
-
{ header: 'Name' },
|
|
39
|
-
{ header: 'Type' },
|
|
40
|
-
{ header: 'Org ID' },
|
|
41
|
-
{ header: 'State' },
|
|
42
|
-
{ header: 'Created' },
|
|
43
|
-
], rows));
|
|
44
|
-
const { before, after } = result.listMetadata;
|
|
45
|
-
if (before && after) {
|
|
46
|
-
console.log(chalk.dim(`Before: ${before} After: ${after}`));
|
|
47
|
-
}
|
|
48
|
-
else if (before) {
|
|
49
|
-
console.log(chalk.dim(`Before: ${before}`));
|
|
50
|
-
}
|
|
51
|
-
else if (after) {
|
|
52
|
-
console.log(chalk.dim(`After: ${after}`));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
handleApiError(error);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export async function runConnectionGet(id, apiKey, baseUrl) {
|
|
60
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
61
|
-
try {
|
|
62
|
-
const connection = await client.sdk.sso.getConnection(id);
|
|
63
|
-
outputJson(connection);
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
handleApiError(error);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
export async function runConnectionDelete(id, options, apiKey, baseUrl) {
|
|
70
|
-
if (!options.force) {
|
|
71
|
-
if (!isPromptAllowed()) {
|
|
72
|
-
exitWithError({
|
|
73
|
-
code: 'confirmation_required',
|
|
74
|
-
message: isCiMode()
|
|
75
|
-
? 'Destructive operation requires --force flag in CI mode.'
|
|
76
|
-
: 'Destructive operation requires --force flag in agent mode.',
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
const confirmed = await ui.confirm({
|
|
80
|
-
message: `Delete connection ${id}? This cannot be undone.`,
|
|
81
|
-
});
|
|
82
|
-
if (ui.isCancel(confirmed) || !confirmed) {
|
|
83
|
-
console.log('Delete cancelled.');
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
88
|
-
try {
|
|
89
|
-
await client.sdk.sso.deleteConnection(id);
|
|
90
|
-
outputSuccess('Deleted connection', { id });
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
handleApiError(error);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=connection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/commands/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhC,MAAM,cAAc,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAW3D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA8B,EAC9B,MAAc,EACd,OAAgB;IAEhB,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC;YAClD,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YACzE,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAgC,EAAE,CAAC;YAC3F,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAmC;SACnD,CAAC,CAAC;QAEH,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE;YACP,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,KAAK;YACV,IAAI,CAAC,SAAS;SACf,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACT,WAAW,CACT;YACE,EAAE,MAAM,EAAE,IAAI,EAAE;YAChB,EAAE,MAAM,EAAE,MAAM,EAAE;YAClB,EAAE,MAAM,EAAE,MAAM,EAAE;YAClB,EAAE,MAAM,EAAE,QAAQ,EAAE;YACpB,EAAE,MAAM,EAAE,OAAO,EAAE;YACnB,EAAE,MAAM,EAAE,SAAS,EAAE;SACtB,EACD,IAAI,CACL,CACF,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;QAC9C,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,MAAM,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU,EAAE,MAAc,EAAE,OAAgB;IACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1D,UAAU,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAU,EACV,OAA4B,EAC5B,MAAc,EACd,OAAgB;IAEhB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,aAAa,CAAC;gBACZ,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,QAAQ,EAAE;oBACjB,CAAC,CAAC,yDAAyD;oBAC3D,CAAC,CAAC,4DAA4D;aACjE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;YACjC,OAAO,EAAE,qBAAqB,EAAE,0BAA0B;SAC3D,CAAC,CAAC;QAEH,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC1C,aAAa,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC","sourcesContent":["import chalk from 'chalk';\nimport type { ConnectionType } from '@workos-inc/node';\nimport { createWorkOSClient } from '../lib/workos-client.js';\nimport { formatTable } from '../utils/table.js';\nimport { outputSuccess, outputJson, isJsonMode, exitWithError } from '../utils/output.js';\nimport { createApiErrorHandler } from '../lib/api-error-handler.js';\nimport { isCiMode, isPromptAllowed } from '../utils/interaction-mode.js';\nimport ui from '../utils/ui.js';\n\nconst handleApiError = createApiErrorHandler('Connection');\n\nexport interface ConnectionListOptions {\n organizationId?: string;\n connectionType?: string;\n limit?: number;\n before?: string;\n after?: string;\n order?: string;\n}\n\nexport async function runConnectionList(\n options: ConnectionListOptions,\n apiKey: string,\n baseUrl?: string,\n): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const result = await client.sdk.sso.listConnections({\n ...(options.organizationId && { organizationId: options.organizationId }),\n ...(options.connectionType && { connectionType: options.connectionType as ConnectionType }),\n limit: options.limit,\n before: options.before,\n after: options.after,\n order: options.order as 'asc' | 'desc' | undefined,\n });\n\n if (isJsonMode()) {\n outputJson({ data: result.data, listMetadata: result.listMetadata });\n return;\n }\n\n if (result.data.length === 0) {\n console.log('No connections found.');\n return;\n }\n\n const rows = result.data.map((conn) => [\n conn.id,\n conn.name,\n conn.type,\n conn.organizationId || chalk.dim('-'),\n conn.state,\n conn.createdAt,\n ]);\n\n console.log(\n formatTable(\n [\n { header: 'ID' },\n { header: 'Name' },\n { header: 'Type' },\n { header: 'Org ID' },\n { header: 'State' },\n { header: 'Created' },\n ],\n rows,\n ),\n );\n\n const { before, after } = result.listMetadata;\n if (before && after) {\n console.log(chalk.dim(`Before: ${before} After: ${after}`));\n } else if (before) {\n console.log(chalk.dim(`Before: ${before}`));\n } else if (after) {\n console.log(chalk.dim(`After: ${after}`));\n }\n } catch (error) {\n handleApiError(error);\n }\n}\n\nexport async function runConnectionGet(id: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const connection = await client.sdk.sso.getConnection(id);\n outputJson(connection);\n } catch (error) {\n handleApiError(error);\n }\n}\n\nexport async function runConnectionDelete(\n id: string,\n options: { force?: boolean },\n apiKey: string,\n baseUrl?: string,\n): Promise<void> {\n if (!options.force) {\n if (!isPromptAllowed()) {\n exitWithError({\n code: 'confirmation_required',\n message: isCiMode()\n ? 'Destructive operation requires --force flag in CI mode.'\n : 'Destructive operation requires --force flag in agent mode.',\n });\n }\n\n const confirmed = await ui.confirm({\n message: `Delete connection ${id}? This cannot be undone.`,\n });\n\n if (ui.isCancel(confirmed) || !confirmed) {\n console.log('Delete cancelled.');\n return;\n }\n }\n\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n await client.sdk.sso.deleteConnection(id);\n outputSuccess('Deleted connection', { id });\n } catch (error) {\n handleApiError(error);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function runDebugSso(connectionId: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { createWorkOSClient } from '../lib/workos-client.js';
|
|
3
|
-
import { outputJson, isJsonMode } from '../utils/output.js';
|
|
4
|
-
import { createApiErrorHandler } from '../lib/api-error-handler.js';
|
|
5
|
-
const handleApiError = createApiErrorHandler('Connection');
|
|
6
|
-
export async function runDebugSso(connectionId, apiKey, baseUrl) {
|
|
7
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
8
|
-
try {
|
|
9
|
-
// 1. Get connection details
|
|
10
|
-
const connection = await client.sdk.sso.getConnection(connectionId);
|
|
11
|
-
const issues = [];
|
|
12
|
-
// 2. Check for common issues
|
|
13
|
-
if (connection.state !== 'active') {
|
|
14
|
-
issues.push(`Connection is ${connection.state} (not active)`);
|
|
15
|
-
}
|
|
16
|
-
// 3. List recent authentication events
|
|
17
|
-
let recentEvents = [];
|
|
18
|
-
try {
|
|
19
|
-
const events = await client.sdk.events.listEvents({
|
|
20
|
-
events: [
|
|
21
|
-
'authentication.email_verification_succeeded',
|
|
22
|
-
'authentication.magic_auth_succeeded',
|
|
23
|
-
'authentication.sso_succeeded',
|
|
24
|
-
],
|
|
25
|
-
...(connection.organizationId && { organizationId: connection.organizationId }),
|
|
26
|
-
limit: 5,
|
|
27
|
-
});
|
|
28
|
-
recentEvents = events.data.map((e) => ({ id: e.id, event: e.event, createdAt: e.createdAt }));
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
// Events may not be available
|
|
32
|
-
}
|
|
33
|
-
if (isJsonMode()) {
|
|
34
|
-
outputJson({
|
|
35
|
-
connection: {
|
|
36
|
-
id: connection.id,
|
|
37
|
-
name: connection.name,
|
|
38
|
-
type: connection.type,
|
|
39
|
-
state: connection.state,
|
|
40
|
-
organizationId: connection.organizationId,
|
|
41
|
-
createdAt: connection.createdAt,
|
|
42
|
-
},
|
|
43
|
-
recentEvents,
|
|
44
|
-
issues,
|
|
45
|
-
});
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
// 4. Human-readable diagnosis
|
|
49
|
-
console.log(chalk.bold(`SSO Connection: ${connection.name}`));
|
|
50
|
-
console.log(` ID: ${connection.id}`);
|
|
51
|
-
console.log(` Type: ${connection.type}`);
|
|
52
|
-
console.log(` State: ${connection.state === 'active' ? chalk.green('active') : chalk.yellow(connection.state)}`);
|
|
53
|
-
console.log(` Organization: ${connection.organizationId || chalk.dim('none')}`);
|
|
54
|
-
console.log(` Created: ${connection.createdAt}`);
|
|
55
|
-
if (recentEvents.length > 0) {
|
|
56
|
-
console.log(chalk.bold('\nRecent auth events:'));
|
|
57
|
-
for (const event of recentEvents) {
|
|
58
|
-
console.log(` ${event.event} (${event.createdAt})`);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console.log(chalk.dim('\nNo recent authentication events found.'));
|
|
63
|
-
}
|
|
64
|
-
if (issues.length > 0) {
|
|
65
|
-
console.log(chalk.bold('\nIssues found:'));
|
|
66
|
-
for (const issue of issues) {
|
|
67
|
-
console.log(chalk.yellow(` ⚠ ${issue}`));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
console.log(chalk.green('\nNo issues detected.'));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
handleApiError(error);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=debug-sso.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-sso.js","sourceRoot":"","sources":["../../src/commands/debug-sso.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport type { EventName } from '@workos-inc/node';\nimport { createWorkOSClient } from '../lib/workos-client.js';\nimport { outputJson, isJsonMode } from '../utils/output.js';\nimport { createApiErrorHandler } from '../lib/api-error-handler.js';\n\nconst handleApiError = createApiErrorHandler('Connection');\n\nexport async function runDebugSso(connectionId: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n // 1. Get connection details\n const connection = await client.sdk.sso.getConnection(connectionId);\n\n const issues: string[] = [];\n\n // 2. Check for common issues\n if (connection.state !== 'active') {\n issues.push(`Connection is ${connection.state} (not active)`);\n }\n\n // 3. List recent authentication events\n let recentEvents: Array<{ id: string; event: string; createdAt: string }> = [];\n try {\n const events = await client.sdk.events.listEvents({\n events: [\n 'authentication.email_verification_succeeded',\n 'authentication.magic_auth_succeeded',\n 'authentication.sso_succeeded',\n ] as EventName[],\n ...(connection.organizationId && { organizationId: connection.organizationId }),\n limit: 5,\n });\n recentEvents = events.data.map((e) => ({ id: e.id, event: e.event, createdAt: e.createdAt }));\n } catch {\n // Events may not be available\n }\n\n if (isJsonMode()) {\n outputJson({\n connection: {\n id: connection.id,\n name: connection.name,\n type: connection.type,\n state: connection.state,\n organizationId: connection.organizationId,\n createdAt: connection.createdAt,\n },\n recentEvents,\n issues,\n });\n return;\n }\n\n // 4. Human-readable diagnosis\n console.log(chalk.bold(`SSO Connection: ${connection.name}`));\n console.log(` ID: ${connection.id}`);\n console.log(` Type: ${connection.type}`);\n console.log(` State: ${connection.state === 'active' ? chalk.green('active') : chalk.yellow(connection.state)}`);\n console.log(` Organization: ${connection.organizationId || chalk.dim('none')}`);\n console.log(` Created: ${connection.createdAt}`);\n\n if (recentEvents.length > 0) {\n console.log(chalk.bold('\\nRecent auth events:'));\n for (const event of recentEvents) {\n console.log(` ${event.event} (${event.createdAt})`);\n }\n } else {\n console.log(chalk.dim('\\nNo recent authentication events found.'));\n }\n\n if (issues.length > 0) {\n console.log(chalk.bold('\\nIssues found:'));\n for (const issue of issues) {\n console.log(chalk.yellow(` ⚠ ${issue}`));\n }\n } else {\n console.log(chalk.green('\\nNo issues detected.'));\n }\n } catch (error) {\n handleApiError(error);\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function runDebugSync(directoryId: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { createWorkOSClient } from '../lib/workos-client.js';
|
|
3
|
-
import { outputJson, isJsonMode } from '../utils/output.js';
|
|
4
|
-
import { createApiErrorHandler } from '../lib/api-error-handler.js';
|
|
5
|
-
const handleApiError = createApiErrorHandler('Directory');
|
|
6
|
-
export async function runDebugSync(directoryId, apiKey, baseUrl) {
|
|
7
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
8
|
-
try {
|
|
9
|
-
// 1. Get directory details
|
|
10
|
-
const directory = await client.sdk.directorySync.getDirectory(directoryId);
|
|
11
|
-
const issues = [];
|
|
12
|
-
// 2. Check state
|
|
13
|
-
if (String(directory.state) !== 'linked') {
|
|
14
|
-
issues.push(`Directory is ${directory.state} (not linked)`);
|
|
15
|
-
}
|
|
16
|
-
// 3. Count users and groups
|
|
17
|
-
let userCount = 0;
|
|
18
|
-
let groupCount = 0;
|
|
19
|
-
try {
|
|
20
|
-
const users = await client.sdk.directorySync.listUsers({ directory: directoryId, limit: 1 });
|
|
21
|
-
userCount = users.data.length;
|
|
22
|
-
// If there's pagination, there are more
|
|
23
|
-
if (users.listMetadata.after)
|
|
24
|
-
userCount = -1; // indicates "more than 1"
|
|
25
|
-
}
|
|
26
|
-
catch {
|
|
27
|
-
// May not have access
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
const groups = await client.sdk.directorySync.listGroups({ directory: directoryId, limit: 1 });
|
|
31
|
-
groupCount = groups.data.length;
|
|
32
|
-
if (groups.listMetadata.after)
|
|
33
|
-
groupCount = -1;
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
// May not have access
|
|
37
|
-
}
|
|
38
|
-
// 4. List recent sync events
|
|
39
|
-
let recentEvents = [];
|
|
40
|
-
try {
|
|
41
|
-
const events = await client.sdk.events.listEvents({
|
|
42
|
-
events: ['dsync.user.created', 'dsync.user.updated', 'dsync.group.created'],
|
|
43
|
-
...(directory.organizationId && { organizationId: directory.organizationId }),
|
|
44
|
-
limit: 5,
|
|
45
|
-
});
|
|
46
|
-
recentEvents = events.data.map((e) => ({ id: e.id, event: e.event, createdAt: e.createdAt }));
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
// Events may not be available
|
|
50
|
-
}
|
|
51
|
-
if (recentEvents.length === 0) {
|
|
52
|
-
issues.push('No recent sync events found — sync may be stalled');
|
|
53
|
-
}
|
|
54
|
-
if (isJsonMode()) {
|
|
55
|
-
outputJson({
|
|
56
|
-
directory: {
|
|
57
|
-
id: directory.id,
|
|
58
|
-
name: directory.name,
|
|
59
|
-
type: directory.type,
|
|
60
|
-
state: directory.state,
|
|
61
|
-
organizationId: directory.organizationId,
|
|
62
|
-
createdAt: directory.createdAt,
|
|
63
|
-
},
|
|
64
|
-
userCount: userCount === -1 ? '1+' : userCount,
|
|
65
|
-
groupCount: groupCount === -1 ? '1+' : groupCount,
|
|
66
|
-
recentEvents,
|
|
67
|
-
issues,
|
|
68
|
-
});
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
// 5. Human-readable diagnosis
|
|
72
|
-
console.log(chalk.bold(`Directory Sync: ${directory.name}`));
|
|
73
|
-
console.log(` ID: ${directory.id}`);
|
|
74
|
-
console.log(` Type: ${directory.type}`);
|
|
75
|
-
console.log(` State: ${String(directory.state) === 'linked' ? chalk.green('linked') : chalk.yellow(directory.state)}`);
|
|
76
|
-
console.log(` Organization: ${directory.organizationId || chalk.dim('none')}`);
|
|
77
|
-
console.log(` Users: ${userCount === -1 ? '1+' : userCount}`);
|
|
78
|
-
console.log(` Groups: ${groupCount === -1 ? '1+' : groupCount}`);
|
|
79
|
-
if (recentEvents.length > 0) {
|
|
80
|
-
console.log(chalk.bold('\nRecent sync events:'));
|
|
81
|
-
for (const event of recentEvents) {
|
|
82
|
-
console.log(` ${event.event} (${event.createdAt})`);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
console.log(chalk.dim('\nNo recent sync events found.'));
|
|
87
|
-
}
|
|
88
|
-
if (issues.length > 0) {
|
|
89
|
-
console.log(chalk.bold('\nIssues found:'));
|
|
90
|
-
for (const issue of issues) {
|
|
91
|
-
console.log(chalk.yellow(` ⚠ ${issue}`));
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
console.log(chalk.green('\nNo issues detected.'));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
handleApiError(error);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=debug-sync.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-sync.js","sourceRoot":"","sources":["../../src/commands/debug-sync.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport type { EventName } from '@workos-inc/node';\nimport { createWorkOSClient } from '../lib/workos-client.js';\nimport { outputJson, isJsonMode } from '../utils/output.js';\nimport { createApiErrorHandler } from '../lib/api-error-handler.js';\n\nconst handleApiError = createApiErrorHandler('Directory');\n\nexport async function runDebugSync(directoryId: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n // 1. Get directory details\n const directory = await client.sdk.directorySync.getDirectory(directoryId);\n\n const issues: string[] = [];\n\n // 2. Check state\n if (String(directory.state) !== 'linked') {\n issues.push(`Directory is ${directory.state} (not linked)`);\n }\n\n // 3. Count users and groups\n let userCount = 0;\n let groupCount = 0;\n try {\n const users = await client.sdk.directorySync.listUsers({ directory: directoryId, limit: 1 });\n userCount = users.data.length;\n // If there's pagination, there are more\n if (users.listMetadata.after) userCount = -1; // indicates \"more than 1\"\n } catch {\n // May not have access\n }\n\n try {\n const groups = await client.sdk.directorySync.listGroups({ directory: directoryId, limit: 1 });\n groupCount = groups.data.length;\n if (groups.listMetadata.after) groupCount = -1;\n } catch {\n // May not have access\n }\n\n // 4. List recent sync events\n let recentEvents: Array<{ id: string; event: string; createdAt: string }> = [];\n try {\n const events = await client.sdk.events.listEvents({\n events: ['dsync.user.created', 'dsync.user.updated', 'dsync.group.created'] as EventName[],\n ...(directory.organizationId && { organizationId: directory.organizationId }),\n limit: 5,\n });\n recentEvents = events.data.map((e) => ({ id: e.id, event: e.event, createdAt: e.createdAt }));\n } catch {\n // Events may not be available\n }\n\n if (recentEvents.length === 0) {\n issues.push('No recent sync events found — sync may be stalled');\n }\n\n if (isJsonMode()) {\n outputJson({\n directory: {\n id: directory.id,\n name: directory.name,\n type: directory.type,\n state: directory.state,\n organizationId: directory.organizationId,\n createdAt: directory.createdAt,\n },\n userCount: userCount === -1 ? '1+' : userCount,\n groupCount: groupCount === -1 ? '1+' : groupCount,\n recentEvents,\n issues,\n });\n return;\n }\n\n // 5. Human-readable diagnosis\n console.log(chalk.bold(`Directory Sync: ${directory.name}`));\n console.log(` ID: ${directory.id}`);\n console.log(` Type: ${directory.type}`);\n console.log(\n ` State: ${String(directory.state) === 'linked' ? chalk.green('linked') : chalk.yellow(directory.state)}`,\n );\n console.log(` Organization: ${directory.organizationId || chalk.dim('none')}`);\n console.log(` Users: ${userCount === -1 ? '1+' : userCount}`);\n console.log(` Groups: ${groupCount === -1 ? '1+' : groupCount}`);\n\n if (recentEvents.length > 0) {\n console.log(chalk.bold('\\nRecent sync events:'));\n for (const event of recentEvents) {\n console.log(` ${event.event} (${event.createdAt})`);\n }\n } else {\n console.log(chalk.dim('\\nNo recent sync events found.'));\n }\n\n if (issues.length > 0) {\n console.log(chalk.bold('\\nIssues found:'));\n for (const issue of issues) {\n console.log(chalk.yellow(` ⚠ ${issue}`));\n }\n } else {\n console.log(chalk.green('\\nNo issues detected.'));\n }\n } catch (error) {\n handleApiError(error);\n }\n}\n"]}
|
package/dist/commands/debug.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export declare function runDebugState({ showSecrets }: {
|
|
2
|
-
showSecrets: boolean;
|
|
3
|
-
}): Promise<void>;
|
|
4
|
-
export declare function runDebugReset({ force, credentialsOnly, configOnly, }: {
|
|
5
|
-
force: boolean;
|
|
6
|
-
credentialsOnly: boolean;
|
|
7
|
-
configOnly: boolean;
|
|
8
|
-
}): Promise<void>;
|
|
9
|
-
export declare function runDebugSimulate({ expiredToken, noKeyring, unclaimed, noAuth, crash, }: {
|
|
10
|
-
expiredToken: boolean;
|
|
11
|
-
noKeyring: boolean;
|
|
12
|
-
unclaimed: boolean;
|
|
13
|
-
noAuth: boolean;
|
|
14
|
-
crash?: boolean;
|
|
15
|
-
}): Promise<void>;
|
|
16
|
-
/**
|
|
17
|
-
* Catalog of WORKOS_-prefixed environment variables the CLI reads.
|
|
18
|
-
*
|
|
19
|
-
* This is the single source of truth for `workos debug env`. A unit test
|
|
20
|
-
* (env-var-catalog.spec.ts) scans the source for `process.env.WORKOS_*` reads
|
|
21
|
-
* and fails if any are missing here, so this list can't silently drift.
|
|
22
|
-
*/
|
|
23
|
-
export declare const ENV_VAR_CATALOG: {
|
|
24
|
-
name: string;
|
|
25
|
-
effect: string;
|
|
26
|
-
}[];
|
|
27
|
-
export declare function runDebugEnv(): Promise<void>;
|
|
28
|
-
export declare function runDebugToken(): Promise<void>;
|