@amplitude/wizard 1.0.0-beta.0 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +191 -47
- package/dist/src/lib/agent-interface.js +10 -22
- package/dist/src/lib/agent-runner.js +4 -6
- package/dist/src/lib/commandments.js +1 -1
- package/dist/src/lib/constants.d.ts +1 -4
- package/dist/src/lib/constants.js +9 -8
- package/dist/src/lib/feature-flags.d.ts +37 -0
- package/dist/src/lib/feature-flags.js +119 -0
- package/dist/src/lib/wizard-session.d.ts +16 -0
- package/dist/src/lib/wizard-session.js +2 -0
- package/dist/src/run.js +1 -1
- package/dist/src/steps/add-mcp-server-to-clients/index.js +3 -3
- package/dist/src/steps/add-or-update-environment-variables.js +5 -17
- package/dist/src/steps/run-prettier.js +1 -1
- package/dist/src/steps/upload-environment-variables/index.js +2 -2
- package/dist/src/ui/tui/App.js +1 -1
- package/dist/src/ui/tui/components/ConsoleView.js +17 -6
- package/dist/src/ui/tui/components/TitleBar.d.ts +3 -1
- package/dist/src/ui/tui/components/TitleBar.js +17 -6
- package/dist/src/ui/tui/console-commands.d.ts +5 -2
- package/dist/src/ui/tui/console-commands.js +14 -5
- package/dist/src/ui/tui/screens/AuthScreen.d.ts +2 -1
- package/dist/src/ui/tui/screens/AuthScreen.js +166 -26
- package/dist/src/ui/tui/screens/ChecklistScreen.js +1 -1
- package/dist/src/ui/tui/screens/DataIngestionCheckScreen.js +13 -2
- package/dist/src/ui/tui/screens/IntroScreen.js +2 -2
- package/dist/src/ui/tui/screens/McpScreen.js +42 -27
- package/dist/src/ui/tui/screens/OutroScreen.js +1 -2
- package/dist/src/ui/tui/screens/SlackScreen.d.ts +0 -5
- package/dist/src/ui/tui/screens/SlackScreen.js +1 -11
- package/dist/src/ui/tui/store.d.ts +20 -0
- package/dist/src/ui/tui/store.js +68 -19
- package/dist/src/utils/analytics.d.ts +45 -3
- package/dist/src/utils/analytics.js +118 -47
- package/dist/src/utils/oauth.js +1 -1
- package/dist/src/utils/setup-utils.d.ts +11 -0
- package/dist/src/utils/setup-utils.js +81 -4
- package/dist/src/utils/shell-completions.d.ts +2 -2
- package/dist/src/utils/shell-completions.js +8 -1
- package/dist/src/utils/track-wizard-feedback.d.ts +5 -0
- package/dist/src/utils/track-wizard-feedback.js +25 -0
- package/package.json +13 -13
- package/dist/package.json +0 -144
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
type SupportedShell = 'zsh' | 'bash';
|
|
2
2
|
export declare function detectShell(): SupportedShell | null;
|
|
3
|
-
export declare const ZSH_COMPLETION_SCRIPT = "###-begin-amplitude-wizard-completions-###\n\n_amplitude_wizard() {\n local state\n local -a commands global_opts wizard_opts\n\n commands=(\n 'login:Log in to your Amplitude account'\n 'logout:Log out of your Amplitude account'\n 'whoami:Show the currently logged-in Amplitude account'\n 'slack:Set up Amplitude Slack integration'\n 'mcp:MCP server management commands'\n 'completion:Print shell completion script'\n )\n\n global_opts=(\n '--debug[Enable verbose logging]'\n '--verbose[Print diagnostic info to the run log]'\n '--signup[Create a new Amplitude account during setup]'\n '--ci[Enable non-interactive CI mode]'\n '--api-key[Amplitude project API key]:key:'\n '--project-id[Amplitude project ID]:id:'\n '--local-mcp[Use local MCP server at http://localhost:8787/mcp]'\n {-h,--help}'[Show help]'\n {-v,--version}'[Show version]'\n )\n\n wizard_opts=(\n '--force-install[Force package install even if peer checks fail]'\n '--install-dir[Directory to install Amplitude in]:dir:_files -/'\n '--integration[Framework integration to set up]:integration:(nextjs vue react-router django flask fastapi javascript_web javascript_node python)'\n '--menu[Show integration selection menu instead of auto-detecting]'\n '--benchmark[Run in benchmark mode with per-phase token tracking]'\n )\n\n _arguments -C \\\n '1: :->cmd' \\\n '*:: :->args'\n\n case $state in\n cmd)\n _describe 'command' commands\n _arguments $global_opts $wizard_opts\n ;;\n args)\n case ${words[1]} in\n mcp)\n local -a mcp_cmds\n mcp_cmds=('add:Install Amplitude MCP server' 'remove:Remove Amplitude MCP server')\n _arguments -C '1: :->sub' '*:: :->subargs'\n case $state in\n sub) _describe 'mcp command' mcp_cmds ;;\n subargs) _arguments '--local[Use local MCP server at http://localhost:8787]' ;;\n esac\n ;;\n login)\n _arguments '--zone[Amplitude data center zone]:zone:(us eu)'\n ;;\n *)\n _arguments $global_opts $wizard_opts\n ;;\n esac\n ;;\n esac\n}\n\n(( $+functions[compdef] )) || { autoload -Uz compinit; compinit; }\ncompdef _amplitude_wizard amplitude-wizard\n###-end-amplitude-wizard-completions-###";
|
|
4
|
-
export declare const BASH_COMPLETION_SCRIPT = "###-begin-amplitude-wizard-completions-###\n_amplitude_wizard_completions() {\n local cur prev\n cur=\"${COMP_WORDS[COMP_CWORD]}\"\n prev=\"${COMP_WORDS[COMP_CWORD-1]}\"\n\n local commands=\"login logout whoami slack mcp completion\"\n local global_flags=\"--debug --verbose --signup --ci --api-key --project-id --local-mcp --help --version\"\n local wizard_flags=\"--force-install --install-dir --integration --menu --benchmark\"\n local integrations=\"nextjs vue react-router django flask fastapi javascript_web javascript_node python\"\n\n if [[ ${COMP_CWORD} -eq 1 ]]; then\n COMPREPLY=($(compgen -W \"$commands $global_flags $wizard_flags\" -- \"$cur\"))\n return\n fi\n\n case \"${COMP_WORDS[1]}\" in\n mcp)\n if [[ ${COMP_CWORD} -eq 2 ]]; then\n COMPREPLY=($(compgen -W \"add remove\" -- \"$cur\"))\n else\n COMPREPLY=($(compgen -W \"--local\" -- \"$cur\"))\n fi\n ;;\n login)\n if [[ \"$prev\" == \"--zone\" ]]; then\n COMPREPLY=($(compgen -W \"us eu\" -- \"$cur\"))\n else\n COMPREPLY=($(compgen -W \"--zone\" -- \"$cur\"))\n fi\n ;;\n *)\n if [[ \"$prev\" == \"--integration\" ]]; then\n COMPREPLY=($(compgen -W \"$integrations\" -- \"$cur\"))\n elif [[ \"$prev\" == \"--install-dir\" ]]; then\n COMPREPLY=($(compgen -d -- \"$cur\"))\n else\n COMPREPLY=($(compgen -W \"$global_flags $wizard_flags\" -- \"$cur\"))\n fi\n ;;\n esac\n}\ncomplete -F _amplitude_wizard_completions amplitude-wizard\n###-end-amplitude-wizard-completions-###";
|
|
3
|
+
export declare const ZSH_COMPLETION_SCRIPT = "###-begin-amplitude-wizard-completions-###\n\n_amplitude_wizard() {\n local state\n local -a commands global_opts wizard_opts\n\n commands=(\n 'login:Log in to your Amplitude account'\n 'logout:Log out of your Amplitude account'\n 'whoami:Show the currently logged-in Amplitude account'\n 'feedback:Send product feedback'\n 'slack:Set up Amplitude Slack integration'\n 'mcp:MCP server management commands'\n 'completion:Print shell completion script'\n )\n\n global_opts=(\n '--debug[Enable verbose logging]'\n '--verbose[Print diagnostic info to the run log]'\n '--signup[Create a new Amplitude account during setup]'\n '--ci[Enable non-interactive CI mode]'\n '--api-key[Amplitude project API key]:key:'\n '--project-id[Amplitude project ID]:id:'\n '--local-mcp[Use local MCP server at http://localhost:8787/mcp]'\n {-h,--help}'[Show help]'\n {-v,--version}'[Show version]'\n )\n\n wizard_opts=(\n '--force-install[Force package install even if peer checks fail]'\n '--install-dir[Directory to install Amplitude in]:dir:_files -/'\n '--integration[Framework integration to set up]:integration:(nextjs vue react-router django flask fastapi javascript_web javascript_node python)'\n '--menu[Show integration selection menu instead of auto-detecting]'\n '--benchmark[Run in benchmark mode with per-phase token tracking]'\n )\n\n _arguments -C \\\n '1: :->cmd' \\\n '*:: :->args'\n\n case $state in\n cmd)\n _describe 'command' commands\n _arguments $global_opts $wizard_opts\n ;;\n args)\n case ${words[1]} in\n mcp)\n local -a mcp_cmds\n mcp_cmds=('add:Install Amplitude MCP server' 'remove:Remove Amplitude MCP server')\n _arguments -C '1: :->sub' '*:: :->subargs'\n case $state in\n sub) _describe 'mcp command' mcp_cmds ;;\n subargs) _arguments '--local[Use local MCP server at http://localhost:8787]' ;;\n esac\n ;;\n login)\n _arguments '--zone[Amplitude data center zone]:zone:(us eu)'\n ;;\n feedback)\n _arguments '--message[Feedback message]:message:' '-m[Feedback message]:message:'\n ;;\n *)\n _arguments $global_opts $wizard_opts\n ;;\n esac\n ;;\n esac\n}\n\n(( $+functions[compdef] )) || { autoload -Uz compinit; compinit; }\ncompdef _amplitude_wizard amplitude-wizard\n###-end-amplitude-wizard-completions-###";
|
|
4
|
+
export declare const BASH_COMPLETION_SCRIPT = "###-begin-amplitude-wizard-completions-###\n_amplitude_wizard_completions() {\n local cur prev\n cur=\"${COMP_WORDS[COMP_CWORD]}\"\n prev=\"${COMP_WORDS[COMP_CWORD-1]}\"\n\n local commands=\"login logout whoami feedback slack mcp completion\"\n local global_flags=\"--debug --verbose --signup --ci --api-key --project-id --local-mcp --help --version\"\n local wizard_flags=\"--force-install --install-dir --integration --menu --benchmark\"\n local integrations=\"nextjs vue react-router django flask fastapi javascript_web javascript_node python\"\n\n if [[ ${COMP_CWORD} -eq 1 ]]; then\n COMPREPLY=($(compgen -W \"$commands $global_flags $wizard_flags\" -- \"$cur\"))\n return\n fi\n\n case \"${COMP_WORDS[1]}\" in\n mcp)\n if [[ ${COMP_CWORD} -eq 2 ]]; then\n COMPREPLY=($(compgen -W \"add remove\" -- \"$cur\"))\n else\n COMPREPLY=($(compgen -W \"--local\" -- \"$cur\"))\n fi\n ;;\n login)\n if [[ \"$prev\" == \"--zone\" ]]; then\n COMPREPLY=($(compgen -W \"us eu\" -- \"$cur\"))\n else\n COMPREPLY=($(compgen -W \"--zone\" -- \"$cur\"))\n fi\n ;;\n feedback)\n COMPREPLY=($(compgen -W \"--message -m\" -- \"$cur\"))\n ;;\n *)\n if [[ \"$prev\" == \"--integration\" ]]; then\n COMPREPLY=($(compgen -W \"$integrations\" -- \"$cur\"))\n elif [[ \"$prev\" == \"--install-dir\" ]]; then\n COMPREPLY=($(compgen -d -- \"$cur\"))\n else\n COMPREPLY=($(compgen -W \"$global_flags $wizard_flags\" -- \"$cur\"))\n fi\n ;;\n esac\n}\ncomplete -F _amplitude_wizard_completions amplitude-wizard\n###-end-amplitude-wizard-completions-###";
|
|
5
5
|
/**
|
|
6
6
|
* Silently appends `eval "$(amplitude-wizard completion)"` to the user's shell
|
|
7
7
|
* RC file if it isn't already there. Call fire-and-forget at startup.
|
|
@@ -72,6 +72,7 @@ _amplitude_wizard() {
|
|
|
72
72
|
'login:Log in to your Amplitude account'
|
|
73
73
|
'logout:Log out of your Amplitude account'
|
|
74
74
|
'whoami:Show the currently logged-in Amplitude account'
|
|
75
|
+
'feedback:Send product feedback'
|
|
75
76
|
'slack:Set up Amplitude Slack integration'
|
|
76
77
|
'mcp:MCP server management commands'
|
|
77
78
|
'completion:Print shell completion script'
|
|
@@ -120,6 +121,9 @@ _amplitude_wizard() {
|
|
|
120
121
|
login)
|
|
121
122
|
_arguments '--zone[Amplitude data center zone]:zone:(us eu)'
|
|
122
123
|
;;
|
|
124
|
+
feedback)
|
|
125
|
+
_arguments '--message[Feedback message]:message:' '-m[Feedback message]:message:'
|
|
126
|
+
;;
|
|
123
127
|
*)
|
|
124
128
|
_arguments $global_opts $wizard_opts
|
|
125
129
|
;;
|
|
@@ -137,7 +141,7 @@ _amplitude_wizard_completions() {
|
|
|
137
141
|
cur="${DB}COMP_WORDS[COMP_CWORD]}"
|
|
138
142
|
prev="${DB}COMP_WORDS[COMP_CWORD-1]}"
|
|
139
143
|
|
|
140
|
-
local commands="login logout whoami slack mcp completion"
|
|
144
|
+
local commands="login logout whoami feedback slack mcp completion"
|
|
141
145
|
local global_flags="--debug --verbose --signup --ci --api-key --project-id --local-mcp --help --version"
|
|
142
146
|
local wizard_flags="--force-install --install-dir --integration --menu --benchmark"
|
|
143
147
|
local integrations="nextjs vue react-router django flask fastapi javascript_web javascript_node python"
|
|
@@ -162,6 +166,9 @@ _amplitude_wizard_completions() {
|
|
|
162
166
|
COMPREPLY=($(compgen -W "--zone" -- "$cur"))
|
|
163
167
|
fi
|
|
164
168
|
;;
|
|
169
|
+
feedback)
|
|
170
|
+
COMPREPLY=($(compgen -W "--message -m" -- "$cur"))
|
|
171
|
+
;;
|
|
165
172
|
*)
|
|
166
173
|
if [[ "$prev" == "--integration" ]]; then
|
|
167
174
|
COMPREPLY=($(compgen -W "$integrations" -- "$cur"))
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.trackWizardFeedback = trackWizardFeedback;
|
|
4
|
+
const analytics_node_1 = require("@amplitude/analytics-node");
|
|
5
|
+
const uuid_1 = require("uuid");
|
|
6
|
+
const analytics_js_1 = require("./analytics.js");
|
|
7
|
+
/**
|
|
8
|
+
* Send a single feedback event to Amplitude via the Node SDK.
|
|
9
|
+
* Uses the same API key and server URL as other wizard telemetry.
|
|
10
|
+
*/
|
|
11
|
+
async function trackWizardFeedback(message) {
|
|
12
|
+
const trimmed = message.trim();
|
|
13
|
+
if (!trimmed) {
|
|
14
|
+
throw new Error('Feedback message cannot be empty');
|
|
15
|
+
}
|
|
16
|
+
const apiKey = (0, analytics_js_1.resolveTelemetryApiKey)();
|
|
17
|
+
if (!apiKey) {
|
|
18
|
+
throw new Error('Feedback cannot be sent: set AMPLITUDE_API_KEY or unset it to use the default telemetry project.');
|
|
19
|
+
}
|
|
20
|
+
const client = (0, analytics_node_1.createInstance)();
|
|
21
|
+
await client.init(apiKey, { serverUrl: (0, analytics_js_1.getAmplitudeNodeServerUrl)() }).promise;
|
|
22
|
+
const deviceId = (0, uuid_1.v4)();
|
|
23
|
+
client.track(analytics_js_1.WIZARD_FEEDBACK_EVENT_TYPE, { message: trimmed }, { device_id: deviceId });
|
|
24
|
+
await client.flush().promise;
|
|
25
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amplitude/wizard",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.2",
|
|
4
4
|
"homepage": "https://github.com/amplitude/wizard",
|
|
5
5
|
"repository": "https://github.com/amplitude/wizard",
|
|
6
6
|
"description": "The Amplitude wizard helps you to configure your project",
|
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@amplitude/analytics-browser": "^2.0.0",
|
|
40
|
+
"@amplitude/analytics-node": "^1.5.51",
|
|
41
|
+
"@amplitude/experiment-node-server": "^1.13.4",
|
|
40
42
|
"@anthropic-ai/claude-agent-sdk": "0.2.7",
|
|
41
43
|
"@inkjs/ui": "^2.0.0",
|
|
42
44
|
"@inquirer/prompts": "^8.3.0",
|
|
@@ -102,7 +104,15 @@
|
|
|
102
104
|
"node": ">=20",
|
|
103
105
|
"npm": ">=3.10.7"
|
|
104
106
|
},
|
|
105
|
-
"
|
|
107
|
+
"lint-staged": {
|
|
108
|
+
"*.{js,ts,tsx,jsx}": "pnpm fix"
|
|
109
|
+
},
|
|
110
|
+
"author": "Amplitude",
|
|
111
|
+
"license": "MIT",
|
|
112
|
+
"volta": {
|
|
113
|
+
"node": "20.18.2",
|
|
114
|
+
"pnpm": "10.23.0"
|
|
115
|
+
},
|
|
106
116
|
"scripts": {
|
|
107
117
|
"clean": "rm -rf ./dist",
|
|
108
118
|
"prebuild": "pnpm clean",
|
|
@@ -124,21 +134,11 @@
|
|
|
124
134
|
"proxy:bypass": "cd \"${JS_REPO:-../javascript}\"/server/packages/thunder && WIZARD_PROXY_DEV_BYPASS=1 aws-sso exec --profile us-prod-dev -- pnpm debug",
|
|
125
135
|
"dev": "pnpm build && pnpm link --global && (trap 'kill 0' EXIT; pnpm proxy & pnpm build:watch)",
|
|
126
136
|
"test:watch": "vitest",
|
|
127
|
-
"prepare": "husky",
|
|
128
137
|
"flows": "node scripts/render-flows.mjs",
|
|
129
138
|
"test:bdd": "cucumber-js",
|
|
130
139
|
"test:bdd:watch": "cucumber-js --retry 0 2>&1 | npx nodemon --watch features --exec cucumber-js",
|
|
131
140
|
"test:proxy": "vitest run --config vitest.config.proxy.ts",
|
|
132
141
|
"test:proxy:smoke": "vitest run --config vitest.config.proxy.ts -t 'proxy:smoke'",
|
|
133
142
|
"skills:refresh": "bash scripts/refresh-instrumentation-skills.sh"
|
|
134
|
-
},
|
|
135
|
-
"lint-staged": {
|
|
136
|
-
"*.{js,ts,tsx,jsx}": "pnpm fix"
|
|
137
|
-
},
|
|
138
|
-
"author": "Amplitude",
|
|
139
|
-
"license": "MIT",
|
|
140
|
-
"volta": {
|
|
141
|
-
"node": "20.18.2",
|
|
142
|
-
"pnpm": "10.23.0"
|
|
143
143
|
}
|
|
144
|
-
}
|
|
144
|
+
}
|
package/dist/package.json
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@amplitude/wizard",
|
|
3
|
-
"version": "1.0.0-beta.0",
|
|
4
|
-
"homepage": "https://github.com/amplitude/wizard",
|
|
5
|
-
"repository": "https://github.com/amplitude/wizard",
|
|
6
|
-
"description": "The Amplitude wizard helps you to configure your project",
|
|
7
|
-
"keywords": [
|
|
8
|
-
"amplitude",
|
|
9
|
-
"wizard",
|
|
10
|
-
"sdk",
|
|
11
|
-
"cli",
|
|
12
|
-
"project",
|
|
13
|
-
"setup",
|
|
14
|
-
"install",
|
|
15
|
-
"configure"
|
|
16
|
-
],
|
|
17
|
-
"bin": {
|
|
18
|
-
"amplitude-wizard": "dist/bin.js"
|
|
19
|
-
},
|
|
20
|
-
"publishConfig": {
|
|
21
|
-
"access": "public"
|
|
22
|
-
},
|
|
23
|
-
"man": [
|
|
24
|
-
"man/amplitude-wizard.1"
|
|
25
|
-
],
|
|
26
|
-
"files": [
|
|
27
|
-
"dist/bin.*",
|
|
28
|
-
"dist/src",
|
|
29
|
-
"man/",
|
|
30
|
-
"package.json",
|
|
31
|
-
"README.md"
|
|
32
|
-
],
|
|
33
|
-
"main": "dist/index.js",
|
|
34
|
-
"typings": "dist/index.d.ts",
|
|
35
|
-
"typescript": {
|
|
36
|
-
"definition": "dist/index.d.ts"
|
|
37
|
-
},
|
|
38
|
-
"dependencies": {
|
|
39
|
-
"@amplitude/analytics-browser": "^2.0.0",
|
|
40
|
-
"@anthropic-ai/claude-agent-sdk": "0.2.7",
|
|
41
|
-
"@inkjs/ui": "^2.0.0",
|
|
42
|
-
"@inquirer/prompts": "^8.3.0",
|
|
43
|
-
"@langchain/core": "^1.1.33",
|
|
44
|
-
"@pavus/snake-game": "^1.1.1",
|
|
45
|
-
"axios": "1.13.5",
|
|
46
|
-
"chalk": "^2.4.1",
|
|
47
|
-
"client-oauth2": "^4.3.3",
|
|
48
|
-
"conf": "^15.1.0",
|
|
49
|
-
"dotenv": "^16.4.7",
|
|
50
|
-
"fast-glob": "^3.3.3",
|
|
51
|
-
"glob": "9.3.5",
|
|
52
|
-
"ink": "^6.8.0",
|
|
53
|
-
"inquirer": "^6.2.0",
|
|
54
|
-
"jsonc-parser": "^3.3.1",
|
|
55
|
-
"lodash": "^4.17.21",
|
|
56
|
-
"magicast": "^0.2.10",
|
|
57
|
-
"nanostores": "^1.1.1",
|
|
58
|
-
"opn": "^5.4.0",
|
|
59
|
-
"pkce-challenge": "^6.0.0",
|
|
60
|
-
"randomstring": "^1.3.1",
|
|
61
|
-
"react": "^19.2.4",
|
|
62
|
-
"read-env": "^1.3.0",
|
|
63
|
-
"recast": "^0.23.3",
|
|
64
|
-
"semver": "^7.5.3",
|
|
65
|
-
"uuid": "^11.1.0",
|
|
66
|
-
"xcode": "3.0.1",
|
|
67
|
-
"xml-js": "^1.6.11",
|
|
68
|
-
"yargs": "^16.2.0",
|
|
69
|
-
"zod": "^4.3.6",
|
|
70
|
-
"zod-to-json-schema": "^3.25.1"
|
|
71
|
-
},
|
|
72
|
-
"devDependencies": {
|
|
73
|
-
"@anthropic-ai/sdk": "^0.79.0",
|
|
74
|
-
"@cucumber/cucumber": "^12.7.0",
|
|
75
|
-
"@eslint/js": "^10.0.1",
|
|
76
|
-
"@types/chai": "^4.3.17",
|
|
77
|
-
"@types/glob": "^7.2.0",
|
|
78
|
-
"@types/inquirer": "^0.0.43",
|
|
79
|
-
"@types/lodash": "^4.17.15",
|
|
80
|
-
"@types/node": "^20.19.37",
|
|
81
|
-
"@types/opn": "5.1.0",
|
|
82
|
-
"@types/react": "^19.2.14",
|
|
83
|
-
"@types/rimraf": "^3.0.2",
|
|
84
|
-
"@types/semver": "^7.3.7",
|
|
85
|
-
"@types/yargs": "^16.0.9",
|
|
86
|
-
"@vitest/coverage-v8": "^4.0.18",
|
|
87
|
-
"eslint": "^9.39.4",
|
|
88
|
-
"eslint-config-prettier": "^9.1.2",
|
|
89
|
-
"globals": "^17.4.0",
|
|
90
|
-
"husky": "^9.1.7",
|
|
91
|
-
"lint-staged": "^15.5.1",
|
|
92
|
-
"msw": "^2.10.4",
|
|
93
|
-
"prettier": "^2.8.7",
|
|
94
|
-
"rimraf": "^6.1.3",
|
|
95
|
-
"ts-node": "^10.9.1",
|
|
96
|
-
"tsx": "^4.20.3",
|
|
97
|
-
"typescript": "^5.0.4",
|
|
98
|
-
"typescript-eslint": "^8.57.1",
|
|
99
|
-
"vitest": "^4.0.18"
|
|
100
|
-
},
|
|
101
|
-
"engines": {
|
|
102
|
-
"node": ">=20",
|
|
103
|
-
"npm": ">=3.10.7"
|
|
104
|
-
},
|
|
105
|
-
"packageManager": "pnpm@10.23.0+sha512.21c4e5698002ade97e4efe8b8b4a89a8de3c85a37919f957e7a0f30f38fbc5bbdd05980ffe29179b2fb6e6e691242e098d945d1601772cad0fef5fb6411e2a4b",
|
|
106
|
-
"scripts": {
|
|
107
|
-
"clean": "rm -rf ./dist",
|
|
108
|
-
"prebuild": "pnpm clean",
|
|
109
|
-
"build:watch": "pnpm tsc -w",
|
|
110
|
-
"build": "pnpm tsc",
|
|
111
|
-
"postbuild": "chmod +x ./dist/bin.js && pnpm test:smoke",
|
|
112
|
-
"test:smoke": "node -e \"require('./dist/bin.js')\" 2>&1 | head -5 | grep -q 'Amplitude Wizard' || (echo 'Smoke test failed: compiled binary crashed on load' && exit 1)",
|
|
113
|
-
"lint": "pnpm lint:prettier && pnpm lint:eslint",
|
|
114
|
-
"lint:prettier": "prettier --check \"{lib,src,test}/**/*.ts\"",
|
|
115
|
-
"lint:eslint": "eslint . --cache --format stylish",
|
|
116
|
-
"fix": "pnpm fix:eslint && pnpm fix:prettier",
|
|
117
|
-
"fix:prettier": "prettier --write \"{lib,src,test}/**/*.ts\"",
|
|
118
|
-
"fix:eslint": "eslint . --format stylish --fix",
|
|
119
|
-
"test": "vitest run",
|
|
120
|
-
"test:e2e": "pnpm build && ./e2e-tests/run.sh",
|
|
121
|
-
"test:e2e-record": "export RECORD_FIXTURES=true && pnpm build && ./e2e-tests/run.sh",
|
|
122
|
-
"try": "tsx bin.ts",
|
|
123
|
-
"proxy": "cd \"${JS_REPO:-../javascript}\"/server/packages/thunder && aws-sso exec --profile us-prod-dev -- pnpm debug",
|
|
124
|
-
"proxy:bypass": "cd \"${JS_REPO:-../javascript}\"/server/packages/thunder && WIZARD_PROXY_DEV_BYPASS=1 aws-sso exec --profile us-prod-dev -- pnpm debug",
|
|
125
|
-
"dev": "pnpm build && pnpm link --global && (trap 'kill 0' EXIT; pnpm proxy & pnpm build:watch)",
|
|
126
|
-
"test:watch": "vitest",
|
|
127
|
-
"prepare": "husky",
|
|
128
|
-
"flows": "node scripts/render-flows.mjs",
|
|
129
|
-
"test:bdd": "cucumber-js",
|
|
130
|
-
"test:bdd:watch": "cucumber-js --retry 0 2>&1 | npx nodemon --watch features --exec cucumber-js",
|
|
131
|
-
"test:proxy": "vitest run --config vitest.config.proxy.ts",
|
|
132
|
-
"test:proxy:smoke": "vitest run --config vitest.config.proxy.ts -t 'proxy:smoke'",
|
|
133
|
-
"skills:refresh": "bash scripts/refresh-instrumentation-skills.sh"
|
|
134
|
-
},
|
|
135
|
-
"lint-staged": {
|
|
136
|
-
"*.{js,ts,tsx,jsx}": "pnpm fix"
|
|
137
|
-
},
|
|
138
|
-
"author": "Amplitude",
|
|
139
|
-
"license": "MIT",
|
|
140
|
-
"volta": {
|
|
141
|
-
"node": "20.18.2",
|
|
142
|
-
"pnpm": "10.23.0"
|
|
143
|
-
}
|
|
144
|
-
}
|