@omnia/tooling-vue 8.0.16-vnext → 8.0.17-dev

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 (55) hide show
  1. package/internal-do-not-import-from-here/config/omnia.vendor.manifest.json +1 -1
  2. package/internal-do-not-import-from-here/config/tooling.output.json +1 -0
  3. package/internal-do-not-import-from-here/config/wctypings.d.ts +2122 -0
  4. package/internal-do-not-import-from-here/index.d.ts +3 -1
  5. package/internal-do-not-import-from-here/index.js +6 -2
  6. package/internal-do-not-import-from-here/shared.d.ts +32 -122
  7. package/internal-do-not-import-from-here/shared.js +97 -192
  8. package/internal-do-not-import-from-here/swc/extract-doc-plugin/package.json +14 -0
  9. package/internal-do-not-import-from-here/tasks/ComponentDocRegistrations.d.ts +1 -0
  10. package/internal-do-not-import-from-here/tasks/ComponentDocRegistrations.js +9 -0
  11. package/internal-do-not-import-from-here/tasks/bundle.d.ts +3 -4
  12. package/internal-do-not-import-from-here/tasks/bundle.js +264 -264
  13. package/internal-do-not-import-from-here/tasks/doc.d.ts +3 -1
  14. package/internal-do-not-import-from-here/tasks/doc.js +282 -395
  15. package/internal-do-not-import-from-here/tasks/vendor.js +166 -19
  16. package/internal-do-not-import-from-here/variables.d.ts +1 -1
  17. package/internal-do-not-import-from-here/variables.js +2 -2
  18. package/internal-do-not-import-from-here/vite/hmr/graph.js +5 -1
  19. package/internal-do-not-import-from-here/vite/hmr/manifest.js +5 -5
  20. package/internal-do-not-import-from-here/vite/hmr/runtime.js +5 -5
  21. package/internal-do-not-import-from-here/vite/hmr/transformers/internal/dynamicBundle.js +7 -1
  22. package/internal-do-not-import-from-here/vite/hmr/utils/manifest.js +3 -3
  23. package/internal-do-not-import-from-here/vite/hmr/utils/path.js +7 -6
  24. package/internal-do-not-import-from-here/vite/hmr/utils/webpack.js +2 -2
  25. package/internal-do-not-import-from-here/vite/index.js +4 -0
  26. package/internal-do-not-import-from-here/vite/middlewares/HmrMiddleware.js +8 -13
  27. package/internal-do-not-import-from-here/vite/middlewares/OmniaMiddleware.js +55 -17
  28. package/internal-do-not-import-from-here/vite/middlewares/StaticFileMiddleware.js +31 -10
  29. package/internal-do-not-import-from-here/vite/middlewares/WebpackMiddleware.js +1 -1
  30. package/internal-do-not-import-from-here/vite/plugins/OmniaPlugin.js +10 -2
  31. package/internal-do-not-import-from-here/wctypings.ts +0 -0
  32. package/internal-do-not-import-from-here/webpack-loaders/doc-loader.js +11 -0
  33. package/internal-do-not-import-from-here/webpack-loaders/ts-loader.d.ts +11 -4
  34. package/internal-do-not-import-from-here/webpack-loaders/ts-loader.js +12 -12
  35. package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.d.ts +11 -1
  36. package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.js +34 -29
  37. package/internal-do-not-import-from-here/webpack-loaders/wc-loader.d.ts +1 -0
  38. package/internal-do-not-import-from-here/webpack-loaders/wc-loader.js +11 -0
  39. package/package.json +13 -9
  40. package/internal-do-not-import-from-here/1cacb55c-202b-4cd7-819d-11bad92fa9cb.wcdefinitions.json +0 -1
  41. package/internal-do-not-import-from-here/1cacb55c-202b-4cd7-819d-11bad92fa9cb.wctypings.d.ts +0 -11
  42. package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wcdefinitions.json +0 -1
  43. package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wctypings.d.ts +0 -347
  44. package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wctypings.js +0 -2
  45. package/internal-do-not-import-from-here/cc000000-0000-cccc-0000-0000000000cc.wcdefinitions.json +0 -1
  46. package/internal-do-not-import-from-here/config/tsconfig.es2015.json +0 -21
  47. package/internal-do-not-import-from-here/webpack-loaders/esbuild-custom-loader.js +0 -13
  48. package/internal-do-not-import-from-here/webpack-loaders/jsx-loader.d.ts +0 -8
  49. package/internal-do-not-import-from-here/webpack-loaders/jsx-loader.js +0 -61
  50. package/internal-do-not-import-from-here/webpack-loaders/vue-tsx-hot-loader.d.ts +0 -1
  51. package/internal-do-not-import-from-here/webpack-loaders/vue-tsx-hot-loader.js +0 -44
  52. package/internal-do-not-import-from-here/webpack-loaders/wcmanifest-loader.d.ts +0 -1
  53. package/internal-do-not-import-from-here/webpack-loaders/wcmanifest-loader.js +0 -10
  54. /package/internal-do-not-import-from-here/{1cacb55c-202b-4cd7-819d-11bad92fa9cb.wctypings.js → config/wctypings.js} +0 -0
  55. /package/internal-do-not-import-from-here/webpack-loaders/{esbuild-custom-loader.d.ts → doc-loader.d.ts} +0 -0
@@ -1,23 +1,26 @@
1
1
  'use strict';
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addDependency = exports.processManifestGenerated = exports.checkDuplicateBundle = exports.registerWebComponentDefinitions = exports.registerManifestsReference = exports.createCombinedManfest = exports.createVueWebpackConfig = exports.cleanUpComposer = exports.getBuildOption = exports.getServiceId = exports.bundleManifest = exports.ensureManifestDependencyInRuntime = void 0;
3
+ exports.addDependency = exports.processManifestGenerated = exports.checkDuplicateBundle = exports.registerManifestsReference = exports.createCombinedManfest = exports.createVueWebpackConfig = exports.cleanUpComposer = exports.getBuildOption = exports.getServiceId = exports.bundleManifest = exports.ensureManifestDependencyInRuntime = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const path_1 = tslib_1.__importDefault(require("path"));
6
6
  const del_1 = tslib_1.__importDefault(require("del"));
