@shopify/shop-minis-cli 0.0.224 → 0.0.226

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.
@@ -3,7 +3,10 @@ import { build as viteBuild } from 'vite';
3
3
  import { AbortError } from '@shopify/cli-kit/node/error';
4
4
  import { outputSuccess } from '@shopify/cli-kit/node/output';
5
5
  import { createViteConfig } from '../../utils/vite-config.js';
6
- async function buildAction(options) {
6
+ export const buildCommand = new Command('build')
7
+ .description('Build the Mini for production')
8
+ .addOption(new Option('--local-sdk-path <path>', 'Allow imports from a local SDK path (for local testing).').hideHelp())
9
+ .action(async (options) => {
7
10
  try {
8
11
  const allowedExternalPaths = options.localSdkPath
9
12
  ? [options.localSdkPath]
@@ -14,9 +17,5 @@ async function buildAction(options) {
14
17
  catch (error) {
15
18
  throw new AbortError(`Build failed: ${error instanceof Error ? error.message : String(error)}`);
16
19
  }
17
- }
18
- export const buildCommand = new Command('build')
19
- .description('Build the Mini for production')
20
- .addOption(new Option('--local-sdk-path <path>', 'Allow imports from a local SDK path (for local testing).').hideHelp())
21
- .action(buildAction);
20
+ });
22
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,EAAC,KAAK,IAAI,SAAS,EAAC,MAAM,MAAM,CAAA;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAA;AAM3D,KAAK,UAAU,WAAW,CAAC,OAAqB;IAC9C,IAAI;QACF,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY;YAC/C,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YACxB,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,oBAAoB,EAAC,CAAC,CAAC,CAAA;QAE7E,aAAa,CAAC,+BAA+B,CAAC,CAAA;KAE/C;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,UAAU,CAClB,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1E,CAAA;KACF;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,+BAA+B,CAAC;KAC5C,SAAS,CACR,IAAI,MAAM,CACR,yBAAyB,EACzB,0DAA0D,CAC3D,CAAC,QAAQ,EAAE,CACb;KACA,MAAM,CAAC,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/build/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,EAAC,KAAK,IAAI,SAAS,EAAC,MAAM,MAAM,CAAA;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAA;AAE1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAA;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,+BAA+B,CAAC;KAC5C,SAAS,CACR,IAAI,MAAM,CACR,yBAAyB,EACzB,0DAA0D,CAC3D,CAAC,QAAQ,EAAE,CACb;KACA,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;IACjD,IAAI;QACF,MAAM,oBAAoB,GAAG,OAAO,CAAC,YAAY;YAC/C,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YACxB,CAAC,CAAC,EAAE,CAAA;QAEN,MAAM,SAAS,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,oBAAoB,EAAC,CAAC,CAAC,CAAA;QAE7E,aAAa,CAAC,+BAA+B,CAAC,CAAA;KAE/C;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,UAAU,CAClB,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1E,CAAA;KACF;AACH,CAAC,CAAC,CAAA"}
@@ -5,6 +5,17 @@ export interface androidDevice {
5
5
  readonly isBooted: boolean;
6
6
  readonly isAuthorized: boolean;
7
7
  }
8
+ export interface AndroidDeviceInfo {
9
+ model: string;
10
+ manufacturer: string;
11
+ androidVersion: string;
12
+ apiLevel: string;
13
+ architecture: string;
14
+ }
15
+ /**
16
+ * Get detailed information about an Android device
17
+ */
18
+ export declare function getAndroidDeviceInfo(deviceId: string): Promise<AndroidDeviceInfo | null>;
8
19
  export declare function getDevices(): Promise<androidDevice[]>;
9
20
  export declare function getEmulators(): Promise<androidDevice[]>;
10
21
  export declare function promptForAndroidDevices(): Promise<androidDevice | null>;
@@ -9,6 +9,41 @@ import { execAsync } from '../../../utils/exec-async-child-process.js';
9
9
  import { PATHS, whichAdb, whichEmulator } from '../../config.js';
10
10
  import { withRetries } from './with-retries.js';
11
11
  const exec = promisify(execCb);
12
+ /**
13
+ * Get detailed information about an Android device
14
+ */
15
+ export async function getAndroidDeviceInfo(deviceId) {
16
+ try {
17
+ const [model, manufacturer, version, apiLevel, architecture] = await Promise.all([
18
+ execAsync(`${whichAdb()} -s ${deviceId} shell getprop ro.product.model`)
19
+ .then(({ stdout }) => stdout[0]?.trim() || 'Unknown')
20
+ .catch(() => 'Unknown'),
21
+ execAsync(`${whichAdb()} -s ${deviceId} shell getprop ro.product.manufacturer`)
22
+ .then(({ stdout }) => stdout[0]?.trim() || 'Unknown')
23
+ .catch(() => 'Unknown'),
24
+ execAsync(`${whichAdb()} -s ${deviceId} shell getprop ro.build.version.release`)
25
+ .then(({ stdout }) => stdout[0]?.trim() || 'Unknown')
26
+ .catch(() => 'Unknown'),
27
+ execAsync(`${whichAdb()} -s ${deviceId} shell getprop ro.build.version.sdk`)
28
+ .then(({ stdout }) => stdout[0]?.trim() || 'Unknown')
29
+ .catch(() => 'Unknown'),
30
+ execAsync(`${whichAdb()} -s ${deviceId} shell getprop ro.product.cpu.abi`)
31
+ .then(({ stdout }) => stdout[0]?.trim() || 'Unknown')
32
+ .catch(() => 'Unknown'),
33
+ ]);
34
+ return {
35
+ model,
36
+ manufacturer,
37
+ androidVersion: version,
38
+ apiLevel,
39
+ architecture,
40
+ };
41
+ }
42
+ catch (error) {
43
+ outputDebug(`Failed to get Android device info: ${error}`);
44
+ return null;
45
+ }
46
+ }
12
47
  export async function getDevices() {
13
48
  const { stdout: devicesList } = await execAsync(`${whichAdb()} devices -l`);
14
49
  return devicesList
@@ -1 +1 @@
1
- {"version":3,"file":"android.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"android.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/android.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { promptBinaryUpgrade } from '../prompt-binary-upgrade.js';
5
5
  import { BuildType, } from '../../types.js';
6
6
  import { isVersionAvailableLocally } from '../binaries.js';
7
7
  import { getPlatformConfig } from '../platform.js';
8
+ import { addLaunch } from '../../../../utils/session.js';
8
9
  export const startAppWithOptions = async ({ deviceId, platform, deeplink, buildType, snapshotVersion, upgradeDeclinedPlatforms, }, { getInstalledShopVersion, installShop, openDeeplink }, loadingHandlers) => {
9
10
  outputDebug(`Starting app with options ${JSON.stringify({
10
11
  deviceId,
@@ -68,6 +69,7 @@ export const startAppWithOptions = async ({ deviceId, platform, deeplink, buildT
68
69
  loadingStart?.('Opening Shop');
69
70
  await openDeeplink(deviceId, deeplink);
70
71
  loadingEnd?.();
72
+ await addLaunch(platform, deviceId);
71
73
  };
72
74
  /**
73
75
  * If buildType is set to snapshot and snapshotVersion is specified, that version is returned.
@@ -1 +1 @@
1
- {"version":3,"file":"start-app-with-options.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/start-app/start-app-with-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start-app-with-options.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/start-app/start-app-with-options.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
1
  import { Command } from 'commander';
2
+ import { Launch } from '../../utils/session.js';
3
+ /**
4
+ * Formats a launch environment for display.
5
+ */
6
+ export declare function formatLaunch(launch: Launch): string;
2
7
  export declare const command: Command;
3
8
  export declare function loadCommand(parentProgram: Command): Promise<void>;
@@ -1,8 +1,126 @@
1
+ import { execSync } from 'child_process';
1
2
  import { Command } from 'commander';
2
3
  import envinfo from 'envinfo';
3
4
  import { handler as handleError } from '@shopify/cli-kit/node/error';
4
5
  import { wrapWithLoadingIndicator } from '../../utils/wrap-with-loading-indicator.js';
5
6
  import { getPackageVersion } from '../../utils/package-manager.js';
7
+ import { getRecentLaunches } from '../../utils/session.js';
8
+ function getTimeAgo(date) {
9
+ const now = new Date();
10
+ const diffMs = now.getTime() - date.getTime();
11
+ const diffMins = Math.floor(diffMs / 60000);
12
+ const diffHours = Math.floor(diffMs / 3600000);
13
+ const diffDays = Math.floor(diffMs / 86400000);
14
+ if (diffMins < 1) {
15
+ return 'just now';
16
+ }
17
+ else if (diffMins < 60) {
18
+ return `${diffMins} min${diffMins === 1 ? '' : 's'} ago`;
19
+ }
20
+ else if (diffHours < 24) {
21
+ return `${diffHours} hour${diffHours === 1 ? '' : 's'} ago`;
22
+ }
23
+ else if (diffDays < 7) {
24
+ return `${diffDays} day${diffDays === 1 ? '' : 's'} ago`;
25
+ }
26
+ else {
27
+ return date.toLocaleDateString();
28
+ }
29
+ }
30
+ /**
31
+ * Formats a launch environment for display.
32
+ */
33
+ export function formatLaunch(launch) {
34
+ const platformName = launch.platform === 'ios' ? 'iOS' : 'Android';
35
+ // Format device info
36
+ let deviceInfo = '';
37
+ if (launch.deviceName) {
38
+ deviceInfo = ` on ${launch.deviceName}`;
39
+ if (launch.deviceOsVersion) {
40
+ const osVersion = launch.deviceOsVersion.replace(/-/g, '.');
41
+ deviceInfo += ` (${osVersion})`;
42
+ }
43
+ }
44
+ // Format time ago
45
+ const date = new Date(launch.timestamp);
46
+ const timeAgo = getTimeAgo(date);
47
+ return `${platformName} - Shop ${launch.shopVersion}+${launch.shopBuild}${deviceInfo} - ${timeAgo}`;
48
+ }
49
+ function getWindowsShellInfo() {
50
+ if (process.platform !== 'win32') {
51
+ return null;
52
+ }
53
+ try {
54
+ // Check if running in WSL
55
+ if (process.env.WSL_DISTRO_NAME) {
56
+ const shellPath = process.env.SHELL || 'Unknown';
57
+ return `WSL (${process.env.WSL_DISTRO_NAME}) - ${shellPath}`;
58
+ }
59
+ // Walk up the process tree to find the actual shell
60
+ // npx/node often spawns through cmd.exe, so we need to check ancestors
61
+ try {
62
+ let currentPid = process.ppid;
63
+ let shell = null;
64
+ // Walk up to 5 levels in the process tree
65
+ for (let i = 0; i < 5; i++) {
66
+ try {
67
+ const processInfo = execSync(`powershell -Command "$p = Get-CimInstance Win32_Process -Filter \\"ProcessId = ${currentPid}\\"; Write-Output $p.Name; Write-Output $p.ParentProcessId"`, {
68
+ encoding: 'utf8',
69
+ timeout: 3000,
70
+ })
71
+ .trim()
72
+ .split('\n');
73
+ const processName = processInfo[0]?.trim();
74
+ const parentPid = processInfo[1]?.trim();
75
+ if (processName.toLowerCase().includes('powershell') ||
76
+ processName.toLowerCase().includes('pwsh')) {
77
+ shell = 'PowerShell';
78
+ break;
79
+ }
80
+ // Stop if we hit a shell-like process or can't go further
81
+ if (!parentPid ||
82
+ parentPid === '0' ||
83
+ parentPid === currentPid.toString()) {
84
+ break;
85
+ }
86
+ currentPid = parseInt(parentPid, 10);
87
+ }
88
+ catch {
89
+ break;
90
+ }
91
+ }
92
+ if (shell === 'PowerShell') {
93
+ try {
94
+ const psVersion = execSync('powershell -Command "$PSVersionTable.PSVersion.ToString()"', {
95
+ encoding: 'utf8',
96
+ timeout: 5000,
97
+ }).trim();
98
+ return `PowerShell ${psVersion}`;
99
+ }
100
+ catch {
101
+ return 'PowerShell';
102
+ }
103
+ }
104
+ }
105
+ catch {
106
+ // If we can't get parent process, fall through to CMD
107
+ }
108
+ // CMD
109
+ try {
110
+ const version = execSync('cmd /c ver', {
111
+ encoding: 'utf8',
112
+ timeout: 5000,
113
+ }).trim();
114
+ return `CMD (${version})`;
115
+ }
116
+ catch {
117
+ return `CMD (${process.env.ComSpec || 'cmd.exe'})`;
118
+ }
119
+ }
120
+ catch (error) {
121
+ return 'Unknown Windows Shell';
122
+ }
123
+ }
6
124
  export const command = new Command()
7
125
  .name('info')
8
126
  .description('Get relevant version info about OS, toolchain and libraries')
@@ -11,10 +129,8 @@ export const command = new Command()
11
129
  try {
12
130
  const infoPromise = envinfo.run({
13
131
  System: ['OS', 'CPU', 'Memory', 'Shell'],
14
- Binaries: ['Node', 'Yarn', 'npm', 'Watchman'],
132
+ Binaries: ['Node', 'Yarn', 'npm'],
15
133
  IDEs: ['Xcode', 'Android Studio'],
16
- Managers: ['CocoaPods'],
17
- Languages: ['Java'],
18
134
  SDKs: ['iOS SDK', 'Android SDK'],
19
135
  });
20
136
  const packageVersionPromises = [
@@ -26,11 +142,29 @@ export const command = new Command()
26
142
  loadingMessage: 'Fetching system information...',
27
143
  successMessage: 'System information loaded',
28
144
  });
29
- console.log(`${info} Packages:`);
145
+ console.log(info);
146
+ console.log(' Packages:');
30
147
  console.log(` @shopify/shop-minis-cli: ${cliVersion}`);
31
148
  console.log(` @shopify/shop-minis-react: ${shopMinisReactVersion}`);
32
149
  console.log(` react: ${reactVersion}`);
33
- console.log(''); // empty line at the end
150
+ console.log('');
151
+ // Add Windows-specific information
152
+ const windowsShell = getWindowsShellInfo();
153
+ if (windowsShell) {
154
+ console.log(' Windows:');
155
+ console.log(` Shell: ${windowsShell}`);
156
+ console.log('');
157
+ }
158
+ // Add launch history
159
+ const recentLaunches = await getRecentLaunches(5);
160
+ if (recentLaunches.length > 0) {
161
+ console.log(' Recent Launches:');
162
+ recentLaunches.forEach((launch, index) => {
163
+ const launchInfo = formatLaunch(launch);
164
+ console.log(` ${index + 1}. ${launchInfo}`);
165
+ });
166
+ console.log('');
167
+ }
34
168
  }
35
169
  catch (error) {
36
170
  handleError(error);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/info/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAC,wBAAwB,EAAC,MAAM,4CAA4C,CAAA;AACnF,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KACjC,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC;KAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;YAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;YACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;YAC7C,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;YACjC,QAAQ,EAAE,CAAC,WAAW,CAAC;YACvB,SAAS,EAAE,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;SACjC,CAAC,CAAA;QAEF,MAAM,sBAAsB,GAAG;YAC7B,iBAAiB,CAAC,yBAAyB,CAAC;YAC5C,iBAAiB,CAAC,2BAA2B,CAAC;YAC9C,iBAAiB,CAAC,OAAO,CAAC;SAClB,CAAA;QAEV,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,qBAAqB,EAAE,YAAY,CAAC,GAC3D,MAAM,wBAAwB,CAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,sBAAsB,CAAC,CAAC,EACrD;YACE,cAAc,EAAE,gCAAgC;YAChD,cAAc,EAAE,2BAA2B;SAC5C,CACF,CAAA;QAEH,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAA;QACzD,OAAO,CAAC,GAAG,CAAC,kCAAkC,qBAAqB,EAAE,CAAC,CAAA;QACtE,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAA;QACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC,wBAAwB;KACzC;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/info/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -2,8 +2,10 @@
2
2
  import { loadProgram } from './program.js';
3
3
  import { initializeObserve } from './utils/observe.js';
4
4
  import { initCommandTracking, completeCommandTracking, } from './utils/analytics.js';
5
+ import { initializeSession } from './utils/session.js';
5
6
  import './utils/error-handler.js';
6
7
  initializeObserve();
8
+ initializeSession();
7
9
  const commandName = process.argv[2] || 'help';
8
10
  initCommandTracking(commandName);
9
11
  loadProgram()
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,0BAA0B,CAAA;AAEjC,iBAAiB,EAAE,CAAA;AAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;AAC7C,mBAAmB,CAAC,WAAW,CAAC,CAAA;AAEhC,WAAW,EAAE;KACV,IAAI,CAAC,OAAO,CAAC,EAAE;IACd,OAAO,CAAC,kBAAkB,EAAE,CAAA;IAC5B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7C,uBAAuB,CACrB,iBAAiB,EACjB,KAAK,EACL,oBAAoB,cAAc,EAAE,CACrC,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,2BAA2B,cAAc,KAAK,CAAC,CAAA;QAC7D,OAAO,CAAC,UAAU,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,CAAC,UAAU,EAAE,CAAA;QACpB,OAAM,CAAC,gCAAgC;KACxC;IAED,OAAO,CAAC,YAAY,EAAE,CAAA;IAEtB,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,2DAA2D;IAC3D,MAAM,GAAG,CAAA;AACX,CAAC,CAAC,CAAA;AAEJ,cAAc,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAA;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAA;AACpD,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAC,iBAAiB,EAAC,MAAM,oBAAoB,CAAA;AAEpD,OAAO,0BAA0B,CAAA;AAEjC,iBAAiB,EAAE,CAAA;AACnB,iBAAiB,EAAE,CAAA;AAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;AAC7C,mBAAmB,CAAC,WAAW,CAAC,CAAA;AAEhC,WAAW,EAAE;KACV,IAAI,CAAC,OAAO,CAAC,EAAE;IACd,OAAO,CAAC,kBAAkB,EAAE,CAAA;IAC5B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7C,uBAAuB,CACrB,iBAAiB,EACjB,KAAK,EACL,oBAAoB,cAAc,EAAE,CACrC,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,2BAA2B,cAAc,KAAK,CAAC,CAAA;QAC7D,OAAO,CAAC,UAAU,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,CAAC,UAAU,EAAE,CAAA;QACpB,OAAM,CAAC,gCAAgC;KACxC;IAED,OAAO,CAAC,YAAY,EAAE,CAAA;IAEtB,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,2DAA2D;IAC3D,MAAM,GAAG,CAAA;AACX,CAAC,CAAC,CAAA;AAEJ,cAAc,iCAAiC,CAAA"}
@@ -16,7 +16,8 @@
16
16
  },
17
17
  "description": {
18
18
  "type": "string",
19
- "description": "The description of the Mini"
19
+ "description": "The description of the Mini",
20
+ "maxLength": 255
20
21
  },
21
22
  "trusted_domains": {
22
23
  "type": "array",
@@ -2,8 +2,10 @@ import { createRequire } from 'node:module';
2
2
  import path from 'node:path';
3
3
  import { existsSync, writeFileSync } from 'node:fs';
4
4
  import { AbortError } from '@shopify/cli-kit/node/error';
5
+ import { outputDebug } from '@shopify/cli-kit/node/output';
5
6
  import { Validator } from 'jsonschema';
6
7
  import { getMiniBasePath } from './path.js';
8
+ import { validateUnusedScopes } from './scopes-validation.js';
7
9
  const require = createRequire(import.meta.url);
8
10
  const manifestSchema = require('../schemas/manifest.schema.json');
9
11
  export const DEFAULT_MANIFEST_PATH = path.join('src', 'manifest.json');
@@ -190,6 +192,20 @@ export function validateManifest(manifestPath) {
190
192
  validationErrors.push('trusted_domains must be an array');
191
193
  }
192
194
  }
195
+ // Validate unused scopes
196
+ const miniPath = getMiniBasePath();
197
+ const scopesResult = validateUnusedScopes(miniPath, manifest);
198
+ if (scopesResult.skipped) {
199
+ outputDebug(`Scopes validation skipped: ${scopesResult.skipReason}`);
200
+ }
201
+ else if (!scopesResult.success) {
202
+ if (scopesResult.errors) {
203
+ validationErrors.push(...scopesResult.errors);
204
+ }
205
+ for (const scope of scopesResult.unusedScopes) {
206
+ validationErrors.push(`Unused scope: ${scope}`);
207
+ }
208
+ }
193
209
  return {
194
210
  valid: result.valid && validationErrors.length === 0,
195
211
  errors: validationErrors,
@@ -1 +1 @@
1
- {"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../src/utils/minis-manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../src/utils/minis-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * SDK Import Scanning Utilities
3
+ *
4
+ * Scans a mini app's source code to find all imports from @shopify/shop-minis-react.
5
+ * Used by scope validation to determine which hooks/components are actually used.
6
+ */
7
+ /**
8
+ * Recursively find all TypeScript/TSX files in a directory
9
+ */
10
+ export declare function findTsFiles(dir: string): string[];
11
+ /**
12
+ * Parse a file and extract import names from @shopify/shop-minis-react
13
+ * Returns just the import names as strings (no metadata needed for validation)
14
+ */
15
+ export declare function extractImports(filePath: string): string[];
16
+ /**
17
+ * Get unique SDK imports from a mini app directory.
18
+ * This is the main entry point for scope validation.
19
+ */
20
+ export declare function getUniqueSdkImports(miniPath: string): Set<string>;
@@ -0,0 +1,185 @@
1
+ /**
2
+ * SDK Import Scanning Utilities
3
+ *
4
+ * Scans a mini app's source code to find all imports from @shopify/shop-minis-react.
5
+ * Used by scope validation to determine which hooks/components are actually used.
6
+ */
7
+ import * as fs from 'fs';
8
+ import * as path from 'path';
9
+ const SDK_PACKAGE = '@shopify/shop-minis-react';
10
+ /**
11
+ * Recursively find all TypeScript/TSX files in a directory
12
+ */
13
+ export function findTsFiles(dir) {
14
+ const files = [];
15
+ function walkDir(currentDir) {
16
+ if (!fs.existsSync(currentDir)) {
17
+ return;
18
+ }
19
+ const entries = fs.readdirSync(currentDir, { withFileTypes: true });
20
+ for (const entry of entries) {
21
+ const fullPath = path.join(currentDir, entry.name);
22
+ // Skip node_modules and build directories
23
+ if (entry.name === 'node_modules' ||
24
+ entry.name === 'dist' ||
25
+ entry.name === 'build' ||
26
+ entry.name === '.minis-cache') {
27
+ continue;
28
+ }
29
+ if (entry.isDirectory()) {
30
+ walkDir(fullPath);
31
+ }
32
+ else if (entry.isFile() &&
33
+ (entry.name.endsWith('.ts') || entry.name.endsWith('.tsx'))) {
34
+ files.push(fullPath);
35
+ }
36
+ }
37
+ }
38
+ if (fs.existsSync(dir)) {
39
+ walkDir(dir);
40
+ }
41
+ return files;
42
+ }
43
+ /**
44
+ * Remove single-line comments from a line of code
45
+ */
46
+ function removeComments(line) {
47
+ const commentIndex = line.indexOf('//');
48
+ if (commentIndex !== -1) {
49
+ return line.substring(0, commentIndex);
50
+ }
51
+ return line;
52
+ }
53
+ /**
54
+ * Check if we're inside a multi-line comment block
55
+ */
56
+ function isInMultiLineComment(lines, currentIndex) {
57
+ let inComment = false;
58
+ for (let i = 0; i <= currentIndex; i++) {
59
+ const line = lines[i];
60
+ if (line.includes('/*')) {
61
+ inComment = true;
62
+ }
63
+ if (line.includes('*/')) {
64
+ inComment = false;
65
+ }
66
+ }
67
+ return inComment;
68
+ }
69
+ /**
70
+ * Parse an individual import item and extract the original name
71
+ * Handles: "Foo", "Foo as Bar", "type Foo", "type Foo as Bar"
72
+ */
73
+ function parseImportItem(item) {
74
+ const trimmed = item.trim();
75
+ // Handle "type Foo" or "type Foo as Bar"
76
+ const typeMatch = trimmed.match(/^type\s+(.+?)(?:\s+as\s+\w+)?$/);
77
+ if (typeMatch) {
78
+ const nameWithAlias = typeMatch[1];
79
+ const asMatch = nameWithAlias.match(/^(.+?)\s+as\s+/);
80
+ return asMatch ? asMatch[1].trim() : nameWithAlias.trim();
81
+ }
82
+ // Handle "Foo as Bar"
83
+ const asMatch = trimmed.match(/^(.+?)\s+as\s+/);
84
+ if (asMatch) {
85
+ return asMatch[1].trim();
86
+ }
87
+ return trimmed;
88
+ }
89
+ /**
90
+ * Parse a file and extract import names from @shopify/shop-minis-react
91
+ * Returns just the import names as strings (no metadata needed for validation)
92
+ */
93
+ export function extractImports(filePath) {
94
+ const imports = [];
95
+ try {
96
+ const content = fs.readFileSync(filePath, 'utf-8');
97
+ const lines = content.split('\n');
98
+ const escapedPackage = SDK_PACKAGE.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
99
+ for (let i = 0; i < lines.length; i++) {
100
+ if (isInMultiLineComment(lines, i)) {
101
+ continue;
102
+ }
103
+ const line = removeComments(lines[i]).trim();
104
+ if (!line)
105
+ continue;
106
+ // Check if this line starts an import/export statement
107
+ const importOrExportStart = /^(import|export)\s/.test(line);
108
+ if (!importOrExportStart) {
109
+ continue;
110
+ }
111
+ // Collect multi-line imports
112
+ let fullStatement = line;
113
+ let currentLine = i;
114
+ while (currentLine < lines.length - 1 &&
115
+ !fullStatement.match(/['"][;]?\s*$/)) {
116
+ currentLine++;
117
+ const nextLine = removeComments(lines[currentLine]).trim();
118
+ fullStatement = `${fullStatement} ${nextLine}`;
119
+ }
120
+ fullStatement = fullStatement.replace(/\s+/g, ' ').trim();
121
+ // Check if this import/export is from our SDK package
122
+ const importOrExportRegex = new RegExp(`(import|export).*from\\s*['"]${escapedPackage}['"]`);
123
+ if (!importOrExportRegex.test(fullStatement)) {
124
+ continue;
125
+ }
126
+ // Match: import type { ... } from '...' or import { ... } from '...'
127
+ const namedImportMatch = fullStatement.match(new RegExp(`import\\s*(?:type\\s*)?{([^}]+)}\\s*from\\s*['"]${escapedPackage}['"]`));
128
+ if (namedImportMatch) {
129
+ const importedItems = namedImportMatch[1]
130
+ .split(',')
131
+ .map(parseImportItem)
132
+ .filter(Boolean);
133
+ imports.push(...importedItems);
134
+ continue;
135
+ }
136
+ // Match: import Something from '...'
137
+ const defaultImportMatch = fullStatement.match(new RegExp(`import\\s+(\\w+)\\s+from\\s*['"]${escapedPackage}['"]`));
138
+ if (defaultImportMatch) {
139
+ imports.push(defaultImportMatch[1]);
140
+ continue;
141
+ }
142
+ // Match: import * as Something from '...'
143
+ const namespaceImportMatch = fullStatement.match(new RegExp(`import\\s*\\*\\s*as\\s+(\\w+)\\s*from\\s*['"]${escapedPackage}['"]`));
144
+ if (namespaceImportMatch) {
145
+ imports.push(`* as ${namespaceImportMatch[1]}`);
146
+ continue;
147
+ }
148
+ // Match: export { ... } from '...'
149
+ const reExportMatch = fullStatement.match(new RegExp(`export\\s*{([^}]+)}\\s*from\\s*['"]${escapedPackage}['"]`));
150
+ if (reExportMatch) {
151
+ const exportedItems = reExportMatch[1]
152
+ .split(',')
153
+ .map(parseImportItem)
154
+ .filter(Boolean);
155
+ imports.push(...exportedItems);
156
+ continue;
157
+ }
158
+ // Match: export * from '...'
159
+ const reExportAllMatch = fullStatement.match(new RegExp(`export\\s*\\*\\s*from\\s*['"]${escapedPackage}['"]`));
160
+ if (reExportAllMatch) {
161
+ imports.push('* (re-export all)');
162
+ }
163
+ }
164
+ }
165
+ catch {
166
+ // Skip files that can't be read
167
+ }
168
+ return imports;
169
+ }
170
+ /**
171
+ * Get unique SDK imports from a mini app directory.
172
+ * This is the main entry point for scope validation.
173
+ */
174
+ export function getUniqueSdkImports(miniPath) {
175
+ const files = findTsFiles(miniPath);
176
+ const uniqueImports = new Set();
177
+ for (const file of files) {
178
+ const imports = extractImports(file);
179
+ for (const name of imports) {
180
+ uniqueImports.add(name);
181
+ }
182
+ }
183
+ return uniqueImports;
184
+ }
185
+ //# sourceMappingURL=scan-sdk-usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-sdk-usage.js","sourceRoot":"","sources":["../../src/utils/scan-sdk-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Scope Validation Utilities
3
+ *
4
+ * Validates that all scopes declared in a mini's manifest.json are actually used
5
+ * by the hooks and components imported from @shopify/shop-minis-react.
6
+ *
7
+ * Ported from shop-minis-submissions/scripts/validate-mini-manifest.ts
8
+ */
9
+ export interface ScopesValidationResult {
10
+ success: boolean;
11
+ unusedScopes: string[];
12
+ usedHooksAndComponents: string[];
13
+ /** True if validation was skipped (e.g., SDK maps not found) */
14
+ skipped: boolean;
15
+ /** Reason why validation was skipped */
16
+ skipReason?: string;
17
+ /** Validation errors (e.g., invalid scope types in manifest) */
18
+ errors?: string[];
19
+ }
20
+ /**
21
+ * Loads the hook-to-scopes mapping from the SDK in a Mini's node_modules
22
+ * Returns null if the SDK is not installed or the map file doesn't exist
23
+ */
24
+ export declare function loadHookScopesMap(miniPath: string): Record<string, string[]> | null;
25
+ /**
26
+ * Loads the component-to-scopes mapping from the SDK in a Mini's node_modules
27
+ * Returns a map keyed by component name (not file path) for easier lookup
28
+ * Returns null if the SDK is not installed or the map file doesn't exist
29
+ */
30
+ export declare function loadComponentScopesMap(miniPath: string): Record<string, {
31
+ scopes: string[];
32
+ hooks: string[];
33
+ }> | null;
34
+ /**
35
+ * Checks if a scope is required by any of the used hooks/components
36
+ */
37
+ export declare function isScopeUsed(scope: string, usedItems: Set<string>, hookToScopes: Record<string, string[]>, componentToScopes: Record<string, {
38
+ scopes: string[];
39
+ hooks: string[];
40
+ }>): boolean;
41
+ /**
42
+ * Validates that all scopes declared in the manifest are actually used.
43
+ * Returns a result indicating success/failure and any unused scopes.
44
+ *
45
+ * This function gracefully handles missing SDK installations by skipping
46
+ * validation and returning a successful result.
47
+ *
48
+ * @param miniPath - Path to the mini app directory
49
+ * @param manifest - Already-loaded manifest content (avoids double-loading)
50
+ */
51
+ export declare function validateUnusedScopes(miniPath: string, manifest: {
52
+ scopes?: unknown[];
53
+ [key: string]: unknown;
54
+ }): ScopesValidationResult;
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Scope Validation Utilities
3
+ *
4
+ * Validates that all scopes declared in a mini's manifest.json are actually used
5
+ * by the hooks and components imported from @shopify/shop-minis-react.
6
+ *
7
+ * Ported from shop-minis-submissions/scripts/validate-mini-manifest.ts
8
+ */
9
+ import * as fs from 'fs';
10
+ import * as path from 'path';
11
+ import { getUniqueSdkImports } from './scan-sdk-usage.js';
12
+ /**
13
+ * Loads the hook-to-scopes mapping from the SDK in a Mini's node_modules
14
+ * Returns null if the SDK is not installed or the map file doesn't exist
15
+ */
16
+ export function loadHookScopesMap(miniPath) {
17
+ const mapPath = path.join(miniPath, 'node_modules', '@shopify', 'shop-minis-react', 'generated-hook-maps', 'hook-scopes-map.json');
18
+ if (!fs.existsSync(mapPath)) {
19
+ return null;
20
+ }
21
+ try {
22
+ const mapContent = fs.readFileSync(mapPath, 'utf-8');
23
+ return JSON.parse(mapContent);
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ }
29
+ /**
30
+ * Loads the component-to-scopes mapping from the SDK in a Mini's node_modules
31
+ * Returns a map keyed by component name (not file path) for easier lookup
32
+ * Returns null if the SDK is not installed or the map file doesn't exist
33
+ */
34
+ export function loadComponentScopesMap(miniPath) {
35
+ const mapPath = path.join(miniPath, 'node_modules', '@shopify', 'shop-minis-react', 'generated-hook-maps', 'component-scopes-map.json');
36
+ if (!fs.existsSync(mapPath)) {
37
+ return null;
38
+ }
39
+ try {
40
+ const mapContent = fs.readFileSync(mapPath, 'utf-8');
41
+ const filePathMap = JSON.parse(mapContent);
42
+ // Build reverse map: componentName -> {scopes, hooks}
43
+ const componentNameMap = {};
44
+ for (const [filePath, data] of Object.entries(filePathMap)) {
45
+ if (data.name) {
46
+ // Use componentName field when available
47
+ componentNameMap[data.name] = {
48
+ scopes: data.scopes,
49
+ hooks: data.hooks,
50
+ };
51
+ }
52
+ else {
53
+ // Fallback: derive component name from file path (for backward compatibility)
54
+ // commerce/product-card -> ProductCard
55
+ const fileName = filePath.split('/').pop() || '';
56
+ const componentName = fileName
57
+ .split('-')
58
+ .map(part => part.charAt(0).toUpperCase() + part.slice(1))
59
+ .join('');
60
+ if (componentName) {
61
+ componentNameMap[componentName] = {
62
+ scopes: data.scopes,
63
+ hooks: data.hooks,
64
+ };
65
+ }
66
+ }
67
+ }
68
+ return componentNameMap;
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ /**
75
+ * Checks if a scope is required by any of the used hooks/components
76
+ */
77
+ export function isScopeUsed(scope, usedItems, hookToScopes, componentToScopes) {
78
+ // Check if any used item (hook or component) requires this scope
79
+ for (const item of usedItems) {
80
+ // Check hooks
81
+ const hookScopes = hookToScopes[item];
82
+ if (hookScopes && hookScopes.includes(scope)) {
83
+ return true;
84
+ }
85
+ // Check components (now keyed by component name after loading)
86
+ const componentData = componentToScopes[item];
87
+ if (componentData &&
88
+ componentData.scopes &&
89
+ componentData.scopes.includes(scope)) {
90
+ return true;
91
+ }
92
+ }
93
+ return false;
94
+ }
95
+ /**
96
+ * Validates that all scopes declared in the manifest are actually used.
97
+ * Returns a result indicating success/failure and any unused scopes.
98
+ *
99
+ * This function gracefully handles missing SDK installations by skipping
100
+ * validation and returning a successful result.
101
+ *
102
+ * @param miniPath - Path to the mini app directory
103
+ * @param manifest - Already-loaded manifest content (avoids double-loading)
104
+ */
105
+ export function validateUnusedScopes(miniPath, manifest) {
106
+ // If no scopes declared, nothing to validate
107
+ const declaredScopes = manifest.scopes;
108
+ if (!declaredScopes || declaredScopes.length === 0) {
109
+ return {
110
+ success: true,
111
+ unusedScopes: [],
112
+ usedHooksAndComponents: [],
113
+ skipped: false,
114
+ };
115
+ }
116
+ // Scopes must be an array
117
+ if (!Array.isArray(declaredScopes)) {
118
+ return {
119
+ success: false,
120
+ unusedScopes: [],
121
+ usedHooksAndComponents: [],
122
+ skipped: false,
123
+ errors: ['scopes must be an array'],
124
+ };
125
+ }
126
+ // Load scope maps from SDK
127
+ const hookToScopes = loadHookScopesMap(miniPath);
128
+ const componentToScopes = loadComponentScopesMap(miniPath);
129
+ // If SDK maps are not available, skip validation gracefully
130
+ if (!hookToScopes) {
131
+ return {
132
+ success: true,
133
+ unusedScopes: [],
134
+ usedHooksAndComponents: [],
135
+ skipped: true,
136
+ skipReason: 'SDK scope maps not found. Make sure @shopify/shop-minis-react is installed.',
137
+ };
138
+ }
139
+ // Use empty object if component scopes map doesn't exist (it's optional)
140
+ const componentScopes = componentToScopes || {};
141
+ // Scan mini source for SDK imports
142
+ const usedHooksAndComponents = getUniqueSdkImports(miniPath);
143
+ // Check each declared scope to see if it's actually used
144
+ const unusedScopes = [];
145
+ const errors = [];
146
+ for (const scope of declaredScopes) {
147
+ if (typeof scope !== 'string') {
148
+ errors.push(`scopes must contain only strings, found: ${typeof scope}`);
149
+ continue;
150
+ }
151
+ if (!isScopeUsed(scope, usedHooksAndComponents, hookToScopes, componentScopes)) {
152
+ unusedScopes.push(scope);
153
+ }
154
+ }
155
+ return {
156
+ success: unusedScopes.length === 0 && errors.length === 0,
157
+ unusedScopes,
158
+ usedHooksAndComponents: Array.from(usedHooksAndComponents),
159
+ skipped: false,
160
+ errors: errors.length > 0 ? errors : undefined,
161
+ };
162
+ }
163
+ //# sourceMappingURL=scopes-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes-validation.js","sourceRoot":"","sources":["../../src/utils/scopes-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { Platform } from '../commands/dev/types.js';
2
+ export interface Session {
3
+ id: string;
4
+ timestamp: string;
5
+ launches: Launch[];
6
+ }
7
+ export interface Launch {
8
+ platform: Platform;
9
+ shopVersion: string;
10
+ shopBuild: string;
11
+ timestamp: string;
12
+ deviceId: string;
13
+ deviceName?: string;
14
+ deviceOsVersion?: string;
15
+ }
16
+ interface HistoryFile {
17
+ sessions: Session[];
18
+ }
19
+ /**
20
+ * Reads the history file and returns the sessions.
21
+ */
22
+ export declare function readHistoryFile(): Promise<HistoryFile>;
23
+ /**
24
+ * Writes the sessions to the history file.
25
+ */
26
+ export declare function writeHistoryFile(data: HistoryFile): Promise<void>;
27
+ /**
28
+ * Gets the current session. If no session exists, it creates one.
29
+ */
30
+ export declare function getCurrentSession(): Session;
31
+ /**
32
+ * Initializes a new CLI session with a unique ID and timestamp.
33
+ * Should be called once when the CLI starts.
34
+ * Also writes the session to the sessions file automatically.
35
+ */
36
+ export declare function initializeSession(): Session;
37
+ export declare function addLaunch(platform: Platform, deviceId: string): Promise<void>;
38
+ /**
39
+ * Gets the most recent launches across all sessions, sorted by timestamp.
40
+ */
41
+ export declare function getRecentLaunches(limit?: number): Promise<Launch[]>;
42
+ export {};
@@ -0,0 +1,153 @@
1
+ import path from 'path';
2
+ import crypto from 'crypto';
3
+ import fs from 'fs-extra';
4
+ import { outputDebug } from '@shopify/cli-kit/node/output';
5
+ import { Platform } from '../commands/dev/types.js';
6
+ import { PATHS } from '../commands/config.js';
7
+ import { getAndroidDeviceInfo } from '../commands/dev/utils/android.js';
8
+ import { getSelectableSimulators } from '../commands/dev/utils/simulator.js';
9
+ import { handlersForPlatform } from '../commands/dev/utils/start-app/config.js';
10
+ let currentSession = null;
11
+ const SESSIONS_FILE = path.join(PATHS.CACHE_DIR, 'sessions.json');
12
+ const MAX_SESSIONS = 20;
13
+ /**
14
+ * Reads the history file and returns the sessions.
15
+ */
16
+ export async function readHistoryFile() {
17
+ try {
18
+ if (await fs.pathExists(SESSIONS_FILE)) {
19
+ const data = await fs.readJSON(SESSIONS_FILE);
20
+ return data.sessions ? data : { sessions: [] };
21
+ }
22
+ }
23
+ catch (error) {
24
+ outputDebug(`Failed to read sessions: ${error}`);
25
+ }
26
+ return { sessions: [] };
27
+ }
28
+ /**
29
+ * Writes the sessions to the history file.
30
+ */
31
+ export async function writeHistoryFile(data) {
32
+ try {
33
+ await fs.writeJSON(SESSIONS_FILE, data, { spaces: 2 });
34
+ outputDebug(`Sessions saved to ${SESSIONS_FILE}`);
35
+ }
36
+ catch (error) {
37
+ outputDebug(`Failed to write sessions: ${error}`);
38
+ }
39
+ }
40
+ /**
41
+ * Gets the current session. If no session exists, it creates one.
42
+ */
43
+ export function getCurrentSession() {
44
+ if (!currentSession) {
45
+ return initializeSession();
46
+ }
47
+ return currentSession;
48
+ }
49
+ /**
50
+ * Initializes a new CLI session with a unique ID and timestamp.
51
+ * Should be called once when the CLI starts.
52
+ * Also writes the session to the sessions file automatically.
53
+ */
54
+ export function initializeSession() {
55
+ currentSession = {
56
+ id: crypto.randomUUID(),
57
+ timestamp: new Date().toISOString(),
58
+ launches: [],
59
+ };
60
+ upsertSession(currentSession).catch(() => {
61
+ outputDebug('Failed to write session');
62
+ });
63
+ return currentSession;
64
+ }
65
+ /**
66
+ * Upserts a session to the sessions file.
67
+ * If the session doesn't exist, it creates it. If it does, it updates it.
68
+ */
69
+ async function upsertSession(sessionToUpsert, updateSession) {
70
+ try {
71
+ const data = await readHistoryFile();
72
+ // Find or create the session
73
+ let session = data.sessions.find(sessionItem => sessionItem.id === sessionToUpsert.id);
74
+ if (!session) {
75
+ session = sessionToUpsert;
76
+ data.sessions.unshift(session);
77
+ }
78
+ updateSession?.(session);
79
+ // Keep only the last MAX_SESSIONS sessions
80
+ data.sessions = data.sessions.slice(0, MAX_SESSIONS);
81
+ await writeHistoryFile(data);
82
+ }
83
+ catch (error) {
84
+ outputDebug(`Failed to upsert session: ${error}`);
85
+ }
86
+ }
87
+ async function getDeviceInfo(platform, deviceId) {
88
+ if (platform === Platform.IOS) {
89
+ const simulators = await getSelectableSimulators();
90
+ const simulator = simulators.find(sim => sim.udid === deviceId);
91
+ return {
92
+ deviceName: simulator?.name || 'Unknown Device',
93
+ deviceOsVersion: simulator?.osVersion || '',
94
+ };
95
+ }
96
+ else {
97
+ const deviceInfo = await getAndroidDeviceInfo(deviceId);
98
+ const deviceName = deviceInfo
99
+ ? `${deviceInfo.manufacturer} ${deviceInfo.model}`
100
+ : 'Unknown Device';
101
+ let osVersion = deviceInfo?.androidVersion || '';
102
+ if (deviceInfo) {
103
+ osVersion = `${deviceInfo.androidVersion} (API ${deviceInfo.apiLevel}, ${deviceInfo.architecture})`;
104
+ }
105
+ return {
106
+ deviceName,
107
+ deviceOsVersion: osVersion,
108
+ };
109
+ }
110
+ }
111
+ export async function addLaunch(platform, deviceId) {
112
+ try {
113
+ const handlers = handlersForPlatform(platform);
114
+ if (!handlers) {
115
+ outputDebug('No handlers found for platform, skipping session');
116
+ return;
117
+ }
118
+ const shopVersion = await handlers.getInstalledShopVersion(deviceId);
119
+ if (!shopVersion) {
120
+ outputDebug('No Shop version found, skipping session');
121
+ return;
122
+ }
123
+ outputDebug(`Adding launch to session: ${platform} ${deviceId} ${shopVersion.version}+${shopVersion.build}`);
124
+ const { deviceName, deviceOsVersion } = await getDeviceInfo(platform, deviceId);
125
+ const launch = {
126
+ platform,
127
+ shopVersion: shopVersion.version,
128
+ shopBuild: shopVersion.build,
129
+ timestamp: new Date().toISOString(),
130
+ deviceId,
131
+ deviceName,
132
+ deviceOsVersion,
133
+ };
134
+ await upsertSession(getCurrentSession(), session => {
135
+ session.launches.unshift(launch);
136
+ });
137
+ }
138
+ catch (error) {
139
+ outputDebug(`Failed to add launch: ${error}`);
140
+ }
141
+ }
142
+ /**
143
+ * Gets the most recent launches across all sessions, sorted by timestamp.
144
+ */
145
+ export async function getRecentLaunches(limit = 5) {
146
+ const history = await readHistoryFile();
147
+ // Flatten all launches from all sessions and sort by timestamp
148
+ const allLaunches = history.sessions.flatMap(session => session.launches);
149
+ const sortedLaunches = allLaunches.sort((launchA, launchB) => new Date(launchB.timestamp).getTime() -
150
+ new Date(launchA.timestamp).getTime());
151
+ return sortedLaunches.slice(0, limit);
152
+ }
153
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public",
5
5
  "@shopify:registry": "https://registry.npmjs.org/"
6
6
  },
7
- "version": "0.0.224",
7
+ "version": "0.0.226",
8
8
  "description": "Shop Minis CLI",
9
9
  "main": "build/index.js",
10
10
  "bin": {
@@ -19,7 +19,7 @@
19
19
  "@shopify/eslint-plugin": "^42.0.1",
20
20
  "@types/archiver": "^5.3.1",
21
21
  "@types/connect": "^3.4.35",
22
- "@types/envinfo": "^7.8.1",
22
+ "@types/envinfo": "^7.8.4",
23
23
  "@types/finalhandler": "^1.2.3",
24
24
  "@types/fs-extra": "^9.0.13",
25
25
  "@types/inquirer": "^9.0.3",
@@ -61,7 +61,7 @@
61
61
  "connect": "^3.7.0",
62
62
  "diff": "^7.0.0",
63
63
  "dotenv": "^16.0.3",
64
- "envinfo": "^7.8.1",
64
+ "envinfo": "^7.20.0",
65
65
  "escape-string-regexp": "^4.0.0",
66
66
  "external-editor": "^3.1.0",
67
67
  "finalhandler": "^2.1.0",