@omnia/tooling-vue 8.0.5-vnext → 8.0.6-dev-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2059 -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 -349
- 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 +6 -7
- 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/hmr/vueJsx.js +1 -1
- package/internal-do-not-import-from-here/vite/index.js +4 -0
- package/internal-do-not-import-from-here/vite/middlewares/HmrMiddleware.js +8 -14
- 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 +38 -20
- 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 -265
- 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,82 +191,38 @@ function clean() {
|
|
|
169
191
|
return new Promise(function (resolve, reject) {
|
|
170
192
|
del_1.default.sync("node_modules/.cache");
|
|
171
193
|
del_1.default.sync($.tooling.utils.root(outDirManifestMetadata + "/manifest.entries.cached.json"));
|
|
172
|
-
|
|
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
|
-
// have issue in devops need to ensure file exist first.
|
|
219
|
-
fsExtra.ensureFileSync(wcDefinitionsPath);
|
|
220
|
-
fsExtra.writeJsonSync(wcDefinitionsPath, wcDomProps);
|
|
221
|
-
let wcTypings = `
|
|
222
|
-
//{{importWC}}
|
|
223
|
-
declare global {
|
|
224
|
-
namespace JSX {
|
|
225
|
-
interface Element { }
|
|
226
|
-
interface ElementClass { }
|
|
227
|
-
|
|
228
|
-
interface IntrinsicElements {
|
|
229
|
-
//{{elementName}}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
`;
|
|
234
|
-
if ($.isExtensionEnv) {
|
|
235
|
-
wcTypings = `import { VueComponentBaseProps } from "@omnia/fx/ux";
|
|
236
|
-
${wcTypings}`;
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
wcTypings = `import { VueComponentBaseProps } from "../../../client/fx/ux/index";
|
|
240
|
-
${wcTypings}`;
|
|
241
|
-
}
|
|
242
|
-
componentRegistrations.forEach(wc => {
|
|
243
|
-
wcTypings = generateWebComponentTypings(wc, wcTypings);
|
|
244
|
-
});
|
|
245
|
-
fsExtra.outputFileSync(wcTypingsPath, wcTypings);
|
|
246
|
-
wcDomProps = $.merge(wcDomProps, getRegisteredWebComponentDefinitions());
|
|
247
|
-
let componentEntries = createVueEntryFormRegistrations(componentRegistrations);
|
|
248
226
|
var entries = $.merge(componentEntries, resourceEntries);
|
|
249
227
|
if (checkDuplicateWebpackEntryPoints(entries)) {
|
|
250
228
|
$.tooling.log('Build manifests metadata have error that found duplicated resource path', $.tooling.LogTypes.Error);
|
|
@@ -295,7 +273,15 @@ function buildManifestMetadatas(entries) {
|
|
|
295
273
|
return;
|
|
296
274
|
}
|
|
297
275
|
$.tooling.log('Build manifests metadata running...', $.tooling.LogTypes.HeadLine);
|
|
298
|
-
let
|
|
276
|
+
let webpackConfigs = [];
|
|
277
|
+
Object.keys(entries).forEach((id) => {
|
|
278
|
+
var entry = {};
|
|
279
|
+
entry[id] = entries[id];
|
|
280
|
+
var vueWebpackConfig = createWebpackConfigForManifestMetadata(entry, outputDir);
|
|
281
|
+
webpackConfigs.push(vueWebpackConfig);
|
|
282
|
+
});
|
|
283
|
+
let compiler = $.webpack(webpackConfigs);
|
|
284
|
+
compiler.run((err, stats) => {
|
|
299
285
|
Object.keys(entries).forEach((entry) => {
|
|
300
286
|
let manifestPath = outputDir + "/" + entry + '.manifest.json';
|
|
301
287
|
if ($.fs.existsSync($.tooling.utils.root(manifestPath))) {
|
|
@@ -309,17 +295,6 @@ function buildManifestMetadatas(entries) {
|
|
|
309
295
|
$.fs.writeFileSync(manifestPath, JSON.stringify(manifestJson));
|
|
310
296
|
}
|
|
311
297
|
});
|
|
312
|
-
};
|
|
313
|
-
let webpackConfigs = [];
|
|
314
|
-
Object.keys(entries).forEach((id) => {
|
|
315
|
-
var entry = {};
|
|
316
|
-
entry[id] = entries[id];
|
|
317
|
-
var vueWebpackConfig = createWebpackConfigForManifestMetadata(entry, outputDir);
|
|
318
|
-
webpackConfigs.push(vueWebpackConfig);
|
|
319
|
-
});
|
|
320
|
-
let compiler = $.webpack(webpackConfigs);
|
|
321
|
-
compiler.run((err, stats) => {
|
|
322
|
-
updateMetadataFiles();
|
|
323
298
|
$.del.sync([outputDir + '/*.js']);
|
|
324
299
|
if (err) {
|
|
325
300
|
$.tooling.logTime(`Build manifests metadata have an exception`, startTime);
|
|
@@ -374,16 +349,33 @@ function beforeBundleManifest(entries) {
|
|
|
374
349
|
isRunBuildMetadata = !isEqual(entries, cachedEntries);
|
|
375
350
|
}
|
|
376
351
|
if (isRunBuildMetadata) {
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
386
|
-
|
|
352
|
+
// cleanup before generate
|
|
353
|
+
del_1.default.sync(outDirManifestMetadata);
|
|
354
|
+
const entriesToBuild = {};
|
|
355
|
+
const resourceRegistrations = Array.from($.composers.ResourceRegistry.getResourceRegistrations().keys());
|
|
356
|
+
const wcRegistrations = $.composers.ComponentRegistry.getComponentRegistrations();
|
|
357
|
+
Object.keys(entries).forEach(name => {
|
|
358
|
+
if (resourceRegistrations.find(rk => name.indexOf(rk.toString()) > -1)) {
|
|
359
|
+
entriesToBuild[name] = entries[name];
|
|
360
|
+
}
|
|
361
|
+
// generate manifest metadata for wc
|
|
362
|
+
else if (wcRegistrations.find(rk => name.indexOf(rk.manifest.resourceId.toString()) > -1)) {
|
|
363
|
+
const manifestPath = $.tooling.utils.root(outDirManifestMetadata + "/" + name + '.manifest.json');
|
|
364
|
+
const content = {
|
|
365
|
+
name: `omniaWebpackJsonp['${getServiceId()}']['${$.tooling.utils.getGuidValue(name)}']`,
|
|
366
|
+
content: {
|
|
367
|
+
[entries[name][0]]: {
|
|
368
|
+
id: entries[name][0].toLowerCase(),
|
|
369
|
+
buildMeta: {
|
|
370
|
+
exportsType: "namespace"
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
};
|
|
375
|
+
fsExtra.ensureFileSync(manifestPath);
|
|
376
|
+
fsExtra.writeJsonSync(manifestPath, content);
|
|
377
|
+
}
|
|
378
|
+
});
|
|
387
379
|
buildManifestMetadatas(entriesToBuild).then(() => {
|
|
388
380
|
fsExtra.ensureFileSync(cachedEntriesPath);
|
|
389
381
|
fsExtra.writeJsonSync(cachedEntriesPath, entries);
|
|
@@ -397,7 +389,6 @@ function beforeBundleManifest(entries) {
|
|
|
397
389
|
});
|
|
398
390
|
}
|
|
399
391
|
function bundleManifest(entries) {
|
|
400
|
-
var startTime = new Date().getTime();
|
|
401
392
|
return new Promise(function (resolve, reject) {
|
|
402
393
|
try {
|
|
403
394
|
// Hacky solution to delete node_modules inside tiptap regarding miss match version prosemirror
|
|
@@ -439,14 +430,18 @@ function bundleManifest(entries) {
|
|
|
439
430
|
}
|
|
440
431
|
else {
|
|
441
432
|
let webpackConfigs = [];
|
|
433
|
+
var startTime = new Date().getTime();
|
|
434
|
+
// $.tooling.logTime('Build Webpack Config running', startTime);
|
|
442
435
|
Object.keys(entries).forEach((id) => {
|
|
443
436
|
var entry = {};
|
|
444
437
|
entry[id] = entries[id];
|
|
445
438
|
var vueWebpackConfig = createVueWebpackConfig(entry, entries, $.tooling.composer.OmniaOutput.OutputBundlePath);
|
|
446
439
|
webpackConfigs.push(vueWebpackConfig);
|
|
447
440
|
});
|
|
441
|
+
// $.tooling.logTime('Build Webpack Config - done', startTime);
|
|
448
442
|
let compiler = $.webpack(webpackConfigs);
|
|
449
443
|
compiler.run((err, stats) => {
|
|
444
|
+
//console.log("webpack run -done")
|
|
450
445
|
if (checkDuplicateBundle()) { // detect duplicated bundle
|
|
451
446
|
$.tooling.log('Bundle manifest have error that found duplicated bundles', $.tooling.LogTypes.Error);
|
|
452
447
|
reject();
|
|
@@ -528,68 +523,48 @@ function minifyBundles() {
|
|
|
528
523
|
if (process.argv.length > 0 && process.argv.find(argv => argv === "--minify") !== undefined) {
|
|
529
524
|
let startTime = new Date().getTime();
|
|
530
525
|
$.tooling.log('Minify bundles running...');
|
|
531
|
-
const jsPaths =
|
|
526
|
+
const jsPaths = (0, globby_1.globbySync)([`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.js`]);
|
|
532
527
|
let promises = [];
|
|
533
528
|
jsPaths.forEach(filePath => {
|
|
534
529
|
promises.push(new Promise(async (resolve, reject) => {
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
530
|
+
try {
|
|
531
|
+
$.tooling.log(`Minify Js -> ${filePath}`);
|
|
532
|
+
// only minify for omnia.vendor.prod
|
|
533
|
+
if (filePath.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1) {
|
|
534
|
+
let content = await fsExtra.readFile(filePath, 'utf8');
|
|
535
|
+
let outFileName = `${filePath.substring(0, filePath.length - 3)}.min.js`;
|
|
536
|
+
if (filePath.indexOf(vendorProdId) > -1) {
|
|
537
|
+
content = content.replace(new RegExp(vendorProdId, "g"), fx_models_1.OmniaResourceManifests.Vendor.toString());
|
|
538
|
+
outFileName = `${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/omnia.vendor_6270b632-1f44-4146-bace-137131c0471b.min.js`;
|
|
539
|
+
}
|
|
540
|
+
let minified = await (0, terser_1.minify)(content, {
|
|
541
|
+
sourceMap: false,
|
|
542
|
+
ecma: 2020 // will remove es5 when not support IE 11
|
|
543
|
+
});
|
|
544
|
+
await fsExtra.writeFile(outFileName, minified.code, 'utf8');
|
|
545
|
+
$.tooling.log(`Minify Js Done -> ${filePath}`);
|
|
546
|
+
}
|
|
547
|
+
resolve();
|
|
548
|
+
}
|
|
549
|
+
catch (ex) {
|
|
550
|
+
tooling_1.utils.log(`Have a exception when minify the file -> ${filePath}`, tooling_1.utils.LogTypes.Error);
|
|
551
|
+
console.error(ex);
|
|
552
|
+
resolve();
|
|
553
|
+
throw new Error("Exit, have an exception.");
|
|
554
|
+
}
|
|
544
555
|
}));
|
|
545
556
|
});
|
|
546
557
|
Promise.all(promises).then(() => {
|
|
547
558
|
$.tooling.logTime('Done - Minify Js bundles', startTime);
|
|
548
559
|
resolve();
|
|
549
560
|
});
|
|
550
|
-
//const debug = require('gulp-debug');
|
|
551
|
-
//const cleanCSS = require('gulp-clean-css');
|
|
552
|
-
//let processing = 2;
|
|
553
|
-
//let complete = () => {
|
|
554
|
-
// --processing;
|
|
555
|
-
// if (processing === 0) {
|
|
556
|
-
// resolve();
|
|
557
|
-
// }
|
|
558
|
-
//}
|
|
559
|
-
//$.gulp
|
|
560
|
-
// .src(`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.js`)
|
|
561
|
-
// .pipe(debug({ title: 'Minify Js ->' }))
|
|
562
|
-
// .pipe(terser({
|
|
563
|
-
// ecma: 5 // will remove es5 when not support IE 11
|
|
564
|
-
// }))
|
|
565
|
-
// .pipe(rename(function (path) {
|
|
566
|
-
// path.basename += ".min";
|
|
567
|
-
// }))
|
|
568
|
-
// .pipe(debug({ title: 'Minify Js Done ->' }))
|
|
569
|
-
// .pipe($.gulp.dest($.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)))
|
|
570
|
-
// .on('end', () => {
|
|
571
|
-
// $.tooling.logTime('Done - Minify Js bundles', startTime);
|
|
572
|
-
// complete();
|
|
573
|
-
// })
|
|
574
|
-
//$.gulp.src(`${$.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)}/*.css`)
|
|
575
|
-
// .pipe(debug({ title: 'Minify Css ->' }))
|
|
576
|
-
// .pipe(cleanCSS())
|
|
577
|
-
// .pipe(rename(function (path) {
|
|
578
|
-
// path.basename += ".min";
|
|
579
|
-
// }))
|
|
580
|
-
// .pipe(debug({ title: 'Minify Css Done ->' }))
|
|
581
|
-
// .pipe($.gulp.dest($.tooling.utils.root($.tooling.composer.OmniaOutput.OutputBundlePath)))
|
|
582
|
-
// .on('end', () => {
|
|
583
|
-
// $.tooling.logTime('Done - Minify Css bundles', startTime);
|
|
584
|
-
// complete();
|
|
585
|
-
// })
|
|
586
561
|
}
|
|
587
562
|
else {
|
|
588
563
|
resolve();
|
|
589
564
|
}
|
|
590
565
|
});
|
|
591
566
|
}
|
|
592
|
-
function createVueWebpackConfig(currentEntry, entries, bundleOutputDir,
|
|
567
|
+
function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, viteHmrOption) {
|
|
593
568
|
let buildOption = getBuildOption() || {};
|
|
594
569
|
let isBundleCommonChunk = buildOption.bundleOptions && buildOption.bundleOptions.commonsChunk && buildOption.bundleOptions.commonsChunk.name;
|
|
595
570
|
const extractCss = new MiniCssExtractPlugin({
|
|
@@ -630,7 +605,12 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
|
|
|
630
605
|
}
|
|
631
606
|
}));
|
|
632
607
|
}
|
|
633
|
-
let modifyContent = [
|
|
608
|
+
let modifyContent = [
|
|
609
|
+
{
|
|
610
|
+
pattern: /\.doc\$(.*\))/g,
|
|
611
|
+
replacement: ''
|
|
612
|
+
}
|
|
613
|
+
];
|
|
634
614
|
if (buildOption.bundleOptions && buildOption.bundleOptions.removeSourceMap) {
|
|
635
615
|
modifyContent.push({
|
|
636
616
|
pattern: /# sourceMappingURL=(.*\.map)/g,
|
|
@@ -652,15 +632,18 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
|
|
|
652
632
|
transform(data, opts) {
|
|
653
633
|
// build manifets stats to detect duplicate bundle
|
|
654
634
|
let entryName = Object.keys(data.assetsByChunkName)[0];
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
635
|
+
// ignore omnia.vendor.prod
|
|
636
|
+
if (entryName.indexOf(vendorProdId) === -1) {
|
|
637
|
+
_manifestsStats[entryName] = [];
|
|
638
|
+
data.modules.filter(m => typeof m.id === 'string'
|
|
639
|
+
&& m.id.trim().length > 0
|
|
640
|
+
&& m.id.indexOf('dll-reference') === -1
|
|
641
|
+
&& m.identifier.indexOf('from dll-reference') === -1).forEach(module => {
|
|
642
|
+
_manifestsStats[entryName].push(module.id);
|
|
643
|
+
_modulesStats[module.id] = _modulesStats[module.id] || new Set();
|
|
644
|
+
_modulesStats[module.id].add(entryName);
|
|
645
|
+
});
|
|
646
|
+
}
|
|
664
647
|
}
|
|
665
648
|
}));
|
|
666
649
|
}
|
|
@@ -686,25 +669,18 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
|
|
|
686
669
|
mangleExports: false,
|
|
687
670
|
concatenateModules: true,
|
|
688
671
|
//moduleIds: 'natural' as any
|
|
689
|
-
}, isBundleCommonChunk ? buildCommonChunk(entry) : {}),
|
|
672
|
+
}, isBundleCommonChunk && !viteHmrOption ? buildCommonChunk(entry) : {}),
|
|
690
673
|
resolve: {
|
|
691
674
|
modules: $.tooling.core.getWebpackResolveModules(),
|
|
692
675
|
extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx', '.html', '.vue', '.less', '.styl'],
|
|
693
676
|
symlinks: false,
|
|
694
677
|
cacheWithContext: true,
|
|
695
678
|
descriptionFiles: ['package.json'],
|
|
696
|
-
alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), {
|
|
697
|
-
'tiptap$': 'tiptap/dist/tiptap.esm.js',
|
|
698
|
-
'tiptap-utils$': 'tiptap-utils/dist/utils.esm.js',
|
|
699
|
-
'tiptap-extensions$': 'tiptap-extensions/dist/extensions.esm.js',
|
|
700
|
-
'tiptap-commands$': 'tiptap-commands/dist/commands.esm.js',
|
|
701
|
-
'w3c-keyname$': $.path.resolve($.tooling.utils.root(""), 'node_modules/w3c-keyname/index.es.js'),
|
|
679
|
+
alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), (getBuildOption()?.moduleOptions?.alias || {}), {
|
|
702
680
|
'axios$': 'axios/dist/axios.js',
|
|
703
681
|
'typestyle$': 'typestyle/lib.es2015/index.js',
|
|
704
|
-
'vue$': 'vue/dist/vue.esm-bundler.js',
|
|
705
|
-
'
|
|
706
|
-
'orderedmap$': 'orderedmap/index.js',
|
|
707
|
-
'@microsoft/signalr': '@microsoft/signalr/dist/webworker/signalr.js',
|
|
682
|
+
'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
|
|
683
|
+
'@microsoft/signalr$': '@microsoft/signalr/dist/webworker/signalr.js',
|
|
708
684
|
}),
|
|
709
685
|
},
|
|
710
686
|
target: ['web', 'es2022'],
|
|
@@ -727,9 +703,8 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
|
|
|
727
703
|
fullySpecified: false, // disable the behaviour
|
|
728
704
|
},
|
|
729
705
|
},
|
|
730
|
-
...(0, ts_loader_1.default)(
|
|
731
|
-
...(0, tsx_loader_1.default)(
|
|
732
|
-
// ...jsxLoader(getBuildOption().enableTreeShaking, wcDomProps, hotModuleReload),
|
|
706
|
+
...(0, ts_loader_1.default)(),
|
|
707
|
+
...(0, tsx_loader_1.default)(),
|
|
733
708
|
{
|
|
734
709
|
// remove vuetify locale
|
|
735
710
|
test: (path) => {
|
|
@@ -856,7 +831,7 @@ function createVueWebpackConfig(currentEntry, entries, bundleOutputDir, hotModul
|
|
|
856
831
|
exports.createVueWebpackConfig = createVueWebpackConfig;
|
|
857
832
|
function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
|
|
858
833
|
var entensionId = getServiceId();
|
|
859
|
-
return Object.assign({},
|
|
834
|
+
return Object.assign({}, getBaseWebpackConfigForManifestMetadata(entry, metadataOutputDir), {
|
|
860
835
|
plugins: [
|
|
861
836
|
...buildReferenceManifestFromConfig(),
|
|
862
837
|
new $.omniaWebpackPlugins.NamedModulesPlugin(buildModuleName()),
|
|
@@ -868,6 +843,117 @@ function createWebpackConfigForManifestMetadata(entry, metadataOutputDir) {
|
|
|
868
843
|
]
|
|
869
844
|
});
|
|
870
845
|
}
|
|
846
|
+
function getBaseWebpackConfigForManifestMetadata(entry, bundleOutputDir) {
|
|
847
|
+
return {
|
|
848
|
+
devtool: false,
|
|
849
|
+
mode: 'development',
|
|
850
|
+
context: $.tooling.utils.root(""),
|
|
851
|
+
entry: entry,
|
|
852
|
+
optimization: Object.assign({
|
|
853
|
+
removeAvailableModules: false,
|
|
854
|
+
removeEmptyChunks: false,
|
|
855
|
+
splitChunks: false,
|
|
856
|
+
}),
|
|
857
|
+
resolve: {
|
|
858
|
+
modules: $.tooling.core.getWebpackResolveModules(),
|
|
859
|
+
extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx'],
|
|
860
|
+
//extensions: ['.js', '.jsx', '.ts', '.tsx', '.html', '.vue', '.less', '.styl'],
|
|
861
|
+
symlinks: false,
|
|
862
|
+
cacheWithContext: true,
|
|
863
|
+
descriptionFiles: ['package.json'],
|
|
864
|
+
alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), ($.composers.BuildConfigurationRegistry.getBuildOptions()?.moduleOptions?.alias || {}), {
|
|
865
|
+
'axios$': 'axios/dist/axios.js',
|
|
866
|
+
'typestyle$': 'typestyle/lib.es2015/index.js',
|
|
867
|
+
'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
|
|
868
|
+
'@microsoft/signalr': '@microsoft/signalr/dist/webworker/signalr.js',
|
|
869
|
+
}),
|
|
870
|
+
//mainFields: ['main', 'browser', 'module']
|
|
871
|
+
},
|
|
872
|
+
output: {
|
|
873
|
+
pathinfo: false,
|
|
874
|
+
path: $.tooling.utils.root(bundleOutputDir),
|
|
875
|
+
filename: '[name].js'
|
|
876
|
+
},
|
|
877
|
+
externals: [
|
|
878
|
+
function ({ context, request }, callback) {
|
|
879
|
+
if (request.indexOf("node_modules") > -1 || (/\.(sass|scss|styl|less|css)$/i).test(request)) {
|
|
880
|
+
return callback(null, 'commonjs ' + request);
|
|
881
|
+
}
|
|
882
|
+
callback();
|
|
883
|
+
}
|
|
884
|
+
],
|
|
885
|
+
module: {
|
|
886
|
+
noParse: /wwwroot(.*)/,
|
|
887
|
+
rules: [
|
|
888
|
+
{
|
|
889
|
+
test: /\.m?js$/,
|
|
890
|
+
resolve: {
|
|
891
|
+
fullySpecified: false, // disable the behaviour
|
|
892
|
+
},
|
|
893
|
+
},
|
|
894
|
+
...(0, ts_loader_1.default)(),
|
|
895
|
+
...(0, tsx_loader_1.default)(),
|
|
896
|
+
{
|
|
897
|
+
test: /\.styl$/,
|
|
898
|
+
use: [
|
|
899
|
+
//'style-loader',
|
|
900
|
+
//'css-loader',
|
|
901
|
+
'stylus-loader'
|
|
902
|
+
]
|
|
903
|
+
},
|
|
904
|
+
...($.isExtensionEnv ? [] : [{
|
|
905
|
+
test: /\.s(c|a)ss$/,
|
|
906
|
+
use: [
|
|
907
|
+
{
|
|
908
|
+
loader: 'sass-loader',
|
|
909
|
+
options: {
|
|
910
|
+
implementation: require('sass'),
|
|
911
|
+
sassOptions: {
|
|
912
|
+
//fiber: require('fibers'),
|
|
913
|
+
indentedSyntax: true
|
|
914
|
+
}
|
|
915
|
+
//fiber: require('fibers')
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
]
|
|
919
|
+
}]),
|
|
920
|
+
{
|
|
921
|
+
test: /\.less$/,
|
|
922
|
+
use: [
|
|
923
|
+
//'style-loader',
|
|
924
|
+
//'css-loader',
|
|
925
|
+
'less-loader'
|
|
926
|
+
]
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
test: /\.css$/,
|
|
930
|
+
use: [
|
|
931
|
+
//'style-loader',
|
|
932
|
+
{
|
|
933
|
+
loader: 'css-loader'
|
|
934
|
+
}
|
|
935
|
+
]
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
|
|
939
|
+
loader: 'url-loader'
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
test: /\.(ico|gif|png|jpe?g|svg)$/i,
|
|
943
|
+
use: [{
|
|
944
|
+
loader: 'file-loader',
|
|
945
|
+
options: {
|
|
946
|
+
name: '[name].[ext]',
|
|
947
|
+
outputPath: "../images/",
|
|
948
|
+
publicPath: '/omnia/images/'
|
|
949
|
+
}
|
|
950
|
+
}]
|
|
951
|
+
//loader: 'url-loader'
|
|
952
|
+
}
|
|
953
|
+
]
|
|
954
|
+
}
|
|
955
|
+
};
|
|
956
|
+
}
|
|
871
957
|
function buildCommonChunk(entry) {
|
|
872
958
|
let bundleOptions = getBuildOption().bundleOptions;
|
|
873
959
|
let minChunk = bundleOptions.commonsChunk.minChunks || 2;
|
|
@@ -903,7 +989,7 @@ function buildCommonChunk(entry) {
|
|
|
903
989
|
function processManifestGenerated(entries, outDir) {
|
|
904
990
|
var allowJsOutputExtensions = [".js", ".ts", ".tsx", ".jsx", ".vue"];
|
|
905
991
|
if (entries) {
|
|
906
|
-
var manifestsPaths =
|
|
992
|
+
var manifestsPaths = (0, globby_1.globbySync)(outDir.replace(/\/$/, '') + '/*.*', {});
|
|
907
993
|
if (manifestsPaths) {
|
|
908
994
|
for (let p of manifestsPaths) {
|
|
909
995
|
var manifestId = $.tooling.utils.getGuidValue($.tooling.utils.getFileName(p));
|
|
@@ -1121,7 +1207,8 @@ function buildReferenceManifest(currentEntry, entries) {
|
|
|
1121
1207
|
return dynamicReferenceManifests.concat(buildReferenceManifestFromConfig());
|
|
1122
1208
|
var currentEntryName = Object.keys(currentEntry)[0];
|
|
1123
1209
|
// exclude omnia vendor
|
|
1124
|
-
if (currentEntryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1210
|
+
if (currentEntryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1211
|
+
&& currentEntryName.indexOf(vendorProdId) === -1) {
|
|
1125
1212
|
Object.keys(entries).forEach((entryName) => {
|
|
1126
1213
|
if (entryName !== currentEntryName) {
|
|
1127
1214
|
if ($.fs.existsSync($.tooling.utils.root(outDirManifestMetadata + "/" + entryName + ".manifest.json"))) {
|
|
@@ -1173,7 +1260,8 @@ function buildModuleName() {
|
|
|
1173
1260
|
replace: function (modulePath) {
|
|
1174
1261
|
var buildOptions = getBuildOption();
|
|
1175
1262
|
if (buildOptions && buildOptions.moduleOptions && buildOptions.moduleOptions.enableTransformResourcePath) {
|
|
1176
|
-
if (modulePath.indexOf('./node_modules/') === -1 // ignore from npm package
|
|
1263
|
+
if (modulePath.indexOf('./node_modules/') === -1 // ignore from npm package and in wwwwroot .js file
|
|
1264
|
+
&& (modulePath.indexOf('./wwwroot/') === -1 || path_1.default.extname(modulePath) === ".js")
|
|
1177
1265
|
&& modulePath.indexOf('./omnia/fx/models/ConfigurationComposers') === -1 // ignore comment interface for special case here
|
|
1178
1266
|
&& $.fs.existsSync(modulePath)) {
|
|
1179
1267
|
let stream = $.fs.readFileSync(modulePath, 'utf8');
|
|
@@ -1232,89 +1320,18 @@ function getServiceId() {
|
|
|
1232
1320
|
return serviceId;
|
|
1233
1321
|
}
|
|
1234
1322
|
exports.getServiceId = getServiceId;
|
|
1235
|
-
function
|
|
1236
|
-
let foundTypes = {};
|
|
1237
|
-
componentRegistrations.forEach((comp) => {
|
|
1238
|
-
let defPaths = comp.componentOptions.typings;
|
|
1239
|
-
if (defPaths) {
|
|
1240
|
-
let isChildSpec = false;
|
|
1241
|
-
defPaths.forEach((defPath) => {
|
|
1242
|
-
let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(comp.manifestPath, [defPath])[0];
|
|
1243
|
-
let contents = $.fs.readFileSync(entryPointPath, 'utf8');
|
|
1244
|
-
let wcEl = getWcElement(contents, isChildSpec);
|
|
1245
|
-
if (wcEl) {
|
|
1246
|
-
//Now lets find the interface mapped to element
|
|
1247
|
-
//example /*@WebComponentInterface("omfx-dialog")*/
|
|
1248
|
-
let interfaceToken = `/*@WebComponentInterface("${wcEl}")*/`;
|
|
1249
|
-
let interfaceIndex = contents.indexOf(interfaceToken);
|
|
1250
|
-
if (interfaceIndex > -1) {
|
|
1251
|
-
let wcProps = [];
|
|
1252
|
-
let intf = contents.substring(interfaceIndex);
|
|
1253
|
-
let nextIsDomProp = false;
|
|
1254
|
-
intf = intf
|
|
1255
|
-
.substring(intf.indexOf("{") + 1, intf.indexOf("}"))
|
|
1256
|
-
.replace(/\?/g, '')
|
|
1257
|
-
.trim()
|
|
1258
|
-
.split(/\r\n|\r|\n/g).forEach((group) => {
|
|
1259
|
-
/*@DomProperty*/
|
|
1260
|
-
let sub = group.trim();
|
|
1261
|
-
if (sub.indexOf("/*@DomProperty*/") > -1) {
|
|
1262
|
-
nextIsDomProp = true;
|
|
1263
|
-
return;
|
|
1264
|
-
}
|
|
1265
|
-
if (nextIsDomProp) {
|
|
1266
|
-
if (sub.indexOf(':')) {
|
|
1267
|
-
sub = sub.split(':')[0];
|
|
1268
|
-
}
|
|
1269
|
-
if (sub) {
|
|
1270
|
-
if (!foundTypes[wcEl]) {
|
|
1271
|
-
foundTypes[wcEl] = [];
|
|
1272
|
-
}
|
|
1273
|
-
foundTypes[wcEl].push(sub);
|
|
1274
|
-
}
|
|
1275
|
-
nextIsDomProp = false;
|
|
1276
|
-
}
|
|
1277
|
-
});
|
|
1278
|
-
}
|
|
1279
|
-
}
|
|
1280
|
-
isChildSpec = true;
|
|
1281
|
-
});
|
|
1282
|
-
}
|
|
1283
|
-
});
|
|
1284
|
-
return foundTypes;
|
|
1285
|
-
}
|
|
1286
|
-
var lastWcElement = "";
|
|
1287
|
-
function getWcElement(contents, isChildSpec) {
|
|
1288
|
-
if (isChildSpec) {
|
|
1289
|
-
if (lastWcElement === "") {
|
|
1290
|
-
new Error("Cant find the /*@DomProperty*/ on the parent interface for the WebComponent definition");
|
|
1291
|
-
}
|
|
1292
|
-
return lastWcElement;
|
|
1293
|
-
}
|
|
1294
|
-
else {
|
|
1295
|
-
lastWcElement = "";
|
|
1296
|
-
}
|
|
1297
|
-
let wcElToken = "/*@WebComponent*/";
|
|
1298
|
-
let wcElIndex = contents.indexOf(wcElToken);
|
|
1299
|
-
let wcEl = "";
|
|
1300
|
-
if (wcElIndex > -1) {
|
|
1301
|
-
wcEl = contents.substring(wcElIndex);
|
|
1302
|
-
wcEl = wcEl.substring(wcEl.indexOf('"') + 1);
|
|
1303
|
-
wcEl = wcEl.substring(0, wcEl.indexOf('"'));
|
|
1304
|
-
lastWcElement = wcEl;
|
|
1305
|
-
}
|
|
1306
|
-
return lastWcElement;
|
|
1307
|
-
}
|
|
1308
|
-
function createVueEntryFormRegistrations(registrations) {
|
|
1323
|
+
function createVueEntryFormComponentRegistrations(registrations) {
|
|
1309
1324
|
let entryPaths = {};
|
|
1310
1325
|
for (let r of registrations) {
|
|
1311
|
-
if (r.componentOptions.entryPoint.endsWith('.
|
|
1326
|
+
if (r.componentOptions.entryPoint.endsWith('.tsx')
|
|
1327
|
+
|| r.componentOptions.entryPoint.endsWith('.vue')) {
|
|
1312
1328
|
let entryPointPath = (0, shared_1.convertManifestPathToEntryPath)(r.manifestPath, [r.componentOptions.entryPoint]);
|
|
1313
1329
|
let entryId = r.manifest.resourceId;
|
|
1314
1330
|
if (r.manifest.resourceName) {
|
|
1315
1331
|
entryId = `${r.manifest.resourceName}_${entryId}`;
|
|
1316
1332
|
}
|
|
1317
|
-
|
|
1333
|
+
r.componentOptions.entryPointPath = entryPointPath[0];
|
|
1334
|
+
entryPaths[entryId.toString()] = entryPointPath;
|
|
1318
1335
|
}
|
|
1319
1336
|
else {
|
|
1320
1337
|
$.tooling.log('The OmniaFx build system only supports .jsx, .vue and .tsx based components at the moment ', $.tooling.LogTypes.Error);
|
|
@@ -1325,7 +1342,6 @@ function createVueEntryFormRegistrations(registrations) {
|
|
|
1325
1342
|
}
|
|
1326
1343
|
function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFilePath) {
|
|
1327
1344
|
let manifest = $.tooling.composer.getManifestById(currentManifestId);
|
|
1328
|
-
let hasChanged = false;
|
|
1329
1345
|
const content = fsExtra.readFileSync(manifestBundleFilePath, 'utf8');
|
|
1330
1346
|
const addDependency = (dependOnmanifestId, dependOnServiceId) => {
|
|
1331
1347
|
let hasNewDependency = false;
|
|
@@ -1349,7 +1365,7 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
|
|
|
1349
1365
|
if (manifestObject && manifestObject.content) {
|
|
1350
1366
|
Object.keys(manifestObject.content).forEach((modulePath) => {
|
|
1351
1367
|
if (content.indexOf(modulePath) > -1) {
|
|
1352
|
-
|
|
1368
|
+
addDependency(manifest.resourceId, manifest.serviceId);
|
|
1353
1369
|
return;
|
|
1354
1370
|
}
|
|
1355
1371
|
});
|
|
@@ -1369,7 +1385,8 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
|
|
|
1369
1385
|
if (entryName.toLowerCase() !== currentManifestId.toString().toLowerCase()
|
|
1370
1386
|
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.FxWorkers.toString()) === -1
|
|
1371
1387
|
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.FxCore.toString()) === -1 /* ignore omnia.fx.core, omnia.fx.workers and vendor manifest because ith not loaded by our resource loader */
|
|
1372
|
-
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1388
|
+
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1389
|
+
&& entryName.indexOf(vendorProdId) === -1) {
|
|
1373
1390
|
for (let entryPointPath of _manifestsEntry[entryName]) {
|
|
1374
1391
|
if (!hasDependency) {
|
|
1375
1392
|
var transformresourcePath = _transformResourcepaths.find(resource => resource.original === entryPointPath);
|
|
@@ -1381,7 +1398,7 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
|
|
|
1381
1398
|
hasDependency = true;
|
|
1382
1399
|
}
|
|
1383
1400
|
if (hasDependency) {
|
|
1384
|
-
|
|
1401
|
+
addDependency($.tooling.utils.getGuidValue(entryName));
|
|
1385
1402
|
break;
|
|
1386
1403
|
}
|
|
1387
1404
|
}
|
|
@@ -1389,10 +1406,6 @@ function ensureManifestDependencyInRuntime(currentManifestId, manifestBundleFile
|
|
|
1389
1406
|
}
|
|
1390
1407
|
});
|
|
1391
1408
|
}
|
|
1392
|
-
if (hasChanged) {
|
|
1393
|
-
let manifestsData = $.tooling.composer.getManifestData();
|
|
1394
|
-
$.tooling.composer.updateManifestData(manifestsData);
|
|
1395
|
-
}
|
|
1396
1409
|
}
|
|
1397
1410
|
exports.ensureManifestDependencyInRuntime = ensureManifestDependencyInRuntime;
|
|
1398
1411
|
function buildManifestsDependency(entries, manifestId, manifestBundleContent) {
|
|
@@ -1423,7 +1436,8 @@ function buildManifestsDependency(entries, manifestId, manifestBundleContent) {
|
|
|
1423
1436
|
if (entryName.toLowerCase() !== manifestId.toLowerCase()
|
|
1424
1437
|
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.FxWorkers.toString()) === -1
|
|
1425
1438
|
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.FxCore.toString()) === -1 /* ignore omnia.fx.core, omnia.fx.workers and vendor manifest because ith not loaded by our resource loader */
|
|
1426
|
-
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1439
|
+
&& entryName.indexOf(fx_models_1.OmniaResourceManifests.Vendor.toString()) === -1
|
|
1440
|
+
&& entryName.indexOf(vendorProdId) === -1) {
|
|
1427
1441
|
for (let entryPointPath of entries[entryName]) {
|
|
1428
1442
|
if (!hasDependency) {
|
|
1429
1443
|
var transformresourcePath = _transformResourcepaths.find(resource => resource.original === entryPointPath);
|
|
@@ -1482,15 +1496,12 @@ function chunkAsset(entries, compilation, fileName, viteHmrOption) {
|
|
|
1482
1496
|
/******/ }
|
|
1483
1497
|
/******/ omniaLoader['${omniaServiceId}'] = omniaLoader['${omniaServiceId}'] || {};
|
|
1484
1498
|
/******/
|
|
1485
|
-
/******/ function
|
|
1499
|
+
/******/ function hmrPreBundle() {
|
|
1486
1500
|
${content}
|
|
1487
1501
|
/******/ }
|
|
1488
1502
|
|
|
1489
|
-
if (omniaLoader['${omniaServiceId}']['${manifestId}']){
|
|
1490
|
-
omniaLoader['${omniaServiceId}']['${manifestId}']
|
|
1491
|
-
}
|
|
1492
|
-
else {
|
|
1493
|
-
omniaLoader['${omniaServiceId}']['${manifestId}'] = preBundle;
|
|
1503
|
+
if (!omniaLoader['${omniaServiceId}']['${manifestId}']){
|
|
1504
|
+
omniaLoader['${omniaServiceId}']['${manifestId}'] = hmrPreBundle;
|
|
1494
1505
|
}`;
|
|
1495
1506
|
}
|
|
1496
1507
|
else if (viteHmrOption == 'dynamic') {
|
|
@@ -1562,7 +1573,8 @@ function checkDuplicateWebpackEntryPoints(entries) {
|
|
|
1562
1573
|
let foundDuplicated = false;
|
|
1563
1574
|
let entryPathInfos = {};
|
|
1564
1575
|
Object.keys(entries).forEach(key => {
|
|
1565
|
-
|
|
1576
|
+
// skip omnia.vendor.prod
|
|
1577
|
+
if (entries[key] && key.indexOf(vendorProdId) === -1) {
|
|
1566
1578
|
entries[key].forEach(path => {
|
|
1567
1579
|
entryPathInfos[path] = entryPathInfos[path] || [];
|
|
1568
1580
|
entryPathInfos[path].push(key);
|
|
@@ -1577,13 +1589,6 @@ function checkDuplicateWebpackEntryPoints(entries) {
|
|
|
1577
1589
|
});
|
|
1578
1590
|
return foundDuplicated;
|
|
1579
1591
|
}
|
|
1580
|
-
function isEnableMeasureBuild() {
|
|
1581
|
-
let enableMeasure = $.composers.DevelopmentBuildConfiguration.isEnableMeasureBuild;
|
|
1582
|
-
if (enableMeasure !== true && process.argv.length > 0) {
|
|
1583
|
-
enableMeasure = process.argv.find(argv => argv === "--measure") !== undefined;
|
|
1584
|
-
}
|
|
1585
|
-
return enableMeasure;
|
|
1586
|
-
}
|
|
1587
1592
|
function prefixCssSelector() {
|
|
1588
1593
|
//var applyToSelectors = ['input', '::before', '::after'];
|
|
1589
1594
|
//var applyToSelectors = ['select', 'textarea', 'button', 'input', '.btn', '.content', '.input-group', '.title', '.icon', '*'];
|
|
@@ -1602,56 +1607,31 @@ function prefixCssSelector() {
|
|
|
1602
1607
|
//exclude: [/.v-tooltip__content/, /.v-menu__content/],
|
|
1603
1608
|
//exclude: [/.v-select/],
|
|
1604
1609
|
transform: function (prefix, selector, prefixedSelector) {
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
//
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
//
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
//
|
|
1629
|
-
//
|
|
1630
|
-
//}
|
|
1631
|
-
//// Try to prevent warpper to some special preset like html, body,...etc.
|
|
1632
|
-
////if (selector === "html" || selector === "body") {
|
|
1633
|
-
//// return selector;
|
|
1634
|
-
////}
|
|
1635
|
-
////return `[data-omfx] ${selector}, .v-menu__content ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`
|
|
1636
|
-
//let match = false;
|
|
1637
|
-
//applyToSelectors.forEach(value => {
|
|
1638
|
-
// if (selector === value) {
|
|
1639
|
-
// match = true;
|
|
1640
|
-
// return;
|
|
1641
|
-
// }
|
|
1642
|
-
//})
|
|
1643
|
-
//if (match) {
|
|
1644
|
-
// return prefixedSelector;
|
|
1645
|
-
//}
|
|
1646
|
-
//// Need to wrapper to .v-tooltip__content, .v-menu__content and .v-dialog__content also because they render at the level below body.
|
|
1647
|
-
//let prefixedClassSelectoreResult = selector;
|
|
1648
|
-
//applyToClassSelector.forEach(value => {
|
|
1649
|
-
// if (selector === value || (selector.lastIndexOf(value) > -1 && selector.lastIndexOf(value) === selector.length - value.length)) {
|
|
1650
|
-
// prefixedClassSelectoreResult = `.v-application ${selector}, .v-menu__content ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`
|
|
1651
|
-
// return prefixedClassSelectoreResult;
|
|
1652
|
-
// }
|
|
1653
|
-
//})
|
|
1654
|
-
//return prefixedClassSelectoreResult;
|
|
1610
|
+
return selector;
|
|
1611
|
+
// temp comment out prefix rule below to testing with vuetify 3 in omnia page first.
|
|
1612
|
+
// // Only apply html/body rule in omnia page.
|
|
1613
|
+
// if (selector === "html" || selector === "body") {
|
|
1614
|
+
// return `${selector}[data-omfx]`;
|
|
1615
|
+
// }
|
|
1616
|
+
// // exclude rule .v-application for web component
|
|
1617
|
+
// if (selector === '.v-application') {
|
|
1618
|
+
// return 'html .v-application:not([data-omwc])'
|
|
1619
|
+
// }
|
|
1620
|
+
// // fix issue <v-menu content-class="v-application"
|
|
1621
|
+
// if (selector === '.v-menu__content') {
|
|
1622
|
+
// return 'html div.v-menu__content:not([data-omwc])'
|
|
1623
|
+
// }
|
|
1624
|
+
// if (selector.indexOf('.theme--light') === 0
|
|
1625
|
+
// || selector.indexOf('.theme--dark') === 0
|
|
1626
|
+
// || selector.indexOf('.v-application--is') > -1
|
|
1627
|
+
// || selector.indexOf('.v-tooltip__content') > -1
|
|
1628
|
+
// || selector.indexOf('.v-overlay-container') > -1
|
|
1629
|
+
// || selector.indexOf('.v-menu__content') > -1
|
|
1630
|
+
// || selector.indexOf('.v-dialog__content') > -1) {
|
|
1631
|
+
// //console.log(selector)
|
|
1632
|
+
// return `html ${selector}`;
|
|
1633
|
+
// }
|
|
1634
|
+
// return `[data-omfx] ${selector}, .v-menu__content ${selector}, .v-overlay-container ${selector}, .v-tooltip__content ${selector}, .v-dialog__content ${selector}`
|
|
1655
1635
|
}
|
|
1656
1636
|
});
|
|
1657
1637
|
}
|
|
@@ -1665,45 +1645,9 @@ exports.registerManifestsReference = registerManifestsReference;
|
|
|
1665
1645
|
function getRegisteredReferenceManifests() {
|
|
1666
1646
|
return _registeredReferenceManifests;
|
|
1667
1647
|
}
|
|
1668
|
-
function registerWebComponentDefinitions(definitions) {
|
|
1669
|
-
if (definitions) {
|
|
1670
|
-
_wcDefinitions = $.merge(_wcDefinitions, definitions);
|
|
1671
|
-
}
|
|
1672
|
-
}
|
|
1673
|
-
exports.registerWebComponentDefinitions = registerWebComponentDefinitions;
|
|
1674
|
-
function getRegisteredWebComponentDefinitions() {
|
|
1675
|
-
return _wcDefinitions;
|
|
1676
|
-
}
|
|
1677
1648
|
function sortString(a, b) {
|
|
1678
1649
|
if (a >= b) {
|
|
1679
1650
|
return 1;
|
|
1680
1651
|
}
|
|
1681
1652
|
return -1;
|
|
1682
1653
|
}
|
|
1683
|
-
function generateWebComponentTypings(wc, template) {
|
|
1684
|
-
// export default defineVueWebComponent
|
|
1685
|
-
let wcPath = (0, shared_1.convertManifestPathToEntryPath)(wc.manifestPath, [wc.componentOptions.entryPoint])[0];
|
|
1686
|
-
let content = fsExtra.readFileSync(wcPath, 'utf8');
|
|
1687
|
-
if (content.indexOf("defineVueWebComponent") > -1) {
|
|
1688
|
-
if (!new RegExp('export\\s+default\\s+').test(content)) {
|
|
1689
|
-
throw new Error(`Missing statement 'export default a vue web component' in ${wcPath}`);
|
|
1690
|
-
}
|
|
1691
|
-
let friendlyManifestId = `wc${wc.manifest.resourceId.replace(/-/g, '').toLowerCase()}`;
|
|
1692
|
-
let importPath = wcPath.substring(0, wcPath.lastIndexOf('.tsx'));
|
|
1693
|
-
if (importPath.indexOf("./") === 0) {
|
|
1694
|
-
importPath = importPath.replace("./", "");
|
|
1695
|
-
}
|
|
1696
|
-
if ($.isExtensionEnv) {
|
|
1697
|
-
importPath = `../../../../${importPath}`;
|
|
1698
|
-
}
|
|
1699
|
-
else {
|
|
1700
|
-
importPath = `../../../${importPath}`;
|
|
1701
|
-
}
|
|
1702
|
-
return template
|
|
1703
|
-
.replace(/\/\/{{importWC}}/, `import ${friendlyManifestId} from '${importPath}';
|
|
1704
|
-
//{{importWC}}`)
|
|
1705
|
-
.replace(/\/\/{{elementName}}/, `"${wc.componentOptions.elementName}": typeof ${friendlyManifestId}.propsDefinition & VueComponentBaseProps
|
|
1706
|
-
//{{elementName}}`);
|
|
1707
|
-
}
|
|
1708
|
-
return template;
|
|
1709
|
-
}
|