7
7
  const fsExtra = tslib_1.__importStar(require("fs-extra"));
8
- const globby = tslib_1.__importStar(require("globby"));
8
+ const globby_1 = require("globby");
9
9
  const terser_1 = require("terser");
10
10
  const ts_loader_1 = tslib_1.__importDefault(require("../webpack-loaders/ts-loader"));
11
11
  const tsx_loader_1 = tslib_1.__importDefault(require("../webpack-loaders/tsx-loader"));
12
+ const tooling_composers_1 = require("@omnia/tooling-composers");
12
13
  const fx_models_1 = require("@omnia/fx-models");
13
14
  const $ = tslib_1.__importStar(require("../variables"));
14
15
  const shared_1 = require("../shared");
15
16
  const tooling_1 = require("@omnia/tooling");
17
+ const doc_1 = require("./doc");
16
18
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
17
19
  const ConcatSource = require('webpack-core/lib/ConcatSource');
18
20
  const CircularDependencyPlugin = require('circular-dependency-plugin');
19
21
  const isEqual = require('lodash/isEqual');
20
- let outDirManifestMetadata = "client/tooling/vue/output_manifests", _manifestsEntry = {}, _registeredReferenceManifests = [], serviceId = null, _modulesStats = {}, _manifestsStats = {}, keepTrackbuildOptions = {}, _transformResourcepaths = [], wcDomProps, _wcDefinitions = {};
22
+ const vendorProdId = "aaf89b2d-5ea8-4b79-946a-8c1e89f713a3";
23
+ let outDirManifestMetadata = "client/tooling/vue/output_manifests", _manifestsEntry = {}, _registeredReferenceManifests = [], serviceId = null, _modulesStats = {}, _manifestsStats = {}, keepTrackbuildOptions = {}, _transformResourcepaths = [];
21
24
  if ($.isExtensionEnv) {
22
25
  outDirManifestMetadata = "node_modules/@omnia/tooling-vue/internal-do-not-import-from-here/output_manifests";
23
26
  }
@@ -35,21 +38,26 @@ $.tooling.core.registerBuildTask({
35
38
  order: 2,
36
39
  task: function () {
37
40
  return new Promise(function (resolve, reject) {
38
- buildWebpackEntries()
41
+ buildEntries()
39
42
  .then((result) => {
40
- let startTime = new Date().getTime();
41
- tooling_1.utils.log("Typescript checking...");
42
- const spawn = require("child_process").spawn;
43
- spawn("node", [path_1.default.resolve(__dirname, "./tsc.js")], { stdio: "inherit", })
44
- .on('exit', (code) => {
45
- if (code == 0) {
46
- tooling_1.utils.logTime('Done - Typescript', startTime);
47
- resolve(result);
48
- }
49
- else {
50
- process.exit(code);
51
- }
52
- });
43
+ if (process.argv.length > 0 && process.argv.find(argv => argv === "--package") !== undefined) {
44
+ resolve(result);
45
+ }
46
+ else {
47
+ let startTime = new Date().getTime();
48
+ tooling_1.utils.log("Typescript checking...");
49
+ const spawn = require("child_process").spawn;
50
+ spawn("node", [path_1.default.resolve(__dirname, "./tsc.js")], { stdio: "inherit", })
51
+ .on('exit', (code) => {
52
+ if (code == 0) {
53
+ tooling_1.utils.logTime('Done - Typescript', startTime);
54
+ resolve(result);
55
+ }
56
+ else {
57
+ process.exit(code);
58
+ }
59
+ });
60
+ }
53
61
  }, reject);
54
62
  });
55
63
  }
@@ -64,7 +72,7 @@ $.tooling.core.registerServeTask({
64
72
  fsExtra.removeSync("node_modules/tiptap-commands/node_modules");
65
73
  fsExtra.removeSync("node_modules/tiptap-utils/node_modules");
66
74
  }
67
- buildWebpackEntries(true)
75
+ buildEntries(true)
68
76
  .then(resolve, reject);
69
77
  });
70
78
  }
@@ -183,80 +191,38 @@ function clean() {
183
191
  return new Promise(function (resolve, reject) {
184
192
  del_1.default.sync("node_modules/.cache");
185
193
  del_1.default.sync($.tooling.utils.root(outDirManifestMetadata + "/manifest.entries.cached.json"));
186
- if ($.isExtensionEnv) {
187
- del_1.default.sync($.path.resolve(__dirname, "../wctypings.ts"));
188
- }
189
- else {
190
- del_1.default.sync($.path.resolve(__dirname, `../bb000000-0000-bbbb-0000-0000000000bb.wctypings.ts`));
191
- }
194
+ shared_1.ConfigurationManager.webComponentTypings.delete();
192
195
  resolve();
193
196
  });
194
197
  }
