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/lib/post-install.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { execFileSync } from 'node:child_process';
|
|
2
|
-
import { writeFileSync, unlinkSync } from 'node:fs';
|
|
3
|
-
import { tmpdir } from 'node:os';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import { getDefaultBranch, getUncommittedFiles } from '../utils/git-utils.js';
|
|
6
|
-
export function detectChanges() {
|
|
7
|
-
const files = getUncommittedFiles();
|
|
8
|
-
return { hasChanges: files.length > 0, files };
|
|
9
|
-
}
|
|
10
|
-
export function stageAndCommit(message, cwd) {
|
|
11
|
-
execFileSync('git', ['add', '-A'], { cwd, stdio: 'ignore' });
|
|
12
|
-
execFileSync('git', ['commit', '-m', message], { cwd, stdio: 'ignore' });
|
|
13
|
-
}
|
|
14
|
-
export function pushBranch(cwd) {
|
|
15
|
-
execFileSync('git', ['push', '-u', 'origin', 'HEAD'], { cwd, stdio: 'pipe' });
|
|
16
|
-
}
|
|
17
|
-
export function createPullRequest(title, body, cwd) {
|
|
18
|
-
const baseBranch = getDefaultBranch();
|
|
19
|
-
const tmpFile = join(tmpdir(), `pr-body-${Date.now()}.md`);
|
|
20
|
-
writeFileSync(tmpFile, body, 'utf-8');
|
|
21
|
-
try {
|
|
22
|
-
return execFileSync('gh', ['pr', 'create', '--title', title, '--body-file', tmpFile, '--base', baseBranch], {
|
|
23
|
-
cwd,
|
|
24
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
25
|
-
})
|
|
26
|
-
.toString()
|
|
27
|
-
.trim();
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
try {
|
|
31
|
-
unlinkSync(tmpFile);
|
|
32
|
-
}
|
|
33
|
-
catch { }
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export function getManualPrInstructions(branch) {
|
|
37
|
-
const baseBranch = getDefaultBranch();
|
|
38
|
-
return `
|
|
39
|
-
To create a PR manually:
|
|
40
|
-
|
|
41
|
-
1. Push your branch:
|
|
42
|
-
git push -u origin ${branch}
|
|
43
|
-
|
|
44
|
-
2. Create PR via GitHub:
|
|
45
|
-
https://github.com/<owner>/<repo>/compare/${baseBranch}...${branch}
|
|
46
|
-
|
|
47
|
-
Or install the GitHub CLI:
|
|
48
|
-
https://cli.github.com/
|
|
49
|
-
`.trim();
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=post-install.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"post-install.js","sourceRoot":"","sources":["../../src/lib/post-install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;IACpC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,GAAW;IACzD,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,IAAY,EAAE,GAAW;IACxE,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3D,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;YAC1G,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;SAClC,CAAC;aACC,QAAQ,EAAE;aACV,IAAI,EAAE,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,UAAU,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,OAAO;;;;wBAIe,MAAM;;;+CAGiB,UAAU,MAAM,MAAM;;;;CAIpE,CAAC,IAAI,EAAE,CAAC;AACT,CAAC","sourcesContent":["import { execFileSync } from 'node:child_process';\nimport { writeFileSync, unlinkSync } from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { join } from 'node:path';\nimport { getDefaultBranch, getUncommittedFiles } from '../utils/git-utils.js';\n\nexport function detectChanges(): { hasChanges: boolean; files: string[] } {\n const files = getUncommittedFiles();\n return { hasChanges: files.length > 0, files };\n}\n\nexport function stageAndCommit(message: string, cwd: string): void {\n execFileSync('git', ['add', '-A'], { cwd, stdio: 'ignore' });\n execFileSync('git', ['commit', '-m', message], { cwd, stdio: 'ignore' });\n}\n\nexport function pushBranch(cwd: string): void {\n execFileSync('git', ['push', '-u', 'origin', 'HEAD'], { cwd, stdio: 'pipe' });\n}\n\nexport function createPullRequest(title: string, body: string, cwd: string): string {\n const baseBranch = getDefaultBranch();\n const tmpFile = join(tmpdir(), `pr-body-${Date.now()}.md`);\n writeFileSync(tmpFile, body, 'utf-8');\n\n try {\n return execFileSync('gh', ['pr', 'create', '--title', title, '--body-file', tmpFile, '--base', baseBranch], {\n cwd,\n stdio: ['ignore', 'pipe', 'pipe'],\n })\n .toString()\n .trim();\n } finally {\n try {\n unlinkSync(tmpFile);\n } catch {}\n }\n}\n\nexport function getManualPrInstructions(branch: string): string {\n const baseBranch = getDefaultBranch();\n return `\nTo create a PR manually:\n\n1. Push your branch:\n git push -u origin ${branch}\n\n2. Create PR via GitHub:\n https://github.com/<owner>/<repo>/compare/${baseBranch}...${branch}\n\nOr install the GitHub CLI:\n https://cli.github.com/\n`.trim();\n}\n"]}
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plain CLI preferences store.
|
|
3
|
-
*
|
|
4
|
-
* Stored at ~/.workos/preferences.json as plain JSON. These are NOT secrets —
|
|
5
|
-
* knowing that someone opted out of telemetry leaks nothing — so this
|
|
6
|
-
* deliberately avoids the keyring abstraction (config-store.ts) to prevent a
|
|
7
|
-
* non-secret write from ever triggering the insecure-fallback security warning.
|
|
8
|
-
*
|
|
9
|
-
* Mirrors the structural pattern of device-id.ts: a synchronous accessor backed
|
|
10
|
-
* by a cache, an async prewarm that populates that cache off the blocking-fs
|
|
11
|
-
* path, and a never-throws contract on every read/parse so a corrupt file can
|
|
12
|
-
* never break a command.
|
|
13
|
-
*/
|
|
14
|
-
export interface CliPreferences {
|
|
15
|
-
telemetry?: {
|
|
16
|
-
/** true => the user explicitly opted out of telemetry. */
|
|
17
|
-
optedOut?: boolean;
|
|
18
|
-
/** ISO timestamp the first-run notice was shown — written in Phase 2 only. */
|
|
19
|
-
noticeShownAt?: string;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Legacy MCP-install onboarding state. The MCP offer folded into `setup` (see
|
|
23
|
-
* commands/setup.ts); these fields are retained for back-compat so a user who
|
|
24
|
-
* declined the old standalone MCP offer is still treated as setup-declined
|
|
25
|
-
* (see isSetupDeclined). Kept in this plain-JSON store alongside telemetry.
|
|
26
|
-
*/
|
|
27
|
-
mcp?: {
|
|
28
|
-
/**
|
|
29
|
-
* true => the user explicitly declined an automatic MCP install offer. The
|
|
30
|
-
* decline is absolute: no automatic surface (prompt or banner) asks again;
|
|
31
|
-
* `workos mcp install` stays available manually.
|
|
32
|
-
*/
|
|
33
|
-
promptDeclined?: boolean;
|
|
34
|
-
/** ISO timestamp the one-time MCP banner was shown. */
|
|
35
|
-
bannerShownAt?: string;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* Consolidated agent-setup onboarding state (skills + MCP). Owned by
|
|
39
|
-
* commands/setup.ts. `declined` is absolute for the automatic surfaces
|
|
40
|
-
* (post-login / post-install); `workos setup` stays available manually.
|
|
41
|
-
* Legacy `mcp.promptDeclined` is treated as an implicit setup-decline on read
|
|
42
|
-
* (see isSetupDeclined) so users who already declined MCP are never re-asked.
|
|
43
|
-
*/
|
|
44
|
-
setup?: {
|
|
45
|
-
declined?: boolean;
|
|
46
|
-
/** ISO timestamp the user completed a setup run. */
|
|
47
|
-
completedAt?: string;
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/** Effective source of the resolved telemetry-enabled decision. */
|
|
51
|
-
export type TelemetrySource = 'env' | 'preference' | 'default';
|
|
52
|
-
export declare function getPreferencesPath(): string;
|
|
53
|
-
/**
|
|
54
|
-
* Asynchronously load preferences and warm the cache the synchronous
|
|
55
|
-
* getPreferences() reads. Memoized: the first call performs the IO, concurrent
|
|
56
|
-
* and later callers await the same promise. Prewarming this at startup keeps
|
|
57
|
-
* the synchronous telemetry path off blocking fs IO. Never rejects.
|
|
58
|
-
*/
|
|
59
|
-
export declare function loadPreferences(): Promise<CliPreferences>;
|
|
60
|
-
/**
|
|
61
|
-
* Synchronous accessor. Returns the prewarmed value when loadPreferences() has
|
|
62
|
-
* run; otherwise performs a one-time synchronous read of the same file. On any
|
|
63
|
-
* IO/parse failure returns {} (telemetry stays at its default-on state). Never
|
|
64
|
-
* throws.
|
|
65
|
-
*/
|
|
66
|
-
export declare function getPreferences(): CliPreferences;
|
|
67
|
-
/**
|
|
68
|
-
* Read-modify-write the on-disk preferences, merging `next` over the current
|
|
69
|
-
* persisted value so future fields are never clobbered, then update the cache.
|
|
70
|
-
* Throws on write failure so callers on the command path (opt-out/opt-in) can
|
|
71
|
-
* surface a clear error — the read path swallows, the write path does not.
|
|
72
|
-
*/
|
|
73
|
-
export declare function savePreferences(next: CliPreferences): void;
|
|
74
|
-
/** Whether the user has explicitly opted out via the saved preference. */
|
|
75
|
-
export declare function isTelemetryOptedOut(): boolean;
|
|
76
|
-
/** Persist the opt-out flag. Throws on write failure (see savePreferences). */
|
|
77
|
-
export declare function setTelemetryOptedOut(value: boolean): void;
|
|
78
|
-
/** Whether the first-run telemetry notice has already been shown (ever). */
|
|
79
|
-
export declare function isNoticeShown(): boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Persist the first-run notice as shown, stamping the current time. Uses the
|
|
82
|
-
* read-modify-write savePreferences so it never clobbers the optedOut flag.
|
|
83
|
-
* Throws on write failure (see savePreferences) — the caller in
|
|
84
|
-
* telemetry-notice.ts swallows it so a read-only FS never blocks a command.
|
|
85
|
-
*/
|
|
86
|
-
export declare function markNoticeShown(): void;
|
|
87
|
-
/**
|
|
88
|
-
* Whether an automatic setup offer should be suppressed. Absolute once the user
|
|
89
|
-
* declines. Treats the legacy `mcp.promptDeclined` flag as an implicit decline
|
|
90
|
-
* so anyone who declined the old MCP offer is never re-prompted by the new flow.
|
|
91
|
-
*/
|
|
92
|
-
export declare function isSetupDeclined(): boolean;
|
|
93
|
-
/** Whether the user has completed a setup run (ever). */
|
|
94
|
-
export declare function isSetupCompleted(): boolean;
|
|
95
|
-
/** Persist an explicit setup decline. Throws on write failure (see savePreferences). */
|
|
96
|
-
export declare function recordSetupDeclined(): void;
|
|
97
|
-
/** Persist a completed setup run, stamping the current time. */
|
|
98
|
-
export declare function recordSetupCompleted(): void;
|
|
99
|
-
/** Clear the setup decline (new + legacy) so automatic offers resume. For `workos setup --reset`. */
|
|
100
|
-
export declare function clearSetupDecline(): void;
|
|
101
|
-
/**
|
|
102
|
-
* Tri-state env override for telemetry.
|
|
103
|
-
*
|
|
104
|
-
* Only the explicit strings 'true' / 'false' count as an override. Any other
|
|
105
|
-
* value — including unset or garbage like '1' — returns undefined and falls
|
|
106
|
-
* through to the saved preference.
|
|
107
|
-
*
|
|
108
|
-
* This is a deliberate, documented change from the old `WORKOS_TELEMETRY !==
|
|
109
|
-
* 'false'` behaviour: previously `WORKOS_TELEMETRY=1` forced telemetry on even
|
|
110
|
-
* for opted-out users; now an opt-out is respected unless the env var
|
|
111
|
-
* explicitly says 'true'.
|
|
112
|
-
*/
|
|
113
|
-
export declare function envTelemetryOverride(): boolean | undefined;
|
|
114
|
-
/**
|
|
115
|
-
* Effective telemetry-enabled decision.
|
|
116
|
-
*
|
|
117
|
-
* Resolution order:
|
|
118
|
-
* 1. envTelemetryOverride() if defined — env wins in BOTH directions.
|
|
119
|
-
* 2. otherwise !isTelemetryOptedOut() — default-on unless explicitly opted out.
|
|
120
|
-
*/
|
|
121
|
-
export declare function isTelemetryEnabled(): boolean;
|
|
122
|
-
/**
|
|
123
|
-
* Which signal produced the effective telemetry decision. Mirrors the
|
|
124
|
-
* precedence in isTelemetryEnabled() so the `telemetry status` command and the
|
|
125
|
-
* resolver can never drift.
|
|
126
|
-
*
|
|
127
|
-
* Note: an explicit opt-in (optedOut === false) reads as 'default', not
|
|
128
|
-
* 'preference' — its outcome is identical to a fresh install, and the resolver
|
|
129
|
-
* only treats optedOut === true as a non-default signal, so reporting
|
|
130
|
-
* 'preference' here would imply a behavioral difference that does not exist.
|
|
131
|
-
*/
|
|
132
|
-
export declare function getTelemetrySource(): TelemetrySource;
|
|
133
|
-
/**
|
|
134
|
-
* Delete the preferences file, returning telemetry to its fresh-install state
|
|
135
|
-
* (opted-in, first-run notice unseen). Used by `debug reset` to wipe stored CLI
|
|
136
|
-
* state alongside credentials and config. No-op if the file does not exist;
|
|
137
|
-
* throws on a real delete failure (e.g. permission denied) so the caller can
|
|
138
|
-
* surface it, mirroring clearConfig/clearCredentials. Resets the in-memory
|
|
139
|
-
* cache so subsequent reads in this process reflect the cleared state.
|
|
140
|
-
*/
|
|
141
|
-
export declare function clearPreferences(): void;
|
|
142
|
-
/** Test seam — resets the in-memory cache between test cases. */
|
|
143
|
-
export declare function __resetPreferencesCache(): void;
|
package/dist/lib/preferences.js
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plain CLI preferences store.
|
|
3
|
-
*
|
|
4
|
-
* Stored at ~/.workos/preferences.json as plain JSON. These are NOT secrets —
|
|
5
|
-
* knowing that someone opted out of telemetry leaks nothing — so this
|
|
6
|
-
* deliberately avoids the keyring abstraction (config-store.ts) to prevent a
|
|
7
|
-
* non-secret write from ever triggering the insecure-fallback security warning.
|
|
8
|
-
*
|
|
9
|
-
* Mirrors the structural pattern of device-id.ts: a synchronous accessor backed
|
|
10
|
-
* by a cache, an async prewarm that populates that cache off the blocking-fs
|
|
11
|
-
* path, and a never-throws contract on every read/parse so a corrupt file can
|
|
12
|
-
* never break a command.
|
|
13
|
-
*/
|
|
14
|
-
import fs from 'node:fs';
|
|
15
|
-
import { readFile } from 'node:fs/promises';
|
|
16
|
-
import path from 'node:path';
|
|
17
|
-
import os from 'node:os';
|
|
18
|
-
let cached;
|
|
19
|
-
let pending;
|
|
20
|
-
export function getPreferencesPath() {
|
|
21
|
-
return path.join(os.homedir(), '.workos', 'preferences.json');
|
|
22
|
-
}
|
|
23
|
-
function parsePreferences(raw) {
|
|
24
|
-
try {
|
|
25
|
-
const value = JSON.parse(raw);
|
|
26
|
-
// Defend against a file that parses to a non-object (e.g. `"true"`, `42`).
|
|
27
|
-
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
28
|
-
return value;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
// Corrupt JSON — fall through to empty preferences. A later savePreferences
|
|
33
|
-
// overwrites it cleanly; we never auto-delete.
|
|
34
|
-
}
|
|
35
|
-
return {};
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Asynchronously load preferences and warm the cache the synchronous
|
|
39
|
-
* getPreferences() reads. Memoized: the first call performs the IO, concurrent
|
|
40
|
-
* and later callers await the same promise. Prewarming this at startup keeps
|
|
41
|
-
* the synchronous telemetry path off blocking fs IO. Never rejects.
|
|
42
|
-
*/
|
|
43
|
-
export function loadPreferences() {
|
|
44
|
-
if (cached)
|
|
45
|
-
return Promise.resolve(cached);
|
|
46
|
-
if (pending)
|
|
47
|
-
return pending;
|
|
48
|
-
pending = (async () => {
|
|
49
|
-
try {
|
|
50
|
-
const raw = await readFile(getPreferencesPath(), 'utf8');
|
|
51
|
-
cached = parsePreferences(raw);
|
|
52
|
-
}
|
|
53
|
-
catch {
|
|
54
|
-
// Missing/unreadable file — treat as no preferences set.
|
|
55
|
-
cached = {};
|
|
56
|
-
}
|
|
57
|
-
finally {
|
|
58
|
-
pending = undefined;
|
|
59
|
-
}
|
|
60
|
-
return cached;
|
|
61
|
-
})();
|
|
62
|
-
return pending;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Synchronous accessor. Returns the prewarmed value when loadPreferences() has
|
|
66
|
-
* run; otherwise performs a one-time synchronous read of the same file. On any
|
|
67
|
-
* IO/parse failure returns {} (telemetry stays at its default-on state). Never
|
|
68
|
-
* throws.
|
|
69
|
-
*/
|
|
70
|
-
export function getPreferences() {
|
|
71
|
-
if (cached)
|
|
72
|
-
return cached;
|
|
73
|
-
try {
|
|
74
|
-
const raw = fs.readFileSync(getPreferencesPath(), 'utf8');
|
|
75
|
-
cached = parsePreferences(raw);
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
// Missing/unreadable/corrupt — telemetry stays at its default-on state.
|
|
79
|
-
cached = {};
|
|
80
|
-
}
|
|
81
|
-
return cached;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Read-modify-write the on-disk preferences, merging `next` over the current
|
|
85
|
-
* persisted value so future fields are never clobbered, then update the cache.
|
|
86
|
-
* Throws on write failure so callers on the command path (opt-out/opt-in) can
|
|
87
|
-
* surface a clear error — the read path swallows, the write path does not.
|
|
88
|
-
*/
|
|
89
|
-
export function savePreferences(next) {
|
|
90
|
-
const filePath = getPreferencesPath();
|
|
91
|
-
// Read-modify-write over the CURRENT on-disk value (not the cache) so a field
|
|
92
|
-
// written by another process / a future phase is preserved.
|
|
93
|
-
let current = {};
|
|
94
|
-
try {
|
|
95
|
-
current = parsePreferences(fs.readFileSync(filePath, 'utf8'));
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
// No existing file (or unreadable) — start from empty.
|
|
99
|
-
}
|
|
100
|
-
// Shallow-merge each known nested group (one level) so writing one field
|
|
101
|
-
// (e.g. setup.completedAt) never clobbers a sibling written at a different
|
|
102
|
-
// time (e.g. setup.declined). A new nested group is one entry in this list.
|
|
103
|
-
const merged = { ...current, ...next };
|
|
104
|
-
for (const key of ['telemetry', 'mcp', 'setup']) {
|
|
105
|
-
if (current[key] || next[key]) {
|
|
106
|
-
Object.assign(merged, { [key]: { ...current[key], ...next[key] } });
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });
|
|
110
|
-
fs.writeFileSync(filePath, JSON.stringify(merged), { encoding: 'utf8', mode: 0o600 });
|
|
111
|
-
cached = merged;
|
|
112
|
-
}
|
|
113
|
-
/** Whether the user has explicitly opted out via the saved preference. */
|
|
114
|
-
export function isTelemetryOptedOut() {
|
|
115
|
-
return getPreferences().telemetry?.optedOut === true;
|
|
116
|
-
}
|
|
117
|
-
/** Persist the opt-out flag. Throws on write failure (see savePreferences). */
|
|
118
|
-
export function setTelemetryOptedOut(value) {
|
|
119
|
-
savePreferences({ telemetry: { optedOut: value } });
|
|
120
|
-
}
|
|
121
|
-
/** Whether the first-run telemetry notice has already been shown (ever). */
|
|
122
|
-
export function isNoticeShown() {
|
|
123
|
-
return !!getPreferences().telemetry?.noticeShownAt;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Persist the first-run notice as shown, stamping the current time. Uses the
|
|
127
|
-
* read-modify-write savePreferences so it never clobbers the optedOut flag.
|
|
128
|
-
* Throws on write failure (see savePreferences) — the caller in
|
|
129
|
-
* telemetry-notice.ts swallows it so a read-only FS never blocks a command.
|
|
130
|
-
*/
|
|
131
|
-
export function markNoticeShown() {
|
|
132
|
-
savePreferences({ telemetry: { noticeShownAt: new Date().toISOString() } });
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Whether an automatic setup offer should be suppressed. Absolute once the user
|
|
136
|
-
* declines. Treats the legacy `mcp.promptDeclined` flag as an implicit decline
|
|
137
|
-
* so anyone who declined the old MCP offer is never re-prompted by the new flow.
|
|
138
|
-
*/
|
|
139
|
-
export function isSetupDeclined() {
|
|
140
|
-
const prefs = getPreferences();
|
|
141
|
-
return prefs.setup?.declined === true || prefs.mcp?.promptDeclined === true;
|
|
142
|
-
}
|
|
143
|
-
/** Whether the user has completed a setup run (ever). */
|
|
144
|
-
export function isSetupCompleted() {
|
|
145
|
-
return !!getPreferences().setup?.completedAt;
|
|
146
|
-
}
|
|
147
|
-
/** Persist an explicit setup decline. Throws on write failure (see savePreferences). */
|
|
148
|
-
export function recordSetupDeclined() {
|
|
149
|
-
savePreferences({ setup: { declined: true } });
|
|
150
|
-
}
|
|
151
|
-
/** Persist a completed setup run, stamping the current time. */
|
|
152
|
-
export function recordSetupCompleted() {
|
|
153
|
-
savePreferences({ setup: { completedAt: new Date().toISOString() } });
|
|
154
|
-
}
|
|
155
|
-
/** Clear the setup decline (new + legacy) so automatic offers resume. For `workos setup --reset`. */
|
|
156
|
-
export function clearSetupDecline() {
|
|
157
|
-
savePreferences({ setup: { declined: false }, mcp: { promptDeclined: false } });
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Tri-state env override for telemetry.
|
|
161
|
-
*
|
|
162
|
-
* Only the explicit strings 'true' / 'false' count as an override. Any other
|
|
163
|
-
* value — including unset or garbage like '1' — returns undefined and falls
|
|
164
|
-
* through to the saved preference.
|
|
165
|
-
*
|
|
166
|
-
* This is a deliberate, documented change from the old `WORKOS_TELEMETRY !==
|
|
167
|
-
* 'false'` behaviour: previously `WORKOS_TELEMETRY=1` forced telemetry on even
|
|
168
|
-
* for opted-out users; now an opt-out is respected unless the env var
|
|
169
|
-
* explicitly says 'true'.
|
|
170
|
-
*/
|
|
171
|
-
export function envTelemetryOverride() {
|
|
172
|
-
const value = process.env.WORKOS_TELEMETRY;
|
|
173
|
-
if (value === 'true')
|
|
174
|
-
return true;
|
|
175
|
-
if (value === 'false')
|
|
176
|
-
return false;
|
|
177
|
-
return undefined;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Effective telemetry-enabled decision.
|
|
181
|
-
*
|
|
182
|
-
* Resolution order:
|
|
183
|
-
* 1. envTelemetryOverride() if defined — env wins in BOTH directions.
|
|
184
|
-
* 2. otherwise !isTelemetryOptedOut() — default-on unless explicitly opted out.
|
|
185
|
-
*/
|
|
186
|
-
export function isTelemetryEnabled() {
|
|
187
|
-
const override = envTelemetryOverride();
|
|
188
|
-
if (override !== undefined)
|
|
189
|
-
return override;
|
|
190
|
-
return !isTelemetryOptedOut();
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Which signal produced the effective telemetry decision. Mirrors the
|
|
194
|
-
* precedence in isTelemetryEnabled() so the `telemetry status` command and the
|
|
195
|
-
* resolver can never drift.
|
|
196
|
-
*
|
|
197
|
-
* Note: an explicit opt-in (optedOut === false) reads as 'default', not
|
|
198
|
-
* 'preference' — its outcome is identical to a fresh install, and the resolver
|
|
199
|
-
* only treats optedOut === true as a non-default signal, so reporting
|
|
200
|
-
* 'preference' here would imply a behavioral difference that does not exist.
|
|
201
|
-
*/
|
|
202
|
-
export function getTelemetrySource() {
|
|
203
|
-
if (envTelemetryOverride() !== undefined)
|
|
204
|
-
return 'env';
|
|
205
|
-
if (isTelemetryOptedOut())
|
|
206
|
-
return 'preference';
|
|
207
|
-
return 'default';
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Delete the preferences file, returning telemetry to its fresh-install state
|
|
211
|
-
* (opted-in, first-run notice unseen). Used by `debug reset` to wipe stored CLI
|
|
212
|
-
* state alongside credentials and config. No-op if the file does not exist;
|
|
213
|
-
* throws on a real delete failure (e.g. permission denied) so the caller can
|
|
214
|
-
* surface it, mirroring clearConfig/clearCredentials. Resets the in-memory
|
|
215
|
-
* cache so subsequent reads in this process reflect the cleared state.
|
|
216
|
-
*/
|
|
217
|
-
export function clearPreferences() {
|
|
218
|
-
fs.rmSync(getPreferencesPath(), { force: true });
|
|
219
|
-
cached = {};
|
|
220
|
-
pending = undefined;
|
|
221
|
-
}
|
|
222
|
-
/** Test seam — resets the in-memory cache between test cases. */
|
|
223
|
-
export function __resetPreferencesCache() {
|
|
224
|
-
cached = undefined;
|
|
225
|
-
pending = undefined;
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=preferences.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preferences.js","sourceRoot":"","sources":["../../src/lib/preferences.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plain CLI preferences store.\n *\n * Stored at ~/.workos/preferences.json as plain JSON. These are NOT secrets —\n * knowing that someone opted out of telemetry leaks nothing — so this\n * deliberately avoids the keyring abstraction (config-store.ts) to prevent a\n * non-secret write from ever triggering the insecure-fallback security warning.\n *\n * Mirrors the structural pattern of device-id.ts: a synchronous accessor backed\n * by a cache, an async prewarm that populates that cache off the blocking-fs\n * path, and a never-throws contract on every read/parse so a corrupt file can\n * never break a command.\n */\n\nimport fs from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport path from 'node:path';\nimport os from 'node:os';\n\nexport interface CliPreferences {\n telemetry?: {\n /** true => the user explicitly opted out of telemetry. */\n optedOut?: boolean;\n /** ISO timestamp the first-run notice was shown — written in Phase 2 only. */\n noticeShownAt?: string;\n };\n /**\n * Legacy MCP-install onboarding state. The MCP offer folded into `setup` (see\n * commands/setup.ts); these fields are retained for back-compat so a user who\n * declined the old standalone MCP offer is still treated as setup-declined\n * (see isSetupDeclined). Kept in this plain-JSON store alongside telemetry.\n */\n mcp?: {\n /**\n * true => the user explicitly declined an automatic MCP install offer. The\n * decline is absolute: no automatic surface (prompt or banner) asks again;\n * `workos mcp install` stays available manually.\n */\n promptDeclined?: boolean;\n /** ISO timestamp the one-time MCP banner was shown. */\n bannerShownAt?: string;\n };\n /**\n * Consolidated agent-setup onboarding state (skills + MCP). Owned by\n * commands/setup.ts. `declined` is absolute for the automatic surfaces\n * (post-login / post-install); `workos setup` stays available manually.\n * Legacy `mcp.promptDeclined` is treated as an implicit setup-decline on read\n * (see isSetupDeclined) so users who already declined MCP are never re-asked.\n */\n setup?: {\n declined?: boolean;\n /** ISO timestamp the user completed a setup run. */\n completedAt?: string;\n };\n}\n\n/** Effective source of the resolved telemetry-enabled decision. */\nexport type TelemetrySource = 'env' | 'preference' | 'default';\n\nlet cached: CliPreferences | undefined;\nlet pending: Promise<CliPreferences> | undefined;\n\nexport function getPreferencesPath(): string {\n return path.join(os.homedir(), '.workos', 'preferences.json');\n}\n\nfunction parsePreferences(raw: string): CliPreferences {\n try {\n const value = JSON.parse(raw);\n // Defend against a file that parses to a non-object (e.g. `\"true\"`, `42`).\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n return value as CliPreferences;\n }\n } catch {\n // Corrupt JSON — fall through to empty preferences. A later savePreferences\n // overwrites it cleanly; we never auto-delete.\n }\n return {};\n}\n\n/**\n * Asynchronously load preferences and warm the cache the synchronous\n * getPreferences() reads. Memoized: the first call performs the IO, concurrent\n * and later callers await the same promise. Prewarming this at startup keeps\n * the synchronous telemetry path off blocking fs IO. Never rejects.\n */\nexport function loadPreferences(): Promise<CliPreferences> {\n if (cached) return Promise.resolve(cached);\n if (pending) return pending;\n\n pending = (async () => {\n try {\n const raw = await readFile(getPreferencesPath(), 'utf8');\n cached = parsePreferences(raw);\n } catch {\n // Missing/unreadable file — treat as no preferences set.\n cached = {};\n } finally {\n pending = undefined;\n }\n return cached;\n })();\n\n return pending;\n}\n\n/**\n * Synchronous accessor. Returns the prewarmed value when loadPreferences() has\n * run; otherwise performs a one-time synchronous read of the same file. On any\n * IO/parse failure returns {} (telemetry stays at its default-on state). Never\n * throws.\n */\nexport function getPreferences(): CliPreferences {\n if (cached) return cached;\n\n try {\n const raw = fs.readFileSync(getPreferencesPath(), 'utf8');\n cached = parsePreferences(raw);\n } catch {\n // Missing/unreadable/corrupt — telemetry stays at its default-on state.\n cached = {};\n }\n return cached;\n}\n\n/**\n * Read-modify-write the on-disk preferences, merging `next` over the current\n * persisted value so future fields are never clobbered, then update the cache.\n * Throws on write failure so callers on the command path (opt-out/opt-in) can\n * surface a clear error — the read path swallows, the write path does not.\n */\nexport function savePreferences(next: CliPreferences): void {\n const filePath = getPreferencesPath();\n\n // Read-modify-write over the CURRENT on-disk value (not the cache) so a field\n // written by another process / a future phase is preserved.\n let current: CliPreferences = {};\n try {\n current = parsePreferences(fs.readFileSync(filePath, 'utf8'));\n } catch {\n // No existing file (or unreadable) — start from empty.\n }\n\n // Shallow-merge each known nested group (one level) so writing one field\n // (e.g. setup.completedAt) never clobbers a sibling written at a different\n // time (e.g. setup.declined). A new nested group is one entry in this list.\n const merged: CliPreferences = { ...current, ...next };\n for (const key of ['telemetry', 'mcp', 'setup'] as const) {\n if (current[key] || next[key]) {\n Object.assign(merged, { [key]: { ...current[key], ...next[key] } });\n }\n }\n\n fs.mkdirSync(path.dirname(filePath), { recursive: true, mode: 0o700 });\n fs.writeFileSync(filePath, JSON.stringify(merged), { encoding: 'utf8', mode: 0o600 });\n cached = merged;\n}\n\n/** Whether the user has explicitly opted out via the saved preference. */\nexport function isTelemetryOptedOut(): boolean {\n return getPreferences().telemetry?.optedOut === true;\n}\n\n/** Persist the opt-out flag. Throws on write failure (see savePreferences). */\nexport function setTelemetryOptedOut(value: boolean): void {\n savePreferences({ telemetry: { optedOut: value } });\n}\n\n/** Whether the first-run telemetry notice has already been shown (ever). */\nexport function isNoticeShown(): boolean {\n return !!getPreferences().telemetry?.noticeShownAt;\n}\n\n/**\n * Persist the first-run notice as shown, stamping the current time. Uses the\n * read-modify-write savePreferences so it never clobbers the optedOut flag.\n * Throws on write failure (see savePreferences) — the caller in\n * telemetry-notice.ts swallows it so a read-only FS never blocks a command.\n */\nexport function markNoticeShown(): void {\n savePreferences({ telemetry: { noticeShownAt: new Date().toISOString() } });\n}\n\n/**\n * Whether an automatic setup offer should be suppressed. Absolute once the user\n * declines. Treats the legacy `mcp.promptDeclined` flag as an implicit decline\n * so anyone who declined the old MCP offer is never re-prompted by the new flow.\n */\nexport function isSetupDeclined(): boolean {\n const prefs = getPreferences();\n return prefs.setup?.declined === true || prefs.mcp?.promptDeclined === true;\n}\n\n/** Whether the user has completed a setup run (ever). */\nexport function isSetupCompleted(): boolean {\n return !!getPreferences().setup?.completedAt;\n}\n\n/** Persist an explicit setup decline. Throws on write failure (see savePreferences). */\nexport function recordSetupDeclined(): void {\n savePreferences({ setup: { declined: true } });\n}\n\n/** Persist a completed setup run, stamping the current time. */\nexport function recordSetupCompleted(): void {\n savePreferences({ setup: { completedAt: new Date().toISOString() } });\n}\n\n/** Clear the setup decline (new + legacy) so automatic offers resume. For `workos setup --reset`. */\nexport function clearSetupDecline(): void {\n savePreferences({ setup: { declined: false }, mcp: { promptDeclined: false } });\n}\n\n/**\n * Tri-state env override for telemetry.\n *\n * Only the explicit strings 'true' / 'false' count as an override. Any other\n * value — including unset or garbage like '1' — returns undefined and falls\n * through to the saved preference.\n *\n * This is a deliberate, documented change from the old `WORKOS_TELEMETRY !==\n * 'false'` behaviour: previously `WORKOS_TELEMETRY=1` forced telemetry on even\n * for opted-out users; now an opt-out is respected unless the env var\n * explicitly says 'true'.\n */\nexport function envTelemetryOverride(): boolean | undefined {\n const value = process.env.WORKOS_TELEMETRY;\n if (value === 'true') return true;\n if (value === 'false') return false;\n return undefined;\n}\n\n/**\n * Effective telemetry-enabled decision.\n *\n * Resolution order:\n * 1. envTelemetryOverride() if defined — env wins in BOTH directions.\n * 2. otherwise !isTelemetryOptedOut() — default-on unless explicitly opted out.\n */\nexport function isTelemetryEnabled(): boolean {\n const override = envTelemetryOverride();\n if (override !== undefined) return override;\n return !isTelemetryOptedOut();\n}\n\n/**\n * Which signal produced the effective telemetry decision. Mirrors the\n * precedence in isTelemetryEnabled() so the `telemetry status` command and the\n * resolver can never drift.\n *\n * Note: an explicit opt-in (optedOut === false) reads as 'default', not\n * 'preference' — its outcome is identical to a fresh install, and the resolver\n * only treats optedOut === true as a non-default signal, so reporting\n * 'preference' here would imply a behavioral difference that does not exist.\n */\nexport function getTelemetrySource(): TelemetrySource {\n if (envTelemetryOverride() !== undefined) return 'env';\n if (isTelemetryOptedOut()) return 'preference';\n return 'default';\n}\n\n/**\n * Delete the preferences file, returning telemetry to its fresh-install state\n * (opted-in, first-run notice unseen). Used by `debug reset` to wipe stored CLI\n * state alongside credentials and config. No-op if the file does not exist;\n * throws on a real delete failure (e.g. permission denied) so the caller can\n * surface it, mirroring clearConfig/clearCredentials. Resets the in-memory\n * cache so subsequent reads in this process reflect the cleared state.\n */\nexport function clearPreferences(): void {\n fs.rmSync(getPreferencesPath(), { force: true });\n cached = {};\n pending = undefined;\n}\n\n/** Test seam — resets the in-memory cache between test cases. */\nexport function __resetPreferencesCache(): void {\n cached = undefined;\n pending = undefined;\n}\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Progress tracking for wizard phases.
|
|
3
|
-
* Maps xstate machine states to user-friendly phase names.
|
|
4
|
-
*/
|
|
5
|
-
export interface Phase {
|
|
6
|
-
id: string;
|
|
7
|
-
name: string;
|
|
8
|
-
number: number;
|
|
9
|
-
}
|
|
10
|
-
export declare const PHASES: Phase[];
|
|
11
|
-
export declare class ProgressTracker {
|
|
12
|
-
private currentPhase;
|
|
13
|
-
private completedPhases;
|
|
14
|
-
private readonly totalPhases;
|
|
15
|
-
enterPhase(stateId: string): void;
|
|
16
|
-
exitPhase(stateId: string): void;
|
|
17
|
-
getCurrentPhase(): Phase | null;
|
|
18
|
-
getCurrentIndicator(): string;
|
|
19
|
-
getCompletedSummary(): string[];
|
|
20
|
-
isComplete(): boolean;
|
|
21
|
-
reset(): void;
|
|
22
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Progress tracking for wizard phases.
|
|
3
|
-
* Maps xstate machine states to user-friendly phase names.
|
|
4
|
-
*/
|
|
5
|
-
export const PHASES = [
|
|
6
|
-
{ id: 'authenticating', name: 'Authentication', number: 1 },
|
|
7
|
-
{ id: 'preparing', name: 'Detection', number: 2 },
|
|
8
|
-
{ id: 'gatheringCredentials', name: 'Credentials', number: 3 },
|
|
9
|
-
{ id: 'configuring', name: 'Configuration', number: 4 },
|
|
10
|
-
{ id: 'runningAgent', name: 'Installation', number: 5 },
|
|
11
|
-
];
|
|
12
|
-
export class ProgressTracker {
|
|
13
|
-
currentPhase = null;
|
|
14
|
-
completedPhases = [];
|
|
15
|
-
totalPhases = PHASES.length;
|
|
16
|
-
enterPhase(stateId) {
|
|
17
|
-
const phase = PHASES.find((p) => p.id === stateId);
|
|
18
|
-
if (phase) {
|
|
19
|
-
this.currentPhase = phase;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
exitPhase(stateId) {
|
|
23
|
-
const phase = PHASES.find((p) => p.id === stateId);
|
|
24
|
-
if (phase && !this.completedPhases.some((p) => p.id === phase.id)) {
|
|
25
|
-
this.completedPhases.push(phase);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
getCurrentPhase() {
|
|
29
|
-
return this.currentPhase;
|
|
30
|
-
}
|
|
31
|
-
getCurrentIndicator() {
|
|
32
|
-
if (!this.currentPhase)
|
|
33
|
-
return '';
|
|
34
|
-
return `[${this.currentPhase.number}/${this.totalPhases}] ${this.currentPhase.name}`;
|
|
35
|
-
}
|
|
36
|
-
getCompletedSummary() {
|
|
37
|
-
return this.completedPhases.map((p) => `✓ ${p.name}`);
|
|
38
|
-
}
|
|
39
|
-
isComplete() {
|
|
40
|
-
return this.completedPhases.length === this.totalPhases;
|
|
41
|
-
}
|
|
42
|
-
reset() {
|
|
43
|
-
this.currentPhase = null;
|
|
44
|
-
this.completedPhases = [];
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=progress-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progress-tracker.js","sourceRoot":"","sources":["../../src/lib/progress-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE;IAC3D,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE;IACjD,EAAE,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE;IAC9D,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE;IACvD,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE;CACxD,CAAC;AAEF,MAAM,OAAO,eAAe;IAClB,YAAY,GAAiB,IAAI,CAAC;IAClC,eAAe,GAAY,EAAE,CAAC;IACrB,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7C,UAAU,CAAC,OAAe;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACnD,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACvF,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC;IAC1D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;CACF","sourcesContent":["/**\n * Progress tracking for wizard phases.\n * Maps xstate machine states to user-friendly phase names.\n */\n\nexport interface Phase {\n id: string;\n name: string;\n number: number;\n}\n\nexport const PHASES: Phase[] = [\n { id: 'authenticating', name: 'Authentication', number: 1 },\n { id: 'preparing', name: 'Detection', number: 2 },\n { id: 'gatheringCredentials', name: 'Credentials', number: 3 },\n { id: 'configuring', name: 'Configuration', number: 4 },\n { id: 'runningAgent', name: 'Installation', number: 5 },\n];\n\nexport class ProgressTracker {\n private currentPhase: Phase | null = null;\n private completedPhases: Phase[] = [];\n private readonly totalPhases = PHASES.length;\n\n enterPhase(stateId: string): void {\n const phase = PHASES.find((p) => p.id === stateId);\n if (phase) {\n this.currentPhase = phase;\n }\n }\n\n exitPhase(stateId: string): void {\n const phase = PHASES.find((p) => p.id === stateId);\n if (phase && !this.completedPhases.some((p) => p.id === phase.id)) {\n this.completedPhases.push(phase);\n }\n }\n\n getCurrentPhase(): Phase | null {\n return this.currentPhase;\n }\n\n getCurrentIndicator(): string {\n if (!this.currentPhase) return '';\n return `[${this.currentPhase.number}/${this.totalPhases}] ${this.currentPhase.name}`;\n }\n\n getCompletedSummary(): string[] {\n return this.completedPhases.map((p) => `✓ ${p.name}`);\n }\n\n isComplete(): boolean {\n return this.completedPhases.length === this.totalPhases;\n }\n\n reset(): void {\n this.currentPhase = null;\n this.completedPhases = [];\n }\n}\n"]}
|
package/dist/lib/registry.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { FrameworkConfig, Language } from './framework-config.js';
|
|
2
|
-
import type { InstallerOptions } from '../utils/types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Standard exports from an integration module.
|
|
5
|
-
* Each `src/integrations/{name}/index.ts` must export these.
|
|
6
|
-
*/
|
|
7
|
-
export interface IntegrationModule {
|
|
8
|
-
config: FrameworkConfig;
|
|
9
|
-
run: (options: InstallerOptions) => Promise<string>;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Registry that provides lookup, detection, and enumeration of integrations.
|
|
13
|
-
*/
|
|
14
|
-
export interface IntegrationRegistry {
|
|
15
|
-
/** All registered integrations */
|
|
16
|
-
all(): FrameworkConfig[];
|
|
17
|
-
/** Get config by integration name */
|
|
18
|
-
get(name: string): IntegrationModule | undefined;
|
|
19
|
-
/** Get integrations for a specific language, ordered by priority */
|
|
20
|
-
forLanguage(language: Language): FrameworkConfig[];
|
|
21
|
-
/** Get integration names for CLI choices */
|
|
22
|
-
choices(): Array<{
|
|
23
|
-
name: string;
|
|
24
|
-
value: string;
|
|
25
|
-
}>;
|
|
26
|
-
/** Detection order: all integrations sorted by priority (higher = checked first) */
|
|
27
|
-
detectionOrder(): FrameworkConfig[];
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Build the integration registry by discovering all integration modules.
|
|
31
|
-
* Scans `src/integrations/` (or `dist/integrations/` at runtime) for directories
|
|
32
|
-
* with an index.js/index.ts file and dynamically imports them.
|
|
33
|
-
*/
|
|
34
|
-
export declare function buildRegistry(): Promise<IntegrationRegistry>;
|
|
35
|
-
/**
|
|
36
|
-
* Get the integration registry (builds once, caches thereafter).
|
|
37
|
-
*/
|
|
38
|
-
export declare function getRegistry(): Promise<IntegrationRegistry>;
|
|
39
|
-
/**
|
|
40
|
-
* Reset the registry cache. Used in tests.
|
|
41
|
-
*/
|
|
42
|
-
export declare function resetRegistry(): void;
|