@omnia/tooling-vue 8.0.20-vnext → 8.0.21-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.
- package/internal-do-not-import-from-here/config/omnia.vendor.manifest.json +1 -1
- package/internal-do-not-import-from-here/config/tooling.output.json +1 -0
- package/internal-do-not-import-from-here/config/wctypings.d.ts +2213 -0
- package/internal-do-not-import-from-here/index.d.ts +3 -1
- package/internal-do-not-import-from-here/index.js +6 -2
- package/internal-do-not-import-from-here/shared.d.ts +32 -122
- package/internal-do-not-import-from-here/shared.js +97 -192
- package/internal-do-not-import-from-here/swc/extract-doc-plugin/package.json +14 -0
- package/internal-do-not-import-from-here/tasks/ComponentDocRegistrations.d.ts +1 -0
- package/internal-do-not-import-from-here/tasks/ComponentDocRegistrations.js +9 -0
- package/internal-do-not-import-from-here/tasks/bundle.d.ts +3 -4
- package/internal-do-not-import-from-here/tasks/bundle.js +264 -264
- package/internal-do-not-import-from-here/tasks/doc.d.ts +3 -1
- package/internal-do-not-import-from-here/tasks/doc.js +282 -395
- package/internal-do-not-import-from-here/tasks/vendor.js +166 -19
- package/internal-do-not-import-from-here/variables.d.ts +1 -1
- package/internal-do-not-import-from-here/variables.js +2 -2
- package/internal-do-not-import-from-here/vite/hmr/graph.js +5 -1
- package/internal-do-not-import-from-here/vite/hmr/manifest.js +5 -5
- package/internal-do-not-import-from-here/vite/hmr/runtime.js +5 -5
- package/internal-do-not-import-from-here/vite/hmr/transformers/internal/dynamicBundle.js +7 -1
- package/internal-do-not-import-from-here/vite/hmr/utils/manifest.js +3 -3
- package/internal-do-not-import-from-here/vite/hmr/utils/path.js +7 -6
- package/internal-do-not-import-from-here/vite/hmr/utils/webpack.js +2 -2
- package/internal-do-not-import-from-here/vite/index.js +4 -0
- package/internal-do-not-import-from-here/vite/middlewares/HmrMiddleware.js +8 -13
- package/internal-do-not-import-from-here/vite/middlewares/OmniaMiddleware.js +55 -17
- package/internal-do-not-import-from-here/vite/middlewares/StaticFileMiddleware.js +31 -10
- package/internal-do-not-import-from-here/vite/middlewares/WebpackMiddleware.js +1 -1
- package/internal-do-not-import-from-here/vite/plugins/OmniaPlugin.js +10 -2
- package/internal-do-not-import-from-here/wctypings.ts +0 -0
- package/internal-do-not-import-from-here/webpack-loaders/doc-loader.js +11 -0
- package/internal-do-not-import-from-here/webpack-loaders/ts-loader.d.ts +11 -4
- package/internal-do-not-import-from-here/webpack-loaders/ts-loader.js +12 -12
- package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.d.ts +11 -1
- package/internal-do-not-import-from-here/webpack-loaders/tsx-loader.js +34 -29
- package/internal-do-not-import-from-here/webpack-loaders/wc-loader.d.ts +1 -0
- package/internal-do-not-import-from-here/webpack-loaders/wc-loader.js +11 -0
- package/package.json +12 -8
- package/internal-do-not-import-from-here/1cacb55c-202b-4cd7-819d-11bad92fa9cb.wcdefinitions.json +0 -1
- package/internal-do-not-import-from-here/1cacb55c-202b-4cd7-819d-11bad92fa9cb.wctypings.d.ts +0 -11
- package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wcdefinitions.json +0 -1
- package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wctypings.d.ts +0 -361
- package/internal-do-not-import-from-here/bb000000-0000-bbbb-0000-0000000000bb.wctypings.js +0 -2
- package/internal-do-not-import-from-here/cc000000-0000-cccc-0000-0000000000cc.wcdefinitions.json +0 -1
- package/internal-do-not-import-from-here/config/tsconfig.es2015.json +0 -21
- package/internal-do-not-import-from-here/webpack-loaders/esbuild-custom-loader.js +0 -13
- package/internal-do-not-import-from-here/webpack-loaders/jsx-loader.d.ts +0 -8
- package/internal-do-not-import-from-here/webpack-loaders/jsx-loader.js +0 -61
- package/internal-do-not-import-from-here/webpack-loaders/vue-tsx-hot-loader.d.ts +0 -1
- package/internal-do-not-import-from-here/webpack-loaders/vue-tsx-hot-loader.js +0 -44
- package/internal-do-not-import-from-here/webpack-loaders/wcmanifest-loader.d.ts +0 -1
- package/internal-do-not-import-from-here/webpack-loaders/wcmanifest-loader.js +0 -10
- /package/internal-do-not-import-from-here/{1cacb55c-202b-4cd7-819d-11bad92fa9cb.wctypings.js → config/wctypings.js} +0 -0
- /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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
41
|
+
buildEntries()
|
|
39
42
|
.then((result) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
196
|
-
return new Promise(function (resolve, reject) {
|
|
198
|
+
function buildEntries(serve = false) {
|
|
199
|
+
return new Promise(async function (resolve, reject) {
|
|
197
200
|
try {
|
|
198
|
-
|
|
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 [" +
|
|
213
|
+
$.tooling.logTime("Found [" + resourceBundlesWithBuildOptions?.size + "] resource bundles", startTime);
|
|
205
214
|
let resourceEntries = {};
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
let
|
|
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 + "_" : ""}${
|
|
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 " +
|
|
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
|
|
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
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
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 =
|
|
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
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
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,
|
|
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
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
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)(
|
|
700
|
-
...(0, tsx_loader_1.default)(
|
|
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({},
|
|
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 =
|
|
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
|
|
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('.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
1499
|
+
/******/ function hmrPreBundle() {
|
|
1455
1500
|
${content}
|
|
1456
1501
|
/******/ }
|
|
1457
1502
|
|
|
1458
|
-
if (omniaLoader['${omniaServiceId}']['${manifestId}']){
|
|
1459
|
-
omniaLoader['${omniaServiceId}']['${manifestId}']
|
|
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
|
-
|
|
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
|
-
}
|