@builder.io/mitosis-cli 0.0.17-10 → 0.0.17-102

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.
Files changed (27) hide show
  1. package/dist/build/build.js +246 -281
  2. package/dist/build/helpers/context.js +85 -0
  3. package/dist/build/helpers/extensions.js +20 -6
  4. package/dist/build/helpers/transpile-solid-file.js +18 -24
  5. package/dist/build/helpers/transpile.js +28 -31
  6. package/dist/commands/compile.js +1 -1
  7. package/dist/commands/new.js +1 -1
  8. package/dist/helpers/fast-clone.js +6 -0
  9. package/dist/templates/component.lite.tsx.ejs +2 -2
  10. package/dist/templates/library-simple/src/components/my-component.lite.jsx +2 -4
  11. package/dist/templates/library-simple/src/components/my-component.lite.tsx +2 -4
  12. package/dist/templates/library-simple/src/global.d.ts +2 -0
  13. package/dist/types/build/helpers/context.d.ts +6 -0
  14. package/dist/types/build/helpers/extensions.d.ts +1 -1
  15. package/dist/types/build/helpers/transpile.d.ts +8 -0
  16. package/dist/types/helpers/fast-clone.d.ts +1 -0
  17. package/dist/types/templates/library-simple/src/components/my-component.lite.d.ts +1 -2
  18. package/package.json +6 -6
  19. package/readme.md +0 -14
  20. package/dist/build/helpers/compile-vue-file.js +0 -250
  21. package/dist/build/helpers/compile-vue-v2-file.js +0 -255
  22. package/dist/build/helpers/transpile-optional-chaining.js +0 -20
  23. package/dist/build/helpers/transpile-vue-binding-expression.js +0 -42
  24. package/dist/types/build/helpers/compile-vue-file.d.ts +0 -18
  25. package/dist/types/build/helpers/compile-vue-v2-file.d.ts +0 -9
  26. package/dist/types/build/helpers/transpile-optional-chaining.d.ts +0 -1
  27. package/dist/types/build/helpers/transpile-vue-binding-expression.d.ts +0 -1
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
- if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
- return cooked;
5
- };
6
2
  var __assign = (this && this.__assign) || function () {
7
3
  __assign = Object.assign || function(t) {
8
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -14,29 +10,6 @@ var __assign = (this && this.__assign) || function () {
14
10
  };
15
11
  return __assign.apply(this, arguments);
16
12
  };
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
22
- }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
41
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -89,16 +62,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
89
62
  exports.build = void 0;
90
63
  var mitosis_1 = require("@builder.io/mitosis");
91
64
  var debug_1 = __importDefault(require("debug"));
92
- var dedent_1 = __importDefault(require("dedent"));
93
65
  var fast_glob_1 = __importDefault(require("fast-glob"));
66
+ var function_1 = require("fp-ts/lib/function");
94
67
  var fs_extra_1 = require("fs-extra");
95
- var json5 = __importStar(require("json5"));
96
68
  var lodash_1 = require("lodash");
97
69
  var micromatch_1 = __importDefault(require("micromatch"));
70
+ var fast_clone_1 = require("../helpers/fast-clone");
71
+ var context_1 = require("./helpers/context");
98
72
  var extensions_1 = require("./helpers/extensions");
99
- var get_simple_id_1 = require("./helpers/get-simple-id");
100
73
  var transpile_1 = require("./helpers/transpile");
101
- var transpile_optional_chaining_1 = require("./helpers/transpile-optional-chaining");
102
74
  var transpile_solid_file_1 = require("./helpers/transpile-solid-file");
103
75
  var cwd = process.cwd();
