create-expo-stack 2.10.4 → 2.10.5-next.08640a3
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 +50 -50
- package/build/cli.js +21 -51
- package/build/commands/create-expo-stack.js +320 -364
- package/build/templates/base/components/Button.tsx.ejs +2 -3
- package/build/templates/packages/nativewind/components/Button.tsx.ejs +4 -5
- package/build/templates/packages/nativewindui/components/Button.tsx.ejs +2 -3
- package/build/templates/packages/restyle/components/Button.tsx.ejs +7 -3
- package/build/templates/packages/tamagui/components/Button.tsx.ejs +11 -5
- package/build/templates/packages/tamagui/tamagui.config.ts.ejs +24 -25
- package/build/templates/packages/unistyles/components/Button.tsx.ejs +8 -3
- package/build/types/utilities/configAnalytics.d.ts +17 -0
- package/build/utilities/bumpVersion.js +6 -6
- package/build/utilities/clearNavigationPackages.js +2 -2
- package/build/utilities/clearStylingPackages.js +2 -2
- package/build/utilities/configAnalytics.js +70 -0
- package/build/utilities/configStorage.js +31 -88
- package/build/utilities/configureProjectFiles.js +98 -83
- package/build/utilities/copyBaseAssets.js +4 -36
- package/build/utilities/generateProjectFiles.js +16 -16
- package/build/utilities/getPackageManager.js +7 -7
- package/build/utilities/printOutput.js +156 -211
- package/build/utilities/renderTitle.js +22 -62
- package/build/utilities/runCLI.js +334 -393
- package/build/utilities/runEasConfigure.js +61 -106
- package/build/utilities/runIgnite.js +9 -45
- package/build/utilities/systemCommand.js +11 -48
- package/build/utilities/usePackage.js +2 -2
- package/build/utilities/validateProjectName.js +27 -64
- package/package.json +70 -69
|
@@ -8,413 +8,354 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
12
|
exports.runCLI = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
13
|
+
const prompts_1 = require("@clack/prompts");
|
|
14
|
+
const constants_1 = require("../constants");
|
|
15
|
+
const getPackageManager_1 = require("./getPackageManager");
|
|
16
|
+
const configStorage_1 = require("./configStorage");
|
|
17
|
+
const recommendedBunVersion = '1.0.22';
|
|
45
18
|
function runCLI(toolbox, projectName) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
defaultPackageManagerVersion
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
shouldUseDefaultPackageManager = _b.sent();
|
|
122
|
-
if ((0, prompts_1.isCancel)(shouldUseDefaultPackageManager)) {
|
|
123
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
124
|
-
return [2 /*return*/, process.exit(0)];
|
|
125
|
-
}
|
|
126
|
-
if (!!shouldUseDefaultPackageManager) return [3 /*break*/, 9];
|
|
127
|
-
return [4 /*yield*/, (0, prompts_1.select)({
|
|
128
|
-
message: 'Gotcha! Which package manager would you like to use?',
|
|
129
|
-
options: [
|
|
130
|
-
{ value: 'npm', label: 'npm' },
|
|
131
|
-
{ value: 'yarn', label: 'yarn' },
|
|
132
|
-
{ value: 'pnpm', label: 'pnpm' },
|
|
133
|
-
{ value: 'bun', label: 'bun' }
|
|
134
|
-
],
|
|
135
|
-
initialValue: 'npm'
|
|
136
|
-
})];
|
|
137
|
-
case 8:
|
|
138
|
-
packageManagerSelect = _b.sent();
|
|
139
|
-
if ((0, prompts_1.isCancel)(packageManagerSelect)) {
|
|
140
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
141
|
-
return [2 /*return*/, process.exit(0)];
|
|
142
|
-
}
|
|
143
|
-
cliResults.flags.packageManager = packageManagerSelect;
|
|
144
|
-
_b.label = 9;
|
|
145
|
-
case 9: return [3 /*break*/, 13];
|
|
146
|
-
case 10:
|
|
147
|
-
if (!(options.bun || options.pnpm || options.npm || options.yarn)) return [3 /*break*/, 11];
|
|
148
|
-
cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
|
|
149
|
-
return [3 /*break*/, 13];
|
|
150
|
-
case 11: return [4 /*yield*/, (0, prompts_1.select)({
|
|
151
|
-
message: 'Which package manager would you like to use?',
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const { parameters: { options }, print: { info, success, warning } } = toolbox;
|
|
21
|
+
// Set the default options
|
|
22
|
+
const cliResults = constants_1.defaultOptions;
|
|
23
|
+
// Project name already validated, just set cliResults
|
|
24
|
+
cliResults.projectName = projectName;
|
|
25
|
+
cliResults.flags.overwrite = !!options.overwrite;
|
|
26
|
+
cliResults.flags.eas = !!options.eas;
|
|
27
|
+
// Clear default packages
|
|
28
|
+
cliResults.packages = [];
|
|
29
|
+
// Check whether the user has any saved create expo stack configurations
|
|
30
|
+
const savedConfigs = yield (0, configStorage_1.loadConfigs)();
|
|
31
|
+
// If the user has saved configurations, ask if they would like to use them
|
|
32
|
+
if (savedConfigs.length > 0) {
|
|
33
|
+
const useSavedConfig = yield (0, prompts_1.confirm)({
|
|
34
|
+
message: 'Would you like to use a saved configuration?',
|
|
35
|
+
initialValue: false
|
|
36
|
+
});
|
|
37
|
+
if ((0, prompts_1.isCancel)(useSavedConfig)) {
|
|
38
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
39
|
+
return process.exit(0);
|
|
40
|
+
}
|
|
41
|
+
if (useSavedConfig) {
|
|
42
|
+
const savedConfigSelect = yield (0, prompts_1.select)({
|
|
43
|
+
message: 'Which saved configuration would you like to use?',
|
|
44
|
+
options: savedConfigs.map((config) => ({ value: config.name, label: config.name }))
|
|
45
|
+
});
|
|
46
|
+
if ((0, prompts_1.isCancel)(savedConfigSelect)) {
|
|
47
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
48
|
+
return process.exit(0);
|
|
49
|
+
}
|
|
50
|
+
const selectedConfig = savedConfigs.find((config) => config.name === savedConfigSelect);
|
|
51
|
+
if (selectedConfig) {
|
|
52
|
+
cliResults.packages = selectedConfig.cliResults.packages;
|
|
53
|
+
cliResults.flags = selectedConfig.cliResults.flags;
|
|
54
|
+
success(`Using saved configuration: ${selectedConfig.name}`);
|
|
55
|
+
return cliResults;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
warning('Saved configuration not found, continuing with default configuration.');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Ask about TypeScript
|
|
63
|
+
const shouldUseTypescript = yield (0, prompts_1.confirm)({
|
|
64
|
+
message: 'Would you like to use TypeScript with this project?',
|
|
65
|
+
initialValue: true
|
|
66
|
+
});
|
|
67
|
+
if ((0, prompts_1.isCancel)(shouldUseTypescript)) {
|
|
68
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
69
|
+
return process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
if (shouldUseTypescript) {
|
|
72
|
+
success('Good call, now using TypeScript! 🚀');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
success(`Wrong answer, we're gonna use Typescript.`);
|
|
76
|
+
}
|
|
77
|
+
const defaultPackageManagerVersion = (0, getPackageManager_1.getDefaultPackageManagerVersion)();
|
|
78
|
+
if (cliResults.flags.packageManager) {
|
|
79
|
+
if (options.bun || options.pnpm || options.npm || options.yarn) {
|
|
80
|
+
cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const shouldUseDefaultPackageManager = yield (0, prompts_1.confirm)({
|
|
84
|
+
message: `\nWe've detected ${cliResults.flags.packageManager} ${defaultPackageManagerVersion ? `v${defaultPackageManagerVersion}` : ''} as your preferred package manager.\nWould you like to continue using it?`,
|
|
85
|
+
initialValue: true
|
|
86
|
+
});
|
|
87
|
+
if ((0, prompts_1.isCancel)(shouldUseDefaultPackageManager)) {
|
|
88
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
89
|
+
return process.exit(0);
|
|
90
|
+
}
|
|
91
|
+
if (!shouldUseDefaultPackageManager) {
|
|
92
|
+
const packageManagerSelect = yield (0, prompts_1.select)({
|
|
93
|
+
message: 'Gotcha! Which package manager would you like to use?',
|
|
152
94
|
options: [
|
|
153
95
|
{ value: 'npm', label: 'npm' },
|
|
154
96
|
{ value: 'yarn', label: 'yarn' },
|
|
155
97
|
{ value: 'pnpm', label: 'pnpm' },
|
|
156
98
|
{ value: 'bun', label: 'bun' }
|
|
157
|
-
]
|
|
158
|
-
})];
|
|
159
|
-
case 12:
|
|
160
|
-
packageManagerSelect = _b.sent();
|
|
161
|
-
if ((0, prompts_1.isCancel)(packageManagerSelect)) {
|
|
162
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
163
|
-
return [2 /*return*/, process.exit(0)];
|
|
164
|
-
}
|
|
165
|
-
cliResults.flags.packageManager = packageManagerSelect;
|
|
166
|
-
_b.label = 13;
|
|
167
|
-
case 13: return [4 /*yield*/, (0, prompts_1.select)({
|
|
168
|
-
message: 'What would you like to use for Navigation?',
|
|
169
|
-
options: [
|
|
170
|
-
{ value: 'react-navigation', label: 'React Navigation' },
|
|
171
|
-
{ value: 'expo-router', label: 'Expo Router' },
|
|
172
|
-
{ value: undefined, label: 'None' }
|
|
173
99
|
],
|
|
174
|
-
initialValue: '
|
|
175
|
-
})];
|
|
176
|
-
case 14:
|
|
177
|
-
navigationSelect = _b.sent();
|
|
178
|
-
if ((0, prompts_1.isCancel)(navigationSelect)) {
|
|
179
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
180
|
-
return [2 /*return*/, process.exit(0)];
|
|
181
|
-
}
|
|
182
|
-
if (!navigationSelect) return [3 /*break*/, 20];
|
|
183
|
-
return [4 /*yield*/, (0, prompts_1.select)({
|
|
184
|
-
message: 'What type of navigation would you like to use?',
|
|
185
|
-
options: [
|
|
186
|
-
{ value: 'stack', label: 'Stack' },
|
|
187
|
-
{ value: 'tabs', label: 'Tabs' },
|
|
188
|
-
{ value: 'drawer + tabs', label: 'Drawer + Tabs' }
|
|
189
|
-
]
|
|
190
|
-
})];
|
|
191
|
-
case 15:
|
|
192
|
-
navigationType = _b.sent();
|
|
193
|
-
if ((0, prompts_1.isCancel)(navigationType)) {
|
|
194
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
195
|
-
return [2 /*return*/, process.exit(0)];
|
|
196
|
-
}
|
|
197
|
-
cliResults.packages.push({
|
|
198
|
-
name: navigationSelect,
|
|
199
|
-
type: 'navigation',
|
|
200
|
-
options: {
|
|
201
|
-
type: navigationType
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
if (!(cliResults.flags.packageManager === 'bun' &&
|
|
205
|
-
defaultPackageManagerVersion &&
|
|
206
|
-
defaultPackageManagerVersion !== recommendedBunVersion)) return [3 /*break*/, 17];
|
|
207
|
-
warning('⚠️' + ' ' + " We've detected you're using Bun v".concat(defaultPackageManagerVersion, "."));
|
|
208
|
-
info('');
|
|
209
|
-
warning("Some packages may not work correctly if you continue. We recommend using Bun v".concat(recommendedBunVersion, " until peerDependencies are properly resolved with bun install."));
|
|
210
|
-
warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
|
|
211
|
-
info('');
|
|
212
|
-
warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
|
|
213
|
-
info('');
|
|
214
|
-
warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
|
|
215
|
-
info('');
|
|
216
|
-
warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
|
|
217
|
-
info('');
|
|
218
|
-
return [4 /*yield*/, (0, prompts_1.confirm)({
|
|
219
|
-
message: "Would you like to continue without switching to Bun v".concat(recommendedBunVersion, "?"),
|
|
220
|
-
initialValue: false
|
|
221
|
-
})];
|
|
222
|
-
case 16:
|
|
223
|
-
shouldContinue = _b.sent();
|
|
224
|
-
if ((0, prompts_1.isCancel)(shouldContinue)) {
|
|
225
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
226
|
-
return [2 /*return*/, process.exit(0)];
|
|
227
|
-
}
|
|
228
|
-
success("Great, we'll use ".concat(navigationSelect, "!"));
|
|
229
|
-
return [3 /*break*/, 19];
|
|
230
|
-
case 17:
|
|
231
|
-
if (!(cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion)) return [3 /*break*/, 19];
|
|
232
|
-
warning('⚠️' + ' ' + " We've detected you're using Bun but we are unable to determine which version you are using.");
|
|
233
|
-
info('');
|
|
234
|
-
warning("We recommend using Bun v".concat(recommendedBunVersion, " until peerDependencies are properly resolved with bun install. If you continue with a version that is not v").concat(recommendedBunVersion, ", some packages may not work correctly."));
|
|
235
|
-
warning("For more information, visit https://github.com/oven-sh/bun/issues/4946");
|
|
236
|
-
info('');
|
|
237
|
-
warning("To check your version of Bun, run:");
|
|
238
|
-
info('');
|
|
239
|
-
warning("\tbun -version");
|
|
240
|
-
info('');
|
|
241
|
-
warning("To switch to Bun v".concat(recommendedBunVersion, ", run:"));
|
|
242
|
-
info('');
|
|
243
|
-
warning("\tcurl -fsSL https://bun.sh/install | bash -s \"bun-v".concat(recommendedBunVersion, "\""));
|
|
244
|
-
info('');
|
|
245
|
-
warning("or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).");
|
|
246
|
-
info('');
|
|
247
|
-
return [4 /*yield*/, (0, prompts_1.confirm)({
|
|
248
|
-
message: "Would you like to continue with your current version of Bun?",
|
|
249
|
-
initialValue: false
|
|
250
|
-
})];
|
|
251
|
-
case 18:
|
|
252
|
-
shouldContinue = _b.sent();
|
|
253
|
-
if ((0, prompts_1.isCancel)(shouldContinue)) {
|
|
254
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
255
|
-
return [2 /*return*/, process.exit(0)];
|
|
256
|
-
}
|
|
257
|
-
success("Great, we'll use ".concat(navigationSelect, "!"));
|
|
258
|
-
_b.label = 19;
|
|
259
|
-
case 19: return [3 /*break*/, 21];
|
|
260
|
-
case 20:
|
|
261
|
-
success("No problem, skipping navigation for now.");
|
|
262
|
-
_b.label = 21;
|
|
263
|
-
case 21: return [4 /*yield*/, (0, prompts_1.select)({
|
|
264
|
-
message: 'What would you like to use for styling?',
|
|
265
|
-
options: navigationSelect === 'expo-router'
|
|
266
|
-
? [
|
|
267
|
-
{ value: 'nativewindui', label: 'NativeWindUI' },
|
|
268
|
-
{ value: 'nativewind', label: 'NativeWind' },
|
|
269
|
-
{ value: 'restyle', label: 'Restyle' },
|
|
270
|
-
{ value: 'stylesheet', label: 'StyleSheet' },
|
|
271
|
-
{ value: 'tamagui', label: 'Tamagui (experimental)' },
|
|
272
|
-
{ value: 'unistyles', label: 'Unistyles' }
|
|
273
|
-
]
|
|
274
|
-
: [
|
|
275
|
-
{ value: 'nativewind', label: 'NativeWind' },
|
|
276
|
-
{ value: 'restyle', label: 'Restyle' },
|
|
277
|
-
{ value: 'stylesheet', label: 'StyleSheet' },
|
|
278
|
-
{ value: 'tamagui', label: 'Tamagui (experimental)' },
|
|
279
|
-
{ value: 'unistyles', label: 'Unistyles' }
|
|
280
|
-
],
|
|
281
|
-
initialValue: navigationSelect === 'expo-router' ? 'nativewindui' : 'nativewind'
|
|
282
|
-
})];
|
|
283
|
-
case 22:
|
|
284
|
-
stylingSelect = _b.sent();
|
|
285
|
-
if ((0, prompts_1.isCancel)(stylingSelect)) {
|
|
286
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
287
|
-
return [2 /*return*/, process.exit(0)];
|
|
288
|
-
}
|
|
289
|
-
if (!(stylingSelect === 'nativewindui')) return [3 /*break*/, 24];
|
|
290
|
-
selectedComponents = [];
|
|
291
|
-
return [4 /*yield*/, (0, prompts_1.multiselect)({
|
|
292
|
-
message: 'Which components would you like to explore?',
|
|
293
|
-
options: [
|
|
294
|
-
{ value: 'action-sheet', label: 'Action Sheet' },
|
|
295
|
-
{ value: 'activity-indicator', label: 'Activity Indicator' },
|
|
296
|
-
{ value: 'activity-view', label: 'Activity View' },
|
|
297
|
-
{ value: 'alert', label: 'Alert' },
|
|
298
|
-
{ value: 'avatar', label: 'Avatar' },
|
|
299
|
-
{ value: 'bottom-sheet', label: 'Bottom Sheet' },
|
|
300
|
-
{ value: 'context-menu', label: 'Context Menu' },
|
|
301
|
-
{ value: 'date-picker', label: 'Date Picker' },
|
|
302
|
-
{ value: 'dropdown-menu', label: 'Dropdown Menu' },
|
|
303
|
-
{ value: 'picker', label: 'Picker' },
|
|
304
|
-
{ value: 'progress-indicator', label: 'Progress Indicator' },
|
|
305
|
-
{ value: 'ratings-indicator', label: 'Ratings Indicator' },
|
|
306
|
-
{ value: 'segmented-control', label: 'Segmented Control' },
|
|
307
|
-
{ value: 'selectable-text', label: 'Selectable Text' },
|
|
308
|
-
{ value: 'slider', label: 'Slider' },
|
|
309
|
-
{ value: 'text', label: 'Text' },
|
|
310
|
-
{ value: 'toggle', label: 'Toggle' }
|
|
311
|
-
],
|
|
312
|
-
required: false,
|
|
313
|
-
initialValues: [
|
|
314
|
-
'action-sheet',
|
|
315
|
-
'activity-indicator',
|
|
316
|
-
'activity-view',
|
|
317
|
-
'alert',
|
|
318
|
-
'avatar',
|
|
319
|
-
'bottom-sheet',
|
|
320
|
-
'context-menu',
|
|
321
|
-
'date-picker',
|
|
322
|
-
'dropdown-menu',
|
|
323
|
-
'picker',
|
|
324
|
-
'progress-indicator',
|
|
325
|
-
'ratings-indicator',
|
|
326
|
-
'segmented-control',
|
|
327
|
-
'selectable-text',
|
|
328
|
-
'slider',
|
|
329
|
-
'text',
|
|
330
|
-
'toggle'
|
|
331
|
-
]
|
|
332
|
-
})];
|
|
333
|
-
case 23:
|
|
334
|
-
selectedComponents = (_b.sent());
|
|
335
|
-
if ((0, prompts_1.isCancel)(selectedComponents)) {
|
|
336
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
337
|
-
return [2 /*return*/, process.exit(0)];
|
|
338
|
-
}
|
|
339
|
-
cliResults.packages.push({
|
|
340
|
-
name: 'nativewindui',
|
|
341
|
-
type: 'styling',
|
|
342
|
-
options: {
|
|
343
|
-
selectedComponents: selectedComponents
|
|
344
|
-
}
|
|
100
|
+
initialValue: 'npm'
|
|
345
101
|
});
|
|
346
|
-
|
|
347
|
-
return [3 /*break*/, 25];
|
|
348
|
-
case 24:
|
|
349
|
-
cliResults.packages.push({ name: stylingSelect, type: 'styling' });
|
|
350
|
-
success("You'll be styling with ease using ".concat(stylingSelect.toString().charAt(0).toUpperCase() + stylingSelect.toString().slice(1), "!"));
|
|
351
|
-
_b.label = 25;
|
|
352
|
-
case 25: return [4 /*yield*/, (0, prompts_1.select)({
|
|
353
|
-
message: 'What would you like to use for authentication?',
|
|
354
|
-
options: [
|
|
355
|
-
{ value: undefined, label: 'None' },
|
|
356
|
-
{ value: 'supabase', label: 'Supabase' },
|
|
357
|
-
{ value: 'firebase', label: 'Firebase' }
|
|
358
|
-
]
|
|
359
|
-
})];
|
|
360
|
-
case 26:
|
|
361
|
-
authenticationSelect = _b.sent();
|
|
362
|
-
if ((0, prompts_1.isCancel)(authenticationSelect)) {
|
|
363
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
364
|
-
return [2 /*return*/, process.exit(0)];
|
|
365
|
-
}
|
|
366
|
-
if (authenticationSelect) {
|
|
367
|
-
cliResults.packages.push({ name: authenticationSelect, type: 'authentication' });
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
success("No problem, skipping authentication for now.");
|
|
371
|
-
}
|
|
372
|
-
return [4 /*yield*/, (0, prompts_1.confirm)({
|
|
373
|
-
message: "Do you want to setup EAS",
|
|
374
|
-
initialValue: false
|
|
375
|
-
})];
|
|
376
|
-
case 27:
|
|
377
|
-
easEnabled = _b.sent();
|
|
378
|
-
if ((0, prompts_1.isCancel)(easEnabled)) {
|
|
379
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
380
|
-
return [2 /*return*/, process.exit(0)];
|
|
381
|
-
}
|
|
382
|
-
if (easEnabled) {
|
|
383
|
-
cliResults.flags.eas = true;
|
|
384
|
-
success("We'll setup EAS for you.");
|
|
385
|
-
}
|
|
386
|
-
else {
|
|
387
|
-
success("No problem, skipping eas for now.");
|
|
388
|
-
}
|
|
389
|
-
return [4 /*yield*/, (0, prompts_1.confirm)({
|
|
390
|
-
message: 'Would you like to save this configuration for future use?',
|
|
391
|
-
initialValue: false
|
|
392
|
-
})];
|
|
393
|
-
case 28:
|
|
394
|
-
shouldSaveConfig = _b.sent();
|
|
395
|
-
if ((0, prompts_1.isCancel)(shouldSaveConfig)) {
|
|
396
|
-
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
397
|
-
return [2 /*return*/, process.exit(0)];
|
|
398
|
-
}
|
|
399
|
-
if (!shouldSaveConfig) return [3 /*break*/, 31];
|
|
400
|
-
return [4 /*yield*/, (0, prompts_1.text)({
|
|
401
|
-
message: 'What do you want to name this configuration?',
|
|
402
|
-
placeholder: 'Default'
|
|
403
|
-
})];
|
|
404
|
-
case 29:
|
|
405
|
-
name = _b.sent();
|
|
406
|
-
if ((0, prompts_1.isCancel)(name)) {
|
|
102
|
+
if ((0, prompts_1.isCancel)(packageManagerSelect)) {
|
|
407
103
|
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
408
|
-
return
|
|
104
|
+
return process.exit(0);
|
|
409
105
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
106
|
+
cliResults.flags.packageManager = packageManagerSelect;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
if (options.bun || options.pnpm || options.npm || options.yarn) {
|
|
112
|
+
cliResults.flags.packageManager = options.bun ? 'bun' : options.pnpm ? 'pnpm' : options.npm ? 'npm' : 'yarn';
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const packageManagerSelect = yield (0, prompts_1.select)({
|
|
116
|
+
message: 'Which package manager would you like to use?',
|
|
117
|
+
options: [
|
|
118
|
+
{ value: 'npm', label: 'npm' },
|
|
119
|
+
{ value: 'yarn', label: 'yarn' },
|
|
120
|
+
{ value: 'pnpm', label: 'pnpm' },
|
|
121
|
+
{ value: 'bun', label: 'bun' }
|
|
122
|
+
]
|
|
123
|
+
});
|
|
124
|
+
if ((0, prompts_1.isCancel)(packageManagerSelect)) {
|
|
125
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
126
|
+
return process.exit(0);
|
|
127
|
+
}
|
|
128
|
+
cliResults.flags.packageManager = packageManagerSelect;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const navigationSelect = yield (0, prompts_1.select)({
|
|
132
|
+
message: 'What would you like to use for Navigation?',
|
|
133
|
+
options: [
|
|
134
|
+
{ value: 'react-navigation', label: 'React Navigation' },
|
|
135
|
+
{ value: 'expo-router', label: 'Expo Router' },
|
|
136
|
+
{ value: undefined, label: 'None' }
|
|
137
|
+
],
|
|
138
|
+
initialValue: 'expo-router'
|
|
139
|
+
});
|
|
140
|
+
if ((0, prompts_1.isCancel)(navigationSelect)) {
|
|
141
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
142
|
+
return process.exit(0);
|
|
143
|
+
}
|
|
144
|
+
if (navigationSelect) {
|
|
145
|
+
const navigationType = yield (0, prompts_1.select)({
|
|
146
|
+
message: 'What type of navigation would you like to use?',
|
|
147
|
+
options: [
|
|
148
|
+
{ value: 'stack', label: 'Stack' },
|
|
149
|
+
{ value: 'tabs', label: 'Tabs' },
|
|
150
|
+
{ value: 'drawer + tabs', label: 'Drawer + Tabs' }
|
|
151
|
+
]
|
|
152
|
+
});
|
|
153
|
+
if ((0, prompts_1.isCancel)(navigationType)) {
|
|
154
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
155
|
+
return process.exit(0);
|
|
156
|
+
}
|
|
157
|
+
cliResults.packages.push({
|
|
158
|
+
name: navigationSelect,
|
|
159
|
+
type: 'navigation',
|
|
160
|
+
options: {
|
|
161
|
+
type: navigationType
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
// If the user is using a version of bun that is anything but version 1.0.22, communicate a message
|
|
165
|
+
if (cliResults.flags.packageManager === 'bun' &&
|
|
166
|
+
defaultPackageManagerVersion &&
|
|
167
|
+
defaultPackageManagerVersion !== recommendedBunVersion) {
|
|
168
|
+
warning('⚠️' + ' ' + ` We've detected you're using Bun v${defaultPackageManagerVersion}.`);
|
|
169
|
+
info('');
|
|
170
|
+
warning(`Some packages may not work correctly if you continue. We recommend using Bun v${recommendedBunVersion} until peerDependencies are properly resolved with bun install.`);
|
|
171
|
+
warning(`For more information, visit https://github.com/oven-sh/bun/issues/4946`);
|
|
172
|
+
info('');
|
|
173
|
+
warning(`To switch to Bun v${recommendedBunVersion}, run:`);
|
|
174
|
+
info('');
|
|
175
|
+
warning(`\tcurl -fsSL https://bun.sh/install | bash -s "bun-v${recommendedBunVersion}"`);
|
|
176
|
+
info('');
|
|
177
|
+
warning(`or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).`);
|
|
178
|
+
info('');
|
|
179
|
+
const shouldContinue = yield (0, prompts_1.confirm)({
|
|
180
|
+
message: `Would you like to continue without switching to Bun v${recommendedBunVersion}?`,
|
|
181
|
+
initialValue: false
|
|
182
|
+
});
|
|
183
|
+
if ((0, prompts_1.isCancel)(shouldContinue)) {
|
|
184
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
185
|
+
return process.exit(0);
|
|
186
|
+
}
|
|
187
|
+
success(`Great, we'll use ${navigationSelect}!`);
|
|
188
|
+
}
|
|
189
|
+
else if (cliResults.flags.packageManager === 'bun' && !defaultPackageManagerVersion) {
|
|
190
|
+
warning('⚠️' + ' ' + ` We've detected you're using Bun but we are unable to determine which version you are using.`);
|
|
191
|
+
info('');
|
|
192
|
+
warning(`We recommend using Bun v${recommendedBunVersion} until peerDependencies are properly resolved with bun install. If you continue with a version that is not v${recommendedBunVersion}, some packages may not work correctly.`);
|
|
193
|
+
warning(`For more information, visit https://github.com/oven-sh/bun/issues/4946`);
|
|
194
|
+
info('');
|
|
195
|
+
warning(`To check your version of Bun, run:`);
|
|
196
|
+
info('');
|
|
197
|
+
warning(`\tbun -version`);
|
|
198
|
+
info('');
|
|
199
|
+
warning(`To switch to Bun v${recommendedBunVersion}, run:`);
|
|
200
|
+
info('');
|
|
201
|
+
warning(`\tcurl -fsSL https://bun.sh/install | bash -s "bun-v${recommendedBunVersion}"`);
|
|
202
|
+
info('');
|
|
203
|
+
warning(`or visit bun.sh/docs/installation for other installation methods (e.g. via Homebrew, npm, etc).`);
|
|
204
|
+
info('');
|
|
205
|
+
const shouldContinue = yield (0, prompts_1.confirm)({
|
|
206
|
+
message: `Would you like to continue with your current version of Bun?`,
|
|
207
|
+
initialValue: false
|
|
208
|
+
});
|
|
209
|
+
if ((0, prompts_1.isCancel)(shouldContinue)) {
|
|
210
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
211
|
+
return process.exit(0);
|
|
212
|
+
}
|
|
213
|
+
success(`Great, we'll use ${navigationSelect}!`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
success(`No problem, skipping navigation for now.`);
|
|
218
|
+
}
|
|
219
|
+
const stylingSelect = yield (0, prompts_1.select)({
|
|
220
|
+
message: 'What would you like to use for styling?',
|
|
221
|
+
options: navigationSelect === 'expo-router'
|
|
222
|
+
? [
|
|
223
|
+
{ value: 'nativewindui', label: 'NativeWindUI' },
|
|
224
|
+
{ value: 'nativewind', label: 'NativeWind' },
|
|
225
|
+
{ value: 'restyle', label: 'Restyle' },
|
|
226
|
+
{ value: 'stylesheet', label: 'StyleSheet' },
|
|
227
|
+
{ value: 'tamagui', label: 'Tamagui (experimental)' },
|
|
228
|
+
{ value: 'unistyles', label: 'Unistyles' }
|
|
229
|
+
]
|
|
230
|
+
: [
|
|
231
|
+
{ value: 'nativewind', label: 'NativeWind' },
|
|
232
|
+
{ value: 'restyle', label: 'Restyle' },
|
|
233
|
+
{ value: 'stylesheet', label: 'StyleSheet' },
|
|
234
|
+
{ value: 'tamagui', label: 'Tamagui (experimental)' },
|
|
235
|
+
{ value: 'unistyles', label: 'Unistyles' }
|
|
236
|
+
],
|
|
237
|
+
initialValue: navigationSelect === 'expo-router' ? 'nativewindui' : 'nativewind'
|
|
238
|
+
});
|
|
239
|
+
if ((0, prompts_1.isCancel)(stylingSelect)) {
|
|
240
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
241
|
+
return process.exit(0);
|
|
242
|
+
}
|
|
243
|
+
if (stylingSelect === 'nativewindui') {
|
|
244
|
+
let selectedComponents = [];
|
|
245
|
+
selectedComponents = (yield (0, prompts_1.multiselect)({
|
|
246
|
+
message: 'Which components would you like to explore?',
|
|
247
|
+
options: [
|
|
248
|
+
{ value: 'action-sheet', label: 'Action Sheet' },
|
|
249
|
+
{ value: 'activity-indicator', label: 'Activity Indicator' },
|
|
250
|
+
{ value: 'activity-view', label: 'Activity View' },
|
|
251
|
+
{ value: 'alert', label: 'Alert' },
|
|
252
|
+
{ value: 'avatar', label: 'Avatar' },
|
|
253
|
+
{ value: 'bottom-sheet', label: 'Bottom Sheet' },
|
|
254
|
+
{ value: 'context-menu', label: 'Context Menu' },
|
|
255
|
+
{ value: 'date-picker', label: 'Date Picker' },
|
|
256
|
+
{ value: 'dropdown-menu', label: 'Dropdown Menu' },
|
|
257
|
+
{ value: 'picker', label: 'Picker' },
|
|
258
|
+
{ value: 'progress-indicator', label: 'Progress Indicator' },
|
|
259
|
+
{ value: 'ratings-indicator', label: 'Ratings Indicator' },
|
|
260
|
+
{ value: 'segmented-control', label: 'Segmented Control' },
|
|
261
|
+
{ value: 'selectable-text', label: 'Selectable Text' },
|
|
262
|
+
{ value: 'slider', label: 'Slider' },
|
|
263
|
+
{ value: 'text', label: 'Text' },
|
|
264
|
+
{ value: 'toggle', label: 'Toggle' }
|
|
265
|
+
],
|
|
266
|
+
required: false,
|
|
267
|
+
initialValues: [
|
|
268
|
+
'action-sheet',
|
|
269
|
+
'activity-indicator',
|
|
270
|
+
'activity-view',
|
|
271
|
+
'alert',
|
|
272
|
+
'avatar',
|
|
273
|
+
'bottom-sheet',
|
|
274
|
+
'context-menu',
|
|
275
|
+
'date-picker',
|
|
276
|
+
'dropdown-menu',
|
|
277
|
+
'picker',
|
|
278
|
+
'progress-indicator',
|
|
279
|
+
'ratings-indicator',
|
|
280
|
+
'segmented-control',
|
|
281
|
+
'selectable-text',
|
|
282
|
+
'slider',
|
|
283
|
+
'text',
|
|
284
|
+
'toggle'
|
|
285
|
+
]
|
|
286
|
+
}));
|
|
287
|
+
if ((0, prompts_1.isCancel)(selectedComponents)) {
|
|
288
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
289
|
+
return process.exit(0);
|
|
415
290
|
}
|
|
291
|
+
cliResults.packages.push({
|
|
292
|
+
name: 'nativewindui',
|
|
293
|
+
type: 'styling',
|
|
294
|
+
options: {
|
|
295
|
+
selectedComponents: selectedComponents
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
success(`You'll be styling with ease using NativeWindUI!`);
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
cliResults.packages.push({ name: stylingSelect, type: 'styling' });
|
|
302
|
+
success(`You'll be styling with ease using ${stylingSelect.toString().charAt(0).toUpperCase() + stylingSelect.toString().slice(1)}!`);
|
|
303
|
+
}
|
|
304
|
+
const authenticationSelect = yield (0, prompts_1.select)({
|
|
305
|
+
message: 'What would you like to use for authentication?',
|
|
306
|
+
options: [
|
|
307
|
+
{ value: undefined, label: 'None' },
|
|
308
|
+
{ value: 'supabase', label: 'Supabase' },
|
|
309
|
+
{ value: 'firebase', label: 'Firebase' }
|
|
310
|
+
]
|
|
311
|
+
});
|
|
312
|
+
if ((0, prompts_1.isCancel)(authenticationSelect)) {
|
|
313
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
314
|
+
return process.exit(0);
|
|
315
|
+
}
|
|
316
|
+
if (authenticationSelect) {
|
|
317
|
+
cliResults.packages.push({ name: authenticationSelect, type: 'authentication' });
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
success(`No problem, skipping authentication for now.`);
|
|
321
|
+
}
|
|
322
|
+
const easEnabled = yield (0, prompts_1.confirm)({
|
|
323
|
+
message: `Do you want to setup EAS`,
|
|
324
|
+
initialValue: false
|
|
416
325
|
});
|
|
326
|
+
if ((0, prompts_1.isCancel)(easEnabled)) {
|
|
327
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
328
|
+
return process.exit(0);
|
|
329
|
+
}
|
|
330
|
+
if (easEnabled) {
|
|
331
|
+
cliResults.flags.eas = true;
|
|
332
|
+
success(`We'll setup EAS for you.`);
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
success(`No problem, skipping eas for now.`);
|
|
336
|
+
}
|
|
337
|
+
// Offer user ability to save configuration
|
|
338
|
+
const shouldSaveConfig = yield (0, prompts_1.confirm)({
|
|
339
|
+
message: 'Would you like to save this configuration for future use?',
|
|
340
|
+
initialValue: false
|
|
341
|
+
});
|
|
342
|
+
if ((0, prompts_1.isCancel)(shouldSaveConfig)) {
|
|
343
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
344
|
+
return process.exit(0);
|
|
345
|
+
}
|
|
346
|
+
if (shouldSaveConfig) {
|
|
347
|
+
const name = yield (0, prompts_1.text)({
|
|
348
|
+
message: 'What do you want to name this configuration?',
|
|
349
|
+
placeholder: 'Default'
|
|
350
|
+
});
|
|
351
|
+
if ((0, prompts_1.isCancel)(name)) {
|
|
352
|
+
(0, prompts_1.cancel)('Cancelled... 👋');
|
|
353
|
+
return process.exit(0);
|
|
354
|
+
}
|
|
355
|
+
yield (0, configStorage_1.saveConfig)({ name, cliResults });
|
|
356
|
+
}
|
|
357
|
+
return cliResults;
|
|
417
358
|
});
|
|
418
359
|
}
|
|
419
360
|
exports.runCLI = runCLI;
|
|
420
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMENBQXNGO0FBRXRGLDBDQUE4QztBQVU5Qyx5REFBc0U7QUFDdEUsaURBQTBEO0FBRTFELElBQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBRXZDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COzs7Ozs7b0JBRWhELE9BQU8sR0FFbkIsT0FBTyxtQkFGWSxFQUNyQixLQUNFLE9BQU8sTUFEd0IsRUFBeEIsSUFBSSxVQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsT0FBTyxhQUFBLENBQ3JCO29CQUdOLFVBQVUsR0FBRywwQkFBYyxDQUFDO29CQUVsQyxzREFBc0Q7b0JBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUNyQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFDakQsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7b0JBRXJDLHlCQUF5QjtvQkFDekIsVUFBVSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBR0oscUJBQU0sSUFBQSwyQkFBVyxHQUFFLEVBQUE7O29CQUFsQyxZQUFZLEdBQUcsU0FBbUI7eUJBR3BDLENBQUEsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUEsRUFBdkIsd0JBQXVCO29CQUNGLHFCQUFNLElBQUEsaUJBQU8sRUFBQzs0QkFDbkMsT0FBTyxFQUFFLDhDQUE4Qzs0QkFDdkQsWUFBWSxFQUFFLEtBQUs7eUJBQ3BCLENBQUMsRUFBQTs7b0JBSEksY0FBYyxHQUFHLFNBR3JCO29CQUVGLElBQUksSUFBQSxrQkFBUSxFQUFD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
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuQ0xJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9ydW5DTEkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQ0EsNENBQXNGO0FBRXRGLDRDQUE4QztBQVU5QywyREFBc0U7QUFDdEUsbURBQTBEO0FBRTFELE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDO0FBRXZDLFNBQXNCLE1BQU0sQ0FBQyxPQUFnQixFQUFFLFdBQW1COztRQUNoRSxNQUFNLEVBQ0osVUFBVSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQ3ZCLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQ2xDLEdBQUcsT0FBTyxDQUFDO1FBRVosMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLDBCQUFjLENBQUM7UUFFbEMsc0RBQXNEO1FBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3JDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2pELFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBRXJDLHlCQUF5QjtRQUN6QixVQUFVLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUV6Qix3RUFBd0U7UUFDeEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLDJCQUFXLEdBQUUsQ0FBQztRQUV6QywyRUFBMkU7UUFDM0UsSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDO2dCQUNuQyxPQUFPLEVBQUUsOENBQThDO2dCQUN2RCxZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7WUFFSCxJQUFJLElBQUEsa0JBQVEsRUFBQyxjQUFjLENBQUMsRUFB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
|