@shopify/shop-minis-cli 0.0.223 → 0.0.225
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/build/commands/build/index.js +10 -8
- package/build/commands/build/index.js.map +1 -1
- package/build/commands/create/index.js +7 -2
- package/build/commands/create/index.js.map +1 -1
- package/build/commands/create/utils/examples.d.ts +6 -2
- package/build/commands/create/utils/examples.js +18 -6
- package/build/commands/create/utils/examples.js.map +1 -1
- package/build/commands/dev/utils/android.d.ts +11 -0
- package/build/commands/dev/utils/android.js +35 -0
- package/build/commands/dev/utils/android.js.map +1 -1
- package/build/commands/dev/utils/start-app/start-app-with-options.js +2 -0
- package/build/commands/dev/utils/start-app/start-app-with-options.js.map +1 -1
- package/build/commands/dev/utils/web-server.js +1 -10
- package/build/commands/dev/utils/web-server.js.map +1 -1
- package/build/commands/info/index.d.ts +5 -0
- package/build/commands/info/index.js +139 -5
- package/build/commands/info/index.js.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/build/schemas/manifest.schema.json +2 -1
- package/build/utils/session.d.ts +42 -0
- package/build/utils/session.js +153 -0
- package/build/utils/session.js.map +1 -0
- package/build/utils/vite-config.d.ts +7 -2
- package/build/utils/vite-config.js +37 -15
- package/build/utils/vite-config.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
1
|
+
import { Command, Option } from 'commander';
|
|
2
2
|
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
|
-
|
|
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
|
-
const
|
|
9
|
-
|
|
11
|
+
const allowedExternalPaths = options.localSdkPath
|
|
12
|
+
? [options.localSdkPath]
|
|
13
|
+
: [];
|
|
14
|
+
await viteBuild(createViteConfig({ mode: 'production', allowedExternalPaths }));
|
|
10
15
|
outputSuccess('Build completed successfully!');
|
|
11
16
|
}
|
|
12
17
|
catch (error) {
|
|
13
18
|
throw new AbortError(`Build failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
14
19
|
}
|
|
15
|
-
}
|
|
16
|
-
export const buildCommand = new Command('build')
|
|
17
|
-
.description('Build the Mini for production')
|
|
18
|
-
.action(buildAction);
|
|
20
|
+
});
|
|
19
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,EAAC,MAAM,WAAW,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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync } from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { Command } from 'commander';
|
|
3
|
+
import { Command, Option } from 'commander';
|
|
4
4
|
import { renderSuccess, renderTasks, renderTextPrompt, renderError, } from '@shopify/cli-kit/node/ui';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { copy } from 'fs-extra';
|
|
@@ -18,6 +18,8 @@ export function loadCommand(parentProgram) {
|
|
|
18
18
|
.argument('[mini name]', 'The name of your Shop Mini.')
|
|
19
19
|
.option('-o, --output-dir <path>', 'Specify an output directory.')
|
|
20
20
|
.option('--verbose', 'Print debugging messages.')
|
|
21
|
+
.addOption(new Option('--local-cli-path', 'Use the local CLI as a file: dependency instead of a published version.').hideHelp())
|
|
22
|
+
.addOption(new Option('--local-sdk-path <path>', 'Use a local SDK as a file: dependency instead of a published version.').hideHelp())
|
|
21
23
|
.action(async (miniNameArg, options = {}) => {
|
|
22
24
|
try {
|
|
23
25
|
outputDebug(`create mini input: name=${miniNameArg} options=${JSON.stringify(options)}`);
|
|
@@ -54,7 +56,10 @@ export function loadCommand(parentProgram) {
|
|
|
54
56
|
{
|
|
55
57
|
title: 'Fetching example',
|
|
56
58
|
task: async () => {
|
|
57
|
-
const miniTmpDirPath = await generateMiniFromLocalWebExample(`${miniName}`, miniHandle
|
|
59
|
+
const miniTmpDirPath = await generateMiniFromLocalWebExample(`${miniName}`, miniHandle, {
|
|
60
|
+
localCliPath: options.localCliPath,
|
|
61
|
+
localSdkPath: options.localSdkPath,
|
|
62
|
+
});
|
|
58
63
|
await copy(miniTmpDirPath, miniDirPath);
|
|
59
64
|
},
|
|
60
65
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/create/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,IAAI,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,EACL,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAC,IAAI,EAAC,MAAM,UAAU,CAAA;AAC7B,OAAO,EAAC,IAAI,EAAC,MAAM,8BAA8B,CAAA;AACjD,OAAO,EAAC,2BAA2B,EAAC,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAElE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAA;AAEnE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAC,+BAA+B,EAAC,MAAM,qBAAqB,CAAA;AAEnE,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,yBAAyB,CAAC;SACtC,QAAQ,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;SACjE,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,SAAS,CACR,IAAI,MAAM,CACR,kBAAkB,EAClB,yEAAyE,CAC1E,CAAC,QAAQ,EAAE,CACb;SACA,SAAS,CACR,IAAI,MAAM,CACR,yBAAyB,EACzB,uEAAuE,CACxE,CAAC,QAAQ,EAAE,CACb;SACA,MAAM,CACL,KAAK,EACH,WAAoB,EACpB,UAII,EAAE,EACN,EAAE;QACF,IAAI;YACF,WAAW,CACT,2BAA2B,WAAW,YAAY,IAAI,CAAC,SAAS,CAC9D,OAAO,CACR,EAAE,CACJ,CAAA;YAED,IAAI,QAAQ,GAAG,WAAW,CAAA;YAC1B,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAEvD,WAAW,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAA;YAElD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBAC1B,WAAW,CAAC;oBACV,QAAQ,EAAE,4BAA4B;oBACtC,IAAI,EAAE;wBACJ,gDAAgD;wBAChD,EAAC,OAAO,EAAE,SAAS,EAAC;wBACpB,mEAAmE;qBACpE;iBACF,CAAC,CAAA;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aAChB;YAED,IAAI,CAAC,QAAQ,EAAE;gBACb,IAAI,WAAW,EAAE;oBACf,QAAQ,GAAG,WAAW,CAAA;iBACvB;qBAAM;oBACL,kDAAkD;oBAClD,QAAQ,GAAG,MAAM,gBAAgB,CAAC;wBAChC,OAAO,EAAE,+BAA+B,KAAK,CAAC,GAAG,CAC/C,0BAA0B,CAC3B,EAAE;qBACJ,CAAC,CAAA;iBACH;aACF;YAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAEvD,WAAW,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAA;YACpD,WAAW,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAA;YAEtD,MAAM,WAAW,CAAC;gBAChB;oBACE,KAAK,EAAE,kBAAkB;oBACzB,IAAI,EAAE,KAAK,IAAI,EAAE;wBACf,MAAM,cAAc,GAAG,MAAM,+BAA+B,CAC1D,GAAG,QAAQ,EAAE,EACb,UAAU,EACV;4BACE,YAAY,EAAE,OAAO,CAAC,YAAY;4BAClC,YAAY,EAAE,OAAO,CAAC,YAAY;yBACnC,CACF,CAAA;wBACD,MAAM,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;oBACzC,CAAC;iBACF;gBACD;oBACE,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,KAAK,IAAI,EAAE;wBACf,MAAM,OAAO,GAAG,2BAA2B,EAAE,KAAK,MAAM,CAAA;wBAExD,sDAAsD;wBACtD,oFAAoF;wBACpF,oCAAoC;wBACpC,gFAAgF;wBAChF,4CAA4C;wBAC5C,IAAI,OAAO,EAAE;4BACX,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC,CAAC,CAAA;yBAC7D;6BAAM;4BACL,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC,CAAC,CAAA;yBACxD;oBACH,CAAC;iBACF;aACF,CAAC,CAAA;YAEF,aAAa,CAAC;gBACZ,QAAQ,EAAE,mBAAmB;gBAC7B,IAAI,EAAE,CAAC,iCAAiC,CAAC;gBACzC,SAAS,EAAE;oBACT;wBACE,iCAAiC;wBACjC;4BACE,OAAO,EAAE,MAAM,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;yBACzD;qBACF;oBACD;wBACE,oBAAoB;wBACpB;4BACE,OAAO,EAAE,MAAM,oBAAoB,EAAE;yBACtC;qBACF;iBACF;aACF,CAAC,CAAA;SACH;QAAC,OAAO,KAAK,EAAE;YACd,WAAW,CAAC,KAAK,CAAC,CAAA;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;IACH,CAAC,CACF,CAAA;IACH,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -3,5 +3,9 @@ export declare function cloneShopMinisRepo({ branch, }?: {
|
|
|
3
3
|
}): Promise<string>;
|
|
4
4
|
export declare function getExample(examplesDir: string, exampleName: string): Promise<string>;
|
|
5
5
|
export declare function generateMiniFromShopMinisExample(name: string, handle: string, exampleName: string): Promise<string>;
|
|
6
|
-
export
|
|
7
|
-
|
|
6
|
+
export interface GenerateMiniOptions {
|
|
7
|
+
localCliPath?: boolean;
|
|
8
|
+
localSdkPath?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function generateMiniFromLocalWebExample(name: string, handle: string, options?: GenerateMiniOptions): Promise<string>;
|
|
11
|
+
export declare function generateMiniFromExample(name: string, handle: string, examplePath: string, options?: GenerateMiniOptions): Promise<string>;
|
|
@@ -12,6 +12,10 @@ import { overridePackageDependencies, overridePackageName, } from '../../../util
|
|
|
12
12
|
import { gatherRequiredDependencies } from '../../../utils/dependencies.js';
|
|
13
13
|
import { CURRENT_CLI_VERSION } from '../../config.js';
|
|
14
14
|
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
|
|
15
|
+
// Resolve the CLI package root directory (3 levels up from this file: utils -> create -> commands -> build)
|
|
16
|
+
function getLocalCliPackagePath() {
|
|
17
|
+
return path.resolve(__dirname, '..', '..', '..', '..');
|
|
18
|
+
}
|
|
15
19
|
export async function cloneShopMinisRepo({ branch, } = {}) {
|
|
16
20
|
const tmpDir = await mkdtemp(path.join(os.tmpdir(), `shop-minis-`));
|
|
17
21
|
const repoUrl = 'https://github.com/Shopify/shop-minis.git';
|
|
@@ -51,22 +55,30 @@ export async function generateMiniFromShopMinisExample(name, handle, exampleName
|
|
|
51
55
|
const examplePath = await getExample(path.join(shopMinisClonePath, 'examples'), exampleName);
|
|
52
56
|
return generateMiniFromExample(name, handle, examplePath);
|
|
53
57
|
}
|
|
54
|
-
export async function generateMiniFromLocalWebExample(name, handle) {
|
|
58
|
+
export async function generateMiniFromLocalWebExample(name, handle, options = {}) {
|
|
55
59
|
const examplePath = await getExample(path.join(__dirname, '..', 'examples'), 'default');
|
|
56
|
-
return generateMiniFromExample(name, handle, examplePath);
|
|
60
|
+
return generateMiniFromExample(name, handle, examplePath, options);
|
|
57
61
|
}
|
|
58
|
-
export async function generateMiniFromExample(name, handle, examplePath) {
|
|
62
|
+
export async function generateMiniFromExample(name, handle, examplePath, options = {}) {
|
|
59
63
|
const tmpDir = await mkdtemp(path.join(os.tmpdir(), `${handle}-`));
|
|
60
64
|
await copy(examplePath, tmpDir);
|
|
61
65
|
// NPM will not publish a `.gitignore` file, so we publish it as `_gitignore`
|
|
62
66
|
// and then rename it back to `.gitignore` when creating a mini.
|
|
63
67
|
// See https://github.com/npm/npm/issues/3763
|
|
64
68
|
await move(path.join(tmpDir, '_gitignore'), path.join(tmpDir, '.gitignore'));
|
|
69
|
+
// Use local CLI path for local testing, otherwise use the published version
|
|
70
|
+
const cliDependency = options.localCliPath
|
|
71
|
+
? `file:${getLocalCliPackagePath()}`
|
|
72
|
+
: CURRENT_CLI_VERSION;
|
|
73
|
+
// Gather required dependencies, potentially overriding SDK with local path
|
|
74
|
+
const dependencies = await gatherRequiredDependencies();
|
|
75
|
+
if (options.localSdkPath) {
|
|
76
|
+
dependencies['@shopify/shop-minis-react'] = `file:${options.localSdkPath}`;
|
|
77
|
+
}
|
|
65
78
|
overridePackageDependencies(tmpDir, {
|
|
66
|
-
dependencies
|
|
79
|
+
dependencies,
|
|
67
80
|
devDependencies: {
|
|
68
|
-
|
|
69
|
-
'@shopify/shop-minis-cli': CURRENT_CLI_VERSION,
|
|
81
|
+
'@shopify/shop-minis-cli': cliDependency,
|
|
70
82
|
},
|
|
71
83
|
});
|
|
72
84
|
overridePackageName(tmpDir, handle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../../src/commands/create/utils/examples.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../../src/commands/create/utils/examples.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAAA,OAAO,EAAC,IAAI,IAAI,MAAM,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,SAAS,EAAC,MAAM,4CAA4C,CAAA;AACpE,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"android.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,IAAI,MAAM,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,QAAQ,CAAA;AACtB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,SAAS,EAAC,MAAM,4CAA4C,CAAA;AACpE,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAC,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;AAkB9B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB;IAEhB,IAAI;QACF,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,GAC1D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,SAAS,CAAC,GAAG,QAAQ,EAAE,OAAO,QAAQ,iCAAiC,CAAC;iBACrE,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;iBAClD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YACzB,SAAS,CACP,GAAG,QAAQ,EAAE,OAAO,QAAQ,wCAAwC,CACrE;iBACE,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;iBAClD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YACzB,SAAS,CACP,GAAG,QAAQ,EAAE,OAAO,QAAQ,yCAAyC,CACtE;iBACE,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;iBAClD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YACzB,SAAS,CACP,GAAG,QAAQ,EAAE,OAAO,QAAQ,qCAAqC,CAClE;iBACE,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;iBAClD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;YACzB,SAAS,CACP,GAAG,QAAQ,EAAE,OAAO,QAAQ,mCAAmC,CAChE;iBACE,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;iBAClD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SAC1B,CAAC,CAAA;QAEJ,OAAO;YACL,KAAK;YACL,YAAY;YACZ,cAAc,EAAE,OAAO;YACvB,QAAQ;YACR,YAAY;SACb,CAAA;KACF;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAA;QAC1D,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,EAAC,MAAM,EAAE,WAAW,EAAC,GAAG,MAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAA;IAEzE,OAAO,WAAW;SACf,KAAK,CAAC,CAAC,CAAC;SACR,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1C,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,4CAA4C;QAEpE,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,GAAG,QAAQ,WAAW;YACnC,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM,KAAK,QAAQ;YAC7B,YAAY,EAAE,MAAM,KAAK,QAAQ;SACjB,CAAA;IACpB,CAAC,CAAC,CAAA;AACN,CAAC;AAED,KAAK,UAAU,uBAAuB;IACpC,IAAI;QACF,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAA;QACzD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;QAC3E,MAAM,YAAY,GAAa,EAAE,CAAA;QAEjC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACtE,IAAI,IAAI,EAAE;oBACR,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBACxB;aACF;YAAC,MAAM;gBACN,gCAAgC;aACjC;SACF;QAED,OAAO,YAAY,CAAA;KACpB;IAAC,MAAM;QACN,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,EAAC,MAAM,EAAE,WAAW,EAAC,GAAG,MAAM,SAAS,CAAC,GAAG,aAAa,EAAE,aAAa,CAAC,CAAA;IAC9E,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,EAAE,CAAA;IAE5D,OAAO,WAAW,CAAC,GAAG,CACpB,IAAI,CAAC,EAAE,CACL,CAAC;QACC,IAAI;QACJ,WAAW,EAAE,GAAG,IAAI,aAAa;QACjC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7C,YAAY,EAAE,IAAI;KACnB,CAAkB,CACtB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAA;IAEtC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAChD,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9B,gEAAgE,CACjE,kEAAkE,CACpE,CAAA;QACD,OAAO,CAAC,GAAG,CACT,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAC7B,+DAA+D,CAChE,iDAAiD,CACnD,CAAA;QAED,OAAO,IAAI,CAAA;KACZ;IAED,wEAAwE;IACxE,MAAM,aAAa,GAAG;QACpB,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;QACnD,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;KACrD,CAAA;IAED,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,OAAO,CAAC;QAC5B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAA;YAC7D,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC/B,KAAK,EAAE,IAAI;aACZ,CAAA;QACH,CAAC,CAAC;QACF,OAAO,EAAE,CAAC,KAAU,EAAE,OAAY,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACpC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAClE,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,YAAoB;IAC5D,IAAI,UAAU,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAA,CAAC,2DAA2D;IACzH,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,CAAA;KAClD;IACD,IAAI,UAAU,EAAE;QACd,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAA;KACxC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,QAAgB;IAEhB,WAAW,CACT,oCAAoC,IAAI,CAAC,SAAS,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAC,CAAC,EAAE,CAC7E,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACvD,MAAM,SAAS,CACb,GAAG,QAAQ,EAAE,OAAO,UAAU,mBAAmB,UAAU,GAAG,CAC/D,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,UAAkB;IAC9D,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC,GAAG,QAAQ,EAAE,OAAO,UAAU,uEAAuE,CACtG,CAAA;QAED,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC,GAAG,QAAQ,EAAE,OAAO,UAAU,uEAAuE,CACtG,CAAA;QAED,sCAAsC;QACtC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAEhE,iEAAiE;QACjE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAClB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CACxD,CAAA;QAED,IAAI,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;YACpC,OAAO,IAAI,CAAA;SACZ;QAED,OAAO;YACL,OAAO;YACP,KAAK;SACN,CAAA;KACF;IAAC,MAAM;QACN,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IAC/D,MAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,OAAO,UAAU,4BAA4B,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,gBAAwB;IAExB,MAAM,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAE1C,IAAI,QAAQ,GAAG,gBAAgB,CAAA;IAE/B,qEAAqE;IACrE,uCAAuC;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;QACxD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,KAAK,CAAC,CAAA;QACd,QAAQ,GAAG,GAAG,cAAc,IAAI,WAAW,EAAE,CAAA;KAC9C;IAED,MAAM,SAAS,CACb,GAAG,QAAQ,EAAE,OAAO,UAAU,qDAAqD,QAAQ,GAAG,CAC/F,CAAA;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IACxD,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,SAAS,CAC9B,GAAG,QAAQ,EAAE,OAAO,UAAU,eAAe,CAC9C,CAAA;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,YAAoB;IAC1D,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,SAAS,CAAC,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,UAAU,CAAC,CAAA;QACvD,IAAI,IAAI,KAAK,YAAY,EAAE;YACzB,OAAO,UAAU,CAAA;SAClB;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,UAAkB,EAClB,UAAkB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY;;IAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACxB,IAAI;QACF,MAAM,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,UAAU,kBAAkB,EAAE;YAC3D,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;SACnC,CAAC,CAAA;KACH;IAAC,MAAM;QACN,0EAA0E;KAC3E;IAED,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE;QACnC,IAAI;YACF,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,IAAI,CACzB,GAAG,QAAQ,EAAE,OAAO,UAAU,mCAAmC,CAClE,CAAA;YACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACzC,OAAM;aACP;SACF;QAAC,MAAM;YACN,6CAA6C;SAC9C;QAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;KACxD;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB;IAC5C,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE;QACnE,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;IACF,eAAe,CAAC,KAAK,EAAE,CAAA;IAEvB,OAAO,IAAI,OAAO,CAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpD,WAAW,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;aACtD,IAAI,CAAC,OAAO,CAAC;aACb,KAAK,CAAC,MAAM,CAAC;aACb,OAAO,CAAC,GAAG,EAAE;YACZ,eAAe,CAAC,kBAAkB,EAAE,CAAA;QACtC,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAElB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC1B,eAAe,CAAC,kBAAkB,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;YACtD,eAAe,CAAC,kBAAkB,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -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":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,cAAc,EAAE,sBAAsB,EAAC,MAAM,eAAe,CAAA;AACpE,OAAO,EAAC,wBAAwB,EAAC,MAAM,eAAe,CAAA;AACtD,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAGL,SAAS,GAGV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAC,yBAAyB,EAAC,MAAM,gBAAgB,CAAA;AAExD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;
|
|
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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"}
|
|
@@ -5,16 +5,7 @@ import { DEV_SERVER_PORT, DEV_SERVER_HOST, } from '../../../constants/dev-server
|
|
|
5
5
|
import { createViteConfig } from '../../../utils/vite-config.js';
|
|
6
6
|
export { createViteConfig } from '../../../utils/vite-config.js';
|
|
7
7
|
export const createWebServer = async () => {
|
|
8
|
-
const vite = await createServer({
|
|
9
|
-
...createViteConfig(),
|
|
10
|
-
server: {
|
|
11
|
-
host: DEV_SERVER_HOST,
|
|
12
|
-
port: DEV_SERVER_PORT,
|
|
13
|
-
strictPort: true,
|
|
14
|
-
/* @ts-ignore-next-line */
|
|
15
|
-
allowedHosts: ['.ngrok.app', '.ngrok-free.app'],
|
|
16
|
-
},
|
|
17
|
-
});
|
|
8
|
+
const vite = await createServer(createViteConfig({ mode: 'development' }));
|
|
18
9
|
await vite.listen(DEV_SERVER_PORT);
|
|
19
10
|
outputDebug(`Dev server is running on http://${DEV_SERVER_HOST}:${DEV_SERVER_PORT}`);
|
|
20
11
|
return vite;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-server.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/web-server.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"web-server.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/web-server.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAC,YAAY,EAAC,MAAM,MAAM,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EACL,eAAe,EACf,eAAe,GAChB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AAE9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC,CAAC,CAAA;IAExE,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAElC,WAAW,CACT,mCAAmC,eAAe,IAAI,eAAe,EAAE,CACxE,CAAA;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -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'
|
|
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(
|
|
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('');
|
|
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;
|
|
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()
|
package/build/index.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -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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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { type Plugin } from 'vite';
|
|
2
|
-
export declare const createViteConfig: (
|
|
1
|
+
import { ESBuildOptions, ServerOptions, type Plugin } from 'vite';
|
|
2
|
+
export declare const createViteConfig: ({ mode, allowedExternalPaths, }: {
|
|
3
|
+
mode: 'development' | 'production';
|
|
4
|
+
allowedExternalPaths?: string[] | undefined;
|
|
5
|
+
}) => {
|
|
3
6
|
root: string;
|
|
4
7
|
publicDir: false;
|
|
5
8
|
plugins: (Plugin<any> | Plugin<any>[])[];
|
|
@@ -11,4 +14,6 @@ export declare const createViteConfig: () => {
|
|
|
11
14
|
outDir: string;
|
|
12
15
|
assetsInlineLimit: number;
|
|
13
16
|
};
|
|
17
|
+
esbuild: ESBuildOptions | undefined;
|
|
18
|
+
server: ServerOptions | undefined;
|
|
14
19
|
};
|
|
@@ -4,6 +4,7 @@ import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
|
4
4
|
import react from '@vitejs/plugin-react';
|
|
5
5
|
import tailwindcss from '@tailwindcss/vite';
|
|
6
6
|
import { ALLOWED_EXTENSIONS, ALLOWED_FILES, } from '../constants/allowed-extensions.js';
|
|
7
|
+
import { DEV_SERVER_HOST, DEV_SERVER_PORT } from '../constants/dev-server.js';
|
|
7
8
|
const stripQuery = (id) => id.split(/[?#]/, 1)[0];
|
|
8
9
|
const getExtension = (id) => path.extname(stripQuery(id)).slice(1).toLowerCase();
|
|
9
10
|
const isAllowedExtension = (id) => {
|
|
@@ -13,7 +14,7 @@ const isAllowedExtension = (id) => {
|
|
|
13
14
|
return ALLOWED_EXTENSIONS.has(ext);
|
|
14
15
|
};
|
|
15
16
|
const isPathWithinRoot = (filePath, root) => filePath === root || filePath.startsWith(`${root}/`);
|
|
16
|
-
const restrictImportsPlugin = () => {
|
|
17
|
+
const restrictImportsPlugin = (additionalAllowedPaths = []) => {
|
|
17
18
|
const allowedExtensions = Array.from(ALLOWED_EXTENSIONS).sort();
|
|
18
19
|
const allowedList = allowedExtensions.join(', ');
|
|
19
20
|
let rootDirFsPath = process.cwd();
|
|
@@ -95,7 +96,11 @@ const restrictImportsPlugin = () => {
|
|
|
95
96
|
isDevMode = config.command === 'serve';
|
|
96
97
|
const srcDir = normalizePath(path.resolve(rootDirFsPath, 'src'));
|
|
97
98
|
const nodeModulesDir = normalizePath(path.resolve(rootDirFsPath, 'node_modules'));
|
|
98
|
-
allowedImportRoots = [
|
|
99
|
+
allowedImportRoots = [
|
|
100
|
+
srcDir,
|
|
101
|
+
nodeModulesDir,
|
|
102
|
+
...additionalAllowedPaths.map(p => normalizePath(path.resolve(p))),
|
|
103
|
+
];
|
|
99
104
|
},
|
|
100
105
|
generateBundle(_options, bundle) {
|
|
101
106
|
for (const [fileName, output] of Object.entries(bundle)) {
|
|
@@ -111,17 +116,34 @@ const restrictImportsPlugin = () => {
|
|
|
111
116
|
},
|
|
112
117
|
};
|
|
113
118
|
};
|
|
114
|
-
export const createViteConfig = () =>
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
119
|
+
export const createViteConfig = ({ mode, allowedExternalPaths = [], }) => {
|
|
120
|
+
const esbuildOptions = mode === 'production'
|
|
121
|
+
? {
|
|
122
|
+
drop: ['console', 'debugger'],
|
|
123
|
+
}
|
|
124
|
+
: undefined;
|
|
125
|
+
const serverOptions = mode === 'development'
|
|
126
|
+
? {
|
|
127
|
+
host: DEV_SERVER_HOST,
|
|
128
|
+
port: DEV_SERVER_PORT,
|
|
129
|
+
strictPort: true,
|
|
130
|
+
allowedHosts: ['.ngrok.app', '.ngrok-free.app'],
|
|
131
|
+
}
|
|
132
|
+
: undefined;
|
|
133
|
+
return {
|
|
134
|
+
root: process.cwd(),
|
|
135
|
+
publicDir: false,
|
|
136
|
+
plugins: [restrictImportsPlugin(allowedExternalPaths), react(), tailwindcss()],
|
|
137
|
+
assetsInclude: ['**/*.glb', '**/*.gltf'],
|
|
138
|
+
optimizeDeps: {
|
|
139
|
+
include: ['@shopify/shop-minis-react'],
|
|
140
|
+
},
|
|
141
|
+
build: {
|
|
142
|
+
outDir: '.minis-cache/build',
|
|
143
|
+
assetsInlineLimit: 0,
|
|
144
|
+
},
|
|
145
|
+
esbuild: esbuildOptions,
|
|
146
|
+
server: serverOptions,
|
|
147
|
+
};
|
|
148
|
+
};
|
|
127
149
|
//# sourceMappingURL=vite-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../src/utils/vite-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"vite-config.js","sourceRoot":"","sources":["../../src/utils/vite-config.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.
|
|
7
|
+
"version": "0.0.225",
|
|
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.
|
|
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.
|
|
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",
|