@omnia/tooling-vue 8.0.5-vnext → 8.0.6-dev-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 (60) 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 +2059 -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 -127
  7. package/internal-do-not-import-from-here/shared.js +97 -207
  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 +293 -349
  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/tsc.js +1 -0
  16. package/internal-do-not-import-from-here/tasks/vendor.js +166 -19
  17. package/internal-do-not-import-from-here/variables.d.ts +1 -1
  18. package/internal-do-not-import-from-here/variables.js +2 -2
  19. package/internal-do-not-import-from-here/vite/hmr/graph.js +5 -1
  20. package/internal-do-not-import-from-here/vite/hmr/manifest.js +6 -7
  21. package/internal-do-not-import-from-here/vite/hmr/runtime.js +5 -5
  22. package/internal-do-not-import-from-here/vite/hmr/transformers/importPath.js +9 -5
  23. package/internal-do-not-import-from-here/vite/hmr/transformers/internal/dynamicBundle.js +64 -24
  24. package/internal-do-not-import-from-here/vite/hmr/transformers/vendorImportPath.d.ts +4 -0
  25. package/internal-do-not-import-from-here/vite/hmr/transformers/vendorImportPath.js +2 -1
  26. package/internal-do-not-import-from-here/vite/hmr/utils/manifest.js +3 -3
  27. package/internal-do-not-import-from-here/vite/hmr/utils/path.js +7 -6
  28. package/internal-do-not-import-from-here/vite/hmr/utils/webpack.js +8 -3
  29. package/internal-do-not-import-from-here/vite/hmr/vueJsx.js +1 -1
  30. package/internal-do-not-import-from-here/vite/index.js +4 -0
  31. package/internal-do-not-import-from-here/vite/middlewares/HmrMiddleware.js +8 -14
  32. package/internal-do-not-import-from-here/vite/middlewares/OmniaMiddleware.js +55 -17
  33. package/internal-do-not-import-from-here/vite/middlewares/StaticFileMiddleware.js +31 -10
  34. package/internal-do-not-import-from-here/vite/middlewares/WebpackMiddleware.js +1 -1
  35. package/internal-do-not-import-from-here/vite/plugins/OmniaPlugin.js +38 -20
  36. package/internal-do-not-import-from-here/wctypings.ts +0 -0
  37. package/internal-do-not-import-from-here/webpack-loaders/doc-loader.js +11 -0
  38. package/internal-do-not-import-from-here/webpack-loaders/ts-loader.d.ts +11 -4
  39. package/internal-do-not-import-from-here/webpack-loaders/ts-loader.js +12 -12
  40. package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.d.ts +11 -1
  41. package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.js +34 -29
  42. package/internal-do-not-import-from-here/webpack-loaders/wc-loader.d.ts +1 -0
  43. package/internal-do-not-import-from-here/webpack-loaders/wc-loader.js +11 -0
  44. package/package.json +13 -9
  45. package/internal-do-not-import-from-here/1cacb55c-202b-4cd7-819d-11bad92fa9cb.wcdefinitions.json +0 -1
  46. package/internal-do-not-import-from-here/1cacb55c-202b-4cd7-819d-11bad92fa9cb.wctypings.d.ts +0 -11
  47. package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wcdefinitions.json +0 -1
  48. package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wctypings.d.ts +0 -265
  49. package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wctypings.js +0 -2
  50. package/internal-do-not-import-from-here/cc000000-0000-cccc-0000-0000000000cc.wcdefinitions.json +0 -1
  51. package/internal-do-not-import-from-here/config/tsconfig.es2015.json +0 -21
  52. package/internal-do-not-import-from-here/webpack-loaders/esbuild-custom-loader.js +0 -13
  53. package/internal-do-not-import-from-here/webpack-loaders/jsx-loader.d.ts +0 -8
  54. package/internal-do-not-import-from-here/webpack-loaders/jsx-loader.js +0 -61
  55. package/internal-do-not-import-from-here/webpack-loaders/vue-tsx-hot-loader.d.ts +0 -1
  56. package/internal-do-not-import-from-here/webpack-loaders/vue-tsx-hot-loader.js +0 -44
  57. package/internal-do-not-import-from-here/webpack-loaders/wcmanifest-loader.d.ts +0 -1
  58. package/internal-do-not-import-from-here/webpack-loaders/wcmanifest-loader.js +0 -10
  59. /package/internal-do-not-import-from-here/{1cacb55c-202b-4cd7-819d-11bad92fa9cb.wctypings.js → config/wctypings.js} +0 -0
  60. /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,8 +38,27 @@ $.tooling.core.registerBuildTask({
35
38
  order: 2,
36
39
  task: function () {
37
40
  return new Promise(function (resolve, reject) {
38
- buildWebpackEntries()
39
- .then(resolve, reject);
41
+ buildEntries()
42
+ .then((result) => {
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
+ }
61
+ }, reject);
40
62
  });
41
63
  }
42
64
  });
