@tarojs/webpack5-runner 4.1.12-beta.51 → 4.1.12-beta.53

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.
@@ -0,0 +1,533 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_path_1 = __importDefault(require("node:path"));
7
+ const helper_1 = require("@tarojs/helper");
8
+ const asyncSubPackage_1 = require("../utils/asyncSubPackage");
9
+ const PLUGIN_NAME = 'TaroAsyncSubPackagePlugin';
10
+ const ASYNC_SUBPACKAGE_ENTRY = 'index';
11
+ const COMMON_CACHE_GROUP_PATCHED = Symbol.for('taroAsyncSubPackageCommonCacheGroupPatched');
12
+ function getModuleResource(module) {
13
+ var _a;
14
+ return ((module === null || module === void 0 ? void 0 : module.resource) || ((_a = module === null || module === void 0 ? void 0 : module.nameForCondition) === null || _a === void 0 ? void 0 : _a.call(module)) || '').replace(/\?.*$/, '');
15
+ }
16
+ function isJavaScriptModule(module) {
17
+ const moduleType = (module === null || module === void 0 ? void 0 : module.type) || '';
18
+ const resource = getModuleResource(module);
19
+ if (moduleType.startsWith('css') || helper_1.REG_STYLE.test(resource))
20
+ return false;
21
+ return helper_1.REG_SCRIPTS.test(resource);
22
+ }
23
+ function getAsyncRootFromChunkName(chunkName, asyncRootMap) {
24
+ if (!chunkName)
25
+ return false;
26
+ const normalizedChunkName = (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(chunkName);
27
+ const sourceRoot = Array.from(asyncRootMap.keys()).find(root => {
28
+ const normalizedRoot = (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(root);
29
+ return normalizedChunkName === normalizedRoot || normalizedChunkName.startsWith(`${normalizedRoot}/`);
30
+ });
31
+ return sourceRoot ? asyncRootMap.get(sourceRoot) || false : false;
32
+ }
33
+ function getAsyncRootFromChunks(chunks, asyncRootMap) {
34
+ const asyncRoots = new Set();
35
+ for (const chunk of chunks) {
36
+ const asyncRoot = getAsyncRootFromChunkName(chunk === null || chunk === void 0 ? void 0 : chunk.name, asyncRootMap);
37
+ if (!asyncRoot)
38
+ return false;
39
+ asyncRoots.add(asyncRoot);
40
+ }
41
+ if (asyncRoots.size !== 1)
42
+ return false;
43
+ return Array.from(asyncRoots)[0];
44
+ }
45
+ function createAsyncSplitChunkName(asyncRoot, chunks) {
46
+ const chunkNames = chunks
47
+ .map(chunk => (chunk === null || chunk === void 0 ? void 0 : chunk.name) || String((chunk === null || chunk === void 0 ? void 0 : chunk.id) || 'common'))
48
+ .sort()
49
+ .join('~');
50
+ return (0, asyncSubPackage_1.createAsyncCommonChunkName)(asyncRoot, chunkNames || 'common');
51
+ }
52
+ function createMiniAppConfigContent(content, subPackages) {
53
+ const result = Object.assign(Object.assign({}, content), { subPackages });
54
+ // subPackageIndie/subpackages 是 Taro 编译期配置,不能透出到微信小程序 app.json。
55
+ delete result.subPackageIndie;
56
+ return result;
57
+ }
58
+ function createNormalizedRuntimeRootEntries(asyncRootEntries) {
59
+ return asyncRootEntries.map(({ sourceRoot, asyncRoot }) => {
60
+ const normalizedAsyncRoot = (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(asyncRoot);
61
+ return [
62
+ (0, asyncSubPackage_1.normalizePathForAsyncSubPackage)(sourceRoot),
63
+ normalizedAsyncRoot,
64
+ `${normalizedAsyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}`
65
+ ];
66
+ });
67
+ }
68
+ function createChunkFilenameRuntimeSource(Template, getChunkScriptFilename) {
69
+ return [
70
+ `var asyncSubPackageChunkFilename = ${getChunkScriptFilename};`,
71
+ `${getChunkScriptFilename} = function(chunkId) {`,
72
+ Template.indent([
73
+ 'var filename = asyncSubPackageChunkFilename(chunkId);',
74
+ 'for (var i = 0; i < asyncSubPackageRootEntries.length; i++) {',
75
+ Template.indent([
76
+ 'var asyncRoot = asyncSubPackageRootEntries[i][1];',
77
+ 'if (filename === asyncRoot || filename.indexOf(asyncRoot + "/") === 0) return asyncSubPackageRootEntries[i][2];'
78
+ ]),
79
+ '}',
80
+ 'return filename;'
81
+ ]),
82
+ '};'
83
+ ];
84
+ }
85
+ function createRequestResolverRuntimeSource(Template) {
86
+ return [
87
+ 'var relative = function(from, to) {',
88
+ Template.indent([
89
+ 'var fromParts = from.split("/").filter(Boolean);',
90
+ 'var toParts = to.split("/").filter(Boolean);',
91
+ 'while (fromParts.length && toParts.length && fromParts[0] === toParts[0]) {',
92
+ Template.indent([
93
+ 'fromParts.shift();',
94
+ 'toParts.shift();'
95
+ ]),
96
+ '}',
97
+ 'var result = [];',
98
+ 'for (var i = 0; i < fromParts.length; i++) result.push("..");',
99
+ 'result = result.concat(toParts);',
100
+ 'return result.length ? result.join("/") : ".";'
101
+ ]),
102
+ '};',
103
+ 'var matchRouteAnchor = function(route, sourceRoot) {',
104
+ Template.indent([
105
+ 'var index = route.indexOf(sourceRoot);',
106
+ 'if (index < 0) return -1;',
107
+ 'if (index > 0 && route.charAt(index - 1) !== "/") return -1;',
108
+ 'var end = index + sourceRoot.length;',
109
+ 'if (route.length > end && route.charAt(end) !== "/") return -1;',
110
+ 'return index;'
111
+ ]),
112
+ '};',
113
+ 'var getRootTail = function(root) {',
114
+ Template.indent([
115
+ 'var parts = root.split("/").filter(Boolean);',
116
+ 'return parts.length > 1 ? parts.slice(1).join("/") : root;'
117
+ ]),
118
+ '};',
119
+ 'var resolveHostRoot = function(routeDir, sourceRoot) {',
120
+ Template.indent([
121
+ 'var routeMatchIndex = matchRouteAnchor(routeDir, sourceRoot);',
122
+ 'if (routeMatchIndex >= 0) return routeDir.slice(0, routeMatchIndex);',
123
+ 'var sourceTail = getRootTail(sourceRoot);',
124
+ 'if (!sourceTail) return null;',
125
+ 'if (routeDir === sourceTail) return "";',
126
+ 'if (routeDir.slice(-sourceTail.length - 1) !== "/" + sourceTail) return null;',
127
+ 'return routeDir.slice(0, routeDir.length - sourceTail.length);'
128
+ ]),
129
+ '};',
130
+ 'var resolveAsyncSubPackageRequest = function(rawUrl) {',
131
+ Template.indent([
132
+ 'var pages = typeof getCurrentPages === "function" && getCurrentPages() || [];',
133
+ 'var currentPage = pages[pages.length - 1];',
134
+ 'var route = currentPage && currentPage.route;',
135
+ 'if (!route) return rawUrl;',
136
+ 'for (var i = 0; i < asyncSubPackageRootEntries.length; i++) {',
137
+ Template.indent([
138
+ 'var sourceRoot = asyncSubPackageRootEntries[i][0];',
139
+ 'var asyncRoot = asyncSubPackageRootEntries[i][1];',
140
+ 'var asyncEntry = asyncSubPackageRootEntries[i][2];',
141
+ 'if (rawUrl !== asyncEntry) continue;',
142
+ 'var routeDirParts = route.split("/");',
143
+ 'routeDirParts.pop();',
144
+ 'var routeDir = routeDirParts.join("/");',
145
+ 'var hostRoot = resolveHostRoot(routeDir, sourceRoot);',
146
+ 'if (hostRoot === null) continue;',
147
+ 'var asyncTail = getRootTail(asyncRoot);',
148
+ 'var hostRootValue = hostRoot ? hostRoot : "";',
149
+ 'if (hostRootValue && hostRootValue.charAt(hostRootValue.length - 1) === "/") hostRootValue = hostRootValue.slice(0, -1);',
150
+ 'var hostAsyncEntry = (hostRootValue ? hostRootValue + "/" : "") + asyncTail + "/' + ASYNC_SUBPACKAGE_ENTRY + '";',
151
+ 'while (hostAsyncEntry.charAt(0) === "/") hostAsyncEntry = hostAsyncEntry.slice(1);',
152
+ 'var request = relative(routeDir, hostAsyncEntry);',
153
+ 'return request.indexOf(".") === 0 ? request : "./" + request;'
154
+ ]),
155
+ '}',
156
+ 'return rawUrl;'
157
+ ]),
158
+ '};'
159
+ ];
160
+ }
161
+ function createRequireAsyncLoaderRuntimeSource(Template, loadScript) {
162
+ return [
163
+ 'var asyncSubPackageInProgress = {};',
164
+ `${loadScript} = function(url, done) {`,
165
+ Template.indent([
166
+ 'var rawUrl = (url || "").replace(/^\\/+/, "").replace(/\\.js$/, "");',
167
+ 'var request = resolveAsyncSubPackageRequest(rawUrl);',
168
+ 'if (asyncSubPackageInProgress[request]) { asyncSubPackageInProgress[request].push(done); return; }',
169
+ 'asyncSubPackageInProgress[request] = [done];',
170
+ 'var finish = function(event) {',
171
+ Template.indent([
172
+ 'var handlers = asyncSubPackageInProgress[request];',
173
+ 'delete asyncSubPackageInProgress[request];',
174
+ 'handlers && handlers.forEach(function(handler) { handler(event); });'
175
+ ]),
176
+ '};',
177
+ 'require.async(request).then(function() {',
178
+ Template.indent('finish({ type: "load", target: { src: request } });'),
179
+ '}, function(error) {',
180
+ Template.indent('finish({ type: "error", target: { src: request }, error: error });'),
181
+ '});'
182
+ ]),
183
+ '};'
184
+ ];
185
+ }
186
+ function createMiniCssRuntimeSource(Template, ensureChunkHandlers) {
187
+ return [
188
+ `${ensureChunkHandlers}.miniCss = function(chunkId, promises) {`,
189
+ Template.indent([
190
+ '// asyncSubPackage 的样式已在构建产物阶段合并回 sourceRoot 页面样式。',
191
+ '// 小程序环境没有 document,不能执行 mini-css-extract-plugin 的浏览器 CSS loader。'
192
+ ]),
193
+ '};'
194
+ ];
195
+ }
196
+ function createMiniAsyncSubPackageRuntimeSource(Template, runtimeGlobals, asyncRootEntries) {
197
+ const { loadScript, ensureChunkHandlers, getChunkScriptFilename, publicPath } = runtimeGlobals;
198
+ const asyncRootRuntimeEntries = createNormalizedRuntimeRootEntries(asyncRootEntries);
199
+ return Template.asString([
200
+ `${publicPath} = "";`,
201
+ `var asyncSubPackageRootEntries = ${JSON.stringify(asyncRootRuntimeEntries)};`,
202
+ ...createChunkFilenameRuntimeSource(Template, getChunkScriptFilename),
203
+ ...createRequestResolverRuntimeSource(Template),
204
+ ...createRequireAsyncLoaderRuntimeSource(Template, loadScript),
205
+ ...createMiniCssRuntimeSource(Template, ensureChunkHandlers)
206
+ ]);
207
+ }
208
+ function createMiniAsyncSubPackageRuntimeModuleClass(webpack, Template, runtimeGlobals) {
209
+ const RuntimeModule = webpack.RuntimeModule;
210
+ const stageAttach = RuntimeModule.STAGE_ATTACH || 10;
211
+ return class MiniAsyncSubPackageRuntimeModule extends RuntimeModule {
212
+ constructor(asyncRootEntries) {
213
+ // 在 webpack 原生 runtime module 之后执行,稳定覆盖浏览器 script/css loader。
214
+ super('mini async subpackage chunk loader', stageAttach);
215
+ this.asyncRootEntries = asyncRootEntries;
216
+ }
217
+ generate() {
218
+ return createMiniAsyncSubPackageRuntimeSource(Template, runtimeGlobals, this.asyncRootEntries);
219
+ }
220
+ };
221
+ }
222
+ /**
223
+ * 异步分包插件:集中处理 asyncSubPackage 的 chunk 归属、运行时加载补丁、异步分包入口和 app.json 注册。
224
+ *
225
+ * 当前方案保留 webpack 原生 import(),让 webpack 继续生成异步 chunk;随后在产物阶段把这些 chunk
226
+ * 移到配置的 asyncRoot 下,并生成微信可识别的 asyncRoot/index 占位页面作为分包加载入口。
227
+ */
228
+ class AsyncSubPackagePlugin {
229
+ constructor(miniPlugin, asyncRootMap) {
230
+ this.asyncRootMap = new Map();
231
+ this.asyncRuntimeRoots = [];
232
+ this.appliedCompilers = new WeakSet();
233
+ this.miniHooksApplied = false;
234
+ this.asyncModuleCache = new WeakMap();
235
+ this.asyncChunkRootCache = new WeakMap();
236
+ this.asyncChunkSourceRoots = new Map();
237
+ this.miniPlugin = miniPlugin;
238
+ if (asyncRootMap) {
239
+ this.updateAsyncRootMap(asyncRootMap);
240
+ }
241
+ }
242
+ updateAsyncRootMap(asyncRootMap) {
243
+ this.asyncRootMap = new Map(asyncRootMap);
244
+ this.asyncRuntimeRoots = Array.from(asyncRootMap.entries()).map(([sourceRoot, asyncRoot]) => ({ sourceRoot, asyncRoot }));
245
+ global.__taroAsyncSubPackageUseWebpackImport = true;
246
+ }
247
+ updateAsyncRuntimeRoots(asyncRuntimeRoots) {
248
+ this.asyncRuntimeRoots = asyncRuntimeRoots.map(item => (Object.assign({}, item)));
249
+ }
250
+ apply(compiler) {
251
+ if (compiler && !this.appliedCompilers.has(compiler)) {
252
+ this.appliedCompilers.add(compiler);
253
+ compiler.hooks.compilation.tap(PLUGIN_NAME, () => {
254
+ this.asyncModuleCache = new WeakMap();
255
+ this.asyncChunkRootCache = new WeakMap();
256
+ this.asyncChunkSourceRoots = new Map();
257
+ });
258
+ this.setupAsyncSplitChunks(compiler);
259
+ this.setupAsyncChunkOptimization(compiler);
260
+ this.setupAsyncChunkRuntime(compiler);
261
+ this.setupAsyncChunkAssetExtraction(compiler);
262
+ }
263
+ if (!this.miniHooksApplied) {
264
+ this.miniHooksApplied = true;
265
+ this.setupSubPackageRegistration();
266
+ }
267
+ }
268
+ // ==================== Async SplitChunks ====================
269
+ setupAsyncSplitChunks(compiler) {
270
+ var _a;
271
+ const splitChunks = (_a = compiler.options.optimization) === null || _a === void 0 ? void 0 : _a.splitChunks;
272
+ if (!splitChunks)
273
+ return;
274
+ const cacheGroups = splitChunks.cacheGroups || {};
275
+ const commonCacheGroup = cacheGroups.common;
276
+ if (commonCacheGroup && commonCacheGroup !== false && !commonCacheGroup[COMMON_CACHE_GROUP_PATCHED]) {
277
+ const originalCommonTest = commonCacheGroup.test;
278
+ commonCacheGroup.test = (module, context) => {
279
+ // asyncSubPackage 自己负责归属到 asyncRoot 的 JS 模块,避免被默认 common 抽到主包 common.js。
280
+ if (this.isAsyncSubPackageModule(module, context))
281
+ return false;
282
+ return typeof originalCommonTest === 'function' ? originalCommonTest(module, context) : originalCommonTest !== false;
283
+ };
284
+ // 同一插件实例多次 apply、或 webpack-chain 多次构建 options 时,避免对 test 反复套娃。
285
+ Object.defineProperty(commonCacheGroup, COMMON_CACHE_GROUP_PATCHED, { value: true, enumerable: false });
286
+ }
287
+ cacheGroups.asyncSubPackage = {
288
+ chunks: 'async',
289
+ minChunks: 2,
290
+ minSize: 0,
291
+ priority: 20,
292
+ enforce: true,
293
+ name: (_module, chunks) => {
294
+ const asyncRoot = getAsyncRootFromChunks(chunks, this.asyncRootMap);
295
+ if (!asyncRoot)
296
+ return false;
297
+ return createAsyncSplitChunkName(asyncRoot, chunks);
298
+ },
299
+ test: (module, context) => this.isAsyncSubPackageModule(module, context),
300
+ };
301
+ splitChunks.cacheGroups = cacheGroups;
302
+ }
303
+ getCachedAsyncRootForModule(module, context) {
304
+ if (!module)
305
+ return undefined;
306
+ if (this.asyncModuleCache.has(module))
307
+ return this.asyncModuleCache.get(module);
308
+ // getAsyncRootForModule 内部会主动写入 cache(包括递归路径上遇到的所有 module)。
309
+ return (0, asyncSubPackage_1.getAsyncRootForModule)(module, this.miniPlugin.options.sourceDir, this.asyncRootMap, context === null || context === void 0 ? void 0 : context.moduleGraph, undefined, this.asyncModuleCache);
310
+ }
311
+ isAsyncSubPackageModule(module, context) {
312
+ if (this.asyncRootMap.size === 0)
313
+ return false;
314
+ if (!isJavaScriptModule(module))
315
+ return false;
316
+ const asyncRoot = this.getCachedAsyncRootForModule(module, context);
317
+ return Boolean(asyncRoot);
318
+ }
319
+ // ==================== Async Chunk Optimization ====================
320
+ getSingleSourceRoot(sourceRoots) {
321
+ if (sourceRoots.size !== 1)
322
+ return null;
323
+ return Array.from(sourceRoots)[0];
324
+ }
325
+ getAsyncRootFromSourceRoots(sourceRoots) {
326
+ const asyncRoots = new Set();
327
+ for (const sourceRoot of sourceRoots) {
328
+ const asyncRoot = this.asyncRootMap.get(sourceRoot);
329
+ if (asyncRoot) {
330
+ asyncRoots.add(asyncRoot);
331
+ if (asyncRoots.size > 1)
332
+ return null;
333
+ }
334
+ }
335
+ return asyncRoots.size === 1 ? Array.from(asyncRoots)[0] : null;
336
+ }
337
+ getSourceRootsFromChunkGroupOrigins(chunk) {
338
+ const sourceRoots = new Set();
339
+ const sourceDir = this.miniPlugin.options.sourceDir;
340
+ for (const group of chunk.groupsIterable || []) {
341
+ for (const origin of group.origins || []) {
342
+ const originModules = [origin === null || origin === void 0 ? void 0 : origin.module, origin === null || origin === void 0 ? void 0 : origin.originModule];
343
+ for (const originModule of originModules) {
344
+ const sourceRoot = (0, asyncSubPackage_1.getSourceRootForResource)(getModuleResource(originModule), sourceDir, this.asyncRootMap);
345
+ if (sourceRoot)
346
+ sourceRoots.add(sourceRoot);
347
+ }
348
+ }
349
+ }
350
+ return sourceRoots;
351
+ }
352
+ setupAsyncChunkOptimization(compiler) {
353
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
354
+ compilation.hooks.optimizeChunks.tap(PLUGIN_NAME, chunks => {
355
+ var _a, _b;
356
+ if (this.asyncRootMap.size === 0)
357
+ return;
358
+ for (const chunk of chunks) {
359
+ // 入口 chunk 名要在 app.json/页面注册中保持稳定,不能被改成 asyncRoot 路径。
360
+ if (((_a = chunk.hasRuntime) === null || _a === void 0 ? void 0 : _a.call(chunk)) || ((_b = chunk.canBeInitial) === null || _b === void 0 ? void 0 : _b.call(chunk)))
361
+ continue;
362
+ const modules = Array.from(compilation.chunkGraph.getChunkModulesIterable(chunk));
363
+ const jsModules = modules.filter(module => isJavaScriptModule(module));
364
+ if (jsModules.length === 0)
365
+ continue;
366
+ const sourceRoots = this.getSourceRootsFromChunkGroupOrigins(chunk);
367
+ let asyncRoot = this.asyncChunkRootCache.get(chunk);
368
+ if (!this.asyncChunkRootCache.has(chunk)) {
369
+ asyncRoot = (0, asyncSubPackage_1.getSingleAsyncRootForModules)(jsModules, this.miniPlugin.options.sourceDir, this.asyncRootMap, compilation.moduleGraph, this.asyncModuleCache) || this.getAsyncRootFromSourceRoots(sourceRoots);
370
+ this.asyncChunkRootCache.set(chunk, asyncRoot || null);
371
+ }
372
+ if (!asyncRoot)
373
+ continue;
374
+ const fallbackName = jsModules
375
+ .map(module => node_path_1.default.posix.basename(getModuleResource(module)).replace(/\?.*$/, ''))
376
+ .filter(Boolean)
377
+ .sort()
378
+ .join('~') || 'common';
379
+ const asyncChunkName = (0, asyncSubPackage_1.createAsyncCommonChunkName)(asyncRoot, chunk.name || String(chunk.id || chunk.debugId || fallbackName));
380
+ chunk.name = asyncChunkName;
381
+ if (sourceRoots.size > 0) {
382
+ this.asyncChunkSourceRoots.set(asyncChunkName, new Set(sourceRoots));
383
+ }
384
+ }
385
+ });
386
+ });
387
+ }
388
+ // ==================== Async Chunk Runtime ====================
389
+ setupAsyncChunkRuntime(compiler) {
390
+ const webpack = compiler.webpack;
391
+ const { RuntimeGlobals, RuntimeModule, Template } = webpack;
392
+ const loadScript = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.loadScript;
393
+ const ensureChunkHandlers = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.ensureChunkHandlers;
394
+ const getChunkScriptFilename = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.getChunkScriptFilename;
395
+ const publicPath = RuntimeGlobals === null || RuntimeGlobals === void 0 ? void 0 : RuntimeGlobals.publicPath;
396
+ if (!loadScript || !ensureChunkHandlers || !getChunkScriptFilename || !publicPath || !RuntimeModule)
397
+ return;
398
+ const MiniAsyncSubPackageRuntimeModule = createMiniAsyncSubPackageRuntimeModuleClass(webpack, Template, { loadScript, ensureChunkHandlers, getChunkScriptFilename, publicPath });
399
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
400
+ const runtimeAppliedChunks = new WeakSet();
401
+ const addMiniAsyncRuntimeModule = (chunk) => {
402
+ if (this.asyncRootMap.size === 0 || runtimeAppliedChunks.has(chunk))
403
+ return;
404
+ runtimeAppliedChunks.add(chunk);
405
+ compilation.addRuntimeModule(chunk, new MiniAsyncSubPackageRuntimeModule(this.asyncRuntimeRoots));
406
+ return true;
407
+ };
408
+ // 不依赖 runtime.js 文本格式,也不只依赖某一个 runtime requirement:
409
+ // dev/prod 下 webpack 可能通过不同 requirement 触发异步 chunk runtime。
410
+ compilation.hooks.runtimeRequirementInTree.for(loadScript).tap(PLUGIN_NAME, addMiniAsyncRuntimeModule);
411
+ compilation.hooks.runtimeRequirementInTree.for(ensureChunkHandlers).tap(PLUGIN_NAME, addMiniAsyncRuntimeModule);
412
+ compilation.hooks.runtimeRequirementInTree.for(getChunkScriptFilename).tap(PLUGIN_NAME, addMiniAsyncRuntimeModule);
413
+ });
414
+ }
415
+ // ==================== Async Chunk Asset Extraction ====================
416
+ setupAsyncChunkAssetExtraction(compiler) {
417
+ compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {
418
+ var _a;
419
+ // PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER 在 webpack 5 中为 300;fallback 仅保留极旧版本兼容。
420
+ const stage = (_a = compilation.constructor.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER) !== null && _a !== void 0 ? _a : 300;
421
+ compilation.hooks.processAssets.tap({ name: PLUGIN_NAME, stage }, () => {
422
+ if (this.asyncRootMap.size === 0)
423
+ return;
424
+ const { RawSource } = compilation.compiler.webpack.sources;
425
+ this.moveAsyncRootStylesToSourceRoots(compilation, RawSource);
426
+ this.moveAsyncRootTemplatesToSourceRoots(compilation);
427
+ this.createAsyncRootEntries(compilation, RawSource);
428
+ });
429
+ });
430
+ }
431
+ createAsyncRootEntries(compilation, RawSource) {
432
+ const templateExt = this.miniPlugin.options.fileType.templ || '.wxml';
433
+ const configExt = this.miniPlugin.options.fileType.config || '.json';
434
+ // 多个 sourceRoot 可能指向同一个 asyncRoot;同一 asyncRoot 的 index 占位只需要生成一次。
435
+ const uniqueAsyncRoots = new Set(this.asyncRootMap.values());
436
+ for (const asyncRoot of uniqueAsyncRoots) {
437
+ const jsAssets = (0, asyncSubPackage_1.getAsyncRootAssetNames)(compilation.assets, asyncRoot)
438
+ .filter(assetName => assetName !== `${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}.js`)
439
+ .sort();
440
+ if (jsAssets.length === 0)
441
+ continue;
442
+ // 微信 require.async 只能稳定加载 app.json 中注册过的分包页面入口。
443
+ // 因此 asyncRoot 只注册 index 页面,index.js 再同步 require 真实 webpack async chunk,
444
+ // 让 webpack JSONP runtime 完成 chunk 注册。
445
+ const requires = jsAssets
446
+ .map(assetName => `require('./${node_path_1.default.posix.basename(assetName)}')`)
447
+ .join('\n');
448
+ compilation.assets[`${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}.js`] = new RawSource(requires);
449
+ compilation.assets[`${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}${configExt}`] = new RawSource('{}');
450
+ compilation.assets[`${asyncRoot}/${ASYNC_SUBPACKAGE_ENTRY}${templateExt}`] = new RawSource('<view />');
451
+ }
452
+ }
453
+ moveAsyncRootTemplatesToSourceRoots(compilation) {
454
+ const templateExt = this.miniPlugin.options.fileType.templ || '.wxml';
455
+ const asyncRoots = new Set(this.asyncRootMap.values());
456
+ for (const asyncRoot of asyncRoots) {
457
+ const templateAssets = Object.keys(compilation.assets)
458
+ .filter(assetName => assetName.startsWith(`${asyncRoot}/`) && assetName.endsWith(`-templates${templateExt}`));
459
+ for (const assetName of templateAssets) {
460
+ const templateName = node_path_1.default.posix.basename(assetName);
461
+ const chunkName = `${asyncRoot}/${templateName.slice(0, -`-templates${templateExt}`.length)}`;
462
+ const sourceRoots = this.asyncChunkSourceRoots.get(chunkName);
463
+ const sourceRoot = sourceRoots ? this.getSingleSourceRoot(sourceRoots) : null;
464
+ if (!sourceRoot)
465
+ continue;
466
+ compilation.assets[`${sourceRoot}/${templateName}`] = compilation.assets[assetName];
467
+ delete compilation.assets[assetName];
468
+ }
469
+ }
470
+ }
471
+ moveAsyncRootStylesToSourceRoots(compilation, RawSource) {
472
+ var _a, _b, _c, _d;
473
+ const styleExt = this.miniPlugin.options.fileType.style || '.wxss';
474
+ const styleAssetReg = new RegExp(`\\${styleExt}$`);
475
+ const asyncRoots = new Set(this.asyncRootMap.values());
476
+ for (const asyncRoot of asyncRoots) {
477
+ const asyncStyleAssets = Object.keys(compilation.assets)
478
+ .filter(assetName => assetName.startsWith(`${asyncRoot}/`) && styleAssetReg.test(assetName));
479
+ if (asyncStyleAssets.length === 0)
480
+ continue;
481
+ for (const assetName of asyncStyleAssets) {
482
+ const chunkName = assetName.slice(0, -styleExt.length);
483
+ const sourceRoots = this.asyncChunkSourceRoots.get(chunkName);
484
+ if (!(sourceRoots === null || sourceRoots === void 0 ? void 0 : sourceRoots.size))
485
+ continue;
486
+ // asyncRoot 下只保留 JS 与 index 占位页面;动态组件样式仍在父包页面上下文生效。
487
+ // 单一页面使用的 async style 只并回该 sourceRoot;多个页面共用的 async style 复制到所有使用它的 sourceRoot。
488
+ const asyncStyle = ((_b = (_a = compilation.assets[assetName]) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.call(_a).toString()) || '';
489
+ for (const sourceRoot of sourceRoots) {
490
+ const targetStyleAsset = `${sourceRoot}/index${styleExt}`;
491
+ const origin = ((_d = (_c = compilation.assets[targetStyleAsset]) === null || _c === void 0 ? void 0 : _c.source) === null || _d === void 0 ? void 0 : _d.call(_c).toString()) || '';
492
+ compilation.assets[targetStyleAsset] = new RawSource([origin, asyncStyle].filter(Boolean).join('\n'));
493
+ }
494
+ delete compilation.assets[assetName];
495
+ }
496
+ }
497
+ }
498
+ // ==================== app.json Registration ====================
499
+ setupSubPackageRegistration() {
500
+ this.miniPlugin.hooks.afterGenerateFiles.tap(PLUGIN_NAME, (compilation) => {
501
+ var _a, _b, _c;
502
+ if (this.asyncRootMap.size === 0)
503
+ return;
504
+ const { RawSource } = (((_b = (_a = compilation.compiler) === null || _a === void 0 ? void 0 : _a.webpack) === null || _b === void 0 ? void 0 : _b.sources) || require('webpack').sources);
505
+ const appConfig = this.miniPlugin.appConfig;
506
+ const exist = appConfig.subPackages || appConfig.subpackages || [];
507
+ const news = [];
508
+ // 多个 sourceRoot 可以指向同一个 asyncRoot,app.json 中只能注册一次。
509
+ // pages 固定为 index,避免把每个 webpack chunk 当成小程序页面。
510
+ const asyncRoots = new Set(this.asyncRootMap.values());
511
+ for (const asyncRoot of asyncRoots) {
512
+ news.push({ root: asyncRoot, pages: [ASYNC_SUBPACKAGE_ENTRY], independent: false });
513
+ }
514
+ const mergedMap = new Map();
515
+ for (const item of [...exist, ...news]) {
516
+ if (!(item === null || item === void 0 ? void 0 : item.root) || mergedMap.has(item.root))
517
+ continue;
518
+ mergedMap.set(item.root, item);
519
+ }
520
+ const merged = Array.from(mergedMap.values());
521
+ appConfig.subPackages = merged;
522
+ const appCfgPath = this.miniPlugin.getConfigFilePath(this.miniPlugin.appEntry);
523
+ const appCfgName = node_path_1.default.basename(appCfgPath).replace(node_path_1.default.extname(appCfgPath), '');
524
+ const fc = (_c = this.miniPlugin.filesConfig) === null || _c === void 0 ? void 0 : _c[appCfgName];
525
+ if (fc) {
526
+ fc.content = createMiniAppConfigContent(fc.content, merged);
527
+ compilation.assets[this.miniPlugin.getConfigPath(appCfgName)] = new RawSource(JSON.stringify(fc.content, null, 2));
528
+ }
529
+ });
530
+ }
531
+ }
532
+ exports.default = AsyncSubPackagePlugin;
533
+ //# sourceMappingURL=AsyncSubPackagePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AsyncSubPackagePlugin.js","sourceRoot":"","sources":["../../src/plugins/AsyncSubPackagePlugin.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAE5B,2CAAuD;AAEvD,8DAA6M;AAO7M,MAAM,WAAW,GAAG,2BAA2B,CAAA;AAC/C,MAAM,sBAAsB,GAAG,OAAO,CAAA;AACtC,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAA;AAE3F,SAAS,iBAAiB,CAAE,MAAW;;IACrC,OAAO,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,MAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,sDAAI,CAAA,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AACtF,CAAC;AAED,SAAS,kBAAkB,CAAE,MAAW;IACtC,MAAM,UAAU,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,KAAI,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,kBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1E,OAAO,oBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,yBAAyB,CAAE,SAA6B,EAAE,YAAiC;IAClG,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAC5B,MAAM,mBAAmB,GAAG,IAAA,iDAA+B,EAAC,SAAS,CAAC,CAAA;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC7D,MAAM,cAAc,GAAG,IAAA,iDAA+B,EAAC,IAAI,CAAC,CAAA;QAC5D,OAAO,mBAAmB,KAAK,cAAc,IAAI,mBAAmB,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,CAAC,CAAA;IACvG,CAAC,CAAC,CAAA;IACF,OAAO,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAE,MAAa,EAAE,YAAiC;IAC/E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,YAAY,CAAC,CAAA;QACtE,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAA;QAC5B,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,yBAAyB,CAAE,SAAiB,EAAE,MAAa;IAClE,MAAM,UAAU,GAAG,MAAM;SACtB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,MAAM,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,KAAI,QAAQ,CAAC,CAAC;SAC1D,IAAI,EAAE;SACN,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,OAAO,IAAA,4CAA0B,EAAC,SAAS,EAAE,UAAU,IAAI,QAAQ,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,0BAA0B,CAAE,OAA4B,EAAE,WAAyB;IAC1F,MAAM,MAAM,mCAA6B,OAAO,KAAE,WAAW,GAAE,CAAA;IAC/D,gEAAgE;IAChE,OAAO,MAAM,CAAC,eAAe,CAAA;IAC7B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,kCAAkC,CAAE,gBAA8C;IACzF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;QACxD,MAAM,mBAAmB,GAAG,IAAA,iDAA+B,EAAC,SAAS,CAAC,CAAA;QACtE,OAAO;YACL,IAAA,iDAA+B,EAAC,UAAU,CAAC;YAC3C,mBAAmB;YACnB,GAAG,mBAAmB,IAAI,sBAAsB,EAAE;SACnD,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAE,QAAa,EAAE,sBAA8B;IACtF,OAAO;QACL,sCAAsC,sBAAsB,GAAG;QAC/D,GAAG,sBAAsB,wBAAwB;QACjD,QAAQ,CAAC,MAAM,CAAC;YACd,uDAAuD;YACvD,+DAA+D;YAC/D,QAAQ,CAAC,MAAM,CAAC;gBACd,mDAAmD;gBACnD,iHAAiH;aAClH,CAAC;YACF,GAAG;YACH,kBAAkB;SACnB,CAAC;QACF,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAS,kCAAkC,CAAE,QAAa;IACxD,OAAO;QACL,qCAAqC;QACrC,QAAQ,CAAC,MAAM,CAAC;YACd,kDAAkD;YAClD,8CAA8C;YAC9C,6EAA6E;YAC7E,QAAQ,CAAC,MAAM,CAAC;gBACd,oBAAoB;gBACpB,kBAAkB;aACnB,CAAC;YACF,GAAG;YACH,kBAAkB;YAClB,+DAA+D;YAC/D,kCAAkC;YAClC,gDAAgD;SACjD,CAAC;QACF,IAAI;QACJ,sDAAsD;QACtD,QAAQ,CAAC,MAAM,CAAC;YACd,wCAAwC;YACxC,2BAA2B;YAC3B,8DAA8D;YAC9D,sCAAsC;YACtC,iEAAiE;YACjE,eAAe;SAChB,CAAC;QACF,IAAI;QACJ,oCAAoC;QACpC,QAAQ,CAAC,MAAM,CAAC;YACd,8CAA8C;YAC9C,4DAA4D;SAC7D,CAAC;QACF,IAAI;QACJ,wDAAwD;QACxD,QAAQ,CAAC,MAAM,CAAC;YACd,+DAA+D;YAC/D,sEAAsE;YACtE,2CAA2C;YAC3C,+BAA+B;YAC/B,yCAAyC;YACzC,+EAA+E;YAC/E,gEAAgE;SACjE,CAAC;QACF,IAAI;QACJ,wDAAwD;QACxD,QAAQ,CAAC,MAAM,CAAC;YACd,+EAA+E;YAC/E,4CAA4C;YAC5C,+CAA+C;YAC/C,4BAA4B;YAC5B,+DAA+D;YAC/D,QAAQ,CAAC,MAAM,CAAC;gBACd,oDAAoD;gBACpD,mDAAmD;gBACnD,oDAAoD;gBACpD,sCAAsC;gBACtC,uCAAuC;gBACvC,sBAAsB;gBACtB,yCAAyC;gBACzC,uDAAuD;gBACvD,kCAAkC;gBAClC,yCAAyC;gBACzC,+CAA+C;gBAC/C,0HAA0H;gBAC1H,kFAAkF,GAAG,sBAAsB,GAAG,IAAI;gBAClH,oFAAoF;gBACpF,mDAAmD;gBACnD,+DAA+D;aAChE,CAAC;YACF,GAAG;YACH,gBAAgB;SACjB,CAAC;QACF,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAS,qCAAqC,CAAE,QAAa,EAAE,UAAkB;IAC/E,OAAO;QACL,qCAAqC;QACrC,GAAG,UAAU,0BAA0B;QACvC,QAAQ,CAAC,MAAM,CAAC;YACd,sEAAsE;YACtE,sDAAsD;YACtD,oGAAoG;YACpG,8CAA8C;YAC9C,gCAAgC;YAChC,QAAQ,CAAC,MAAM,CAAC;gBACd,oDAAoD;gBACpD,4CAA4C;gBAC5C,sEAAsE;aACvE,CAAC;YACF,IAAI;YACJ,0CAA0C;YAC1C,QAAQ,CAAC,MAAM,CAAC,qDAAqD,CAAC;YACtE,sBAAsB;YACtB,QAAQ,CAAC,MAAM,CAAC,oEAAoE,CAAC;YACrF,KAAK;SACN,CAAC;QACF,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAS,0BAA0B,CAAE,QAAa,EAAE,mBAA2B;IAC7E,OAAO;QACL,GAAG,mBAAmB,0CAA0C;QAChE,QAAQ,CAAC,MAAM,CAAC;YACd,oDAAoD;YACpD,mEAAmE;SACpE,CAAC;QACF,IAAI;KACL,CAAA;AACH,CAAC;AAED,SAAS,sCAAsC,CAC7C,QAAa,EACb,cAAuH,EACvH,gBAA8C;IAE9C,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,UAAU,EAAE,GAAG,cAAc,CAAA;IAC9F,MAAM,uBAAuB,GAAG,kCAAkC,CAAC,gBAAgB,CAAC,CAAA;IAEpF,OAAO,QAAQ,CAAC,QAAQ,CAAC;QACvB,GAAG,UAAU,QAAQ;QACrB,oCAAoC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG;QAC9E,GAAG,gCAAgC,CAAC,QAAQ,EAAE,sBAAsB,CAAC;QACrE,GAAG,kCAAkC,CAAC,QAAQ,CAAC;QAC/C,GAAG,qCAAqC,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC9D,GAAG,0BAA0B,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KAC7D,CAAC,CAAA;AACJ,CAAC;AASD,SAAS,2CAA2C,CAClD,OAAY,EACZ,QAAa,EACb,cAA6C;IAE7C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;IAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,IAAI,EAAE,CAAA;IAEpD,OAAO,MAAM,gCAAiC,SAAQ,aAAa;QAGjE,YAAa,gBAA8C;YACzD,8DAA8D;YAC9D,KAAK,CAAC,oCAAoC,EAAE,WAAW,CAAC,CAAA;YACxD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAC1C,CAAC;QAED,QAAQ;YACN,OAAO,sCAAsC,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAChG,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAqB,qBAAqB;IAUxC,YAAa,UAA0B,EAAE,YAAkC;QAR3E,iBAAY,GAAwB,IAAI,GAAG,EAAE,CAAA;QAC7C,sBAAiB,GAAiC,EAAE,CAAA;QAC5C,qBAAgB,GAAsB,IAAI,OAAO,EAAE,CAAA;QACnD,qBAAgB,GAAG,KAAK,CAAA;QACxB,qBAAgB,GAAG,IAAI,OAAO,EAAkC,CAAA;QAChE,wBAAmB,GAAG,IAAI,OAAO,EAAsB,CAAA;QACvD,0BAAqB,GAAG,IAAI,GAAG,EAAuB,CAAA;QAG5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,kBAAkB,CAAE,YAAiC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;QACzC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAGxH;QAAC,MAAc,CAAC,qCAAqC,GAAG,IAAI,CAAA;IAC/D,CAAC;IAED,uBAAuB,CAAE,iBAA+C;QACtE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAM,IAAI,EAAG,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAE,QAAmB;QACxB,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACnC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAE,CAAA;gBACrC,IAAI,CAAC,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAA;gBACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAA;YACxC,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YACpC,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAA;QACpC,CAAC;IACH,CAAC;IAED,8DAA8D;IAEtD,qBAAqB,CAAE,QAAkB;;QAC/C,MAAM,WAAW,GAAG,MAAA,QAAQ,CAAC,OAAO,CAAC,YAAY,0CAAE,WAAW,CAAA;QAC9D,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,EAAE,CAAA;QACjD,MAAM,gBAAgB,GAAI,WAAmB,CAAC,MAAM,CAAA;QACpD,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACpG,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAA;YAChD,gBAAgB,CAAC,IAAI,GAAG,CAAC,MAAW,EAAE,OAAY,EAAE,EAAE;gBACpD,yEAAyE;gBACzE,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAC/D,OAAO,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,KAAK,KAAK,CAAA;YACtH,CAAC,CAAA;YACD,+DAA+D;YAC/D,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACzG,CAAC;QAEA,WAAmB,CAAC,eAAe,GAAG;YACrC,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC,OAAY,EAAE,MAAa,EAAE,EAAE;gBACpC,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBACnE,IAAI,CAAC,SAAS;oBAAE,OAAO,KAAK,CAAA;gBAC5B,OAAO,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;YACrD,CAAC;YACD,IAAI,EAAE,CAAC,MAAW,EAAE,OAAY,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC;SACnF,CAAA;QACD,WAAW,CAAC,WAAW,GAAG,WAAW,CAAA;IACvC,CAAC;IAEO,2BAA2B,CAAE,MAAW,EAAE,OAAY;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAA;QAC7B,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/E,4DAA4D;QAC5D,OAAO,IAAA,uCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACpJ,CAAC;IAEO,uBAAuB,CAAE,MAAW,EAAE,OAAY;QACxD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAC9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAA;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACnE,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,qEAAqE;IAE7D,mBAAmB,CAAE,WAAwB;QACnD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACvC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;IAEO,2BAA2B,CAAE,WAAwB;QAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;QAEpC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACnD,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBACzB,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAA;YACtC,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,CAAC;IAEO,mCAAmC,CAAE,KAAU;QACrD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAA;QAEnD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YAC/C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACzC,MAAM,aAAa,GAAG,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAA;gBAC5D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,MAAM,UAAU,GAAG,IAAA,0CAAwB,EAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;oBAC1G,IAAI,UAAU;wBAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,2BAA2B,CAAE,QAAkB;QACrD,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAgB,EAAE,EAAE;YAC/D,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;;gBACzD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;oBAAE,OAAM;gBAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,sDAAsD;oBACtD,IAAI,CAAA,MAAA,KAAK,CAAC,UAAU,qDAAI,MAAI,MAAA,KAAK,CAAC,YAAY,qDAAI,CAAA;wBAAE,SAAQ;oBAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAA;oBACjF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;oBACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;wBAAE,SAAQ;oBAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAA;oBACnE,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACnD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzC,SAAS,GAAG,IAAA,8CAA4B,EACtC,SAAS,EACT,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EACjC,IAAI,CAAC,YAAY,EACjB,WAAW,CAAC,WAAW,EACvB,IAAI,CAAC,gBAAgB,CACtB,IAAI,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAA;wBAClD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,CAAC,CAAA;oBACxD,CAAC;oBACD,IAAI,CAAC,SAAS;wBAAE,SAAQ;oBAExB,MAAM,YAAY,GAAG,SAAS;yBAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;yBAClF,MAAM,CAAC,OAAO,CAAC;yBACf,IAAI,EAAE;yBACN,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAA;oBACxB,MAAM,cAAc,GAAG,IAAA,4CAA0B,EAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC,CAAA;oBAC7H,KAAK,CAAC,IAAI,GAAG,cAAc,CAAA;oBAE3B,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,gEAAgE;IAExD,sBAAsB,CAAE,QAAkB;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAc,CAAA;QACvC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAC3D,MAAM,UAAU,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,CAAA;QAC7C,MAAM,mBAAmB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,mBAAmB,CAAA;QAC/D,MAAM,sBAAsB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,sBAAsB,CAAA;QACrE,MAAM,UAAU,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,CAAA;QAC7C,IAAI,CAAC,UAAU,IAAI,CAAC,mBAAmB,IAAI,CAAC,sBAAsB,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa;YAAE,OAAM;QAE3G,MAAM,gCAAgC,GAAG,2CAA2C,CAClF,OAAO,EACP,QAAQ,EACR,EAAE,UAAU,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,UAAU,EAAE,CACxE,CAAA;QAED,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAgB,EAAE,EAAE;YAC/D,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAO,CAAA;YAC/C,MAAM,yBAAyB,GAAG,CAAC,KAAU,EAAE,EAAE;gBAC/C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;oBAAE,OAAM;gBAC3E,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC/B,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,gCAAgC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;gBACjG,OAAO,IAAI,CAAA;YACb,CAAC,CAAA;YAED,oDAAoD;YACpD,4DAA4D;YAC5D,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAA;YACtG,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAA;YAC/G,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAA;QACpH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,yEAAyE;IAEjE,8BAA8B,CAAE,QAAkB;QACxD,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAgB,EAAE,EAAE;;YAC/D,gFAAgF;YAChF,MAAM,KAAK,GAAG,MAAC,WAAW,CAAC,WAAmB,CAAC,sCAAsC,mCAAI,GAAG,CAAA;YAC5F,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CACjC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAC5B,GAAG,EAAE;gBACH,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;oBAAE,OAAM;gBACxC,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;gBAC1D,IAAI,CAAC,gCAAgC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;gBAC7D,IAAI,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAA;gBACrD,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,CAAC,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,sBAAsB,CAAE,WAAgB,EAAE,SAAc;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAA;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAA;QAEpE,kEAAkE;QAClE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5D,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAA,wCAAsB,EAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC;iBACnE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,IAAI,sBAAsB,KAAK,CAAC;iBAC9E,IAAI,EAAE,CAAA;YACT,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAEnC,gDAAgD;YAChD,yEAAyE;YACzE,uCAAuC;YACvC,MAAM,QAAQ,GAAG,QAAQ;iBACtB,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,mBAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;iBAClE,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,sBAAsB,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAA;YACzF,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,sBAAsB,GAAG,SAAS,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;YAC9F,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,sBAAsB,GAAG,WAAW,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,UAAU,CAAC,CAAA;QACxG,CAAC;IACH,CAAC;IAEO,mCAAmC,CAAE,WAAgB;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAA;QACrE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QAEtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;iBACnD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,WAAW,EAAE,CAAC,CAAC,CAAA;YAE/G,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,mBAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;gBACnD,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAA;gBAC7F,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC7D,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBAC7E,IAAI,CAAC,UAAU;oBAAE,SAAQ;gBAEzB,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACnF,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gCAAgC,CAAE,WAAgB,EAAE,SAAc;;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAA;QAClE,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAA;QAClD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QAEtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;iBACrD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;YAC9F,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAE3C,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC7D,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAA;oBAAE,SAAQ;gBAEhC,oDAAoD;gBACpD,gFAAgF;gBAChF,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,0CAAE,MAAM,mDAAK,QAAQ,EAAE,KAAI,EAAE,CAAA;gBAC7E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACrC,MAAM,gBAAgB,GAAG,GAAG,UAAU,SAAS,QAAQ,EAAE,CAAA;oBACzD,MAAM,MAAM,GAAG,CAAA,MAAA,MAAA,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,0CAAE,MAAM,mDAAK,QAAQ,EAAE,KAAI,EAAE,CAAA;oBAChF,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBACvG,CAAC;gBACD,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kEAAkE;IAE1D,2BAA2B;QACjC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,WAAgB,EAAE,EAAE;;YAC7E,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAM;YACxC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAA,MAAA,MAAA,WAAW,CAAC,QAAQ,0CAAE,OAAO,0CAAE,OAAO,KAAI,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAQ,CAAA;YAEnG,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAA;YAC3C,MAAM,KAAK,GAAI,SAAiB,CAAC,WAAW,IAAK,SAAiB,CAAC,WAAW,IAAI,EAAE,CAAA;YACpF,MAAM,IAAI,GAAiB,EAAE,CAAA;YAC7B,oDAAoD;YACpD,+CAA+C;YAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;YACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,sBAAsB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YACrF,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAA;YAC/C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAQ;gBACrD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAChC,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAC5C;YAAC,SAAiB,CAAC,WAAW,GAAG,MAAM,CAAA;YAExC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC9E,MAAM,UAAU,GAAG,mBAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,mBAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;YAClF,MAAM,EAAE,GAAG,MAAC,IAAI,CAAC,UAAkB,CAAC,WAAW,0CAAG,UAAU,CAAC,CAAA;YAC7D,IAAI,EAAE,EAAE,CAAC;gBACP,EAAE,CAAC,OAAO,GAAG,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC3D,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YACpH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAlVD,wCAkVC"}
@@ -48,18 +48,22 @@ class BuildNativePlugin extends MiniPlugin_1.default {
48
48
  if (!this.isWatch) {
49
49
  (0, helper_1.printLog)("compile" /* processTypeEnum.COMPILE */, '发现入口', this.getShowPath(this.appEntry));
50
50
  }
51
- const { frameworkExts } = this.options;
51
+ const { frameworkExts, newBlended } = this.options;
52
52
  this.prerenderPages = new Set();
53
- this.pages = new Set([
54
- ...appPages.map(item => {
55
- const pagePath = (0, helper_1.resolveMainFilePath)(node_path_1.default.join(this.options.sourceDir, item), frameworkExts);
56
- return {
57
- name: item,
58
- path: pagePath,
59
- isNative: false
60
- };
61
- })
62
- ]);
53
+ const componentPages = appPages.map(item => {
54
+ const pagePath = (0, helper_1.resolveMainFilePath)(node_path_1.default.join(this.options.sourceDir, item), frameworkExts);
55
+ return {
56
+ name: item,
57
+ path: pagePath,
58
+ isNative: false
59
+ };
60
+ });
61
+ this.pages = new Set(componentPages);
62
+ if (newBlended) {
63
+ componentPages.forEach(component => {
64
+ this.nativeComponents.set(component.name, component);
65
+ });
66
+ }
63
67
  }
