workos 0.18.0 → 0.20.1
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 -783
- package/bin/workos.js +44 -0
- package/package.json +18 -107
- package/LICENSE +0 -47
- package/dist/bin.d.ts +0 -2
- package/dist/bin.js +0 -1711
- package/dist/bin.js.map +0 -1
- package/dist/check-coverage.ts +0 -237
- 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 -205
- 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 -131
- 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 -23
- 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 -6
- package/dist/commands/emulate.js +0 -68
- package/dist/commands/emulate.js.map +0 -1
- package/dist/commands/env.d.ts +0 -9
- package/dist/commands/env.js +0 -227
- 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 -56
- 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 -22
- package/dist/commands/login.js +0 -184
- 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 -108
- 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 -49
- 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 -297
- 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/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 -194
- 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/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 -198
- 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 -288
- 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/emulate/core/id.d.ts +0 -48
- package/dist/emulate/core/id.js +0 -73
- package/dist/emulate/core/id.js.map +0 -1
- package/dist/emulate/core/index.d.ts +0 -8
- package/dist/emulate/core/index.js +0 -8
- package/dist/emulate/core/index.js.map +0 -1
- package/dist/emulate/core/jwt.d.ts +0 -28
- package/dist/emulate/core/jwt.js +0 -78
- package/dist/emulate/core/jwt.js.map +0 -1
- package/dist/emulate/core/middleware/auth.d.ts +0 -15
- package/dist/emulate/core/middleware/auth.js +0 -17
- package/dist/emulate/core/middleware/auth.js.map +0 -1
- package/dist/emulate/core/middleware/error-handler.d.ts +0 -22
- package/dist/emulate/core/middleware/error-handler.js +0 -72
- package/dist/emulate/core/middleware/error-handler.js.map +0 -1
- package/dist/emulate/core/pagination.d.ts +0 -27
- package/dist/emulate/core/pagination.js +0 -43
- package/dist/emulate/core/pagination.js.map +0 -1
- package/dist/emulate/core/plugin.d.ts +0 -15
- package/dist/emulate/core/plugin.js +0 -2
- package/dist/emulate/core/plugin.js.map +0 -1
- package/dist/emulate/core/server.d.ts +0 -17
- package/dist/emulate/core/server.js +0 -90
- package/dist/emulate/core/server.js.map +0 -1
- package/dist/emulate/core/store.d.ts +0 -44
- package/dist/emulate/core/store.js +0 -169
- package/dist/emulate/core/store.js.map +0 -1
- package/dist/emulate/index.d.ts +0 -25
- package/dist/emulate/index.js +0 -47
- package/dist/emulate/index.js.map +0 -1
- package/dist/emulate/workos/constants.d.ts +0 -56
- package/dist/emulate/workos/constants.js +0 -56
- package/dist/emulate/workos/constants.js.map +0 -1
- package/dist/emulate/workos/entities.d.ts +0 -360
- package/dist/emulate/workos/entities.js +0 -2
- package/dist/emulate/workos/entities.js.map +0 -1
- package/dist/emulate/workos/event-bus.d.ts +0 -17
- package/dist/emulate/workos/event-bus.js +0 -70
- package/dist/emulate/workos/event-bus.js.map +0 -1
- package/dist/emulate/workos/helpers.d.ts +0 -72
- package/dist/emulate/workos/helpers.js +0 -211
- package/dist/emulate/workos/helpers.js.map +0 -1
- package/dist/emulate/workos/index.d.ts +0 -93
- package/dist/emulate/workos/index.js +0 -326
- package/dist/emulate/workos/index.js.map +0 -1
- package/dist/emulate/workos/role-helpers.d.ts +0 -21
- package/dist/emulate/workos/role-helpers.js +0 -130
- package/dist/emulate/workos/role-helpers.js.map +0 -1
- package/dist/emulate/workos/routes/api-keys.d.ts +0 -2
- package/dist/emulate/workos/routes/api-keys.js +0 -32
- package/dist/emulate/workos/routes/api-keys.js.map +0 -1
- package/dist/emulate/workos/routes/audit-logs.d.ts +0 -2
- package/dist/emulate/workos/routes/audit-logs.js +0 -104
- package/dist/emulate/workos/routes/audit-logs.js.map +0 -1
- package/dist/emulate/workos/routes/auth-challenges.d.ts +0 -2
- package/dist/emulate/workos/routes/auth-challenges.js +0 -51
- package/dist/emulate/workos/routes/auth-challenges.js.map +0 -1
- package/dist/emulate/workos/routes/auth-factors.d.ts +0 -2
- package/dist/emulate/workos/routes/auth-factors.js +0 -51
- package/dist/emulate/workos/routes/auth-factors.js.map +0 -1
- package/dist/emulate/workos/routes/auth.d.ts +0 -2
- package/dist/emulate/workos/routes/auth.js +0 -350
- package/dist/emulate/workos/routes/auth.js.map +0 -1
- package/dist/emulate/workos/routes/authorization-checks.d.ts +0 -10
- package/dist/emulate/workos/routes/authorization-checks.js +0 -123
- package/dist/emulate/workos/routes/authorization-checks.js.map +0 -1
- package/dist/emulate/workos/routes/authorization-org-roles.d.ts +0 -2
- package/dist/emulate/workos/routes/authorization-org-roles.js +0 -64
- package/dist/emulate/workos/routes/authorization-org-roles.js.map +0 -1
- package/dist/emulate/workos/routes/authorization-permissions.d.ts +0 -2
- package/dist/emulate/workos/routes/authorization-permissions.js +0 -67
- package/dist/emulate/workos/routes/authorization-permissions.js.map +0 -1
- package/dist/emulate/workos/routes/authorization-resources.d.ts +0 -2
- package/dist/emulate/workos/routes/authorization-resources.js +0 -117
- package/dist/emulate/workos/routes/authorization-resources.js.map +0 -1
- package/dist/emulate/workos/routes/authorization-roles.d.ts +0 -2
- package/dist/emulate/workos/routes/authorization-roles.js +0 -13
- package/dist/emulate/workos/routes/authorization-roles.js.map +0 -1
- package/dist/emulate/workos/routes/config.d.ts +0 -2
- package/dist/emulate/workos/routes/config.js +0 -57
- package/dist/emulate/workos/routes/config.js.map +0 -1
- package/dist/emulate/workos/routes/connect.d.ts +0 -2
- package/dist/emulate/workos/routes/connect.js +0 -65
- package/dist/emulate/workos/routes/connect.js.map +0 -1
- package/dist/emulate/workos/routes/connections.d.ts +0 -2
- package/dist/emulate/workos/routes/connections.js +0 -73
- package/dist/emulate/workos/routes/connections.js.map +0 -1
- package/dist/emulate/workos/routes/data-integrations.d.ts +0 -2
- package/dist/emulate/workos/routes/data-integrations.js +0 -55
- package/dist/emulate/workos/routes/data-integrations.js.map +0 -1
- package/dist/emulate/workos/routes/directories.d.ts +0 -2
- package/dist/emulate/workos/routes/directories.js +0 -90
- package/dist/emulate/workos/routes/directories.js.map +0 -1
- package/dist/emulate/workos/routes/email-verification.d.ts +0 -2
- package/dist/emulate/workos/routes/email-verification.js +0 -49
- package/dist/emulate/workos/routes/email-verification.js.map +0 -1
- package/dist/emulate/workos/routes/events.d.ts +0 -2
- package/dist/emulate/workos/routes/events.js +0 -18
- package/dist/emulate/workos/routes/events.js.map +0 -1
- package/dist/emulate/workos/routes/feature-flags.d.ts +0 -2
- package/dist/emulate/workos/routes/feature-flags.js +0 -103
- package/dist/emulate/workos/routes/feature-flags.js.map +0 -1
- package/dist/emulate/workos/routes/invitations.d.ts +0 -2
- package/dist/emulate/workos/routes/invitations.js +0 -122
- package/dist/emulate/workos/routes/invitations.js.map +0 -1
- package/dist/emulate/workos/routes/legacy-mfa.d.ts +0 -2
- package/dist/emulate/workos/routes/legacy-mfa.js +0 -75
- package/dist/emulate/workos/routes/legacy-mfa.js.map +0 -1
- package/dist/emulate/workos/routes/magic-auth.d.ts +0 -2
- package/dist/emulate/workos/routes/magic-auth.js +0 -32
- package/dist/emulate/workos/routes/magic-auth.js.map +0 -1
- package/dist/emulate/workos/routes/memberships.d.ts +0 -2
- package/dist/emulate/workos/routes/memberships.js +0 -114
- package/dist/emulate/workos/routes/memberships.js.map +0 -1
- package/dist/emulate/workos/routes/organization-domains.d.ts +0 -2
- package/dist/emulate/workos/routes/organization-domains.js +0 -58
- package/dist/emulate/workos/routes/organization-domains.js.map +0 -1
- package/dist/emulate/workos/routes/organizations.d.ts +0 -2
- package/dist/emulate/workos/routes/organizations.js +0 -131
- package/dist/emulate/workos/routes/organizations.js.map +0 -1
- package/dist/emulate/workos/routes/password-reset.d.ts +0 -2
- package/dist/emulate/workos/routes/password-reset.js +0 -61
- package/dist/emulate/workos/routes/password-reset.js.map +0 -1
- package/dist/emulate/workos/routes/pipes.d.ts +0 -2
- package/dist/emulate/workos/routes/pipes.js +0 -82
- package/dist/emulate/workos/routes/pipes.js.map +0 -1
- package/dist/emulate/workos/routes/portal.d.ts +0 -2
- package/dist/emulate/workos/routes/portal.js +0 -18
- package/dist/emulate/workos/routes/portal.js.map +0 -1
- package/dist/emulate/workos/routes/radar.d.ts +0 -2
- package/dist/emulate/workos/routes/radar.js +0 -41
- package/dist/emulate/workos/routes/radar.js.map +0 -1
- package/dist/emulate/workos/routes/sessions.d.ts +0 -2
- package/dist/emulate/workos/routes/sessions.js +0 -51
- package/dist/emulate/workos/routes/sessions.js.map +0 -1
- package/dist/emulate/workos/routes/sso.d.ts +0 -2
- package/dist/emulate/workos/routes/sso.js +0 -161
- package/dist/emulate/workos/routes/sso.js.map +0 -1
- package/dist/emulate/workos/routes/user-features.d.ts +0 -2
- package/dist/emulate/workos/routes/user-features.js +0 -50
- package/dist/emulate/workos/routes/user-features.js.map +0 -1
- package/dist/emulate/workos/routes/users.d.ts +0 -2
- package/dist/emulate/workos/routes/users.js +0 -129
- package/dist/emulate/workos/routes/users.js.map +0 -1
- package/dist/emulate/workos/routes/webhook-endpoints.d.ts +0 -2
- package/dist/emulate/workos/routes/webhook-endpoints.js +0 -67
- package/dist/emulate/workos/routes/webhook-endpoints.js.map +0 -1
- package/dist/emulate/workos/routes/widgets.d.ts +0 -2
- package/dist/emulate/workos/routes/widgets.js +0 -27
- package/dist/emulate/workos/routes/widgets.js.map +0 -1
- package/dist/emulate/workos/store.d.ts +0 -48
- package/dist/emulate/workos/store.js +0 -102
- package/dist/emulate/workos/store.js.map +0 -1
- package/dist/emulate/workos/webhook-signer.d.ts +0 -1
- package/dist/emulate/workos/webhook-signer.js +0 -8
- package/dist/emulate/workos/webhook-signer.js.map +0 -1
- package/dist/gen-routes-lib.spec.ts +0 -659
- package/dist/gen-routes-lib.ts +0 -647
- package/dist/gen-routes.ts +0 -96
- 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 -90
- 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 -53
- 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 -146
- 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 -84
- package/dist/lib/adapters/cli-adapter.js +0 -525
- 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 -73
- package/dist/lib/adapters/headless-adapter.js +0 -310
- 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 -826
- 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 -36
- 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/config-store.d.ts +0 -50
- package/dist/lib/config-store.js +0 -269
- 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 -43
- package/dist/lib/constants.js +0 -42
- 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 -215
- package/dist/lib/events.js +0 -19
- package/dist/lib/events.js.map +0 -1
- package/dist/lib/framework-config.d.ts +0 -127
- 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 -556
- package/dist/lib/installer-core.js +0 -1115
- package/dist/lib/installer-core.js.map +0 -1
- package/dist/lib/installer-core.types.d.ts +0 -160
- 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 -39
- package/dist/lib/mcp-clients.js +0 -284
- package/dist/lib/mcp-clients.js.map +0 -1
- package/dist/lib/mcp-notice.d.ts +0 -72
- package/dist/lib/mcp-notice.js +0 -275
- package/dist/lib/mcp-notice.js.map +0 -1
- package/dist/lib/port-detection.d.ts +0 -7
- package/dist/lib/port-detection.js +0 -238
- 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 -115
- package/dist/lib/preferences.js +0 -201
- 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 -522
- 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 -59
- 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 -77
- 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 -77
- 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 -105
- 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 -684
- 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 -142
- 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 -32
- package/dist/run.js +0 -54
- 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 -57
- 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 -33
- package/dist/utils/box.js +0 -102
- package/dist/utils/box.js.map +0 -1
- package/dist/utils/clack-utils.d.ts +0 -97
- package/dist/utils/clack-utils.js +0 -422
- package/dist/utils/clack-utils.js.map +0 -1
- package/dist/utils/clack.d.ts +0 -5
- package/dist/utils/clack.js +0 -34
- package/dist/utils/clack.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 -32
- package/dist/utils/cli-symbols.js +0 -46
- 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 -1466
- 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 -37
- package/dist/utils/recovery-hints.js +0 -80
- 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 -18
- package/dist/utils/summary-box.js +0 -148
- 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 -113
- package/dist/utils/types.js +0 -2
- package/dist/utils/types.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/utils/box.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/utils/box.ts"],"names":[],"mappings":"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","sourcesContent":["import type chalk from 'chalk';\nimport { stripAnsii } from './string.js';\n\n/** Visible (printable) width of a string, ignoring ANSI escape sequences. */\nfunction visibleWidth(str: string): number {\n return stripAnsii(str).length;\n}\n\n/** Terminal width for stderr output, falling back to stdout then 80 columns. */\nfunction terminalWidth(): number {\n return process.stderr.columns || process.stdout.columns || 80;\n}\n\n/**\n * Word-wrap a string to a maximum visible width, preserving ANSI color.\n *\n * chalk emits self-closing color spans (e.g. `\\x1b[36m…\\x1b[39m`), so each\n * colored fragment is atomic: we tokenize the input into whole colored spans\n * and plain words, then greedily pack tokens into lines measured by their\n * VISIBLE width. Because every token carries its own open+close codes, color\n * never bleeds across a line break onto the border or padding.\n *\n * A single token wider than `maxWidth` (rare — only a very narrow terminal vs.\n * a long unbroken word) overflows its own line rather than being split mid-span.\n * Such an overflow can push the rendered box border past the terminal width;\n * acceptable at standard widths. Note that a colored command produced by\n * `formatWorkOSCommand` can be long (e.g. `npx workos@latest telemetry opt-out`)\n * and stays a single unbreakable token by design.\n *\n * Limitation: a colored span is grouped atomically only when it is a single SGR\n * layer (one open code + one close code, as `chalk.cyan('…')` emits). Stacked\n * styles such as bold+color (`\\x1b[1m\\x1b[36m…\\x1b[39m\\x1b[22m`) or two adjacent\n * spans with no separating space are not guaranteed to stay on one line and may\n * leave a reset code mid-line. All current callers use single-color spans only.\n */\nexport function wrapAnsiAware(input: string, maxWidth: number): string[] {\n // A token is either: a full SGR-wrapped span (open code, content that may\n // contain spaces, close code), a run of non-space/non-escape characters\n // (a plain word), or a lone escape. Whitespace between tokens is dropped and\n // re-inserted as single separating spaces.\n const tokenRe = /\\x1b\\[[0-9;]*m[^\\x1b]*?\\x1b\\[[0-9;]*m|[^\\s\\x1b]+|\\x1b\\[[0-9;]*m/g;\n const tokens = input.match(tokenRe) ?? [];\n\n const lines: string[] = [];\n let line = '';\n let lineWidth = 0;\n\n for (const token of tokens) {\n const tokenWidth = visibleWidth(token);\n if (lineWidth === 0) {\n line = token;\n lineWidth = tokenWidth;\n } else if (lineWidth + 1 + tokenWidth <= maxWidth) {\n line += ` ${token}`;\n lineWidth += 1 + tokenWidth;\n } else {\n lines.push(line);\n line = token;\n lineWidth = tokenWidth;\n }\n }\n if (line) lines.push(line);\n return lines.length > 0 ? lines : [''];\n}\n\n/**\n * Render a bordered box to stderr, wrapping to the terminal width.\n *\n * When the content fits on one line it renders exactly as a single-line box\n * (the historical behavior). When it would overflow the terminal, the content\n * is word-wrapped (ANSI-aware) and the box grows to multiple lines so the\n * border never breaks on a narrow terminal.\n */\nexport function renderStderrBox(inner: string, color: typeof chalk.yellow | typeof chalk.green): void {\n const cols = terminalWidth();\n const plainLen = visibleWidth(inner);\n\n // Fast path: content (including its own padding spaces) fits within the\n // terminal. Render the single-line box byte-for-byte as before.\n if (plainLen <= cols - 4) {\n const border = '─'.repeat(plainLen);\n console.error('');\n console.error(color(` ┌${border}┐`));\n console.error(color(' │') + inner + color('│'));\n console.error(color(` └${border}┘`));\n console.error('');\n return;\n }\n\n // Wrap path: trim the caller's outer padding, wrap to the available width,\n // then re-pad each line to a uniform inner width with one space of padding\n // on each side. Layout per line: \" │ \" + text + \" │\" = text + 6 columns.\n const content = inner.replace(/^[ \\t]+/, '').replace(/[ \\t]+$/, '');\n const maxTextWidth = Math.max(1, cols - 6);\n const wrapped = wrapAnsiAware(content, maxTextWidth);\n\n // Snug the box to the longest wrapped line rather than the full terminal.\n const textWidth = Math.max(...wrapped.map(visibleWidth));\n const border = '─'.repeat(textWidth + 2);\n\n console.error('');\n console.error(color(` ┌${border}┐`));\n for (const ln of wrapped) {\n const pad = ' '.repeat(Math.max(0, textWidth - visibleWidth(ln)));\n console.error(`${color(' │')} ${ln}${pad} ${color('│')}`);\n }\n console.error(color(` └${border}┘`));\n console.error('');\n}\n"]}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { type PackageDotJson } from './package-json.js';
|
|
2
|
-
import { type PackageManager } from './package-manager.js';
|
|
3
|
-
import type { InstallerOptions } from './types.js';
|
|
4
|
-
import { type Integration } from '../lib/constants.js';
|
|
5
|
-
/**
|
|
6
|
-
* Redact sensitive info (API keys, client secrets) from a string.
|
|
7
|
-
*/
|
|
8
|
-
export declare function redactSensitiveInfo(str: string): string;
|
|
9
|
-
export interface CliSetupConfig {
|
|
10
|
-
filename: string;
|
|
11
|
-
name: string;
|
|
12
|
-
gitignore: boolean;
|
|
13
|
-
likelyAlreadyHasAuthToken(contents: string): boolean;
|
|
14
|
-
tokenContent(authToken: string): string;
|
|
15
|
-
likelyAlreadyHasOrgAndProject(contents: string): boolean;
|
|
16
|
-
orgAndProjContent(org: string, project: string): string;
|
|
17
|
-
likelyAlreadyHasUrl?(contents: string): boolean;
|
|
18
|
-
urlContent?(url: string): string;
|
|
19
|
-
}
|
|
20
|
-
export interface CliSetupConfigContent {
|
|
21
|
-
authToken: string;
|
|
22
|
-
org?: string;
|
|
23
|
-
project?: string;
|
|
24
|
-
url?: string;
|
|
25
|
-
}
|
|
26
|
-
export declare function abort(message?: string, status?: number): Promise<never>;
|
|
27
|
-
export declare function abortIfCancelled<T>(input: T | Promise<T>, integration?: Integration): Promise<Exclude<T, symbol>>;
|
|
28
|
-
export declare function printWelcome(options: {
|
|
29
|
-
wizardName: string;
|
|
30
|
-
message?: string;
|
|
31
|
-
}): void;
|
|
32
|
-
export declare function confirmContinueIfNoOrDirtyGitRepo(options: Pick<InstallerOptions, 'ci'>): Promise<void>;
|
|
33
|
-
export declare function isInGitRepo(): boolean;
|
|
34
|
-
export declare function getUncommittedOrUntrackedFiles(): string[];
|
|
35
|
-
export declare function askForItemSelection(items: string[], message: string): Promise<{
|
|
36
|
-
value: string;
|
|
37
|
-
index: number;
|
|
38
|
-
}>;
|
|
39
|
-
export declare function confirmContinueIfPackageVersionNotSupported({ packageId, packageName, packageVersion, acceptableVersions, note, }: {
|
|
40
|
-
packageId: string;
|
|
41
|
-
packageName: string;
|
|
42
|
-
packageVersion: string;
|
|
43
|
-
acceptableVersions: string;
|
|
44
|
-
note?: string;
|
|
45
|
-
}): Promise<void>;
|
|
46
|
-
export declare function isReact19Installed({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<boolean>;
|
|
47
|
-
/**
|
|
48
|
-
* Installs or updates a package with the user's package manager.
|
|
49
|
-
*
|
|
50
|
-
* IMPORTANT: This function modifies the `package.json`! Be sure to re-read
|
|
51
|
-
* it if you make additional modifications to it after calling this function!
|
|
52
|
-
*/
|
|
53
|
-
export declare function installPackage({ packageName, alreadyInstalled, askBeforeUpdating, packageNameDisplayLabel, packageManager, forceInstall, integration, installDir, }: {
|
|
54
|
-
/** The string that is passed to the package manager CLI as identifier to install (e.g. `@workos-inc/authkit-nextjs`, or `@workos-inc/authkit-nextjs@^2.0.0`) */
|
|
55
|
-
packageName: string;
|
|
56
|
-
alreadyInstalled: boolean;
|
|
57
|
-
askBeforeUpdating?: boolean;
|
|
58
|
-
/** Overrides what is shown in the installation logs in place of the `packageName` option. Useful if the `packageName` is ugly */
|
|
59
|
-
packageNameDisplayLabel?: string;
|
|
60
|
-
packageManager?: PackageManager;
|
|
61
|
-
/** Add force install flag to command to skip install precondition fails */
|
|
62
|
-
forceInstall?: boolean;
|
|
63
|
-
/** The integration that is being used */
|
|
64
|
-
integration?: string;
|
|
65
|
-
/** The directory to install the package in */
|
|
66
|
-
installDir: string;
|
|
67
|
-
}): Promise<{
|
|
68
|
-
packageManager?: PackageManager;
|
|
69
|
-
}>;
|
|
70
|
-
/**
|
|
71
|
-
* Checks if @param packageId is listed as a dependency in @param packageJson.
|
|
72
|
-
* If not, it will ask users if they want to continue without the package.
|
|
73
|
-
*
|
|
74
|
-
* Use this function to check if e.g. a the framework of the SDK is installed
|
|
75
|
-
*
|
|
76
|
-
* @param packageJson the package.json object
|
|
77
|
-
* @param packageId the npm name of the package
|
|
78
|
-
* @param packageName a human readable name of the package
|
|
79
|
-
*/
|
|
80
|
-
export declare function ensurePackageIsInstalled(packageJson: PackageDotJson, packageId: string, packageName: string, options?: Pick<InstallerOptions, 'dashboard'>): Promise<void>;
|
|
81
|
-
export declare function getPackageDotJson({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<PackageDotJson>;
|
|
82
|
-
export declare function updatePackageDotJson(packageDotJson: PackageDotJson, { installDir }: Pick<InstallerOptions, 'installDir'>): Promise<void>;
|
|
83
|
-
export declare function getPackageManager(options: Pick<InstallerOptions, 'installDir'> & {
|
|
84
|
-
ci?: boolean;
|
|
85
|
-
}): Promise<PackageManager>;
|
|
86
|
-
export declare function isUsingTypeScript({ installDir }: Pick<InstallerOptions, 'installDir'>): boolean;
|
|
87
|
-
/**
|
|
88
|
-
* Get WorkOS credentials (API Key and Client ID) from user or CLI options
|
|
89
|
-
* @param requireApiKey - Whether API key is needed (false for client-only SDKs like React, Vanilla JS)
|
|
90
|
-
*/
|
|
91
|
-
export declare function getOrAskForWorkOSCredentials(_options: Pick<InstallerOptions, 'ci' | 'apiKey' | 'clientId' | 'installDir' | 'dashboard'>, requireApiKey?: boolean): Promise<{
|
|
92
|
-
apiKey: string;
|
|
93
|
-
clientId: string;
|
|
94
|
-
}>;
|
|
95
|
-
/**
|
|
96
|
-
* Fetch project data using a personal API key (for CI mode)
|
|
97
|
-
*/
|
|
@@ -1,422 +0,0 @@
|
|
|
1
|
-
import * as childProcess from 'node:child_process';
|
|
2
|
-
import * as fs from 'node:fs';
|
|
3
|
-
import * as os from 'node:os';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
|
-
import chalk from 'chalk';
|
|
6
|
-
import { traceStep } from '../telemetry.js';
|
|
7
|
-
import { debug } from './debug.js';
|
|
8
|
-
import { parseEnvFile } from './env-parser.js';
|
|
9
|
-
import { hasPackageInstalled } from './package-json.js';
|
|
10
|
-
import { detectAllPackageManagers, packageManagers, NPM as npm } from './package-manager.js';
|
|
11
|
-
import { fulfillsVersionRange } from './semver.js';
|
|
12
|
-
import { getPackageVersion } from './package-json.js';
|
|
13
|
-
import { ISSUES_URL } from '../lib/constants.js';
|
|
14
|
-
import { analytics } from './analytics.js';
|
|
15
|
-
import clack from './clack.js';
|
|
16
|
-
import { INTEGRATION_CONFIG } from '../lib/config.js';
|
|
17
|
-
import { SPAWN_OPTS } from './platform.js';
|
|
18
|
-
/**
|
|
19
|
-
* Redact sensitive info (API keys, client secrets) from a string.
|
|
20
|
-
*/
|
|
21
|
-
export function redactSensitiveInfo(str) {
|
|
22
|
-
// Redact WorkOS API keys (sk_...), client secrets, etc.
|
|
23
|
-
return str.replace(/sk_[a-zA-Z0-9]+/g, 'sk_***').replace(/client_[a-zA-Z0-9]{20,}/g, 'client_***');
|
|
24
|
-
}
|
|
25
|
-
export async function abort(message, status) {
|
|
26
|
-
await analytics.shutdown('cancelled');
|
|
27
|
-
clack.outro(message ?? 'Installer setup cancelled.');
|
|
28
|
-
return process.exit(status ?? 1);
|
|
29
|
-
}
|
|
30
|
-
export async function abortIfCancelled(input, integration) {
|
|
31
|
-
await analytics.shutdown('cancelled');
|
|
32
|
-
const resolvedInput = await input;
|
|
33
|
-
if (clack.isCancel(resolvedInput) ||
|
|
34
|
-
(typeof resolvedInput === 'symbol' && resolvedInput.description === 'clack:cancel')) {
|
|
35
|
-
const docsUrl = integration ? INTEGRATION_CONFIG[integration].docsUrl : 'https://workos.com/docs/user-management';
|
|
36
|
-
clack.cancel(`Installer setup cancelled. You can read the documentation for ${integration ?? 'WorkOS AuthKit'} at ${chalk.cyan(docsUrl)} to continue with the setup manually.`);
|
|
37
|
-
process.exit(0);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return input;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export function printWelcome(options) {
|
|
44
|
-
// eslint-disable-next-line no-console
|
|
45
|
-
console.log('');
|
|
46
|
-
clack.intro(chalk.inverse(` ${options.wizardName} `));
|
|
47
|
-
const welcomeText = options.message ||
|
|
48
|
-
`The ${options.wizardName} will help you set up WorkOS AuthKit for your application.\nThank you for using WorkOS AuthKit :)`;
|
|
49
|
-
clack.note(welcomeText);
|
|
50
|
-
}
|
|
51
|
-
export async function confirmContinueIfNoOrDirtyGitRepo(options) {
|
|
52
|
-
return traceStep('check-git-status', async () => {
|
|
53
|
-
if (!isInGitRepo()) {
|
|
54
|
-
// CI mode: auto-continue without git
|
|
55
|
-
const continueWithoutGit = options.ci
|
|
56
|
-
? true
|
|
57
|
-
: await abortIfCancelled(clack.confirm({
|
|
58
|
-
message: 'You are not inside a git repository. The installer will create and update files. Do you want to continue anyway?',
|
|
59
|
-
}));
|
|
60
|
-
analytics.setTag('continue-without-git', continueWithoutGit);
|
|
61
|
-
if (!continueWithoutGit) {
|
|
62
|
-
await abort(undefined, 0);
|
|
63
|
-
}
|
|
64
|
-
// return early to avoid checking for uncommitted files
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
const uncommittedOrUntrackedFiles = getUncommittedOrUntrackedFiles();
|
|
68
|
-
if (uncommittedOrUntrackedFiles.length) {
|
|
69
|
-
// CI mode: auto-continue with dirty repo
|
|
70
|
-
if (options.ci) {
|
|
71
|
-
clack.log.info(`CI mode: continuing with uncommitted/untracked files in repo`);
|
|
72
|
-
analytics.setTag('continue-with-dirty-repo', true);
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
clack.log.warn(`You have uncommitted or untracked files in your repo:
|
|
76
|
-
|
|
77
|
-
${uncommittedOrUntrackedFiles.join('\n')}
|
|
78
|
-
|
|
79
|
-
The installer will create and update files.`);
|
|
80
|
-
const continueWithDirtyRepo = await abortIfCancelled(clack.confirm({
|
|
81
|
-
message: 'Do you want to continue anyway?',
|
|
82
|
-
}));
|
|
83
|
-
analytics.setTag('continue-with-dirty-repo', continueWithDirtyRepo);
|
|
84
|
-
if (!continueWithDirtyRepo) {
|
|
85
|
-
await abort(undefined, 0);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
export function isInGitRepo() {
|
|
91
|
-
try {
|
|
92
|
-
childProcess.execSync('git rev-parse --is-inside-work-tree', {
|
|
93
|
-
stdio: 'ignore',
|
|
94
|
-
});
|
|
95
|
-
return true;
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
export function getUncommittedOrUntrackedFiles() {
|
|
102
|
-
try {
|
|
103
|
-
const gitStatus = childProcess
|
|
104
|
-
.execSync('git status --porcelain=v1', {
|
|
105
|
-
// we only care about stdout
|
|
106
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
107
|
-
})
|
|
108
|
-
.toString();
|
|
109
|
-
const files = gitStatus
|
|
110
|
-
.split(os.EOL)
|
|
111
|
-
.map((line) => line.trim())
|
|
112
|
-
.filter(Boolean)
|
|
113
|
-
.map((f) => `- ${f.split(/\s+/)[1]}`);
|
|
114
|
-
return files;
|
|
115
|
-
}
|
|
116
|
-
catch {
|
|
117
|
-
return [];
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
export async function askForItemSelection(items, message) {
|
|
121
|
-
const selection = await abortIfCancelled(clack.select({
|
|
122
|
-
maxItems: 12,
|
|
123
|
-
message: message,
|
|
124
|
-
options: items.map((item, index) => {
|
|
125
|
-
return {
|
|
126
|
-
value: { value: item, index: index },
|
|
127
|
-
label: item,
|
|
128
|
-
};
|
|
129
|
-
}),
|
|
130
|
-
}));
|
|
131
|
-
return selection;
|
|
132
|
-
}
|
|
133
|
-
export async function confirmContinueIfPackageVersionNotSupported({ packageId, packageName, packageVersion, acceptableVersions, note, }) {
|
|
134
|
-
return traceStep(`check-package-version`, async () => {
|
|
135
|
-
analytics.setTag(`${packageName.toLowerCase()}-version`, packageVersion);
|
|
136
|
-
const isSupportedVersion = fulfillsVersionRange({
|
|
137
|
-
acceptableVersions,
|
|
138
|
-
version: packageVersion,
|
|
139
|
-
canBeLatest: true,
|
|
140
|
-
});
|
|
141
|
-
if (isSupportedVersion) {
|
|
142
|
-
analytics.setTag(`${packageName.toLowerCase()}-supported`, true);
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
clack.log.warn(`You have an unsupported version of ${packageName} installed:
|
|
146
|
-
|
|
147
|
-
${packageId}@${packageVersion}`);
|
|
148
|
-
clack.note(note ?? `Please upgrade to ${acceptableVersions} if you wish to use the WorkOS AuthKit installer.`);
|
|
149
|
-
const continueWithUnsupportedVersion = await abortIfCancelled(clack.confirm({
|
|
150
|
-
message: 'Do you want to continue anyway?',
|
|
151
|
-
}));
|
|
152
|
-
analytics.setTag(`${packageName.toLowerCase()}-continue-with-unsupported-version`, continueWithUnsupportedVersion);
|
|
153
|
-
if (!continueWithUnsupportedVersion) {
|
|
154
|
-
await abort(undefined, 0);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
export async function isReact19Installed({ installDir }) {
|
|
159
|
-
try {
|
|
160
|
-
const packageJson = await getPackageDotJson({ installDir });
|
|
161
|
-
const reactVersion = getPackageVersion('react', packageJson);
|
|
162
|
-
if (!reactVersion) {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
return fulfillsVersionRange({
|
|
166
|
-
version: reactVersion,
|
|
167
|
-
acceptableVersions: '>=19.0.0',
|
|
168
|
-
canBeLatest: true,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
catch {
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Installs or updates a package with the user's package manager.
|
|
177
|
-
*
|
|
178
|
-
* IMPORTANT: This function modifies the `package.json`! Be sure to re-read
|
|
179
|
-
* it if you make additional modifications to it after calling this function!
|
|
180
|
-
*/
|
|
181
|
-
export async function installPackage({ packageName, alreadyInstalled, askBeforeUpdating = true, packageNameDisplayLabel, packageManager, forceInstall = false, integration, installDir, }) {
|
|
182
|
-
return traceStep('install-package', async () => {
|
|
183
|
-
if (alreadyInstalled && askBeforeUpdating) {
|
|
184
|
-
const shouldUpdatePackage = await abortIfCancelled(clack.confirm({
|
|
185
|
-
message: `The ${chalk.bold.cyan(packageNameDisplayLabel ?? packageName)} package is already installed. Do you want to update it to the latest version?`,
|
|
186
|
-
}));
|
|
187
|
-
if (!shouldUpdatePackage) {
|
|
188
|
-
return {};
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
const sdkInstallSpinner = clack.spinner();
|
|
192
|
-
const pkgManager = packageManager || (await getPackageManager({ installDir }));
|
|
193
|
-
// Most packages aren't compatible with React 19 yet, skip strict peer dependency checks if needed.
|
|
194
|
-
const isReact19 = await isReact19Installed({ installDir });
|
|
195
|
-
const legacyPeerDepsFlag = isReact19 && pkgManager.name === 'npm' ? '--legacy-peer-deps' : '';
|
|
196
|
-
sdkInstallSpinner.start(`${alreadyInstalled ? 'Updating' : 'Installing'} ${chalk.bold.cyan(packageNameDisplayLabel ?? packageName)} with ${chalk.bold(pkgManager.label)}.`);
|
|
197
|
-
try {
|
|
198
|
-
await new Promise((resolve, reject) => {
|
|
199
|
-
const [cmd, ...baseArgs] = pkgManager.installCommand.split(' ');
|
|
200
|
-
const args = [
|
|
201
|
-
...baseArgs,
|
|
202
|
-
packageName,
|
|
203
|
-
...pkgManager.flags.split(/\s+/).filter(Boolean),
|
|
204
|
-
...(forceInstall && pkgManager.forceInstallFlag ? pkgManager.forceInstallFlag.split(/\s+/) : []),
|
|
205
|
-
...(legacyPeerDepsFlag ? [legacyPeerDepsFlag] : []),
|
|
206
|
-
];
|
|
207
|
-
const proc = childProcess.spawn(cmd, args, { cwd: installDir, ...SPAWN_OPTS });
|
|
208
|
-
let stdout = '';
|
|
209
|
-
let stderr = '';
|
|
210
|
-
proc.stdout?.on('data', (d) => {
|
|
211
|
-
stdout += d.toString();
|
|
212
|
-
});
|
|
213
|
-
proc.stderr?.on('data', (d) => {
|
|
214
|
-
stderr += d.toString();
|
|
215
|
-
});
|
|
216
|
-
proc.on('close', (code) => {
|
|
217
|
-
if (code !== 0) {
|
|
218
|
-
fs.writeFileSync(join(process.cwd(), `workos-installation-error-${Date.now()}.log`), JSON.stringify({
|
|
219
|
-
stdout: redactSensitiveInfo(stdout),
|
|
220
|
-
stderr: redactSensitiveInfo(stderr),
|
|
221
|
-
}), { encoding: 'utf8' });
|
|
222
|
-
reject(new Error(`${cmd} exited with code ${code}\n${stderr}`));
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
resolve();
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
proc.on('error', reject);
|
|
229
|
-
});
|
|
230
|
-
}
|
|
231
|
-
catch (e) {
|
|
232
|
-
sdkInstallSpinner.stop('Installation failed.');
|
|
233
|
-
clack.log.error(`${chalk.red('Encountered the following error during installation:')}\n\n${e}\n\n${chalk.dim(`The installer has created an \`workos-installation-error-*.log\` file. If you think this issue is caused by the WorkOS AuthKit installer, create an issue on GitHub and include the log file's content:\n${ISSUES_URL}`)}`);
|
|
234
|
-
await abort();
|
|
235
|
-
}
|
|
236
|
-
sdkInstallSpinner.stop(`${alreadyInstalled ? 'Updated' : 'Installed'} ${chalk.bold.cyan(packageNameDisplayLabel ?? packageName)} with ${chalk.bold(pkgManager.label)}.`);
|
|
237
|
-
analytics.capture('installer interaction', {
|
|
238
|
-
action: 'package installed',
|
|
239
|
-
package_name: packageName,
|
|
240
|
-
package_manager: pkgManager.name,
|
|
241
|
-
integration,
|
|
242
|
-
});
|
|
243
|
-
return { packageManager: pkgManager };
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Checks if @param packageId is listed as a dependency in @param packageJson.
|
|
248
|
-
* If not, it will ask users if they want to continue without the package.
|
|
249
|
-
*
|
|
250
|
-
* Use this function to check if e.g. a the framework of the SDK is installed
|
|
251
|
-
*
|
|
252
|
-
* @param packageJson the package.json object
|
|
253
|
-
* @param packageId the npm name of the package
|
|
254
|
-
* @param packageName a human readable name of the package
|
|
255
|
-
*/
|
|
256
|
-
export async function ensurePackageIsInstalled(packageJson, packageId, packageName, options) {
|
|
257
|
-
return traceStep('ensure-package-installed', async () => {
|
|
258
|
-
const installed = hasPackageInstalled(packageId, packageJson);
|
|
259
|
-
analytics.setTag(`${packageName.toLowerCase()}-installed`, installed);
|
|
260
|
-
if (!installed) {
|
|
261
|
-
// In dashboard mode, auto-continue (integration was already detected)
|
|
262
|
-
if (options?.dashboard) {
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
const continueWithoutPackage = await abortIfCancelled(clack.confirm({
|
|
266
|
-
message: `${packageName} does not seem to be installed. Do you still want to continue?`,
|
|
267
|
-
initialValue: false,
|
|
268
|
-
}));
|
|
269
|
-
if (!continueWithoutPackage) {
|
|
270
|
-
await abort(undefined, 0);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
export async function getPackageDotJson({ installDir }) {
|
|
276
|
-
const packageJsonFileContents = await fs.promises.readFile(join(installDir, 'package.json'), 'utf8').catch(() => {
|
|
277
|
-
clack.log.error('Could not find package.json. Make sure to run the installer in the root of your app!');
|
|
278
|
-
return abort();
|
|
279
|
-
});
|
|
280
|
-
let packageJson = undefined;
|
|
281
|
-
try {
|
|
282
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
283
|
-
packageJson = JSON.parse(packageJsonFileContents);
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
clack.log.error(`Unable to parse your ${chalk.cyan('package.json')}. Make sure it has a valid format!`);
|
|
287
|
-
await abort();
|
|
288
|
-
}
|
|
289
|
-
return packageJson || {};
|
|
290
|
-
}
|
|
291
|
-
export async function updatePackageDotJson(packageDotJson, { installDir }) {
|
|
292
|
-
try {
|
|
293
|
-
await fs.promises.writeFile(join(installDir, 'package.json'),
|
|
294
|
-
// TODO: maybe figure out the original indentation
|
|
295
|
-
JSON.stringify(packageDotJson, null, 2), {
|
|
296
|
-
encoding: 'utf8',
|
|
297
|
-
flag: 'w',
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
catch {
|
|
301
|
-
clack.log.error(`Unable to update your ${chalk.cyan('package.json')}.`);
|
|
302
|
-
await abort();
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
export async function getPackageManager(options) {
|
|
306
|
-
const detectedPackageManagers = detectAllPackageManagers({
|
|
307
|
-
installDir: options.installDir,
|
|
308
|
-
});
|
|
309
|
-
// If exactly one package manager detected, use it automatically
|
|
310
|
-
if (detectedPackageManagers.length === 1) {
|
|
311
|
-
const detectedPackageManager = detectedPackageManagers[0];
|
|
312
|
-
analytics.setTag('package-manager', detectedPackageManager.name);
|
|
313
|
-
return detectedPackageManager;
|
|
314
|
-
}
|
|
315
|
-
// CI mode: auto-select first detected or npm
|
|
316
|
-
if (options.ci) {
|
|
317
|
-
const selectedPackageManager = detectedPackageManagers.length > 0 ? detectedPackageManagers[0] : npm;
|
|
318
|
-
clack.log.info(`CI mode: auto-selected package manager: ${selectedPackageManager.label}`);
|
|
319
|
-
analytics.setTag('package-manager', selectedPackageManager.name);
|
|
320
|
-
return selectedPackageManager;
|
|
321
|
-
}
|
|
322
|
-
// If multiple or no package managers detected, prompt user to select
|
|
323
|
-
const pkgOptions = detectedPackageManagers.length > 0 ? detectedPackageManagers : packageManagers;
|
|
324
|
-
const message = detectedPackageManagers.length > 1
|
|
325
|
-
? 'Multiple package managers detected. Please select one:'
|
|
326
|
-
: 'Please select your package manager.';
|
|
327
|
-
const selectedPackageManager = await abortIfCancelled(clack.select({
|
|
328
|
-
message,
|
|
329
|
-
options: pkgOptions.map((packageManager) => ({
|
|
330
|
-
value: packageManager,
|
|
331
|
-
label: packageManager.label,
|
|
332
|
-
})),
|
|
333
|
-
}));
|
|
334
|
-
analytics.setTag('package-manager', selectedPackageManager.name);
|
|
335
|
-
return selectedPackageManager;
|
|
336
|
-
}
|
|
337
|
-
export function isUsingTypeScript({ installDir }) {
|
|
338
|
-
try {
|
|
339
|
-
return fs.existsSync(join(installDir, 'tsconfig.json'));
|
|
340
|
-
}
|
|
341
|
-
catch {
|
|
342
|
-
return false;
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Get WorkOS credentials (API Key and Client ID) from user or CLI options
|
|
347
|
-
* @param requireApiKey - Whether API key is needed (false for client-only SDKs like React, Vanilla JS)
|
|
348
|
-
*/
|
|
349
|
-
export async function getOrAskForWorkOSCredentials(_options, requireApiKey = true) {
|
|
350
|
-
let apiKey = _options.apiKey;
|
|
351
|
-
let clientId = _options.clientId;
|
|
352
|
-
// If credentials provided via CLI (e.g., CI mode or dashboard mode), use them
|
|
353
|
-
if ((!requireApiKey || apiKey) && clientId) {
|
|
354
|
-
// Only log in non-dashboard mode
|
|
355
|
-
if (!_options.dashboard) {
|
|
356
|
-
clack.log.info('Using provided WorkOS credentials');
|
|
357
|
-
}
|
|
358
|
-
return { apiKey: apiKey || '', clientId };
|
|
359
|
-
}
|
|
360
|
-
// Check if credentials already exist in .env.local
|
|
361
|
-
const envPath = join(_options.installDir, '.env.local');
|
|
362
|
-
if (fs.existsSync(envPath)) {
|
|
363
|
-
try {
|
|
364
|
-
const envContent = fs.readFileSync(envPath, 'utf-8');
|
|
365
|
-
const envVars = parseEnvFile(envContent);
|
|
366
|
-
const existingApiKey = envVars.WORKOS_API_KEY;
|
|
367
|
-
const existingClientId = envVars.WORKOS_CLIENT_ID;
|
|
368
|
-
// Use existing credentials if both are present (or API key not required)
|
|
369
|
-
if (existingClientId && (!requireApiKey || existingApiKey)) {
|
|
370
|
-
if (!_options.dashboard) {
|
|
371
|
-
clack.log.success(`Found existing WorkOS credentials in .env.local`);
|
|
372
|
-
}
|
|
373
|
-
return {
|
|
374
|
-
apiKey: existingApiKey || '',
|
|
375
|
-
clientId: existingClientId,
|
|
376
|
-
};
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
catch (error) {
|
|
380
|
-
// If we can't read/parse .env.local, just continue to prompt
|
|
381
|
-
debug('Failed to read .env.local:', error);
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
// Otherwise, prompt user for credentials
|
|
385
|
-
clack.log.step(`Get your credentials from ${chalk.cyan('https://dashboard.workos.com')}`);
|
|
386
|
-
if (requireApiKey && !apiKey) {
|
|
387
|
-
clack.log.info(`${chalk.dim('ℹ️ Your API key will be hidden for security and saved to .env.local')}`);
|
|
388
|
-
apiKey = (await abortIfCancelled(clack.password({
|
|
389
|
-
message: 'Enter your WorkOS API Key',
|
|
390
|
-
validate: (value) => {
|
|
391
|
-
if (!value)
|
|
392
|
-
return 'API Key is required';
|
|
393
|
-
if (!value.startsWith('sk_')) {
|
|
394
|
-
return 'API Key should start with sk_';
|
|
395
|
-
}
|
|
396
|
-
return undefined;
|
|
397
|
-
},
|
|
398
|
-
})));
|
|
399
|
-
}
|
|
400
|
-
else if (!requireApiKey) {
|
|
401
|
-
clack.log.info(`${chalk.dim('ℹ️ Client-only SDK - API key not required')}`);
|
|
402
|
-
}
|
|
403
|
-
if (!clientId) {
|
|
404
|
-
clientId = (await abortIfCancelled(clack.text({
|
|
405
|
-
message: 'Enter your WorkOS Client ID',
|
|
406
|
-
placeholder: 'client_...',
|
|
407
|
-
validate: (value) => {
|
|
408
|
-
if (!value)
|
|
409
|
-
return 'Client ID is required';
|
|
410
|
-
if (!value.startsWith('client_')) {
|
|
411
|
-
return 'Client ID should start with client_';
|
|
412
|
-
}
|
|
413
|
-
return undefined;
|
|
414
|
-
},
|
|
415
|
-
})));
|
|
416
|
-
}
|
|
417
|
-
return { apiKey: apiKey || '', clientId };
|
|
418
|
-
}
|
|
419
|
-
/**
|
|
420
|
-
* Fetch project data using a personal API key (for CI mode)
|
|
421
|
-
*/
|
|
422
|
-
//# sourceMappingURL=clack-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clack-utils.js","sourceRoot":"","sources":["../../src/utils/clack-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import * as childProcess from 'node:child_process';\nimport * as fs from 'node:fs';\nimport * as os from 'node:os';\nimport { join } from 'node:path';\n\nimport chalk from 'chalk';\nimport { traceStep } from '../telemetry.js';\nimport { debug } from './debug.js';\nimport { parseEnvFile } from './env-parser.js';\nimport { type PackageDotJson, hasPackageInstalled } from './package-json.js';\nimport { type PackageManager, detectAllPackageManagers, packageManagers, NPM as npm } from './package-manager.js';\nimport { fulfillsVersionRange } from './semver.js';\nimport type { InstallerOptions } from './types.js';\nimport { getPackageVersion } from './package-json.js';\nimport { ISSUES_URL, type Integration } from '../lib/constants.js';\nimport { analytics } from './analytics.js';\nimport clack from './clack.js';\nimport { INTEGRATION_CONFIG } from '../lib/config.js';\nimport { SPAWN_OPTS } from './platform.js';\n\n/**\n * Redact sensitive info (API keys, client secrets) from a string.\n */\nexport function redactSensitiveInfo(str: string): string {\n // Redact WorkOS API keys (sk_...), client secrets, etc.\n return str.replace(/sk_[a-zA-Z0-9]+/g, 'sk_***').replace(/client_[a-zA-Z0-9]{20,}/g, 'client_***');\n}\n\nexport interface CliSetupConfig {\n filename: string;\n name: string;\n gitignore: boolean;\n\n likelyAlreadyHasAuthToken(contents: string): boolean;\n tokenContent(authToken: string): string;\n\n likelyAlreadyHasOrgAndProject(contents: string): boolean;\n orgAndProjContent(org: string, project: string): string;\n\n likelyAlreadyHasUrl?(contents: string): boolean;\n urlContent?(url: string): string;\n}\n\nexport interface CliSetupConfigContent {\n authToken: string;\n org?: string;\n project?: string;\n url?: string;\n}\n\nexport async function abort(message?: string, status?: number): Promise<never> {\n await analytics.shutdown('cancelled');\n\n clack.outro(message ?? 'Installer setup cancelled.');\n return process.exit(status ?? 1);\n}\n\nexport async function abortIfCancelled<T>(\n input: T | Promise<T>,\n integration?: Integration,\n): Promise<Exclude<T, symbol>> {\n await analytics.shutdown('cancelled');\n const resolvedInput = await input;\n\n if (\n clack.isCancel(resolvedInput) ||\n (typeof resolvedInput === 'symbol' && resolvedInput.description === 'clack:cancel')\n ) {\n const docsUrl = integration ? INTEGRATION_CONFIG[integration].docsUrl : 'https://workos.com/docs/user-management';\n\n clack.cancel(\n `Installer setup cancelled. You can read the documentation for ${\n integration ?? 'WorkOS AuthKit'\n } at ${chalk.cyan(docsUrl)} to continue with the setup manually.`,\n );\n process.exit(0);\n } else {\n return input as Exclude<T, symbol>;\n }\n}\n\nexport function printWelcome(options: { wizardName: string; message?: string }): void {\n // eslint-disable-next-line no-console\n console.log('');\n clack.intro(chalk.inverse(` ${options.wizardName} `));\n\n const welcomeText =\n options.message ||\n `The ${options.wizardName} will help you set up WorkOS AuthKit for your application.\\nThank you for using WorkOS AuthKit :)`;\n\n clack.note(welcomeText);\n}\n\nexport async function confirmContinueIfNoOrDirtyGitRepo(options: Pick<InstallerOptions, 'ci'>): Promise<void> {\n return traceStep('check-git-status', async () => {\n if (!isInGitRepo()) {\n // CI mode: auto-continue without git\n const continueWithoutGit = options.ci\n ? true\n : await abortIfCancelled(\n clack.confirm({\n message:\n 'You are not inside a git repository. The installer will create and update files. Do you want to continue anyway?',\n }),\n );\n\n analytics.setTag('continue-without-git', continueWithoutGit);\n\n if (!continueWithoutGit) {\n await abort(undefined, 0);\n }\n // return early to avoid checking for uncommitted files\n return;\n }\n\n const uncommittedOrUntrackedFiles = getUncommittedOrUntrackedFiles();\n if (uncommittedOrUntrackedFiles.length) {\n // CI mode: auto-continue with dirty repo\n if (options.ci) {\n clack.log.info(`CI mode: continuing with uncommitted/untracked files in repo`);\n analytics.setTag('continue-with-dirty-repo', true);\n return;\n }\n\n clack.log.warn(\n `You have uncommitted or untracked files in your repo:\n\n${uncommittedOrUntrackedFiles.join('\\n')}\n\nThe installer will create and update files.`,\n );\n const continueWithDirtyRepo = await abortIfCancelled(\n clack.confirm({\n message: 'Do you want to continue anyway?',\n }),\n );\n\n analytics.setTag('continue-with-dirty-repo', continueWithDirtyRepo);\n\n if (!continueWithDirtyRepo) {\n await abort(undefined, 0);\n }\n }\n });\n}\n\nexport function isInGitRepo() {\n try {\n childProcess.execSync('git rev-parse --is-inside-work-tree', {\n stdio: 'ignore',\n });\n return true;\n } catch {\n return false;\n }\n}\n\nexport function getUncommittedOrUntrackedFiles(): string[] {\n try {\n const gitStatus = childProcess\n .execSync('git status --porcelain=v1', {\n // we only care about stdout\n stdio: ['ignore', 'pipe', 'ignore'],\n })\n .toString();\n\n const files = gitStatus\n .split(os.EOL)\n .map((line) => line.trim())\n .filter(Boolean)\n .map((f) => `- ${f.split(/\\s+/)[1]}`);\n\n return files;\n } catch {\n return [];\n }\n}\n\nexport async function askForItemSelection(items: string[], message: string): Promise<{ value: string; index: number }> {\n const selection = await abortIfCancelled<{ value: string; index: number } | symbol>(\n clack.select({\n maxItems: 12,\n message: message,\n options: items.map((item, index) => {\n return {\n value: { value: item, index: index },\n label: item,\n };\n }),\n }),\n );\n\n return selection as { value: string; index: number };\n}\n\nexport async function confirmContinueIfPackageVersionNotSupported({\n packageId,\n packageName,\n packageVersion,\n acceptableVersions,\n note,\n}: {\n packageId: string;\n packageName: string;\n packageVersion: string;\n acceptableVersions: string;\n note?: string;\n}): Promise<void> {\n return traceStep(`check-package-version`, async () => {\n analytics.setTag(`${packageName.toLowerCase()}-version`, packageVersion);\n const isSupportedVersion = fulfillsVersionRange({\n acceptableVersions,\n version: packageVersion,\n canBeLatest: true,\n });\n\n if (isSupportedVersion) {\n analytics.setTag(`${packageName.toLowerCase()}-supported`, true);\n return;\n }\n\n clack.log.warn(\n `You have an unsupported version of ${packageName} installed:\n\n ${packageId}@${packageVersion}`,\n );\n\n clack.note(note ?? `Please upgrade to ${acceptableVersions} if you wish to use the WorkOS AuthKit installer.`);\n const continueWithUnsupportedVersion = await abortIfCancelled(\n clack.confirm({\n message: 'Do you want to continue anyway?',\n }),\n );\n analytics.setTag(`${packageName.toLowerCase()}-continue-with-unsupported-version`, continueWithUnsupportedVersion);\n\n if (!continueWithUnsupportedVersion) {\n await abort(undefined, 0);\n }\n });\n}\n\nexport async function isReact19Installed({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<boolean> {\n try {\n const packageJson = await getPackageDotJson({ installDir });\n const reactVersion = getPackageVersion('react', packageJson);\n\n if (!reactVersion) {\n return false;\n }\n\n return fulfillsVersionRange({\n version: reactVersion,\n acceptableVersions: '>=19.0.0',\n canBeLatest: true,\n });\n } catch {\n return false;\n }\n}\n\n/**\n * Installs or updates a package with the user's package manager.\n *\n * IMPORTANT: This function modifies the `package.json`! Be sure to re-read\n * it if you make additional modifications to it after calling this function!\n */\nexport async function installPackage({\n packageName,\n alreadyInstalled,\n askBeforeUpdating = true,\n packageNameDisplayLabel,\n packageManager,\n forceInstall = false,\n integration,\n installDir,\n}: {\n /** The string that is passed to the package manager CLI as identifier to install (e.g. `@workos-inc/authkit-nextjs`, or `@workos-inc/authkit-nextjs@^2.0.0`) */\n packageName: string;\n alreadyInstalled: boolean;\n askBeforeUpdating?: boolean;\n /** Overrides what is shown in the installation logs in place of the `packageName` option. Useful if the `packageName` is ugly */\n packageNameDisplayLabel?: string;\n packageManager?: PackageManager;\n /** Add force install flag to command to skip install precondition fails */\n forceInstall?: boolean;\n /** The integration that is being used */\n integration?: string;\n /** The directory to install the package in */\n installDir: string;\n}): Promise<{ packageManager?: PackageManager }> {\n return traceStep('install-package', async () => {\n if (alreadyInstalled && askBeforeUpdating) {\n const shouldUpdatePackage = await abortIfCancelled(\n clack.confirm({\n message: `The ${chalk.bold.cyan(\n packageNameDisplayLabel ?? packageName,\n )} package is already installed. Do you want to update it to the latest version?`,\n }),\n );\n\n if (!shouldUpdatePackage) {\n return {};\n }\n }\n\n const sdkInstallSpinner = clack.spinner();\n\n const pkgManager = packageManager || (await getPackageManager({ installDir }));\n\n // Most packages aren't compatible with React 19 yet, skip strict peer dependency checks if needed.\n const isReact19 = await isReact19Installed({ installDir });\n const legacyPeerDepsFlag = isReact19 && pkgManager.name === 'npm' ? '--legacy-peer-deps' : '';\n\n sdkInstallSpinner.start(\n `${alreadyInstalled ? 'Updating' : 'Installing'} ${chalk.bold.cyan(\n packageNameDisplayLabel ?? packageName,\n )} with ${chalk.bold(pkgManager.label)}.`,\n );\n\n try {\n await new Promise<void>((resolve, reject) => {\n const [cmd, ...baseArgs] = pkgManager.installCommand.split(' ');\n const args = [\n ...baseArgs,\n packageName,\n ...pkgManager.flags.split(/\\s+/).filter(Boolean),\n ...(forceInstall && pkgManager.forceInstallFlag ? pkgManager.forceInstallFlag.split(/\\s+/) : []),\n ...(legacyPeerDepsFlag ? [legacyPeerDepsFlag] : []),\n ];\n const proc = childProcess.spawn(cmd, args, { cwd: installDir, ...SPAWN_OPTS });\n let stdout = '';\n let stderr = '';\n proc.stdout?.on('data', (d: Buffer) => {\n stdout += d.toString();\n });\n proc.stderr?.on('data', (d: Buffer) => {\n stderr += d.toString();\n });\n proc.on('close', (code) => {\n if (code !== 0) {\n fs.writeFileSync(\n join(process.cwd(), `workos-installation-error-${Date.now()}.log`),\n JSON.stringify({\n stdout: redactSensitiveInfo(stdout),\n stderr: redactSensitiveInfo(stderr),\n }),\n { encoding: 'utf8' },\n );\n reject(new Error(`${cmd} exited with code ${code}\\n${stderr}`));\n } else {\n resolve();\n }\n });\n proc.on('error', reject);\n });\n } catch (e) {\n sdkInstallSpinner.stop('Installation failed.');\n clack.log.error(\n `${chalk.red(\n 'Encountered the following error during installation:',\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n )}\\n\\n${e}\\n\\n${chalk.dim(\n `The installer has created an \\`workos-installation-error-*.log\\` file. If you think this issue is caused by the WorkOS AuthKit installer, create an issue on GitHub and include the log file's content:\\n${ISSUES_URL}`,\n )}`,\n );\n await abort();\n }\n\n sdkInstallSpinner.stop(\n `${alreadyInstalled ? 'Updated' : 'Installed'} ${chalk.bold.cyan(\n packageNameDisplayLabel ?? packageName,\n )} with ${chalk.bold(pkgManager.label)}.`,\n );\n\n analytics.capture('installer interaction', {\n action: 'package installed',\n package_name: packageName,\n package_manager: pkgManager.name,\n integration,\n });\n\n return { packageManager: pkgManager };\n });\n}\n\n/**\n * Checks if @param packageId is listed as a dependency in @param packageJson.\n * If not, it will ask users if they want to continue without the package.\n *\n * Use this function to check if e.g. a the framework of the SDK is installed\n *\n * @param packageJson the package.json object\n * @param packageId the npm name of the package\n * @param packageName a human readable name of the package\n */\nexport async function ensurePackageIsInstalled(\n packageJson: PackageDotJson,\n packageId: string,\n packageName: string,\n options?: Pick<InstallerOptions, 'dashboard'>,\n): Promise<void> {\n return traceStep('ensure-package-installed', async () => {\n const installed = hasPackageInstalled(packageId, packageJson);\n\n analytics.setTag(`${packageName.toLowerCase()}-installed`, installed);\n\n if (!installed) {\n // In dashboard mode, auto-continue (integration was already detected)\n if (options?.dashboard) {\n return;\n }\n\n const continueWithoutPackage = await abortIfCancelled(\n clack.confirm({\n message: `${packageName} does not seem to be installed. Do you still want to continue?`,\n initialValue: false,\n }),\n );\n\n if (!continueWithoutPackage) {\n await abort(undefined, 0);\n }\n }\n });\n}\n\nexport async function getPackageDotJson({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<PackageDotJson> {\n const packageJsonFileContents = await fs.promises.readFile(join(installDir, 'package.json'), 'utf8').catch(() => {\n clack.log.error('Could not find package.json. Make sure to run the installer in the root of your app!');\n return abort();\n });\n\n let packageJson: PackageDotJson | undefined = undefined;\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n packageJson = JSON.parse(packageJsonFileContents);\n } catch {\n clack.log.error(`Unable to parse your ${chalk.cyan('package.json')}. Make sure it has a valid format!`);\n\n await abort();\n }\n\n return packageJson || {};\n}\n\nexport async function updatePackageDotJson(\n packageDotJson: PackageDotJson,\n { installDir }: Pick<InstallerOptions, 'installDir'>,\n): Promise<void> {\n try {\n await fs.promises.writeFile(\n join(installDir, 'package.json'),\n // TODO: maybe figure out the original indentation\n JSON.stringify(packageDotJson, null, 2),\n {\n encoding: 'utf8',\n flag: 'w',\n },\n );\n } catch {\n clack.log.error(`Unable to update your ${chalk.cyan('package.json')}.`);\n\n await abort();\n }\n}\n\nexport async function getPackageManager(\n options: Pick<InstallerOptions, 'installDir'> & { ci?: boolean },\n): Promise<PackageManager> {\n const detectedPackageManagers = detectAllPackageManagers({\n installDir: options.installDir,\n });\n\n // If exactly one package manager detected, use it automatically\n if (detectedPackageManagers.length === 1) {\n const detectedPackageManager = detectedPackageManagers[0];\n analytics.setTag('package-manager', detectedPackageManager.name);\n return detectedPackageManager;\n }\n\n // CI mode: auto-select first detected or npm\n if (options.ci) {\n const selectedPackageManager = detectedPackageManagers.length > 0 ? detectedPackageManagers[0] : npm;\n clack.log.info(`CI mode: auto-selected package manager: ${selectedPackageManager.label}`);\n analytics.setTag('package-manager', selectedPackageManager.name);\n return selectedPackageManager;\n }\n\n // If multiple or no package managers detected, prompt user to select\n const pkgOptions = detectedPackageManagers.length > 0 ? detectedPackageManagers : packageManagers;\n\n const message =\n detectedPackageManagers.length > 1\n ? 'Multiple package managers detected. Please select one:'\n : 'Please select your package manager.';\n\n const selectedPackageManager = await abortIfCancelled<PackageManager | symbol>(\n clack.select({\n message,\n options: pkgOptions.map((packageManager) => ({\n value: packageManager,\n label: packageManager.label,\n })),\n }),\n );\n\n analytics.setTag('package-manager', (selectedPackageManager as PackageManager).name);\n return selectedPackageManager as PackageManager;\n}\n\nexport function isUsingTypeScript({ installDir }: Pick<InstallerOptions, 'installDir'>) {\n try {\n return fs.existsSync(join(installDir, 'tsconfig.json'));\n } catch {\n return false;\n }\n}\n\n/**\n * Get WorkOS credentials (API Key and Client ID) from user or CLI options\n * @param requireApiKey - Whether API key is needed (false for client-only SDKs like React, Vanilla JS)\n */\nexport async function getOrAskForWorkOSCredentials(\n _options: Pick<InstallerOptions, 'ci' | 'apiKey' | 'clientId' | 'installDir' | 'dashboard'>,\n requireApiKey: boolean = true,\n): Promise<{\n apiKey: string;\n clientId: string;\n}> {\n let apiKey = _options.apiKey;\n let clientId = _options.clientId;\n\n // If credentials provided via CLI (e.g., CI mode or dashboard mode), use them\n if ((!requireApiKey || apiKey) && clientId) {\n // Only log in non-dashboard mode\n if (!_options.dashboard) {\n clack.log.info('Using provided WorkOS credentials');\n }\n return { apiKey: apiKey || '', clientId };\n }\n\n // Check if credentials already exist in .env.local\n const envPath = join(_options.installDir, '.env.local');\n if (fs.existsSync(envPath)) {\n try {\n const envContent = fs.readFileSync(envPath, 'utf-8');\n const envVars = parseEnvFile(envContent);\n\n const existingApiKey = envVars.WORKOS_API_KEY;\n const existingClientId = envVars.WORKOS_CLIENT_ID;\n\n // Use existing credentials if both are present (or API key not required)\n if (existingClientId && (!requireApiKey || existingApiKey)) {\n if (!_options.dashboard) {\n clack.log.success(`Found existing WorkOS credentials in .env.local`);\n }\n return {\n apiKey: existingApiKey || '',\n clientId: existingClientId,\n };\n }\n } catch (error) {\n // If we can't read/parse .env.local, just continue to prompt\n debug('Failed to read .env.local:', error);\n }\n }\n\n // Otherwise, prompt user for credentials\n clack.log.step(`Get your credentials from ${chalk.cyan('https://dashboard.workos.com')}`);\n\n if (requireApiKey && !apiKey) {\n clack.log.info(`${chalk.dim('ℹ️ Your API key will be hidden for security and saved to .env.local')}`);\n apiKey = (await abortIfCancelled(\n clack.password({\n message: 'Enter your WorkOS API Key',\n validate: (value) => {\n if (!value) return 'API Key is required';\n if (!value.startsWith('sk_')) {\n return 'API Key should start with sk_';\n }\n return undefined;\n },\n }),\n )) as string;\n } else if (!requireApiKey) {\n clack.log.info(`${chalk.dim('ℹ️ Client-only SDK - API key not required')}`);\n }\n\n if (!clientId) {\n clientId = (await abortIfCancelled(\n clack.text({\n message: 'Enter your WorkOS Client ID',\n placeholder: 'client_...',\n validate: (value) => {\n if (!value) return 'Client ID is required';\n if (!value.startsWith('client_')) {\n return 'Client ID should start with client_';\n }\n return undefined;\n },\n }),\n )) as string;\n }\n\n return { apiKey: apiKey || '', clientId };\n}\n\n/**\n * Fetch project data using a personal API key (for CI mode)\n */\n"]}
|
package/dist/utils/clack.d.ts
DELETED
package/dist/utils/clack.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import * as clack from '@clack/prompts';
|
|
2
|
-
// Dashboard mode flag - when true, suppress console output
|
|
3
|
-
let dashboardMode = false;
|
|
4
|
-
export function setDashboardMode(enabled) {
|
|
5
|
-
dashboardMode = enabled;
|
|
6
|
-
}
|
|
7
|
-
export function isDashboardMode() {
|
|
8
|
-
return dashboardMode;
|
|
9
|
-
}
|
|
10
|
-
// Create a proxy that suppresses log output in dashboard mode
|
|
11
|
-
const clackProxy = new Proxy(clack, {
|
|
12
|
-
get(target, prop) {
|
|
13
|
-
const value = target[prop];
|
|
14
|
-
// Suppress log methods in dashboard mode
|
|
15
|
-
if (prop === 'log' && dashboardMode) {
|
|
16
|
-
return {
|
|
17
|
-
info: () => { },
|
|
18
|
-
success: () => { },
|
|
19
|
-
warn: () => { },
|
|
20
|
-
warning: () => { },
|
|
21
|
-
error: () => { },
|
|
22
|
-
step: () => { },
|
|
23
|
-
message: () => { },
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
// Suppress intro/outro in dashboard mode
|
|
27
|
-
if ((prop === 'intro' || prop === 'outro') && dashboardMode) {
|
|
28
|
-
return () => { };
|
|
29
|
-
}
|
|
30
|
-
return value;
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
export default clackProxy;
|
|
34
|
-
//# sourceMappingURL=clack.js.map
|