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