104
76
  var DEFAULT_CONFIG = {
@@ -107,83 +79,7 @@ var DEFAULT_CONFIG = {
107
79
  files: 'src/*',
108
80
  overridesDir: 'overrides',
109
81
  };
110
- var DEFAULT_OPTIONS = {
111
- vue: {
112
- cssNamespace: function () { return (0, get_simple_id_1.getSimpleId)(); },
113
- namePrefix: function (path) { return (path.includes('/blocks/') ? 'builder' : undefined); },
114
- builderRegister: true,
115
- },
116
- };
117
- function build(config) {
118
- var _a;
119
- return __awaiter(this, void 0, void 0, function () {
120
- var options, tsLiteFiles, _b, _c, _d;
121
- var _this = this;
122
- return __generator(this, function (_e) {
123
- switch (_e.label) {
124
- case 0:
125
- options = __assign(__assign(__assign({}, DEFAULT_CONFIG), config), { options: __assign(__assign(__assign({}, DEFAULT_OPTIONS), config === null || config === void 0 ? void 0 : config.options), { vue: __assign(__assign({}, DEFAULT_OPTIONS.vue), (_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.vue) }) });
126
- return [4 /*yield*/, clean(options)];
127
- case 1:
128
- _e.sent();
129
- _c = (_b = Promise).all;
130
- _d = micromatch_1.default;
131
- return [4 /*yield*/, (0, fast_glob_1.default)(options.files, { cwd: cwd })];
132
- case 2: return [4 /*yield*/, _c.apply(_b, [_d.apply(void 0, [_e.sent(), "**/*.lite.tsx"]).map(function (path) { return __awaiter(_this, void 0, void 0, function () {
133
- var parsed, _a, err_1;
134
- return __generator(this, function (_b) {
135
- switch (_b.label) {
136
- case 0:
137
- _b.trys.push([0, 2, , 3]);
138
- _a = mitosis_1.parseJsx;
139
- return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
140
- case 1:
141
- parsed = _a.apply(void 0, [_b.sent(), {
142
- jsonHookNames: ['registerComponent'],
143
- }]);
144
- return [2 /*return*/, {
145
- path: path,
146
- mitosisJson: parsed,
147
- }];
148
- case 2:
149
- err_1 = _b.sent();
150
- console.error('Could not parse file:', path);
151
- throw err_1;
152
- case 3: return [2 /*return*/];
153
- }
154
- });
155
- }); })])];
156
- case 3:
157
- tsLiteFiles = _e.sent();
158
- return [4 /*yield*/, Promise.all(options.targets.map(function (target) { return __awaiter(_this, void 0, void 0, function () {
159
- var jsFiles;
160
- return __generator(this, function (_a) {
161
- switch (_a.label) {
162
- case 0: return [4 /*yield*/, buildTsFiles({ target: target, options: options })];
163
- case 1:
164
- jsFiles = _a.sent();
165
- return [4 /*yield*/, Promise.all([
166
- outputTsFiles(target, jsFiles, options),
167
- outputTsxLiteFiles(target, tsLiteFiles, options),
168
- ])];
169
- case 2:
170
- _a.sent();
171
- return [4 /*yield*/, outputOverrides(target, options)];
172
- case 3:
173
- _a.sent();
174
- return [2 /*return*/];
175
- }
176
- });
177
- }); }))];
178
- case 4:
179
- _e.sent();
180
- console.info('Done!');
181
- return [2 /*return*/];
182
- }
183
- });
184
- });
185
- }
186
- exports.build = build;
82
+ var getOptions = function (config) { return (__assign(__assign(__assign({}, DEFAULT_CONFIG), config), { options: __assign(__assign({}, DEFAULT_CONFIG.options), config === null || config === void 0 ? void 0 : config.options) })); };
187
83
  function clean(options) {
188
84
  return __awaiter(this, void 0, void 0, function () {
189
85
  var files;
@@ -210,55 +106,107 @@ function clean(options) {
210
106
  });
211
107
  });
212
108
  }
213
- function outputOverrides(target, options) {
109
+ var getMitosisComponentJSONs = function (options) { return __awaiter(void 0, void 0, void 0, function () {
110
+ var _a, _b, _c;
111
+ var _d;
112
+ return __generator(this, function (_e) {
113
+ switch (_e.label) {
114
+ case 0:
115
+ _b = (_a = Promise).all;
116
+ _c = micromatch_1.default;
117
+ return [4 /*yield*/, (0, fast_glob_1.default)(options.files, { cwd: cwd })];
118
+ case 1: return [2 /*return*/, _b.apply(_a, [_c.apply(void 0, [_e.sent(), "**/*.".concat((_d = options.extension) !== null && _d !== void 0 ? _d : 'lite.tsx')]).map(function (path) { return __awaiter(void 0, void 0, void 0, function () {
119
+ var file, parsed, err_1;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ _a.trys.push([0, 3, , 4]);
124
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
125
+ case 1:
126
+ file = _a.sent();
127
+ return [4 /*yield*/, (options.parser ? options.parser(file) : (0, mitosis_1.parseJsx)(file))];
128
+ case 2:
129
+ parsed = _a.sent();
130
+ return [2 /*return*/, {
131
+ path: path,
132
+ mitosisJson: parsed,
133
+ }];
134
+ case 3:
135
+ err_1 = _a.sent();
136
+ console.error('Could not parse file:', path);
137
+ throw err_1;
138
+ case 4: return [2 /*return*/];
139
+ }
140
+ });
141
+ }); })])];
142
+ }
143
+ });
144
+ }); };
145
+ var getTargetContexts = function (options) {
146
+ return options.targets.map(function (target) { return ({
147
+ target: target,
148
+ generator: getGeneratorForTarget({ target: target, options: options }),
149
+ outputPath: getTargetPath({ target: target }),
150
+ }); });
151
+ };
152
+ var buildAndOutputNonComponentFiles = function (targetContext) { return __awaiter(void 0, void 0, void 0, function () {
153
+ var jsFiles;
154
+ return __generator(this, function (_a) {
155
+ switch (_a.label) {
156
+ case 0: return [4 /*yield*/, buildNonComponentFiles(targetContext)];
157
+ case 1:
158
+ jsFiles = _a.sent();
159
+ return [4 /*yield*/, outputNonComponentFiles(__assign(__assign({}, targetContext), { files: jsFiles }))];
160
+ case 2:
161
+ _a.sent();
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ }); };
166
+ function build(config) {
214
167
  return __awaiter(this, void 0, void 0, function () {
215
- var kebabTarget, outputDirPath, files;
168
+ var options, mitosisComponents, targetContexts;
216
169
  var _this = this;
217
170
  return __generator(this, function (_a) {
218
171
  switch (_a.label) {
219
172
  case 0:
220
- kebabTarget = (0, lodash_1.kebabCase)(target);
221
- outputDirPath = "".concat(options.overridesDir, "/").concat(kebabTarget);
222
- return [4 /*yield*/, (0, fast_glob_1.default)([
223
- "".concat(outputDirPath, "/**/*"),
224
- "!".concat(outputDirPath, "/node_modules/**/*"),
225
- ])];
173
+ options = getOptions(config);
174
+ // clean output directory
175
+ return [4 /*yield*/, clean(options)];
226
176
  case 1:
227
- files = _a.sent();
228
- return [4 /*yield*/, Promise.all(files.map(function (file) { return __awaiter(_this, void 0, void 0, function () {
229
- var contents, esbuildTranspile, targetPaths;
177
+ // clean output directory
178
+ _a.sent();
179
+ return [4 /*yield*/, getMitosisComponentJSONs(options)];
180
+ case 2:
181
+ mitosisComponents = _a.sent();
182
+ targetContexts = getTargetContexts(options);
183
+ return [4 /*yield*/, Promise.all(targetContexts.map(function (targetContext) { return __awaiter(_this, void 0, void 0, function () {
184
+ var files, targetContextWithConfig;
230
185
  return __generator(this, function (_a) {
231
186
  switch (_a.label) {
232
- case 0: return [4 /*yield*/, (0, fs_extra_1.readFile)(file, 'utf8')];
187
+ case 0:
188
+ files = (0, fast_clone_1.fastClone)(mitosisComponents);
189
+ targetContextWithConfig = __assign(__assign({}, targetContext), { options: options });
190
+ return [4 /*yield*/, Promise.all([
191
+ buildAndOutputNonComponentFiles(targetContextWithConfig),
192
+ buildAndOutputComponentFiles(__assign(__assign({}, targetContextWithConfig), { files: files })),
193
+ ])];
233
194
  case 1:
234
- contents = _a.sent();
235
- esbuildTranspile = file.match(/\.tsx?$/);
236
- if (!esbuildTranspile) return [3 /*break*/, 3];
237
- return [4 /*yield*/, (0, transpile_1.transpile)({ path: file, target: target, options: options })];
238
- case 2:
239
- contents = _a.sent();
240
- _a.label = 3;
241
- case 3:
242
- targetPaths = getTargetPaths(target);
243
- return [4 /*yield*/, Promise.all(targetPaths.map(function (targetPath) {
244
- return (0, fs_extra_1.outputFile)(file
245
- .replace("".concat(outputDirPath), "".concat(options.dest, "/").concat(targetPath))
246
- .replace(/\.tsx?$/, '.js'), contents);
247
- }))];
248
- case 4:
249
195
  _a.sent();
250
196
  return [2 /*return*/];
251
197
  }
252
198
  });
253
199
  }); }))];
254
- case 2:
200
+ case 3:
255
201
  _a.sent();
202
+ console.info('Done!');
256
203
  return [2 /*return*/];
257
204
  }
258
205
  });
259
206
  });
260
207
  }
261
- var getTranspilerForTarget = function (_a) {
208
+ exports.build = build;
209
+ var getGeneratorForTarget = function (_a) {
262
210
  var target = _a.target, options = _a.options;
263
211
  switch (target) {
264
212
  case 'customElement':
@@ -267,8 +215,12 @@ var getTranspilerForTarget = function (_a) {
267
215
  return (0, mitosis_1.componentToHtml)(options.options.html);
268
216
  case 'reactNative':
269
217
  return (0, mitosis_1.componentToReactNative)({ stateType: 'useState' });
218
+ case 'vue2':
219
+ return (0, mitosis_1.componentToVue2)(options.options.vue2);
270
220
  case 'vue':
271
- return (0, mitosis_1.componentToVue)(options.options.vue);
221
+ console.log('Targeting Vue: defaulting to vue v3');
222
+ case 'vue3':
223
+ return (0, mitosis_1.componentToVue3)(options.options.vue3);
272
224
  case 'angular':
273
225
  return (0, mitosis_1.componentToAngular)(options.options.angular);
274
226
  case 'react':
@@ -281,11 +233,27 @@ var getTranspilerForTarget = function (_a) {
281
233
  return (0, mitosis_1.componentToCustomElement)(options.options.webcomponent);
282
234
  case 'svelte':
283
235
  return (0, mitosis_1.componentToSvelte)(options.options.svelte);
236
+ case 'qwik':
237
+ return (0, mitosis_1.componentToQwik)(options.options.qwik);
238
+ case 'marko':
239
+ return (0, mitosis_1.componentToMarko)(options.options.marko);
240
+ case 'preact':
241
+ return (0, mitosis_1.componentToPreact)(options.options.preact);
242
+ case 'lit':
243
+ return (0, mitosis_1.componentToLit)(options.options.lit);
284
244
  default:
285
- // TO-DO: throw instead of `never`
286
- return null;
245
+ throw new Error('CLI does not yet support target: ' + target);
287
246
  }
288
247
  };
248
+ /**
249
+ * Output generated component file, before it is minified and transpiled into JS.
250
+ */
251
+ var checkShouldOutputTypeScript = function (_a) {
252
+ var _b;
253
+ var target = _a.target, options = _a.options;
254
+ var isTypescript = (_b = options.options[target]) === null || _b === void 0 ? void 0 : _b.typescript;
255
+ return isTypescript;
256
+ };
289
257
  var replaceFileExtensionForTarget = function (_a) {
290
258
  var target = _a.target, path = _a.path;
291
259
  return path.replace(/\.lite\.tsx$/, (0, extensions_1.getFileExtensionForTarget)(target));
@@ -293,38 +261,34 @@ var replaceFileExtensionForTarget = function (_a) {
293
261
  /**
294
262
  * Transpiles and outputs Mitosis component files.
295
263
  */
296
- function outputTsxLiteFiles(target, files, options) {
264
+ function buildAndOutputComponentFiles(_a) {
265
+ var target = _a.target, files = _a.files, options = _a.options, generator = _a.generator, outputPath = _a.outputPath;
297
266
  return __awaiter(this, void 0, void 0, function () {
298
- var kebabTarget, debugTarget, transpiler, output;
267
+ var debugTarget, output;
299
268
  var _this = this;
300
- return __generator(this, function (_a) {
301
- switch (_a.label) {
269
+ return __generator(this, function (_b) {
270
+ switch (_b.label) {
302
271
  case 0:
303
- kebabTarget = (0, lodash_1.kebabCase)(target);
304
272
  debugTarget = (0, debug_1.default)("mitosis:".concat(target));
305
- transpiler = getTranspilerForTarget({ options: options, target: target });
306
273
  output = files.map(function (_a) {
307
274
  var path = _a.path, mitosisJson = _a.mitosisJson;
308
275
  return __awaiter(_this, void 0, void 0, function () {
309
- var outputFilePath, overrideFilePath, overrideFile, _b, transpiled, original, _c, registerComponentHook, outputDir, _d;
310
- return __generator(this, function (_e) {
311
- switch (_e.label) {
276
+ var outputFilePath, overrideFilePath, overrideFile, _b, transpiled, original, _c, outputDir;
277
+ return __generator(this, function (_d) {
278
+ switch (_d.label) {
312
279
  case 0:
313
- outputFilePath = replaceFileExtensionForTarget({
314
- target: target,
315
- path: path,
316
- });
317
- overrideFilePath = "".concat(options.overridesDir, "/").concat(kebabTarget, "/").concat(outputFilePath);
280
+ outputFilePath = replaceFileExtensionForTarget({ target: target, path: path });
281
+ overrideFilePath = "".concat(options.overridesDir, "/").concat(outputPath, "/").concat(outputFilePath);
318
282
  return [4 /*yield*/, (0, fs_extra_1.pathExists)(overrideFilePath)];
319
283
  case 1:
320
- if (!(_e.sent())) return [3 /*break*/, 3];
284
+ if (!(_d.sent())) return [3 /*break*/, 3];
321
285
  return [4 /*yield*/, (0, fs_extra_1.readFile)(overrideFilePath, 'utf8')];
322
286
  case 2:
323
- _b = _e.sent();
287
+ _b = _d.sent();
324
288
  return [3 /*break*/, 4];
325
289
  case 3:
326
290
  _b = null;
327
- _e.label = 4;
291
+ _d.label = 4;
328
292
  case 4:
329
293
  overrideFile = _b;
330
294
  debugTarget("transpiling ".concat(path, "..."));
@@ -333,7 +297,7 @@ function outputTsxLiteFiles(target, files, options) {
333
297
  debugTarget("override exists for ".concat(path, ": ").concat(!!overrideFile));
334
298
  }
335
299
  try {
336
- transpiled = overrideFile !== null && overrideFile !== void 0 ? overrideFile : transpiler({ path: path, component: mitosisJson });
300
+ transpiled = overrideFile !== null && overrideFile !== void 0 ? overrideFile : generator({ path: path, component: mitosisJson });
337
301
  debugTarget("Success: transpiled ".concat(path, ". Output length: ").concat(transpiled.length));
338
302
  }
339
303
  catch (error) {
@@ -346,8 +310,11 @@ function outputTsxLiteFiles(target, files, options) {
346
310
  switch (_c) {
347
311
  case 'solid': return [3 /*break*/, 5];
348
312
  case 'reactNative': return [3 /*break*/, 7];
313
+ case 'preact': return [3 /*break*/, 7];
349
314
  case 'react': return [3 /*break*/, 7];
350
315
  case 'vue': return [3 /*break*/, 9];
316
+ case 'vue2': return [3 /*break*/, 9];
317
+ case 'vue3': return [3 /*break*/, 9];
351
318
  }
352
319
  return [3 /*break*/, 10];
353
320
  case 5: return [4 /*yield*/, (0, transpile_solid_file_1.transpileSolidFile)({
@@ -356,7 +323,7 @@ function outputTsxLiteFiles(target, files, options) {
356
323
  mitosisComponent: mitosisJson,
357
324
  })];
358
325
  case 6:
359
- transpiled = _e.sent();
326
+ transpiled = _d.sent();
360
327
  return [3 /*break*/, 10];
361
328
  case 7: return [4 /*yield*/, (0, transpile_1.transpile)({
362
329
  path: path,
@@ -365,165 +332,164 @@ function outputTsxLiteFiles(target, files, options) {
365
332
  options: options,
366
333
  })];
367
334
  case 8:
368
- transpiled = _e.sent();
369
- registerComponentHook = mitosisJson.meta.registerComponent;
370
- if (registerComponentHook) {
371
- transpiled = (0, dedent_1.default)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n import { registerComponent } from '../functions/register-component';\n \n ", "\n \n registerComponent(", ", ", ");\n "], ["\n import { registerComponent } from '../functions/register-component';\n \n ", "\n \n registerComponent(", ", ", ");\n "])), transpiled, mitosisJson.name, json5.stringify(registerComponentHook));
372
- }
335
+ transpiled = _d.sent();
373
336
  return [3 /*break*/, 10];
374
- case 9:
375
- // TODO: transform to CJS (?)
376
- transpiled = (0, transpile_optional_chaining_1.transpileOptionalChaining)(transpiled).replace(/\.lite(['"];)/g, '$1');
377
- _e.label = 10;
337
+ case 9: return [3 /*break*/, 10];
378
338
  case 10:
379
- outputDir = "".concat(options.dest, "/").concat(kebabTarget);
380
- _d = target;
381
- switch (_d) {
382
- case 'vue': return [3 /*break*/, 11];
383
- }
384
- return [3 /*break*/, 13];
385
- case 11:
386
- // Nuxt
387
- return [4 /*yield*/, (0, fs_extra_1.outputFile)("".concat(outputDir, "/nuxt2/").concat(outputFilePath), transpiled)];
388
- case 12:
389
- // Nuxt
390
- _e.sent();
391
- return [3 /*break*/, 15];
392
- case 13: return [4 /*yield*/, Promise.all(__spreadArray([
393
- // this is the default output
394
- (0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(outputFilePath), transpiled)
395
- ], (target === 'swift' || target === 'svelte'
396
- ? []
397
- : [(0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(path), original)]), true))];
398
- case 14:
399
- _e.sent();
400
- return [3 /*break*/, 15];
401
- case 15: return [2 /*return*/];
339
+ outputDir = "".concat(options.dest, "/").concat(outputPath);
340
+ return [4 /*yield*/, Promise.all(__spreadArray([
341
+ // this is the default output
342
+ (0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(outputFilePath), transpiled)
343
+ ], (checkShouldOutputTypeScript({ target: target, options: options })
344
+ ? [(0, fs_extra_1.outputFile)("".concat(outputDir, "/").concat(path), original)]
345
+ : []), true))];
346
+ case 11:
347
+ _d.sent();
348
+ return [2 /*return*/];
402
349
  }
403
350
  });
404
351
  });
405
352
  });
406
353
  return [4 /*yield*/, Promise.all(output)];
407
354
  case 1:
408
- _a.sent();
355
+ _b.sent();
409
356
  return [2 /*return*/];
410
357
  }
411
358
  });
412
359
  });
413
360
  }
414
- function getTargetPaths(target) {
415
- var kebabTarget = (0, lodash_1.kebabCase)(target);
416
- var targetPaths = target === 'vue' ? ['vue/nuxt2', 'vue/vue2', 'vue/vue3'] : [kebabTarget];
417
- return targetPaths;
418
- }
361
+ var getTargetPath = function (_a) {
362
+ var target = _a.target;
363
+ switch (target) {
364
+ case 'vue2':
365
+ return 'vue/vue2';
366
+ case 'vue':
367
+ case 'vue3':
368
+ return 'vue/vue3';
369
+ default:
370
+ return (0, lodash_1.kebabCase)(target);
371
+ }
372
+ };
373
+ var getNonComponentFileExtension = (0, function_1.flow)(checkShouldOutputTypeScript, function (shouldOutputTypeScript) {
374
+ return shouldOutputTypeScript ? '.ts' : '.js';
375
+ });
419
376
  /**
420
377
  * Outputs non-component files to the destination directory, without modifying them.
421
378
  */
422
- function outputTsFiles(target, files, options) {
423
- return __awaiter(this, void 0, void 0, function () {
424
- var targetPaths, output, _loop_1, _i, targetPaths_1, targetPath;
425
- return __generator(this, function (_a) {
426
- switch (_a.label) {
379
+ var outputNonComponentFiles = function (_a) {
380
+ var files = _a.files, options = _a.options, outputPath = _a.outputPath, target = _a.target;
381
+ return __awaiter(void 0, void 0, void 0, function () {
382
+ var extension;
383
+ return __generator(this, function (_b) {
384
+ switch (_b.label) {
427
385
  case 0:
428
- targetPaths = getTargetPaths(target);
429
- output = [];
430
- _loop_1 = function (targetPath) {
431
- output.push.apply(output, files.map(function (_a) {
386
+ extension = getNonComponentFileExtension({ target: target, options: options });
387
+ return [4 /*yield*/, Promise.all(files.map(function (_a) {
432
388
  var path = _a.path, output = _a.output;
433
- return (0, fs_extra_1.outputFile)("".concat(options.dest, "/").concat(targetPath, "/").concat(path.replace(/\.tsx?$/, '.js')), output);
434
- }));
435
- };
436
- for (_i = 0, targetPaths_1 = targetPaths; _i < targetPaths_1.length; _i++) {
437
- targetPath = targetPaths_1[_i];
438
- _loop_1(targetPath);
439
- }
440
- return [4 /*yield*/, Promise.all(output)];
389
+ return (0, fs_extra_1.outputFile)("".concat(options.dest, "/").concat(outputPath, "/").concat(path.replace(/\.tsx?$/, extension)), output);
390
+ }))];
441
391
  case 1:
442
- _a.sent();
392
+ _b.sent();
443
393
  return [2 /*return*/];
444
394
  }
445
395
  });
446
396
  });
447
- }
448
- var buildContextFile = function (_a) {
449
- var path = _a.path, options = _a.options, target = _a.target;
450
- return __awaiter(void 0, void 0, void 0, function () {
451
- var name, context, _b;
452
- return __generator(this, function (_c) {
453
- switch (_c.label) {
454
- case 0:
455
- name = (0, lodash_1.upperFirst)((0, lodash_1.camelCase)((0, lodash_1.last)(path.split('/')).split('.')[0]));
456
- _b = mitosis_1.parseContext;
457
- return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
397
+ };
398
+ function buildContextFile(_a) {
399
+ var target = _a.target, options = _a.options, path = _a.path;
400
+ return __awaiter(this, void 0, void 0, function () {
401
+ var output;
402
+ return __generator(this, function (_b) {
403
+ switch (_b.label) {
404
+ case 0: return [4 /*yield*/, (0, context_1.generateContextFile)({ path: path, options: options, target: target })];
458
405
  case 1:
459
- context = _b.apply(void 0, [_c.sent(), { name: name }]);
460
- if (!context) {
461
- console.warn('Could not parse context from file', path);
462
- }
463
- else {
464
- switch (target) {
465
- case 'svelte':
466
- return [2 /*return*/, (0, mitosis_1.contextToSvelte)(options.options.svelte)({ context: context })];
467
- case 'vue':
468
- return [2 /*return*/, (0, mitosis_1.contextToVue)(context)];
469
- case 'solid':
470
- return [2 /*return*/, (0, mitosis_1.contextToSolid)()({ context: context })];
471
- case 'react':
472
- case 'reactNative':
473
- return [2 /*return*/, (0, mitosis_1.contextToReact)()({ context: context })];
474
- default:
475
- console.warn('Context files are not supported for this target. Outputting no-op');
476
- return [2 /*return*/, (0, mitosis_1.contextToVue)(context)];
477
- }
478
- }
479
- return [2 /*return*/];
406
+ output = _b.sent();
407
+ if (!!checkShouldOutputTypeScript({ target: target, options: options })) return [3 /*break*/, 3];
408
+ return [4 /*yield*/, (0, transpile_1.transpile)({
409
+ path: path,
410
+ target: target,
411
+ content: output,
412
+ options: options,
413
+ })];
414
+ case 2:
415
+ output = _b.sent();
416
+ _b.label = 3;
417
+ case 3:
418
+ // we remove the `.lite` extension from the path for Context files.
419
+ path = path.replace('.lite.ts', '.ts');
420
+ return [2 /*return*/, {
421
+ path: path,
422
+ output: output,
423
+ }];
480
424
  }
481
425
  });
482
426
  });
483
- };
427
+ }
484
428
  /**
485
429
  * Transpiles all non-component files, including Context files.
486
430
  */
487
- function buildTsFiles(_a) {
488
- var target = _a.target, options = _a.options;
431
+ function buildNonComponentFiles(args) {
489
432
  return __awaiter(this, void 0, void 0, function () {
490
- var tsFiles;
433
+ var target, options, outputPath, nonComponentFiles;
491
434
  var _this = this;
492
- return __generator(this, function (_b) {
493
- switch (_b.label) {
494
- case 0: return [4 /*yield*/, (0, fast_glob_1.default)("src/**/*.ts", {
495
- cwd: cwd,
496
- })];
435
+ return __generator(this, function (_a) {
436
+ switch (_a.label) {
437
+ case 0:
438
+ target = args.target, options = args.options, outputPath = args.outputPath;
439
+ return [4 /*yield*/, (0, fast_glob_1.default)(options.files, { cwd: cwd })];
497
440
  case 1:
498
- tsFiles = _b.sent();
499
- return [4 /*yield*/, Promise.all(tsFiles.map(function (path) { return __awaiter(_this, void 0, void 0, function () {
500
- var output;
501
- return __generator(this, function (_a) {
502
- switch (_a.label) {
441
+ nonComponentFiles = (_a.sent()).filter(function (file) { return file.endsWith('.ts') || file.endsWith('.js'); });
442
+ return [4 /*yield*/, Promise.all(nonComponentFiles.map(function (path) { return __awaiter(_this, void 0, void 0, function () {
443
+ var overrideFilePath, overrideFile, _a, output_1, _b, isContextFile, output, _c, _d;
444
+ return __generator(this, function (_e) {
445
+ switch (_e.label) {
503
446
  case 0:
504
- if (!path.endsWith('.context.lite.ts')) return [3 /*break*/, 2];
505
- return [4 /*yield*/, buildContextFile({ path: path, options: options, target: target })];
447
+ overrideFilePath = "".concat(options.overridesDir, "/").concat(outputPath, "/").concat(path);
448
+ return [4 /*yield*/, (0, fs_extra_1.pathExists)(overrideFilePath)];
506
449
  case 1:
507
- output = _a.sent();
508
- // we remove the `.lite` extension from the path for Context files.
509
- path = path.replace('.lite.ts', '.ts');
510
- _a.label = 2;
511
- case 2: return [4 /*yield*/, (0, transpile_1.transpile)({
512
- path: path,
513
- target: target,
514
- content: output,
515
- options: options,
516
- })];
450
+ if (!(_e.sent())) return [3 /*break*/, 3];
451
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(overrideFilePath, 'utf8')];
452
+ case 2:
453
+ _a = _e.sent();
454
+ return [3 /*break*/, 4];
517
455
  case 3:
518
- output = _a.sent();
519
- return [2 /*return*/, {
520
- path: path,
521
- output: output,
522
- }];
456
+ _a = null;
457
+ _e.label = 4;
458
+ case 4:
459
+ overrideFile = _a;
460
+ if (!overrideFile) return [3 /*break*/, 8];
461
+ if (!checkShouldOutputTypeScript({ target: target, options: options })) return [3 /*break*/, 5];
462
+ _b = (0, transpile_1.transformImports)(target)(overrideFile);
463
+ return [3 /*break*/, 7];
464
+ case 5: return [4 /*yield*/, (0, transpile_1.transpile)({ path: path, target: target, content: overrideFile, options: options })];
465
+ case 6:
466
+ _b = _e.sent();
467
+ _e.label = 7;
468
+ case 7:
469
+ output_1 = _b;
470
+ return [2 /*return*/, { output: output_1, path: path }];
471
+ case 8:
472
+ isContextFile = path.endsWith('.context.lite.ts');
473
+ if (isContextFile) {
474
+ return [2 /*return*/, buildContextFile(__assign(__assign({}, args), { path: path }))];
475
+ }
476
+ if (!checkShouldOutputTypeScript({ target: target, options: options })) return [3 /*break*/, 10];
477
+ _d = function_1.pipe;
478
+ return [4 /*yield*/, (0, fs_extra_1.readFile)(path, 'utf8')];
479
+ case 9:
480
+ _c = _d.apply(void 0, [_e.sent(), (0, transpile_1.transformImports)(target)]);
481
+ return [3 /*break*/, 12];
482
+ case 10: return [4 /*yield*/, (0, transpile_1.transpile)({ path: path, target: target, options: options })];
483
+ case 11:
484
+ _c = _e.sent();
485
+ _e.label = 12;
486
+ case 12:
487
+ output = _c;
488
+ return [2 /*return*/, { output: output, path: path }];
523
489
  }
524
490
  });
525
491
  }); }))];
526
- case 2: return [2 /*return*/, _b.sent()];
492
+ case 2: return [2 /*return*/, _a.sent()];
527
493
  }
528
494
  });
529
495
  });
@@ -531,5 +497,4 @@ function buildTsFiles(_a) {
531
497
  if (require.main === module) {
532
498
  build().catch(console.error);
533
499
  }
534
- var templateObject_1;
535
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGQvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FvQjZCO0FBQzdCLGdEQUEwQjtBQUMxQixrREFBNEI7QUFDNUIsd0RBQTZCO0FBQzdCLHFDQUFvRTtBQUNwRSwyQ0FBK0I7QUFDL0IsaUNBQWdFO0FBQ2hFLDBEQUFvQztBQUNwQyxtREFBaUU7QUFDakUseURBQXNEO0FBQ3RELGlEQUFnRDtBQUNoRCxxRkFBa0Y7QUFDbEYsdUVBQW9FO0FBRXBFLElBQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQixJQUFNLGNBQWMsR0FBMkI7SUFDN0MsT0FBTyxFQUFFLEVBQUU7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLFdBQVc7Q0FDMUIsQ0FBQztBQUVGLElBQU0sZUFBZSxHQUE2QjtJQUNoRCxHQUFHLEVBQUU7UUFDSCxZQUFZLEVBQUUsY0FBTSxPQUFBLElBQUEsMkJBQVcsR0FBRSxFQUFiLENBQWE7UUFDakMsVUFBVSxFQUFFLFVBQUMsSUFBSSxJQUFLLE9BQUEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFuRCxDQUFtRDtRQUN6RSxlQUFlLEVBQUUsSUFBSTtLQUN0QjtDQUNGLENBQUM7QUFFRixTQUFzQixLQUFLLENBQUMsTUFBc0I7Ozs7Ozs7O29CQUMxQyxPQUFPLGtDQUNSLGNBQWMsR0FDZCxNQUFNLEtBQ1QsT0FBTyxpQ0FDRixlQUFlLEdBQ2YsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxD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
500
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGQvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FvQjZCO0FBQzdCLGdEQUEwQjtBQUMxQix3REFBNkI7QUFDN0IsK0NBQWdEO0FBQ2hELHFDQUFvRTtBQUNwRSxpQ0FBbUM7QUFDbkMsMERBQW9DO0FBQ3BDLG9EQUFrRDtBQUNsRCw2Q0FBd0Q7QUFDeEQsbURBQWlFO0FBQ2pFLGlEQUFrRTtBQUNsRSx1RUFBb0U7QUFFcEUsSUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBRTFCLElBQU0sY0FBYyxHQUEyQjtJQUM3QyxPQUFPLEVBQUUsRUFBRTtJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxZQUFZLEVBQUUsV0FBVztDQUMxQixDQUFDO0FBRUYsSUFBTSxVQUFVLEdBQUcsVUFBQyxNQUFzQixJQUFvQixPQUFBLGdDQUN6RCxjQUFjLEdBQ2QsTUFBTSxLQUNULE9BQU8sd0JBQ0YsY0FBYyxDQUFDLE9BQU8sR0FDdEIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sS0FFcEIsRUFQNEQsQ0FPNUQsQ0FBQztBQUVILFNBQWUsS0FBSyxDQUFDLE9BQXNCOzs7Ozs7d0JBQzNCLHFCQUFNLElBQUEsbUJBQUksRUFBQyxVQUFHLE9BQU8sQ0FBQyxJQUFJLG1CQUFTLE9BQU8sQ0FBQyxLQUFLLENBQUUsQ0FBQyxFQUFBOztvQkFBM0QsS0FBSyxHQUFHLFNBQW1EO29CQUNqRSxxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBTyxJQUFJOzs7NENBQ25CLHFCQUFNLElBQUEsaUJBQU0sRUFBQyxJQUFJLENBQUMsRUFBQTs7d0NBQWxCLFNBQWtCLENBQUM7Ozs7NkJBQ3BCLENBQUMsQ0FDSCxFQUFBOztvQkFKRCxTQUlDLENBQUM7Ozs7O0NBQ0g7QUFFRCxJQUFNLHdCQUF3QixHQUFHLFVBQU8sT0FBc0I7Ozs7OztnQkFDckQsS0FBQSxDQUFBLEtBQUEsT0FBTyxDQUFBLENBQUMsR0FBRyxDQUFBO2dCQUNoQixLQUFBLG9CQUFVLENBQUE7Z0JBQUMscUJBQU0sSUFBQSxtQkFBSSxFQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUEsRUFBRSxDQUFDLEVBQUE7b0JBRC9DLHNCQUFPLGNBQ0wsa0JBQVcsU0FBa0MsRUFBRSxlQUFRLE1BQUEsT0FBTyxDQUFDLFNBQVMsbUNBQUksVUFBVSxDQUFFLEVBQUMsQ0FBQyxHQUFHLENBQzNGLFVBQU8sSUFBSTs7Ozs7O29DQUVNLHFCQUFNLElBQUEsbUJBQVEsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O29DQUFuQyxJQUFJLEdBQUcsU0FBNEI7b0NBQzFCLHFCQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxrQkFBUSxFQUFDLElBQUksQ0FBQyxDQUFDLEVBQUE7O29DQUF2RSxNQUFNLEdBQUcsU0FBOEQ7b0NBQzdFLHNCQUFPOzRDQUNMLElBQUksTUFBQTs0Q0FDSixXQUFXLEVBQUUsTUFBTTt5Q0FDcEIsRUFBQzs7O29DQUVGLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7b0NBQzdDLE1BQU0sS0FBRyxDQUFDOzs7O3lCQUViLENBQ0YsRUFDRixFQUFDOzs7S0FDSCxDQUFDO0FBWUYsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLE9BQXNCO0lBQy9DLE9BQUEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2pCLFVBQUMsTUFBTSxJQUFvQixPQUFBLENBQUM7UUFDMUIsTUFBTSxRQUFBO1FBQ04sU0FBUyxFQUFFLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxRQUFBLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQztRQUNyRCxVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQUUsTUFBTSxRQUFBLEVBQUUsQ0FBQztLQUN0QyxDQUFDLEVBSnlCLENBSXpCLENBQ0g7QUFORCxDQU1DLENBQUM7QUFFSixJQUFNLCtCQUErQixHQUFHLFVBQU8sYUFBc0M7Ozs7b0JBQ25FLHFCQUFNLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxFQUFBOztnQkFBckQsT0FBTyxHQUFHLFNBQTJDO2dCQUMzRCxxQkFBTSx1QkFBdUIsdUJBQU0sYUFBYSxLQUFFLEtBQUssRUFBRSxPQUFPLElBQUcsRUFBQTs7Z0JBQW5FLFNBQW1FLENBQUM7Ozs7S0FDckUsQ0FBQztBQUVGLFNBQXNCLEtBQUssQ0FBQyxNQUFzQjs7Ozs7OztvQkFFMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFbkMseUJBQXlCO29CQUN6QixxQkFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUE7O29CQURwQix5QkFBeUI7b0JBQ3pCLFNBQW9CLENBQUM7b0JBR0sscUJBQU0sd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQUE7O29CQUEzRCxpQkFBaUIsR0FBRyxTQUF1QztvQkFFM0QsY0FBYyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUVsRCxxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBTyxhQUFhOzs7Ozt3Q0FHL0IsS0FBSyxHQUFHLElBQUEsc0JBQVMsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO3dDQUVyQyx1QkFBdUIseUJBQWlDLGFBQWEsS0FBRSxPQUFPLFNBQUEsR0FBRSxDQUFDO3dDQUV2RixxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO2dEQUNoQiwrQkFBK0IsQ0FBQyx1QkFBdUIsQ0FBQztnREFDeEQsNEJBQTRCLHVCQUFNLHVCQUF1QixLQUFFLEtBQUssT0FBQSxJQUFHOzZDQUNwRSxDQUFDLEVBQUE7O3dDQUhGLFNBR0UsQ0FBQzs7Ozs2QkFDSixDQUFDLENBQ0gsRUFBQTs7b0JBYkQsU0FhQyxDQUFDO29CQUVGLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Ozs7O0NBQ3ZCO0FBNUJELHNCQTRCQztBQUVELElBQU0scUJBQXFCLEdBQUcsVUFBQyxFQU05QjtRQUxDLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQTtJQUtQLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sSUFBQSxrQ0FBd0IsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBQSx5QkFBZSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sSUFBQSxnQ0FBc0IsRUFBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNELEtBQUssTUFBTTtZQUNULE9BQU8sSUFBQSx5QkFBZSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsS0FBSyxLQUFLO1lBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQ3JELEtBQUssTUFBTTtZQUNULE9BQU8sSUFBQSx5QkFBZSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFBLDRCQUFrQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFBLDBCQUFnQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFBLDBCQUFnQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFBLDBCQUFnQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsS0FBSyxjQUFjO1lBQ2pCLE9BQU8sSUFBQSxrQ0FBd0IsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLEtBQUssUUFBUTtZQUNYLE9BQU8sSUFBQSwyQkFBaUIsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELEtBQUssTUFBTTtZQUNULE9BQU8sSUFBQSx5QkFBZSxFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFBLDBCQUFnQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFBLDJCQUFpQixFQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsS0FBSyxLQUFLO1lBQ1IsT0FBTyxJQUFBLHdCQUFjLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsTUFBTSxDQUFDLENBQUM7S0FDakU7QUFDSCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILElBQU0sMkJBQTJCLEdBQUcsVUFBQyxFQU1wQzs7UUFMQyxNQUFNLFlBQUEsRUFDTixPQUFPLGFBQUE7SUFLUCxJQUFNLFlBQVksR0FBRyxNQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLDBDQUFFLFVBQVUsQ0FBQztJQUN6RCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixJQUFNLDZCQUE2QixHQUFHLFVBQUMsRUFBa0Q7UUFBaEQsTUFBTSxZQUFBLEVBQUUsSUFBSSxVQUFBO0lBQ25ELE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsSUFBQSxzQ0FBeUIsRUFBQyxNQUFNLENBQUMsQ0FBQztBQUEvRCxDQUErRCxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsU0FBZSw0QkFBNEIsQ0FBQyxFQVEzQztRQVBDLE1BQU0sWUFBQSxFQUNOLEtBQUssV0FBQSxFQUNMLE9BQU8sYUFBQSxFQUNQLFNBQVMsZUFBQSxFQUNULFVBQVUsZ0JBQUE7Ozs7Ozs7b0JBSUosV0FBVyxHQUFHLElBQUEsZUFBSyxFQUFDLGtCQUFXLE1BQU0sQ0FBRSxDQUFDLENBQUM7b0JBQ3pDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQU8sRUFBcUI7NEJBQW5CLElBQUksVUFBQSxFQUFFLFdBQVcsaUJBQUE7Ozs7Ozt3Q0FDM0MsY0FBYyxHQUFHLDZCQUE2QixDQUFDLEVBQUUsTUFBTSxRQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsQ0FBQyxDQUFDO3dDQUdqRSxnQkFBZ0IsR0FBRyxVQUFHLE9BQU8sQ0FBQyxZQUFZLGNBQUksVUFBVSxjQUFJLGNBQWMsQ0FBRSxDQUFDO3dDQUM3RCxxQkFBTSxJQUFBLHFCQUFVLEVBQUMsZ0JBQWdCLENBQUMsRUFBQTs7NkNBQW5DLENBQUMsU0FBa0MsQ0FBQyxFQUFwQyx3QkFBb0M7d0NBQ3JELHFCQUFNLElBQUEsbUJBQVEsRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFBQTs7d0NBQXhDLEtBQUEsU0FBd0MsQ0FBQTs7O3dDQUN4QyxLQUFBLElBQUksQ0FBQTs7O3dDQUZGLFlBQVksS0FFVjt3Q0FFUixXQUFXLENBQUMsc0JBQWUsSUFBSSxRQUFLLENBQUMsQ0FBQzt3Q0FDbEMsVUFBVSxHQUFHLEVBQUUsQ0FBQzt3Q0FFcEIsSUFBSSxZQUFZLEVBQUU7NENBQ2hCLFdBQVcsQ0FBQyw4QkFBdUIsSUFBSSxlQUFLLENBQUMsQ0FBQyxZQUFZLENBQUUsQ0FBQyxDQUFDO3lDQUMvRDt3Q0FDRCxJQUFJOzRDQUNGLFVBQVUsR0FBRyxZQUFZLGFBQVosWUFBWSxjQUFaLFlBQVksR0FBSSxTQUFTLENBQUMsRUFBRSxJQUFJLE1BQUEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQzs0Q0FDekUsV0FBVyxDQUFDLDhCQUF1QixJQUFJLDhCQUFvQixVQUFVLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQzt5Q0FDakY7d0NBQUMsT0FBTyxLQUFLLEVBQUU7NENBQ2QsV0FBVyxDQUFDLDhCQUF1QixJQUFJLE1BQUcsQ0FBQyxDQUFDOzRDQUM1QyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7NENBQ25CLE1BQU0sS0FBSyxDQUFDO3lDQUNiO3dDQUVLLFFBQVEsR0FBRyxVQUFVLENBQUM7d0NBSXBCLEtBQUEsTUFBTSxDQUFBOztpREFDUCxPQUFPLENBQUMsQ0FBUix3QkFBTztpREFPUCxhQUFhLENBQUMsQ0FBZCx3QkFBYTtpREFDYixRQUFRLENBQUMsQ0FBVCx3QkFBUTtpREFDUixPQUFPLENBQUMsQ0FBUix3QkFBTztpREFRUCxLQUFLLENBQUMsQ0FBTix3QkFBSztpREFDTCxNQUFNLENBQUMsQ0FBUCx3QkFBTTtpREFDTixNQUFNLENBQUMsQ0FBUCx3QkFBTTs7OzRDQWxCSSxxQkFBTSxJQUFBLHlDQUFrQixFQUFDOzRDQUNwQyxRQUFRLEVBQUUsVUFBVTs0Q0FDcEIsSUFBSSxNQUFBOzRDQUNKLGdCQUFnQixFQUFFLFdBQVc7eUNBQzlCLENBQUMsRUFBQTs7d0NBSkYsVUFBVSxHQUFHLFNBSVgsQ0FBQzt3Q0FDSCx5QkFBTTs0Q0FJTyxxQkFBTSxJQUFBLHFCQUFTLEVBQUM7NENBQzNCLElBQUksTUFBQTs0Q0FDSixPQUFPLEVBQUUsVUFBVTs0Q0FDbkIsTUFBTSxRQUFBOzRDQUNOLE9BQU8sU0FBQTt5Q0FDUixDQUFDLEVBQUE7O3dDQUxGLFVBQVUsR0FBRyxTQUtYLENBQUM7d0NBQ0gseUJBQU07NENBSU4seUJBQU07O3dDQUdKLFNBQVMsR0FBRyxVQUFHLE9BQU8sQ0FBQyxJQUFJLGNBQUksVUFBVSxDQUFFLENBQUM7d0NBRWxELHFCQUFNLE9BQU8sQ0FBQyxHQUFHO2dEQUNmLDZCQUE2QjtnREFDN0IsSUFBQSxxQkFBVSxFQUFDLFVBQUcsU0FBUyxjQUFJLGNBQWMsQ0FBRSxFQUFFLFVBQVUsQ0FBQzsrQ0FDckQsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLE1BQU0sUUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUM7Z0RBQ2xELENBQUMsQ0FBQyxDQUFDLElBQUEscUJBQVUsRUFBQyxVQUFHLFNBQVMsY0FBSSxJQUFJLENBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnREFDaEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUNQLEVBQUE7O3dDQU5GLFNBTUUsQ0FBQzs7Ozs7cUJBQ0osQ0FBQyxDQUFDO29CQUNILHFCQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUE7O29CQUF6QixTQUF5QixDQUFDOzs7OztDQUMzQjtBQUVELElBQU0sYUFBYSxHQUFHLFVBQUMsRUFBOEI7UUFBNUIsTUFBTSxZQUFBO0lBQzdCLFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxNQUFNO1lBQ1QsT0FBTyxVQUFVLENBQUM7UUFDcEIsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLE1BQU07WUFDVCxPQUFPLFVBQVUsQ0FBQztRQUNwQjtZQUNFLE9BQU8sSUFBQSxrQkFBUyxFQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsSUFBTSw0QkFBNEIsR0FBRyxJQUFBLGVBQUksRUFBQywyQkFBMkIsRUFBRSxVQUFDLHNCQUFzQjtJQUM1RixPQUFBLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUs7QUFBdEMsQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsSUFBTSx1QkFBdUIsR0FBRyxVQUFPLEVBUXRDO1FBUEMsS0FBSyxXQUFBLEVBQ0wsT0FBTyxhQUFBLEVBQ1AsVUFBVSxnQkFBQSxFQUNWLE1BQU0sWUFBQTs7Ozs7O29CQUtBLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sUUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsQ0FBQztvQkFDcEUscUJBQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBZ0I7Z0NBQWQsSUFBSSxVQUFBLEVBQUUsTUFBTSxZQUFBOzRCQUN2QixPQUFBLElBQUEscUJBQVUsRUFBQyxVQUFHLE9BQU8sQ0FBQyxJQUFJLGNBQUksVUFBVSxjQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFFLEVBQUUsTUFBTSxDQUFDO3dCQUF6RixDQUF5RixDQUMxRixDQUNGLEVBQUE7O29CQUpELFNBSUMsQ0FBQzs7Ozs7Q0FDSCxDQUFDO0FBRUYsU0FBZSxnQkFBZ0IsQ0FBQyxFQUlhO1FBSDNDLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLElBQUksVUFBQTs7Ozs7d0JBRVMscUJBQU0sSUFBQSw2QkFBbUIsRUFBQyxFQUFFLElBQUksTUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLE1BQU0sUUFBQSxFQUFFLENBQUMsRUFBQTs7b0JBQTdELE1BQU0sR0FBRyxTQUFvRDt5QkFHN0QsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLE1BQU0sUUFBQSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsRUFBakQsd0JBQWlEO29CQUMxQyxxQkFBTSxJQUFBLHFCQUFTLEVBQUM7NEJBQ3ZCLElBQUksTUFBQTs0QkFDSixNQUFNLFFBQUE7NEJBQ04sT0FBTyxFQUFFLE1BQU07NEJBQ2YsT0FBTyxTQUFBO3lCQUNSLENBQUMsRUFBQTs7b0JBTEYsTUFBTSxHQUFHLFNBS1AsQ0FBQzs7O29CQUdMLG1FQUFtRTtvQkFDbkUsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUV2QyxzQkFBTzs0QkFDTCxJQUFJLE1BQUE7NEJBQ0osTUFBTSxRQUFBO3lCQUNQLEVBQUM7Ozs7Q0FDSDtBQUVEOztHQUVHO0FBQ0gsU0FBZSxzQkFBc0IsQ0FBQyxJQUE2Qjs7Ozs7OztvQkFDekQsTUFBTSxHQUEwQixJQUFJLE9BQTlCLEVBQUUsT0FBTyxHQUFpQixJQUFJLFFBQXJCLEVBQUUsVUFBVSxHQUFLLElBQUksV0FBVCxDQUFVO29CQUNsQixxQkFBTSxJQUFBLG1CQUFJLEVBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsS0FBQSxFQUFFLENBQUMsRUFBQTs7b0JBQXZELGlCQUFpQixHQUFHLENBQUMsU0FBa0MsQ0FBQyxDQUFDLE1BQU0sQ0FDbkUsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQTVDLENBQTRDLENBQ3ZEO29CQUVNLHFCQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3RCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFPLElBQUk7Ozs7O3dDQUV6QixnQkFBZ0IsR0FBRyxVQUFHLE9BQU8sQ0FBQyxZQUFZLGNBQUksVUFBVSxjQUFJLElBQUksQ0FBRSxDQUFDO3dDQUNuRCxxQkFBTSxJQUFBLHFCQUFVLEVBQUMsZ0JBQWdCLENBQUMsRUFBQTs7NkNBQW5DLENBQUMsU0FBa0MsQ0FBQyxFQUFwQyx3QkFBb0M7d0NBQ3JELHFCQUFNLElBQUEsbUJBQVEsRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFBQTs7d0NBQXhDLEtBQUEsU0FBd0MsQ0FBQTs7O3dDQUN4QyxLQUFBLElBQUksQ0FBQTs7O3dDQUZGLFlBQVksS0FFVjs2Q0FFSixZQUFZLEVBQVosd0JBQVk7NkNBQ0MsMkJBQTJCLENBQUMsRUFBRSxNQUFNLFFBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLEVBQWhELHdCQUFnRDt3Q0FDM0QsS0FBQSxJQUFBLDRCQUFnQixFQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFBOzs0Q0FDdEMscUJBQU0sSUFBQSxxQkFBUyxFQUFDLEVBQUUsSUFBSSxNQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLEVBQUE7O3dDQUFqRSxLQUFBLFNBQWlFLENBQUE7Ozt3Q0FGL0QsYUFFK0Q7d0NBRXJFLHNCQUFPLEVBQUUsTUFBTSxVQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsRUFBQzs7d0NBR3BCLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0NBQ3hELElBQUksYUFBYSxFQUFFOzRDQUNqQixzQkFBTyxnQkFBZ0IsdUJBQU0sSUFBSSxLQUFFLElBQUksTUFBQSxJQUFHLEVBQUM7eUNBQzVDOzZDQUVjLDJCQUEyQixDQUFDLEVBQUUsTUFBTSxRQUFBLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQyxFQUFoRCx5QkFBZ0Q7d0NBQzNELEtBQUEsZUFBSSxDQUFBO3dDQUFDLHFCQUFNLElBQUEsbUJBQVEsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O3dDQUFqQyxLQUFBLGtCQUFLLFNBQTRCLEVBQUUsSUFBQSw0QkFBZ0IsRUFBQyxNQUFNLENBQUMsRUFBQyxDQUFBOzs2Q0FDNUQscUJBQU0sSUFBQSxxQkFBUyxFQUFDLEVBQUUsSUFBSSxNQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUUsT0FBTyxTQUFBLEVBQUUsQ0FBQyxFQUFBOzt3Q0FBMUMsS0FBQSxTQUEwQyxDQUFBOzs7d0NBRnhDLE1BQU0sS0FFa0M7d0NBRTlDLHNCQUFPLEVBQUUsTUFBTSxRQUFBLEVBQUUsSUFBSSxNQUFBLEVBQUUsRUFBQzs7OzZCQUN6QixDQUFDLENBQ0gsRUFBQTt3QkEzQkQsc0JBQU8sU0EyQk4sRUFBQzs7OztDQUNIO0FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtJQUMzQixLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQzlCIn0=