195
- function buildWebpackEntries(serve = false) {
196
- return new Promise(function (resolve, reject) {
198
+ function buildEntries(serve = false) {
199
+ return new Promise(async function (resolve, reject) {
197
200
  try {
198
- var startTime = new Date().getTime();
201
+ let startTime = new Date().getTime();
199
202
  var componentRegistry = $.composers.ComponentRegistry;
200
203
  let componentRegistrations = componentRegistry.getRegistrations();
204
+ const serviceInfo = $.composers.ServiceManifestRegistry.getServiceInfo();
205
+ startTime = new Date().getTime();
201
206
  $.tooling.logTime("Found [" + componentRegistrations.length + "] component registrations", startTime);
207
+ let componentEntries = createVueEntryFormComponentRegistrations(componentRegistrations);
208
+ if (serviceInfo.serviceType === tooling_composers_1.ServiceTypes.WebApp) {
209
+ await (0, doc_1.generateComponentTypingsAndDoc)(componentRegistrations);
210
+ }
202
211
  var resourceRegistry = $.composers.ResourceRegistry;
203
212
  let resourceBundlesWithBuildOptions = resourceRegistry.getRegisteredResourceBundles(shared_1.convertManifestPathToEntryPath);
204
- $.tooling.logTime("Found [" + (resourceBundlesWithBuildOptions ? Object.keys(resourceBundlesWithBuildOptions).length : 0) + "] resource bundles", startTime);
213
+ $.tooling.logTime("Found [" + resourceBundlesWithBuildOptions?.size + "] resource bundles", startTime);
205
214
  let resourceEntries = {};
206
- let wcDefinitionsPath, wcTypingsPath;
207
- for (let key in resourceBundlesWithBuildOptions) {
208
- let resource = resourceBundlesWithBuildOptions[key];
209
- let manifest = $.composers.LoadableManifestRegistry.getRegisteredManifest(key);
215
+ for (const res of resourceBundlesWithBuildOptions) {
216
+ let resource = res[1];
217
+ let manifest = $.composers.LoadableManifestRegistry.getRegisteredManifest(res[0]);
210
218
  if (!resource.buildOptions) {
211
- resourceEntries[`${manifest.resourceName ? manifest.resourceName + "_" : ""}${key}`] = resource.paths;
219
+ resourceEntries[`${manifest.resourceName ? manifest.resourceName + "_" : ""}${res[0]}`] = resource.paths;
212
220
  }
213
221
  else {
214
222
  //Some special handling of buildoptions
215
- console.log("debug " + key + " has build options for paths " + resource.paths + " buildoptions: " + JSON.stringify(resource.buildOptions));
223
+ console.log("debug " + res[0] + " has build options for paths " + resource.paths + " buildoptions: " + JSON.stringify(resource.buildOptions));
216
224
  }
217
225
  }
218
- //We only support typings for registered web components
219
- wcDomProps = extractTypingsForComponents(componentRegistrations);
220
- if (Object.keys(wcDomProps).length > 0) {
221
- let wcDomPropsDesc = `Extracted web component typings for ${Object.keys(wcDomProps).length} component(s)`;
222
- $.tooling.logTime(wcDomPropsDesc, startTime);
223
- }
224
- if ($.isExtensionEnv) {
225
- wcDefinitionsPath = $.path.resolve(__dirname, "../wcdefinitions.json");
226
- wcTypingsPath = $.path.resolve(__dirname, "../wctypings.ts");
227
- }
228
- else {
229
- wcDefinitionsPath = $.path.resolve(__dirname, `../${getServiceId().toLowerCase()}.wcdefinitions.json`);
230
- wcTypingsPath = $.path.resolve(__dirname, `../${getServiceId().toLowerCase()}.wctypings.ts`);
231
- }
232
- fsExtra.writeJsonSync(wcDefinitionsPath, wcDomProps);
233
- let wcTypings = `
234
- //{{importWC}}
235
- declare global {
236
- namespace JSX {
237
- interface Element { }
238
- interface ElementClass { }
239
-
240
- interface IntrinsicElements {
241
- //{{elementName}}
242
- }
243
- }
244
- }
245
- `;
246
- if ($.isExtensionEnv) {
247
- wcTypings = `import { VueComponentBaseProps } from "@omnia/fx/ux";
248
- ${wcTypings}`;
249
- }
250
- else {
251
- wcTypings = `import { VueComponentBaseProps } from "../../../client/fx/ux/index";
252
- ${wcTypings}`;
253
- }
254
- componentRegistrations.forEach(wc => {
255
- wcTypings = generateWebComponentTypings(wc, wcTypings);
256
- });
257
- fsExtra.outputFileSync(wcTypingsPath, wcTypings);
258
- wcDomProps = $.merge(wcDomProps, getRegisteredWebComponentDefinitions());
259
- let componentEntries = createVueEntryFormRegistrations(componentRegistrations);
260
226
  var entries = $.merge(componentEntries, resourceEntries);
261
227
  if (checkDuplicateWebpackEntryPoints(entries)) {
262
228
  $.tooling.log('Build manifests metadata have error that found duplicated resource path', $.tooling.LogTypes.Error);
@@ -307,7 +273,15 @@ function buildManifestMetadatas(entries) {
307
273
  return;
308
274
  }
309
275
  $.tooling.log('Build manifests metadata running...', $.tooling.LogTypes.HeadLine);
310
- let updateMetadataFiles = () => {
276
+ let webpackConfigs = [];
277
+ Object.keys(entries).forEach((id) => {
278
+ var entry = {};
279
+ entry[id] = entries[id];
280
+ var vueWebpackConfig = createWebpackConfigForManifestMetadata(entry, outputDir);
281
+ webpackConfigs.push(vueWebpackConfig);
282
+ });
283
+ let compiler = $.webpack(webpackConfigs);
284
+ compiler.run((err, stats) => {
311
285
  Object.keys(entries).forEach((entry) => {
312
286
  let manifestPath = outputDir + "/" + entry + '.manifest.json';
313
287
  if ($.fs.existsSync($.tooling.utils.root(manifestPath))) {
@@ -321,17 +295,6 @@ function buildManifestMetadatas(entries) {
321
295
  $.fs.writeFileSync(manifestPath, JSON.stringify(manifestJson));
322
296
  }
323
297
  });
324
- };
325
- let webpackConfigs = [];
326
- Object.keys(entries).forEach((id) => {
327
- var entry = {};
328
- entry[id] = entries[id];
329
- var vueWebpackConfig = createWebpackConfigForManifestMetadata(entry, outputDir);
330
- webpackConfigs.push(vueWebpackConfig);
331
- });
332
- let compiler = $.webpack(webpackConfigs);
333
- compiler.run((err, stats) => {
334
- updateMetadataFiles();
335
298
  $.del.sync([outputDir + '/*.js']);
336
299
  if (err) {
337
300
  $.tooling.logTime(`Build manifests metadata have an exception`, startTime);
@@ -386,16 +349,33 @@ function beforeBundleManifest(entries) {
386
349
  isRunBuildMetadata = !isEqual(entries, cachedEntries);
387
350
  }
388
351
  if (isRunBuildMetadata) {
389
- let entriesToBuild = entries;
390
- if (!getBuildOption().allowShareWCManifestBundle) {
391
- let reourceRegistrationsKeys = Object.keys($.composers.ResourceRegistry.getResourceRegistrations());
392
- entriesToBuild = {};
393
- Object.keys(entries).forEach(entry => {
394
- if (reourceRegistrationsKeys.find(rk => entry.indexOf(rk) > -1)) {
395
- entriesToBuild[entry] = entries[entry];
396
- }
397
- });
398
- }
352
+ // cleanup before generate
353
+ del_1.default.sync(outDirManifestMetadata);
354
+ const entriesToBuild = {};
355
+ const resourceRegistrations = Array.from($.composers.ResourceRegistry.getResourceRegistrations().keys());
356
+ const wcRegistrations = $.composers.ComponentRegistry.getComponentRegistrations();
357
+ Object.keys(entries).forEach(name => {
358
+ if (resourceRegistrations.find(rk => name.indexOf(rk.toString()) > -1)) {
359
+ entriesToBuild[name] = entries[name];
360
+ }
361
+ // generate manifest metadata for wc
362
+ else if (wcRegistrations.find(rk => name.indexOf(rk.manifest.resourceId.toString()) > -1)) {
363
+ const manifestPath = $.tooling.utils.root(outDirManifestMetadata + "/" + name + '.manifest.json');
364
+ const content = {
365
+ name: `omniaWebpackJsonp['${getServiceId()}']['${$.tooling.utils.getGuidValue(name)}']`,
366
+ content: {
367
+ [entries[name][0]]: {
368
+ id: entries[name][0].toLowerCase(),
369
+ buildMeta: {
370
+ exportsType: "namespace"
371
+ }
372
+ }
373
+ }
374
+ };
375
+ fsExtra.ensureFileSync(manifestPath);
376
+ fsExtra.writeJsonSync(manifestPath, content);
377
+ }
378
+ });
399
379
  buildManifestMetadatas(entriesToBuild).then(() => {
400
380
  fsExtra.ensureFileSync(cachedEntriesPath);
401
381
  fsExtra.writeJsonSync(cachedEntriesPath, entries);
@@ -409,7 +389,6 @@ function beforeBundleManifest(entries) {
409
389
  });
410
390
  }
411
391
  function bundleManifest(entries) {
412
- var startTime = new Date().getTime();
413
392
  return new Promise(function (resolve, reject) {
414
393
  try {
415
394
  // Hacky solution to delete node_modules inside tiptap regarding miss match version prosemirror
@@ -451,14 +430,18 @@ function bundleManifest(entries) {
451
430
  }
452
431
  else {
453
432
  let webpackConfigs = [];
433
+ var startTime = new Date().getTime();
434
+ // $.tooling.logTime('Build Webpack Config running', startTime);
454
435
  Object.keys(entries).forEach((id) => {
455
436
  var entry = {};
456
437
  entry[id] = entries[id];
457
438
  var vueWebpackConfig = createVueWebpackConfig(entry, entries, $.tooling.composer.OmniaOutput.OutputBundlePath);
458
439
  webpackConfigs.push(vueWebpackConfig);
459
440
  });
441
+ // $.tooling.logTime('Build Webpack Config - done', startTime);
460
442
  let compiler = $.webpack(webpackConfigs);
461
443
  compiler.run((err, stats) => {
444
+ //console.log("webpack run -done")
462
445
  if (checkDuplicateBundle()) { // detect duplicated bundle
463
446
  $.tooling.log('Bundle manifest have error that found duplicated bundles', $.tooling.LogTypes.Error);
464
447
  reject();
@@ -540,19 +523,35 @@ function minifyBundles() {
540
523
  if (process.argv.length > 0 && process.argv.find(argv => argv === "--minify") !== undefined) {
541
524
  let startTime = new Date().getTime();
542
525
  $.tooling.log('Minify bundles running...');
543
- const jsPaths = globby.sync([`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.js`]);
526
+ const jsPaths = (0, globby_1.globbySync)([`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.js`]);
544
527
  let promises = [];
545
528
  jsPaths.forEach(filePath => {
546
529
  promises.push(new Promise(async (resolve, reject) => {
547
- $.tooling.log(`Minify Js -> ${filePath}`);
548
- let content = await fsExtra.readFile(filePath, 'utf8');
549
- let minified = await (0, terser_1.minify)(content, {
550
- sourceMap: false,
551
- ecma: 5 // will remove es5 when not support IE 11
552
- });
553
- await fsExtra.writeFile(`${filePath.substring(0, filePath.length - 3)}.min.js`, minified.code, 'utf8');
554
- $.tooling.log(`Minify Js Done -> ${filePath}`);
555
- resolve();
530
+ try {
531
+ $.tooling.log(`Minify Js -> ${filePath}`);
532
+ // only minify for omnia.vendor.prod
533
+ if (filePath.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
534
+ let content = await fsExtra.readFile(filePath, 'utf8');
535
+ let outFileName = `${filePath.substring(0, filePath.length - 3)}.min.js`;
536
+ if (filePath.indexOf(vendorProdId) > -1) {
537
+ content = content.replace(new RegExp(vendorProdId, "g"), fx_models_1.OmniaResourceManifests.Vendor.toString());
538
+ outFileName = `${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/omnia.vendor_6270b632-1f44-4146-bace-137131c0471b.min.js`;
539
+ }
540
+ let minified = await (0, terser_1.minify)(content, {
541
+ sourceMap: false,
542
+ ecma: 2020 // will remove es5 when not support IE 11
543
+ });
544
+ await fsExtra.writeFile(outFileName, minified.code, 'utf8');
545
+ $.tooling.log(`Minify Js Done -> ${filePath}`);
546
+ }
547
+ resolve();
548
+ }
549
+ catch (ex) {
550
+ tooling_1.utils.log(`Have a exception when minify the file -> ${filePath}`, tooling_1.utils.LogTypes.Error);
551
+ console.error(ex);
552
+ resolve();
553
+ throw new Error("Exit, have an exception.");
554
+ }
556
555
  }));
557
556
  });
558
557
  Promise.all(promises).then(() => {
@@ -565,7 +564,7 @@ function minifyBundles() {
565
564
  }
566
565
  });
567
566
  }
568
- function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModuleReload, viteHmrOption) {
567
+ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, viteHmrOption) {
569
568
  let buildOption = getBuildOption() || {};
570
569
  let isBundleCommonChunk = buildOption.bundleOptions && buildOption.bundleOptions.commonsChunk && buildOption.bundleOptions.commonsChunk.name;
571
570
  const extractCss = new MiniCssExtractPlugin({
@@ -606,7 +605,12 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
606
605
  }
607
606
  }));
608
607
  }
609
- let modifyContent = [];
608
+ let modifyContent = [
609
+ {
610
+ pattern: /\.doc\$(.*\))/g,
611
+ replacement: ''
612
+ }
613
+ ];
610
614
  if (buildOption.bundleOptions && buildOption.bundleOptions.removeSourceMap) {
611
615
  modifyContent.push({
612
616
  pattern: /# sourceMappingURL=(.*\.map)/g,
@@ -628,15 +632,18 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
628
632
  transform(data, opts) {
629
633
  // build manifets stats to detect duplicate bundle
630
634
  let entryName = Object.keys(data.assetsByChunkName)[0];
631
- _manifestsStats[entryName] = [];
632
- data.modules.filter(m => typeof m.id === 'string'
633
- && m.id.trim().length > 0
634
- && m.id.indexOf('dll-reference') === -1
635
- && m.identifier.indexOf('from dll-reference') === -1).forEach(module => {
636
- _manifestsStats[entryName].push(module.id);
637
- _modulesStats[module.id] = _modulesStats[module.id] || new Set();
638
- _modulesStats[module.id].add(entryName);
639
- });
635
+ // ignore omnia.vendor.prod
636
+ if (entryName.indexOf(vendorProdId) === -1) {
637
+ _manifestsStats[entryName] = [];
638
+ data.modules.filter(m => typeof m.id === 'string'
639
+ && m.id.trim().length > 0
640
+ && m.id.indexOf('dll-reference') === -1
641
+ && m.identifier.indexOf('from dll-reference') === -1).forEach(module => {
642
+ _manifestsStats[entryName].push(module.id);
643
+ _modulesStats[module.id] = _modulesStats[module.id] || new Set();
644
+ _modulesStats[module.id].add(entryName);
645
+ });
646
+ }
640
647
  }
641
648
  }));
642
649
  }
@@ -662,7 +669,7 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
662
669
  mangleExports: false,
663
670
  concatenateModules: true,
664
671
  //moduleIds: 'natural' as any
665
- }, isBundleCommonChunk ? buildCommonChunk(entry) : {}),
672
+ }, isBundleCommonChunk && !viteHmrOption ? buildCommonChunk(entry) : {}),
666
673
  resolve: {
667
674
  modules: $.tooling.core.getWebpackResolveModules(),
668
675
  extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.html', '.vue', '.less', '.styl'],
@@ -672,7 +679,7 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
672
679
  alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), (getBuildOption()?.moduleOptions?.alias || {}), {
673
680
  'axios$': 'axios/dist/axios.js',
674
681
  'typestyle$': 'typestyle/lib.es2015/index.js',
675
- 'vue$': 'vue/dist/vue.esm-bundler.js',
682
+ 'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
676
683
  '@microsoft/signalr$': '@microsoft/signalr/dist/webworker/signalr.js',
677
684
  }),
678
685
  },
@@ -696,9 +703,8 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
696
703
  fullySpecified: false, // disable the behaviour
697
704
  },
698
705
  },
699
- ...(0, ts_loader_1.default)(getBuildOption().enableTreeShaking),
700
- ...(0, tsx_loader_1.default)(getBuildOption().enableTreeShaking, wcDomProps, hotModuleReload),
701
- // ...jsxLoader(getBuildOption().enableTreeShaking, wcDomProps, hotModuleReload),
706
+ ...(0, ts_loader_1.default)(),
707
+ ...(0, tsx_loader_1.default)(),
702
708
  {
703
709
  // remove vuetify locale
704
710
  test: (path) => {
@@ -825,7 +831,7 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
825
831
  exports.createVueWebpackConfig = createVueWebpackConfig;
826
832
  function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
827
833
  var entensionId = getServiceId();
828
- return Object.assign({}, (0, shared_1.getBaseWebpackConfigForManifestMetadata)(entry, metadataOutputDir, wcDomProps, getBuildOption().enableTreeShaking), {
834
+ return Object.assign({}, getBaseWebpackConfigForManifestMetadata(entry, metadataOutputDir), {
829
835
  plugins: [
830
836
  ...buildReferenceManifestFromConfig(),
831
837
  new $.omniaWebpackPlugins.NamedModulesPlugin(buildModuleName()),
@@ -837,6 +843,117 @@ function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
837
843
  ]
838
844
  });
839
845
  }
846
+ function getBaseWebpackConfigForManifestMetadata(entry, bundleOutputDir) {
847
+ return {
848
+ devtool: false,
849
+ mode: 'development',
850
+ context: $.tooling.utils.root(""),
851
+ entry: entry,
852
+ optimization: Object.assign({
853
+ removeAvailableModules: false,
854
+ removeEmptyChunks: false,
855
+ splitChunks: false,
856
+ }),
857
+ resolve: {
858
+ modules: $.tooling.core.getWebpackResolveModules(),
859
+ extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx'],
860
+ //extensions: ['.js', '.jsx', '.ts', '.tsx', '.html', '.vue', '.less', '.styl'],
861
+ symlinks: false,
862
+ cacheWithContext: true,
863
+ descriptionFiles: ['package.json'],
864
+ alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), ($.composers.BuildConfigurationRegistry.getBuildOptions()?.moduleOptions?.alias || {}), {
865
+ 'axios$': 'axios/dist/axios.js',
866
+ 'typestyle$': 'typestyle/lib.es2015/index.js',
867
+ 'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
868
+ '@microsoft/signalr': '@microsoft/signalr/dist/webworker/signalr.js',
869
+ }),
870
+ //mainFields: ['main', 'browser', 'module']
871
+ },
872
+ output: {
873
+ pathinfo: false,
874
+ path: $.tooling.utils.root(bundleOutputDir),
875
+ filename: '[name].js'
876
+ },
877
+ externals: [
878
+ function ({ context, request }, callback) {
879
+ if (request.indexOf("node_modules") > -1 || (/\.(sass|scss|styl|less|css)$/i).test(request)) {
880
+ return callback(null, 'commonjs ' + request);
881
+ }
882
+ callback();
883
+ }
884
+ ],
885
+ module: {
886
+ noParse: /wwwroot(.*)/,
887
+ rules: [
888
+ {
889
+ test: /\.m?js$/,
890
+ resolve: {
891
+ fullySpecified: false, // disable the behaviour
892
+ },
893
+ },
894
+ ...(0, ts_loader_1.default)(),
895
+ ...(0, tsx_loader_1.default)(),
896
+ {
897
+ test: /\.styl$/,
898
+ use: [
899
+ //'style-loader',
900
+ //'css-loader',
901
+ 'stylus-loader'
902
+ ]
903
+ },
904
+ ...($.isExtensionEnv ? [] : [{
905
+ test: /\.s(c|a)ss$/,
906
+ use: [
907
+ {
908
+ loader: 'sass-loader',
909
+ options: {
910
+ implementation: require('sass'),
911
+ sassOptions: {
912
+ //fiber: require('fibers'),
913
+ indentedSyntax: true
914
+ }
915
+ //fiber: require('fibers')
916
+ }
917
+ }
918
+ ]
919
+ }]),
920
+ {
921
+ test: /\.less$/,
922
+ use: [
923
+ //'style-loader',
924
+ //'css-loader',
925
+ 'less-loader'
926
+ ]
927
+ },
928
+ {
929
+ test: /\.css$/,
930
+ use: [
931
+ //'style-loader',
932
+ {
933
+ loader: 'css-loader'
934
+ }
935
+ ]
936
+ },
937
+ {
938
+ test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
939
+ loader: 'url-loader'
940
+ },
941
+ {
942
+ test: /\.(ico|gif|png|jpe?g|svg)$/i,
943
+ use: [{
944
+ loader: 'file-loader',
945
+ options: {
946
+ name: '[name].[ext]',
947
+ outputPath: "../images/",
948
+ publicPath: '/omnia/images/'
949
+ }
950
+ }]
951
+ //loader: 'url-loader'
952
+ }
953
+ ]
954
+ }
955
+ };
956
+ }
840
957
  function buildCommonChunk(entry) {
841
958
  let bundleOptions = getBuildOption().bundleOptions;
842
959
  let minChunk = bundleOptions.commonsChunk.minChunks || 2;
@@ -872,7 +989,7 @@ function buildCommonChunk(entry) {
872
989
  function processManifestGenerated(entries, outDir) {
873
990
  var allowJsOutputExtensions = [".js", ".ts", ".tsx", ".jsx", ".vue"];
874
991
  if (entries) {
875
- var manifestsPaths = globby.sync(outDir.replace(/\/$/, '') + '/*.*', {});
992
+ var manifestsPaths = (0, globby_1.globbySync)(outDir.replace(/\/$/, '') + '/*.*', {});
876
993
  if (manifestsPaths) {
877
994
  for (let p of manifestsPaths) {
878
995
  var manifestId = $.tooling.utils.getGuidValue($.tooling.utils.getFileName(p));
@@ -1090,7 +1207,8 @@ function buildReferenceManifest(currentEntry, entries) {
1090
1207
  return dynamicReferenceManifests.concat(buildReferenceManifestFromConfig());
1091
1208
  var currentEntryName = Object.keys(currentEntry)[0];
1092
1209
  // exclude omnia vendor
1093
- if (currentEntryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
1210
+ if (currentEntryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
1211
+ && currentEntryName.indexOf(vendorProdId) === -1) {
1094
1212
  Object.keys(entries).forEach((entryName) => {
1095
1213
  if (entryName !== currentEntryName) {
1096
1214
  if ($.fs.existsSync($.tooling.utils.root(outDirManifestMetadata + "/" + entryName + ".manifest.json"))) {
@@ -1142,7 +1260,8 @@ function buildModuleName() {
1142
1260
  replace: function (modulePath) {
1143
1261
  var buildOptions = getBuildOption();
1144
1262
  if (buildOptions && buildOptions.moduleOptions && buildOptions.moduleOptions.enableTransformResourcePath) {
1145
- if (modulePath.indexOf('./node_modules/') === -1 // ignore from npm package
1263
+ if (modulePath.indexOf('./node_modules/') === -1 // ignore from npm package and in wwwwroot .js file
1264
+ && (modulePath.indexOf('./wwwroot/') === -1 || path_1.default.extname(modulePath) === ".js")
1146
1265
  && modulePath.indexOf('./omnia/fx/models/ConfigurationComposers') === -1 // ignore comment interface for special case here
1147
1266
  && $.fs.existsSync(modulePath)) {
1148
1267
  let stream = $.fs.readFileSync(modulePath, 'utf8');
@@ -1201,89 +1320,18 @@ function getServiceId() {
1201
1320
  return serviceId;
1202
1321
  }
1203
1322
  exports.getServiceId = getServiceId;
1204
- function extractTypingsForComponents(componentRegistrations) {
1205
- let foundTypes = {};
1206
- componentRegistrations.forEach((comp) => {
1207
- let defPaths = comp.componentOptions.typings;
1208
- if (defPaths) {
1209
- let isChildSpec = false;
1210
- defPaths.forEach((defPath) => {
1211
- let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(comp.manifestPath, [defPath])[0];
1212
- let contents = $.fs.readFileSync(entryPointPath, 'utf8');
1213
- let wcEl = getWcElement(contents, isChildSpec);
1214
- if (wcEl) {
1215
- //Now lets find the interface mapped to element
1216
- //example /*@WebComponentInterface("omfx-dialog")*/
1217
- let interfaceToken = `/*@WebComponentInterface("${wcEl}")*/`;
1218
- let interfaceIndex = contents.indexOf(interfaceToken);
1219
- if (interfaceIndex > -1) {
1220
- let wcProps = [];
1221
- let intf = contents.substring(interfaceIndex);
1222
- let nextIsDomProp = false;
1223
- intf = intf
1224
- .substring(intf.indexOf("{") + 1, intf.indexOf("}"))
1225
- .replace(/\?/g, '')
1226
- .trim()
1227
- .split(/\r\n|\r|\n/g).forEach((group) => {
1228
- /*@DomProperty*/
1229
- let sub = group.trim();
1230
- if (sub.indexOf("/*@DomProperty*/") > -1) {
1231
- nextIsDomProp = true;
1232
- return;
1233
- }
1234
- if (nextIsDomProp) {
1235
- if (sub.indexOf(':')) {
1236
- sub = sub.split(':')[0];
1237
- }
1238
- if (sub) {
1239
- if (!foundTypes[wcEl]) {
1240
- foundTypes[wcEl] = [];
1241
- }
1242
- foundTypes[wcEl].push(sub);
1243
- }
1244
- nextIsDomProp = false;
1245
- }
1246
- });
1247
- }
1248
- }
1249
- isChildSpec = true;
1250
- });
1251
- }
1252
- });
1253
- return foundTypes;
1254
- }
1255
- var lastWcElement = "";
1256
- function getWcElement(contents, isChildSpec) {
1257
- if (isChildSpec) {
1258
- if (lastWcElement === "") {
1259
- new Error("Cant find the /*@DomProperty*/ on the parent interface for the WebComponent definition");
1260
- }
1261
- return lastWcElement;
1262
- }
1263
- else {
1264
- lastWcElement = "";
1265
- }
1266
- let wcElToken = "/*@WebComponent*/";
1267
- let wcElIndex = contents.indexOf(wcElToken);
1268
- let wcEl = "";
1269
- if (wcElIndex > -1) {
1270
- wcEl = contents.substring(wcElIndex);
1271
- wcEl = wcEl.substring(wcEl.indexOf('"') + 1);
1272
- wcEl = wcEl.substring(0, wcEl.indexOf('"'));
1273
- lastWcElement = wcEl;
1274
- }
1275
- return lastWcElement;
1276
- }
1277
- function createVueEntryFormRegistrations(registrations) {
1323
+ function createVueEntryFormComponentRegistrations(registrations) {
1278
1324
  let entryPaths = {};
1279
1325
  for (let r of registrations) {
1280
- if (r.componentOptions.entryPoint.endsWith('.jsx') || r.componentOptions.entryPoint.endsWith('.vue') || r.componentOptions.entryPoint.endsWith('.tsx') || r.componentOptions.entryPoint.endsWith('.ts')) {
1326
+ if (r.componentOptions.entryPoint.endsWith('.tsx')
1327
+ || r.componentOptions.entryPoint.endsWith('.vue')) {
1281
1328
  let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(r.manifestPath, [r.componentOptions.entryPoint]);
1282
1329
  let entryId = r.manifest.resourceId;
1283
1330
  if (r.manifest.resourceName) {
1284
1331
  entryId = `${r.manifest.resourceName}_${entryId}`;
1285
1332
  }
1286
- entryPaths[entryId] = entryPointPath;
1333
+ r.componentOptions.entryPointPath = entryPointPath[0];
1334
+ entryPaths[entryId.toString()] = entryPointPath;
1287
1335
  }
1288
1336
  else {
1289
1337
  $.tooling.log('The OmniaFx build system only supports .jsx, .vue and .tsx based components at the moment ', $.tooling.LogTypes.Error);
@@ -1294,7 +1342,6 @@ function createVueEntryFormRegistrations(registrations) {
1294
1342
  }
1295
1343
  function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFilePath) {
1296
1344
  let manifest = $.tooling.composer.getManifestById(currentManifestId);
1297
- let hasChanged = false;
1298
1345
  const content = fsExtra.readFileSync(manifestBundleFilePath, 'utf8');
1299
1346
  const addDependency = (dependOnmanifestId, dependOnServiceId) => {
1300
1347
  let hasNewDependency = false;
@@ -1318,7 +1365,7 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1318
1365
  if (manifestObject && manifestObject.content) {
1319
1366
  Object.keys(manifestObject.content).forEach((modulePath) => {
1320
1367
  if (content.indexOf(modulePath) > -1) {
1321
- hasChanged = addDependency(manifest.resourceId, manifest.serviceId);
1368
+ addDependency(manifest.resourceId, manifest.serviceId);
1322
1369
  return;
1323
1370
  }
1324
1371
  });
@@ -1338,7 +1385,8 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1338
1385
  if (entryName.toLowerCase() !== currentManifestId.toString().toLowerCase()
1339
1386
  && entryName.indexOf(fx_models_1.OmniaResourceManifests.FxWorkers.toString()) === -1
1340
1387
  && entryName.indexOf(fx_models_1.OmniaResourceManifests.FxCore.toString()) === -1 /* ignore omnia.fx.core, omnia.fx.workers and vendor manifest because ith not loaded by our resource loader */
1341
- && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
1388
+ && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
1389
+ && entryName.indexOf(vendorProdId) === -1) {
1342
1390
  for (let entryPointPath of _manifestsEntry[entryName]) {
1343
1391
  if (!hasDependency) {
1344
1392
  var transformresourcePath = _transformResourcepaths.find(resource => resource.original === entryPointPath);
@@ -1350,7 +1398,7 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1350
1398
  hasDependency = true;
1351
1399
  }
1352
1400
  if (hasDependency) {
1353
- hasChanged = addDependency($.tooling.utils.getGuidValue(entryName));
1401
+ addDependency($.tooling.utils.getGuidValue(entryName));
1354
1402
  break;
1355
1403
  }
1356
1404
  }
@@ -1358,10 +1406,6 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1358
1406
  }
1359
1407
  });
1360
1408
  }
1361
- if (hasChanged) {
1362
- let manifestsData = $.tooling.composer.getManifestData();
1363
- $.tooling.composer.updateManifestData(manifestsData);
1364
- }
1365
1409
  }
1366
1410
  exports.ensureManifestDependencyInRuntime = ensureManifestDependencyInRuntime;
1367
1411
  function buildManifestsDependency(entries, manifestId, manifestBundleContent) {
@@ -1392,7 +1436,8 @@ function buildManifestsDependency(entries, manifestId, manifestBundleContent) {
1392
1436
  if (entryName.toLowerCase() !== manifestId.toLowerCase()
1393
1437
  && entryName.indexOf(fx_models_1.OmniaResourceManifests.FxWorkers.toString()) === -1
1394
1438
  && entryName.indexOf(fx_models_1.OmniaResourceManifests.FxCore.toString()) === -1 /* ignore omnia.fx.core, omnia.fx.workers and vendor manifest because ith not loaded by our resource loader */
1395
- && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
1439
+ && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
1440
+ && entryName.indexOf(vendorProdId) === -1) {
1396
1441
  for (let entryPointPath of entries[entryName]) {
1397
1442
  if (!hasDependency) {
1398
1443
  var transformresourcePath = _transformResourcepaths.find(resource => resource.original === entryPointPath);
@@ -1451,15 +1496,12 @@ function chunkAsset(entries, compilation, fileName, viteHmrOption) {
1451
1496
  /******/ }
1452
1497
  /******/ omniaLoader['${omniaServiceId}'] = omniaLoader['${omniaServiceId}'] || {};
1453
1498
  /******/
1454
- /******/ function preBundle() {
1499
+ /******/ function hmrPreBundle() {
1455
1500
  ${content}
1456
1501
  /******/ }
1457
1502
 
1458
- if (omniaLoader['${omniaServiceId}']['${manifestId}']){
1459
- omniaLoader['${omniaServiceId}']['${manifestId}'](preBundle);
1460
- }
1461
- else {
1462
- omniaLoader['${omniaServiceId}']['${manifestId}'] = preBundle;
1503
+ if (!omniaLoader['${omniaServiceId}']['${manifestId}']){
1504
+ omniaLoader['${omniaServiceId}']['${manifestId}'] = hmrPreBundle;
1463
1505
  }`;
1464
1506
  }
1465
1507
  else if (viteHmrOption == 'dynamic') {
@@ -1531,7 +1573,8 @@ function checkDuplicateWebpackEntryPoints(entries) {
1531
1573
  let foundDuplicated = false;
1532
1574
  let entryPathInfos = {};
1533
1575
  Object.keys(entries).forEach(key => {
1534
- if (entries[key]) {
1576
+ // skip omnia.vendor.prod
1577
+ if (entries[key] && key.indexOf(vendorProdId) === -1) {
1535
1578
  entries[key].forEach(path => {
1536
1579
  entryPathInfos[path] = entryPathInfos[path] || [];
1537
1580
  entryPathInfos[path].push(key);
@@ -1546,13 +1589,6 @@ function checkDuplicateWebpackEntryPoints(entries) {
1546
1589
  });
1547
1590
  return foundDuplicated;
1548
1591
  }
1549
- function isEnableMeasureBuild() {
1550
- let enableMeasure = $.composers.DevelopmentBuildConfiguration.isEnableMeasureBuild;
1551
- if (enableMeasure !== true && process.argv.length > 0) {
1552
- enableMeasure = process.argv.find(argv => argv === "--measure") !== undefined;
1553
- }
1554
- return enableMeasure;
1555
- }
1556
1592
  function prefixCssSelector() {
1557
1593
  //var applyToSelectors = ['input', '::before', '::after'];
1558
1594
  //var applyToSelectors = ['select', 'textarea', 'button', 'input', '.btn', '.content', '.input-group', '.title', '.icon', '*'];
@@ -1609,45 +1645,9 @@ exports.registerManifestsReference = registerManifestsReference;
1609
1645
  function getRegisteredReferenceManifests() {
1610
1646
  return _registeredReferenceManifests;
1611
1647
  }
1612
- function registerWebComponentDefinitions(definitions) {
1613
- if (definitions) {
1614
- _wcDefinitions = $.merge(_wcDefinitions, definitions);
1615
- }
1616
- }
1617
- exports.registerWebComponentDefinitions = registerWebComponentDefinitions;
1618
- function getRegisteredWebComponentDefinitions() {
1619
- return _wcDefinitions;
1620
- }
1621
1648
  function sortString(a, b) {
1622
1649
  if (a >= b) {
1623
1650
  return 1;
1624
1651
  }
1625
1652
  return -1;
1626
1653
  }
1627
- function generateWebComponentTypings(wc, template) {
1628
- // export default defineVueWebComponent
1629
- let wcPath = (0, shared_1.convertManifestPathToEntryPath)(wc.manifestPath, [wc.componentOptions.entryPoint])[0];
1630
- let content = fsExtra.readFileSync(wcPath, 'utf8');
1631
- if (content.indexOf("defineVueWebComponent") > -1) {
1632
- if (!new RegExp('export\\s+default\\s+').test(content)) {
1633
- throw new Error(`Missing statement 'export default a vue web component' in ${wcPath}`);
1634
- }
1635
- let friendlyManifestId = `wc${wc.manifest.resourceId.replace(/-/g, '').toLowerCase()}`;
1636
- let importPath = wcPath.substring(0, wcPath.lastIndexOf('.tsx'));
1637
- if (importPath.indexOf("./") === 0) {
1638
- importPath = importPath.replace("./", "");
1639
- }
1640
- if ($.isExtensionEnv) {
1641
- importPath = `../../../../${importPath}`;
1642
- }
1643
- else {
1644
- importPath = `../../../${importPath}`;
1645
- }
1646
- return template
1647
- .replace(/\/\/{{importWC}}/, `import ${friendlyManifestId} from '${importPath}';
1648
- //{{importWC}}`)
1649
- .replace(/\/\/{{elementName}}/, `"${wc.componentOptions.elementName}": typeof ${friendlyManifestId}.propsDefinition & VueComponentBaseProps
1650
- //{{elementName}}`);
1651
- }
1652
- return template;
1653
- }