@shopify/shop-minis-cli 0.0.42 → 0.0.44
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/cancel-submission/cancel-submission.js +3 -2
- package/build/commands/cancel-submission/cancel-submission.js.map +1 -1
- package/build/commands/check-submission/index.js +39 -6
- package/build/commands/check-submission/index.js.map +1 -1
- package/build/commands/check-submission/types.d.ts +1 -1
- package/build/commands/config.d.ts +5 -0
- package/build/commands/config.js +20 -0
- package/build/commands/config.js.map +1 -1
- package/build/commands/data/cancel-submission.d.ts +22 -0
- package/build/commands/data/cancel-submission.js +26 -0
- package/build/commands/data/cancel-submission.js.map +1 -0
- package/build/commands/data/client.d.ts +7 -0
- package/build/commands/data/client.js +8 -0
- package/build/commands/data/client.js.map +1 -0
- package/build/commands/data/create-submission.d.ts +20 -0
- package/build/commands/data/create-submission.js +27 -0
- package/build/commands/data/create-submission.js.map +1 -0
- package/build/commands/data/create-upload.d.ts +21 -0
- package/build/commands/data/create-upload.js +40 -0
- package/build/commands/data/create-upload.js.map +1 -0
- package/build/commands/data/get-submissions.d.ts +27 -0
- package/build/commands/data/get-submissions.js +33 -0
- package/build/commands/data/get-submissions.js.map +1 -0
- package/build/commands/dev/index.d.ts +2 -0
- package/build/commands/dev/index.js +8 -2
- package/build/commands/dev/index.js.map +1 -1
- package/build/commands/dev/utils/android.d.ts +6 -4
- package/build/commands/dev/utils/android.js +29 -29
- package/build/commands/dev/utils/android.js.map +1 -1
- package/build/commands/dev/utils/binaries.d.ts +2 -59
- package/build/commands/dev/utils/binaries.js +7 -84
- package/build/commands/dev/utils/binaries.js.map +1 -1
- package/build/commands/dev/utils/build-type.d.ts +2 -0
- package/build/commands/dev/utils/build-type.js +14 -0
- package/build/commands/dev/utils/build-type.js.map +1 -0
- package/build/commands/dev/utils/deeplink.d.ts +2 -2
- package/build/commands/dev/utils/deeplink.js +5 -5
- package/build/commands/dev/utils/deeplink.js.map +1 -1
- package/build/commands/dev/utils/interactive-terminal.d.ts +3 -1
- package/build/commands/dev/utils/interactive-terminal.js +37 -78
- package/build/commands/dev/utils/interactive-terminal.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-server.d.ts +1 -1
- package/build/commands/dev/utils/metro/metro-server.js +1 -1
- package/build/commands/dev/utils/metro/metro-server.js.map +1 -1
- package/build/commands/dev/utils/network.d.ts +8 -8
- package/build/commands/dev/utils/network.js +69 -23
- package/build/commands/dev/utils/network.js.map +1 -1
- package/build/commands/dev/utils/patch-package.d.ts +4 -0
- package/build/commands/dev/utils/patch-package.js +72 -0
- package/build/commands/dev/utils/patch-package.js.map +1 -0
- package/build/commands/dev/utils/platform.d.ts +18 -0
- package/build/commands/dev/utils/platform.js +41 -0
- package/build/commands/dev/utils/platform.js.map +1 -0
- package/build/commands/dev/utils/simulator.d.ts +5 -2
- package/build/commands/dev/utils/simulator.js +27 -13
- package/build/commands/dev/utils/simulator.js.map +1 -1
- package/build/commands/dev/utils/start-app.d.ts +23 -0
- package/build/commands/dev/utils/start-app.js +85 -0
- package/build/commands/dev/utils/start-app.js.map +1 -0
- package/build/commands/dev/utils/types.d.ts +24 -1
- package/build/commands/dev/utils/types.js +6 -1
- package/build/commands/dev/utils/types.js.map +1 -1
- package/build/commands/dev/utils/version.d.ts +64 -0
- package/build/commands/dev/utils/version.js +101 -0
- package/build/commands/dev/utils/version.js.map +1 -0
- package/build/commands/submit/errors.d.ts +1 -1
- package/build/commands/submit/errors.js +1 -1
- package/build/commands/submit/errors.js.map +1 -1
- package/build/commands/submit/submit.js +2 -1
- package/build/commands/submit/submit.js.map +1 -1
- package/build/commands/submit/tasks.d.ts +0 -1
- package/build/commands/submit/tasks.js +4 -48
- package/build/commands/submit/tasks.js.map +1 -1
- package/build/commands/types/autogenerated/shop-minis-admin-api/gql.d.ts +9 -9
- package/build/commands/types/autogenerated/shop-minis-admin-api/gql.js +2 -2
- package/build/commands/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -1
- package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.d.ts +301 -65
- package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.js +155 -97
- package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -1
- package/build/commands/utils/common-tasks.d.ts +1 -0
- package/build/commands/utils/common-tasks.js +49 -0
- package/build/commands/utils/common-tasks.js.map +1 -0
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/jest.config.ts +2 -2
- package/package.json +3 -1
- package/templates/__template_common/.eslintrc.js +29 -0
- package/templates/__template_common/index.tsx +0 -2
- package/templates/__template_common/package.json +4 -33
- package/templates/__template_common/patches/react-native+0.71.4.patch +78 -0
- package/templates/__template_common/src/manifest.json +1 -27
- package/templates/__template_hello_world/src/components/ComponentLink.ts +4 -0
- package/templates/__template_hello_world/src/components/ComponentListItem.tsx +1 -0
- package/templates/__template_hello_world/src/components/FeaturedComponents.tsx +2 -0
- package/templates/__template_hello_world/src/components/quiz/QuizSlide.tsx +6 -3
- package/templates/__template_hello_world/src/components/quiz/TextFieldSlide.tsx +88 -7
- package/templates/__template_hello_world/src/routes.tsx +6 -0
- package/templates/__template_hello_world/src/screens/AccordionScreen.tsx +73 -0
- package/templates/__template_hello_world/src/screens/InputScreen.tsx +4 -10
- package/templates/__template_hello_world/src/types.ts +1 -0
- package/templates/__template_hello_world/src/utils/mockQuizData.ts +19 -0
- package/build/commands/utils/graphql.d.ts +0 -92
- package/build/commands/utils/graphql.js +0 -123
- package/build/commands/utils/graphql.js.map +0 -1
- package/templates/__template_common/.eslintrc.json +0 -15
- package/templates/__template_common/patches/react-native+0.68.5.patch +0 -173
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/network.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
4
|
+
import fs from 'fs-extra';
|
|
5
|
+
const { applyPatch: patchPackageApplyPatch } = createRequire(import.meta.url)('patch-package/dist/applyPatches');
|
|
6
|
+
const { getPackageDetailsFromPatchFilename } = createRequire(import.meta.url)('patch-package/dist/PackageDetails');
|
|
7
|
+
// We use an empty file to know if a patch was already applied or not. i.e.
|
|
8
|
+
// if node_modules/react-native/.patched-by-minis-cli exists, we assume that a patch was already applied
|
|
9
|
+
// if node_modules/react-native/.patched-by-minis-cli does not exist, we assume that a patch is not applied yet
|
|
10
|
+
const PATCHED_MARK_FILE = '.patched-by-minis-cli';
|
|
11
|
+
const nodeModulesPath = path.join(process.cwd(), 'node_modules');
|
|
12
|
+
const patchesDirectoryPath = path.join(nodeModulesPath, '@shopify', 'shop-minis-runtime', 'patches');
|
|
13
|
+
function getPatchFiles() {
|
|
14
|
+
try {
|
|
15
|
+
return fs.readdirSync(patchesDirectoryPath);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
// older versions of shop-minis-runtime (< 0.0.5) do not have the patches folder.
|
|
19
|
+
outputDebug('Patches folder does not exist. Please update @shopify/shop-minis-runtime to ^0.0.5');
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Applies patches to Minis dependencies (only if they have not been applied yet)
|
|
25
|
+
*/
|
|
26
|
+
export function maybeApplyPatches() {
|
|
27
|
+
outputDebug('Applying dependency patches...');
|
|
28
|
+
const patches = getPatchFiles();
|
|
29
|
+
for (const patch of patches) {
|
|
30
|
+
if (isPatchApplied(patch)) {
|
|
31
|
+
outputDebug(`${patch} is already applied`);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
outputDebug(`Applying patch ${patch}`);
|
|
35
|
+
const applied = applyPatch(patch);
|
|
36
|
+
if (applied) {
|
|
37
|
+
markPatchAsApplied(patch);
|
|
38
|
+
outputDebug(`Patch ${patch} applied`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
outputDebug(`Failed to apply patch ${patch}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function isPatchApplied(patch) {
|
|
46
|
+
const dependencyName = getDependencyNameForPatch(patch);
|
|
47
|
+
return fs.existsSync(path.join(nodeModulesPath, dependencyName, PATCHED_MARK_FILE));
|
|
48
|
+
}
|
|
49
|
+
function applyPatch(patch) {
|
|
50
|
+
const patchFilePath = path.join(patchesDirectoryPath, patch);
|
|
51
|
+
return patchPackageApplyPatch({
|
|
52
|
+
patchFilePath,
|
|
53
|
+
reverse: false,
|
|
54
|
+
patchDir: patchesDirectoryPath,
|
|
55
|
+
packageDetails: getPackageDetailsFromPatchFilename(patch),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function markPatchAsApplied(patch) {
|
|
59
|
+
const dependencyName = getDependencyNameForPatch(patch);
|
|
60
|
+
fs.createFileSync(path.join(nodeModulesPath, dependencyName, PATCHED_MARK_FILE));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Given a patch file name, returns the name of the actual dependency that's being patched.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* getDependencyNameForPatch('react-native+0.68.5.patch')
|
|
67
|
+
* // returns 'react-native'
|
|
68
|
+
*/
|
|
69
|
+
function getDependencyNameForPatch(patch) {
|
|
70
|
+
return patch.split('+')[0];
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=patch-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-package.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/patch-package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,MAAM,UAAU,CAAA;AAEzB,MAAM,EAAC,UAAU,EAAE,sBAAsB,EAAC,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACzE,iCAAiC,CAClC,CAAA;AACD,MAAM,EAAC,kCAAkC,EAAC,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACzE,mCAAmC,CACpC,CAAA;AAED,2EAA2E;AAC3E,wGAAwG;AACxG,+GAA+G;AAC/G,MAAM,iBAAiB,GAAG,uBAAuB,CAAA;AAEjD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAA;AAChE,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CACpC,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,SAAS,CACV,CAAA;AAED,SAAS,aAAa;IACpB,IAAI;QACF,OAAO,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;KAC5C;IAAC,OAAO,GAAG,EAAE;QACZ,iFAAiF;QACjF,WAAW,CACT,oFAAoF,CACrF,CAAA;QACD,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,WAAW,CAAC,gCAAgC,CAAC,CAAA;IAE7C,MAAM,OAAO,GAAG,aAAa,EAAE,CAAA;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;YACzB,WAAW,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAA;YAC1C,SAAQ;SACT;QAED,WAAW,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAEjC,IAAI,OAAO,EAAE;YACX,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACzB,WAAW,CAAC,SAAS,KAAK,UAAU,CAAC,CAAA;SACtC;aAAM;YACL,WAAW,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAA;SAC9C;KACF;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,cAAc,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACvD,OAAO,EAAE,CAAC,UAAU,CAClB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAC9D,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;IAC5D,OAAO,sBAAsB,CAAC;QAC5B,aAAa;QACb,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,oBAAoB;QAC9B,cAAc,EAAE,kCAAkC,CAAC,KAAK,CAAC;KAC1D,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,cAAc,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACvD,EAAE,CAAC,cAAc,CACf,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAC9D,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare enum Platform {
|
|
2
|
+
IOS = "ios",
|
|
3
|
+
Android = "android"
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Returns the platform for a given file extension.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getPlatformForBinaryFileExtension(extension: string): Platform;
|
|
9
|
+
/**
|
|
10
|
+
* Returns the platform config for a given platform.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getPlatformConfig(platform: Platform | PlatformConfig): Readonly<PlatformConfig>;
|
|
13
|
+
interface PlatformConfig {
|
|
14
|
+
platform: Platform;
|
|
15
|
+
name: string;
|
|
16
|
+
extension: string;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export var Platform;
|
|
2
|
+
(function (Platform) {
|
|
3
|
+
Platform["IOS"] = "ios";
|
|
4
|
+
Platform["Android"] = "android";
|
|
5
|
+
})(Platform || (Platform = {}));
|
|
6
|
+
/**
|
|
7
|
+
* Returns the platform for a given file extension.
|
|
8
|
+
*/
|
|
9
|
+
export function getPlatformForBinaryFileExtension(extension) {
|
|
10
|
+
const platform = Object.values(Platform).find(aPlatform => platformConfigs[aPlatform].extension === extension);
|
|
11
|
+
if (platform == null) {
|
|
12
|
+
throw new Error(`Invalid extension: ${extension}`);
|
|
13
|
+
}
|
|
14
|
+
return platform;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns the platform config for a given platform.
|
|
18
|
+
*/
|
|
19
|
+
export function getPlatformConfig(platform) {
|
|
20
|
+
if (typeof platform === 'object') {
|
|
21
|
+
return platform;
|
|
22
|
+
}
|
|
23
|
+
const config = platformConfigs[platform];
|
|
24
|
+
if (config == null) {
|
|
25
|
+
throw new Error(`Invalid platform: ${platform}`);
|
|
26
|
+
}
|
|
27
|
+
return Object.freeze(config);
|
|
28
|
+
}
|
|
29
|
+
const platformConfigs = {
|
|
30
|
+
ios: {
|
|
31
|
+
platform: Platform.IOS,
|
|
32
|
+
name: 'iOS',
|
|
33
|
+
extension: 'app.zip',
|
|
34
|
+
},
|
|
35
|
+
android: {
|
|
36
|
+
platform: Platform.Android,
|
|
37
|
+
name: 'Android',
|
|
38
|
+
extension: 'apk',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/platform.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,+BAAmB,CAAA;AACrB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,SAAiB;IACjE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3C,SAAS,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK,SAAS,CAChE,CAAA;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;KACnD;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAmC;IACnE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,QAAQ,CAAA;KAChB;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAA;IAExC,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;KACjD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAQD,MAAM,eAAe,GAAqC;IACxD,GAAG,EAAE;QACH,QAAQ,EAAE,QAAQ,CAAC,GAAG;QACtB,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,SAAS;KACrB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,KAAK;KACjB;CACF,CAAA"}
|
|
@@ -12,8 +12,11 @@ interface EnhancedSimCtlListDevice extends SimCtlListDevice {
|
|
|
12
12
|
osVersion: string;
|
|
13
13
|
}
|
|
14
14
|
export declare function promptForSimulator(): Promise<EnhancedSimCtlListDevice | null | undefined>;
|
|
15
|
-
export declare function getInstalledShopVersion(udid: string): Promise<
|
|
15
|
+
export declare function getInstalledShopVersion(udid: string): Promise<{
|
|
16
|
+
version: string;
|
|
17
|
+
build: string;
|
|
18
|
+
} | null>;
|
|
16
19
|
export declare function bootSimulator(udid: string): Promise<void>;
|
|
17
|
-
export declare function installShopInSimulator(udid: string,
|
|
20
|
+
export declare function installShopInSimulator(udid: string, fileName: string): Promise<void>;
|
|
18
21
|
export declare function deeplinkToSimulator(udid: string, deeplink: string): Promise<void>;
|
|
19
22
|
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { rm, stat } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
2
3
|
import chalk from 'chalk';
|
|
4
|
+
import _ from 'lodash';
|
|
3
5
|
import prompts from 'prompts';
|
|
4
|
-
import { execAsync } from '../../utils/exec-async-child-process.js';
|
|
5
6
|
import { PATHS } from '../../config.js';
|
|
6
|
-
import {
|
|
7
|
+
import { execAsync } from '../../utils/exec-async-child-process.js';
|
|
7
8
|
async function getSelectableSimulators() {
|
|
8
9
|
const { stdout } = await execAsync('xcrun simctl list devices --json');
|
|
9
10
|
const simctlOutput = JSON.parse(stdout.join(''));
|
|
@@ -46,9 +47,15 @@ export async function promptForSimulator() {
|
|
|
46
47
|
}
|
|
47
48
|
export async function getInstalledShopVersion(udid) {
|
|
48
49
|
try {
|
|
49
|
-
const { stdout } = await execAsync(`defaults read $(xcrun simctl get_app_container ${udid} com.shopifyinternal.arrive)/Info CFBundleShortVersionString`);
|
|
50
|
-
const
|
|
51
|
-
|
|
50
|
+
const { stdout: CFBundleShortVersionString } = await execAsync(`defaults read $(xcrun simctl get_app_container ${udid} com.shopifyinternal.arrive)/Info CFBundleShortVersionString`);
|
|
51
|
+
const { stdout: CFBundleVersion } = await execAsync(`defaults read $(xcrun simctl get_app_container ${udid} com.shopifyinternal.arrive)/Info CFBundleVersion`);
|
|
52
|
+
const installedVersion = CFBundleShortVersionString[0]; // 2.86.0-snapshot+1674205229
|
|
53
|
+
const build = CFBundleVersion[0]; // 1674205229
|
|
54
|
+
const version = installedVersion.split('-')[0];
|
|
55
|
+
return {
|
|
56
|
+
version,
|
|
57
|
+
build,
|
|
58
|
+
};
|
|
52
59
|
}
|
|
53
60
|
catch {
|
|
54
61
|
return null;
|
|
@@ -65,15 +72,22 @@ export async function bootSimulator(udid) {
|
|
|
65
72
|
}
|
|
66
73
|
await execAsync(`open -a Simulator.app --args -CurrentDeviceUDID ${udid}`);
|
|
67
74
|
}
|
|
68
|
-
export async function installShopInSimulator(udid,
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
export async function installShopInSimulator(udid, fileName) {
|
|
76
|
+
const inputPath = join(PATHS.CACHE_DIR, fileName);
|
|
77
|
+
const outputPath = join(PATHS.CACHE_DIR, 'Shop.app');
|
|
78
|
+
// remove any existing Shop.app
|
|
79
|
+
try {
|
|
80
|
+
await stat(outputPath);
|
|
81
|
+
await rm(outputPath, { recursive: true });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// file doesn't exist, so we can move on
|
|
85
|
+
}
|
|
86
|
+
await execAsync(`unzip -o '${inputPath}' -d '${outputPath}' -x '__MACOSX/*'`);
|
|
87
|
+
await execAsync(`xcrun simctl install ${udid} ${outputPath}`);
|
|
74
88
|
}
|
|
75
89
|
export async function deeplinkToSimulator(udid, deeplink) {
|
|
76
90
|
// TODO: deeplink doesn't seem to be working in iphone SE
|
|
77
|
-
await execAsync(`xcrun simctl openurl ${udid} ${deeplink}`);
|
|
91
|
+
await execAsync(`xcrun simctl openurl ${udid} "${deeplink}"`);
|
|
78
92
|
}
|
|
79
93
|
//# sourceMappingURL=simulator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/simulator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/simulator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { InteractiveTerminal } from './interactive-terminal.js';
|
|
2
|
+
import { Platform } from './platform.js';
|
|
3
|
+
import { BuildType, VersionAndBuild } from './types.js';
|
|
4
|
+
interface StartAppParameters {
|
|
5
|
+
deviceId: string;
|
|
6
|
+
platform: Platform;
|
|
7
|
+
deeplink: string;
|
|
8
|
+
type: BuildType;
|
|
9
|
+
}
|
|
10
|
+
export interface StartAppPlatformHooks {
|
|
11
|
+
getInstalledShopVersion: (deviceId: string) => Promise<VersionAndBuild | null>;
|
|
12
|
+
installShop: (deviceId: string, version: string) => Promise<void>;
|
|
13
|
+
openDeeplink: (deviceId: string, deeplink: string) => Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface StartAppLoadingLoggers {
|
|
16
|
+
onLoadingStart?: typeof InteractiveTerminal.prototype.loadingStart;
|
|
17
|
+
onLoadingEnd?: typeof InteractiveTerminal.prototype.loadingEnd;
|
|
18
|
+
onLoadingUpdate?: (message: string) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const startApp: (parameters: StartAppParameters, loadingLoggers?: StartAppLoadingLoggers) => Promise<void>;
|
|
21
|
+
export declare const startAppWithOptions: ({ deviceId, platform, deeplink, type }: StartAppParameters, { getInstalledShopVersion, installShop, openDeeplink }: StartAppPlatformHooks, { onLoadingStart, onLoadingEnd, onLoadingUpdate }?: StartAppLoadingLoggers) => Promise<void>;
|
|
22
|
+
export declare const promptBinaryUpgrade: () => Promise<boolean>;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import prompts from 'prompts';
|
|
2
|
+
import { connectDevelopmentServer, deeplinkToEmulator, getInstalledShopVersion as getInstalledShopVersionAndroid, installShopInEmulator, } from './android.js';
|
|
3
|
+
import { downloadBinary, getLatestRemoteVersion } from './network.js';
|
|
4
|
+
import { Platform, getPlatformConfig } from './platform.js';
|
|
5
|
+
import { deeplinkToSimulator, getInstalledShopVersion as getInstalledShopVersionIOS, installShopInSimulator, } from './simulator.js';
|
|
6
|
+
import { metadataToBinaryFileName } from './version.js';
|
|
7
|
+
const StartAppHandlersIOS = {
|
|
8
|
+
getInstalledShopVersion: getInstalledShopVersionIOS,
|
|
9
|
+
installShop: installShopInSimulator,
|
|
10
|
+
openDeeplink: deeplinkToSimulator,
|
|
11
|
+
};
|
|
12
|
+
const StartAppHandlersAndroid = {
|
|
13
|
+
getInstalledShopVersion: getInstalledShopVersionAndroid,
|
|
14
|
+
installShop: installShopInEmulator,
|
|
15
|
+
openDeeplink: async (aDeviceId, deeplink) => {
|
|
16
|
+
await connectDevelopmentServer(aDeviceId);
|
|
17
|
+
await deeplinkToEmulator(aDeviceId, deeplink);
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const handlersForPlatform = (platform) => {
|
|
21
|
+
switch (platform) {
|
|
22
|
+
case Platform.IOS:
|
|
23
|
+
return StartAppHandlersIOS;
|
|
24
|
+
case Platform.Android:
|
|
25
|
+
return StartAppHandlersAndroid;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export const startApp = async (parameters, loadingLoggers = {}) => {
|
|
29
|
+
const handlers = handlersForPlatform(parameters.platform);
|
|
30
|
+
if (handlers == null) {
|
|
31
|
+
throw new Error(`Unsupported platform: ${parameters.platform}`);
|
|
32
|
+
}
|
|
33
|
+
return startAppWithOptions(parameters, handlers, loadingLoggers);
|
|
34
|
+
};
|
|
35
|
+
export const startAppWithOptions = async ({ deviceId, platform, deeplink, type }, { getInstalledShopVersion, installShop, openDeeplink }, { onLoadingStart, onLoadingEnd, onLoadingUpdate } = {}) => {
|
|
36
|
+
const installedShopVersion = await getInstalledShopVersion(deviceId);
|
|
37
|
+
const latestVersion = await getLatestRemoteVersion(platform, type);
|
|
38
|
+
const platformConfig = getPlatformConfig(platform);
|
|
39
|
+
if (latestVersion == null) {
|
|
40
|
+
onLoadingEnd?.('fail', `No binaries for ${platformConfig.name} can be found on the server!`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const needsUpdate = installedShopVersion == null;
|
|
44
|
+
let wantsUpdate = false;
|
|
45
|
+
if (installedShopVersion) {
|
|
46
|
+
onLoadingEnd?.();
|
|
47
|
+
// the installed version does not tell us which build type it is, but we can fairly
|
|
48
|
+
// safely assume that version + build number is unique across all build types, so we
|
|
49
|
+
// we will just compare the version + build number
|
|
50
|
+
const isLatestVersionInstalled = installedShopVersion.version === latestVersion.version &&
|
|
51
|
+
installedShopVersion.build === latestVersion.build;
|
|
52
|
+
// we don't have the latest binary installed, so prompt to update
|
|
53
|
+
if (!isLatestVersionInstalled) {
|
|
54
|
+
wantsUpdate = await promptBinaryUpgrade();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (needsUpdate || wantsUpdate) {
|
|
58
|
+
onLoadingStart?.('Downloading Shop (0%)');
|
|
59
|
+
const downloadedVersion = await downloadBinary(latestVersion, {
|
|
60
|
+
onProgress: progress => {
|
|
61
|
+
onLoadingUpdate?.(`Downloading Shop (${progress}%)`);
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
onLoadingStart?.(
|
|
65
|
+
// show a longer message for new installs with instructions to skip onboarding
|
|
66
|
+
installedShopVersion == null
|
|
67
|
+
? 'Installing Shop\n ↪ You can skip onboarding, or log in with your existing Shop account (optional).'
|
|
68
|
+
: 'Installing Shop');
|
|
69
|
+
await installShop(deviceId, metadataToBinaryFileName(downloadedVersion));
|
|
70
|
+
}
|
|
71
|
+
onLoadingStart?.('Opening Shop');
|
|
72
|
+
await openDeeplink(deviceId, deeplink);
|
|
73
|
+
onLoadingEnd?.();
|
|
74
|
+
};
|
|
75
|
+
export const promptBinaryUpgrade = async () => {
|
|
76
|
+
// prompt to download the latest version
|
|
77
|
+
const { wantsUpdate } = await prompts({
|
|
78
|
+
type: 'confirm',
|
|
79
|
+
initial: true,
|
|
80
|
+
name: 'wantsUpdate',
|
|
81
|
+
message: "There's a new version of Shop available. Do you want to upgrade?",
|
|
82
|
+
});
|
|
83
|
+
return Boolean(wantsUpdate);
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=start-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-app.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/start-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
|
|
1
|
+
import { Platform } from './platform.js';
|
|
2
|
+
export interface VersionAndBuild {
|
|
3
|
+
version: string;
|
|
4
|
+
build: string;
|
|
5
|
+
}
|
|
6
|
+
export declare enum BuildType {
|
|
7
|
+
Release = "release",
|
|
8
|
+
Nightly = "nightly",
|
|
9
|
+
Snapshot = "snapshot"
|
|
10
|
+
}
|
|
11
|
+
export interface BinaryMetadata {
|
|
12
|
+
version: string;
|
|
13
|
+
build: string;
|
|
14
|
+
type: BuildType;
|
|
15
|
+
platform: Platform;
|
|
16
|
+
}
|
|
17
|
+
export interface GetFilesApiResponse {
|
|
18
|
+
kind: 'storage#objects';
|
|
19
|
+
prefixes?: string[];
|
|
20
|
+
items?: {
|
|
21
|
+
kind: 'storage#object';
|
|
22
|
+
name: string;
|
|
23
|
+
}[];
|
|
24
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;AACvB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Platform } from './platform.js';
|
|
2
|
+
import { BinaryMetadata, BuildType } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* @example
|
|
5
|
+
* filenames [
|
|
6
|
+
* "2.76.0+3.release.apk",
|
|
7
|
+
* "2.76.0+3.release.zip",
|
|
8
|
+
* "2.77.0+5.release.apk",
|
|
9
|
+
* "2.77.0+3.release.zip",
|
|
10
|
+
* "2.77.0+10.release.apk",
|
|
11
|
+
* "2.77.0+10.release.zip",
|
|
12
|
+
* ]
|
|
13
|
+
* returns { version: "2.77.0", build: "10", type: "release", platform: "ios" }
|
|
14
|
+
*/
|
|
15
|
+
export declare function getLatestVersionFromFilesList(filenames: string[], platform: Platform, type: BuildType): BinaryMetadata | null;
|
|
16
|
+
/**
|
|
17
|
+
* @example
|
|
18
|
+
* platform android
|
|
19
|
+
* version 2.76.0
|
|
20
|
+
* build 24
|
|
21
|
+
* type release
|
|
22
|
+
* returns "2.76.0+24.release.apk"
|
|
23
|
+
*
|
|
24
|
+
* platform ios
|
|
25
|
+
* version 2.55.0
|
|
26
|
+
* build 4
|
|
27
|
+
* type nightly
|
|
28
|
+
* returns "2.55.0+4.nightly.zip"
|
|
29
|
+
*/
|
|
30
|
+
export declare function metadataToBinaryFileName(metadata: BinaryMetadata): string;
|
|
31
|
+
/**
|
|
32
|
+
* @example
|
|
33
|
+
* binaryFileName "2.76.0+123.snapshot.apk"
|
|
34
|
+
* returns true
|
|
35
|
+
*
|
|
36
|
+
* binaryFileName "word.exe"
|
|
37
|
+
* returns false
|
|
38
|
+
*/
|
|
39
|
+
export declare function isValidBinaryFileName(binaryFileName: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* @example
|
|
42
|
+
* binaryFileName "2.76.0+123.snapshot.apk"
|
|
43
|
+
* returns { version: "2.16.0", build: "123", type: "snapshot", platform: "android" }
|
|
44
|
+
*
|
|
45
|
+
* binaryFileName "2.16.0+3.zip"
|
|
46
|
+
* returns { version: "2.16.0", build "3", platform: "ios" }
|
|
47
|
+
*/
|
|
48
|
+
export declare function binaryFileNameToMetadata(binaryFileName: string): Readonly<{
|
|
49
|
+
version: string;
|
|
50
|
+
build: string;
|
|
51
|
+
type: BuildType;
|
|
52
|
+
platform: Platform;
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* @example
|
|
56
|
+
*
|
|
57
|
+
* version "2.76.0"
|
|
58
|
+
* build "3"
|
|
59
|
+
* returns "2.76.0+3"
|
|
60
|
+
*/
|
|
61
|
+
export declare function convertToSemver({ version, build, }: {
|
|
62
|
+
version: string;
|
|
63
|
+
build: string;
|
|
64
|
+
}): string;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import { valid as isValidSemver, compareBuild as semverCompare } from 'semver';
|
|
3
|
+
import escapeStringRegexp from 'escape-string-regexp';
|
|
4
|
+
import { getBuildTypeForBinaryBuildType } from './build-type.js';
|
|
5
|
+
import { Platform, getPlatformConfig, getPlatformForBinaryFileExtension, } from './platform.js';
|
|
6
|
+
import { BuildType } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* @example
|
|
9
|
+
* filenames [
|
|
10
|
+
* "2.76.0+3.release.apk",
|
|
11
|
+
* "2.76.0+3.release.zip",
|
|
12
|
+
* "2.77.0+5.release.apk",
|
|
13
|
+
* "2.77.0+3.release.zip",
|
|
14
|
+
* "2.77.0+10.release.apk",
|
|
15
|
+
* "2.77.0+10.release.zip",
|
|
16
|
+
* ]
|
|
17
|
+
* returns { version: "2.77.0", build: "10", type: "release", platform: "ios" }
|
|
18
|
+
*/
|
|
19
|
+
export function getLatestVersionFromFilesList(filenames, platform, type) {
|
|
20
|
+
const localVersions = _.uniq(filenames
|
|
21
|
+
.filter(isValidBinaryFileName)
|
|
22
|
+
.map(binaryFileNameToMetadata)
|
|
23
|
+
.filter(metadata => isValidSemver(convertToSemver(metadata)))
|
|
24
|
+
.filter(metadata => metadata.platform === platform)
|
|
25
|
+
.filter(metadata => metadata.type === type)).sort((lhs, rhs) => semverCompare(convertToSemver(lhs), convertToSemver(rhs)));
|
|
26
|
+
return localVersions.slice(-1)[0] ?? null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
* platform android
|
|
31
|
+
* version 2.76.0
|
|
32
|
+
* build 24
|
|
33
|
+
* type release
|
|
34
|
+
* returns "2.76.0+24.release.apk"
|
|
35
|
+
*
|
|
36
|
+
* platform ios
|
|
37
|
+
* version 2.55.0
|
|
38
|
+
* build 4
|
|
39
|
+
* type nightly
|
|
40
|
+
* returns "2.55.0+4.nightly.zip"
|
|
41
|
+
*/
|
|
42
|
+
export function metadataToBinaryFileName(metadata) {
|
|
43
|
+
return `${metadata.version}+${metadata.build}.${metadata.type}.${getPlatformConfig(metadata.platform).extension}`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @example
|
|
47
|
+
* binaryFileName "2.76.0+123.snapshot.apk"
|
|
48
|
+
* returns true
|
|
49
|
+
*
|
|
50
|
+
* binaryFileName "word.exe"
|
|
51
|
+
* returns false
|
|
52
|
+
*/
|
|
53
|
+
export function isValidBinaryFileName(binaryFileName) {
|
|
54
|
+
try {
|
|
55
|
+
binaryFileNameToMetadata(binaryFileName);
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @example
|
|
64
|
+
* binaryFileName "2.76.0+123.snapshot.apk"
|
|
65
|
+
* returns { version: "2.16.0", build: "123", type: "snapshot", platform: "android" }
|
|
66
|
+
*
|
|
67
|
+
* binaryFileName "2.16.0+3.zip"
|
|
68
|
+
* returns { version: "2.16.0", build "3", platform: "ios" }
|
|
69
|
+
*/
|
|
70
|
+
export function binaryFileNameToMetadata(binaryFileName) {
|
|
71
|
+
const allBuildTypes = Object.values(BuildType)
|
|
72
|
+
.map(escapeStringRegexp)
|
|
73
|
+
.join('|');
|
|
74
|
+
const allExtensions = Object.values(Platform)
|
|
75
|
+
.map(platform => getPlatformConfig(platform).extension)
|
|
76
|
+
.map(escapeStringRegexp)
|
|
77
|
+
.join('|');
|
|
78
|
+
const regexPattern = `(?<version>\\d+\\.\\d+\\.\\d+)(\\+(?<build>\\d+))\\.(?<type>${allBuildTypes})\\.(?<extension>${allExtensions})`;
|
|
79
|
+
const matches = binaryFileName.match(regexPattern);
|
|
80
|
+
if (!matches) {
|
|
81
|
+
throw new Error(`Invalid file name: ${binaryFileName}`);
|
|
82
|
+
}
|
|
83
|
+
const { version, build, type, extension } = matches.groups;
|
|
84
|
+
return Object.freeze({
|
|
85
|
+
version,
|
|
86
|
+
build,
|
|
87
|
+
type: getBuildTypeForBinaryBuildType(type),
|
|
88
|
+
platform: getPlatformForBinaryFileExtension(extension),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* @example
|
|
93
|
+
*
|
|
94
|
+
* version "2.76.0"
|
|
95
|
+
* build "3"
|
|
96
|
+
* returns "2.76.0+3"
|
|
97
|
+
*/
|
|
98
|
+
export function convertToSemver({ version, build, }) {
|
|
99
|
+
return `${version}+${build}`;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/version.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
2
2
|
import type { UnwrapArray } from '../types/helpers.js';
|
|
3
3
|
import { CreateSubmissionMutation, CreateUploadMutation, SubmissionsQuery } from '../types/autogenerated/shop-minis-admin-api/graphql.js';
|
|
4
|
-
import { CreateUploadParameters } from '../
|
|
4
|
+
import { CreateUploadParameters } from '../data/create-upload.js';
|
|
5
5
|
interface UserErrorShape {
|
|
6
6
|
code: string;
|
|
7
7
|
message: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AbortError } from '@shopify/cli-kit/node/error';
|
|
2
2
|
import { formatPackageManagerCommand, outputDebug, } from '@shopify/cli-kit/node/output';
|
|
3
3
|
import { getPackageManager } from '../config.js';
|
|
4
|
-
import { getPendingSubmission } from '../
|
|
4
|
+
import { getPendingSubmission } from '../data/get-submissions.js';
|
|
5
5
|
const wrapErrorDefaultOptions = {
|
|
6
6
|
separator: ': ',
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/commands/submit/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA;AACtD,OAAO,EACL,2BAA2B,EAC3B,WAAW,GACZ,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/commands/submit/errors.ts"],"names":[],"mappings":"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"}
|