@tarojs/plugin-framework-react 4.0.0-beta.10 → 4.0.0-beta.100

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/LICENSE CHANGED
@@ -154,15 +154,8 @@ See `/LICENSE` for details of the license.
154
154
 
155
155
  ==================
156
156
 
157
- MIT (stencil-vue2-output-target):
158
- The following files embed [stencil-vue2-output-target](https://github.com/diondree/stencil-vue2-output-target) MIT:
159
- `/packages/taro-components-library-vue2/src/vue-component-lib/utils.ts`
160
- See `/LICENSE` for details of the license.
161
-
162
- ==================
163
-
164
157
  MIT (weui):
165
- The following files embed [stencil-vue2-output-target](https://github.com/Tencent/weui) MIT:
158
+ The following files embed [weui](https://github.com/Tencent/weui) MIT:
166
159
  `/packages/taro-components/src/components/*.scss`
167
160
  See `/LICENSE.txt` for details of the license.
168
161
 
@@ -172,3 +165,10 @@ Apache-2.0 (intersection-observer):
172
165
  The following files embed [intersection-observer](https://github.com/GoogleChromeLabs/intersection-observer) Apache-2.0:
173
166
  `/packages/taro-api/src/polyfill/intersection-observer.ts`
174
167
  See `/LICENSE.txt` for details of the license.
168
+
169
+ ==================
170
+
171
+ MIT (babel-plugin-jsx-dom-expressions):
172
+ The following files embed [babel-plugin-jsx-dom-expressions](https://github.com/ryansolid/dom-expressions/blob/main/packages/babel-plugin-jsx-dom-expressions) MIT:
173
+ `/packages/babel-plugin-transform-solid-jsx/src/*`
174
+ See `/LICENSE` for details of the license.
@@ -1 +1 @@
1
- {"version":3,"file":"api-loader.js","sources":["../src/api-loader.ts"],"sourcesContent":["export default function (str: string) {\n return `import {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n} from '@tarojs/plugin-framework-react/dist/runtime'\n${str}\n\ntaro.useAddToFavorites = useAddToFavorites\ntaro.useDidHide = useDidHide\ntaro.useDidShow = useDidShow\ntaro.useError = useError\ntaro.useLaunch = useLaunch\ntaro.useLoad = useLoad\ntaro.useOptionMenuClick = useOptionMenuClick\ntaro.usePageNotFound = usePageNotFound\ntaro.usePageScroll = usePageScroll\ntaro.usePullDownRefresh = usePullDownRefresh\ntaro.usePullIntercept = usePullIntercept\ntaro.useReachBottom = useReachBottom\ntaro.useReady = useReady\ntaro.useResize = useResize\ntaro.useRouter = useRouter\ntaro.useSaveExitState = useSaveExitState\ntaro.useShareAppMessage = useShareAppMessage\ntaro.useShareTimeline = useShareTimeline\ntaro.useTabItemTap = useTabItemTap\ntaro.useTitleClick = useTitleClick\ntaro.useScope = useScope\ntaro.useUnhandledRejection = useUnhandledRejection\ntaro.useUnload = useUnload\n\nexport {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n}\n`\n}\n"],"names":[],"mappings":";;AAAc,kBAAA,EAAW,GAAW,EAAA;IAChC,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBT,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDJ,CAAC;AACF;;;;"}
1
+ {"version":3,"file":"api-loader.js","sources":["../src/api-loader.ts"],"sourcesContent":["export default function (str: string) {\n return `import {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n} from '@tarojs/plugin-framework-react/dist/runtime'\n${str}\n\ntaro.useAddToFavorites = useAddToFavorites\ntaro.useDidHide = useDidHide\ntaro.useDidShow = useDidShow\ntaro.useError = useError\ntaro.useLaunch = useLaunch\ntaro.useLoad = useLoad\ntaro.useOptionMenuClick = useOptionMenuClick\ntaro.usePageNotFound = usePageNotFound\ntaro.usePageScroll = usePageScroll\ntaro.usePullDownRefresh = usePullDownRefresh\ntaro.usePullIntercept = usePullIntercept\ntaro.useReachBottom = useReachBottom\ntaro.useReady = useReady\ntaro.useResize = useResize\ntaro.useRouter = useRouter\ntaro.useSaveExitState = useSaveExitState\ntaro.useShareAppMessage = useShareAppMessage\ntaro.useShareTimeline = useShareTimeline\ntaro.useTabItemTap = useTabItemTap\ntaro.useTitleClick = useTitleClick\ntaro.useScope = useScope\ntaro.useUnhandledRejection = useUnhandledRejection\ntaro.useUnload = useUnload\n\nexport {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n}\n`\n}\n"],"names":[],"mappings":";;AAAc,kBAAA,EAAW,GAAW,EAAA;IAClC,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBP,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDJ,CAAA;AACD;;;;"}
package/dist/index.js CHANGED
@@ -4,63 +4,32 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var helper = require('@tarojs/helper');
6
6
  var shared = require('@tarojs/shared');
7
+ var tslib = require('tslib');
7
8
  var lodash = require('lodash');
8
9
  var acorn = require('acorn');
9
10
  var walk = require('acorn-walk');
10
11
  var path = require('node:path');
11
12
 
12
13
  function _interopNamespaceDefault(e) {
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
21
- });
22
- }
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
23
22
  });
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
27
28
  }
28
29
 
29
30
  var acorn__namespace = /*#__PURE__*/_interopNamespaceDefault(acorn);
30
31
  var walk__namespace = /*#__PURE__*/_interopNamespaceDefault(walk);
31
32
 
32
- /******************************************************************************
33
- Copyright (c) Microsoft Corporation.
34
-
35
- Permission to use, copy, modify, and/or distribute this software for any
36
- purpose with or without fee is hereby granted.
37
-
38
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
39
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
40
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
41
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
42
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
43
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
44
- PERFORMANCE OF THIS SOFTWARE.
45
- ***************************************************************************** */
46
- /* global Reflect, Promise, SuppressedError, Symbol */
47
-
48
-
49
- function __awaiter(thisArg, _arguments, P, generator) {
50
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
51
- return new (P || (P = Promise))(function (resolve, reject) {
52
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
53
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
54
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
55
- step((generator = generator.apply(thisArg, _arguments || [])).next());
56
- });
57
- }
58
-
59
- typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
60
- var e = new Error(message);
61
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
62
- };
63
-
64
33
  function apiLoader (str) {
65
34
  return `import {
66
35
  useAddToFavorites,
@@ -192,20 +161,6 @@ function addConfig(source) {
192
161
  });
193
162
  return additionConfig;
194
163
  }
195
- const nervMeta = {
196
- importFrameworkStatement: `
197
- import Nerv from 'nervjs';
198
- `,
199
- mockAppStatement: `
200
- class App extends Nerv.Component {
201
- render () {
202
- return this.props.children
203
- }
204
- }
205
- `,
206
- frameworkArgs: 'Nerv, Nerv, config',
207
- importFrameworkName: 'Nerv'
208
- };
209
164
  function getLoaderMeta(framework) {
210
165
  const loaderMeta = {
211
166
  importFrameworkStatement: `
@@ -229,9 +184,6 @@ class App extends React.Component {
229
184
  Object.assign(config, addConfig(source));
230
185
  }
231
186
  };
