@amplitude/wizard 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +47 -0
- package/README.md +119 -0
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +763 -0
- package/dist/package.json +144 -0
- package/dist/src/frameworks/android/android-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/android/android-wizard-agent.js +72 -0
- package/dist/src/frameworks/android/utils.d.ts +11 -0
- package/dist/src/frameworks/android/utils.js +32 -0
- package/dist/src/frameworks/django/django-wizard-agent.d.ts +8 -0
- package/dist/src/frameworks/django/django-wizard-agent.js +171 -0
- package/dist/src/frameworks/django/utils.d.ts +31 -0
- package/dist/src/frameworks/django/utils.js +305 -0
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.d.ts +11 -0
- package/dist/src/frameworks/fastapi/fastapi-wizard-agent.js +189 -0
- package/dist/src/frameworks/fastapi/utils.d.ts +26 -0
- package/dist/src/frameworks/fastapi/utils.js +257 -0
- package/dist/src/frameworks/flask/flask-wizard-agent.d.ts +8 -0
- package/dist/src/frameworks/flask/flask-wizard-agent.js +177 -0
- package/dist/src/frameworks/flask/utils.d.ts +28 -0
- package/dist/src/frameworks/flask/utils.js +343 -0
- package/dist/src/frameworks/flutter/flutter-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/flutter/flutter-wizard-agent.js +57 -0
- package/dist/src/frameworks/flutter/utils.d.ts +7 -0
- package/dist/src/frameworks/flutter/utils.js +64 -0
- package/dist/src/frameworks/generic/generic-wizard-agent.d.ts +2 -0
- package/dist/src/frameworks/generic/generic-wizard-agent.js +176 -0
- package/dist/src/frameworks/go/go-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/go/go-wizard-agent.js +57 -0
- package/dist/src/frameworks/go/utils.d.ts +5 -0
- package/dist/src/frameworks/go/utils.js +44 -0
- package/dist/src/frameworks/java/java-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/java/java-wizard-agent.js +73 -0
- package/dist/src/frameworks/java/utils.d.ts +15 -0
- package/dist/src/frameworks/java/utils.js +64 -0
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/javascript-node/javascript-node-wizard-agent.js +57 -0
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.d.ts +3 -0
- package/dist/src/frameworks/javascript-web/javascript-web-wizard-agent.js +151 -0
- package/dist/src/frameworks/javascript-web/utils.d.ts +28 -0
- package/dist/src/frameworks/javascript-web/utils.js +153 -0
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/nextjs/nextjs-wizard-agent.js +98 -0
- package/dist/src/frameworks/nextjs/utils.d.ts +12 -0
- package/dist/src/frameworks/nextjs/utils.js +51 -0
- package/dist/src/frameworks/python/python-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/python/python-wizard-agent.js +193 -0
- package/dist/src/frameworks/python/utils.d.ts +28 -0
- package/dist/src/frameworks/python/utils.js +146 -0
- package/dist/src/frameworks/react-native/react-native-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/react-native/react-native-wizard-agent.js +84 -0
- package/dist/src/frameworks/react-native/utils.d.ts +21 -0
- package/dist/src/frameworks/react-native/utils.js +82 -0
- package/dist/src/frameworks/react-router/react-router-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/react-router/react-router-wizard-agent.js +98 -0
- package/dist/src/frameworks/react-router/utils.d.ts +13 -0
- package/dist/src/frameworks/react-router/utils.js +160 -0
- package/dist/src/frameworks/swift/swift-wizard-agent.d.ts +7 -0
- package/dist/src/frameworks/swift/swift-wizard-agent.js +72 -0
- package/dist/src/frameworks/swift/utils.d.ts +12 -0
- package/dist/src/frameworks/swift/utils.js +82 -0
- package/dist/src/frameworks/unity/unity-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/unity/unity-wizard-agent.js +79 -0
- package/dist/src/frameworks/unity/utils.d.ts +12 -0
- package/dist/src/frameworks/unity/utils.js +66 -0
- package/dist/src/frameworks/unreal/unreal-wizard-agent.d.ts +6 -0
- package/dist/src/frameworks/unreal/unreal-wizard-agent.js +77 -0
- package/dist/src/frameworks/unreal/utils.d.ts +10 -0
- package/dist/src/frameworks/unreal/utils.js +29 -0
- package/dist/src/frameworks/vue/vue-wizard-agent.d.ts +4 -0
- package/dist/src/frameworks/vue/vue-wizard-agent.js +64 -0
- package/dist/src/lib/agent-hooks.d.ts +26 -0
- package/dist/src/lib/agent-hooks.js +118 -0
- package/dist/src/lib/agent-interface.d.ts +175 -0
- package/dist/src/lib/agent-interface.js +1217 -0
- package/dist/src/lib/agent-runner.d.ts +9 -0
- package/dist/src/lib/agent-runner.js +415 -0
- package/dist/src/lib/ampli-config.d.ts +105 -0
- package/dist/src/lib/ampli-config.js +178 -0
- package/dist/src/lib/api.d.ts +107 -0
- package/dist/src/lib/api.js +442 -0
- package/dist/src/lib/commandments.d.ts +1 -0
- package/dist/src/lib/commandments.js +24 -0
- package/dist/src/lib/console-query.d.ts +27 -0
- package/dist/src/lib/console-query.js +121 -0
- package/dist/src/lib/constants.d.ts +124 -0
- package/dist/src/lib/constants.js +170 -0
- package/dist/src/lib/detect-amplitude.d.ts +31 -0
- package/dist/src/lib/detect-amplitude.js +407 -0
- package/dist/src/lib/framework-config.d.ts +188 -0
- package/dist/src/lib/framework-config.js +21 -0
- package/dist/src/lib/health-checks/endpoints.d.ts +3 -0
- package/dist/src/lib/health-checks/endpoints.js +45 -0
- package/dist/src/lib/health-checks/index.d.ts +4 -0
- package/dist/src/lib/health-checks/index.js +22 -0
- package/dist/src/lib/health-checks/readiness.d.ts +24 -0
- package/dist/src/lib/health-checks/readiness.js +118 -0
- package/dist/src/lib/health-checks/statuspage.d.ts +9 -0
- package/dist/src/lib/health-checks/statuspage.js +104 -0
- package/dist/src/lib/health-checks/types.d.ts +31 -0
- package/dist/src/lib/health-checks/types.js +9 -0
- package/dist/src/lib/helper-functions.d.ts +1 -0
- package/dist/src/lib/helper-functions.js +5 -0
- package/dist/src/lib/middleware/benchmark.d.ts +54 -0
- package/dist/src/lib/middleware/benchmark.js +48 -0
- package/dist/src/lib/middleware/benchmarks/cache-tracker.d.ts +44 -0
- package/dist/src/lib/middleware/benchmarks/cache-tracker.js +80 -0
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.d.ts +29 -0
- package/dist/src/lib/middleware/benchmarks/compaction-tracker.js +59 -0
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.d.ts +26 -0
- package/dist/src/lib/middleware/benchmarks/context-size-tracker.js +55 -0
- package/dist/src/lib/middleware/benchmarks/cost-tracker.d.ts +16 -0
- package/dist/src/lib/middleware/benchmarks/cost-tracker.js +75 -0
- package/dist/src/lib/middleware/benchmarks/duration-tracker.d.ts +20 -0
- package/dist/src/lib/middleware/benchmarks/duration-tracker.js +39 -0
- package/dist/src/lib/middleware/benchmarks/index.d.ts +9 -0
- package/dist/src/lib/middleware/benchmarks/index.js +67 -0
- package/dist/src/lib/middleware/benchmarks/json-writer.d.ts +15 -0
- package/dist/src/lib/middleware/benchmarks/json-writer.js +144 -0
- package/dist/src/lib/middleware/benchmarks/summary.d.ts +9 -0
- package/dist/src/lib/middleware/benchmarks/summary.js +105 -0
- package/dist/src/lib/middleware/benchmarks/token-tracker.d.ts +40 -0
- package/dist/src/lib/middleware/benchmarks/token-tracker.js +76 -0
- package/dist/src/lib/middleware/benchmarks/turn-counter.d.ts +34 -0
- package/dist/src/lib/middleware/benchmarks/turn-counter.js +58 -0
- package/dist/src/lib/middleware/config.d.ts +24 -0
- package/dist/src/lib/middleware/config.js +96 -0
- package/dist/src/lib/middleware/index.d.ts +11 -0
- package/dist/src/lib/middleware/index.js +17 -0
- package/dist/src/lib/middleware/phase-detector.d.ts +8 -0
- package/dist/src/lib/middleware/phase-detector.js +63 -0
- package/dist/src/lib/middleware/pipeline.d.ts +29 -0
- package/dist/src/lib/middleware/pipeline.js +81 -0
- package/dist/src/lib/middleware/schemas.d.ts +27 -0
- package/dist/src/lib/middleware/schemas.js +84 -0
- package/dist/src/lib/middleware/types.d.ts +94 -0
- package/dist/src/lib/middleware/types.js +8 -0
- package/dist/src/lib/package-manager-detection.d.ts +42 -0
- package/dist/src/lib/package-manager-detection.js +292 -0
- package/dist/src/lib/registry.d.ts +3 -0
- package/dist/src/lib/registry.js +42 -0
- package/dist/src/lib/safe-tools.d.ts +2 -0
- package/dist/src/lib/safe-tools.js +214 -0
- package/dist/src/lib/wizard-session.d.ts +220 -0
- package/dist/src/lib/wizard-session.js +127 -0
- package/dist/src/lib/wizard-tools.d.ts +82 -0
- package/dist/src/lib/wizard-tools.js +499 -0
- package/dist/src/run.d.ts +19 -0
- package/dist/src/run.js +151 -0
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.d.ts +30 -0
- package/dist/src/steps/add-mcp-server-to-clients/MCPClient.js +141 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.d.ts +29 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude-code.js +180 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.d.ts +20 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/claude.js +63 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.d.ts +28 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/codex.js +77 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.d.ts +24 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/cursor.js +60 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.d.ts +27 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/visual-studio-code.js +101 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.d.ts +26 -0
- package/dist/src/steps/add-mcp-server-to-clients/clients/zed.js +102 -0
- package/dist/src/steps/add-mcp-server-to-clients/defaults.d.ts +44 -0
- package/dist/src/steps/add-mcp-server-to-clients/defaults.js +123 -0
- package/dist/src/steps/add-mcp-server-to-clients/index.d.ts +19 -0
- package/dist/src/steps/add-mcp-server-to-clients/index.js +110 -0
- package/dist/src/steps/add-or-update-environment-variables.d.ts +10 -0
- package/dist/src/steps/add-or-update-environment-variables.js +188 -0
- package/dist/src/steps/index.d.ts +4 -0
- package/dist/src/steps/index.js +20 -0
- package/dist/src/steps/run-prettier.d.ts +5 -0
- package/dist/src/steps/run-prettier.js +90 -0
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +11 -0
- package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +11 -0
- package/dist/src/steps/upload-environment-variables/index.d.ts +6 -0
- package/dist/src/steps/upload-environment-variables/index.js +37 -0
- package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +15 -0
- package/dist/src/steps/upload-environment-variables/providers/vercel.js +145 -0
- package/dist/src/telemetry.d.ts +2 -0
- package/dist/src/telemetry.js +12 -0
- package/dist/src/ui/index.d.ts +8 -0
- package/dist/src/ui/index.js +16 -0
- package/dist/src/ui/logging-ui.d.ts +56 -0
- package/dist/src/ui/logging-ui.js +157 -0
- package/dist/src/ui/tui/App.d.ts +6 -0
- package/dist/src/ui/tui/App.js +34 -0
- package/dist/src/ui/tui/components/AmplitudeLogo.d.ts +5 -0
- package/dist/src/ui/tui/components/AmplitudeLogo.js +81 -0
- package/dist/src/ui/tui/components/AmplitudeTextLogo.d.ts +3 -0
- package/dist/src/ui/tui/components/AmplitudeTextLogo.js +31 -0
- package/dist/src/ui/tui/components/ConsoleView.d.ts +23 -0
- package/dist/src/ui/tui/components/ConsoleView.js +220 -0
- package/dist/src/ui/tui/components/TitleBar.d.ts +6 -0
- package/dist/src/ui/tui/components/TitleBar.js +16 -0
- package/dist/src/ui/tui/console-commands.d.ts +16 -0
- package/dist/src/ui/tui/console-commands.js +31 -0
- package/dist/src/ui/tui/context/CommandModeContext.d.ts +2 -0
- package/dist/src/ui/tui/context/CommandModeContext.js +3 -0
- package/dist/src/ui/tui/flows.d.ts +48 -0
- package/dist/src/ui/tui/flows.js +154 -0
- package/dist/src/ui/tui/hooks/useScreenInput.d.ts +13 -0
- package/dist/src/ui/tui/hooks/useScreenInput.js +18 -0
- package/dist/src/ui/tui/hooks/useStdoutDimensions.d.ts +9 -0
- package/dist/src/ui/tui/hooks/useStdoutDimensions.js +29 -0
- package/dist/src/ui/tui/ink-ui.d.ts +62 -0
- package/dist/src/ui/tui/ink-ui.js +142 -0
- package/dist/src/ui/tui/primitives/CardLayout.d.ts +12 -0
- package/dist/src/ui/tui/primitives/CardLayout.js +9 -0
- package/dist/src/ui/tui/primitives/ConfirmationInput.d.ts +13 -0
- package/dist/src/ui/tui/primitives/ConfirmationInput.js +35 -0
- package/dist/src/ui/tui/primitives/DissolveTransition.d.ts +21 -0
- package/dist/src/ui/tui/primitives/DissolveTransition.js +143 -0
- package/dist/src/ui/tui/primitives/EventPlanViewer.d.ts +9 -0
- package/dist/src/ui/tui/primitives/EventPlanViewer.js +9 -0
- package/dist/src/ui/tui/primitives/KagiSmallWebViewer.d.ts +7 -0
- package/dist/src/ui/tui/primitives/KagiSmallWebViewer.js +101 -0
- package/dist/src/ui/tui/primitives/LoadingBox.d.ts +8 -0
- package/dist/src/ui/tui/primitives/LoadingBox.js +9 -0
- package/dist/src/ui/tui/primitives/LogViewer.d.ts +11 -0
- package/dist/src/ui/tui/primitives/LogViewer.js +55 -0
- package/dist/src/ui/tui/primitives/PickerMenu.d.ts +20 -0
- package/dist/src/ui/tui/primitives/PickerMenu.js +212 -0
- package/dist/src/ui/tui/primitives/ProgressList.d.ts +15 -0
- package/dist/src/ui/tui/primitives/ProgressList.js +29 -0
- package/dist/src/ui/tui/primitives/PromptLabel.d.ts +11 -0
- package/dist/src/ui/tui/primitives/PromptLabel.js +12 -0
- package/dist/src/ui/tui/primitives/ReportViewer.d.ts +12 -0
- package/dist/src/ui/tui/primitives/ReportViewer.js +99 -0
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.d.ts +26 -0
- package/dist/src/ui/tui/primitives/ScreenErrorBoundary.js +29 -0
- package/dist/src/ui/tui/primitives/SlashCommandInput.d.ts +21 -0
- package/dist/src/ui/tui/primitives/SlashCommandInput.js +85 -0
- package/dist/src/ui/tui/primitives/SnakeGame.d.ts +1 -0
- package/dist/src/ui/tui/primitives/SnakeGame.js +1 -0
- package/dist/src/ui/tui/primitives/SplitView.d.ts +11 -0
- package/dist/src/ui/tui/primitives/SplitView.js +8 -0
- package/dist/src/ui/tui/primitives/TabContainer.d.ts +18 -0
- package/dist/src/ui/tui/primitives/TabContainer.js +30 -0
- package/dist/src/ui/tui/primitives/index.d.ts +23 -0
- package/dist/src/ui/tui/primitives/index.js +19 -0
- package/dist/src/ui/tui/router.d.ts +61 -0
- package/dist/src/ui/tui/router.js +104 -0
- package/dist/src/ui/tui/screen-registry.d.ts +19 -0
- package/dist/src/ui/tui/screen-registry.js +56 -0
- package/dist/src/ui/tui/screens/ActivationOptionsScreen.d.ts +12 -0
- package/dist/src/ui/tui/screens/ActivationOptionsScreen.js +57 -0
- package/dist/src/ui/tui/screens/AuthScreen.d.ts +18 -0
- package/dist/src/ui/tui/screens/AuthScreen.js +107 -0
- package/dist/src/ui/tui/screens/ChecklistScreen.d.ts +22 -0
- package/dist/src/ui/tui/screens/ChecklistScreen.js +122 -0
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.d.ts +24 -0
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +113 -0
- package/dist/src/ui/tui/screens/DataSetupScreen.d.ts +17 -0
- package/dist/src/ui/tui/screens/DataSetupScreen.js +73 -0
- package/dist/src/ui/tui/screens/IntroScreen.d.ts +16 -0
- package/dist/src/ui/tui/screens/IntroScreen.js +86 -0
- package/dist/src/ui/tui/screens/LoginScreen.d.ts +15 -0
- package/dist/src/ui/tui/screens/LoginScreen.js +65 -0
- package/dist/src/ui/tui/screens/LogoutScreen.d.ts +12 -0
- package/dist/src/ui/tui/screens/LogoutScreen.js +28 -0
- package/dist/src/ui/tui/screens/McpScreen.d.ts +26 -0
- package/dist/src/ui/tui/screens/McpScreen.js +148 -0
- package/dist/src/ui/tui/screens/OutageScreen.d.ts +10 -0
- package/dist/src/ui/tui/screens/OutageScreen.js +17 -0
- package/dist/src/ui/tui/screens/OutroScreen.d.ts +11 -0
- package/dist/src/ui/tui/screens/OutroScreen.js +69 -0
- package/dist/src/ui/tui/screens/RegionSelectScreen.d.ts +17 -0
- package/dist/src/ui/tui/screens/RegionSelectScreen.js +40 -0
- package/dist/src/ui/tui/screens/RunScreen.d.ts +16 -0
- package/dist/src/ui/tui/screens/RunScreen.js +212 -0
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.d.ts +10 -0
- package/dist/src/ui/tui/screens/SettingsOverrideScreen.js +23 -0
- package/dist/src/ui/tui/screens/SetupScreen.d.ts +13 -0
- package/dist/src/ui/tui/screens/SetupScreen.js +73 -0
- package/dist/src/ui/tui/screens/SlackScreen.d.ts +25 -0
- package/dist/src/ui/tui/screens/SlackScreen.js +97 -0
- package/dist/src/ui/tui/services/mcp-installer.d.ts +25 -0
- package/dist/src/ui/tui/services/mcp-installer.js +82 -0
- package/dist/src/ui/tui/start-tui.d.ts +10 -0
- package/dist/src/ui/tui/start-tui.js +50 -0
- package/dist/src/ui/tui/store.d.ts +231 -0
- package/dist/src/ui/tui/store.js +568 -0
- package/dist/src/ui/tui/styles.d.ts +31 -0
- package/dist/src/ui/tui/styles.js +33 -0
- package/dist/src/ui/wizard-ui.d.ts +110 -0
- package/dist/src/ui/wizard-ui.js +18 -0
- package/dist/src/utils/ampli-settings.d.ts +37 -0
- package/dist/src/utils/ampli-settings.js +182 -0
- package/dist/src/utils/analytics.d.ts +35 -0
- package/dist/src/utils/analytics.js +133 -0
- package/dist/src/utils/anthropic-status.d.ts +17 -0
- package/dist/src/utils/anthropic-status.js +51 -0
- package/dist/src/utils/api-key-store.d.ts +35 -0
- package/dist/src/utils/api-key-store.js +176 -0
- package/dist/src/utils/bash.d.ts +2 -0
- package/dist/src/utils/bash.js +53 -0
- package/dist/src/utils/custom-headers.d.ts +9 -0
- package/dist/src/utils/custom-headers.js +23 -0
- package/dist/src/utils/debug.d.ts +23 -0
- package/dist/src/utils/debug.js +86 -0
- package/dist/src/utils/environment.d.ts +4 -0
- package/dist/src/utils/environment.js +76 -0
- package/dist/src/utils/file-utils.d.ts +2 -0
- package/dist/src/utils/file-utils.js +16 -0
- package/dist/src/utils/get-api-key.d.ts +17 -0
- package/dist/src/utils/get-api-key.js +50 -0
- package/dist/src/utils/logging.d.ts +9 -0
- package/dist/src/utils/logging.js +48 -0
- package/dist/src/utils/oauth.d.ts +53 -0
- package/dist/src/utils/oauth.js +354 -0
- package/dist/src/utils/package-json.d.ts +25 -0
- package/dist/src/utils/package-json.js +26 -0
- package/dist/src/utils/package-manager.d.ts +21 -0
- package/dist/src/utils/package-manager.js +208 -0
- package/dist/src/utils/semver.d.ts +21 -0
- package/dist/src/utils/semver.js +61 -0
- package/dist/src/utils/setup-utils.d.ts +82 -0
- package/dist/src/utils/setup-utils.js +467 -0
- package/dist/src/utils/shell-completions.d.ts +10 -0
- package/dist/src/utils/shell-completions.js +199 -0
- package/dist/src/utils/string.d.ts +1 -0
- package/dist/src/utils/string.js +8 -0
- package/dist/src/utils/types.d.ts +72 -0
- package/dist/src/utils/types.js +2 -0
- package/dist/src/utils/urls.d.ts +14 -0
- package/dist/src/utils/urls.js +69 -0
- package/dist/src/utils/vendor/is-unicorn-supported.d.ts +1 -0
- package/dist/src/utils/vendor/is-unicorn-supported.js +23 -0
- package/dist/src/utils/wizard-abort.d.ts +13 -0
- package/dist/src/utils/wizard-abort.js +56 -0
- package/man/amplitude-wizard.1 +170 -0
- package/package.json +144 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Types and logic for the project-level ~/.ampli.json configuration file.
|
|
4
|
+
*
|
|
5
|
+
* The ampli CLI reads and writes this file (named "ampli.json") in the project
|
|
6
|
+
* directory to track which Amplitude workspace, source, and branch a project is
|
|
7
|
+
* connected to. The wizard creates or updates this file during setup.
|
|
8
|
+
*
|
|
9
|
+
* Types are modelled after the ampli CLI's Settings class
|
|
10
|
+
* (ampli/src/settings/index.ts) and are intentionally kept compatible.
|
|
11
|
+
*
|
|
12
|
+
* UNIT-TESTABLE SURFACE (pure, no I/O):
|
|
13
|
+
* parseAmpliConfig, validateAmpliConfig, mergeAmpliConfig,
|
|
14
|
+
* isConfigured, isMinimllyConfigured
|
|
15
|
+
*
|
|
16
|
+
* I/O SURFACE (not unit-testable in isolation):
|
|
17
|
+
* readAmpliConfig, writeAmpliConfig, ampliConfigExists
|
|
18
|
+
*/
|
|
19
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}) : (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
o[k2] = m[k];
|
|
29
|
+
}));
|
|
30
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
+
}) : function(o, v) {
|
|
33
|
+
o["default"] = v;
|
|
34
|
+
});
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.AMPLI_CONFIG_FILENAME = void 0;
|
|
54
|
+
exports.parseAmpliConfig = parseAmpliConfig;
|
|
55
|
+
exports.isMinimallyConfigured = isMinimallyConfigured;
|
|
56
|
+
exports.isConfigured = isConfigured;
|
|
57
|
+
exports.mergeAmpliConfig = mergeAmpliConfig;
|
|
58
|
+
exports.hasMergeConflicts = hasMergeConflicts;
|
|
59
|
+
exports.ampliConfigPath = ampliConfigPath;
|
|
60
|
+
exports.ampliConfigExists = ampliConfigExists;
|
|
61
|
+
exports.readAmpliConfig = readAmpliConfig;
|
|
62
|
+
exports.writeAmpliConfig = writeAmpliConfig;
|
|
63
|
+
const fs = __importStar(require("node:fs"));
|
|
64
|
+
const path = __importStar(require("node:path"));
|
|
65
|
+
const zod_1 = require("zod");
|
|
66
|
+
exports.AMPLI_CONFIG_FILENAME = 'ampli.json';
|
|
67
|
+
// ── Pure logic (unit-testable) ────────────────────────────────────────────────
|
|
68
|
+
const AmpliConfigSchema = zod_1.z
|
|
69
|
+
.object({
|
|
70
|
+
OrgId: zod_1.z.string().optional(),
|
|
71
|
+
WorkspaceId: zod_1.z.string().optional(),
|
|
72
|
+
SourceId: zod_1.z.string().optional(),
|
|
73
|
+
Branch: zod_1.z.string().optional(),
|
|
74
|
+
Path: zod_1.z.string().optional(),
|
|
75
|
+
Version: zod_1.z.string().optional(),
|
|
76
|
+
VersionId: zod_1.z.string().optional(),
|
|
77
|
+
Zone: zod_1.z.string().optional(),
|
|
78
|
+
Runtime: zod_1.z.string().optional(),
|
|
79
|
+
Platform: zod_1.z.string().optional(),
|
|
80
|
+
Language: zod_1.z.string().optional(),
|
|
81
|
+
SDK: zod_1.z.string().optional(),
|
|
82
|
+
OmitApiKeys: zod_1.z.boolean().optional(),
|
|
83
|
+
SourceDirs: zod_1.z.array(zod_1.z.string()).optional(),
|
|
84
|
+
InstanceNames: zod_1.z.array(zod_1.z.string()).optional(),
|
|
85
|
+
})
|
|
86
|
+
.passthrough();
|
|
87
|
+
/**
|
|
88
|
+
* Parse a raw JSON string into an AmpliConfig.
|
|
89
|
+
* Returns a typed result rather than throwing.
|
|
90
|
+
*/
|
|
91
|
+
function parseAmpliConfig(raw) {
|
|
92
|
+
if (hasMergeConflicts(raw)) {
|
|
93
|
+
return { ok: false, error: 'merge_conflicts' };
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const result = AmpliConfigSchema.safeParse(JSON.parse(raw));
|
|
97
|
+
if (!result.success) {
|
|
98
|
+
return { ok: false, error: 'invalid_json' };
|
|
99
|
+
}
|
|
100
|
+
return { ok: true, config: result.data };
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return { ok: false, error: 'invalid_json' };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Returns true when the config contains the fields required to query Amplitude
|
|
108
|
+
* for event data (i.e. the project has been linked to an Amplitude source).
|
|
109
|
+
*/
|
|
110
|
+
function isMinimallyConfigured(config) {
|
|
111
|
+
return Boolean(config.SourceId);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Returns true when the config is considered fully configured: it has an org,
|
|
115
|
+
* a workspace, and a source linked.
|
|
116
|
+
*/
|
|
117
|
+
function isConfigured(config) {
|
|
118
|
+
return Boolean(config.OrgId && config.WorkspaceId && config.SourceId);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Shallow-merge an update into an existing config. Undefined update values are
|
|
122
|
+
* ignored so callers can safely spread partial objects.
|
|
123
|
+
*/
|
|
124
|
+
function mergeAmpliConfig(existing, updates) {
|
|
125
|
+
const result = { ...existing };
|
|
126
|
+
for (const [key, value] of Object.entries(updates)) {
|
|
127
|
+
if (value !== undefined) {
|
|
128
|
+
// @ts-expect-error – dynamic key assignment
|
|
129
|
+
result[key] = value;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Detect git merge conflict markers in a file's content.
|
|
136
|
+
* Mirrors the check in the ampli CLI (ampli/src/util/git/mergeConflicts.ts).
|
|
137
|
+
*/
|
|
138
|
+
function hasMergeConflicts(text) {
|
|
139
|
+
return (text.includes('<<<<<<<') &&
|
|
140
|
+
text.includes('=======') &&
|
|
141
|
+
text.includes('>>>>>>>'));
|
|
142
|
+
}
|
|
143
|
+
// ── I/O (not unit-testable in isolation) ────────────────────────────────────
|
|
144
|
+
/**
|
|
145
|
+
* Returns the full path to ampli.json in the given directory.
|
|
146
|
+
*/
|
|
147
|
+
function ampliConfigPath(dir) {
|
|
148
|
+
return path.join(dir, exports.AMPLI_CONFIG_FILENAME);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Returns true if ampli.json exists in the given directory.
|
|
152
|
+
*/
|
|
153
|
+
function ampliConfigExists(dir) {
|
|
154
|
+
return fs.existsSync(ampliConfigPath(dir));
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Read and parse ampli.json from the given directory.
|
|
158
|
+
* Returns a typed result; never throws.
|
|
159
|
+
*/
|
|
160
|
+
function readAmpliConfig(dir) {
|
|
161
|
+
const filePath = ampliConfigPath(dir);
|
|
162
|
+
let raw;
|
|
163
|
+
try {
|
|
164
|
+
raw = fs.readFileSync(filePath, 'utf-8');
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return { ok: false, error: 'not_found' };
|
|
168
|
+
}
|
|
169
|
+
return parseAmpliConfig(raw);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Write an AmpliConfig object to ampli.json in the given directory.
|
|
173
|
+
* Creates the directory if it does not exist.
|
|
174
|
+
*/
|
|
175
|
+
function writeAmpliConfig(dir, config) {
|
|
176
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
177
|
+
fs.writeFileSync(ampliConfigPath(dir), JSON.stringify(config, null, 2), 'utf-8');
|
|
178
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type AmplitudeZone } from './constants.js';
|
|
3
|
+
export type AmplitudeOrg = {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
workspaces: Array<{
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
environments?: Array<{
|
|
10
|
+
name: string;
|
|
11
|
+
rank: number;
|
|
12
|
+
app: {
|
|
13
|
+
id: string;
|
|
14
|
+
apiKey?: string | null;
|
|
15
|
+
} | null;
|
|
16
|
+
}> | null;
|
|
17
|
+
}>;
|
|
18
|
+
};
|
|
19
|
+
export type AmplitudeUserInfo = {
|
|
20
|
+
id: string;
|
|
21
|
+
firstName: string;
|
|
22
|
+
lastName: string;
|
|
23
|
+
email: string;
|
|
24
|
+
orgs: AmplitudeOrg[];
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Fetches the authenticated user's org/workspace info from Amplitude's Data API.
|
|
28
|
+
* Uses the OAuth id_token as the Authorization header (same as ampli CLI).
|
|
29
|
+
*/
|
|
30
|
+
export declare function fetchAmplitudeUser(idToken: string, zone: AmplitudeZone): Promise<AmplitudeUserInfo>;
|
|
31
|
+
export type AmplitudeBranch = {
|
|
32
|
+
id: string;
|
|
33
|
+
name: string;
|
|
34
|
+
default: boolean;
|
|
35
|
+
currentVersionId: string;
|
|
36
|
+
};
|
|
37
|
+
/** Fetches branches for a workspace. */
|
|
38
|
+
export declare function fetchBranches(idToken: string, zone: AmplitudeZone, orgId: string, workspaceId: string): Promise<AmplitudeBranch[]>;
|
|
39
|
+
/**
|
|
40
|
+
* Fetches the event type names cataloged in the default branch of a workspace.
|
|
41
|
+
* Returns an empty array if the workspace has no events or the query fails.
|
|
42
|
+
*/
|
|
43
|
+
export declare function fetchWorkspaceEventTypes(idToken: string, zone: AmplitudeZone, orgId: string, workspaceId: string): Promise<string[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Checks whether the authenticated user has any charts or dashboards in their org.
|
|
46
|
+
* Uses the Thunder org-scoped GraphQL endpoint.
|
|
47
|
+
*
|
|
48
|
+
* Detection is org-scoped — Thunder has no project-level chart/dashboard listing
|
|
49
|
+
* API. For a typical new-project user this is equivalent to project-scoped.
|
|
50
|
+
*
|
|
51
|
+
* Returns { hasCharts: false, hasDashboards: false } on any error so the
|
|
52
|
+
* checklist falls back to the default empty state rather than crashing.
|
|
53
|
+
*/
|
|
54
|
+
export declare function fetchOwnedDashboards(idToken: string, zone: AmplitudeZone, orgId: string): Promise<{
|
|
55
|
+
hasCharts: boolean;
|
|
56
|
+
hasDashboards: boolean;
|
|
57
|
+
}>;
|
|
58
|
+
export type AmplitudeSource = {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
runtime: {
|
|
62
|
+
id: string;
|
|
63
|
+
platformId: string;
|
|
64
|
+
platformName: string;
|
|
65
|
+
languageId: string;
|
|
66
|
+
languageName: string;
|
|
67
|
+
} | null;
|
|
68
|
+
destinations: Array<{
|
|
69
|
+
name: string;
|
|
70
|
+
serviceId: string;
|
|
71
|
+
}>;
|
|
72
|
+
};
|
|
73
|
+
/** Fetches sources for a specific branch version. */
|
|
74
|
+
export declare function fetchSources(idToken: string, zone: AmplitudeZone, orgId: string, workspaceId: string, branchId: string, versionId: string): Promise<AmplitudeSource[]>;
|
|
75
|
+
export type ProjectActivationStatus = {
|
|
76
|
+
/** SDK/snippet has been installed (default event tracking source detected) */
|
|
77
|
+
hasDetSource: boolean;
|
|
78
|
+
hasPageViewedEvent: boolean;
|
|
79
|
+
hasSessionStartEvent: boolean;
|
|
80
|
+
hasSessionEndEvent: boolean;
|
|
81
|
+
/** True if at least one event type has been ingested */
|
|
82
|
+
hasAnyEvents: boolean;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Checks whether an Amplitude project has ingested any events and whether
|
|
86
|
+
* the SDK snippet is configured.
|
|
87
|
+
*
|
|
88
|
+
* The query lives in Thunder (the main Amplitude app GraphQL server), served
|
|
89
|
+
* at /graphql/org/:orgId. orgId is required to construct the endpoint URL.
|
|
90
|
+
*/
|
|
91
|
+
export declare function fetchProjectActivationStatus(idToken: string, zone: AmplitudeZone, appId: number | string, orgId?: string | null): Promise<ProjectActivationStatus>;
|
|
92
|
+
export declare const ApiUserSchema: z.ZodObject<{
|
|
93
|
+
distinct_id: z.ZodString;
|
|
94
|
+
}, z.core.$strip>;
|
|
95
|
+
export declare const ApiProjectSchema: z.ZodObject<{
|
|
96
|
+
id: z.ZodNumber;
|
|
97
|
+
uuid: z.ZodString;
|
|
98
|
+
organization: z.ZodString;
|
|
99
|
+
api_token: z.ZodString;
|
|
100
|
+
name: z.ZodString;
|
|
101
|
+
}, z.core.$strip>;
|
|
102
|
+
export type ApiUser = z.infer<typeof ApiUserSchema>;
|
|
103
|
+
export type ApiProject = z.infer<typeof ApiProjectSchema>;
|
|
104
|
+
/** @deprecated Amplitude stub. Use fetchAmplitudeUser instead. */
|
|
105
|
+
export declare function fetchUserData(_accessToken: string, _baseUrl: string): Promise<ApiUser>;
|
|
106
|
+
/** @deprecated Amplitude stub. Use fetchAmplitudeUser instead. */
|
|
107
|
+
export declare function fetchProjectData(_accessToken: string, _projectId: number, _baseUrl: string): Promise<ApiProject>;
|