64
68
  // entry 删除 app.js
65
69
  addEntries() {
@@ -1 +1 @@
1
- {"version":3,"file":"BuildNativePlugin.js","sourceRoot":"","sources":["../../src/plugins/BuildNativePlugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2CAMuB;AACvB,+CAA2C;AAE3C,8CAA4F;AAC5F,8DAAqC;AAMrC,MAAM,WAAW,GAAG,mBAAmB,CAAA;AAEvC,MAAqB,iBAAkB,SAAQ,oBAAU;IAAzD;;QACE,mBAAc,GAAG,0CAA0C,CAAA;IA0J7D,CAAC;IAxJC,KAAK,CAAE,QAAkB;QACvB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACrB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAEK,GAAG,CAAE,QAAkB;;YAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAA;YACf,IAAI,CAAC,cAAc,EAAE,CAAA;YACrB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAC7B,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC1B,CAAC;KAAA;IAED,QAAQ;QACN,IAAI,IAAA,sBAAa,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACrC,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAA;QAC1C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAA,iBAAQ,2CAA0B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC5E,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAA;QAE/B,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC;YACnB,GAAG,QAAQ,CAAC,GAAG,CAAa,IAAI,CAAC,EAAE;gBACjC,MAAM,QAAQ,GAAG,IAAA,4BAAmB,EAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,aAAa,CAAC,CAAA;gBAE5F,OAAO;oBACL,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK;iBAChB,CAAA;YACH,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IAED,kBAAkB;IAClB,UAAU;QACR,KAAK,CAAC,UAAU,EAAE,CAAA;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAA;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB,CAAE,QAAkB;QACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAA;QAExD,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;YAC5D,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;gBAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,EAAE,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAA;oBAClC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAAE,OAAM;oBAElD,MAAM,IAAI,GAAuB,EAAE,CAAA;oBAEnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;wBACzC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;4BAC3B,MAAM,cAAc,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAA;4BAC9C,IAAI,EAAE,KAAK,cAAc;gCAAE,OAAM;4BACjC,IAAI,CAAC,IAAI,CAAC;gCACR,IAAI,EAAE,cAAc;6BACrB,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;oBAED,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAClI,IAAI,CAAC,IAAA,6BAAmB,EAAC,WAAW,EAAE,KAAK,CAAC;oBAAE,OAAO,OAAO,CAAA;gBAE5D,gBAAgB;gBAChB,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBACpB,IAAI,MAAM,CAAA;oBACV,MAAM,EAAE,GAAG,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAA;oBAClC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBAC1B,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;4BACb,MAAM,GAAG,IAAA,4BAAkB,EAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;wBAC7C,CAAC;oBACH,CAAC,CAAC,CAAA;oBACF,OAAO,MAAM,CAAA;gBACf,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,eAAe;IACf,kBAAkB,CAAE,WAAwB,EAAE,QAAkB,EAAE,QAAgB,EAAE,MAAwC;QAC1H,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAM;QACtC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAED,uCAAuC;IACvC,SAAS,CAAE,QAAkB;QAC3B,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;YACxD,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,MAAW,EAAE,EAAE;gBACrH,IAAI,MAAM,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;oBAC5C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;wBACrB,MAAM,EAAE,sCAAsC;wBAC9C,OAAO,EAAE;4BACP,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;yBACtC;qBACF,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAE,EAAE,MAAM,EAAe,EAAE,EAAE,OAAO,EAAY;QAChE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,OAAO,CAAA;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAA;QAC5C,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,CAAA;QAE9E,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,mBAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;YAClE,IAAI,CAAC,kBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACzB,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACxB,IAAI,IAAI,CAAC,QAAQ;oBAAE,OAAM;gBACzB,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAA;gBAC3C,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAA;oBACnC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;oBACtC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrB,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAA,2BAAY,EAAC,mBAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;oBAC9G,CAAC,CAAC,CAAA;oBACF,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;oBACxB,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAA;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AA3JD,oCA2JC"}
1
+ {"version":3,"file":"BuildNativePlugin.js","sourceRoot":"","sources":["../../src/plugins/BuildNativePlugin.ts"],"names":[],"mappings":"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"}