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
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { existsSync } from 'fs';
|
|
2
|
-
import { rm } from 'fs/promises';
|
|
3
|
-
import { homedir } from 'os';
|
|
4
|
-
import { join } from 'path';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
import { logError, logInfo, logWarn } from '../utils/debug.js';
|
|
7
|
-
import { exitWithError, isJsonMode, outputJson } from '../utils/output.js';
|
|
8
|
-
import { createAgents, detectAgents, discoverSkills, getSkillsDir } from './install-skill.js';
|
|
9
|
-
import { ExitCode, exitWithCode } from '../utils/exit-codes.js';
|
|
10
|
-
export function findInstalledSkills(knownSkills, agent) {
|
|
11
|
-
return knownSkills.filter((name) => existsSync(join(agent.globalSkillsDir, name, 'SKILL.md')));
|
|
12
|
-
}
|
|
13
|
-
export async function uninstallSkill(skillName, agent) {
|
|
14
|
-
const targetDir = join(agent.globalSkillsDir, skillName);
|
|
15
|
-
try {
|
|
16
|
-
await rm(targetDir, { recursive: true, force: true });
|
|
17
|
-
return { success: true };
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
21
|
-
logError(`Failed to remove skill "${skillName}" for ${agent.displayName} at ${targetDir}:`, message);
|
|
22
|
-
return { success: false, error: message };
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export async function runUninstallSkill(options) {
|
|
26
|
-
const home = homedir();
|
|
27
|
-
const agents = createAgents(home);
|
|
28
|
-
const skillsDir = getSkillsDir();
|
|
29
|
-
let knownSkills;
|
|
30
|
-
try {
|
|
31
|
-
knownSkills = await discoverSkills(skillsDir);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
logError('Failed to read skills directory:', error);
|
|
35
|
-
exitWithError({
|
|
36
|
-
code: 'SKILLS_DIR_READ_FAILED',
|
|
37
|
-
message: `Could not read skills directory at ${skillsDir}. Your WorkOS CLI installation may be corrupted. Try reinstalling with \`npm install -g @workos-inc/cli\`.`,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
const targetAgents = detectAgents(agents, options.agent);
|
|
41
|
-
if (targetAgents.length === 0) {
|
|
42
|
-
const message = options.agent ? 'Specified agents not found.' : 'No coding agents detected.';
|
|
43
|
-
logWarn(message, 'Supported agents:', Object.keys(agents).join(', '));
|
|
44
|
-
exitWithError({
|
|
45
|
-
code: 'NO_AGENTS_FOUND',
|
|
46
|
-
message: `${message} Supported agents: ${Object.keys(agents).join(', ')}`,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
const targetSkillNames = options.skill ? knownSkills.filter((s) => options.skill.includes(s)) : knownSkills;
|
|
50
|
-
if (options.skill) {
|
|
51
|
-
const unrecognized = options.skill.filter((s) => !knownSkills.includes(s));
|
|
52
|
-
if (unrecognized.length > 0) {
|
|
53
|
-
logWarn('Unrecognized skill names requested for uninstall:', unrecognized);
|
|
54
|
-
if (!isJsonMode()) {
|
|
55
|
-
console.warn(chalk.yellow(`Unknown skills (ignored): ${unrecognized.join(', ')}`));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (options.skill && targetSkillNames.length === 0) {
|
|
60
|
-
logError('No matching skills found. Known skills:', knownSkills.join(', '));
|
|
61
|
-
exitWithError({
|
|
62
|
-
code: 'SKILL_NOT_FOUND',
|
|
63
|
-
message: `No matching skills found. Known skills: ${knownSkills.join(', ')}`,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
logInfo('Uninstalling skills:', targetSkillNames.join(', '), 'for agents:', targetAgents.map((a) => a.displayName).join(', '));
|
|
67
|
-
if (!isJsonMode()) {
|
|
68
|
-
console.log(chalk.bold('\nUninstalling skills...\n'));
|
|
69
|
-
}
|
|
70
|
-
const results = [];
|
|
71
|
-
for (const skill of targetSkillNames) {
|
|
72
|
-
for (const agent of targetAgents) {
|
|
73
|
-
const installed = findInstalledSkills([skill], agent);
|
|
74
|
-
if (installed.length === 0) {
|
|
75
|
-
results.push({ skill, agent: agent.displayName, success: true, skipped: true });
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
const result = await uninstallSkill(skill, agent);
|
|
79
|
-
results.push({
|
|
80
|
-
skill,
|
|
81
|
-
agent: agent.displayName,
|
|
82
|
-
skipped: false,
|
|
83
|
-
...result,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
const removed = results.filter((r) => r.success && !r.skipped);
|
|
88
|
-
const skipped = results.filter((r) => r.skipped);
|
|
89
|
-
const failed = results.filter((r) => !r.success);
|
|
90
|
-
if (isJsonMode()) {
|
|
91
|
-
outputJson({ removed, skipped, failed });
|
|
92
|
-
if (failed.length > 0) {
|
|
93
|
-
exitWithCode(ExitCode.GENERAL_ERROR);
|
|
94
|
-
}
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
if (removed.length > 0) {
|
|
98
|
-
logInfo(`Removed ${removed.length} skill(s)`);
|
|
99
|
-
console.log(chalk.green(`✓ Removed ${removed.length} skill(s):\n`));
|
|
100
|
-
for (const r of removed) {
|
|
101
|
-
console.log(` ${chalk.cyan(r.skill)} ← ${chalk.dim(r.agent)}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (skipped.length > 0 && removed.length === 0 && failed.length === 0) {
|
|
105
|
-
console.log(chalk.dim('No WorkOS skills were installed.'));
|
|
106
|
-
}
|
|
107
|
-
if (failed.length > 0) {
|
|
108
|
-
logError(`Failed to remove ${failed.length} skill(s)`);
|
|
109
|
-
console.log(chalk.red(`\n✗ Failed to remove ${failed.length}:\n`));
|
|
110
|
-
for (const r of failed) {
|
|
111
|
-
console.log(` ${r.skill} ← ${r.agent}: ${chalk.dim(r.error)}`);
|
|
112
|
-
}
|
|
113
|
-
exitWithCode(ExitCode.GENERAL_ERROR);
|
|
114
|
-
}
|
|
115
|
-
console.log(chalk.green('\nDone!'));
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=uninstall-skill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall-skill.js","sourceRoot":"","sources":["../../src/commands/uninstall-skill.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync } from 'fs';\nimport { rm } from 'fs/promises';\nimport { homedir } from 'os';\nimport { join } from 'path';\nimport chalk from 'chalk';\nimport { logError, logInfo, logWarn } from '../utils/debug.js';\nimport { exitWithError, isJsonMode, outputJson } from '../utils/output.js';\nimport { createAgents, detectAgents, discoverSkills, getSkillsDir, type AgentConfig } from './install-skill.js';\nimport { ExitCode, exitWithCode } from '../utils/exit-codes.js';\n\nexport interface UninstallSkillOptions {\n skill?: string[];\n agent?: string[];\n}\n\nexport function findInstalledSkills(knownSkills: string[], agent: AgentConfig): string[] {\n return knownSkills.filter((name) => existsSync(join(agent.globalSkillsDir, name, 'SKILL.md')));\n}\n\nexport async function uninstallSkill(\n skillName: string,\n agent: AgentConfig,\n): Promise<{ success: boolean; error?: string }> {\n const targetDir = join(agent.globalSkillsDir, skillName);\n try {\n await rm(targetDir, { recursive: true, force: true });\n return { success: true };\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Unknown error';\n logError(`Failed to remove skill \"${skillName}\" for ${agent.displayName} at ${targetDir}:`, message);\n return { success: false, error: message };\n }\n}\n\nexport async function runUninstallSkill(options: UninstallSkillOptions): Promise<void> {\n const home = homedir();\n const agents = createAgents(home);\n const skillsDir = getSkillsDir();\n\n let knownSkills: string[];\n try {\n knownSkills = await discoverSkills(skillsDir);\n } catch (error) {\n logError('Failed to read skills directory:', error);\n exitWithError({\n code: 'SKILLS_DIR_READ_FAILED',\n message: `Could not read skills directory at ${skillsDir}. Your WorkOS CLI installation may be corrupted. Try reinstalling with \\`npm install -g @workos-inc/cli\\`.`,\n });\n }\n\n const targetAgents = detectAgents(agents, options.agent);\n\n if (targetAgents.length === 0) {\n const message = options.agent ? 'Specified agents not found.' : 'No coding agents detected.';\n logWarn(message, 'Supported agents:', Object.keys(agents).join(', '));\n exitWithError({\n code: 'NO_AGENTS_FOUND',\n message: `${message} Supported agents: ${Object.keys(agents).join(', ')}`,\n });\n }\n\n const targetSkillNames = options.skill ? knownSkills.filter((s) => options.skill!.includes(s)) : knownSkills;\n\n if (options.skill) {\n const unrecognized = options.skill.filter((s) => !knownSkills.includes(s));\n if (unrecognized.length > 0) {\n logWarn('Unrecognized skill names requested for uninstall:', unrecognized);\n if (!isJsonMode()) {\n console.warn(chalk.yellow(`Unknown skills (ignored): ${unrecognized.join(', ')}`));\n }\n }\n }\n\n if (options.skill && targetSkillNames.length === 0) {\n logError('No matching skills found. Known skills:', knownSkills.join(', '));\n exitWithError({\n code: 'SKILL_NOT_FOUND',\n message: `No matching skills found. Known skills: ${knownSkills.join(', ')}`,\n });\n }\n\n logInfo(\n 'Uninstalling skills:',\n targetSkillNames.join(', '),\n 'for agents:',\n targetAgents.map((a) => a.displayName).join(', '),\n );\n\n if (!isJsonMode()) {\n console.log(chalk.bold('\\nUninstalling skills...\\n'));\n }\n\n const results: Array<{\n skill: string;\n agent: string;\n success: boolean;\n skipped: boolean;\n error?: string;\n }> = [];\n\n for (const skill of targetSkillNames) {\n for (const agent of targetAgents) {\n const installed = findInstalledSkills([skill], agent);\n if (installed.length === 0) {\n results.push({ skill, agent: agent.displayName, success: true, skipped: true });\n continue;\n }\n const result = await uninstallSkill(skill, agent);\n results.push({\n skill,\n agent: agent.displayName,\n skipped: false,\n ...result,\n });\n }\n }\n\n const removed = results.filter((r) => r.success && !r.skipped);\n const skipped = results.filter((r) => r.skipped);\n const failed = results.filter((r) => !r.success);\n\n if (isJsonMode()) {\n outputJson({ removed, skipped, failed });\n if (failed.length > 0) {\n exitWithCode(ExitCode.GENERAL_ERROR);\n }\n return;\n }\n\n if (removed.length > 0) {\n logInfo(`Removed ${removed.length} skill(s)`);\n console.log(chalk.green(`✓ Removed ${removed.length} skill(s):\\n`));\n for (const r of removed) {\n console.log(` ${chalk.cyan(r.skill)} ← ${chalk.dim(r.agent)}`);\n }\n }\n\n if (skipped.length > 0 && removed.length === 0 && failed.length === 0) {\n console.log(chalk.dim('No WorkOS skills were installed.'));\n }\n\n if (failed.length > 0) {\n logError(`Failed to remove ${failed.length} skill(s)`);\n console.log(chalk.red(`\\n✗ Failed to remove ${failed.length}:\\n`));\n for (const r of failed) {\n console.log(` ${r.skill} ← ${r.agent}: ${chalk.dim(r.error)}`);\n }\n exitWithCode(ExitCode.GENERAL_ERROR);\n }\n\n console.log(chalk.green('\\nDone!'));\n}\n"]}
|
package/dist/commands/user.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export declare function runUserGet(userId: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
2
|
-
export interface UserListOptions {
|
|
3
|
-
email?: string;
|
|
4
|
-
organization?: string;
|
|
5
|
-
limit?: number;
|
|
6
|
-
before?: string;
|
|
7
|
-
after?: string;
|
|
8
|
-
order?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function runUserList(options: UserListOptions, apiKey: string, baseUrl?: string): Promise<void>;
|
|
11
|
-
export interface UserUpdateOptions {
|
|
12
|
-
firstName?: string;
|
|
13
|
-
lastName?: string;
|
|
14
|
-
emailVerified?: boolean;
|
|
15
|
-
password?: string;
|
|
16
|
-
externalId?: string;
|
|
17
|
-
}
|
|
18
|
-
export declare function runUserUpdate(userId: string, apiKey: string, options: UserUpdateOptions, baseUrl?: string): Promise<void>;
|
|
19
|
-
export declare function runUserDelete(userId: string, apiKey: string, baseUrl?: string): Promise<void>;
|
package/dist/commands/user.js
DELETED
|
@@ -1,92 +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 } from '../utils/output.js';
|
|
5
|
-
import { createApiErrorHandler } from '../lib/api-error-handler.js';
|
|
6
|
-
const handleApiError = createApiErrorHandler('User');
|
|
7
|
-
export async function runUserGet(userId, apiKey, baseUrl) {
|
|
8
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
9
|
-
try {
|
|
10
|
-
const user = await client.sdk.userManagement.getUser(userId);
|
|
11
|
-
outputJson(user);
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
handleApiError(error);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export async function runUserList(options, apiKey, baseUrl) {
|
|
18
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
19
|
-
try {
|
|
20
|
-
const result = await client.sdk.userManagement.listUsers({
|
|
21
|
-
email: options.email,
|
|
22
|
-
organizationId: options.organization,
|
|
23
|
-
limit: options.limit,
|
|
24
|
-
before: options.before,
|
|
25
|
-
after: options.after,
|
|
26
|
-
order: options.order,
|
|
27
|
-
});
|
|
28
|
-
if (isJsonMode()) {
|
|
29
|
-
outputJson({ data: result.data, listMetadata: result.listMetadata });
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (result.data.length === 0) {
|
|
33
|
-
console.log('No users found.');
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const rows = result.data.map((user) => [
|
|
37
|
-
user.id,
|
|
38
|
-
user.email,
|
|
39
|
-
user.firstName || chalk.dim('-'),
|
|
40
|
-
user.lastName || chalk.dim('-'),
|
|
41
|
-
user.emailVerified ? 'Yes' : 'No',
|
|
42
|
-
]);
|
|
43
|
-
console.log(formatTable([
|
|
44
|
-
{ header: 'ID' },
|
|
45
|
-
{ header: 'Email' },
|
|
46
|
-
{ header: 'First Name' },
|
|
47
|
-
{ header: 'Last Name' },
|
|
48
|
-
{ header: 'Verified' },
|
|
49
|
-
], rows));
|
|
50
|
-
const { before, after } = result.listMetadata;
|
|
51
|
-
if (before && after) {
|
|
52
|
-
console.log(chalk.dim(`Before: ${before} After: ${after}`));
|
|
53
|
-
}
|
|
54
|
-
else if (before) {
|
|
55
|
-
console.log(chalk.dim(`Before: ${before}`));
|
|
56
|
-
}
|
|
57
|
-
else if (after) {
|
|
58
|
-
console.log(chalk.dim(`After: ${after}`));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
handleApiError(error);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
export async function runUserUpdate(userId, apiKey, options, baseUrl) {
|
|
66
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
67
|
-
try {
|
|
68
|
-
const user = await client.sdk.userManagement.updateUser({
|
|
69
|
-
userId,
|
|
70
|
-
...(options.firstName !== undefined && { firstName: options.firstName }),
|
|
71
|
-
...(options.lastName !== undefined && { lastName: options.lastName }),
|
|
72
|
-
...(options.emailVerified !== undefined && { emailVerified: options.emailVerified }),
|
|
73
|
-
...(options.password !== undefined && { password: options.password }),
|
|
74
|
-
...(options.externalId !== undefined && { externalId: options.externalId }),
|
|
75
|
-
});
|
|
76
|
-
outputSuccess('Updated user', user);
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
handleApiError(error);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
export async function runUserDelete(userId, apiKey, baseUrl) {
|
|
83
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
84
|
-
try {
|
|
85
|
-
await client.sdk.userManagement.deleteUser(userId);
|
|
86
|
-
outputSuccess('Deleted user', { id: userId });
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
handleApiError(error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=user.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from 'chalk';\nimport { createWorkOSClient } from '../lib/workos-client.js';\nimport { formatTable } from '../utils/table.js';\nimport { outputSuccess, outputJson, isJsonMode } from '../utils/output.js';\nimport { createApiErrorHandler } from '../lib/api-error-handler.js';\n\nconst handleApiError = createApiErrorHandler('User');\n\nexport async function runUserGet(userId: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const user = await client.sdk.userManagement.getUser(userId);\n outputJson(user);\n } catch (error) {\n handleApiError(error);\n }\n}\n\nexport interface UserListOptions {\n email?: string;\n organization?: string;\n limit?: number;\n before?: string;\n after?: string;\n order?: string;\n}\n\nexport async function runUserList(options: UserListOptions, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const result = await client.sdk.userManagement.listUsers({\n email: options.email,\n organizationId: options.organization,\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 users found.');\n return;\n }\n\n const rows = result.data.map((user) => [\n user.id,\n user.email,\n user.firstName || chalk.dim('-'),\n user.lastName || chalk.dim('-'),\n user.emailVerified ? 'Yes' : 'No',\n ]);\n\n console.log(\n formatTable(\n [\n { header: 'ID' },\n { header: 'Email' },\n { header: 'First Name' },\n { header: 'Last Name' },\n { header: 'Verified' },\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 interface UserUpdateOptions {\n firstName?: string;\n lastName?: string;\n emailVerified?: boolean;\n password?: string;\n externalId?: string;\n}\n\nexport async function runUserUpdate(\n userId: string,\n apiKey: string,\n options: UserUpdateOptions,\n baseUrl?: string,\n): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n const user = await client.sdk.userManagement.updateUser({\n userId,\n ...(options.firstName !== undefined && { firstName: options.firstName }),\n ...(options.lastName !== undefined && { lastName: options.lastName }),\n ...(options.emailVerified !== undefined && { emailVerified: options.emailVerified }),\n ...(options.password !== undefined && { password: options.password }),\n ...(options.externalId !== undefined && { externalId: options.externalId }),\n });\n outputSuccess('Updated user', user);\n } catch (error) {\n handleApiError(error);\n }\n}\n\nexport async function runUserDelete(userId: string, apiKey: string, baseUrl?: string): Promise<void> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n try {\n await client.sdk.userManagement.deleteUser(userId);\n outputSuccess('Deleted user', { id: userId });\n } catch (error) {\n handleApiError(error);\n }\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface SecretMapping {
|
|
2
|
-
envVar: string;
|
|
3
|
-
vaultName: string;
|
|
4
|
-
}
|
|
5
|
-
export interface VaultRunOptions {
|
|
6
|
-
secrets: string[];
|
|
7
|
-
command: string[];
|
|
8
|
-
env?: string;
|
|
9
|
-
dryRun?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function parseSecretMappings(secrets: string[]): SecretMapping[];
|
|
12
|
-
export declare function fetchSecrets(mappings: SecretMapping[], apiKey: string, baseUrl?: string): Promise<Map<string, string>>;
|
|
13
|
-
export declare function runVaultRun(options: VaultRunOptions, flagApiKey?: string): Promise<number | void>;
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { spawn } from 'node:child_process';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { createWorkOSClient } from '../lib/workos-client.js';
|
|
4
|
-
import { createApiErrorHandler } from '../lib/api-error-handler.js';
|
|
5
|
-
import { isJsonMode, outputJson, exitWithError } from '../utils/output.js';
|
|
6
|
-
import { formatTable } from '../utils/table.js';
|
|
7
|
-
import { SPAWN_OPTS, IS_WINDOWS } from '../utils/platform.js';
|
|
8
|
-
import { formatWorkOSCommand } from '../utils/command-invocation.js';
|
|
9
|
-
const handleApiError = createApiErrorHandler('Vault');
|
|
10
|
-
export function parseSecretMappings(secrets) {
|
|
11
|
-
if (!secrets || secrets.length === 0) {
|
|
12
|
-
exitWithError({
|
|
13
|
-
code: 'missing_secrets',
|
|
14
|
-
message: 'At least one --secret ENV=name mapping is required',
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
const result = [];
|
|
18
|
-
const seen = new Set();
|
|
19
|
-
for (const raw of secrets) {
|
|
20
|
-
const eqIndex = raw.indexOf('=');
|
|
21
|
-
if (eqIndex <= 0 || eqIndex === raw.length - 1) {
|
|
22
|
-
exitWithError({
|
|
23
|
-
code: 'invalid_secret_format',
|
|
24
|
-
message: `Invalid secret mapping '${raw}'. Expected format: ENV_VAR=vault-name`,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
const envVar = raw.slice(0, eqIndex);
|
|
28
|
-
const vaultName = raw.slice(eqIndex + 1);
|
|
29
|
-
if (seen.has(envVar)) {
|
|
30
|
-
exitWithError({
|
|
31
|
-
code: 'duplicate_env_var',
|
|
32
|
-
message: `Duplicate environment variable '${envVar}' in --secret mappings`,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
seen.add(envVar);
|
|
36
|
-
result.push({ envVar, vaultName });
|
|
37
|
-
}
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
|
-
export async function fetchSecrets(mappings, apiKey, baseUrl) {
|
|
41
|
-
const client = createWorkOSClient(apiKey, baseUrl);
|
|
42
|
-
const entries = await Promise.all(mappings.map(async ({ envVar, vaultName }) => {
|
|
43
|
-
let obj;
|
|
44
|
-
try {
|
|
45
|
-
obj = await client.sdk.vault.readObjectByName(vaultName);
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
return handleApiError(error, vaultName);
|
|
49
|
-
}
|
|
50
|
-
if (typeof obj.value !== 'string') {
|
|
51
|
-
exitWithError({
|
|
52
|
-
code: 'vault_value_missing',
|
|
53
|
-
message: `Vault object '${vaultName}' has no readable value`,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return [envVar, obj.value];
|
|
57
|
-
}));
|
|
58
|
-
return new Map(entries);
|
|
59
|
-
}
|
|
60
|
-
async function resolveRunApiKey(envName, flagApiKey) {
|
|
61
|
-
if (!envName) {
|
|
62
|
-
const { resolveApiKey } = await import('../lib/api-key.js');
|
|
63
|
-
return resolveApiKey({ apiKey: flagApiKey });
|
|
64
|
-
}
|
|
65
|
-
const { getConfig } = await import('../lib/config-store.js');
|
|
66
|
-
const config = getConfig();
|
|
67
|
-
const env = config?.environments[envName];
|
|
68
|
-
if (!env || !env.apiKey) {
|
|
69
|
-
exitWithError({
|
|
70
|
-
code: 'env_not_found',
|
|
71
|
-
message: `Environment '${envName}' not found or has no API key. Run '${formatWorkOSCommand('env list')}' to see available environments.`,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
return env.apiKey;
|
|
75
|
-
}
|
|
76
|
-
async function resolveRunBaseUrl(envName) {
|
|
77
|
-
if (envName) {
|
|
78
|
-
const { getConfig } = await import('../lib/config-store.js');
|
|
79
|
-
const config = getConfig();
|
|
80
|
-
const env = config?.environments[envName];
|
|
81
|
-
// Use the named env's endpoint, or the default. Never fall through to
|
|
82
|
-
// the active env's endpoint -- that would send the wrong API key to
|
|
83
|
-
// the wrong host when active != selected.
|
|
84
|
-
return env?.endpoint ?? 'https://api.workos.com';
|
|
85
|
-
}
|
|
86
|
-
const { resolveApiBaseUrl } = await import('../lib/api-key.js');
|
|
87
|
-
return resolveApiBaseUrl();
|
|
88
|
-
}
|
|
89
|
-
function printDryRun(mappings, envName) {
|
|
90
|
-
if (isJsonMode()) {
|
|
91
|
-
outputJson({
|
|
92
|
-
dryRun: true,
|
|
93
|
-
env: envName ?? null,
|
|
94
|
-
mappings: mappings.map(({ envVar, vaultName }) => ({ envVar, vaultName })),
|
|
95
|
-
});
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
console.log(chalk.dim('Dry run (no secrets will be fetched and no child process will be spawned).'));
|
|
99
|
-
if (envName)
|
|
100
|
-
console.log(chalk.dim(`Environment: ${envName}`));
|
|
101
|
-
console.log();
|
|
102
|
-
const rows = mappings.map(({ envVar, vaultName }) => [envVar, vaultName]);
|
|
103
|
-
console.log(formatTable([{ header: 'Environment Variable' }, { header: 'Vault Object' }], rows));
|
|
104
|
-
}
|
|
105
|
-
function spawnChild(command, args, childEnv) {
|
|
106
|
-
return new Promise((resolve, reject) => {
|
|
107
|
-
let child;
|
|
108
|
-
try {
|
|
109
|
-
child = spawn(command, args, {
|
|
110
|
-
stdio: 'inherit',
|
|
111
|
-
env: childEnv,
|
|
112
|
-
...SPAWN_OPTS,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
catch (err) {
|
|
116
|
-
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
117
|
-
exitWithError({
|
|
118
|
-
code: 'spawn_failed',
|
|
119
|
-
message: `Failed to start: ${command}: ${message}`,
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
child.on('error', (err) => {
|
|
123
|
-
try {
|
|
124
|
-
const code = err.code;
|
|
125
|
-
if (code === 'ENOENT') {
|
|
126
|
-
exitWithError({ code: 'command_not_found', message: `Command not found: ${command}` });
|
|
127
|
-
}
|
|
128
|
-
exitWithError({ code: 'spawn_error', message: `Failed to start: ${command}: ${err.message}` });
|
|
129
|
-
}
|
|
130
|
-
catch (e) {
|
|
131
|
-
reject(e);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
const forward = (signal) => {
|
|
135
|
-
if (!child.killed)
|
|
136
|
-
child.kill(signal);
|
|
137
|
-
};
|
|
138
|
-
process.once('SIGINT', () => forward('SIGINT'));
|
|
139
|
-
process.once('SIGTERM', () => forward('SIGTERM'));
|
|
140
|
-
if (IS_WINDOWS) {
|
|
141
|
-
process.once('SIGBREAK', () => forward('SIGINT'));
|
|
142
|
-
}
|
|
143
|
-
child.on('exit', (code, signal) => {
|
|
144
|
-
if (signal) {
|
|
145
|
-
const num = signalToNumber(signal);
|
|
146
|
-
resolve(num ? 128 + num : 1);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
resolve(code ?? 0);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
function signalToNumber(signal) {
|
|
155
|
-
const map = {
|
|
156
|
-
SIGHUP: 1,
|
|
157
|
-
SIGINT: 2,
|
|
158
|
-
SIGQUIT: 3,
|
|
159
|
-
SIGKILL: 9,
|
|
160
|
-
SIGTERM: 15,
|
|
161
|
-
};
|
|
162
|
-
return map[signal] ?? 0;
|
|
163
|
-
}
|
|
164
|
-
export async function runVaultRun(options, flagApiKey) {
|
|
165
|
-
const mappings = parseSecretMappings(options.secrets);
|
|
166
|
-
if (options.dryRun) {
|
|
167
|
-
printDryRun(mappings, options.env);
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (!options.command || options.command.length === 0) {
|
|
171
|
-
exitWithError({
|
|
172
|
-
code: 'missing_command',
|
|
173
|
-
message: `No command specified. Usage: ${formatWorkOSCommand('vault run --secret ENV=name -- command')}`,
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
const apiKey = await resolveRunApiKey(options.env, flagApiKey);
|
|
177
|
-
const baseUrl = await resolveRunBaseUrl(options.env);
|
|
178
|
-
const secretValues = await fetchSecrets(mappings, apiKey, baseUrl);
|
|
179
|
-
// Metadata to stderr so the child process owns stdout.
|
|
180
|
-
if (isJsonMode()) {
|
|
181
|
-
console.error(JSON.stringify({
|
|
182
|
-
status: 'ok',
|
|
183
|
-
message: 'Injected secrets into child process',
|
|
184
|
-
env: options.env ?? null,
|
|
185
|
-
injected: mappings.map(({ envVar, vaultName }) => ({ envVar, vaultName })),
|
|
186
|
-
}));
|
|
187
|
-
}
|
|
188
|
-
const childEnv = { ...process.env };
|
|
189
|
-
for (const [envVar, value] of secretValues) {
|
|
190
|
-
childEnv[envVar] = value;
|
|
191
|
-
}
|
|
192
|
-
const [cmd, ...args] = options.command;
|
|
193
|
-
return spawnChild(cmd, args, childEnv);
|
|
194
|
-
}
|
|
195
|
-
//# sourceMappingURL=vault-run.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vault-run.js","sourceRoot":"","sources":["../../src/commands/vault-run.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn, type ChildProcess } from 'node:child_process';\nimport chalk from 'chalk';\nimport { createWorkOSClient } from '../lib/workos-client.js';\nimport { createApiErrorHandler } from '../lib/api-error-handler.js';\nimport { isJsonMode, outputJson, exitWithError } from '../utils/output.js';\nimport { formatTable } from '../utils/table.js';\nimport { SPAWN_OPTS, IS_WINDOWS } from '../utils/platform.js';\nimport { formatWorkOSCommand } from '../utils/command-invocation.js';\n\nconst handleApiError = createApiErrorHandler('Vault');\n\nexport interface SecretMapping {\n envVar: string;\n vaultName: string;\n}\n\nexport interface VaultRunOptions {\n secrets: string[];\n command: string[];\n env?: string;\n dryRun?: boolean;\n}\n\nexport function parseSecretMappings(secrets: string[]): SecretMapping[] {\n if (!secrets || secrets.length === 0) {\n exitWithError({\n code: 'missing_secrets',\n message: 'At least one --secret ENV=name mapping is required',\n });\n }\n\n const result: SecretMapping[] = [];\n const seen = new Set<string>();\n\n for (const raw of secrets) {\n const eqIndex = raw.indexOf('=');\n if (eqIndex <= 0 || eqIndex === raw.length - 1) {\n exitWithError({\n code: 'invalid_secret_format',\n message: `Invalid secret mapping '${raw}'. Expected format: ENV_VAR=vault-name`,\n });\n }\n\n const envVar = raw.slice(0, eqIndex);\n const vaultName = raw.slice(eqIndex + 1);\n\n if (seen.has(envVar)) {\n exitWithError({\n code: 'duplicate_env_var',\n message: `Duplicate environment variable '${envVar}' in --secret mappings`,\n });\n }\n seen.add(envVar);\n\n result.push({ envVar, vaultName });\n }\n\n return result;\n}\n\nexport async function fetchSecrets(\n mappings: SecretMapping[],\n apiKey: string,\n baseUrl?: string,\n): Promise<Map<string, string>> {\n const client = createWorkOSClient(apiKey, baseUrl);\n\n const entries = await Promise.all(\n mappings.map(async ({ envVar, vaultName }): Promise<[string, string]> => {\n let obj: { value?: unknown };\n try {\n obj = await client.sdk.vault.readObjectByName(vaultName);\n } catch (error) {\n return handleApiError(error, vaultName);\n }\n if (typeof obj.value !== 'string') {\n exitWithError({\n code: 'vault_value_missing',\n message: `Vault object '${vaultName}' has no readable value`,\n });\n }\n return [envVar, obj.value];\n }),\n );\n\n return new Map(entries);\n}\n\nasync function resolveRunApiKey(envName: string | undefined, flagApiKey?: string): Promise<string> {\n if (!envName) {\n const { resolveApiKey } = await import('../lib/api-key.js');\n return resolveApiKey({ apiKey: flagApiKey });\n }\n\n const { getConfig } = await import('../lib/config-store.js');\n const config = getConfig();\n const env = config?.environments[envName];\n if (!env || !env.apiKey) {\n exitWithError({\n code: 'env_not_found',\n message: `Environment '${envName}' not found or has no API key. Run '${formatWorkOSCommand('env list')}' to see available environments.`,\n });\n }\n return env.apiKey;\n}\n\nasync function resolveRunBaseUrl(envName: string | undefined): Promise<string> {\n if (envName) {\n const { getConfig } = await import('../lib/config-store.js');\n const config = getConfig();\n const env = config?.environments[envName];\n // Use the named env's endpoint, or the default. Never fall through to\n // the active env's endpoint -- that would send the wrong API key to\n // the wrong host when active != selected.\n return env?.endpoint ?? 'https://api.workos.com';\n }\n const { resolveApiBaseUrl } = await import('../lib/api-key.js');\n return resolveApiBaseUrl();\n}\n\nfunction printDryRun(mappings: SecretMapping[], envName?: string): void {\n if (isJsonMode()) {\n outputJson({\n dryRun: true,\n env: envName ?? null,\n mappings: mappings.map(({ envVar, vaultName }) => ({ envVar, vaultName })),\n });\n return;\n }\n\n console.log(chalk.dim('Dry run (no secrets will be fetched and no child process will be spawned).'));\n if (envName) console.log(chalk.dim(`Environment: ${envName}`));\n console.log();\n const rows = mappings.map(({ envVar, vaultName }) => [envVar, vaultName]);\n console.log(formatTable([{ header: 'Environment Variable' }, { header: 'Vault Object' }], rows));\n}\n\nfunction spawnChild(command: string, args: string[], childEnv: NodeJS.ProcessEnv): Promise<number> {\n return new Promise((resolve, reject) => {\n let child: ChildProcess;\n try {\n child = spawn(command, args, {\n stdio: 'inherit',\n env: childEnv,\n ...SPAWN_OPTS,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Unknown error';\n exitWithError({\n code: 'spawn_failed',\n message: `Failed to start: ${command}: ${message}`,\n });\n }\n\n child.on('error', (err) => {\n try {\n const code = (err as NodeJS.ErrnoException).code;\n if (code === 'ENOENT') {\n exitWithError({ code: 'command_not_found', message: `Command not found: ${command}` });\n }\n exitWithError({ code: 'spawn_error', message: `Failed to start: ${command}: ${err.message}` });\n } catch (e) {\n reject(e);\n }\n });\n\n const forward = (signal: NodeJS.Signals) => {\n if (!child.killed) child.kill(signal);\n };\n process.once('SIGINT', () => forward('SIGINT'));\n process.once('SIGTERM', () => forward('SIGTERM'));\n if (IS_WINDOWS) {\n process.once('SIGBREAK', () => forward('SIGINT'));\n }\n\n child.on('exit', (code, signal) => {\n if (signal) {\n const num = signalToNumber(signal);\n resolve(num ? 128 + num : 1);\n } else {\n resolve(code ?? 0);\n }\n });\n });\n}\n\nfunction signalToNumber(signal: NodeJS.Signals): number {\n const map: Record<string, number> = {\n SIGHUP: 1,\n SIGINT: 2,\n SIGQUIT: 3,\n SIGKILL: 9,\n SIGTERM: 15,\n };\n return map[signal] ?? 0;\n}\n\nexport async function runVaultRun(options: VaultRunOptions, flagApiKey?: string): Promise<number | void> {\n const mappings = parseSecretMappings(options.secrets);\n\n if (options.dryRun) {\n printDryRun(mappings, options.env);\n return;\n }\n\n if (!options.command || options.command.length === 0) {\n exitWithError({\n code: 'missing_command',\n message: `No command specified. Usage: ${formatWorkOSCommand('vault run --secret ENV=name -- command')}`,\n });\n }\n\n const apiKey = await resolveRunApiKey(options.env, flagApiKey);\n const baseUrl = await resolveRunBaseUrl(options.env);\n const secretValues = await fetchSecrets(mappings, apiKey, baseUrl);\n\n // Metadata to stderr so the child process owns stdout.\n if (isJsonMode()) {\n console.error(\n JSON.stringify({\n status: 'ok',\n message: 'Injected secrets into child process',\n env: options.env ?? null,\n injected: mappings.map(({ envVar, vaultName }) => ({ envVar, vaultName })),\n }),\n );\n }\n\n const childEnv: NodeJS.ProcessEnv = { ...process.env };\n for (const [envVar, value] of secretValues) {\n childEnv[envVar] = value;\n }\n\n const [cmd, ...args] = options.command;\n return spawnChild(cmd, args, childEnv);\n}\n"]}
|
package/dist/commands/vault.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export interface VaultListOptions {
|
|
2
|
-
limit?: number;
|
|
3
|
-
before?: string;
|
|
4
|
-
after?: string;
|
|
5
|
-
order?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function runVaultList(options: VaultListOptions, apiKey: string, baseUrl?: string): Promise<void>;
|
|
8
|
-
export declare function runVaultGet(id: string, decrypt: boolean, apiKey: string, baseUrl?: string): Promise<void>;
|
|
9
|
-
export declare function runVaultGetByName(name: string, decrypt: boolean, apiKey: string, baseUrl?: string): Promise<void>;
|
|
10
|
-
export interface VaultCreateOptions {
|
|
11
|
-
name: string;
|
|
12
|
-
value: string;
|
|
13
|
-
org?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare function runVaultCreate(options: VaultCreateOptions, apiKey: string, baseUrl?: string): Promise<void>;
|
|
16
|
-
export interface VaultUpdateOptions {
|
|
17
|
-
id: string;
|
|
18
|
-
value: string;
|
|
19
|
-
versionCheck?: string;
|
|
20
|
-
}
|
|
21
|
-
export declare function runVaultUpdate(options: VaultUpdateOptions, apiKey: string, baseUrl?: string): Promise<void>;
|
|
22
|
-
export declare function runVaultDelete(id: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
23
|
-
export declare function runVaultDescribe(id: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
24
|
-
export declare function runVaultListVersions(id: string, apiKey: string, baseUrl?: string): Promise<void>;
|
|
25
|
-
export declare function readValueFromStdin(): Promise<string>;
|