@@ -50,7 +72,7 @@ $.tooling.core.registerServeTask({
50
72
  fsExtra.removeSync("node_modules/tiptap-commands/node_modules");
51
73
  fsExtra.removeSync("node_modules/tiptap-utils/node_modules");
52
74
  }
53
- buildWebpackEntries(true)
75
+ buildEntries(true)
54
76
  .then(resolve, reject);
55
77
  });
56
78
  }
@@ -169,82 +191,38 @@ function clean() {
169
191
  return new Promise(function (resolve, reject) {
170
192
  del_1.default.sync("node_modules/.cache");
171
193
  del_1.default.sync($.tooling.utils.root(outDirManifestMetadata + "/manifest.entries.cached.json"));
172
- if ($.isExtensionEnv) {
173
- del_1.default.sync($.path.resolve(__dirname, "../wctypings.ts"));
174
- }
175
- else {
176
- del_1.default.sync($.path.resolve(__dirname, `../bb000000-0000-bbbb-0000-0000000000bb.wctypings.ts`));
177
- }
194
+ shared_1.ConfigurationManager.webComponentTypings.delete();
178
195
  resolve();
179
196
  });
180
197
  }
181
- function buildWebpackEntries(serve = false) {
182
- return new Promise(function (resolve, reject) {
198
+ function buildEntries(serve = false) {
199
+ return new Promise(async function (resolve, reject) {
183
200
  try {
184
- var startTime = new Date().getTime();
201
+ let startTime = new Date().getTime();
185
202
  var componentRegistry = $.composers.ComponentRegistry;
186
203
  let componentRegistrations = componentRegistry.getRegistrations();
204
+ const serviceInfo = $.composers.ServiceManifestRegistry.getServiceInfo();
205
+ startTime = new Date().getTime();
187
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
+ }
188
211
  var resourceRegistry = $.composers.ResourceRegistry;
189
212
  let resourceBundlesWithBuildOptions = resourceRegistry.getRegisteredResourceBundles(shared_1.convertManifestPathToEntryPath);
190
- $.tooling.logTime("Found [" + (resourceBundlesWithBuildOptions ? Object.keys(resourceBundlesWithBuildOptions).length : 0) + "] resource bundles", startTime);
213
+ $.tooling.logTime("Found [" + resourceBundlesWithBuildOptions?.size + "] resource bundles", startTime);
191
214
  let resourceEntries = {};
192
- let wcDefinitionsPath, wcTypingsPath;
193
- for (let key in resourceBundlesWithBuildOptions) {
194
- let resource = resourceBundlesWithBuildOptions[key];
195
- 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]);
196
218
  if (!resource.buildOptions) {
197
- resourceEntries[`${manifest.resourceName ? manifest.resourceName + "_" : ""}${key}`] = resource.paths;
219
+ resourceEntries[`${manifest.resourceName ? manifest.resourceName + "_" : ""}${res[0]}`] = resource.paths;
198
220
  }
199
221
  else {
200
222
  //Some special handling of buildoptions
201
- 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));
202
224
  }
203
225
  }
204
- //We only support typings for registered web components
205
- wcDomProps = extractTypingsForComponents(componentRegistrations);
206
- if (Object.keys(wcDomProps).length > 0) {
207
- let wcDomPropsDesc = `Extracted web component typings for ${Object.keys(wcDomProps).length} component(s)`;
208
- $.tooling.logTime(wcDomPropsDesc, startTime);
209
- }
210
- if ($.isExtensionEnv) {
211
- wcDefinitionsPath = $.path.resolve(__dirname, "../wcdefinitions.json");
212
- wcTypingsPath = $.path.resolve(__dirname, "../wctypings.ts");
213
- }
214
- else {
215
- wcDefinitionsPath = $.path.resolve(__dirname, `../${getServiceId().toLowerCase()}.wcdefinitions.json`);
216
- wcTypingsPath = $.path.resolve(__dirname, `../${getServiceId().toLowerCase()}.wctypings.ts`);
217
- }
218
- // have issue in devops need to ensure file exist first.
219
- fsExtra.ensureFileSync(wcDefinitionsPath);
220
- fsExtra.writeJsonSync(wcDefinitionsPath, wcDomProps);
221
- let wcTypings = `
222
- //{{importWC}}
223
- declare global {
224
- namespace JSX {
225
- interface Element { }
226
- interface ElementClass { }
227
-
228
- interface IntrinsicElements {
229
- //{{elementName}}
230
- }
231
- }
232
- }
233
- `;
234
- if ($.isExtensionEnv) {
235
- wcTypings = `import { VueComponentBaseProps } from "@omnia/fx/ux";
236
- ${wcTypings}`;
237
- }
238
- else {
239
- wcTypings = `import { VueComponentBaseProps } from "../../../client/fx/ux/index";
240
- ${wcTypings}`;
241
- }
242
- componentRegistrations.forEach(wc => {
243
- wcTypings = generateWebComponentTypings(wc, wcTypings);
244
- });
245
- fsExtra.outputFileSync(wcTypingsPath, wcTypings);
246
- wcDomProps = $.merge(wcDomProps, getRegisteredWebComponentDefinitions());
247
- let componentEntries = createVueEntryFormRegistrations(componentRegistrations);
248
226
  var entries = $.merge(componentEntries, resourceEntries);
249
227
  if (checkDuplicateWebpackEntryPoints(entries)) {
250
228
  $.tooling.log('Build manifests metadata have error that found duplicated resource path', $.tooling.LogTypes.Error);
@@ -295,7 +273,15 @@ function buildManifestMetadatas(entries) {
295
273
  return;
296
274
  }
297
275
  $.tooling.log('Build manifests metadata running...', $.tooling.LogTypes.HeadLine);
298
- 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) => {
299
285
  Object.keys(entries).forEach((entry) => {
300
286
  let manifestPath = outputDir + "/" + entry + '.manifest.json';
301
287
  if ($.fs.existsSync($.tooling.utils.root(manifestPath))) {
@@ -309,17 +295,6 @@ function buildManifestMetadatas(entries) {
309
295
  $.fs.writeFileSync(manifestPath, JSON.stringify(manifestJson));
310
296
  }
311
297
  });
312
- };
313
- let webpackConfigs = [];
314
- Object.keys(entries).forEach((id) => {
315
- var entry = {};
316
- entry[id] = entries[id];
317
- var vueWebpackConfig = createWebpackConfigForManifestMetadata(entry, outputDir);
318
- webpackConfigs.push(vueWebpackConfig);
319
- });
320
- let compiler = $.webpack(webpackConfigs);
321
- compiler.run((err, stats) => {
322
- updateMetadataFiles();
323
298
  $.del.sync([outputDir + '/*.js']);
324
299
  if (err) {
325
300
  $.tooling.logTime(`Build manifests metadata have an exception`, startTime);
@@ -374,16 +349,33 @@ function beforeBundleManifest(entries) {
374
349
  isRunBuildMetadata = !isEqual(entries, cachedEntries);
375
350
  }
376
351
  if (isRunBuildMetadata) {
377
- let entriesToBuild = entries;
378
- if (!getBuildOption().allowShareWCManifestBundle) {
379
- let reourceRegistrationsKeys = Object.keys($.composers.ResourceRegistry.getResourceRegistrations());
380
- entriesToBuild = {};
381
- Object.keys(entries).forEach(entry => {
382
- if (reourceRegistrationsKeys.find(rk => entry.indexOf(rk) > -1)) {
383
- entriesToBuild[entry] = entries[entry];
384
- }
385
- });
386
- }
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
+ });
387
379
  buildManifestMetadatas(entriesToBuild).then(() => {
388
380
  fsExtra.ensureFileSync(cachedEntriesPath);
389
381
  fsExtra.writeJsonSync(cachedEntriesPath, entries);
@@ -397,7 +389,6 @@ function beforeBundleManifest(entries) {
397
389
  });
398
390
  }
399
391
  function bundleManifest(entries) {
400
- var startTime = new Date().getTime();
401
392
  return new Promise(function (resolve, reject) {
402
393
  try {
403
394
  // Hacky solution to delete node_modules inside tiptap regarding miss match version prosemirror
@@ -439,14 +430,18 @@ function bundleManifest(entries) {
439
430
  }
440
431
  else {
441
432
  let webpackConfigs = [];
433
+ var startTime = new Date().getTime();
434
+ // $.tooling.logTime('Build Webpack Config running', startTime);
442
435
  Object.keys(entries).forEach((id) => {
443
436
  var entry = {};
444
437
  entry[id] = entries[id];
445
438
  var vueWebpackConfig = createVueWebpackConfig(entry, entries, $.tooling.composer.OmniaOutput.OutputBundlePath);
446
439
  webpackConfigs.push(vueWebpackConfig);
447
440
  });
441
+ // $.tooling.logTime('Build Webpack Config - done', startTime);
448
442
  let compiler = $.webpack(webpackConfigs);
449
443
  compiler.run((err, stats) => {
444
+ //console.log("webpack run -done")
450
445
  if (checkDuplicateBundle()) { // detect duplicated bundle
451
446
  $.tooling.log('Bundle manifest have error that found duplicated bundles', $.tooling.LogTypes.Error);
452
447
  reject();
@@ -528,68 +523,48 @@ function minifyBundles() {
528
523
  if (process.argv.length > 0 && process.argv.find(argv => argv === "--minify") !== undefined) {
529
524
  let startTime = new Date().getTime();
530
525
  $.tooling.log('Minify bundles running...');
531
- 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`]);
532
527
  let promises = [];
533
528
  jsPaths.forEach(filePath => {
534
529
  promises.push(new Promise(async (resolve, reject) => {
535
- $.tooling.log(`Minify Js -> ${filePath}`);
536
- let content = await fsExtra.readFile(filePath, 'utf8');
537
- let minified = await (0, terser_1.minify)(content, {
538
- sourceMap: false,
539
- ecma: 5 // will remove es5 when not support IE 11
540
- });
541
- await fsExtra.writeFile(`${filePath.substring(0, filePath.length - 3)}.min.js`, minified.code, 'utf8');
542
- $.tooling.log(`Minify Js Done -> ${filePath}`);
543
- 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
+ }
544
555
  }));
545
556
  });
546
557
  Promise.all(promises).then(() => {
547
558
  $.tooling.logTime('Done - Minify Js bundles', startTime);
548
559
  resolve();
549
560
  });
550
- //const debug = require('gulp-debug');
551
- //const cleanCSS = require('gulp-clean-css');
552
- //let processing = 2;
553
- //let complete = () => {
554
- // --processing;
555
- // if (processing === 0) {
556
- // resolve();
557
- // }
558
- //}
559
- //$.gulp
560
- // .src(`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.js`)
561
- // .pipe(debug({ title: 'Minify Js ->' }))
562
- // .pipe(terser({
563
- // ecma: 5 // will remove es5 when not support IE 11
564
- // }))
565
- // .pipe(rename(function (path) {
566
- // path.basename += ".min";
567
- // }))
568
- // .pipe(debug({ title: 'Minify Js Done ->' }))
569
- // .pipe($.gulp.dest($.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)))
570
- // .on('end', () => {
571
- // $.tooling.logTime('Done - Minify Js bundles', startTime);
572
- // complete();
573
- // })
574
- //$.gulp.src(`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.css`)
575
- // .pipe(debug({ title: 'Minify Css ->' }))
576
- // .pipe(cleanCSS())
577
- // .pipe(rename(function (path) {
578
- // path.basename += ".min";
579
- // }))
580
- // .pipe(debug({ title: 'Minify Css Done ->' }))
581
- // .pipe($.gulp.dest($.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)))
582
- // .on('end', () => {
583
- // $.tooling.logTime('Done - Minify Css bundles', startTime);
584
- // complete();
585
- // })
586
561
  }
587
562
  else {
588
563
  resolve();
589
564
  }
590
565
  });
591
566
  }
592
- function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModuleReload, viteHmrOption) {
567
+ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, viteHmrOption) {
593
568
  let buildOption = getBuildOption() || {};
594
569
  let isBundleCommonChunk = buildOption.bundleOptions && buildOption.bundleOptions.commonsChunk && buildOption.bundleOptions.commonsChunk.name;
595
570
  const extractCss = new MiniCssExtractPlugin({
@@ -630,7 +605,12 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
630
605
  }
631
606
  }));
632
607
  }
633
- let modifyContent = [];
608
+ let modifyContent = [
609
+ {
610
+ pattern: /\.doc\$(.*\))/g,
611
+ replacement: ''
612
+ }
613
+ ];
634
614
  if (buildOption.bundleOptions && buildOption.bundleOptions.removeSourceMap) {
635
615
  modifyContent.push({
636
616
  pattern: /# sourceMappingURL=(.*\.map)/g,
@@ -652,15 +632,18 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
652
632
  transform(data, opts) {
653
633
  // build manifets stats to detect duplicate bundle
654
634
  let entryName = Object.keys(data.assetsByChunkName)[0];
655
- _manifestsStats[entryName] = [];
656
- data.modules.filter(m => typeof m.id === 'string'
657
- && m.id.trim().length > 0
658
- && m.id.indexOf('dll-reference') === -1
659
- && m.identifier.indexOf('from dll-reference') === -1).forEach(module => {
660
- _manifestsStats[entryName].push(module.id);
661
- _modulesStats[module.id] = _modulesStats[module.id] || new Set();
662
- _modulesStats[module.id].add(entryName);
663
- });
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
+ }
664
647
  }
665
648
  }));
666
649
  }
@@ -686,25 +669,18 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
686
669
  mangleExports: false,
687
670
  concatenateModules: true,
688
671
  //moduleIds: 'natural' as any
689
- }, isBundleCommonChunk ? buildCommonChunk(entry) : {}),
672
+ }, isBundleCommonChunk && !viteHmrOption ? buildCommonChunk(entry) : {}),
690
673
  resolve: {
691
674
  modules: $.tooling.core.getWebpackResolveModules(),
692
675
  extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.html', '.vue', '.less', '.styl'],
693
676
  symlinks: false,
694
677
  cacheWithContext: true,
695
678
  descriptionFiles: ['package.json'],
696
- alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), {
697
- 'tiptap$': 'tiptap/dist/tiptap.esm.js',
698
- 'tiptap-utils$': 'tiptap-utils/dist/utils.esm.js',
699
- 'tiptap-extensions$': 'tiptap-extensions/dist/extensions.esm.js',
700
- 'tiptap-commands$': 'tiptap-commands/dist/commands.esm.js',
701
- 'w3c-keyname$': $.path.resolve($.tooling.utils.root(""), 'node_modules/w3c-keyname/index.es.js'),
679
+ alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), (getBuildOption()?.moduleOptions?.alias || {}), {
702
680
  'axios$': 'axios/dist/axios.js',
703
681
  'typestyle$': 'typestyle/lib.es2015/index.js',
704
- 'vue$': 'vue/dist/vue.esm-bundler.js',
705
- 'rope-sequence$': 'rope-sequence/dist/index.js',
706
- 'orderedmap$': 'orderedmap/index.js',
707
- '@microsoft/signalr': '@microsoft/signalr/dist/webworker/signalr.js',
682
+ 'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
683
+ '@microsoft/signalr$': '@microsoft/signalr/dist/webworker/signalr.js',
708
684
  }),
709
685
  },
710
686
  target: ['web', 'es2022'],
@@ -727,9 +703,8 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
727
703
  fullySpecified: false, // disable the behaviour
728
704
  },
729
705
  },
730
- ...(0, ts_loader_1.default)(getBuildOption().enableTreeShaking),
731
- ...(0, tsx_loader_1.default)(getBuildOption().enableTreeShaking, wcDomProps, hotModuleReload),
732
- // ...jsxLoader(getBuildOption().enableTreeShaking, wcDomProps, hotModuleReload),
706
+ ...(0, ts_loader_1.default)(),
707
+ ...(0, tsx_loader_1.default)(),
733
708
  {
734
709
  // remove vuetify locale
735
710
  test: (path) => {
@@ -856,7 +831,7 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
856
831
  exports.createVueWebpackConfig = createVueWebpackConfig;
857
832
  function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
858
833
  var entensionId = getServiceId();
859
- return Object.assign({}, (0, shared_1.getBaseWebpackConfigForManifestMetadata)(entry, metadataOutputDir, wcDomProps, getBuildOption().enableTreeShaking), {
834
+ return Object.assign({}, getBaseWebpackConfigForManifestMetadata(entry, metadataOutputDir), {
860
835
  plugins: [
861
836
  ...buildReferenceManifestFromConfig(),
862
837
  new $.omniaWebpackPlugins.NamedModulesPlugin(buildModuleName()),
@@ -868,6 +843,117 @@ function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
868
843
  ]
869
844
  });
870
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
+ }
871
957
  function buildCommonChunk(entry) {
872
958
  let bundleOptions = getBuildOption().bundleOptions;
873
959
  let minChunk = bundleOptions.commonsChunk.minChunks || 2;
@@ -903,7 +989,7 @@ function buildCommonChunk(entry) {
903
989
  function processManifestGenerated(entries, outDir) {
904
990
  var allowJsOutputExtensions = [".js", ".ts", ".tsx", ".jsx", ".vue"];
905
991
  if (entries) {
906
- var manifestsPaths = globby.sync(outDir.replace(/\/$/, '') + '/*.*', {});
992
+ var manifestsPaths = (0, globby_1.globbySync)(outDir.replace(/\/$/, '') + '/*.*', {});
907
993
  if (manifestsPaths) {
908
994
  for (let p of manifestsPaths) {
909
995
  var manifestId = $.tooling.utils.getGuidValue($.tooling.utils.getFileName(p));
@@ -1121,7 +1207,8 @@ function buildReferenceManifest(currentEntry, entries) {
1121
1207
  return dynamicReferenceManifests.concat(buildReferenceManifestFromConfig());
1122
1208
  var currentEntryName = Object.keys(currentEntry)[0];
1123
1209
  // exclude omnia vendor
1124
- 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) {
1125
1212
  Object.keys(entries).forEach((entryName) => {
1126
1213
  if (entryName !== currentEntryName) {
1127
1214
  if ($.fs.existsSync($.tooling.utils.root(outDirManifestMetadata + "/" + entryName + ".manifest.json"))) {
@@ -1173,7 +1260,8 @@ function buildModuleName() {
1173
1260
  replace: function (modulePath) {
1174
1261
  var buildOptions = getBuildOption();
1175
1262
  if (buildOptions && buildOptions.moduleOptions && buildOptions.moduleOptions.enableTransformResourcePath) {
1176
- 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")
1177
1265
  && modulePath.indexOf('./omnia/fx/models/ConfigurationComposers') === -1 // ignore comment interface for special case here
1178
1266
  && $.fs.existsSync(modulePath)) {
1179
1267
  let stream = $.fs.readFileSync(modulePath, 'utf8');
@@ -1232,89 +1320,18 @@ function getServiceId() {
1232
1320
  return serviceId;
1233
1321
  }
1234
1322
  exports.getServiceId = getServiceId;
1235
- function extractTypingsForComponents(componentRegistrations) {
1236
- let foundTypes = {};
1237
- componentRegistrations.forEach((comp) => {
1238
- let defPaths = comp.componentOptions.typings;
1239
- if (defPaths) {
1240
- let isChildSpec = false;
1241
- defPaths.forEach((defPath) => {
1242
- let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(comp.manifestPath, [defPath])[0];
1243
- let contents = $.fs.readFileSync(entryPointPath, 'utf8');
1244
- let wcEl = getWcElement(contents, isChildSpec);
1245
- if (wcEl) {
1246
- //Now lets find the interface mapped to element
1247
- //example /*@WebComponentInterface("omfx-dialog")*/
1248
- let interfaceToken = `/*@WebComponentInterface("${wcEl}")*/`;
1249
- let interfaceIndex = contents.indexOf(interfaceToken);
1250
- if (interfaceIndex > -1) {
1251
- let wcProps = [];
1252
- let intf = contents.substring(interfaceIndex);
1253
- let nextIsDomProp = false;
1254
- intf = intf
1255
- .substring(intf.indexOf("{") + 1, intf.indexOf("}"))
1256
- .replace(/\?/g, '')
1257
- .trim()
1258
- .split(/\r\n|\r|\n/g).forEach((group) => {
1259
- /*@DomProperty*/
1260
- let sub = group.trim();
1261
- if (sub.indexOf("/*@DomProperty*/") > -1) {
1262
- nextIsDomProp = true;
1263
- return;
1264
- }
1265
- if (nextIsDomProp) {
1266
- if (sub.indexOf(':')) {
1267
- sub = sub.split(':')[0];
1268
- }
1269
- if (sub) {
1270
- if (!foundTypes[wcEl]) {
1271
- foundTypes[wcEl] = [];
1272
- }
1273
- foundTypes[wcEl].push(sub);
1274
- }
1275
- nextIsDomProp = false;
1276
- }
1277
- });
1278
- }
1279
- }
1280
- isChildSpec = true;
1281
- });
1282
- }
1283
- });
1284
- return foundTypes;
1285
- }
1286
- var lastWcElement = "";
1287
- function getWcElement(contents, isChildSpec) {
1288
- if (isChildSpec) {
1289
- if (lastWcElement === "") {
1290
- new Error("Cant find the /*@DomProperty*/ on the parent interface for the WebComponent definition");
1291
- }
1292
- return lastWcElement;
1293
- }
1294
- else {
1295
- lastWcElement = "";
1296
- }
1297
- let wcElToken = "/*@WebComponent*/";
1298
- let wcElIndex = contents.indexOf(wcElToken);
1299
- let wcEl = "";
1300
- if (wcElIndex > -1) {
1301
- wcEl = contents.substring(wcElIndex);
1302
- wcEl = wcEl.substring(wcEl.indexOf('"') + 1);
1303
- wcEl = wcEl.substring(0, wcEl.indexOf('"'));
1304
- lastWcElement = wcEl;
1305
- }
1306
- return lastWcElement;
1307
- }
1308
- function createVueEntryFormRegistrations(registrations) {
1323
+ function createVueEntryFormComponentRegistrations(registrations) {
1309
1324
  let entryPaths = {};
1310
1325
  for (let r of registrations) {
1311
- 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')) {
1312
1328
  let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(r.manifestPath, [r.componentOptions.entryPoint]);
1313
1329
  let entryId = r.manifest.resourceId;
1314
1330
  if (r.manifest.resourceName) {
1315
1331
  entryId = `${r.manifest.resourceName}_${entryId}`;
1316
1332
  }
1317
- entryPaths[entryId] = entryPointPath;
1333
+ r.componentOptions.entryPointPath = entryPointPath[0];
1334
+ entryPaths[entryId.toString()] = entryPointPath;
1318
1335
  }
1319
1336
  else {
1320
1337
  $.tooling.log('The OmniaFx build system only supports .jsx, .vue and .tsx based components at the moment ', $.tooling.LogTypes.Error);
@@ -1325,7 +1342,6 @@ function createVueEntryFormRegistrations(registrations) {
1325
1342
  }
1326
1343
  function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFilePath) {
1327
1344
  let manifest = $.tooling.composer.getManifestById(currentManifestId);
1328
- let hasChanged = false;
1329
1345
  const content = fsExtra.readFileSync(manifestBundleFilePath, 'utf8');
1330
1346
  const addDependency = (dependOnmanifestId, dependOnServiceId) => {
1331
1347
  let hasNewDependency = false;
@@ -1349,7 +1365,7 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1349
1365
  if (manifestObject && manifestObject.content) {
1350
1366
  Object.keys(manifestObject.content).forEach((modulePath) => {
1351
1367
  if (content.indexOf(modulePath) > -1) {
1352
- hasChanged = addDependency(manifest.resourceId, manifest.serviceId);
1368
+ addDependency(manifest.resourceId, manifest.serviceId);
1353
1369
  return;
1354
1370
  }
1355
1371
  });
@@ -1369,7 +1385,8 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1369
1385
  if (entryName.toLowerCase() !== currentManifestId.toString().toLowerCase()
1370
1386
  && entryName.indexOf(fx_models_1.OmniaResourceManifests.FxWorkers.toString()) === -1
1371
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 */
1372
- && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
1388
+ && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
1389
+ && entryName.indexOf(vendorProdId) === -1) {
1373
1390
  for (let entryPointPath of _manifestsEntry[entryName]) {
1374
1391
  if (!hasDependency) {
1375
1392
  var transformresourcePath = _transformResourcepaths.find(resource => resource.original === entryPointPath);
@@ -1381,7 +1398,7 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1381
1398
  hasDependency = true;
1382
1399
  }
1383
1400
  if (hasDependency) {
1384
- hasChanged = addDependency($.tooling.utils.getGuidValue(entryName));
1401
+ addDependency($.tooling.utils.getGuidValue(entryName));
1385
1402
  break;
1386
1403
  }
1387
1404
  }
@@ -1389,10 +1406,6 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
1389
1406
  }
1390
1407
  });
1391
1408
  }
1392
- if (hasChanged) {
1393
- let manifestsData = $.tooling.composer.getManifestData();
1394
- $.tooling.composer.updateManifestData(manifestsData);
1395
- }
1396
1409
  }
1397
1410
  exports.ensureManifestDependencyInRuntime = ensureManifestDependencyInRuntime;
1398
1411
  function buildManifestsDependency(entries, manifestId, manifestBundleContent) {
@@ -1423,7 +1436,8 @@ function buildManifestsDependency(entries, manifestId, manifestBundleContent) {
1423
1436
  if (entryName.toLowerCase() !== manifestId.toLowerCase()
1424
1437
  && entryName.indexOf(fx_models_1.OmniaResourceManifests.FxWorkers.toString()) === -1
1425
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 */
1426
- && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
1439
+ && entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
1440
+ && entryName.indexOf(vendorProdId) === -1) {
1427
1441
  for (let entryPointPath of entries[entryName]) {
1428
1442
  if (!hasDependency) {
1429
1443
  var transformresourcePath = _transformResourcepaths.find(resource => resource.original === entryPointPath);
@@ -1482,15 +1496,12 @@ function chunkAsset(entries, compilation, fileName, viteHmrOption) {
1482
1496
  /******/ }
1483
1497
  /******/ omniaLoader['${omniaServiceId}'] = omniaLoader['${omniaServiceId}'] || {};
1484
1498
  /******/
1485
- /******/ function preBundle() {
1499
+ /******/ function hmrPreBundle() {
1486
1500
  ${content}
1487
1501
  /******/ }
1488
1502
 
1489
- if (omniaLoader['${omniaServiceId}']['${manifestId}']){
1490
- omniaLoader['${omniaServiceId}']['${manifestId}'](preBundle);
1491
- }
1492
- else {
1493
- omniaLoader['${omniaServiceId}']['${manifestId}'] = preBundle;
1503
+ if (!omniaLoader['${omniaServiceId}']['${manifestId}']){
1504
+ omniaLoader['${omniaServiceId}']['${manifestId}'] = hmrPreBundle;
1494
1505
  }`;
1495
1506
  }
1496
1507
  else if (viteHmrOption == 'dynamic') {
@@ -1562,7 +1573,8 @@ function checkDuplicateWebpackEntryPoints(entries) {
1562
1573
  let foundDuplicated = false;
1563
1574
  let entryPathInfos = {};
1564
1575
  Object.keys(entries).forEach(key => {
1565
- if (entries[key]) {
1576
+ // skip omnia.vendor.prod
1577
+ if (entries[key] && key.indexOf(vendorProdId) === -1) {
1566
1578
  entries[key].forEach(path => {
1567
1579
  entryPathInfos[path] = entryPathInfos[path] || [];
1568
1580
  entryPathInfos[path].push(key);
@@ -1577,13 +1589,6 @@ function checkDuplicateWebpackEntryPoints(entries) {
1577
1589
  });
1578
1590
  return foundDuplicated;
1579
1591
  }
1580
- function isEnableMeasureBuild() {
1581
- let enableMeasure = $.composers.DevelopmentBuildConfiguration.isEnableMeasureBuild;
1582
- if (enableMeasure !== true && process.argv.length > 0) {
1583
- enableMeasure = process.argv.find(argv => argv === "--measure") !== undefined;
1584
- }
1585
- return enableMeasure;
1586
- }
1587
1592
  function prefixCssSelector() {
1588
1593
  //var applyToSelectors = ['input', '::before', '::after'];
1589
1594
  //var applyToSelectors = ['select', 'textarea', 'button', 'input', '.btn', '.content', '.input-group', '.title', '.icon', '*'];
@@ -1602,56 +1607,31 @@ function prefixCssSelector() {
1602
1607
  //exclude: [/.v-tooltip__content/, /.v-menu__content/],
1603
1608
  //exclude: [/.v-select/],
1604
1609
  transform: function (prefix, selector, prefixedSelector) {
1605
- // Only apply html/body rule in omnia page.
1606
- if (selector === "html" || selector === "body") {
1607
- return `${selector}[data-omfx]`;
1608
- }
1609
- // exclude rule .v-application for web component
1610
- if (selector === '.v-application') {
1611
- return 'html .v-application:not([data-omwc])';
1612
- }
1613
- // fix issue <v-menu content-class="v-application"
1614
- if (selector === '.v-menu__content') {
1615
- return 'html div.v-menu__content:not([data-omwc])';
1616
- }
1617
- if (selector.indexOf('.theme--light') === 0
1618
- || selector.indexOf('.theme--dark') === 0
1619
- || selector.indexOf('.v-application--is') > -1
1620
- || selector.indexOf('.v-tooltip__content') > -1
1621
- || selector.indexOf('.v-menu__content') > -1
1622
- || selector.indexOf('.v-dialog__content') > -1) {
1623
- //console.log(selector)
1624
- return `html ${selector}`;
1625
- }
1626
- return `[data-omfx] ${selector}, .v-menu__content ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`;
1627
- //// exclude rule .v-application for web component
1628
- //if (selector === '.v-application') {
1629
- // return '.v-application:not([data-omwc])'
1630
- //}
1631
- //// Try to prevent warpper to some special preset like html, body,...etc.
1632
- ////if (selector === "html" || selector === "body") {
1633
- //// return selector;
1634
- ////}
1635
- ////return `[data-omfx] ${selector}, .v-menu__content ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`
1636
- //let match = false;
1637
- //applyToSelectors.forEach(value => {
1638
- // if (selector === value) {
1639
- // match = true;
1640
- // return;
1641
- // }
1642
- //})
1643
- //if (match) {
1644
- // return prefixedSelector;
1645
- //}
1646
- //// Need to wrapper to .v-tooltip__content, .v-menu__content and .v-dialog__content also because they render at the level below body.
1647
- //let prefixedClassSelectoreResult = selector;
1648
- //applyToClassSelector.forEach(value => {
1649
- // if (selector === value || (selector.lastIndexOf(value) > -1 && selector.lastIndexOf(value) === selector.length - value.length)) {
1650
- // prefixedClassSelectoreResult = `.v-application ${selector}, .v-menu__content ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`
1651
- // return prefixedClassSelectoreResult;
1652
- // }
1653
- //})
1654
- //return prefixedClassSelectoreResult;
1610
+ return selector;
1611
+ // temp comment out prefix rule below to testing with vuetify 3 in omnia page first.
1612
+ // // Only apply html/body rule in omnia page.
1613
+ // if (selector === "html" || selector === "body") {
1614
+ // return `${selector}[data-omfx]`;
1615
+ // }
1616
+ // // exclude rule .v-application for web component
1617
+ // if (selector === '.v-application') {
1618
+ // return 'html .v-application:not([data-omwc])'
1619
+ // }
1620
+ // // fix issue <v-menu content-class="v-application"
1621
+ // if (selector === '.v-menu__content') {
1622
+ // return 'html div.v-menu__content:not([data-omwc])'
1623
+ // }
1624
+ // if (selector.indexOf('.theme--light') === 0
1625
+ // || selector.indexOf('.theme--dark') === 0
1626
+ // || selector.indexOf('.v-application--is') > -1
1627
+ // || selector.indexOf('.v-tooltip__content') > -1
1628
+ // || selector.indexOf('.v-overlay-container') > -1
1629
+ // || selector.indexOf('.v-menu__content') > -1
1630
+ // || selector.indexOf('.v-dialog__content') > -1) {
1631
+ // //console.log(selector)
1632
+ // return `html ${selector}`;
1633
+ // }
1634
+ // return `[data-omfx] ${selector}, .v-menu__content ${selector}, .v-overlay-container ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`
1655
1635
  }
1656
1636
  });
1657
1637
  }
@@ -1665,45 +1645,9 @@ exports.registerManifestsReference = registerManifestsReference;
1665
1645
  function getRegisteredReferenceManifests() {
1666
1646
  return _registeredReferenceManifests;
1667
1647
  }
1668
- function registerWebComponentDefinitions(definitions) {
1669
- if (definitions) {
1670
- _wcDefinitions = $.merge(_wcDefinitions, definitions);
1671
- }
1672
- }
1673
- exports.registerWebComponentDefinitions = registerWebComponentDefinitions;
1674
- function getRegisteredWebComponentDefinitions() {
1675
- return _wcDefinitions;
1676
- }
1677
1648
  function sortString(a, b) {
1678
1649
  if (a >= b) {
1679
1650
  return 1;
1680
1651
  }
1681
1652
  return -1;
1682
1653
  }
1683
- function generateWebComponentTypings(wc, template) {
1684
- // export default defineVueWebComponent
1685
- let wcPath = (0, shared_1.convertManifestPathToEntryPath)(wc.manifestPath, [wc.componentOptions.entryPoint])[0];
1686
- let content = fsExtra.readFileSync(wcPath, 'utf8');
1687
- if (content.indexOf("defineVueWebComponent") > -1) {
1688
- if (!new RegExp('export\\s+default\\s+').test(content)) {
1689
- throw new Error(`Missing statement 'export default a vue web component' in ${wcPath}`);
1690
- }
1691
- let friendlyManifestId = `wc${wc.manifest.resourceId.replace(/-/g, '').toLowerCase()}`;
1692
- let importPath = wcPath.substring(0, wcPath.lastIndexOf('.tsx'));
1693
- if (importPath.indexOf("./") === 0) {
1694
- importPath = importPath.replace("./", "");
1695
- }
1696
- if ($.isExtensionEnv) {
1697
- importPath = `../../../../${importPath}`;
1698
- }
1699
- else {
1700
- importPath = `../../../${importPath}`;
1701
- }
1702
- return template
1703
- .replace(/\/\/{{importWC}}/, `import ${friendlyManifestId} from '${importPath}';
1704
- //{{importWC}}`)
1705
- .replace(/\/\/{{elementName}}/, `"${wc.componentOptions.elementName}": typeof ${friendlyManifestId}.propsDefinition & VueComponentBaseProps
1706
- //{{elementName}}`);
1707
- }
1708
- return template;
1709
- }