232
- if (framework === 'nerv') {
233
- Object.assign(loaderMeta, nervMeta);
234
- }
235
187
  if (process.env.TARO_PLATFORM === 'web') {
236
188
  if (framework === 'react') {
237
189
  const react = require('react');
@@ -264,7 +216,7 @@ function injectLoaderMeta$2(ctx, framework) {
264
216
  return {
265
217
  name: 'taro-react:loader-meta',
266
218
  buildStart() {
267
- return __awaiter(this, void 0, void 0, function* () {
219
+ return tslib.__awaiter(this, void 0, void 0, function* () {
268
220
  const viteCompilerContext = yield getViteH5CompilerContext(this);
269
221
  if (viteCompilerContext) {
270
222
  viteCompilerContext.loaderMeta = lodash.mergeWith(getLoaderMeta(framework), viteCompilerContext.loaderMeta, customizer);
@@ -285,7 +237,7 @@ function setTaroApi() {
285
237
  {
286
238
  name: 'taro:react-api',
287
239
  setup(build) {
288
- build.onLoad({ filter: helper.REG_TARO_H5_RUNTIME_API }, (args) => __awaiter(this, void 0, void 0, function* () {
240
+ build.onLoad({ filter: helper.REG_TARO_H5_RUNTIME_API }, (args) => tslib.__awaiter(this, void 0, void 0, function* () {
289
241
  const input = yield helper.fs.readFile(args.path, 'utf8');
290
242
  return {
291
243
  contents: apiLoader(input + '\n' + 'const taro = Taro__default\n')
@@ -298,7 +250,7 @@ function setTaroApi() {
298
250
  },
299
251
  }),
300
252
  load(id) {
301
- return __awaiter(this, void 0, void 0, function* () {
253
+ return tslib.__awaiter(this, void 0, void 0, function* () {
302
254
  if (process.env.NODE_ENV === 'production' && helper.REG_TARO_H5_RUNTIME_API.test(id)) {
303
255
  try {
304
256
  const input = yield helper.fs.readFile(id, 'utf8');
@@ -341,7 +293,8 @@ function injectLoaderMeta$1(ctx, framework) {
341
293
  const { getViteHarmonyCompilerContext } = runnerUtils;
342
294
  const viteCompilerContext = getViteHarmonyCompilerContext(this);
343
295
  if (viteCompilerContext) {
344
- viteCompilerContext.loaderMeta = getLoaderMeta(framework);
296
+ viteCompilerContext.loaderMeta || (viteCompilerContext.loaderMeta = {});
297
+ Object.assign(viteCompilerContext.loaderMeta, getLoaderMeta(framework));
345
298
  }
346
299
  }
347
300
  };
@@ -353,20 +306,20 @@ function aliasPlugin$1(ctx, framework) {
353
306
  config(config) {
354
307
  var _a;
355
308
  const alias = [
356
- { find: /react-dom$/, replacement: '@tarojs/react' }
309
+ { find: /react-dom$/, replacement: '@tarojs/react' },
357
310
  ];
311
+ const mainFields = ['unpkg', ...helper.defaultMainFields];
312
+ const resolveOptions = {
313
+ basedir: process.cwd(),
314
+ mainFields,
315
+ };
358
316
  const isProd = config.mode === 'production';
359
317
  // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错
360
318
  const isHarmony = ctx.runOpts.options.platform === 'harmony';
361
319
  if (!isProd && ((_a = ctx.initialConfig.harmony) === null || _a === void 0 ? void 0 : _a.debugReact) !== true && !isHarmony) {
362
- // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积
363
- alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' });
364
- alias.push({ find: /react$/, replacement: 'react/cjs/react.production.min.js' });
365
- alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' });
366
- alias.push({ find: /react\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' });
367
320
  // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。
368
321
  // Why writeJson? prebundle will load package.json via readFile to check exports property.
369
- const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] });
322
+ const reactPkgPath = helper.resolveSync('react/package.json', resolveOptions);
370
323
  if (reactPkgPath) {
371
324
  const reactPkg = require('react/package.json');
372
325
  const reactVersion = (reactPkg.version || '');
@@ -403,7 +356,8 @@ function injectLoaderMeta(ctx, framework) {
403
356
  const { getViteMiniCompilerContext } = runnerUtils;
404
357
  const viteCompilerContext = getViteMiniCompilerContext(this);
405
358
  if (viteCompilerContext) {
406
- viteCompilerContext.loaderMeta = getLoaderMeta(framework);
359
+ viteCompilerContext.loaderMeta || (viteCompilerContext.loaderMeta = {});
360
+ Object.assign(viteCompilerContext.loaderMeta, getLoaderMeta(framework));
407
361
  }
408
362
  }
409
363
  };
@@ -417,6 +371,11 @@ function aliasPlugin(ctx, framework) {
417
371
  const alias = [
418
372
  { find: /react-dom$/, replacement: '@tarojs/react' }
419
373
  ];
374
+ const mainFields = ['unpkg', ...helper.defaultMainFields];
375
+ const resolveOptions = {
376
+ basedir: process.cwd(),
377
+ mainFields,
378
+ };
420
379
  const isProd = config.mode === 'production';
421
380
  // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错
422
381
  const isHarmony = ctx.runOpts.options.platform === 'harmony';
@@ -428,7 +387,7 @@ function aliasPlugin(ctx, framework) {
428
387
  alias.push({ find: /react\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' });
429
388
  // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。
430
389
  // Why writeJson? prebundle will load package.json via readFile to check exports property.
431
- const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] });
390
+ const reactPkgPath = helper.resolveSync('react/package.json', resolveOptions);
432
391
  if (reactPkgPath) {
433
392
  const reactPkg = require('react/package.json');
434
393
  const reactVersion = (reactPkg.version || '');
@@ -489,28 +448,6 @@ function modifyH5WebpackChain(ctx, framework, chain) {
489
448
  },
490
449
  },
491
450
  });
492
- chain.merge({
493
- externals,
494
- module: {
495
- rule: {
496
- 'process-import-taro-harmony-hybrid': {
497
- test: /taro-platform-harmony-hybrid[\\/]dist[\\/]api[\\/]apis[\\/]taro/,
498
- loader: require.resolve('./api-loader')
499
- }
500
- }
501
- },
502
- });
503
- chain.merge({
504
- externals,
505
- module: {
506
- rule: {
507
- 'process-import-taro-harmony-hybrid': {
508
- test: /taro-platform-harmony-hybrid[\\/]dist[\\/]api[\\/]apis[\\/]taro/,
509
- loader: require.resolve('./api-loader')
510
- }
511
- }
512
- },
513
- });
514
451
  }
515
452
  function setLoader$2(framework, chain) {
516
453
  function customizer(object = '', sources = '') {
@@ -537,6 +474,17 @@ function setPlugin(ctx, framework, chain) {
537
474
  chain.plugin('fastRefreshPlugin').use(require('@prefresh/webpack'));
538
475
  }
539
476
  }
477
+ const mainFields = ['unpkg', ...helper.defaultMainFields];
478
+ const resolveOptions = {
479
+ basedir: process.cwd(),
480
+ mainFields,
481
+ };
482
+ if (framework === 'react') {
483
+ const alias = chain.resolve.alias;
484
+ // Note: 本地 link 调试时,避免 react 重复打包
485
+ alias.set('react$', helper.resolveSync('react', resolveOptions));
486
+ alias.set('react-dom$', helper.resolveSync('react-dom', resolveOptions));
487
+ }
540
488
  }
541
489
 
542
490
  function modifyHarmonyWebpackChain(ctx, framework, chain) {
@@ -547,6 +495,11 @@ function setAlias$2(ctx, framework, chain) {
547
495
  var _a;
548
496
  const config = ctx.initialConfig;
549
497
  const alias = chain.resolve.alias;
498
+ const mainFields = ['unpkg', ...helper.defaultMainFields];
499
+ const resolveOptions = {
500
+ basedir: process.cwd(),
501
+ mainFields,
502
+ };
550
503
  if (framework === 'react') {
551
504
  alias.set('react-dom$', '@tarojs/react');
552
505
  alias.set('react-dom/client$', '@tarojs/react');
@@ -555,14 +508,14 @@ function setAlias$2(ctx, framework, chain) {
555
508
  if (!isProd && ((_a = config.harmony) === null || _a === void 0 ? void 0 : _a.debugReact) !== true) {
556
509
  // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积
557
510
  // 兼容pnpm workspace
558
- const reactModulePath = require.resolve('react', { paths: [process.cwd()] });
511
+ const reactModulePath = helper.resolveSync('react', resolveOptions);
559
512
  const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js');
560
513
  alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js');
561
514
  alias.set('react$', newFilePath);
562
515
  alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js');
563
516
  // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。
564
517
  // Why writeJson? prebundle will load package.json via readFile to check exports property.
565
- const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] });
518
+ const reactPkgPath = helper.resolveSync('react/package.json', resolveOptions);
566
519
  if (reactPkgPath) {
567
520
  const reactPkg = require('react/package.json');
568
521
  const reactVersion = reactPkg.version || '';
@@ -578,7 +531,9 @@ function setAlias$2(ctx, framework, chain) {
578
531
  }
579
532
  function setLoader$1(framework, chain) {
580
533
  chain.plugin('mainPlugin').tap((args) => {
581
- args[0].loaderMeta = getLoaderMeta(framework);
534
+ var _a;
535
+ (_a = args[0]).loaderMeta || (_a.loaderMeta = {});
536
+ Object.assign(args[0].loaderMeta, getLoaderMeta(framework));
582
537
  return args;
583
538
  });
584
539
  }
@@ -591,6 +546,11 @@ function setAlias$1(ctx, framework, chain) {
591
546
  var _a;
592
547
  const config = ctx.initialConfig;
593
548
  const alias = chain.resolve.alias;
549
+ const mainFields = ['unpkg', ...helper.defaultMainFields];
550
+ const resolveOptions = {
551
+ basedir: process.cwd(),
552
+ mainFields,
553
+ };
594
554
  if (framework === 'react') {
595
555
  alias.set('react-dom$', '@tarojs/react');
596
556
  alias.set('react-dom/client$', '@tarojs/react');
@@ -599,14 +559,14 @@ function setAlias$1(ctx, framework, chain) {
599
559
  if (!isProd && ((_a = config.mini) === null || _a === void 0 ? void 0 : _a.debugReact) !== true) {
600
560
  // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积
601
561
  // 兼容pnpm workspace
602
- const reactModulePath = require.resolve('react', { paths: [process.cwd()] });
562
+ const reactModulePath = helper.resolveSync('react', resolveOptions);
603
563
  const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js');
604
564
  alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js');
605
565
  alias.set(/^(?!.*mobx-react$).*react$/, newFilePath);
606
566
  alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js');
607
567
  // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。
608
568
  // Why writeJson? prebundle will load package.json via readFile to check exports property.
609
- const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] });
569
+ const reactPkgPath = helper.resolveSync('react/package.json', resolveOptions);
610
570
  if (reactPkgPath) {
611
571
  const reactPkg = require('react/package.json');
612
572
  const reactVersion = reactPkg.version || '';
@@ -622,13 +582,15 @@ function setAlias$1(ctx, framework, chain) {
622
582
  }
623
583
  function setLoader(framework, chain) {
624
584
  chain.plugin('miniPlugin').tap((args) => {
625
- args[0].loaderMeta = getLoaderMeta(framework);
585
+ var _a;
586
+ (_a = args[0]).loaderMeta || (_a.loaderMeta = {});
587
+ Object.assign(args[0].loaderMeta, getLoaderMeta(framework));
626
588
  return args;
627
589
  });
628
590
  }
629
591
 
630
592
  function isReactLike(framework = 'react') {
631
- return ['react', 'preact', 'nerv', 'solid'].includes(framework);
593
+ return ['react', 'preact'].includes(framework);
632
594
  }
633
595
  var index = (ctx) => {
634
596
  const { framework = 'react' } = ctx.initialConfig;
@@ -637,11 +599,6 @@ var index = (ctx) => {
637
599
  ctx.modifyWebpackChain(({ chain }) => {
638
600
  // 通用
639
601
  setAlias(framework, chain);
640
- chain.plugin('definePlugin').tap((args) => {
641
- const config = args[0];
642
- config.__TARO_FRAMEWORK__ = `"${framework}"`;
643
- return args;
644
- });
645
602
  if (process.env.TARO_PLATFORM === 'web') {
646
603
  // H5
647
604
  modifyH5WebpackChain(ctx, framework, chain);
@@ -684,13 +641,7 @@ var index = (ctx) => {
684
641
  contents: require('./api-loader')(content),
685
642
  };
686
643
  });
687
- build.onLoad({ filter: /taro-platform-harmony-hybrid[\\/]dist[\\/]api[\\/]apis[\\/]taro/ }, ({ path }) => {
688
- const content = helper.fs.readFileSync(path).toString();
689
- return {
690
- contents: require('./api-loader')(content)
691
- };
692
- });
693
- },
644
+ }
694
645
  };
695
646
  prebundleOptions.esbuild || (prebundleOptions.esbuild = {});
696
647
  const esbuildConfig = prebundleOptions.esbuild;
@@ -718,17 +669,11 @@ var index = (ctx) => {
718
669
  };
719
670
  function setAlias(framework, chain) {
720
671
  const alias = chain.resolve.alias;
721
- switch (framework) {
722
- case 'preact':
723
- alias.set('react', 'preact/compat');
724
- alias.set('react-dom/test-utils', 'preact/test-utils');
725
- alias.set('react-dom', 'preact/compat');
726
- alias.set('react/jsx-runtime', 'preact/jsx-runtime');
727
- break;
728
- case 'nerv':
729
- alias.set('react$', 'nervjs');
730
- alias.set('react-dom$', 'nervjs');
731
- break;
672
+ if (framework === 'preact') {
673
+ alias.set('react', 'preact/compat');
674
+ alias.set('react-dom/test-utils', 'preact/test-utils');
675
+ alias.set('react-dom', 'preact/compat');
676
+ alias.set('react/jsx-runtime', 'preact/jsx-runtime');
732
677
  }
733
678
  }
734
679
  function VitePresetPlugin(framework) {
@@ -763,16 +708,6 @@ function viteCommonPlugin(framework) {
763
708
  ]
764
709
  : [];
765
710
  return {
766
- optimizeDeps: {
767
- esbuildOptions: {
768
- define: {
769
- __TARO_FRAMEWORK__: `"${framework}"`
770
- }
771
- }
772
- },
773
- define: {
774
- __TARO_FRAMEWORK__: `"${framework}"`,
775
- },
776
711
  resolve: {
777
712
  alias,
778
713
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/api-loader.ts","../src/loader-meta.ts","../src/vite.h5.ts","../src/vite.harmony.ts","../src/vite.mini.ts","../src/webpack.h5.ts","../src/webpack.harmony.ts","../src/webpack.mini.ts","../src/index.ts"],"sourcesContent":["export default function (str: string) {\n return `import {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n} from '@tarojs/plugin-framework-react/dist/runtime'\n${str}\n\ntaro.useAddToFavorites = useAddToFavorites\ntaro.useDidHide = useDidHide\ntaro.useDidShow = useDidShow\ntaro.useError = useError\ntaro.useLaunch = useLaunch\ntaro.useLoad = useLoad\ntaro.useOptionMenuClick = useOptionMenuClick\ntaro.usePageNotFound = usePageNotFound\ntaro.usePageScroll = usePageScroll\ntaro.usePullDownRefresh = usePullDownRefresh\ntaro.usePullIntercept = usePullIntercept\ntaro.useReachBottom = useReachBottom\ntaro.useReady = useReady\ntaro.useResize = useResize\ntaro.useRouter = useRouter\ntaro.useSaveExitState = useSaveExitState\ntaro.useShareAppMessage = useShareAppMessage\ntaro.useShareTimeline = useShareTimeline\ntaro.useTabItemTap = useTabItemTap\ntaro.useTitleClick = useTitleClick\ntaro.useScope = useScope\ntaro.useUnhandledRejection = useUnhandledRejection\ntaro.useUnload = useUnload\n\nexport {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n}\n`\n}\n","import * as acorn from 'acorn'\nimport * as walk from 'acorn-walk'\n\nimport { Frameworks } from './index'\n\nimport type { ILoaderMeta } from '@tarojs/taro/types/compile/config/plugin'\n\nfunction addConfig (source) {\n const configsMap = {\n enableShareAppMessage: ['onShareAppMessage', 'useShareAppMessage'],\n enableShareTimeline: ['onShareTimeline', 'useShareTimeline']\n }\n const ast = acorn.parse(source, {\n ecmaVersion: 'latest',\n sourceType: 'module'\n })\n\n const additionConfig: Record<string, any> = {}\n\n function check (name: string) {\n Object.keys(configsMap).forEach(configName => {\n const apis: string[] = configsMap[configName]\n if (apis.includes(name)) {\n additionConfig[configName] = true\n }\n })\n }\n\n walk.simple(ast, {\n FunctionExpression (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n FunctionDeclaration (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n CallExpression (node: any) {\n const { callee } = node\n if (callee.type === 'Identifier') {\n check(callee.name)\n } else if (callee.type === 'MemberExpression') {\n if (callee.property.type === 'Identifier') {\n check(callee.property.name)\n } else if (callee.property.type === 'Literal') {\n check(callee.property.value)\n }\n }\n node.arguments.forEach(item => {\n if (item.type === 'Literal' && item.value) {\n check(item.value)\n }\n })\n }\n })\n\n return additionConfig\n}\n\nconst nervMeta = {\n importFrameworkStatement: `\nimport Nerv from 'nervjs';\n`,\n mockAppStatement: `\nclass App extends Nerv.Component {\n render () {\n return this.props.children\n }\n}\n`,\n frameworkArgs: 'Nerv, Nerv, config',\n importFrameworkName: 'Nerv'\n}\n\nexport function getLoaderMeta (framework: Frameworks): ILoaderMeta {\n const loaderMeta = {\n importFrameworkStatement: `\nimport * as React from 'react'\nimport ReactDOM from 'react-dom'\n`,\n mockAppStatement: `\nclass App extends React.Component {\n render () {\n return this.props.children\n }\n}\n`,\n frameworkArgs: 'React, ReactDOM, config',\n creator: 'createReactApp',\n creatorLocation: '@tarojs/plugin-framework-react/dist/runtime',\n importFrameworkName: 'React',\n extraImportForWeb: '',\n execBeforeCreateWebApp: '',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n }\n if (framework === 'nerv') {\n Object.assign(loaderMeta, nervMeta)\n }\n\n if (process.env.TARO_PLATFORM === 'web') {\n if (framework === 'react') {\n const react = require('react')\n const majorVersion = Number((react.version || '18').split('.')[0])\n if ( majorVersion >= 18) {\n // Note: In react 18 or above, should using react-dom/client\n loaderMeta.importFrameworkStatement = loaderMeta.importFrameworkStatement.replace('\\'react-dom\\'', '\\'react-dom/client\\'')\n loaderMeta.extraImportForWeb += `import { findDOMNode, render, unstable_batchedUpdates } from 'react-dom'\\n`\n loaderMeta.execBeforeCreateWebApp += `Object.assign(ReactDOM, { findDOMNode, render, unstable_batchedUpdates })\\n`\n }\n }\n }\n return loaderMeta\n}\n","import { fs, REG_TARO_H5_RUNTIME_API } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport apiLoader from './api-loader'\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function h5iVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n setTaroApi(),\n esbuildExclude(framework)\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n function customizer (object = '', sources = '') {\n if ([object, sources].every(e => typeof e === 'string')) return object + sources\n }\n const { runnerUtils } = ctx\n const { getViteH5CompilerContext } = runnerUtils\n return {\n name: 'taro-react:loader-meta',\n async buildStart () {\n const viteCompilerContext = await getViteH5CompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = mergeWith(\n getLoaderMeta(framework), viteCompilerContext.loaderMeta, customizer\n )\n }\n }\n }\n}\n\nfunction setTaroApi (): PluginOption {\n // dev 环境通过 esbuild 来做; pro 环境通过 rollup load 钩子来做;因为生产环境不会走 esbuild\n return {\n name: 'taro-react:process-import-taro',\n enforce: 'pre',\n config: () => ({\n optimizeDeps: {\n esbuildOptions: {\n plugins: [\n {\n name: 'taro:react-api',\n setup (build) {\n build.onLoad({ filter: REG_TARO_H5_RUNTIME_API }, async (args) => {\n const input = await fs.readFile(args.path, 'utf8')\n return {\n contents: apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n }\n })\n },\n }\n ]\n }\n },\n }),\n async load (id) {\n if (process.env.NODE_ENV === 'production' && REG_TARO_H5_RUNTIME_API.test(id)) {\n try {\n const input = await fs.readFile(id, 'utf8')\n return apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n } catch (_) {\n return null\n }\n }\n }\n }\n}\n\n// todo 后面看看能否把 preact 改为虚拟模块\nfunction esbuildExclude (framework: Frameworks): PluginOption {\n if (framework !== 'preact') return null\n return {\n name: 'taro-react:esvuild-exclude',\n enforce: 'pre',\n config: ()=>({\n optimizeDeps: {\n exclude: ['react', 'preact']\n }\n })\n }\n}\n","import { fs } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function harmonyVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteHarmonyCompilerContext } = runnerUtils\n const viteCompilerContext = getViteHarmonyCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = getLoaderMeta(framework)\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' }\n ]\n\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.harmony?.debugReact !== true && !isHarmony) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' })\n alias.push({ find: /react$/, replacement: 'react/cjs/react.production.min.js' })\n alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' })\n alias.push({ find: /react\\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' })\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] })\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { fs } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function miniVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteMiniCompilerContext } = runnerUtils\n const viteCompilerContext = getViteMiniCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = getLoaderMeta(framework)\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' }\n ]\n\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.mini?.debugReact !== true && !isHarmony) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' })\n alias.push({ find: /^(?!.*mobx-react$).*react$/, replacement: 'react/cjs/react.production.min.js' })\n alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' })\n alias.push({ find: /react\\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' })\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] })\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { REG_TARO_H5 } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type Chain from 'webpack-chain'\nimport type { Frameworks } from './index'\n\nexport function modifyH5WebpackChain (ctx: IPluginContext, framework: Frameworks, chain: Chain) {\n setLoader(framework, chain)\n setPlugin(ctx, framework, chain)\n\n const { isBuildNativeComp = false } = ctx.runOpts?.options || {}\n const externals: Record<string, { [externalType: string]: string } | string> = {}\n if (isBuildNativeComp) {\n // Note: 该模式不支持 prebundle 优化,不必再处理\n externals.react = {\n commonjs: 'react',\n commonjs2: 'react',\n amd: 'react',\n root: 'React'\n }\n externals['react-dom'] = {\n commonjs: 'react-dom',\n commonjs2: 'react-dom',\n amd: 'react-dom',\n root: 'ReactDOM'\n }\n if (framework === 'preact') {\n externals.preact = 'preact'\n }\n\n chain.merge({\n externalsType: 'umd'\n })\n }\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-h5': {\n test: REG_TARO_H5,\n loader: require.resolve('./api-loader'),\n },\n },\n },\n })\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-harmony-hybrid': {\n test: /taro-platform-harmony-hybrid[\\\\/]dist[\\\\/]api[\\\\/]apis[\\\\/]taro/,\n loader: require.resolve('./api-loader')\n }\n }\n },\n })\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-harmony-hybrid': {\n test: /taro-platform-harmony-hybrid[\\\\/]dist[\\\\/]api[\\\\/]apis[\\\\/]taro/,\n loader: require.resolve('./api-loader')\n }\n }\n },\n })\n}\n\nfunction setLoader(framework: Frameworks, chain) {\n function customizer(object = '', sources = '') {\n if ([object, sources].every((e) => typeof e === 'string')) return object + sources\n }\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = mergeWith(getLoaderMeta(framework), args[0].loaderMeta, customizer)\n return args\n })\n}\n\nfunction setPlugin(ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.h5?.devServer?.hot !== false) {\n // 默认开启 fast-refresh\n if (framework === 'react') {\n chain.plugin('fastRefreshPlugin').use(require('@pmmmwh/react-refresh-webpack-plugin'))\n } else if (framework === 'preact') {\n chain.plugin('hotModuleReplacementPlugin').use(require('webpack').HotModuleReplacementPlugin)\n chain.plugin('fastRefreshPlugin').use(require('@prefresh/webpack'))\n }\n }\n}\n","import { fs } from '@tarojs/helper'\nimport path from 'path'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyHarmonyWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.harmony?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = require.resolve('react', { paths: [process.cwd()] })\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set('react$', newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] })\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","import { fs } from '@tarojs/helper'\nimport path from 'path'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyMiniWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.mini?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = require.resolve('react', { paths: [process.cwd()] })\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set(/^(?!.*mobx-react$).*react$/, newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = require.resolve('react/package.json', { paths: [process.cwd()] })\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('miniPlugin').tap((args) => {\n args[0].loaderMeta = getLoaderMeta(framework)\n return args\n })\n}\n","import { fs, REG_TARO_H5 } from '@tarojs/helper'\nimport { isString } from '@tarojs/shared'\n\nimport { h5iVitePlugin } from './vite.h5'\nimport { harmonyVitePlugin } from './vite.harmony'\nimport { miniVitePlugin } from './vite.mini'\nimport { modifyH5WebpackChain } from './webpack.h5'\nimport { modifyHarmonyWebpackChain } from './webpack.harmony'\nimport { modifyMiniWebpackChain } from './webpack.mini'\n\nimport type { esbuild } from '@tarojs/helper'\nimport type { IPluginContext } from '@tarojs/service'\nimport type { IProjectConfig } from '@tarojs/taro/types/compile'\nimport type { PluginOption } from 'vite'\n\nexport type Frameworks = 'react' | 'preact' | 'nerv'\n\nexport function isReactLike(framework: IProjectConfig['framework'] = 'react'): framework is Frameworks {\n return ['react', 'preact', 'nerv', 'solid'].includes(framework)\n}\n\nexport default (ctx: IPluginContext) => {\n const { framework = 'react' } = ctx.initialConfig\n\n if (!isReactLike(framework)) return\n\n ctx.modifyWebpackChain(({ chain }) => {\n // 通用\n setAlias(framework, chain)\n chain.plugin('definePlugin').tap((args) => {\n const config = args[0]\n config.__TARO_FRAMEWORK__ = `\"${framework}\"`\n return args\n })\n\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n modifyH5WebpackChain(ctx, framework, chain)\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n modifyHarmonyWebpackChain(ctx, framework, chain)\n } else {\n // 小程序\n modifyMiniWebpackChain(ctx, framework, chain)\n }\n })\n\n ctx.modifyRunnerOpts(({ opts }) => {\n if (!opts?.compiler) return\n\n if (isString(opts.compiler)) {\n opts.compiler = {\n type: opts.compiler,\n }\n }\n\n const { compiler } = opts\n if (compiler.type === 'webpack5') {\n // 提供给 webpack5 依赖预编译收集器的第三方依赖\n const deps = ['react', 'react-dom', 'react/jsx-runtime', '@tarojs/plugin-framework-react/dist/runtime']\n compiler.prebundle ||= {}\n const prebundleOptions = compiler.prebundle\n prebundleOptions.include ||= []\n prebundleOptions.include = prebundleOptions.include.concat(deps)\n prebundleOptions.exclude ||= []\n prebundleOptions.exclude.push(/mobx/) // 依赖会对 webpack 修改,默认排除\n if (prebundleOptions.enable === false) return\n\n const taroReactPlugin: esbuild.Plugin = {\n name: 'taroReactPlugin',\n setup(build) {\n build.onLoad({ filter: REG_TARO_H5 }, ({ path }) => {\n const content = fs.readFileSync(path).toString()\n return {\n contents: require('./api-loader')(content),\n }\n })\n build.onLoad({ filter: /taro-platform-harmony-hybrid[\\\\/]dist[\\\\/]api[\\\\/]apis[\\\\/]taro/ }, ({ path }) => {\n const content = fs.readFileSync(path).toString()\n return {\n contents: require('./api-loader')(content)\n }\n })\n },\n }\n\n prebundleOptions.esbuild ||= {}\n const esbuildConfig = prebundleOptions.esbuild\n esbuildConfig.plugins ||= []\n esbuildConfig.plugins.push(taroReactPlugin)\n } else if (compiler.type === 'vite') {\n compiler.vitePlugins ||= []\n compiler.vitePlugins.push(viteCommonPlugin(framework))\n compiler.vitePlugins.push(VitePresetPlugin(framework))\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n compiler.vitePlugins.push(h5iVitePlugin(ctx, framework))\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n compiler.vitePlugins.push(harmonyVitePlugin(ctx, framework))\n } else {\n // 小程序\n compiler.vitePlugins.push(miniVitePlugin(ctx, framework))\n }\n }\n })\n}\n\nfunction setAlias(framework: Frameworks, chain) {\n const alias = chain.resolve.alias\n\n switch (framework) {\n case 'preact':\n alias.set('react', 'preact/compat')\n alias.set('react-dom/test-utils', 'preact/test-utils')\n alias.set('react-dom', 'preact/compat')\n alias.set('react/jsx-runtime', 'preact/jsx-runtime')\n break\n case 'nerv':\n alias.set('react$', 'nervjs')\n alias.set('react-dom$', 'nervjs')\n break\n }\n}\n\nfunction VitePresetPlugin (framework: Frameworks): PluginOption {\n return framework === 'preact'\n ? require('@preact/preset-vite').preact({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n : require('@vitejs/plugin-react').default({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n}\n\nfunction viteCommonPlugin(framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:common',\n config() {\n const alias =\n framework === 'preact'\n ? [\n { find: 'react', replacement: 'preact/compat' },\n { find: 'react-dom/test-utils', replacement: 'preact/test-utils' },\n { find: 'react-dom', replacement: 'preact/compat' },\n { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' },\n ]\n : []\n\n return {\n optimizeDeps:{\n esbuildOptions:{\n define: {\n __TARO_FRAMEWORK__: `\"${framework}\"`\n }\n }\n },\n define: {\n __TARO_FRAMEWORK__: `\"${framework}\"`,\n },\n resolve: {\n alias,\n },\n }\n },\n }\n}\n"],"names":["acorn","walk","injectLoaderMeta","mergeWith","REG_TARO_H5_RUNTIME_API","fs","aliasPlugin","setLoader","REG_TARO_H5","setAlias","isString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAc,kBAAA,EAAW,GAAW,EAAA;IAClC,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;EAyBP,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDJ,CAAA;AACD;;ACvEA,SAAS,SAAS,CAAE,MAAM,EAAA;AACxB,IAAA,MAAM,UAAU,GAAG;AACjB,QAAA,qBAAqB,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AAClE,QAAA,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;KAC7D,CAAA;AACD,IAAA,MAAM,GAAG,GAAGA,gBAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9B,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,UAAU,EAAE,QAAQ;AACrB,KAAA,CAAC,CAAA;IAEF,MAAM,cAAc,GAAwB,EAAE,CAAA;IAE9C,SAAS,KAAK,CAAE,IAAY,EAAA;QAC1B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;AAC3C,YAAA,MAAM,IAAI,GAAa,UAAU,CAAC,UAAU,CAAC,CAAA;AAC7C,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACvB,gBAAA,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;AAClC,aAAA;AACH,SAAC,CAAC,CAAA;KACH;AAED,IAAAC,eAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AACf,QAAA,kBAAkB,CAAE,IAAS,EAAA;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,OAAM;AACrC,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;SACpB;AACD,QAAA,mBAAmB,CAAE,IAAS,EAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,OAAM;AACrC,YAAA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;SACpB;AACD,QAAA,cAAc,CAAE,IAAS,EAAA;AACvB,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;AACvB,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE;AAChC,gBAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AACnB,aAAA;AAAM,iBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE;AAC7C,gBAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AACzC,oBAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,iBAAA;AAAM,qBAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7C,oBAAA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC7B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAG;gBAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;AACzC,oBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClB,iBAAA;AACH,aAAC,CAAC,CAAA;SACH;AACF,KAAA,CAAC,CAAA;AAEF,IAAA,OAAO,cAAc,CAAA;AACvB,CAAC;AAED,MAAM,QAAQ,GAAG;AACf,IAAA,wBAAwB,EAAE,CAAA;;AAE3B,CAAA;AACC,IAAA,gBAAgB,EAAE,CAAA;;;;;;AAMnB,CAAA;AACC,IAAA,aAAa,EAAE,oBAAoB;AACnC,IAAA,mBAAmB,EAAE,MAAM;CAC5B,CAAA;AAEK,SAAU,aAAa,CAAE,SAAqB,EAAA;AAClD,IAAA,MAAM,UAAU,GAAG;AACjB,QAAA,wBAAwB,EAAE,CAAA;;;AAG7B,CAAA;AACG,QAAA,gBAAgB,EAAE,CAAA;;;;;;AAMrB,CAAA;AACG,QAAA,aAAa,EAAE,yBAAyB;AACxC,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,eAAe,EAAE,6CAA6C;AAC9D,QAAA,mBAAmB,EAAE,OAAO;AAC5B,QAAA,iBAAiB,EAAE,EAAE;AACrB,QAAA,sBAAsB,EAAE,EAAE;QAC1B,YAAY,CAAE,MAAM,EAAE,MAAM,EAAA;YAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;SACzC;KACF,CAAA;IACD,IAAI,SAAS,KAAK,MAAM,EAAE;AACxB,QAAA,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AACpC,KAAA;AAED,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;QACvC,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,YAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAClE,IAAK,YAAY,IAAI,EAAE,EAAE;;AAEvB,gBAAA,UAAU,CAAC,wBAAwB,GAAG,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAA;AAC1H,gBAAA,UAAU,CAAC,iBAAiB,IAAI,CAAA,0EAAA,CAA4E,CAAA;AAC5G,gBAAA,UAAU,CAAC,sBAAsB,IAAI,CAAA,2EAAA,CAA6E,CAAA;AACnH,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,OAAO,UAAU,CAAA;AACnB;;ACxGgB,SAAA,aAAa,CAAE,GAAmB,EAAE,SAAqB,EAAA;IACvE,OAAO;AACL,QAAAC,kBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAChC,QAAA,UAAU,EAAE;QACZ,cAAc,CAAC,SAAS,CAAC;KAC1B,CAAA;AACH,CAAC;AAED,SAASA,kBAAgB,CAAE,GAAmB,EAAE,SAAqB,EAAA;IACnE,SAAS,UAAU,CAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAA;AAC5C,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,MAAM,GAAG,OAAO,CAAA;KACjF;AACD,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;AAC3B,IAAA,MAAM,EAAE,wBAAwB,EAAE,GAAG,WAAW,CAAA;IAChD,OAAO;AACL,QAAA,IAAI,EAAE,wBAAwB;QACxB,UAAU,GAAA;;AACd,gBAAA,MAAM,mBAAmB,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAA;AAChE,gBAAA,IAAI,mBAAmB,EAAE;AACvB,oBAAA,mBAAmB,CAAC,UAAU,GAAGC,gBAAS,CACxC,aAAa,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,UAAU,EAAE,UAAU,CACrE,CAAA;AACF,iBAAA;aACF,CAAA,CAAA;AAAA,SAAA;KACF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,GAAA;;IAEjB,OAAO;AACL,QAAA,IAAI,EAAE,gCAAgC;AACtC,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,MAAM,EAAE,OAAO;AACb,YAAA,YAAY,EAAE;AACZ,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;AACP,wBAAA;AACE,4BAAA,IAAI,EAAE,gBAAgB;AACtB,4BAAA,KAAK,CAAE,KAAK,EAAA;AACV,gCAAA,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAEC,8BAAuB,EAAE,EAAE,CAAO,IAAI,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC/D,oCAAA,MAAM,KAAK,GAAG,MAAMC,SAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;oCAClD,OAAO;wCACL,QAAQ,EAAE,SAAS,CAAC,KAAK,GAAG,IAAI,GAAG,8BAA8B,CAAC;qCACnE,CAAA;iCACF,CAAA,CAAC,CAAA;6BACH;AACF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;AACI,QAAA,IAAI,CAAE,EAAE,EAAA;;AACZ,gBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAID,8BAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAC7E,IAAI;wBACF,MAAM,KAAK,GAAG,MAAMC,SAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;wBAC3C,OAAO,SAAS,CAAC,KAAK,GAAG,IAAI,GAAG,8BAA8B,CAAC,CAAA;AAChE,qBAAA;AAAC,oBAAA,OAAO,CAAC,EAAE;AACV,wBAAA,OAAO,IAAI,CAAA;AACZ,qBAAA;AACF,iBAAA;aACF,CAAA,CAAA;AAAA,SAAA;KACF,CAAA;AACH,CAAC;AAED;AACA,SAAS,cAAc,CAAE,SAAqB,EAAA;IAC5C,IAAI,SAAS,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI,CAAA;IACvC,OAAO;AACL,QAAA,IAAI,EAAE,4BAA4B;AAClC,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,MAAM,EAAE,OAAK;AACX,YAAA,YAAY,EAAE;AACZ,gBAAA,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC7B,aAAA;SACF,CAAC;KACH,CAAA;AACH;;AC9EgB,SAAA,iBAAiB,CAAE,GAAmB,EAAE,SAAqB,EAAA;IAC3E,OAAO;AACL,QAAAH,kBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAChC,QAAAI,aAAW,CAAC,GAAG,EAAE,SAAS,CAAC;KAC5B,CAAA;AACH,CAAC;AAED,SAASJ,kBAAgB,CAAE,GAAmB,EAAE,SAAqB,EAAA;IACnE,OAAO;AACL,QAAA,IAAI,EAAE,wBAAwB;QAC9B,UAAU,GAAA;AACR,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;AAC3B,YAAA,MAAM,EAAE,6BAA6B,EAAE,GAAG,WAAW,CAAA;AACrD,YAAA,MAAM,mBAAmB,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAA;AAC/D,YAAA,IAAI,mBAAmB,EAAE;AACvB,gBAAA,mBAAmB,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;AAC1D,aAAA;SACF;KACF,CAAA;AACH,CAAC;AAED,SAASI,aAAW,CAAE,GAAmB,EAAE,SAAqB,EAAA;IAC9D,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO;AACL,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,MAAM,CAAE,MAAM,EAAA;;AACZ,gBAAA,MAAM,KAAK,GAAuD;AAChE,oBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE;iBACrD,CAAA;AAED,gBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,YAAY,CAAA;;gBAE3C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAA;AAC5D,gBAAA,IAAI,CAAC,MAAM,IAAI,CAAA,CAAA,EAAA,GAAA,GAAG,CAAC,aAAa,CAAC,OAAO,0CAAE,UAAU,MAAK,IAAI,IAAI,CAAC,SAAS,EAAE;;AAE3E,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,yDAAyD,EAAE,CAAC,CAAA;AACjH,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAA;AAChF,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAA;AAC5F,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC,CAAA;;;AAIzG,oBAAA,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AACtF,oBAAA,IAAI,YAAY,EAAE;AAChB,wBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;wBAC9C,MAAM,YAAY,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;AAC7C,wBAAA,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;4BACvD,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;AACjD,gCAAA,QAAQ,EAAE,QAAQ;AACnB,6BAAA,CAAC,CAAA;AACF,4BAAAD,SAAE,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;AACxD,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,OAAO;AACL,oBAAA,OAAO,EAAE;wBACP,KAAK;AACN,qBAAA;iBACF,CAAA;aACF;SACF,CAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE,CAAA;AACX;;AChEgB,SAAA,cAAc,CAAE,GAAmB,EAAE,SAAqB,EAAA;IACxE,OAAO;AACL,QAAA,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC;AAChC,QAAA,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;KAC5B,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAE,GAAmB,EAAE,SAAqB,EAAA;IACnE,OAAO;AACL,QAAA,IAAI,EAAE,wBAAwB;QAC9B,UAAU,GAAA;AACR,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAA;AAC3B,YAAA,MAAM,EAAE,0BAA0B,EAAE,GAAG,WAAW,CAAA;AAClD,YAAA,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;AAC5D,YAAA,IAAI,mBAAmB,EAAE;AACvB,gBAAA,mBAAmB,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;AAC1D,aAAA;SACF;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAE,GAAmB,EAAE,SAAqB,EAAA;IAC9D,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO;AACL,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,MAAM,CAAE,MAAM,EAAA;;AACZ,gBAAA,MAAM,KAAK,GAAuD;AAChE,oBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE;iBACrD,CAAA;AAED,gBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,YAAY,CAAA;;gBAE3C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAA;AAC5D,gBAAA,IAAI,CAAC,MAAM,IAAI,CAAA,CAAA,EAAA,GAAA,GAAG,CAAC,aAAa,CAAC,IAAI,0CAAE,UAAU,MAAK,IAAI,IAAI,CAAC,SAAS,EAAE;;AAExE,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,yDAAyD,EAAE,CAAC,CAAA;AACjH,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,WAAW,EAAE,mCAAmC,EAAE,CAAC,CAAA;AACpG,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAA;AAC5F,oBAAA,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC,CAAA;;;AAIzG,oBAAA,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AACtF,oBAAA,IAAI,YAAY,EAAE;AAChB,wBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;wBAC9C,MAAM,YAAY,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;AAC7C,wBAAA,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;4BACvD,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;AACjD,gCAAA,QAAQ,EAAE,QAAQ;AACnB,6BAAA,CAAC,CAAA;AACF,4BAAAA,SAAE,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;AACxD,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAED,OAAO;AACL,oBAAA,OAAO,EAAE;wBACP,KAAK;AACN,qBAAA;iBACF,CAAA;aACF;SACF,CAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE,CAAA;AACX;;SC/DgB,oBAAoB,CAAE,GAAmB,EAAE,SAAqB,EAAE,KAAY,EAAA;;AAC5F,IAAAE,WAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC3B,IAAA,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AAEhC,IAAA,MAAM,EAAE,iBAAiB,GAAG,KAAK,EAAE,GAAG,CAAA,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,KAAI,EAAE,CAAA;IAChE,MAAM,SAAS,GAAgE,EAAE,CAAA;AACjF,IAAA,IAAI,iBAAiB,EAAE;;QAErB,SAAS,CAAC,KAAK,GAAG;AAChB,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,SAAS,EAAE,OAAO;AAClB,YAAA,GAAG,EAAE,OAAO;AACZ,YAAA,IAAI,EAAE,OAAO;SACd,CAAA;QACD,SAAS,CAAC,WAAW,CAAC,GAAG;AACvB,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,IAAI,EAAE,UAAU;SACjB,CAAA;QACD,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,YAAA,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAA;AAC5B,SAAA;QAED,KAAK,CAAC,KAAK,CAAC;AACV,YAAA,aAAa,EAAE,KAAK;AACrB,SAAA,CAAC,CAAA;AACH,KAAA;IAED,KAAK,CAAC,KAAK,CAAC;QACV,SAAS;AACT,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE;AACJ,gBAAA,wBAAwB,EAAE;AACxB,oBAAA,IAAI,EAAEC,kBAAW;AACjB,oBAAA,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;AACxC,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,CAAC;QACV,SAAS;AACT,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE;AACJ,gBAAA,oCAAoC,EAAE;AACpC,oBAAA,IAAI,EAAE,iEAAiE;AACvE,oBAAA,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;AACxC,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,CAAC;QACV,SAAS;AACT,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE;AACJ,gBAAA,oCAAoC,EAAE;AACpC,oBAAA,IAAI,EAAE,iEAAiE;AACvE,oBAAA,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;AACxC,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,CAAC,CAAA;AACJ,CAAC;AAED,SAASD,WAAS,CAAC,SAAqB,EAAE,KAAK,EAAA;IAC7C,SAAS,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,CAAC;YAAE,OAAO,MAAM,GAAG,OAAO,CAAA;KACnF;IACD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;QACtC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAGJ,gBAAS,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AACxF,QAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,GAAmB,EAAE,SAAqB,EAAE,KAAK,EAAA;;AAClE,IAAA,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAA;AAChC,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;AACtC,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,KAAK,YAAY,CAAA;AAClD,IAAA,IAAI,CAAC,MAAM,IAAI,CAAA,MAAA,CAAA,EAAA,GAAA,MAAM,CAAC,EAAE,0CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,GAAG,MAAK,KAAK,EAAE;;QAElD,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,YAAA,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,CAAA;AACvF,SAAA;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;AACjC,YAAA,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAA;AAC7F,YAAA,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAA;AACpE,SAAA;AACF,KAAA;AACH;;SC1FgB,yBAAyB,CAAE,GAAmB,EAAE,SAAqB,EAAE,KAAK,EAAA;AAC1F,IAAAM,UAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AAC/B,IAAAF,WAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,SAASE,UAAQ,CAAE,GAAmB,EAAE,SAAqB,EAAE,KAAK,EAAA;;AAClE,IAAA,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAA;AAChC,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA;IAEjC,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,QAAA,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;AACxC,QAAA,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AAC/C,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;AACtC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,KAAK,YAAY,CAAA;AAClD,QAAA,IAAI,CAAC,MAAM,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,MAAK,IAAI,EAAE;;;AAGlD,YAAA,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AAC5E,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAA;AAE9F,YAAA,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,yDAAyD,CAAC,CAAA;AACzF,YAAA,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AAChC,YAAA,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,+CAA+C,CAAC,CAAA;;;AAIhF,YAAA,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AACtF,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAC9C,gBAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAA;gBAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;oBACrD,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;AACjD,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA,CAAC,CAAA;AACF,oBAAAJ,SAAE,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;AACxD,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAASE,WAAS,CAAE,SAAqB,EAAE,KAAK,EAAA;IAC9C,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;QACtC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;AAC7C,QAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;AACJ;;SC9CgB,sBAAsB,CAAE,GAAmB,EAAE,SAAqB,EAAE,KAAK,EAAA;AACvF,IAAAE,UAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AAC/B,IAAA,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,SAASA,UAAQ,CAAE,GAAmB,EAAE,SAAqB,EAAE,KAAK,EAAA;;AAClE,IAAA,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAA;AAChC,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA;IAEjC,IAAI,SAAS,KAAK,OAAO,EAAE;AACzB,QAAA,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;AACxC,QAAA,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AAC/C,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;AACtC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,KAAK,YAAY,CAAA;AAClD,QAAA,IAAI,CAAC,MAAM,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,MAAK,IAAI,EAAE;;;AAG/C,YAAA,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AAC5E,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAA;AAE9F,YAAA,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,yDAAyD,CAAC,CAAA;AACzF,YAAA,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAA;AACpD,YAAA,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,+CAA+C,CAAC,CAAA;;;AAIhF,YAAA,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;AACtF,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAC9C,gBAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAA;gBAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;oBACrD,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE;AACjD,wBAAA,QAAQ,EAAE,QAAQ;AACnB,qBAAA,CAAC,CAAA;AACF,oBAAAJ,SAAE,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;AACxD,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAE,SAAqB,EAAE,KAAK,EAAA;IAC9C,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;QACtC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;AAC7C,QAAA,OAAO,IAAI,CAAA;AACb,KAAC,CAAC,CAAA;AACJ;;ACrCgB,SAAA,WAAW,CAAC,SAAA,GAAyC,OAAO,EAAA;AAC1E,IAAA,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACjE,CAAC;AAED,YAAe,CAAC,GAAmB,KAAI;IACrC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC,aAAa,CAAA;AAEjD,IAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;QAAE,OAAM;IAEnC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;;AAEnC,QAAA,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAC1B,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACxC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACtB,YAAA,MAAM,CAAC,kBAAkB,GAAG,CAAI,CAAA,EAAA,SAAS,GAAG,CAAA;AAC5C,YAAA,OAAO,IAAI,CAAA;AACb,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;;AAEvC,YAAA,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AAC5C,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;;AAExF,YAAA,yBAAyB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AACjD,SAAA;AAAM,aAAA;;AAEL,YAAA,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;AAC9C,SAAA;AACH,KAAC,CAAC,CAAA;IAEF,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;QAChC,IAAI,EAAC,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,QAAQ,CAAA;YAAE,OAAM;AAE3B,QAAA,IAAIK,eAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,CAAC,QAAQ,GAAG;gBACd,IAAI,EAAE,IAAI,CAAC,QAAQ;aACpB,CAAA;AACF,SAAA;AAED,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;AACzB,QAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;;YAEhC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,6CAA6C,CAAC,CAAA;YACvG,QAAQ,CAAC,SAAS,KAAlB,QAAQ,CAAC,SAAS,GAAK,EAAE,CAAA,CAAA;AACzB,YAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAA;YAC3C,gBAAgB,CAAC,OAAO,KAAxB,gBAAgB,CAAC,OAAO,GAAK,EAAE,CAAA,CAAA;YAC/B,gBAAgB,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAChE,gBAAgB,CAAC,OAAO,KAAxB,gBAAgB,CAAC,OAAO,GAAK,EAAE,CAAA,CAAA;YAC/B,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AACrC,YAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,KAAK;gBAAE,OAAM;AAE7C,YAAA,MAAM,eAAe,GAAmB;AACtC,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,KAAK,CAAC,KAAK,EAAA;AACT,oBAAA,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAEF,kBAAW,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAI;wBACjD,MAAM,OAAO,GAAGH,SAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;wBAChD,OAAO;AACL,4BAAA,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;yBAC3C,CAAA;AACH,qBAAC,CAAC,CAAA;AACF,oBAAA,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,iEAAiE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAI;wBACvG,MAAM,OAAO,GAAGA,SAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;wBAChD,OAAO;AACL,4BAAA,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;yBAC3C,CAAA;AACH,qBAAC,CAAC,CAAA;iBACH;aACF,CAAA;YAED,gBAAgB,CAAC,OAAO,KAAxB,gBAAgB,CAAC,OAAO,GAAK,EAAE,CAAA,CAAA;AAC/B,YAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAA;YAC9C,aAAa,CAAC,OAAO,KAArB,aAAa,CAAC,OAAO,GAAK,EAAE,CAAA,CAAA;AAC5B,YAAA,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AAC5C,SAAA;AAAM,aAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE;YACnC,QAAQ,CAAC,WAAW,KAApB,QAAQ,CAAC,WAAW,GAAK,EAAE,CAAA,CAAA;YAC3B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;YACtD,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAA;AACtD,YAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,KAAK,EAAE;;AAEvC,gBAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;AACzD,aAAA;AAAM,iBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;;AAExF,gBAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;AAC7D,aAAA;AAAM,iBAAA;;AAEL,gBAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;AAC1D,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,QAAQ,CAAC,SAAqB,EAAE,KAAK,EAAA;AAC5C,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA;AAEjC,IAAA,QAAQ,SAAS;AACf,QAAA,KAAK,QAAQ;AACX,YAAA,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;AACnC,YAAA,KAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAA;AACtD,YAAA,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;AACvC,YAAA,KAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAA;YACpD,MAAK;AACP,QAAA,KAAK,MAAM;AACT,YAAA,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC7B,YAAA,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;YACjC,MAAK;AACR,KAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAE,SAAqB,EAAA;IAC9C,OAAO,SAAS,KAAK,QAAQ;AAC3B,UAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC;AACtC,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE;AACP,oBAAA,CAAC,mCAAmC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvD,oBAAA,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,iBAAA;AACF,aAAA;SACF,CAAC;AACF,UAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC;AACxC,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE;AACP,oBAAA,CAAC,mCAAmC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACvD,oBAAA,CAAC,yCAAyC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAA;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAqB,EAAA;IAC7C,OAAO;AACL,QAAA,IAAI,EAAE,mBAAmB;QACzB,MAAM,GAAA;AACJ,YAAA,MAAM,KAAK,GACT,SAAS,KAAK,QAAQ;AACpB,kBAAE;AACA,oBAAA,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE;AAC/C,oBAAA,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,mBAAmB,EAAE;AAClE,oBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE;AACnD,oBAAA,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE;AACjE,iBAAA;kBACC,EAAE,CAAA;YAER,OAAO;AACL,gBAAA,YAAY,EAAC;AACX,oBAAA,cAAc,EAAC;AACb,wBAAA,MAAM,EAAE;4BACN,kBAAkB,EAAE,CAAI,CAAA,EAAA,SAAS,CAAG,CAAA,CAAA;AACrC,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,EAAE;oBACN,kBAAkB,EAAE,CAAI,CAAA,EAAA,SAAS,CAAG,CAAA,CAAA;AACrC,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,KAAK;AACN,iBAAA;aACF,CAAA;SACF;KACF,CAAA;AACH;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/api-loader.ts","../src/loader-meta.ts","../src/vite.h5.ts","../src/vite.harmony.ts","../src/vite.mini.ts","../src/webpack.h5.ts","../src/webpack.harmony.ts","../src/webpack.mini.ts","../src/index.ts"],"sourcesContent":["export default function (str: string) {\n return `import {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n} from '@tarojs/plugin-framework-react/dist/runtime'\n${str}\n\ntaro.useAddToFavorites = useAddToFavorites\ntaro.useDidHide = useDidHide\ntaro.useDidShow = useDidShow\ntaro.useError = useError\ntaro.useLaunch = useLaunch\ntaro.useLoad = useLoad\ntaro.useOptionMenuClick = useOptionMenuClick\ntaro.usePageNotFound = usePageNotFound\ntaro.usePageScroll = usePageScroll\ntaro.usePullDownRefresh = usePullDownRefresh\ntaro.usePullIntercept = usePullIntercept\ntaro.useReachBottom = useReachBottom\ntaro.useReady = useReady\ntaro.useResize = useResize\ntaro.useRouter = useRouter\ntaro.useSaveExitState = useSaveExitState\ntaro.useShareAppMessage = useShareAppMessage\ntaro.useShareTimeline = useShareTimeline\ntaro.useTabItemTap = useTabItemTap\ntaro.useTitleClick = useTitleClick\ntaro.useScope = useScope\ntaro.useUnhandledRejection = useUnhandledRejection\ntaro.useUnload = useUnload\n\nexport {\n useAddToFavorites,\n useDidHide,\n useDidShow,\n useError,\n useLaunch,\n useLoad,\n useOptionMenuClick,\n usePageNotFound,\n usePageScroll,\n usePullDownRefresh,\n usePullIntercept,\n useReachBottom,\n useReady,\n useResize,\n useRouter,\n useSaveExitState,\n useShareAppMessage,\n useShareTimeline,\n useTabItemTap,\n useTitleClick,\n useScope,\n useUnhandledRejection,\n useUnload\n}\n`\n}\n","import * as acorn from 'acorn'\nimport * as walk from 'acorn-walk'\n\nimport { Frameworks } from './index'\n\nimport type { ILoaderMeta } from '@tarojs/taro/types/compile/config/plugin'\n\nfunction addConfig (source) {\n const configsMap = {\n enableShareAppMessage: ['onShareAppMessage', 'useShareAppMessage'],\n enableShareTimeline: ['onShareTimeline', 'useShareTimeline']\n }\n const ast = acorn.parse(source, {\n ecmaVersion: 'latest',\n sourceType: 'module'\n })\n\n const additionConfig: Record<string, any> = {}\n\n function check (name: string) {\n Object.keys(configsMap).forEach(configName => {\n const apis: string[] = configsMap[configName]\n if (apis.includes(name)) {\n additionConfig[configName] = true\n }\n })\n }\n\n walk.simple(ast, {\n FunctionExpression (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n FunctionDeclaration (node: any) {\n if (!node.id || !node.id.name) return\n check(node.id.name)\n },\n CallExpression (node: any) {\n const { callee } = node\n if (callee.type === 'Identifier') {\n check(callee.name)\n } else if (callee.type === 'MemberExpression') {\n if (callee.property.type === 'Identifier') {\n check(callee.property.name)\n } else if (callee.property.type === 'Literal') {\n check(callee.property.value)\n }\n }\n node.arguments.forEach(item => {\n if (item.type === 'Literal' && item.value) {\n check(item.value)\n }\n })\n }\n })\n\n return additionConfig\n}\n\nexport function getLoaderMeta (framework: Frameworks): ILoaderMeta {\n const loaderMeta = {\n importFrameworkStatement: `\nimport * as React from 'react'\nimport ReactDOM from 'react-dom'\n`,\n mockAppStatement: `\nclass App extends React.Component {\n render () {\n return this.props.children\n }\n}\n`,\n frameworkArgs: 'React, ReactDOM, config',\n creator: 'createReactApp',\n creatorLocation: '@tarojs/plugin-framework-react/dist/runtime',\n importFrameworkName: 'React',\n extraImportForWeb: '',\n execBeforeCreateWebApp: '',\n modifyConfig (config, source) {\n Object.assign(config, addConfig(source))\n }\n }\n\n if (process.env.TARO_PLATFORM === 'web') {\n if (framework === 'react') {\n const react = require('react')\n const majorVersion = Number((react.version || '18').split('.')[0])\n if (majorVersion >= 18) {\n // Note: In react 18 or above, should using react-dom/client\n loaderMeta.importFrameworkStatement = loaderMeta.importFrameworkStatement.replace('\\'react-dom\\'', '\\'react-dom/client\\'')\n loaderMeta.extraImportForWeb += `import { findDOMNode, render, unstable_batchedUpdates } from 'react-dom'\\n`\n loaderMeta.execBeforeCreateWebApp += `Object.assign(ReactDOM, { findDOMNode, render, unstable_batchedUpdates })\\n`\n }\n }\n }\n return loaderMeta\n}\n","import { fs, REG_TARO_H5_RUNTIME_API } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport apiLoader from './api-loader'\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function h5iVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n setTaroApi(),\n esbuildExclude(framework)\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n function customizer (object = '', sources = '') {\n if ([object, sources].every(e => typeof e === 'string')) return object + sources\n }\n const { runnerUtils } = ctx\n const { getViteH5CompilerContext } = runnerUtils\n return {\n name: 'taro-react:loader-meta',\n async buildStart () {\n const viteCompilerContext = await getViteH5CompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta = mergeWith(\n getLoaderMeta(framework), viteCompilerContext.loaderMeta, customizer\n )\n }\n }\n }\n}\n\nfunction setTaroApi (): PluginOption {\n // dev 环境通过 esbuild 来做; pro 环境通过 rollup load 钩子来做;因为生产环境不会走 esbuild\n return {\n name: 'taro-react:process-import-taro',\n enforce: 'pre',\n config: () => ({\n optimizeDeps: {\n esbuildOptions: {\n plugins: [\n {\n name: 'taro:react-api',\n setup (build) {\n build.onLoad({ filter: REG_TARO_H5_RUNTIME_API }, async (args) => {\n const input = await fs.readFile(args.path, 'utf8')\n return {\n contents: apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n }\n })\n },\n }\n ]\n }\n },\n }),\n async load (id) {\n if (process.env.NODE_ENV === 'production' && REG_TARO_H5_RUNTIME_API.test(id)) {\n try {\n const input = await fs.readFile(id, 'utf8')\n return apiLoader(input + '\\n' + 'const taro = Taro__default\\n')\n } catch (_) {\n return null\n }\n }\n }\n }\n}\n\n// todo 后面看看能否把 preact 改为虚拟模块\nfunction esbuildExclude (framework: Frameworks): PluginOption {\n if (framework !== 'preact') return null\n return {\n name: 'taro-react:esvuild-exclude',\n enforce: 'pre',\n config: () => ({\n optimizeDeps: {\n exclude: ['react', 'preact']\n }\n })\n }\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function harmonyVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteHarmonyCompilerContext } = runnerUtils\n const viteCompilerContext = getViteHarmonyCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta ||= {}\n Object.assign(viteCompilerContext.loaderMeta, getLoaderMeta(framework))\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' },\n ]\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.harmony?.debugReact !== true && !isHarmony) {\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { PluginOption } from 'vite'\nimport type { Frameworks } from './index'\n\nexport function miniVitePlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return [\n injectLoaderMeta(ctx, framework),\n aliasPlugin(ctx, framework),\n ]\n}\n\nfunction injectLoaderMeta (ctx: IPluginContext, framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:loader-meta',\n buildStart () {\n const { runnerUtils } = ctx\n const { getViteMiniCompilerContext } = runnerUtils\n const viteCompilerContext = getViteMiniCompilerContext(this)\n if (viteCompilerContext) {\n viteCompilerContext.loaderMeta ||= {}\n Object.assign(viteCompilerContext.loaderMeta, getLoaderMeta(framework))\n }\n }\n }\n}\n\nfunction aliasPlugin (ctx: IPluginContext, framework: Frameworks): PluginOption {\n if (framework === 'react') {\n return {\n name: 'taro-react:alias',\n config (config) {\n const alias: ({ find: string | RegExp, replacement: string })[] = [\n { find: /react-dom$/, replacement: '@tarojs/react' }\n ]\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n const isProd = config.mode === 'production'\n // TODO:harmony 目前会导致部分包用 production 版本,部分用 development 版本,导致许多 api 报错\n const isHarmony = ctx.runOpts.options.platform === 'harmony'\n if (!isProd && ctx.initialConfig.mini?.debugReact !== true && !isHarmony) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n alias.push({ find: /react-reconciler$/, replacement: 'react-reconciler/cjs/react-reconciler.production.min.js' })\n alias.push({ find: /^(?!.*mobx-react$).*react$/, replacement: 'react/cjs/react.production.min.js' })\n alias.push({ find: /scheduler$/, replacement: 'scheduler/cjs/scheduler.production.min.js' })\n alias.push({ find: /react\\/jsx-runtime$/, replacement: 'react/cjs/react-jsx-runtime.production.min.js' })\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = (reactPkg.version || '')\n if ((/^[~^]?18/).test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/'\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n\n return {\n resolve: {\n alias\n }\n }\n }\n }\n }\n return []\n}\n","import { defaultMainFields, REG_TARO_H5, resolveSync } from '@tarojs/helper'\nimport { mergeWith } from 'lodash'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type Chain from 'webpack-chain'\nimport type { Frameworks } from './index'\n\nexport function modifyH5WebpackChain (ctx: IPluginContext, framework: Frameworks, chain: Chain) {\n setLoader(framework, chain)\n setPlugin(ctx, framework, chain)\n\n const { isBuildNativeComp = false } = ctx.runOpts?.options || {}\n const externals: Record<string, { [externalType: string]: string } | string> = {}\n if (isBuildNativeComp) {\n // Note: 该模式不支持 prebundle 优化,不必再处理\n externals.react = {\n commonjs: 'react',\n commonjs2: 'react',\n amd: 'react',\n root: 'React'\n }\n externals['react-dom'] = {\n commonjs: 'react-dom',\n commonjs2: 'react-dom',\n amd: 'react-dom',\n root: 'ReactDOM'\n }\n if (framework === 'preact') {\n externals.preact = 'preact'\n }\n\n chain.merge({\n externalsType: 'umd'\n })\n }\n\n chain.merge({\n externals,\n module: {\n rule: {\n 'process-import-taro-h5': {\n test: REG_TARO_H5,\n loader: require.resolve('./api-loader'),\n },\n },\n },\n })\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n function customizer (object = '', sources = '') {\n if ([object, sources].every((e) => typeof e === 'string')) return object + sources\n }\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta = mergeWith(getLoaderMeta(framework), args[0].loaderMeta, customizer)\n return args\n })\n}\n\nfunction setPlugin (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.h5?.devServer?.hot !== false) {\n // 默认开启 fast-refresh\n if (framework === 'react') {\n chain.plugin('fastRefreshPlugin').use(require('@pmmmwh/react-refresh-webpack-plugin'))\n } else if (framework === 'preact') {\n chain.plugin('hotModuleReplacementPlugin').use(require('webpack').HotModuleReplacementPlugin)\n chain.plugin('fastRefreshPlugin').use(require('@prefresh/webpack'))\n }\n }\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n const alias = chain.resolve.alias\n // Note: 本地 link 调试时,避免 react 重复打包\n alias.set('react$', resolveSync('react', resolveOptions))\n alias.set('react-dom$', resolveSync('react-dom', resolveOptions))\n }\n}\n","import path from 'node:path'\n\nimport { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyHarmonyWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.harmony?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = resolveSync('react', resolveOptions)!\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set('react$', newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('mainPlugin').tap((args) => {\n args[0].loaderMeta ||= {}\n Object.assign(args[0].loaderMeta, getLoaderMeta(framework))\n return args\n })\n}\n","import path from 'node:path'\n\nimport { defaultMainFields, fs, resolveSync } from '@tarojs/helper'\n\nimport { getLoaderMeta } from './loader-meta'\n\nimport type { IPluginContext } from '@tarojs/service'\nimport type { Frameworks } from './index'\n\nexport function modifyMiniWebpackChain (ctx: IPluginContext, framework: Frameworks, chain) {\n setAlias(ctx, framework, chain)\n setLoader(framework, chain)\n}\n\nfunction setAlias (ctx: IPluginContext, framework: Frameworks, chain) {\n const config = ctx.initialConfig\n const alias = chain.resolve.alias\n\n const mainFields = ['unpkg', ...defaultMainFields]\n const resolveOptions = {\n basedir: process.cwd(),\n mainFields,\n }\n if (framework === 'react') {\n alias.set('react-dom$', '@tarojs/react')\n alias.set('react-dom/client$', '@tarojs/react')\n const webpackConfig = chain.toConfig()\n const isProd = webpackConfig.mode === 'production'\n if (!isProd && config.mini?.debugReact !== true) {\n // 不是生产环境,且没有设置 debugReact,则使用压缩版本的 react 依赖,减少体积\n // 兼容pnpm workspace\n const reactModulePath = resolveSync('react', resolveOptions)!\n const newFilePath = path.join(path.dirname(reactModulePath), 'cjs', 'react.production.min.js')\n\n alias.set('react-reconciler$', 'react-reconciler/cjs/react-reconciler.production.min.js')\n alias.set(/^(?!.*mobx-react$).*react$/, newFilePath)\n alias.set('react/jsx-runtime$', 'react/cjs/react-jsx-runtime.production.min.js')\n\n // 在React18中,使用了exports字段约定了模块暴露路径,其中并未暴露 ./cjs/ 。这将使上面的alias在编译时报错。相当的tricky。\n // Why writeJson? prebundle will load package.json via readFile to check exports property.\n const reactPkgPath = resolveSync('react/package.json', resolveOptions)\n if (reactPkgPath) {\n const reactPkg = require('react/package.json')\n const reactVersion = reactPkg.version || ''\n if (/^[~^]?18/.test(reactVersion) && reactPkg.exports) {\n reactPkg.exports = Object.assign(reactPkg.exports, {\n './cjs/': './cjs/',\n })\n fs.writeJsonSync(reactPkgPath, reactPkg, { spaces: 2 })\n }\n }\n }\n }\n}\n\nfunction setLoader (framework: Frameworks, chain) {\n chain.plugin('miniPlugin').tap((args) => {\n args[0].loaderMeta ||= {}\n Object.assign(args[0].loaderMeta, getLoaderMeta(framework))\n return args\n })\n}\n","import { fs, REG_TARO_H5 } from '@tarojs/helper'\nimport { isString } from '@tarojs/shared'\n\nimport { h5iVitePlugin } from './vite.h5'\nimport { harmonyVitePlugin } from './vite.harmony'\nimport { miniVitePlugin } from './vite.mini'\nimport { modifyH5WebpackChain } from './webpack.h5'\nimport { modifyHarmonyWebpackChain } from './webpack.harmony'\nimport { modifyMiniWebpackChain } from './webpack.mini'\n\nimport type { esbuild } from '@tarojs/helper'\nimport type { IPluginContext } from '@tarojs/service'\nimport type { IProjectConfig } from '@tarojs/taro/types/compile'\nimport type { PluginOption } from 'vite'\n\nexport type Frameworks = 'react' | 'preact'\n\nexport function isReactLike(framework: IProjectConfig['framework'] = 'react'): framework is Frameworks {\n return ['react', 'preact'].includes(framework)\n}\n\nexport default (ctx: IPluginContext) => {\n const { framework = 'react' } = ctx.initialConfig\n\n if (!isReactLike(framework)) return\n\n ctx.modifyWebpackChain(({ chain }) => {\n // 通用\n setAlias(framework, chain)\n\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n modifyH5WebpackChain(ctx, framework, chain)\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n modifyHarmonyWebpackChain(ctx, framework, chain)\n } else {\n // 小程序\n modifyMiniWebpackChain(ctx, framework, chain)\n }\n })\n\n ctx.modifyRunnerOpts(({ opts }) => {\n if (!opts?.compiler) return\n\n if (isString(opts.compiler)) {\n opts.compiler = {\n type: opts.compiler,\n }\n }\n\n const { compiler } = opts\n if (compiler.type === 'webpack5') {\n // 提供给 webpack5 依赖预编译收集器的第三方依赖\n const deps = ['react', 'react-dom', 'react/jsx-runtime', '@tarojs/plugin-framework-react/dist/runtime']\n compiler.prebundle ||= {}\n const prebundleOptions = compiler.prebundle\n prebundleOptions.include ||= []\n prebundleOptions.include = prebundleOptions.include.concat(deps)\n prebundleOptions.exclude ||= []\n prebundleOptions.exclude.push(/mobx/) // 依赖会对 webpack 修改,默认排除\n if (prebundleOptions.enable === false) return\n\n const taroReactPlugin: esbuild.Plugin = {\n name: 'taroReactPlugin',\n setup (build) {\n build.onLoad({ filter: REG_TARO_H5 }, ({ path }) => {\n const content = fs.readFileSync(path).toString()\n return {\n contents: require('./api-loader')(content),\n }\n })\n }\n }\n\n prebundleOptions.esbuild ||= {}\n const esbuildConfig = prebundleOptions.esbuild\n esbuildConfig.plugins ||= []\n esbuildConfig.plugins.push(taroReactPlugin)\n } else if (compiler.type === 'vite') {\n compiler.vitePlugins ||= []\n compiler.vitePlugins.push(viteCommonPlugin(framework))\n compiler.vitePlugins.push(VitePresetPlugin(framework))\n if (process.env.TARO_PLATFORM === 'web') {\n // H5\n compiler.vitePlugins.push(h5iVitePlugin(ctx, framework))\n } else if (process.env.TARO_PLATFORM === 'harmony' || process.env.TARO_ENV === 'harmony') {\n // 鸿蒙\n compiler.vitePlugins.push(harmonyVitePlugin(ctx, framework))\n } else {\n // 小程序\n compiler.vitePlugins.push(miniVitePlugin(ctx, framework))\n }\n }\n })\n}\n\nfunction setAlias (framework: Frameworks, chain) {\n const alias = chain.resolve.alias\n if (framework === 'preact') {\n alias.set('react', 'preact/compat')\n alias.set('react-dom/test-utils', 'preact/test-utils')\n alias.set('react-dom', 'preact/compat')\n alias.set('react/jsx-runtime', 'preact/jsx-runtime')\n }\n}\n\nfunction VitePresetPlugin (framework: Frameworks): PluginOption {\n return framework === 'preact'\n ? require('@preact/preset-vite').preact({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n : require('@vitejs/plugin-react').default({\n babel: {\n plugins: [\n ['@babel/plugin-proposal-decorators', { legacy: true }],\n ['@babel/plugin-proposal-class-properties', { loose: true }],\n ],\n },\n })\n}\n\nfunction viteCommonPlugin (framework: Frameworks): PluginOption {\n return {\n name: 'taro-react:common',\n config () {\n const alias =\n framework === 'preact'\n ? [\n { find: 'react', replacement: 'preact/compat' },\n { find: 'react-dom/test-utils', replacement: 'preact/test-utils' },\n { find: 'react-dom', replacement: 'preact/compat' },\n { find: 'react/jsx-runtime', replacement: 'preact/jsx-runtime' },\n ]\n : []\n\n return {\n resolve: {\n alias,\n },\n }\n },\n }\n}\n"],"names":["acorn","walk","injectLoaderMeta","mergeWith","REG_TARO_H5_RUNTIME_API","__awaiter","fs","aliasPlugin","defaultMainFields","resolveSync","setLoader","REG_TARO_H5","setAlias","isString"],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { EMPTY_OBJ, isFunction, isArray, hooks, ensure, isUndefined } from '@tarojs/shared';
2
- import { Current, getPageInstance, injectPageInstance, incrementId, document, getPath, window, CONTEXT_ACTIONS, safeExecute, removePageInstance, ON_READY, requestAnimationFrame, eventCenter, getOnReadyEventKey, ON_SHOW, getOnShowEventKey, ON_HIDE, getOnHideEventKey, eventHandler, addLeadingSlash } from '@tarojs/runtime';
2
+ import { Current, getPageInstance, injectPageInstance, incrementId, document, perf, PAGE_INIT, getPath, window, CONTEXT_ACTIONS, safeExecute, removePageInstance, ON_READY, requestAnimationFrame, eventCenter, getOnReadyEventKey, ON_SHOW, getOnShowEventKey, ON_HIDE, getOnHideEventKey, eventHandler, addLeadingSlash } from '@tarojs/runtime';
3
3
 
4
4
  const reactMeta = {
5
5
  PageContext: EMPTY_OBJ,
6
- R: EMPTY_OBJ
6
+ R: EMPTY_OBJ,
7
7
  };
8
8
 
9
9
  const HOOKS_APP_ID = 'taro-app';
@@ -122,30 +122,30 @@ const useTabItemTap = createTaroHook('onTabItemTap');
122
122
  const useScope = () => undefined;
123
123
 
124
124
  var taroHooks = /*#__PURE__*/Object.freeze({
125
- __proto__: null,
126
- useAddToFavorites: useAddToFavorites,
127
- useDidHide: useDidHide,
128
- useDidShow: useDidShow,
129
- useError: useError,
130
- useLaunch: useLaunch,
131
- useLoad: useLoad,
132
- useOptionMenuClick: useOptionMenuClick,
133
- usePageNotFound: usePageNotFound,
134
- usePageScroll: usePageScroll,
135
- usePullDownRefresh: usePullDownRefresh,
136
- usePullIntercept: usePullIntercept,
137
- useReachBottom: useReachBottom,
138
- useReady: useReady,
139
- useResize: useResize,
140
- useRouter: useRouter,
141
- useSaveExitState: useSaveExitState,
142
- useScope: useScope,
143
- useShareAppMessage: useShareAppMessage,
144
- useShareTimeline: useShareTimeline,
145
- useTabItemTap: useTabItemTap,
146
- useTitleClick: useTitleClick,
147
- useUnhandledRejection: useUnhandledRejection,
148
- useUnload: useUnload
125
+ __proto__: null,
126
+ useAddToFavorites: useAddToFavorites,
127
+ useDidHide: useDidHide,
128
+ useDidShow: useDidShow,
129
+ useError: useError,
130
+ useLaunch: useLaunch,
131
+ useLoad: useLoad,
132
+ useOptionMenuClick: useOptionMenuClick,
133
+ usePageNotFound: usePageNotFound,
134
+ usePageScroll: usePageScroll,
135
+ usePullDownRefresh: usePullDownRefresh,
136
+ usePullIntercept: usePullIntercept,
137
+ useReachBottom: useReachBottom,
138
+ useReady: useReady,
139
+ useResize: useResize,
140
+ useRouter: useRouter,
141
+ useSaveExitState: useSaveExitState,
142
+ useScope: useScope,
143
+ useShareAppMessage: useShareAppMessage,
144
+ useShareTimeline: useShareTimeline,
145
+ useTabItemTap: useTabItemTap,
146
+ useTitleClick: useTitleClick,
147
+ useUnhandledRejection: useUnhandledRejection,
148
+ useUnload: useUnload
149
149
  });
150
150
 
151
151
  let h$1;
@@ -164,7 +164,7 @@ function setReconciler(ReactDOM) {
164
164
  });
165
165
  });
166
166
  hooks.tap('batchedEventUpdates', function (cb) {
167
- ReactDOM.unstable_batchedUpdates(cb);
167
+ ReactDOM === null || ReactDOM === void 0 ? void 0 : ReactDOM.unstable_batchedUpdates(cb);
168
168
  });
169
169
  hooks.tap('mergePageInstance', function (prev, next) {
170
170
  if (!prev || !next)
@@ -281,7 +281,12 @@ function createReactApp(App, react, dom, config) {
281
281
  return appInstanceRef.current;
282
282
  }
283
283
  function waitAppWrapper(cb) {
284
- appWrapper ? cb() : appWrapperPromise.then(() => cb());
284
+ /**
285
+ * 当同个事件触发多次时,waitAppWrapper 会出现同步和异步任务的执行顺序问题,
286
+ * 导致某些场景下 onShow 会优于 onLaunch 执行
287
+ */
288
+ appWrapperPromise.then(() => cb());
289
+ // appWrapper ? cb() : appWrapperPromise.then(() => cb())
285
290
  }
286
291
  function renderReactRoot() {
287
292
  var _a, _b;
@@ -313,7 +318,10 @@ function createReactApp(App, react, dom, config) {
313
318
  const key = id + pageKeyId();
314
319
  const page = () => h$1(pageWrapper, { key, tid: id });
315
320
  this.pages.push(page);
316
- this.forceUpdate(cb);
321
+ this.forceUpdate((...args) => {
322
+ perf.stop(PAGE_INIT);
323
+ return cb(...args);
324
+ });
317
325
  }
318
326
  unmount(id, cb) {
319
327
  const elements = this.elements;
@@ -351,7 +359,12 @@ function createReactApp(App, react, dom, config) {
351
359
  }
352
360
  },
353
361
  unmount(id, cb) {
354
- appWrapper.unmount(id, cb);
362
+ if (appWrapper) {
363
+ appWrapper.unmount(id, cb);
364
+ }
365
+ else {
366
+ appWrapperPromise.then(appWrapper => appWrapper.unmount(id, cb));
367
+ }
355
368
  }
356
369
  }, {
357
370
  config: setDefaultDescriptor({
@@ -486,6 +499,7 @@ let h;
486
499
  let ReactDOM;
487
500
  let nativeComponentApp;
488
501
  function initNativeComponentEntry(params) {
502
+ var _a;
489
503
  const { R, ReactDOM, cb, isDefaultEntryDom = true } = params;
490
504
  class NativeComponentWrapper extends R.Component {
491
505
  constructor() {
@@ -569,7 +583,7 @@ function initNativeComponentEntry(params) {
569
583
  // create
570
584
  const nativeApp = document.createElement('nativeComponent');
571
585
  // insert
572
- app === null || app === void 0 ? void 0 : app.appendChild(nativeApp);
586
+ (_a = app === null || app === void 0 ? void 0 : app.parentNode) === null || _a === void 0 ? void 0 : _a.appendChild(nativeApp);
573
587
  app = nativeApp;
574
588
  }
575
589
  // eslint-disable-next-line react/no-deprecated
@@ -885,7 +899,7 @@ hooks.tap('initNativeApi', function (taro) {
885
899
  taro[hook] = taroHooks[hook];
886
900
  }
887
901
  });
888
- if (__TARO_FRAMEWORK__ === 'preact' && process.env.TARO_PLATFORM === 'mini') {
902
+ if (process.env.FRAMEWORK === 'preact' && process.env.TARO_PLATFORM === 'mini') {
889
903
  const options = require('preact').options;
890
904
  const oldVNodeHook = options.vnode;
891
905
  const oldDiffedHook = options.diffed;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sources":["../src/runtime/react-meta.ts","../src/runtime/utils.ts","../src/runtime/hooks.ts","../src/runtime/connect.ts","../src/runtime/connect-native.ts","../src/runtime/index.ts"],"sourcesContent":["import { EMPTY_OBJ } from '@tarojs/shared'\n\nimport type * as React from 'react'\n\ninterface ReactMeta {\n PageContext: React.Context<string>\n R: typeof React\n}\n\nexport const reactMeta: ReactMeta = {\n PageContext: EMPTY_OBJ,\n R: EMPTY_OBJ\n}\n","import { Current } from '@tarojs/runtime'\nimport { isArray, isFunction } from '@tarojs/shared'\n\nimport type * as React from 'react'\n\nexport const HOOKS_APP_ID = 'taro-app'\n\nexport function isClassComponent (R: typeof React, component): boolean {\n const prototype = component.prototype\n\n // For React Redux\n if (component.displayName?.includes('Connect')) return false\n\n return (\n isFunction(component.render) ||\n !!prototype?.isReactComponent ||\n prototype instanceof R.Component // compat for some others react-like library\n )\n}\n\nexport function ensureIsArray<T> (item: T | T[]): T[] {\n if (isArray(item)) {\n return item\n } else {\n return item ? [item] : []\n }\n}\n\n/**\n * set writable, enumerable to true\n */\nexport function setDefaultDescriptor (obj: Record<string, any>) {\n obj.writable = true\n obj.enumerable = true\n return obj\n}\n\n/**\n * 设置入口的路由参数\n * @param options 小程序传入的参数\n */\nexport function setRouterParams (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n}\n","import { Current, getPageInstance, injectPageInstance } from '@tarojs/runtime'\nimport { isArray, isFunction } from '@tarojs/shared'\n\nimport { reactMeta } from './react-meta'\nimport { HOOKS_APP_ID } from './utils'\n\nimport type { AppInstance, Instance, PageLifeCycle, PageProps } from '@tarojs/runtime'\nimport type { Func } from '@tarojs/taro/types/compile'\n\nconst createTaroHook = (lifecycle: keyof PageLifeCycle | keyof AppInstance) => {\n return (fn: Func) => {\n const { R: React, PageContext } = reactMeta\n const id = React.useContext(PageContext) || HOOKS_APP_ID\n const instRef = React.useRef<Instance<PageProps>>()\n\n // hold fn ref and keep up to date\n const fnRef = React.useRef(fn)\n if (fnRef.current !== fn) fnRef.current = fn\n\n React.useLayoutEffect(() => {\n let inst = instRef.current = getPageInstance(id)\n let first = false\n if (!inst) {\n first = true\n instRef.current = Object.create(null)\n inst = instRef.current!\n }\n\n // callback is immutable but inner function is up to date\n const callback = (...args: any) => fnRef.current(...args)\n\n if (isFunction(inst[lifecycle])) {\n (inst[lifecycle]) = [inst[lifecycle], callback]\n } else {\n (inst[lifecycle]) = [\n ...((inst[lifecycle]) || []),\n callback\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n return () => {\n const inst = instRef.current\n if (!inst) return\n const list = inst![lifecycle]\n if (list === callback) {\n (inst[lifecycle]) = undefined\n } else if (isArray(list)) {\n (inst[lifecycle]) = list.filter(item => item !== callback)\n }\n instRef.current = undefined\n }\n }, [])\n }\n}\n\n/** LifeCycle */\nexport const useDidHide = createTaroHook('componentDidHide')\nexport const useDidShow = createTaroHook('componentDidShow')\n\n/** App */\nexport const useError = createTaroHook('onError')\nexport const useUnhandledRejection = createTaroHook('onUnhandledRejection')\nexport const useLaunch = createTaroHook('onLaunch')\nexport const usePageNotFound = createTaroHook('onPageNotFound')\n\n/** Page */\nexport const useLoad = createTaroHook('onLoad')\nexport const usePageScroll = createTaroHook('onPageScroll')\nexport const usePullDownRefresh = createTaroHook('onPullDownRefresh')\nexport const usePullIntercept = createTaroHook('onPullIntercept')\nexport const useReachBottom = createTaroHook('onReachBottom')\nexport const useResize = createTaroHook('onResize')\nexport const useUnload = createTaroHook('onUnload')\n\n/** Mini-Program */\nexport const useAddToFavorites = createTaroHook('onAddToFavorites')\nexport const useOptionMenuClick = createTaroHook('onOptionMenuClick')\nexport const useSaveExitState = createTaroHook('onSaveExitState')\nexport const useShareAppMessage = createTaroHook('onShareAppMessage')\nexport const useShareTimeline = createTaroHook('onShareTimeline')\nexport const useTitleClick = createTaroHook('onTitleClick')\n\n/** Router */\nexport const useReady = createTaroHook('onReady')\nexport const useRouter = (dynamic = false) => {\n const React = reactMeta.R\n return dynamic ? Current.router : React.useMemo(() => Current.router, [])\n}\nexport const useTabItemTap = createTaroHook('onTabItemTap')\n\nexport const useScope = () => undefined\n","import { Current, document, getPageInstance, incrementId, injectPageInstance } from '@tarojs/runtime'\nimport { EMPTY_OBJ, ensure, hooks } from '@tarojs/shared'\n\nimport { reactMeta } from './react-meta'\nimport { ensureIsArray, HOOKS_APP_ID, isClassComponent, setDefaultDescriptor, setRouterParams } from './utils'\n\nimport type { AppInstance, Instance, PageLifeCycle, PageProps, ReactAppInstance, ReactPageComponent } from '@tarojs/runtime'\nimport type { AppConfig } from '@tarojs/taro'\nimport type * as React from 'react'\nimport type * as TReactDOM from 'react-dom'\nimport type * as TReactDOMClient from 'react-dom/client'\n\ntype PageComponent = React.CElement<PageProps, React.Component<PageProps, any, any>>\n\nlet h: typeof React.createElement\nlet ReactDOM: typeof TReactDOM & typeof TReactDOMClient\nlet Fragment: typeof React.Fragment\n\nconst pageKeyId = incrementId()\n\nexport function setReconciler (ReactDOM) {\n hooks.tap('getLifecycle', function (instance, lifecycle: string) {\n lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1')\n return instance[lifecycle]\n })\n\n hooks.tap('modifyMpEvent', function (event) {\n // Note: ohos 上事件没有设置 type 类型 setter 方法导致报错\n Object.defineProperty(event, 'type', {\n value: event.type.replace(/-/g, '')\n })\n })\n\n hooks.tap('batchedEventUpdates', function (cb) {\n ReactDOM.unstable_batchedUpdates(cb)\n })\n\n hooks.tap('mergePageInstance', function (prev, next) {\n if (!prev || !next) return\n\n // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。\n\n // prev 使用 Object.create(null) 创建,H5 的 fast-refresh 可能也会导致存在 prev,要排除这些意外产生的 prev\n if ('constructor' in prev) return\n\n Object.keys(prev).forEach(item => {\n const prevList = prev[item]\n const nextList = ensureIsArray<() => any>(next[item])\n next[item] = nextList.concat(prevList)\n })\n })\n\n if (process.env.TARO_PLATFORM === 'web') {\n hooks.tap('createPullDownComponent', (\n el: React.FunctionComponent<PageProps> | React.ComponentClass<PageProps>,\n _,\n R: typeof React,\n customWrapper\n ) => {\n const isReactComponent = isClassComponent(R, el)\n\n return R.forwardRef((props, ref) => {\n const newProps: React.ComponentProps<any> = { ...props }\n const refs = isReactComponent ? { ref: ref } : {\n forwardedRef: ref,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: ref\n }\n\n return h(\n customWrapper || 'taro-pull-to-refresh-core',\n null,\n h(el, {\n ...newProps,\n ...refs\n })\n )\n })\n })\n\n hooks.tap('getDOMNode', (inst) => {\n // 由于react 18移除了ReactDOM.findDOMNode方法,修复H5端 Taro.createSelectorQuery设置in(scope)时,报错问题\n // https://zh-hans.react.dev/reference/react-dom/findDOMNode\n if (!inst) {\n return document\n } else if (inst instanceof HTMLElement) {\n return inst\n } else if (inst.$taroPath) {\n const el = document.getElementById(inst.$taroPath)\n return el ?? document\n }\n })\n }\n}\n\nexport function connectReactPage (\n R: typeof React,\n id: string\n) {\n return (Page: ReactPageComponent): React.ComponentClass<PageProps> => {\n // eslint-disable-next-line dot-notation\n const isReactComponent = isClassComponent(R, Page)\n const inject = (node?: Instance) => node && injectPageInstance(node, id)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: inject\n }\n\n if (reactMeta.PageContext === EMPTY_OBJ) {\n reactMeta.PageContext = R.createContext('')\n }\n\n return class PageWrapper extends R.Component<PageProps, { hasError: boolean }> {\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError (error: Error) {\n Current.app?.onError?.(error.message + error.stack)\n return { hasError: true }\n }\n\n // React 16 uncaught error 会导致整个应用 crash,\n // 目前把错误缩小到页面\n componentDidCatch (error: Error, info: React.ErrorInfo) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(error)\n console.error(info.componentStack)\n }\n }\n\n render () {\n const children = this.state.hasError\n ? []\n : h(reactMeta.PageContext.Provider, { value: id }, h(Page, {\n ...this.props,\n ...refs\n }))\n\n if (process.env.TARO_PLATFORM === 'web') {\n return h(\n 'div',\n { id, className: 'taro_page' },\n children\n )\n } else {\n return h(\n 'root',\n { id },\n children\n )\n }\n }\n }\n }\n}\n\n/**\n * 桥接小程序 App 构造器和 React 渲染流程\n * @param App 用户编写的入口组件\n * @param react 框架\n * @param dom 框架渲染器\n * @param config 入口组件配置 app.config.js 的内容\n * @returns 传递给 App 构造器的对象 obj :App(obj)\n */\nexport function createReactApp (\n App: React.ComponentClass,\n react: typeof React,\n dom,\n config: AppConfig\n) {\n if (process.env.NODE_ENV !== 'production') {\n ensure(!!dom, '构建 React/Nerv 项目请把 process.env.FRAMEWORK 设置为 \\'react\\'/\\'preact\\'/\\'nerv\\' ')\n }\n\n reactMeta.R = react\n h = react.createElement\n ReactDOM = dom\n Fragment = react.Fragment\n const appInstanceRef = react.createRef<ReactAppInstance>()\n const isReactComponent = isClassComponent(react, App)\n let appWrapper: AppWrapper\n let appWrapperResolver: (value: AppWrapper) => void\n const appWrapperPromise = new Promise<AppWrapper>(resolve => (appWrapperResolver = resolve))\n\n setReconciler(ReactDOM)\n\n function getAppInstance (): ReactAppInstance | null {\n return appInstanceRef.current\n }\n\n function waitAppWrapper (cb: () => void) {\n appWrapper ? cb() : appWrapperPromise.then(() => cb())\n }\n\n function renderReactRoot () {\n let appId = 'app'\n if (process.env.TARO_PLATFORM === 'web') {\n appId = config?.appId || appId\n }\n const container = document.getElementById(appId) as unknown as Element\n if ((react.version || '').startsWith('18')) {\n const root = ReactDOM.createRoot(container)\n root.render?.(h(AppWrapper))\n } else {\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render?.(h(AppWrapper), container)\n }\n }\n\n class AppWrapper extends react.Component {\n // run createElement() inside the render function to make sure that owner is right\n private pages: Array<() => PageComponent> = []\n private elements: Array<PageComponent> = []\n\n constructor (props) {\n super(props)\n appWrapper = this\n appWrapperResolver(this)\n }\n\n public mount (pageComponent: ReactPageComponent, id: string, cb: () => void) {\n const pageWrapper = connectReactPage(react, id)(pageComponent)\n const key = id + pageKeyId()\n const page = () => h(pageWrapper, { key, tid: id })\n this.pages.push(page)\n this.forceUpdate(cb)\n }\n\n public unmount (id: string, cb: () => void) {\n const elements = this.elements\n const idx = elements.findIndex(item => item.props.tid === id)\n elements.splice(idx, 1)\n this.forceUpdate(cb)\n }\n\n public render () {\n const { pages, elements } = this\n\n while (pages.length > 0) {\n const page = pages.pop()!\n elements.push(page())\n }\n\n let props: React.ComponentProps<any> | null = null\n\n if (isReactComponent) {\n props = { ref: appInstanceRef }\n }\n\n return h(\n App,\n props,\n process.env.TARO_PLATFORM === 'web' ? h(Fragment ?? 'div', null, elements.slice()) : elements.slice()\n )\n }\n }\n\n if (process.env.TARO_PLATFORM !== 'web') {\n renderReactRoot()\n }\n\n const [ONLAUNCH, ONSHOW, ONHIDE] = hooks.call('getMiniLifecycleImpl')!.app\n\n const appObj: AppInstance = Object.create({\n render (cb: () => void) {\n appWrapper.forceUpdate(cb)\n },\n\n mount (component: ReactPageComponent, id: string, cb: () => void) {\n if (appWrapper) {\n appWrapper.mount(component, id, cb)\n } else {\n appWrapperPromise.then(appWrapper => appWrapper.mount(component, id, cb))\n }\n },\n\n unmount (id: string, cb: () => void) {\n appWrapper.unmount(id, cb)\n }\n }, {\n config: setDefaultDescriptor({\n configurable: true,\n value: config\n }),\n\n [ONLAUNCH]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n if (process.env.TARO_PLATFORM === 'web') {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后执行 render\n renderReactRoot()\n }\n\n const onLaunch = () => {\n // 用户编写的入口组件实例\n const app = getAppInstance()\n this.$app = app\n\n if (app) {\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n app.onLaunch?.(options)\n }\n triggerAppHook('onLaunch', options)\n }\n\n waitAppWrapper(onLaunch)\n }\n }),\n\n [ONSHOW]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n const onShow = () => {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidShow\n app?.componentDidShow?.(options)\n // functional component, useDidShow\n triggerAppHook('onShow', options)\n }\n\n waitAppWrapper(onShow)\n }\n }),\n\n [ONHIDE]: setDefaultDescriptor({\n value () {\n const onHide = () => {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidHide\n app?.componentDidHide?.()\n // functional component, useDidHide\n triggerAppHook('onHide')\n }\n\n waitAppWrapper(onHide)\n }\n }),\n\n onError: setDefaultDescriptor({\n value (error: string) {\n const onError = () => {\n const app = getAppInstance()\n app?.onError?.(error)\n triggerAppHook('onError', error)\n if (process.env.NODE_ENV !== 'production' && error?.includes('Minified React error')) {\n console.warn('React 出现报错,请打开编译配置 mini.debugReact 查看报错详情:https://docs.taro.zone/docs/config-detail#minidebugreact')\n }\n }\n\n waitAppWrapper(onError)\n }\n }),\n\n onUnhandledRejection: setDefaultDescriptor({\n value (res: unknown) {\n const onUnhandledRejection = () => {\n const app = getAppInstance()\n app?.onUnhandledRejection?.(res)\n triggerAppHook('onUnhandledRejection', res)\n }\n\n waitAppWrapper(onUnhandledRejection)\n }\n }),\n\n onPageNotFound: setDefaultDescriptor({\n value (res: unknown) {\n const onPageNotFound = () => {\n const app = getAppInstance()\n app?.onPageNotFound?.(res)\n triggerAppHook('onPageNotFound', res)\n }\n\n waitAppWrapper(onPageNotFound)\n }\n })\n })\n\n function triggerAppHook (lifecycle: keyof PageLifeCycle | keyof AppInstance, ...option) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = getAppInstance()\n const func = hooks.call('getLifecycle', instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach(cb => cb.apply(app, option))\n }\n }\n }\n\n Current.app = appObj\n return appObj\n}\n","import {\n addLeadingSlash, CONTEXT_ACTIONS, Current, document, eventCenter,\n eventHandler, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath,\n incrementId, injectPageInstance, ON_HIDE, ON_READY, ON_SHOW,\n removePageInstance, requestAnimationFrame, safeExecute, window\n} from '@tarojs/runtime'\nimport { EMPTY_OBJ, ensure, hooks, isUndefined } from '@tarojs/shared'\n\nimport { setReconciler } from './connect'\nimport { reactMeta } from './react-meta'\nimport { isClassComponent } from './utils'\n\nimport type { Instance, MpInstance, TaroRootElement } from '@tarojs/runtime'\nimport type { AppInstance, PageInstance } from '@tarojs/taro'\nimport type { Func } from '@tarojs/taro/types/compile'\nimport type * as React from 'react'\n\ndeclare const getCurrentPages: () => PageInstance[]\n\nconst getNativeCompId = incrementId()\nlet h: typeof React.createElement\nlet ReactDOM\nlet nativeComponentApp: AppInstance\ninterface InitNativeComponentEntryParams {\n R: typeof React\n ReactDOM: typeof ReactDOM\n cb?: Func\n // 是否使用默认的 DOM 入口 - app;默认为true,false的时候,会创建一个新的dom并且把它挂载在 app 下面\n isDefaultEntryDom?: boolean\n}\n\nfunction initNativeComponentEntry (params: InitNativeComponentEntryParams) {\n const { R, ReactDOM, cb, isDefaultEntryDom = true } = params\n interface IEntryState {\n components: {\n compId: string\n element: React.ReactElement\n }[]\n }\n\n interface IWrapperProps {\n compId: string\n getCtx: () => any\n renderComponent: (ctx: any) => React.ReactElement\n }\n\n class NativeComponentWrapper extends R.Component<IWrapperProps, Record<any, any>> {\n root = R.createRef<TaroRootElement>()\n ctx = this.props.getCtx()\n\n componentDidMount () {\n this.ctx.component = this\n const rootElement = this.root.current!\n rootElement.ctx = this.ctx\n rootElement.performUpdate(true)\n }\n\n render () {\n return (\n h(\n 'root',\n {\n ref: this.root,\n id: this.props.compId\n },\n this.props.renderComponent(this.ctx)\n )\n )\n }\n }\n\n class Entry extends R.Component<Record<any, any>, IEntryState> {\n state: IEntryState = {\n components: []\n }\n\n componentDidMount () {\n if (isDefaultEntryDom) {\n Current.app = this\n } else {\n nativeComponentApp = this\n }\n cb && cb()\n }\n\n mount (Component, compId, getCtx, cb?) {\n const isReactComponent = isClassComponent(R, Component)\n const inject = (node?: Instance) => node && injectPageInstance(node, compId)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n reactReduxForwardedRef: inject\n }\n if (reactMeta.PageContext === EMPTY_OBJ) {\n reactMeta.PageContext = R.createContext('')\n }\n const item = {\n compId,\n element: h(NativeComponentWrapper, {\n key: compId,\n compId,\n getCtx,\n renderComponent (ctx) {\n return h(\n reactMeta.PageContext.Provider,\n { value: compId },\n h(\n Component,\n {\n ...(ctx.data ||= {}).props,\n ...refs,\n $scope: ctx\n }\n )\n )\n }\n })\n }\n this.setState({\n components: [...this.state.components, item]\n }, () => cb && cb())\n }\n\n unmount (compId, cb?) {\n const components = this.state.components\n const index = components.findIndex(item => item.compId === compId)\n const next = [...components.slice(0, index), ...components.slice(index + 1)]\n this.setState({\n components: next\n }, () => {\n removePageInstance(compId)\n cb && cb()\n })\n }\n\n render () {\n const components = this.state.components\n\n return (\n components.map(({ element }) => element)\n )\n }\n }\n\n setReconciler(ReactDOM)\n\n let app = document.getElementById('app')\n if (!isDefaultEntryDom && !nativeComponentApp) {\n // create\n const nativeApp = document.createElement('nativeComponent')\n // insert\n app?.appendChild(nativeApp)\n app = nativeApp\n }\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render(\n h(Entry, {}),\n app\n )\n}\n\nexport function createNativePageConfig (Component, pageName: string, data: Record<string, unknown>, react: typeof React, reactDOM: typeof ReactDOM, pageConfig) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactDOM\n setReconciler(ReactDOM)\n const [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES,\n SIDE_EFFECT_LIFECYCLES\n ] = hooks.call('getMiniLifecycleImpl')!.page\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n let pageElement: TaroRootElement | null = null\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const id = pageName ?? `taro_page_${getNativeCompId()}`\n function setCurrentRouter (page: MpInstance) {\n const router = page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n $taroPath: page.$taroPath,\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n if (!isUndefined(page.exitState)) {\n Current.router.exitState = page.exitState\n }\n }\n\n const pageObj: Record<string, any> = {\n options: pageConfig,\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TaroGeneral.TFunc) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n Current.page = this as any\n this.config = pageConfig || {}\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n\n const mountCallback = () => {\n pageElement = document.getElementById($taroPath)\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ONLOAD, this.$taroParams)\n loadResolver()\n pageElement.ctx = this\n pageElement.performUpdate(true, cb)\n }\n\n const mount = () => {\n if (!Current.app) {\n initNativeComponentEntry({\n R: react,\n ReactDOM,\n cb: () => {\n Current.app!.mount!(Component, $taroPath, () => this, mountCallback)\n }\n })\n } else {\n Current.app!.mount!(Component, $taroPath, () => this, mountCallback)\n }\n }\n\n if (unmounting) {\n prepareMountList.push(mount)\n } else {\n mount()\n }\n },\n [ONUNLOAD] () {\n const $taroPath = this.$taroPath\n // 销毁当前页面的上下文信息\n window.trigger(CONTEXT_ACTIONS.DESTORY, $taroPath)\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n resetCurrent()\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n removePageInstance($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n pageElement = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n hasLoaded.then(() => {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n requestAnimationFrame(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n })\n },\n [ONSHOW] (options = {}) {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 恢复上下文信息\n window.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n requestAnimationFrame(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n window.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n // 设置 Current 的 page 和 router\n if (Current.page === this) {\n Current.page = null\n Current.router = null\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_HIDE)\n // 通过事件触发子组件的生命周期\n eventCenter.trigger(getOnHideEventKey(id))\n },\n }\n\n function resetCurrent () {\n // 小程序插件页面卸载之后返回到宿主页面时,需重置Current页面和路由。否则引发插件组件二次加载异常 fix:#11991\n Current.page = null\n Current.router = null\n }\n\n\n LIFECYCLES.forEach((lifecycle) => {\n pageObj[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n SIDE_EFFECT_LIFECYCLES.forEach(lifecycle => {\n if (Component[lifecycle] ||\n Component.prototype?.[lifecycle] ||\n Component[lifecycle.replace(/^on/, 'enable')]\n ) {\n pageObj[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, lifecycle, ...args)\n }\n }\n })\n\n pageObj.eh = eventHandler\n\n if (!isUndefined(data)) {\n pageObj.data = data\n }\n\n hooks.call('modifyPageObject', pageObj)\n\n return pageObj\n}\n\nexport function createH5NativeComponentConfig (\n Component,\n react: typeof React,\n reactdom: typeof ReactDOM,\n) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactdom\n setReconciler(ReactDOM)\n\n return Component\n}\n\nexport function createNativeComponentConfig (Component, react: typeof React, reactdom, componentConfig) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactdom\n setReconciler(ReactDOM)\n const { isNewBlended } = componentConfig\n\n const componentObj: Record<string, any> = {\n options: componentConfig,\n properties: {\n props: {\n type: null,\n value: null,\n observer (_newVal, oldVal) {\n oldVal && this.component?.forceUpdate()\n }\n }\n },\n created () {\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n if (!app) {\n initNativeComponentEntry({\n R: react,\n ReactDOM,\n isDefaultEntryDom: !isNewBlended\n })\n }\n },\n attached () {\n const compId = this.compId = getNativeCompId()\n setCurrent(compId)\n this.config = componentConfig\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n app!.mount!(Component, compId, () => this, () => {\n const instance = getPageInstance(compId)\n\n if (instance && instance.node) {\n const el = document.getElementById(instance.node.uid)\n\n if (el) {\n el.ctx = this\n }\n }\n })\n },\n ready () {\n safeExecute(this.compId, 'onReady')\n },\n detached () {\n resetCurrent()\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n app!.unmount!(this.compId)\n },\n pageLifetimes: {\n show (options) {\n safeExecute(this.compId, 'onShow', options)\n },\n hide () {\n safeExecute(this.compId, 'onHide')\n }\n },\n methods: {\n eh: eventHandler,\n onLoad (options) {\n safeExecute(this.compId, 'onLoad', options)\n },\n onUnload () {\n safeExecute(this.compId, 'onUnload')\n }\n }\n }\n\n function resetCurrent () {\n // 小程序插件页面卸载之后返回到宿主页面时,需重置Current页面和路由。否则引发插件组件二次加载异常 fix:#11991\n Current.page = null\n Current.router = null\n }\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n if (\n Component.onShareAppMessage ||\n Component.prototype?.onShareAppMessage ||\n Component.enableShareAppMessage\n ) {\n componentObj.methods.onShareAppMessage = function (options) {\n const target = options?.target\n if (target) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target!.dataset = element.dataset\n }\n }\n return safeExecute(this.compId, 'onShareAppMessage', options)\n }\n }\n if (\n Component.onShareTimeline ||\n Component.prototype?.onShareTimeline ||\n Component.enableShareTimeline\n ) {\n componentObj.methods.onShareTimeline = function () {\n return safeExecute(this.compId, 'onShareTimeline')\n }\n }\n\n return componentObj\n}\n\nfunction setCurrent (compId: string) {\n if (!getCurrentPages || typeof getCurrentPages !== 'function') return\n\n const pages = getCurrentPages()\n const currentPage = pages[pages.length - 1]\n if (Current.page === currentPage) return\n\n Current.page = currentPage\n\n const route = (currentPage as any).route || (currentPage as any).__route__\n const router = {\n params: currentPage.options || {},\n path: addLeadingSlash(route),\n $taroPath: compId,\n onReady: '',\n onHide: '',\n onShow: ''\n }\n Current.router = router\n\n if (!currentPage.options) {\n // 例如在微信小程序中,页面 options 的设置时机比组件 attached 慢\n Object.defineProperty(currentPage, 'options', {\n enumerable: true,\n configurable: true,\n get () {\n return this._optionsValue\n },\n set (value) {\n router.params = value\n this._optionsValue = value\n }\n })\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport * as taroHooks from './hooks'\n\ndeclare const __TARO_FRAMEWORK__: string\n\nhooks.tap('initNativeApi', function (taro) {\n for (const hook in taroHooks) {\n taro[hook] = taroHooks[hook]\n }\n})\n\nif (__TARO_FRAMEWORK__ === 'preact' && process.env.TARO_PLATFORM === 'mini') {\n const options = require('preact').options\n const oldVNodeHook = options.vnode\n const oldDiffedHook = options.diffed\n options.vnode = vnode => {\n const { type, props } = vnode\n let normalizedProps = props\n\n // only normalize props on Element nodes\n if (typeof type === 'string') {\n normalizedProps = {}\n\n for (let i in props) {\n const value = props[i]\n\n if (/^on/.test(i)) {\n i = i.toLowerCase()\n }\n\n if (type === 'map' && i === 'onregionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n normalizedProps.onbegin = value\n normalizedProps.onend = value\n continue\n }\n\n normalizedProps[i] = value\n }\n\n vnode.props = normalizedProps\n }\n\n if (oldVNodeHook) oldVNodeHook(vnode)\n }\n options.diffed = function (newVNode) {\n const domProp = Object.keys(newVNode).find(k => (newVNode[k]?.setAttribute))\n const dom = domProp ? newVNode[domProp] : null\n const newVNodeProps = newVNode.props\n if (dom) { /** ElementNode */\n for (const propName in newVNodeProps) {\n const propValue = newVNodeProps[propName]\n if (propValue === false && dom.props?.[propName] === undefined) {\n // 值为 false 的属性在 Preact 的 diff 中被 removeAttribute 了,这里手动 setAttribute\n // fix https://github.com/NervJS/taro/issues/11197\n dom.setAttribute(propName, propValue)\n }\n }\n }\n if (oldDiffedHook) oldDiffedHook(newVNode)\n }\n\n hooks.tap('modifyMpEvent', e => {\n const type = e.type\n if (type === 'tap') {\n e.type = 'click'\n } else if (type === 'focus') {\n // 兼容 preact/compat/src/render.js options.vnode 的处理逻辑\n e.type = 'focusin'\n } else if (type === 'blur') {\n e.type = 'focusout'\n }\n })\n // hooks.modifyDispatchEventImpls?.push(e => {\n // })\n}\n\nexport * from './connect'\nexport * from './connect-native'\nexport * from './hooks'\n"],"names":["h","ReactDOM"],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sources":["../src/runtime/react-meta.ts","../src/runtime/utils.ts","../src/runtime/hooks.ts","../src/runtime/connect.ts","../src/runtime/connect-native.ts","../src/runtime/index.ts"],"sourcesContent":["import { EMPTY_OBJ } from '@tarojs/shared'\n\nimport type React from 'react'\n\ninterface ReactMeta {\n PageContext: React.Context<string>\n R: typeof React\n}\n\nexport const reactMeta: ReactMeta = {\n PageContext: EMPTY_OBJ,\n R: EMPTY_OBJ,\n}\n","import { Current } from '@tarojs/runtime'\nimport { isArray, isFunction } from '@tarojs/shared'\n\nimport type * as React from 'react'\n\nexport const HOOKS_APP_ID = 'taro-app'\n\nexport function isClassComponent (R: typeof React, component): boolean {\n const prototype = component.prototype\n\n // For React Redux\n if (component.displayName?.includes('Connect')) return false\n\n return (\n isFunction(component.render) ||\n !!prototype?.isReactComponent ||\n prototype instanceof R.Component // compat for some others react-like library\n )\n}\n\nexport function ensureIsArray<T> (item: T | T[]): T[] {\n if (isArray(item)) {\n return item\n } else {\n return item ? [item] : []\n }\n}\n\n/**\n * set writable, enumerable to true\n */\nexport function setDefaultDescriptor (obj: Record<string, any>) {\n obj.writable = true\n obj.enumerable = true\n return obj\n}\n\n/**\n * 设置入口的路由参数\n * @param options 小程序传入的参数\n */\nexport function setRouterParams (options) {\n Current.router = {\n params: options?.query,\n ...options\n }\n}\n","import { Current, getPageInstance, injectPageInstance } from '@tarojs/runtime'\nimport { isArray, isFunction } from '@tarojs/shared'\n\nimport { reactMeta } from './react-meta'\nimport { HOOKS_APP_ID } from './utils'\n\nimport type { AppInstance, Instance, PageLifeCycle, PageProps } from '@tarojs/runtime'\nimport type { Func } from '@tarojs/taro/types/compile'\n\nconst createTaroHook = (lifecycle: keyof PageLifeCycle | keyof AppInstance) => {\n return (fn: Func) => {\n const { R: React, PageContext } = reactMeta\n const id = React.useContext(PageContext) || HOOKS_APP_ID\n const instRef = React.useRef<Instance<PageProps>>()\n\n // hold fn ref and keep up to date\n const fnRef = React.useRef(fn)\n if (fnRef.current !== fn) fnRef.current = fn\n\n React.useLayoutEffect(() => {\n let inst = instRef.current = getPageInstance(id)\n let first = false\n if (!inst) {\n first = true\n instRef.current = Object.create(null)\n inst = instRef.current!\n }\n\n // callback is immutable but inner function is up to date\n const callback = (...args: any) => fnRef.current(...args)\n\n if (isFunction(inst[lifecycle])) {\n (inst[lifecycle]) = [inst[lifecycle], callback]\n } else {\n (inst[lifecycle]) = [\n ...((inst[lifecycle]) || []),\n callback\n ]\n }\n\n if (first) {\n injectPageInstance(inst!, id)\n }\n return () => {\n const inst = instRef.current\n if (!inst) return\n const list = inst![lifecycle]\n if (list === callback) {\n (inst[lifecycle]) = undefined\n } else if (isArray(list)) {\n (inst[lifecycle]) = list.filter(item => item !== callback)\n }\n instRef.current = undefined\n }\n }, [])\n }\n}\n\n/** LifeCycle */\nexport const useDidHide = createTaroHook('componentDidHide')\nexport const useDidShow = createTaroHook('componentDidShow')\n\n/** App */\nexport const useError = createTaroHook('onError')\nexport const useUnhandledRejection = createTaroHook('onUnhandledRejection')\nexport const useLaunch = createTaroHook('onLaunch')\nexport const usePageNotFound = createTaroHook('onPageNotFound')\n\n/** Page */\nexport const useLoad = createTaroHook('onLoad')\nexport const usePageScroll = createTaroHook('onPageScroll')\nexport const usePullDownRefresh = createTaroHook('onPullDownRefresh')\nexport const usePullIntercept = createTaroHook('onPullIntercept')\nexport const useReachBottom = createTaroHook('onReachBottom')\nexport const useResize = createTaroHook('onResize')\nexport const useUnload = createTaroHook('onUnload')\n\n/** Mini-Program */\nexport const useAddToFavorites = createTaroHook('onAddToFavorites')\nexport const useOptionMenuClick = createTaroHook('onOptionMenuClick')\nexport const useSaveExitState = createTaroHook('onSaveExitState')\nexport const useShareAppMessage = createTaroHook('onShareAppMessage')\nexport const useShareTimeline = createTaroHook('onShareTimeline')\nexport const useTitleClick = createTaroHook('onTitleClick')\n\n/** Router */\nexport const useReady = createTaroHook('onReady')\nexport const useRouter = (dynamic = false) => {\n const React = reactMeta.R\n return dynamic ? Current.router : React.useMemo(() => Current.router, [])\n}\nexport const useTabItemTap = createTaroHook('onTabItemTap')\n\nexport const useScope = () => undefined\n","import { Current, document, getPageInstance, incrementId, injectPageInstance, PAGE_INIT, perf } from '@tarojs/runtime'\nimport { EMPTY_OBJ, ensure, hooks } from '@tarojs/shared'\n\nimport { reactMeta } from './react-meta'\nimport { ensureIsArray, HOOKS_APP_ID, isClassComponent, setDefaultDescriptor, setRouterParams } from './utils'\n\nimport type { AppInstance, Instance, PageLifeCycle, PageProps, ReactAppInstance, ReactPageComponent } from '@tarojs/runtime'\nimport type { AppConfig } from '@tarojs/taro'\nimport type React from 'react'\nimport type TReactDOM from 'react-dom'\nimport type TReactDOMClient from 'react-dom/client'\n\ntype PageComponent = React.CElement<PageProps, React.Component<PageProps, any, any>>\n\nlet h: typeof React.createElement\nlet ReactDOM: typeof TReactDOM & typeof TReactDOMClient\nlet Fragment: typeof React.Fragment\n\nconst pageKeyId = incrementId()\n\nexport function setReconciler (ReactDOM?) {\n hooks.tap('getLifecycle', function (instance, lifecycle: string) {\n lifecycle = lifecycle.replace(/^on(Show|Hide)$/, 'componentDid$1')\n return instance[lifecycle]\n })\n\n hooks.tap('modifyMpEvent', function (event) {\n // Note: ohos 上事件没有设置 type 类型 setter 方法导致报错\n Object.defineProperty(event, 'type', {\n value: event.type.replace(/-/g, '')\n })\n })\n\n hooks.tap('batchedEventUpdates', function (cb) {\n ReactDOM?.unstable_batchedUpdates(cb)\n })\n\n hooks.tap('mergePageInstance', function (prev, next) {\n if (!prev || !next) return\n\n // 子组件使用 lifecycle hooks 注册了生命周期后,会存在 prev,里面是注册的生命周期回调。\n\n // prev 使用 Object.create(null) 创建,H5 的 fast-refresh 可能也会导致存在 prev,要排除这些意外产生的 prev\n if ('constructor' in prev) return\n\n Object.keys(prev).forEach(item => {\n const prevList = prev[item]\n const nextList = ensureIsArray<() => any>(next[item])\n next[item] = nextList.concat(prevList)\n })\n })\n\n if (process.env.TARO_PLATFORM === 'web') {\n hooks.tap('createPullDownComponent', (\n el: React.FunctionComponent<PageProps> | React.ComponentClass<PageProps>,\n _,\n R: typeof React,\n customWrapper\n ) => {\n const isReactComponent = isClassComponent(R, el)\n\n return R.forwardRef((props, ref) => {\n const newProps: React.ComponentProps<any> = { ...props }\n const refs = isReactComponent ? { ref: ref } : {\n forwardedRef: ref,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: ref\n }\n\n return h(\n customWrapper || 'taro-pull-to-refresh-core',\n null,\n h(el, {\n ...newProps,\n ...refs\n })\n )\n })\n })\n\n hooks.tap('getDOMNode', (inst) => {\n // 由于react 18移除了ReactDOM.findDOMNode方法,修复H5端 Taro.createSelectorQuery设置in(scope)时,报错问题\n // https://zh-hans.react.dev/reference/react-dom/findDOMNode\n if (!inst) {\n return document\n } else if (inst instanceof HTMLElement) {\n return inst\n } else if (inst.$taroPath) {\n const el = document.getElementById(inst.$taroPath)\n return el ?? document\n }\n })\n }\n}\n\nexport function connectReactPage (\n R: typeof React,\n id: string\n) {\n return (Page: ReactPageComponent): React.ComponentClass<PageProps> => {\n // eslint-disable-next-line dot-notation\n const isReactComponent = isClassComponent(R, Page)\n const inject = (node?: Instance) => node && injectPageInstance(node, id)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n // 兼容 react-redux 7.20.1+\n reactReduxForwardedRef: inject\n }\n\n if (reactMeta.PageContext === EMPTY_OBJ) {\n reactMeta.PageContext = R.createContext('')\n }\n\n return class PageWrapper extends R.Component<PageProps, { hasError: boolean }> {\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError (error: Error) {\n Current.app?.onError?.(error.message + error.stack)\n return { hasError: true }\n }\n\n // React 16 uncaught error 会导致整个应用 crash,\n // 目前把错误缩小到页面\n componentDidCatch (error: Error, info: React.ErrorInfo) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(error)\n console.error(info.componentStack)\n }\n }\n\n render () {\n const children = this.state.hasError\n ? []\n : h(reactMeta.PageContext.Provider, { value: id }, h(Page, {\n ...this.props,\n ...refs\n }))\n\n if (process.env.TARO_PLATFORM === 'web') {\n return h(\n 'div',\n { id, className: 'taro_page' },\n children\n )\n } else {\n return h(\n 'root',\n { id },\n children\n )\n }\n }\n }\n }\n}\n\n/**\n * 桥接小程序 App 构造器和 React 渲染流程\n * @param App 用户编写的入口组件\n * @param react 框架\n * @param dom 框架渲染器\n * @param config 入口组件配置 app.config.js 的内容\n * @returns 传递给 App 构造器的对象 obj :App(obj)\n */\nexport function createReactApp (\n App: React.ComponentClass,\n react: typeof React,\n dom,\n config: AppConfig\n) {\n if (process.env.NODE_ENV !== 'production') {\n ensure(!!dom, '构建 React/Nerv 项目请把 process.env.FRAMEWORK 设置为 \\'react\\'/\\'preact\\'/\\'nerv\\' ')\n }\n\n reactMeta.R = react\n h = react.createElement\n ReactDOM = dom\n Fragment = react.Fragment\n const appInstanceRef = react.createRef<ReactAppInstance>()\n const isReactComponent = isClassComponent(react, App)\n let appWrapper: AppWrapper\n let appWrapperResolver: (value: AppWrapper) => void\n const appWrapperPromise = new Promise<AppWrapper>(resolve => (appWrapperResolver = resolve))\n\n setReconciler(ReactDOM)\n\n function getAppInstance (): ReactAppInstance | null {\n return appInstanceRef.current\n }\n\n function waitAppWrapper (cb: () => void) {\n /**\n * 当同个事件触发多次时,waitAppWrapper 会出现同步和异步任务的执行顺序问题,\n * 导致某些场景下 onShow 会优于 onLaunch 执行\n */\n appWrapperPromise.then(() => cb())\n // appWrapper ? cb() : appWrapperPromise.then(() => cb())\n }\n\n function renderReactRoot () {\n let appId = 'app'\n if (process.env.TARO_PLATFORM === 'web') {\n appId = config?.appId || appId\n }\n const container = document.getElementById(appId) as unknown as Element\n if ((react.version || '').startsWith('18')) {\n const root = ReactDOM.createRoot(container)\n root.render?.(h(AppWrapper))\n } else {\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render?.(h(AppWrapper), container)\n }\n }\n\n class AppWrapper extends react.Component {\n // run createElement() inside the render function to make sure that owner is right\n private pages: Array<() => PageComponent> = []\n private elements: Array<PageComponent> = []\n\n constructor (props) {\n super(props)\n appWrapper = this\n appWrapperResolver(this)\n }\n\n public mount (pageComponent: ReactPageComponent, id: string, cb: () => void) {\n const pageWrapper = connectReactPage(react, id)(pageComponent)\n const key = id + pageKeyId()\n const page = () => h(pageWrapper, { key, tid: id })\n this.pages.push(page)\n this.forceUpdate((...args) => {\n perf.stop(PAGE_INIT)\n return cb(...args)\n })\n }\n\n public unmount (id: string, cb: () => void) {\n const elements = this.elements\n const idx = elements.findIndex(item => item.props.tid === id)\n elements.splice(idx, 1)\n this.forceUpdate(cb)\n }\n\n public render () {\n const { pages, elements } = this\n\n while (pages.length > 0) {\n const page = pages.pop()!\n elements.push(page())\n }\n\n let props: React.ComponentProps<any> | null = null\n\n if (isReactComponent) {\n props = { ref: appInstanceRef }\n }\n\n return h(\n App,\n props,\n process.env.TARO_PLATFORM === 'web' ? h(Fragment ?? 'div', null, elements.slice()) : elements.slice()\n )\n }\n }\n\n if (process.env.TARO_PLATFORM !== 'web') {\n renderReactRoot()\n }\n\n const [ONLAUNCH, ONSHOW, ONHIDE] = hooks.call('getMiniLifecycleImpl')!.app\n\n const appObj: AppInstance = Object.create({\n render (cb: () => void) {\n appWrapper.forceUpdate(cb)\n },\n\n mount (component: ReactPageComponent, id: string, cb: () => void) {\n if (appWrapper) {\n appWrapper.mount(component, id, cb)\n } else {\n appWrapperPromise.then(appWrapper => appWrapper.mount(component, id, cb))\n }\n },\n\n unmount (id: string, cb: () => void) {\n if (appWrapper) {\n appWrapper.unmount(id, cb)\n } else {\n appWrapperPromise.then(appWrapper => appWrapper.unmount(id, cb))\n }\n }\n }, {\n config: setDefaultDescriptor({\n configurable: true,\n value: config\n }),\n\n [ONLAUNCH]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n if (process.env.TARO_PLATFORM === 'web') {\n // 由于 H5 路由初始化的时候会清除 app 下的 dom 元素,所以需要在路由初始化后执行 render\n renderReactRoot()\n }\n\n const onLaunch = () => {\n // 用户编写的入口组件实例\n const app = getAppInstance()\n this.$app = app\n\n if (app) {\n // 把 App Class 上挂载的额外属性同步到全局 app 对象中\n if (app.taroGlobalData) {\n const globalData = app.taroGlobalData\n const keys = Object.keys(globalData)\n const descriptors = Object.getOwnPropertyDescriptors(globalData)\n keys.forEach(key => {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: true,\n get () {\n return globalData[key]\n },\n set (value) {\n globalData[key] = value\n }\n })\n })\n Object.defineProperties(this, descriptors)\n }\n\n app.onLaunch?.(options)\n }\n triggerAppHook('onLaunch', options)\n }\n\n waitAppWrapper(onLaunch)\n }\n }),\n\n [ONSHOW]: setDefaultDescriptor({\n value (options) {\n setRouterParams(options)\n\n const onShow = () => {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidShow\n app?.componentDidShow?.(options)\n // functional component, useDidShow\n triggerAppHook('onShow', options)\n }\n\n waitAppWrapper(onShow)\n }\n }),\n\n [ONHIDE]: setDefaultDescriptor({\n value () {\n const onHide = () => {\n /**\n * trigger lifecycle\n */\n const app = getAppInstance()\n // class component, componentDidHide\n app?.componentDidHide?.()\n // functional component, useDidHide\n triggerAppHook('onHide')\n }\n\n waitAppWrapper(onHide)\n }\n }),\n\n onError: setDefaultDescriptor({\n value (error: string) {\n const onError = () => {\n const app = getAppInstance()\n app?.onError?.(error)\n triggerAppHook('onError', error)\n if (process.env.NODE_ENV !== 'production' && error?.includes('Minified React error')) {\n console.warn('React 出现报错,请打开编译配置 mini.debugReact 查看报错详情:https://docs.taro.zone/docs/config-detail#minidebugreact')\n }\n }\n\n waitAppWrapper(onError)\n }\n }),\n\n onUnhandledRejection: setDefaultDescriptor({\n value (res: unknown) {\n const onUnhandledRejection = () => {\n const app = getAppInstance()\n app?.onUnhandledRejection?.(res)\n triggerAppHook('onUnhandledRejection', res)\n }\n\n waitAppWrapper(onUnhandledRejection)\n }\n }),\n\n onPageNotFound: setDefaultDescriptor({\n value (res: unknown) {\n const onPageNotFound = () => {\n const app = getAppInstance()\n app?.onPageNotFound?.(res)\n triggerAppHook('onPageNotFound', res)\n }\n\n waitAppWrapper(onPageNotFound)\n }\n })\n })\n\n function triggerAppHook (lifecycle: keyof PageLifeCycle | keyof AppInstance, ...option) {\n const instance = getPageInstance(HOOKS_APP_ID)\n if (instance) {\n const app = getAppInstance()\n const func = hooks.call('getLifecycle', instance, lifecycle)\n if (Array.isArray(func)) {\n func.forEach(cb => cb.apply(app, option))\n }\n }\n }\n\n Current.app = appObj\n return appObj\n}\n","import {\n addLeadingSlash, CONTEXT_ACTIONS, Current, document, eventCenter,\n eventHandler, getOnHideEventKey, getOnReadyEventKey, getOnShowEventKey, getPageInstance, getPath,\n incrementId, injectPageInstance, ON_HIDE, ON_READY, ON_SHOW,\n removePageInstance, requestAnimationFrame, safeExecute, window\n} from '@tarojs/runtime'\nimport { EMPTY_OBJ, ensure, hooks, isUndefined } from '@tarojs/shared'\n\nimport { setReconciler } from './connect'\nimport { reactMeta } from './react-meta'\nimport { isClassComponent } from './utils'\n\nimport type { Instance, MpInstance, TaroRootElement } from '@tarojs/runtime'\nimport type { AppInstance, PageInstance } from '@tarojs/taro'\nimport type { Func } from '@tarojs/taro/types/compile'\nimport type React from 'react'\n\ndeclare const getCurrentPages: () => PageInstance[]\n\nconst getNativeCompId = incrementId()\nlet h: typeof React.createElement\nlet ReactDOM\nlet nativeComponentApp: AppInstance\ninterface InitNativeComponentEntryParams {\n R: typeof React\n ReactDOM: typeof ReactDOM\n cb?: Func\n // 是否使用默认的 DOM 入口 - app;默认为true,false的时候,会创建一个新的dom并且把它挂载在 app 下面\n isDefaultEntryDom?: boolean\n}\n\nfunction initNativeComponentEntry (params: InitNativeComponentEntryParams) {\n const { R, ReactDOM, cb, isDefaultEntryDom = true } = params\n interface IEntryState {\n components: {\n compId: string\n element: React.ReactElement\n }[]\n }\n\n interface IWrapperProps {\n compId: string\n getCtx: () => any\n renderComponent: (ctx: any) => React.ReactElement\n }\n\n class NativeComponentWrapper extends R.Component<IWrapperProps, Record<any, any>> {\n root = R.createRef<TaroRootElement>()\n ctx = this.props.getCtx()\n\n componentDidMount () {\n this.ctx.component = this\n const rootElement = this.root.current!\n rootElement.ctx = this.ctx\n rootElement.performUpdate(true)\n }\n\n render () {\n return (\n h(\n 'root',\n {\n ref: this.root,\n id: this.props.compId\n },\n this.props.renderComponent(this.ctx)\n )\n )\n }\n }\n\n class Entry extends R.Component<Record<any, any>, IEntryState> {\n state: IEntryState = {\n components: []\n }\n\n componentDidMount () {\n if (isDefaultEntryDom) {\n Current.app = this\n } else {\n nativeComponentApp = this\n }\n cb && cb()\n }\n\n mount (Component, compId, getCtx, cb?) {\n const isReactComponent = isClassComponent(R, Component)\n const inject = (node?: Instance) => node && injectPageInstance(node, compId)\n const refs = isReactComponent ? { ref: inject } : {\n forwardedRef: inject,\n reactReduxForwardedRef: inject\n }\n if (reactMeta.PageContext === EMPTY_OBJ) {\n reactMeta.PageContext = R.createContext('')\n }\n const item = {\n compId,\n element: h(NativeComponentWrapper, {\n key: compId,\n compId,\n getCtx,\n renderComponent (ctx) {\n return h(\n reactMeta.PageContext.Provider,\n { value: compId },\n h(\n Component,\n {\n ...(ctx.data ||= {}).props,\n ...refs,\n $scope: ctx\n }\n )\n )\n }\n })\n }\n this.setState({\n components: [...this.state.components, item]\n }, () => cb && cb())\n }\n\n unmount (compId, cb?) {\n const components = this.state.components\n const index = components.findIndex(item => item.compId === compId)\n const next = [...components.slice(0, index), ...components.slice(index + 1)]\n this.setState({\n components: next\n }, () => {\n removePageInstance(compId)\n cb && cb()\n })\n }\n\n render () {\n const components = this.state.components\n\n return (\n components.map(({ element }) => element)\n )\n }\n }\n\n setReconciler(ReactDOM)\n\n let app = document.getElementById('app')\n if (!isDefaultEntryDom && !nativeComponentApp) {\n // create\n const nativeApp = document.createElement('nativeComponent')\n // insert\n app?.parentNode?.appendChild(nativeApp)\n app = nativeApp\n }\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render(\n h(Entry, {}),\n app\n )\n}\n\nexport function createNativePageConfig (Component, pageName: string, data: Record<string, unknown>, react: typeof React, reactDOM: typeof ReactDOM, pageConfig) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactDOM\n setReconciler(ReactDOM)\n const [\n ONLOAD,\n ONUNLOAD,\n ONREADY,\n ONSHOW,\n ONHIDE,\n LIFECYCLES,\n SIDE_EFFECT_LIFECYCLES\n ] = hooks.call('getMiniLifecycleImpl')!.page\n let unmounting = false\n let prepareMountList: (() => void)[] = []\n let pageElement: TaroRootElement | null = null\n let loadResolver: (...args: unknown[]) => void\n let hasLoaded: Promise<void>\n const id = pageName ?? `taro_page_${getNativeCompId()}`\n function setCurrentRouter (page: MpInstance) {\n const router = page.route || page.__route__ || page.$taroPath\n Current.router = {\n params: page.$taroParams!,\n path: addLeadingSlash(router),\n $taroPath: page.$taroPath,\n onReady: getOnReadyEventKey(id),\n onShow: getOnShowEventKey(id),\n onHide: getOnHideEventKey(id)\n }\n if (!isUndefined(page.exitState)) {\n Current.router.exitState = page.exitState\n }\n }\n\n const pageObj: Record<string, any> = {\n options: pageConfig,\n [ONLOAD] (this: MpInstance, options: Readonly<Record<string, unknown>> = {}, cb?: TaroGeneral.TFunc) {\n hasLoaded = new Promise(resolve => { loadResolver = resolve })\n Current.page = this as any\n this.config = pageConfig || {}\n // this.$taroPath 是页面唯一标识\n const uniqueOptions = Object.assign({}, options, { $taroTimestamp: Date.now() })\n const $taroPath = this.$taroPath = getPath(id, uniqueOptions)\n\n // this.$taroParams 作为暴露给开发者的页面参数对象,可以被随意修改\n if (this.$taroParams == null) {\n this.$taroParams = uniqueOptions\n }\n\n setCurrentRouter(this)\n window.trigger(CONTEXT_ACTIONS.INIT, $taroPath)\n\n const mountCallback = () => {\n pageElement = document.getElementById($taroPath)\n ensure(pageElement !== null, '没有找到页面实例。')\n safeExecute($taroPath, ONLOAD, this.$taroParams)\n loadResolver()\n pageElement.ctx = this\n pageElement.performUpdate(true, cb)\n }\n\n const mount = () => {\n if (!Current.app) {\n initNativeComponentEntry({\n R: react,\n ReactDOM,\n cb: () => {\n Current.app!.mount!(Component, $taroPath, () => this, mountCallback)\n }\n })\n } else {\n Current.app!.mount!(Component, $taroPath, () => this, mountCallback)\n }\n }\n\n if (unmounting) {\n prepareMountList.push(mount)\n } else {\n mount()\n }\n },\n [ONUNLOAD] () {\n const $taroPath = this.$taroPath\n // 销毁当前页面的上下文信息\n window.trigger(CONTEXT_ACTIONS.DESTORY, $taroPath)\n // 触发onUnload生命周期\n safeExecute($taroPath, ONUNLOAD)\n resetCurrent()\n unmounting = true\n Current.app!.unmount!($taroPath, () => {\n unmounting = false\n removePageInstance($taroPath)\n if (pageElement) {\n pageElement.ctx = null\n pageElement = null\n }\n if (prepareMountList.length) {\n prepareMountList.forEach(fn => fn())\n prepareMountList = []\n }\n })\n },\n [ONREADY] () {\n hasLoaded.then(() => {\n // 触发生命周期\n safeExecute(this.$taroPath, ON_READY)\n // 通过事件触发子组件的生命周期\n requestAnimationFrame(() => eventCenter.trigger(getOnReadyEventKey(id)))\n this.onReady.called = true\n })\n },\n [ONSHOW] (options = {}) {\n hasLoaded.then(() => {\n // 设置 Current 的 page 和 router\n Current.page = this as any\n setCurrentRouter(this)\n // 恢复上下文信息\n window.trigger(CONTEXT_ACTIONS.RECOVER, this.$taroPath)\n // 触发生命周期\n safeExecute(this.$taroPath, ON_SHOW, options)\n // 通过事件触发子组件的生命周期\n requestAnimationFrame(() => eventCenter.trigger(getOnShowEventKey(id)))\n })\n },\n [ONHIDE] () {\n // 缓存当前页面上下文信息\n window.trigger(CONTEXT_ACTIONS.RESTORE, this.$taroPath)\n // 设置 Current 的 page 和 router\n if (Current.page === this) {\n Current.page = null\n Current.router = null\n }\n // 触发生命周期\n safeExecute(this.$taroPath, ON_HIDE)\n // 通过事件触发子组件的生命周期\n eventCenter.trigger(getOnHideEventKey(id))\n },\n }\n\n function resetCurrent () {\n // 小程序插件页面卸载之后返回到宿主页面时,需重置Current页面和路由。否则引发插件组件二次加载异常 fix:#11991\n Current.page = null\n Current.router = null\n }\n\n LIFECYCLES.forEach((lifecycle) => {\n pageObj[lifecycle] = function () {\n return safeExecute(this.$taroPath, lifecycle, ...arguments)\n }\n })\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n SIDE_EFFECT_LIFECYCLES.forEach(lifecycle => {\n if (Component[lifecycle] ||\n Component.prototype?.[lifecycle] ||\n Component[lifecycle.replace(/^on/, 'enable')]\n ) {\n pageObj[lifecycle] = function (...args) {\n const target = args[0]?.target\n if (target?.id) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target.dataset = element.dataset\n }\n }\n return safeExecute(this.$taroPath, lifecycle, ...args)\n }\n }\n })\n\n pageObj.eh = eventHandler\n\n if (!isUndefined(data)) {\n pageObj.data = data\n }\n\n hooks.call('modifyPageObject', pageObj)\n\n return pageObj\n}\n\nexport function createH5NativeComponentConfig (\n Component,\n react: typeof React,\n reactdom: typeof ReactDOM,\n) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactdom\n setReconciler(ReactDOM)\n\n return Component\n}\n\nexport function createNativeComponentConfig (Component, react: typeof React, reactdom, componentConfig) {\n reactMeta.R = react\n h = react.createElement\n ReactDOM = reactdom\n setReconciler(ReactDOM)\n const { isNewBlended } = componentConfig\n\n const componentObj: Record<string, any> = {\n options: componentConfig,\n properties: {\n props: {\n type: null,\n value: null,\n observer (_newVal, oldVal) {\n oldVal && this.component?.forceUpdate()\n }\n }\n },\n created () {\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n if (!app) {\n initNativeComponentEntry({\n R: react,\n ReactDOM,\n isDefaultEntryDom: !isNewBlended\n })\n }\n },\n attached () {\n const compId = this.compId = getNativeCompId()\n setCurrent(compId)\n this.config = componentConfig\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n app!.mount!(Component, compId, () => this, () => {\n const instance = getPageInstance(compId)\n\n if (instance && instance.node) {\n const el = document.getElementById(instance.node.uid)\n\n if (el) {\n el.ctx = this\n }\n }\n })\n },\n ready () {\n safeExecute(this.compId, 'onReady')\n },\n detached () {\n resetCurrent()\n const app = (isNewBlended ? nativeComponentApp : Current.app)\n app!.unmount!(this.compId)\n },\n pageLifetimes: {\n show (options) {\n safeExecute(this.compId, 'onShow', options)\n },\n hide () {\n safeExecute(this.compId, 'onHide')\n }\n },\n methods: {\n eh: eventHandler,\n onLoad (options) {\n safeExecute(this.compId, 'onLoad', options)\n },\n onUnload () {\n safeExecute(this.compId, 'onUnload')\n }\n }\n }\n\n function resetCurrent () {\n // 小程序插件页面卸载之后返回到宿主页面时,需重置Current页面和路由。否则引发插件组件二次加载异常 fix:#11991\n Current.page = null\n Current.router = null\n }\n\n // onShareAppMessage 和 onShareTimeline 一样,会影响小程序右上方按钮的选项,因此不能默认注册。\n if (\n Component.onShareAppMessage ||\n Component.prototype?.onShareAppMessage ||\n Component.enableShareAppMessage\n ) {\n componentObj.methods.onShareAppMessage = function (options) {\n const target = options?.target\n if (target) {\n const id = target.id\n const element = document.getElementById(id)\n if (element) {\n target!.dataset = element.dataset\n }\n }\n return safeExecute(this.compId, 'onShareAppMessage', options)\n }\n }\n if (\n Component.onShareTimeline ||\n Component.prototype?.onShareTimeline ||\n Component.enableShareTimeline\n ) {\n componentObj.methods.onShareTimeline = function () {\n return safeExecute(this.compId, 'onShareTimeline')\n }\n }\n\n return componentObj\n}\n\nfunction setCurrent (compId: string) {\n if (!getCurrentPages || typeof getCurrentPages !== 'function') return\n\n const pages = getCurrentPages()\n const currentPage = pages[pages.length - 1]\n if (Current.page === currentPage) return\n\n Current.page = currentPage\n\n const route = (currentPage as any).route || (currentPage as any).__route__\n const router = {\n params: currentPage.options || {},\n path: addLeadingSlash(route),\n $taroPath: compId,\n onReady: '',\n onHide: '',\n onShow: ''\n }\n Current.router = router\n\n if (!currentPage.options) {\n // 例如在微信小程序中,页面 options 的设置时机比组件 attached 慢\n Object.defineProperty(currentPage, 'options', {\n enumerable: true,\n configurable: true,\n get () {\n return this._optionsValue\n },\n set (value) {\n router.params = value\n this._optionsValue = value\n }\n })\n }\n}\n","import { hooks } from '@tarojs/shared'\n\nimport * as taroHooks from './hooks'\n\nhooks.tap('initNativeApi', function (taro) {\n for (const hook in taroHooks) {\n taro[hook] = taroHooks[hook]\n }\n})\n\nif (process.env.FRAMEWORK === 'preact' && process.env.TARO_PLATFORM === 'mini') {\n const options = require('preact').options\n const oldVNodeHook = options.vnode\n const oldDiffedHook = options.diffed\n options.vnode = vnode => {\n const { type, props } = vnode\n let normalizedProps = props\n\n // only normalize props on Element nodes\n if (typeof type === 'string') {\n normalizedProps = {}\n\n for (let i in props) {\n const value = props[i]\n\n if (/^on/.test(i)) {\n i = i.toLowerCase()\n }\n\n if (type === 'map' && i === 'onregionchange') {\n // map 组件的 regionchange 事件非常特殊,详情:https://github.com/NervJS/taro/issues/5766\n normalizedProps.onbegin = value\n normalizedProps.onend = value\n continue\n }\n\n normalizedProps[i] = value\n }\n\n vnode.props = normalizedProps\n }\n\n if (oldVNodeHook) oldVNodeHook(vnode)\n }\n options.diffed = function (newVNode) {\n const domProp = Object.keys(newVNode).find(k => (newVNode[k]?.setAttribute))\n const dom = domProp ? newVNode[domProp] : null\n const newVNodeProps = newVNode.props\n if (dom) { /** ElementNode */\n for (const propName in newVNodeProps) {\n const propValue = newVNodeProps[propName]\n if (propValue === false && dom.props?.[propName] === undefined) {\n // 值为 false 的属性在 Preact 的 diff 中被 removeAttribute 了,这里手动 setAttribute\n // fix https://github.com/NervJS/taro/issues/11197\n dom.setAttribute(propName, propValue)\n }\n }\n }\n if (oldDiffedHook) oldDiffedHook(newVNode)\n }\n\n hooks.tap('modifyMpEvent', e => {\n const type = e.type\n if (type === 'tap') {\n e.type = 'click'\n } else if (type === 'focus') {\n // 兼容 preact/compat/src/render.js options.vnode 的处理逻辑\n e.type = 'focusin'\n } else if (type === 'blur') {\n e.type = 'focusout'\n }\n })\n // hooks.modifyDispatchEventImpls?.push(e => {\n // })\n}\n\nexport * from './connect'\nexport * from './connect-native'\nexport * from './hooks'\n"],"names":["h","ReactDOM"],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@tarojs/plugin-framework-react",
3
- "version": "4.0.0-beta.10",
3
+ "version": "4.0.0-beta.100",
4
4
  "description": "React/Preact/Nerv 框架插件",
5
- "author": "drchan",
5
+ "author": "O2Team",
6
6
  "homepage": "https://github.com/nervjs/taro",
7
7
  "license": "MIT",
8
8
  "main": "index.js",
@@ -21,42 +21,38 @@
21
21
  "bugs": {
22
22
  "url": "https://github.com/NervJS/taro/issues"
23
23
  },
24
+ "engines": {
25
+ "node": ">= 18"
26
+ },
24
27
  "dependencies": {
25
- "acorn": "^8.0.4",
26
- "acorn-walk": "^8.0.0",
28
+ "acorn": "^8.11.3",
29
+ "acorn-walk": "^8.3.2",
27
30
  "lodash": "^4.17.21",
28
- "@tarojs/helper": "4.0.0-beta.10",
29
- "@tarojs/service": "4.0.0-beta.10"
31
+ "tslib": "^2.6.2"
30
32
  },
31
33
  "devDependencies": {
32
- "@babel/core": "^7.14.5",
33
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
34
- "@preact/preset-vite": "^2.5.0",
35
- "@prefresh/babel-plugin": "^0.4.1",
36
- "@prefresh/core": "^1.3.4",
37
- "@prefresh/webpack": "^3.2.3",
38
- "@vitejs/plugin-react": "^4.1.0",
39
- "esbuild": "~0.19.5",
40
- "preact": "^10.10.0",
41
- "react": "^18.2.0",
42
- "react-dom": "^18.2.0",
43
- "react-refresh": "^0.11.0",
44
- "rollup": "^3.8.1",
45
- "rollup-plugin-node-externals": "^5.0.0",
46
- "rollup-plugin-ts": "^3.0.2",
47
- "typescript": "^4.7.4",
34
+ "webpack-chain": "^6.5.1",
35
+ "@types/react": "^18.2.79",
36
+ "@types/react-dom": "^18.2.25",
48
37
  "vite": "^4.2.0",
49
- "webpack": "5.78.0",
50
- "@tarojs/taro": "4.0.0-beta.10",
51
- "@tarojs/runtime": "4.0.0-beta.10",
52
- "@tarojs/shared": "4.0.0-beta.10"
38
+ "@tarojs/helper": "4.0.0-beta.100",
39
+ "@tarojs/runtime": "4.0.0-beta.100",
40
+ "@tarojs/shared": "4.0.0-beta.100",
41
+ "@tarojs/service": "4.0.0-beta.100",
42
+ "@tarojs/taro": "4.0.0-beta.100"
53
43
  },
54
44
  "peerDependencies": {
55
- "@vitejs/plugin-react": "^4.1.0",
56
- "react": ">=17",
57
- "vite": "^4.2.0",
58
- "@tarojs/runtime": "~4.0.0-beta.10",
59
- "@tarojs/shared": "~4.0.0-beta.10"
45
+ "@pmmmwh/react-refresh-webpack-plugin": "*",
46
+ "@preact/preset-vite": "^2",
47
+ "@prefresh/webpack": "^4",
48
+ "@vitejs/plugin-react": "^4",
49
+ "preact": "^10",
50
+ "react": "^18",
51
+ "vite": "^4",
52
+ "webpack": "^5",
53
+ "@tarojs/helper": "4.0.0-beta.100",
54
+ "@tarojs/runtime": "4.0.0-beta.100",
55
+ "@tarojs/shared": "4.0.0-beta.100"
60
56
  },
61
57
  "peerDependenciesMeta": {
62
58
  "@pmmmwh/react-refresh-webpack-plugin": {
@@ -77,15 +73,19 @@
77
73
  "react": {
78
74
  "optional": true
79
75
  },
80
- "react-refresh": {
76
+ "vite": {
81
77
  "optional": true
82
78
  },
83
- "vite": {
79
+ "webpack": {
84
80
  "optional": true
85
81
  }
86
82
  },
87
83
  "scripts": {
88
- "build": "rollup -c --bundleConfigAsCjs",
89
- "dev": "rollup -c -w --bundleConfigAsCjs"
84
+ "prod": "pnpm run build",
85
+ "prebuild": "run-s clean",
86
+ "build": "pnpm run rollup --environment NODE_ENV:production",
87
+ "clean": "rimraf --impl=move-remove dist",
88
+ "dev": "pnpm run rollup --environment NODE_ENV:development -w",
89
+ "rollup": "rollup --config rollup.config.ts --configPlugin typescript"
90
90
  }
91
91
  }