@shopify/shop-minis-cli 0.0.35
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/README.md +8 -0
- package/build/commands/create-mini/index.d.ts +2 -0
- package/build/commands/create-mini/index.js +116 -0
- package/build/commands/create-mini/index.js.map +1 -0
- package/build/commands/create-mini/utils/template-app.d.ts +1 -0
- package/build/commands/create-mini/utils/template-app.js +44 -0
- package/build/commands/create-mini/utils/template-app.js.map +1 -0
- package/build/commands/dev/index.d.ts +6 -0
- package/build/commands/dev/index.js +31 -0
- package/build/commands/dev/index.js.map +1 -0
- package/build/commands/dev/utils/android.d.ts +16 -0
- package/build/commands/dev/utils/android.js +165 -0
- package/build/commands/dev/utils/android.js.map +1 -0
- package/build/commands/dev/utils/binaries.d.ts +83 -0
- package/build/commands/dev/utils/binaries.js +173 -0
- package/build/commands/dev/utils/binaries.js.map +1 -0
- package/build/commands/dev/utils/binaries.test.d.ts +1 -0
- package/build/commands/dev/utils/binaries.test.js +275 -0
- package/build/commands/dev/utils/binaries.test.js.map +1 -0
- package/build/commands/dev/utils/deeplink.d.ts +3 -0
- package/build/commands/dev/utils/deeplink.js +30 -0
- package/build/commands/dev/utils/deeplink.js.map +1 -0
- package/build/commands/dev/utils/interactive-terminal.d.ts +23 -0
- package/build/commands/dev/utils/interactive-terminal.js +252 -0
- package/build/commands/dev/utils/interactive-terminal.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-config.d.ts +2 -0
- package/build/commands/dev/utils/metro/metro-config.js +31 -0
- package/build/commands/dev/utils/metro/metro-config.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-reporter.d.ts +14 -0
- package/build/commands/dev/utils/metro/metro-reporter.js +34 -0
- package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +6 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js +45 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server.d.ts +2 -0
- package/build/commands/dev/utils/metro/metro-server.js +24 -0
- package/build/commands/dev/utils/metro/metro-server.js.map +1 -0
- package/build/commands/dev/utils/minis-manifest.d.ts +1 -0
- package/build/commands/dev/utils/minis-manifest.js +24 -0
- package/build/commands/dev/utils/minis-manifest.js.map +1 -0
- package/build/commands/dev/utils/qr-code.d.ts +1 -0
- package/build/commands/dev/utils/qr-code.js +12 -0
- package/build/commands/dev/utils/qr-code.js.map +1 -0
- package/build/commands/dev/utils/simulator.d.ts +19 -0
- package/build/commands/dev/utils/simulator.js +89 -0
- package/build/commands/dev/utils/simulator.js.map +1 -0
- package/build/commands/dev/utils/with-retries.d.ts +4 -0
- package/build/commands/dev/utils/with-retries.js +28 -0
- package/build/commands/dev/utils/with-retries.js.map +1 -0
- package/build/commands/generate-graphql-types/index.d.ts +5 -0
- package/build/commands/generate-graphql-types/index.js +90 -0
- package/build/commands/generate-graphql-types/index.js.map +1 -0
- package/build/commands/utils/exec-async-child-process.d.ts +18 -0
- package/build/commands/utils/exec-async-child-process.js +48 -0
- package/build/commands/utils/exec-async-child-process.js.map +1 -0
- package/build/commands/utils/wrap-with-loading-indicator.d.ts +9 -0
- package/build/commands/utils/wrap-with-loading-indicator.js +23 -0
- package/build/commands/utils/wrap-with-loading-indicator.js.map +1 -0
- package/build/dev-panel/images/bottomsheet.png +0 -0
- package/build/dev-panel/images/checkmark.svg +3 -0
- package/build/dev-panel/images/chevron.svg +3 -0
- package/build/dev-panel/images/copy.svg +4 -0
- package/build/dev-panel/images/get-started.svg +3 -0
- package/build/dev-panel/images/how-to.svg +3 -0
- package/build/dev-panel/images/navigation.png +0 -0
- package/build/dev-panel/images/references.svg +3 -0
- package/build/dev-panel/images/shop-minis-logo-inverse.svg +5 -0
- package/build/dev-panel/images/shop-minis-logo.svg +5 -0
- package/build/dev-panel/images/stories.png +0 -0
- package/build/dev-panel/images/topics.svg +3 -0
- package/build/dev-panel/index.html +302 -0
- package/build/dev-panel/middleware.d.ts +4 -0
- package/build/dev-panel/middleware.js +11 -0
- package/build/dev-panel/middleware.js.map +1 -0
- package/build/dev-panel/middleware.ts +6 -0
- package/build/dev-panel/styles.css +507 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +26 -0
- package/build/index.js.map +1 -0
- package/package.json +83 -0
- package/templates/__template_blank/src/custom.d.ts +4 -0
- package/templates/__template_blank/src/index.tsx +9 -0
- package/templates/__template_blank/src/screens/HomeScreen.tsx +12 -0
- package/templates/__template_blank/src/types.ts +5 -0
- package/templates/__template_common/.eslintignore +1 -0
- package/templates/__template_common/.eslintrc.json +132 -0
- package/templates/__template_common/.prettierrc.json +8 -0
- package/templates/__template_common/babel.config.js +19 -0
- package/templates/__template_common/gitignore +3 -0
- package/templates/__template_common/index.tsx +43 -0
- package/templates/__template_common/metro.config.js +31 -0
- package/templates/__template_common/package.json +68 -0
- package/templates/__template_common/patches/react-native+0.68.5.patch +173 -0
- package/templates/__template_common/src/manifest.json +29 -0
- package/templates/__template_common/tsconfig.json +36 -0
- package/templates/__template_hello_world/src/assets/Modal-component-thumbnail.png +0 -0
- package/templates/__template_hello_world/src/assets/ProductCard-component-thumbnail.png +0 -0
- package/templates/__template_hello_world/src/assets/ProductLink-component-thumbnail.png +0 -0
- package/templates/__template_hello_world/src/assets/assets.d.ts +4 -0
- package/templates/__template_hello_world/src/assets/figma-logo.svg +14 -0
- package/templates/__template_hello_world/src/assets/shop-minis-logo.svg +7 -0
- package/templates/__template_hello_world/src/components/ButtonCTA.tsx +31 -0
- package/templates/__template_hello_world/src/components/ComponentLink.ts +70 -0
- package/templates/__template_hello_world/src/components/ComponentListItem.tsx +38 -0
- package/templates/__template_hello_world/src/components/FeaturedComponents.tsx +108 -0
- package/templates/__template_hello_world/src/components/Header.tsx +40 -0
- package/templates/__template_hello_world/src/data/Test.graphql +33 -0
- package/templates/__template_hello_world/src/data/Test.graphql.d.ts +114 -0
- package/templates/__template_hello_world/src/data/TestProducts.graphql +34 -0
- package/templates/__template_hello_world/src/data/TestProducts.graphql.d.ts +119 -0
- package/templates/__template_hello_world/src/index.tsx +9 -0
- package/templates/__template_hello_world/src/routes.tsx +107 -0
- package/templates/__template_hello_world/src/screens/AvatarScreen.tsx +95 -0
- package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +711 -0
- package/templates/__template_hello_world/src/screens/ButtonsScreen.tsx +90 -0
- package/templates/__template_hello_world/src/screens/GridScreen.tsx +74 -0
- package/templates/__template_hello_world/src/screens/HomeScreen.tsx +70 -0
- package/templates/__template_hello_world/src/screens/IconsScreen.tsx +181 -0
- package/templates/__template_hello_world/src/screens/MediaScreen.tsx +130 -0
- package/templates/__template_hello_world/src/screens/ModalScreen.tsx +379 -0
- package/templates/__template_hello_world/src/screens/ProductCardGridScreen.tsx +68 -0
- package/templates/__template_hello_world/src/screens/ProductCardScreen.tsx +62 -0
- package/templates/__template_hello_world/src/screens/ProductLinkScreen.tsx +215 -0
- package/templates/__template_hello_world/src/screens/ProgressIndicatorScreen.tsx +77 -0
- package/templates/__template_hello_world/src/screens/QuantityPickerScreen.tsx +76 -0
- package/templates/__template_hello_world/src/screens/SpinnerScreen.tsx +63 -0
- package/templates/__template_hello_world/src/screens/TypographyScreen.tsx +274 -0
- package/templates/__template_hello_world/src/screens/WebViewScreen.tsx +42 -0
- package/templates/__template_hello_world/src/types.ts +25 -0
- package/templates/__template_snowboardz/src/assets/assets.d.ts +4 -0
- package/templates/__template_snowboardz/src/assets/circle-blue.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-green.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-purple.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-rainbow.svg +34 -0
- package/templates/__template_snowboardz/src/assets/circle-red.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-yellow.svg +9 -0
- package/templates/__template_snowboardz/src/assets/skill-level-icon-advanced.svg +3 -0
- package/templates/__template_snowboardz/src/assets/skill-level-icon-beginner.svg +3 -0
- package/templates/__template_snowboardz/src/assets/skill-level-icon-intermediate.svg +3 -0
- package/templates/__template_snowboardz/src/components/ColorButton.tsx +79 -0
- package/templates/__template_snowboardz/src/components/ColorPicker.tsx +40 -0
- package/templates/__template_snowboardz/src/components/EmptyResult.tsx +52 -0
- package/templates/__template_snowboardz/src/components/SkillLevelIcon.tsx +44 -0
- package/templates/__template_snowboardz/src/components/SkillLevelPicker.tsx +86 -0
- package/templates/__template_snowboardz/src/data/TestProducts.graphql +34 -0
- package/templates/__template_snowboardz/src/data/TestProducts.graphql.d.ts +108 -0
- package/templates/__template_snowboardz/src/hooks/useSnowboardData.tsx +37 -0
- package/templates/__template_snowboardz/src/index.tsx +9 -0
- package/templates/__template_snowboardz/src/routes.tsx +17 -0
- package/templates/__template_snowboardz/src/screens/HomeScreen.tsx +126 -0
- package/templates/__template_snowboardz/src/types.ts +12 -0
- package/templates/__template_snowboardz/src/utils.ts +17 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InteractiveTerminal = void 0;
|
|
7
|
+
const ora_1 = __importDefault(require("ora"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const open_1 = __importDefault(require("open"));
|
|
10
|
+
const middleware_1 = require("../../../dev-panel/middleware");
|
|
11
|
+
const android_1 = require("./android");
|
|
12
|
+
const simulator_1 = require("./simulator");
|
|
13
|
+
const qr_code_1 = require("./qr-code");
|
|
14
|
+
const deeplink_1 = require("./deeplink");
|
|
15
|
+
const minis_manifest_1 = require("./minis-manifest");
|
|
16
|
+
const binaries_1 = require("./binaries");
|
|
17
|
+
const { stdin } = process;
|
|
18
|
+
function clearTerminal() {
|
|
19
|
+
process.stdout.write('\x1B[2J\x1B[3J\x1B[H');
|
|
20
|
+
}
|
|
21
|
+
const CTRL_C = '\u0003';
|
|
22
|
+
class InteractiveTerminal {
|
|
23
|
+
miniHandle;
|
|
24
|
+
options;
|
|
25
|
+
_loading;
|
|
26
|
+
constructor(options) {
|
|
27
|
+
this.miniHandle = (0, minis_manifest_1.getMiniManifest)().handle;
|
|
28
|
+
this.options = options;
|
|
29
|
+
}
|
|
30
|
+
startWaitingForCommand = () => {
|
|
31
|
+
if (!stdin.setRawMode) {
|
|
32
|
+
console.warn('Non-interactive terminal, keyboard commands are disabled. Please upgrade to Node 12+');
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
stdin.setRawMode(true);
|
|
36
|
+
stdin.resume();
|
|
37
|
+
stdin.setEncoding('utf8');
|
|
38
|
+
stdin.on('data', this.handleKeyPressWrapped);
|
|
39
|
+
};
|
|
40
|
+
stopWaitingForCommand = () => {
|
|
41
|
+
stdin.removeListener('data', this.handleKeyPressWrapped);
|
|
42
|
+
if (!stdin.setRawMode) {
|
|
43
|
+
console.warn('Non-interactive terminal, keyboard commands are disabled. Please upgrade to Node 12+');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
stdin.setRawMode(false);
|
|
47
|
+
stdin.resume();
|
|
48
|
+
};
|
|
49
|
+
waitForAnyKeyAndPrintInstructions = async () => {
|
|
50
|
+
console.log('Press any key to continue...');
|
|
51
|
+
this.stopWaitingForCommand();
|
|
52
|
+
if (!stdin.setRawMode) {
|
|
53
|
+
console.warn('Non-interactive terminal, keyboard commands are disabled. Please upgrade to Node 12+');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
stdin.setRawMode(true);
|
|
57
|
+
stdin.resume();
|
|
58
|
+
return new Promise(resolve => process.stdin.once('data', () => {
|
|
59
|
+
this.logInstructions();
|
|
60
|
+
resolve();
|
|
61
|
+
}));
|
|
62
|
+
};
|
|
63
|
+
logInstructions() {
|
|
64
|
+
console.log(`\n› Press ${chalk_1.default.cyan.bold(`a`)} │ Open on Android device or emulator
|
|
65
|
+
› Press ${chalk_1.default.cyan.bold(`i`)} │ Open in iOS simulator`);
|
|
66
|
+
console.log(`\n› Press ${chalk_1.default.cyan.bold(`q`)} │ Print QR code in terminal. Scan to open your Shop Mini on an iOS device with Shop installed
|
|
67
|
+
› Press ${chalk_1.default.cyan.bold(`d`)} │ Open Developer Dashboard in web browser`);
|
|
68
|
+
console.log(`\n› Press ${chalk_1.default.cyan.bold(`?`)} │ Show all commands
|
|
69
|
+
`);
|
|
70
|
+
console.log(chalk_1.default.dim('Press Ctrl+C to exit.'));
|
|
71
|
+
}
|
|
72
|
+
start() {
|
|
73
|
+
this.logInstructions();
|
|
74
|
+
this.startWaitingForCommand();
|
|
75
|
+
}
|
|
76
|
+
handleKeyPressWrapped = async (key) => {
|
|
77
|
+
try {
|
|
78
|
+
this.stopWaitingForCommand();
|
|
79
|
+
await this.handleKeyPress(key);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
console.log(`Error while executing command for key: ${key}`);
|
|
83
|
+
console.log(err);
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
this.startWaitingForCommand();
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
loadingStart(logMessage, options = {}) {
|
|
90
|
+
if (this._loading) {
|
|
91
|
+
this.loadingEnd(options.endPreviousLoadingWithStatus, options.endPreviousLoadingWithMessage);
|
|
92
|
+
}
|
|
93
|
+
this._loading = (0, ora_1.default)({ text: logMessage }).start();
|
|
94
|
+
}
|
|
95
|
+
loadingEnd(endState = 'succeed', logMessage) {
|
|
96
|
+
if (!this._loading) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
this._loading[endState](logMessage);
|
|
100
|
+
delete this._loading;
|
|
101
|
+
}
|
|
102
|
+
handleKeyPress = async (key) => {
|
|
103
|
+
switch (key) {
|
|
104
|
+
case '?': {
|
|
105
|
+
this.logInstructions();
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case 'a': {
|
|
109
|
+
clearTerminal();
|
|
110
|
+
if (!(0, android_1.androidHomeExists)()) {
|
|
111
|
+
this.showSetupAndroidHomeInstructions();
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
const device = await (0, android_1.promptForAndroidDevices)();
|
|
115
|
+
if (device) {
|
|
116
|
+
if (device.type === 'emulator') {
|
|
117
|
+
this.loadingStart('Launching emulator');
|
|
118
|
+
const emulatorId = await (0, android_1.maybeLaunchEmulator)(device.name);
|
|
119
|
+
if (!emulatorId) {
|
|
120
|
+
this.loadingEnd('fail', `Couldn't launch emulator ${device.name}`);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
await this.startAndroidApp(emulatorId);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
await this.startAndroidApp(device.name);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
console.log('\nNo connected devices or emulators were found\n');
|
|
131
|
+
console.log(`See ${chalk_1.default.blue.underline.bold('https://developer.android.com/studio/command-line/adb#Enabling')} for instructions on how to enable USB debugging on your device.`);
|
|
132
|
+
console.log(`Or ${chalk_1.default.blue.underline.bold('https://developer.android.com/studio/run/emulator#get-started')} for instructions on how to create an emulator.`);
|
|
133
|
+
this.waitForAnyKeyAndPrintInstructions();
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case 'i': {
|
|
138
|
+
clearTerminal();
|
|
139
|
+
const simulator = await (0, simulator_1.promptForSimulator)();
|
|
140
|
+
if (simulator) {
|
|
141
|
+
this.loadingStart('Launching simulator');
|
|
142
|
+
await (0, simulator_1.bootSimulator)(simulator.udid);
|
|
143
|
+
const installedShopVersion = await (0, simulator_1.getInstalledShopVersion)(simulator.udid);
|
|
144
|
+
if (installedShopVersion) {
|
|
145
|
+
this.loadingEnd();
|
|
146
|
+
// We assume that the version being used in the simulator matches the biggest version in the downloads folder
|
|
147
|
+
// because version returned by the simulator does not include build numbers.
|
|
148
|
+
const upgradedVersion = await (0, binaries_1.maybePromptBinaryUpgrade)('ios', {
|
|
149
|
+
onDownloadStart: () => {
|
|
150
|
+
this.loadingStart('Downloading Shop (0%)');
|
|
151
|
+
},
|
|
152
|
+
onProgress: progress => {
|
|
153
|
+
this._loading.text = `Downloading Shop (${progress}%)`;
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
if (upgradedVersion) {
|
|
157
|
+
this.loadingStart('Installing Shop');
|
|
158
|
+
await (0, simulator_1.installShopInSimulator)(simulator.udid, upgradedVersion);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.loadingStart('Downloading Shop (0%)');
|
|
163
|
+
const downloadedVersion = await (0, binaries_1.downloadBinary)('ios', {
|
|
164
|
+
onProgress: progress => {
|
|
165
|
+
this._loading.text = `Downloading Shop (${progress}%)`;
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
this.loadingStart('Installing Shop\n ↪ You can skip onboarding, or log in with your existing Shop account (optional).');
|
|
169
|
+
await (0, simulator_1.installShopInSimulator)(simulator.udid, downloadedVersion);
|
|
170
|
+
}
|
|
171
|
+
this.loadingStart('Opening Shop');
|
|
172
|
+
await (0, simulator_1.deeplinkToSimulator)(simulator.udid, await (0, deeplink_1.getDeeplink)(this.miniHandle, this.options));
|
|
173
|
+
this.loadingEnd();
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
console.log('\nNo simulator was selected\n');
|
|
177
|
+
}
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
case 'q': {
|
|
181
|
+
await this.printDeeplinkQRCode();
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
case 'd': {
|
|
185
|
+
// TODO: Should we send these as params? or should the dev panel website already know how to fetch them without the need of query params?
|
|
186
|
+
// Advantadge would be that people could just type the base url in the browser whenever they want to open the dev panel. That's impossible with the query params being required
|
|
187
|
+
const paramsObj = {
|
|
188
|
+
bundleUrl: await (0, deeplink_1.getBundleUrl)(this.options),
|
|
189
|
+
deepLink: await (0, deeplink_1.getDeeplink)(this.miniHandle, this.options, true),
|
|
190
|
+
};
|
|
191
|
+
const searchParams = `?${new URLSearchParams(paramsObj).toString()}`;
|
|
192
|
+
(0, open_1.default)(`${middleware_1.DEV_PANEL_BASE_URL}${searchParams}`);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
case CTRL_C: {
|
|
196
|
+
this.stopWaitingForCommand();
|
|
197
|
+
process.exit(0);
|
|
198
|
+
// @ts-ignore
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
default: {
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
async showSetupAndroidHomeInstructions() {
|
|
207
|
+
console.warn(chalk_1.default.red("ANDROID_HOME environment variable is not set. Set Android SDK path to continue. Instructions on how to set it can be found on Android's developer docs."));
|
|
208
|
+
console.log(`See ${chalk_1.default.blue.underline.bold('https://developer.android.com/studio/command-line/variables')}`);
|
|
209
|
+
await this.waitForAnyKeyAndPrintInstructions();
|
|
210
|
+
}
|
|
211
|
+
async startAndroidApp(deviceId) {
|
|
212
|
+
const installedShopVersion = await (0, android_1.getInstalledShopVersion)(deviceId);
|
|
213
|
+
if (installedShopVersion) {
|
|
214
|
+
this.loadingEnd();
|
|
215
|
+
// We assume that the version being used in the emulator matches the biggest version in the downloads folder
|
|
216
|
+
// because version returned by the emulator does not include build numbers.
|
|
217
|
+
const upgradedVersion = await (0, binaries_1.maybePromptBinaryUpgrade)('android', {
|
|
218
|
+
onDownloadStart: () => {
|
|
219
|
+
this.loadingStart('Downloading Shop (0%)');
|
|
220
|
+
},
|
|
221
|
+
onProgress: progress => {
|
|
222
|
+
this._loading.text = `Downloading Shop (${progress}%)`;
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
if (upgradedVersion) {
|
|
226
|
+
this.loadingStart('Installing Shop');
|
|
227
|
+
await (0, android_1.installShopInEmulator)(deviceId, upgradedVersion);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
this.loadingStart('Downloading Shop (0%)');
|
|
232
|
+
const downloadedVersion = await (0, binaries_1.downloadBinary)('android', {
|
|
233
|
+
onProgress: progress => {
|
|
234
|
+
this._loading.text = `Downloading Shop (${progress}%)`;
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
this.loadingStart('Installing Shop\n ↪ You can skip onboarding, or log in with your existing Shop account (optional).');
|
|
238
|
+
await (0, android_1.installShopInEmulator)(deviceId, downloadedVersion);
|
|
239
|
+
}
|
|
240
|
+
this.loadingStart('Opening Shop');
|
|
241
|
+
await (0, android_1.connectDevelopmentServer)(deviceId);
|
|
242
|
+
await (0, android_1.deeplinkToEmulator)(deviceId, await (0, deeplink_1.getDeeplink)(this.miniHandle, this.options));
|
|
243
|
+
this.loadingEnd();
|
|
244
|
+
}
|
|
245
|
+
async printDeeplinkQRCode() {
|
|
246
|
+
console.log('\n');
|
|
247
|
+
await (0, qr_code_1.printQRCode)(await (0, deeplink_1.getDeeplink)(this.miniHandle, this.options, true));
|
|
248
|
+
console.log('Scan the QR code to open Shop Mini on your device (requires the Shop app to be installed)\n');
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.InteractiveTerminal = InteractiveTerminal;
|
|
252
|
+
//# sourceMappingURL=interactive-terminal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactive-terminal.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/interactive-terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getMetroConfig = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const cli_plugin_metro_1 = require("@react-native-community/cli-plugin-metro");
|
|
9
|
+
const cli_1 = require("@react-native-community/cli");
|
|
10
|
+
const metro_reporter_1 = require("./metro-reporter");
|
|
11
|
+
const metro_server_middleware_1 = require("./metro-server-middleware");
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
13
|
+
const defaults = require('metro-config/src/defaults/defaults');
|
|
14
|
+
// modified so that metro uses the mini dependency path and not the CLI dependency when using symlinks to run the CLI (yarn link)
|
|
15
|
+
defaults.moduleSystem = `${process.cwd()}/node_modules/metro-runtime/src/polyfills/require.js`;
|
|
16
|
+
async function getMetroConfig() {
|
|
17
|
+
const metroConfig = (await (0, cli_plugin_metro_1.loadMetroConfig)((0, cli_1.loadConfig)()));
|
|
18
|
+
// @ts-ignore - @types/metro is outdated and missing this attribute: https://facebook.github.io/metro/docs/configuration/#emptymodulepath
|
|
19
|
+
// Fix required when using yarn link to run a local version of the CLI in a mini
|
|
20
|
+
metroConfig.resolver.emptyModulePath = path_1.default.join(metroConfig.projectRoot, 'node_modules', 'metro-runtime/src/modules/empty-module.js');
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
// Fix required when using yarn link to run a local version of the CLI in a mini
|
|
23
|
+
metroConfig.transformer.asyncRequireModulePath = path_1.default.join(metroConfig.projectRoot, 'node_modules', 'metro-runtime/src/modules/asyncRequire');
|
|
24
|
+
(0, metro_server_middleware_1.injectMetroServerMiddleware)(metroConfig);
|
|
25
|
+
return {
|
|
26
|
+
...metroConfig,
|
|
27
|
+
reporter: (0, metro_reporter_1.createMinisMetroReporter)(),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
exports.getMetroConfig = getMetroConfig;
|
|
31
|
+
//# sourceMappingURL=metro-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-config.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAGvB,+EAAwE;AACxE,qDAAsD;AAEtD,qDAAyD;AACzD,uEAAqE;AAErE,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAA;AAC9D,iIAAiI;AACjI,QAAQ,CAAC,YAAY,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,sDAAsD,CAAA;AAEvF,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,kCAAe,EACxC,IAAA,gBAAU,GAAE,CACb,CAAmC,CAAA;IAEpC,yIAAyI;IACzI,gFAAgF;IAChF,WAAW,CAAC,QAAQ,CAAC,eAAe,GAAG,cAAI,CAAC,IAAI,CAC9C,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,2CAA2C,CAC5C,CAAA;IAED,aAAa;IACb,gFAAgF;IAChF,WAAW,CAAC,WAAW,CAAC,sBAAsB,GAAG,cAAI,CAAC,IAAI,CACxD,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,wCAAwC,CACzC,CAAA;IAED,IAAA,qDAA2B,EAAC,WAAW,CAAC,CAAA;IAExC,OAAO;QACL,GAAG,WAAW;QACd,QAAQ,EAAE,IAAA,yCAAwB,GAAE;KACrC,CAAA;AACH,CAAC;AA3BD,wCA2BC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import TerminalReporter, { TerminalReportableEvent } from 'metro/src/lib/TerminalReporter';
|
|
2
|
+
declare const MetroTerminalReporter: typeof TerminalReporter.TerminalReporter;
|
|
3
|
+
/**
|
|
4
|
+
* Custom metro reporter that customises the output to the terminal of minis.
|
|
5
|
+
*
|
|
6
|
+
* Reference:
|
|
7
|
+
* Default reporter: https://github.com/facebook/metro/blob/main/packages/metro/src/lib/TerminalReporter.js
|
|
8
|
+
* Expo example: https://github.com/expo/expo/blob/main/packages/%40expo/cli/src/start/server/metro/MetroTerminalReporter.ts
|
|
9
|
+
*/
|
|
10
|
+
declare class MinisMetroReporter extends MetroTerminalReporter {
|
|
11
|
+
_log(event: TerminalReportableEvent): void;
|
|
12
|
+
}
|
|
13
|
+
export declare function createMinisMetroReporter(): MinisMetroReporter;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createMinisMetroReporter = void 0;
|
|
7
|
+
const TerminalReporter_1 = __importDefault(require("metro/src/lib/TerminalReporter"));
|
|
8
|
+
const metro_core_1 = require("metro-core");
|
|
9
|
+
const MetroTerminalReporter = TerminalReporter_1.default;
|
|
10
|
+
/**
|
|
11
|
+
* Custom metro reporter that customises the output to the terminal of minis.
|
|
12
|
+
*
|
|
13
|
+
* Reference:
|
|
14
|
+
* Default reporter: https://github.com/facebook/metro/blob/main/packages/metro/src/lib/TerminalReporter.js
|
|
15
|
+
* Expo example: https://github.com/expo/expo/blob/main/packages/%40expo/cli/src/start/server/metro/MetroTerminalReporter.ts
|
|
16
|
+
*/
|
|
17
|
+
class MinisMetroReporter extends MetroTerminalReporter {
|
|
18
|
+
_log(event) {
|
|
19
|
+
switch (event.type) {
|
|
20
|
+
case 'initialize_started':
|
|
21
|
+
case 'dep_graph_loading': {
|
|
22
|
+
// do not log metro logo and welcome on start
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
super._log(event);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function createMinisMetroReporter() {
|
|
31
|
+
return new MinisMetroReporter(new metro_core_1.Terminal(process.stdout));
|
|
32
|
+
}
|
|
33
|
+
exports.createMinisMetroReporter = createMinisMetroReporter;
|
|
34
|
+
//# sourceMappingURL=metro-reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metro-reporter.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-reporter.ts"],"names":[],"mappings":";;;;;;AAAA,sFAGuC;AACvC,2CAAmC;AAEnC,MAAM,qBAAqB,GACzB,0BAA0D,CAAA;AAE5D;;;;;;GAMG;AACH,MAAM,kBAAmB,SAAQ,qBAAqB;IACpD,IAAI,CAAC,KAA8B;QACjC,QAAQ,KAAK,CAAC,IAAI,EAAE;YAClB,KAAK,oBAAoB,CAAC;YAC1B,KAAK,mBAAmB,CAAC,CAAC;gBACxB,6CAA6C;gBAC7C,OAAM;aACP;SACF;QAED,aAAa;QACb,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;CACF;AAED,SAAgB,wBAAwB;IACtC,OAAO,IAAI,kBAAkB,CAAC,IAAI,qBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7D,CAAC;AAFD,4DAEC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import MetroConfig from 'metro-config';
|
|
2
|
+
/**
|
|
3
|
+
* mutates the received metro config param to inject a custom middleware.
|
|
4
|
+
* needed because of https://github.com/facebook/metro/issues/660
|
|
5
|
+
*/
|
|
6
|
+
export declare function injectMetroServerMiddleware(metroConfig: MetroConfig.ConfigT): void;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.injectMetroServerMiddleware = void 0;
|
|
7
|
+
const connect_1 = __importDefault(require("connect"));
|
|
8
|
+
const middleware_1 = require("../../../../dev-panel/middleware");
|
|
9
|
+
/**
|
|
10
|
+
* mutates the received metro config param to inject a custom middleware.
|
|
11
|
+
* needed because of https://github.com/facebook/metro/issues/660
|
|
12
|
+
*/
|
|
13
|
+
function injectMetroServerMiddleware(metroConfig) {
|
|
14
|
+
const middleware = (0, connect_1.default)()
|
|
15
|
+
.use('/symbolicate', rawBodyMiddleware)
|
|
16
|
+
.use('/dev_panel', middleware_1.devPanelMiddleware)
|
|
17
|
+
.use('/status', statusPageMiddleware);
|
|
18
|
+
const customEnhanceMiddleware = metroConfig.server.enhanceMiddleware;
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
metroConfig.server.enhanceMiddleware = (metroMiddleware, server) => {
|
|
21
|
+
if (customEnhanceMiddleware) {
|
|
22
|
+
metroMiddleware = customEnhanceMiddleware(metroMiddleware, server); // eslint-disable-line no-param-reassign
|
|
23
|
+
}
|
|
24
|
+
return middleware.use(metroMiddleware);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.injectMetroServerMiddleware = injectMetroServerMiddleware;
|
|
28
|
+
// reference https://github.com/react-native-community/cli/blob/main/packages/cli-server-api/src/rawBodyMiddleware.ts
|
|
29
|
+
function rawBodyMiddleware(req, _res, next) {
|
|
30
|
+
;
|
|
31
|
+
req.rawBody = '';
|
|
32
|
+
req.setEncoding('utf8');
|
|
33
|
+
req.on('data', (chunk) => {
|
|
34
|
+
;
|
|
35
|
+
req.rawBody += chunk;
|
|
36
|
+
});
|
|
37
|
+
req.on('end', () => {
|
|
38
|
+
next();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
// reference https://github.com/react-native-community/cli/blob/86df104250608977130378b9b59d8a9e12d0212a/packages/cli-server-api/src/statusPageMiddleware.ts
|
|
42
|
+
function statusPageMiddleware(_req, res) {
|
|
43
|
+
res.end('packager-status:running');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=metro-server-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metro-server-middleware.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server-middleware.ts"],"names":[],"mappings":";;;;;;AAEA,sDAA6B;AAG7B,iEAAmE;AAEnE;;;GAGG;AACH,SAAgB,2BAA2B,CAAC,WAAgC;IAC1E,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE;SACzB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACtC,GAAG,CAAC,YAAY,EAAE,+BAAkB,CAAC;SACrC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;IAEvC,MAAM,uBAAuB,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAA;IAEpE,aAAa;IACb,WAAW,CAAC,MAAM,CAAC,iBAAiB,GAAG,CACrC,eAAoB,EACpB,MAAW,EACX,EAAE;QACF,IAAI,uBAAuB,EAAE;YAC3B,eAAe,GAAG,uBAAuB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA,CAAC,wCAAwC;SAC5G;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,CAAA;AACH,CAAC;AAlBD,kEAkBC;AAED,qHAAqH;AACrH,SAAS,iBAAiB,CACxB,GAAyB,EACzB,IAAyB,EACzB,IAAyB;IAEzB,CAAC;IAAC,GAAgD,CAAC,OAAO,GAAG,EAAE,CAAA;IAC/D,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAEvB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC/B,CAAC;QAAC,GAAgD,CAAC,OAAO,IAAI,KAAK,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACjB,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,4JAA4J;AAC5J,SAAS,oBAAoB,CAC3B,IAA0B,EAC1B,GAAwB;IAExB,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runMetro = void 0;
|
|
7
|
+
const metro_1 = __importDefault(require("metro"));
|
|
8
|
+
const metro_config_1 = require("./metro-config");
|
|
9
|
+
const DEFAULT_OPTIONS = {
|
|
10
|
+
resetCache: false,
|
|
11
|
+
};
|
|
12
|
+
async function runMetro(options = DEFAULT_OPTIONS) {
|
|
13
|
+
const { host, ...metroOptions } = options;
|
|
14
|
+
const metroServerConfig = {
|
|
15
|
+
...(await (0, metro_config_1.getMetroConfig)()),
|
|
16
|
+
metroOptions,
|
|
17
|
+
};
|
|
18
|
+
await metro_1.default.runServer(metroServerConfig, { host });
|
|
19
|
+
if (host !== 'localhost') {
|
|
20
|
+
await metro_1.default.runServer(metroServerConfig, { host: 'localhost' });
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.runMetro = runMetro;
|
|
24
|
+
//# sourceMappingURL=metro-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metro-server.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AAIzB,iDAA6C;AAE7C,MAAM,eAAe,GAAG;IACtB,UAAU,EAAE,KAAK;CACT,CAAA;AAEH,KAAK,UAAU,QAAQ,CAAC,UAA6B,eAAe;IACzE,MAAM,EAAC,IAAI,EAAE,GAAG,YAAY,EAAC,GAAG,OAAO,CAAA;IACvC,MAAM,iBAAiB,GAAG;QACxB,GAAG,CAAC,MAAM,IAAA,6BAAc,GAAE,CAAC;QAC3B,YAAY;KACb,CAAA;IAED,MAAM,eAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAC,CAAC,CAAA;IAEhD,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,MAAM,eAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAA;KAC9D;AACH,CAAC;AAZD,4BAYC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getMiniManifest(): any;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMiniManifest = void 0;
|
|
4
|
+
function getMiniManifest() {
|
|
5
|
+
const manifestPath = `${process.cwd()}/src/manifest.json`;
|
|
6
|
+
let manifest;
|
|
7
|
+
try {
|
|
8
|
+
manifest = require(manifestPath);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
if (process.env.MOCK_MANIFEST) {
|
|
12
|
+
manifest = {
|
|
13
|
+
handle: 'mocked',
|
|
14
|
+
name: 'mocked',
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
throw new Error(`Failed to load manifest file from ${manifestPath}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return manifest;
|
|
22
|
+
}
|
|
23
|
+
exports.getMiniManifest = getMiniManifest;
|
|
24
|
+
//# sourceMappingURL=minis-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/minis-manifest.ts"],"names":[],"mappings":";;;AAAA,SAAgB,eAAe;IAC7B,MAAM,YAAY,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAA;IACzD,IAAI,QAAa,CAAA;IACjB,IAAI;QACF,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;KACjC;IAAC,MAAM;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YAC7B,QAAQ,GAAG;gBACT,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,QAAQ;aACf,CAAA;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAA;SACrE;KACF;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAhBD,0CAgBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function printQRCode(content: string): Promise<void>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.printQRCode = void 0;
|
|
7
|
+
const qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
8
|
+
async function printQRCode(content) {
|
|
9
|
+
qrcode_terminal_1.default.generate(content, { small: true }, (code) => console.log(code));
|
|
10
|
+
}
|
|
11
|
+
exports.printQRCode = printQRCode;
|
|
12
|
+
//# sourceMappingURL=qr-code.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-code.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/qr-code.ts"],"names":[],"mappings":";;;;;;AAAA,sEAA4C;AAErC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,yBAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,EAAE,CAAC,IAAY,EAAE,EAAE,CAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAClB,CAAA;AACH,CAAC;AAJD,kCAIC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface SimCtlListDevice {
|
|
2
|
+
dataPath: string;
|
|
3
|
+
dataPathSize: number;
|
|
4
|
+
logPath: string;
|
|
5
|
+
udid: string;
|
|
6
|
+
isAvailable: boolean;
|
|
7
|
+
deviceTypeIdentifier: string;
|
|
8
|
+
state: string;
|
|
9
|
+
name: string;
|
|
10
|
+
}
|
|
11
|
+
interface EnhancedSimCtlListDevice extends SimCtlListDevice {
|
|
12
|
+
osVersion: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function promptForSimulator(): Promise<EnhancedSimCtlListDevice | null | undefined>;
|
|
15
|
+
export declare function getInstalledShopVersion(udid: string): Promise<string | null>;
|
|
16
|
+
export declare function bootSimulator(udid: string): Promise<void>;
|
|
17
|
+
export declare function installShopInSimulator(udid: string, version: string): Promise<void>;
|
|
18
|
+
export declare function deeplinkToSimulator(udid: string, deeplink: string): Promise<void>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.deeplinkToSimulator = exports.installShopInSimulator = exports.bootSimulator = exports.getInstalledShopVersion = exports.promptForSimulator = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
10
|
+
const exec_async_child_process_1 = require("../../utils/exec-async-child-process");
|
|
11
|
+
const binaries_1 = require("./binaries");
|
|
12
|
+
async function getSelectableSimulators() {
|
|
13
|
+
const { stdout } = await (0, exec_async_child_process_1.execAsync)('xcrun simctl list devices --json');
|
|
14
|
+
const simctlOutput = JSON.parse(stdout.join(''));
|
|
15
|
+
const simulators = Object.keys(simctlOutput.devices)
|
|
16
|
+
.filter(runtime => runtime.includes('iOS'))
|
|
17
|
+
.reduce((devices, runtime) => [
|
|
18
|
+
...devices,
|
|
19
|
+
...simctlOutput.devices[runtime].map(device => ({
|
|
20
|
+
...device,
|
|
21
|
+
osVersion: lodash_1.default.last(runtime.split('.')),
|
|
22
|
+
})),
|
|
23
|
+
], []);
|
|
24
|
+
return simulators.filter(device => device.isAvailable && device.name.includes('iPhone'));
|
|
25
|
+
}
|
|
26
|
+
async function promptForSimulator() {
|
|
27
|
+
const devices = await getSelectableSimulators();
|
|
28
|
+
const sortedDevices = [
|
|
29
|
+
...devices.filter(device => device.state === 'Booted'),
|
|
30
|
+
...devices.filter(device => device.state !== 'Booted'),
|
|
31
|
+
];
|
|
32
|
+
const { value } = await (0, prompts_1.default)({
|
|
33
|
+
type: 'autocomplete',
|
|
34
|
+
name: 'value',
|
|
35
|
+
limit: 11,
|
|
36
|
+
message: 'Select a simulator',
|
|
37
|
+
choices: sortedDevices.map(item => {
|
|
38
|
+
const isActive = item.state === 'Booted';
|
|
39
|
+
const format = isActive ? chalk_1.default.bold : (text) => text;
|
|
40
|
+
return {
|
|
41
|
+
title: `${format(item.name)} ${chalk_1.default.dim(`(${item.osVersion})`)}`,
|
|
42
|
+
value: item.udid,
|
|
43
|
+
};
|
|
44
|
+
}),
|
|
45
|
+
suggest: (input, choices) => {
|
|
46
|
+
const regex = new RegExp(input, 'i');
|
|
47
|
+
return choices.filter((choice) => regex.test(choice.title));
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
return value ? devices.find(device => device.udid === value) : null;
|
|
51
|
+
}
|
|
52
|
+
exports.promptForSimulator = promptForSimulator;
|
|
53
|
+
async function getInstalledShopVersion(udid) {
|
|
54
|
+
try {
|
|
55
|
+
const { stdout } = await (0, exec_async_child_process_1.execAsync)(`defaults read $(xcrun simctl get_app_container ${udid} com.shopifyinternal.arrive)/Info CFBundleShortVersionString`);
|
|
56
|
+
const installedVersion = stdout[0]; // 2.86.0-snapshot+1674205229
|
|
57
|
+
return installedVersion.split('-')[0];
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.getInstalledShopVersion = getInstalledShopVersion;
|
|
64
|
+
async function bootSimulator(udid) {
|
|
65
|
+
try {
|
|
66
|
+
await (0, exec_async_child_process_1.execAsync)(`xcrun simctl boot ${udid}`);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (!error.stderr?.match(/Unable to boot device in current state: Booted/)) {
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
await (0, exec_async_child_process_1.execAsync)(`open -a Simulator.app --args -CurrentDeviceUDID ${udid}`);
|
|
74
|
+
}
|
|
75
|
+
exports.bootSimulator = bootSimulator;
|
|
76
|
+
async function installShopInSimulator(udid, version) {
|
|
77
|
+
const fileName = (0, binaries_1.versionToBinaryFileName)(version, 'ios');
|
|
78
|
+
await (0, exec_async_child_process_1.execAsync)(`unzip -o ${binaries_1.BINARIES_PATH}/${fileName} -d ${binaries_1.BINARIES_PATH}`);
|
|
79
|
+
await (0, exec_async_child_process_1.execAsync)(`rm -rf ${binaries_1.BINARIES_PATH}/__MACOSX`); // weird directory that gets created after unzipping on macos
|
|
80
|
+
const shopAppPath = `${binaries_1.BINARIES_PATH}/Shop.app`;
|
|
81
|
+
await (0, exec_async_child_process_1.execAsync)(`xcrun simctl install ${udid} ${shopAppPath}`);
|
|
82
|
+
}
|
|
83
|
+
exports.installShopInSimulator = installShopInSimulator;
|
|
84
|
+
async function deeplinkToSimulator(udid, deeplink) {
|
|
85
|
+
// TODO: deeplink doesn't seem to be working in iphone SE
|
|
86
|
+
await (0, exec_async_child_process_1.execAsync)(`xcrun simctl openurl ${udid} ${deeplink}`);
|
|
87
|
+
}
|
|
88
|
+
exports.deeplinkToSimulator = deeplinkToSimulator;
|
|
89
|
+
//# sourceMappingURL=simulator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulator.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/simulator.ts"],"names":[],"mappings":"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"}
|