@dimina/compiler 1.0.16 → 1.1.0

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.
@@ -1,33 +1,16 @@
1
- //#region \0rolldown/runtime.js
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
- key = keys[i];
11
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
- get: ((k) => from[k]).bind(null, key),
13
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
- });
15
- }
16
- return to;
17
- };
18
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
- value: mod,
20
- enumerable: true
21
- }) : target, mod));
22
- //#endregion
1
+ const require_rolldown_runtime = require("./rolldown-runtime-D6vf50IK.cjs");
23
2
  let node_path = require("node:path");
24
- node_path = __toESM(node_path, 1);
3
+ node_path = require_rolldown_runtime.__toESM(node_path, 1);
25
4
  let node_process = require("node:process");
26
- node_process = __toESM(node_process, 1);
5
+ node_process = require_rolldown_runtime.__toESM(node_process, 1);
27
6
  let node_fs = require("node:fs");
28
- node_fs = __toESM(node_fs, 1);
7
+ node_fs = require_rolldown_runtime.__toESM(node_fs, 1);
29
8
  let node_os = require("node:os");
30
- node_os = __toESM(node_os, 1);
9
+ node_os = require_rolldown_runtime.__toESM(node_os, 1);
10
+ let oxc_parser = require("oxc-parser");
11
+ let oxc_walker = require("oxc-walker");
12
+ let node_crypto = require("node:crypto");
13
+ node_crypto = require_rolldown_runtime.__toESM(node_crypto, 1);
31
14
  //#region src/common/path-utils.js
32
15
  var WINDOWS_FS_PATH_RE = /^(?:[a-zA-Z]:[\\/]|\\\\)/;
33
16
  function isWindowsFsPath(targetPath) {
@@ -55,19 +38,6 @@ function getRelativePosixPath(targetPath, rootPath) {
55
38
  return normalizeToPosixPath(targetPath).replace(normalizeToPosixPath(rootPath), "").replace(/^\//, "");
56
39
  }
57
40
  //#endregion
58
- //#region src/common/art.js
59
- var artCode = `
60
- ██████╗ ██╗███╗ ███╗██╗███╗ ██╗ █████╗
61
- ██╔══██╗██║████╗ ████║██║████╗ ██║██╔══██╗
62
- ██║ ██║██║██╔████╔██║██║██╔██╗ ██║███████║
63
- ██║ ██║██║██║╚██╔╝██║██║██║╚██╗██║██╔══██║
64
- ██████╔╝██║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║
65
- ╚═════╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝
66
- `;
67
- function art_default() {
68
- console.log(artCode);
69
- }
70
- //#endregion
71
41
  //#region src/common/utils.js
72
42
  function hasCompileInfo(modulePath, list, preList) {
73
43
  const mergeList = Array.isArray(preList) ? [...preList, ...list] : list;
@@ -84,19 +54,31 @@ function getAbsolutePath(workPath, pagePath, src) {
84
54
  return node_path.default.resolve(workPath, relativePath, src);
85
55
  }
86
56
  var assetsMap = {};
57
+ function isPathInside(rootPath, targetPath) {
58
+ const relativePath = node_path.default.relative(rootPath, targetPath);
59
+ return relativePath === "" || !relativePath.startsWith(`..${node_path.default.sep}`) && relativePath !== ".." && !node_path.default.isAbsolute(relativePath);
60
+ }
61
+ function resolveAssetSourcePath(workPath, pagePath, src) {
62
+ const projectRoot = node_path.default.resolve(workPath);
63
+ if (src.startsWith("/")) return node_path.default.resolve(projectRoot, `.${src}`);
64
+ const normalizedPagePath = node_path.default.resolve(pagePath);
65
+ const pageDirectory = node_path.default.isAbsolute(pagePath) && isPathInside(projectRoot, normalizedPagePath) ? node_path.default.dirname(normalizedPagePath) : node_path.default.resolve(projectRoot, node_path.default.dirname(pagePath.replace(/^[/\\]+/, "")));
66
+ const resolvedPath = node_path.default.resolve(pageDirectory, src);
67
+ if (isPathInside(projectRoot, resolvedPath)) return resolvedPath;
68
+ return node_path.default.resolve(projectRoot, src.replace(/^(?:\.\.[/\\])+/, ""));
69
+ }
87
70
  /**
88
71
  * 将静态资源存储到 static 文件夹
89
72
  */
90
73
  function collectAssets(workPath, pagePath, src, targetPath, appId) {
91
74
  if (src.startsWith("http") || src.startsWith("//")) return src;
92
75
  if (!/\.(?:png|jpe?g|gif|svg)(?:\?.*)?$/.test(src)) return src;
93
- const relativePath = pagePath.split("/").slice(0, -1).join("/");
94
- const absolutePath = src.startsWith("/") ? workPath + src : node_path.default.resolve(workPath, relativePath, src);
76
+ const absolutePath = resolveAssetSourcePath(workPath, pagePath, src);
95
77
  if (assetsMap[absolutePath]) return assetsMap[absolutePath];
96
78
  try {
97
79
  const ext = `.${src.split(".").pop()}`;
98
80
  const dirPath = absolutePath.split(node_path.default.sep).slice(0, -1).join("/");
99
- const prefix = uuid();
81
+ const prefix = uuid(dirPath);
100
82
  const targetStatic = `${targetPath}/main/static`;
101
83
  if (!node_fs.default.existsSync(targetStatic)) node_fs.default.mkdirSync(targetStatic, { recursive: true });
102
84
  getFilesWithExtension(dirPath, ext).forEach((file) => {
@@ -122,15 +104,16 @@ function isString(o) {
122
104
  function transformRpx(styleText) {
123
105
  if (!isString(styleText)) return styleText;
124
106
  return styleText.replace(/([+-]?\d+(?:\.\d+)?)rpx/g, (_, pixel) => {
125
- return `${Number(pixel)}rem`;
107
+ const viewportWidth = Number((Number(pixel) / 7.5).toFixed(6));
108
+ return `${Object.is(viewportWidth, -0) ? 0 : viewportWidth}vw`;
126
109
  });
127
110
  }
128
- function uuid() {
129
- return Math.random().toString(36).slice(2, 7);
111
+ function uuid(str) {
112
+ return node_crypto.default.createHash("sha256").update(str).digest().readBigUInt64BE(0).toString(36);
130
113
  }
131
114
  var tagWhiteList = [
132
115
  "page",
133
- "wrapper",
116
+ "component-host",
134
117
  "block",
135
118
  "button",
136
119
  "camera",
@@ -171,6 +154,24 @@ var tagWhiteList = [
171
154
  "view",
172
155
  "web-view"
173
156
  ];
157
+ var miniProgramBuiltinTags = /* @__PURE__ */ new Set([
158
+ ...tagWhiteList,
159
+ "canvas",
160
+ "match-media",
161
+ "page-container",
162
+ "share-element",
163
+ "editor",
164
+ "audio",
165
+ "channel-live",
166
+ "channel-video",
167
+ "live-player",
168
+ "live-pusher",
169
+ "voip-room",
170
+ "ad",
171
+ "ad-custom",
172
+ "official-account",
173
+ "xr-frame"
174
+ ]);
174
175
  //#endregion
175
176
  //#region src/common/npm-resolver.js
176
177
  /**
@@ -343,24 +344,119 @@ var NpmResolver = class {
343
344
  var pathInfo = {};
344
345
  var configInfo = {};
345
346
  var npmResolver = null;
347
+ var DEFAULT_TEMPLATE_EXTS = [".wxml", ".ddml"];
348
+ var DEFAULT_STYLE_EXTS = [
349
+ ".wxss",
350
+ ".ddss",
351
+ ".less",
352
+ ".scss",
353
+ ".sass"
354
+ ];
355
+ var DEFAULT_VIEW_SCRIPT_EXTS = [".wxs"];
356
+ var DEFAULT_VIEW_SCRIPT_TAGS = ["wxs", "dds"];
357
+ var CUSTOM_TAB_BAR_COMPONENT_PATH = "/custom-tab-bar/index";
358
+ var STYLE_ISOLATION_VALUES = /* @__PURE__ */ new Set([
359
+ "isolated",
360
+ "apply-shared",
361
+ "shared"
362
+ ]);
363
+ var RESERVED_EXTS = /* @__PURE__ */ new Set([
364
+ ...DEFAULT_TEMPLATE_EXTS,
365
+ ...DEFAULT_STYLE_EXTS,
366
+ ...DEFAULT_VIEW_SCRIPT_EXTS,
367
+ ".js",
368
+ ".ts",
369
+ ".json"
370
+ ]);
371
+ var compilerOptions = normalizeFileTypes();
372
+ /**
373
+ * 将单项规范化为扩展名:去除首尾空白、转小写并补一个前导点。
374
+ * 仅接受字母、数字、连字符和下划线;空字符串、路径分隔符或其他元字符
375
+ * 均返回 null,由调用方丢弃。扩展名会用于生成尾部匹配正则和查找文件,
376
+ * 放行元字符可能导致误匹配。
377
+ */
378
+ function normalizeExt(raw) {
379
+ if (typeof raw !== "string") return null;
380
+ const v = raw.trim().toLowerCase().replace(/^\.+/, "");
381
+ if (!/^[a-z0-9_-]+$/.test(v)) return null;
382
+ return `.${v}`;
383
+ }
384
+ /**
385
+ * 将单项规范化为内联标签名:去除首尾空白、转小写并移除前导点。
386
+ * 标签名会用于拼接 Cheerio 选择器(如 transTagWxs),因此必须以字母开头,
387
+ * 且只能包含字母、数字、连字符和下划线。拒绝选择器元字符,避免 'qds,view'
388
+ * 误选并删除 <view>,破坏编译产物。
389
+ */
390
+ function normalizeTag(raw) {
391
+ if (typeof raw !== "string") return null;
392
+ const v = raw.trim().toLowerCase().replace(/^\.+/, "");
393
+ if (!/^[a-z][a-z0-9_-]*$/.test(v)) return null;
394
+ return v;
395
+ }
396
+ /**
397
+ * 合并并去重内置项和自定义项;内置项在前,顺序即同名文件的查找优先级。
398
+ * 传入 reserved 时,落在其中的自定义项被丢弃(防止占用其他角色/逻辑/配置的扩展名)。
399
+ */
400
+ function mergeUnique(builtins, custom, normalizer, reserved) {
401
+ const out = [...builtins];
402
+ const seen = new Set(builtins);
403
+ if (Array.isArray(custom)) for (const raw of custom) {
404
+ const n = normalizer(raw);
405
+ if (n && !seen.has(n) && !reserved?.has(n)) {
406
+ seen.add(n);
407
+ out.push(n);
408
+ }
409
+ }
410
+ return out;
411
+ }
412
+ /**
413
+ * 根据 options.fileTypes 生成本次构建使用的自定义扩展名和标签。
414
+ * viewScript 同时用于生成文件扩展名和内联标签。
415
+ */
416
+ function normalizeFileTypes(fileTypes = {}) {
417
+ const ft = fileTypes || {};
418
+ return {
419
+ templateExts: mergeUnique(DEFAULT_TEMPLATE_EXTS, ft.template, normalizeExt, RESERVED_EXTS),
420
+ styleExts: mergeUnique(DEFAULT_STYLE_EXTS, ft.style, normalizeExt, RESERVED_EXTS),
421
+ viewScriptExts: mergeUnique(DEFAULT_VIEW_SCRIPT_EXTS, ft.viewScript, normalizeExt, RESERVED_EXTS),
422
+ viewScriptTags: mergeUnique(DEFAULT_VIEW_SCRIPT_TAGS, ft.viewScript, normalizeTag)
423
+ };
424
+ }
346
425
  /**
347
426
  * 持久化编译过程的上下文
427
+ * @param {string} workPath 编译工作目录
428
+ * @param {{ fileTypes?: { template?: string[], style?: string[], viewScript?: string[] } }} [options] 构建选项
348
429
  */
349
- function storeInfo(workPath) {
430
+ function storeInfo(workPath, options = {}) {
350
431
  storePathInfo(workPath);
351
432
  storeProjectConfig();
352
433
  storeAppConfig();
353
434
  storePageConfig();
435
+ compilerOptions = normalizeFileTypes(options.fileTypes);
354
436
  return {
355
437
  pathInfo,
356
- configInfo
438
+ configInfo,
439
+ compilerOptions
357
440
  };
358
441
  }
359
442
  function resetStoreInfo(opts) {
360
443
  pathInfo = opts.pathInfo;
361
444
  configInfo = opts.configInfo;
445
+ compilerOptions = opts.compilerOptions || normalizeFileTypes();
362
446
  if (pathInfo.workPath) npmResolver = new NpmResolver(pathInfo.workPath);
363
447
  }
448
+ function getTemplateExts() {
449
+ return compilerOptions.templateExts;
450
+ }
451
+ function getStyleExts() {
452
+ return compilerOptions.styleExts;
453
+ }
454
+ function getViewScriptExts() {
455
+ return compilerOptions.viewScriptExts;
456
+ }
457
+ function getViewScriptTags() {
458
+ return compilerOptions.viewScriptTags;
459
+ }
364
460
  function storePathInfo(workPath) {
365
461
  pathInfo.workPath = workPath;
366
462
  if (node_process.default.env.TARGET_PATH) pathInfo.targetPath = node_process.default.env.TARGET_PATH;
@@ -420,6 +516,43 @@ function storePageConfig() {
420
516
  if (subPackages) subPackages.forEach((subPkg) => {
421
517
  collectionPageJson(subPkg.pages, subPkg.root);
422
518
  });
519
+ storeCustomTabBarConfig();
520
+ }
521
+ /**
522
+ * 微信会把 custom-tab-bar/index 作为每个 tab 页的直属组件创建。业务页面
523
+ * 不需要在 usingComponents 中显式声明它,因此编译阶段补一个内部组件引用,
524
+ * 让逻辑、视图和样式三个编译器都能沿现有依赖图收集该组件。
525
+ */
526
+ function storeCustomTabBarConfig() {
527
+ const tabBar = configInfo.appInfo?.tabBar;
528
+ if (tabBar?.custom !== true || !Array.isArray(tabBar.list)) return;
529
+ const componentJsonPath = node_path.default.join(pathInfo.workPath, "custom-tab-bar/index.json");
530
+ if (!node_fs.default.existsSync(componentJsonPath)) {
531
+ console.warn("[env] tabBar.custom 已启用,但找不到 custom-tab-bar/index.json");
532
+ return;
533
+ }
534
+ const dependencyName = `dimina-${uuid(CUSTOM_TAB_BAR_COMPONENT_PATH)}`;
535
+ storeComponentConfig({ usingComponents: { [dependencyName]: CUSTOM_TAB_BAR_COMPONENT_PATH } }, node_path.default.join(pathInfo.workPath, "app.json"));
536
+ const componentConfig = configInfo.componentInfo[CUSTOM_TAB_BAR_COMPONENT_PATH];
537
+ if (componentConfig) componentConfig.customTabBar = true;
538
+ for (const item of tabBar.list) {
539
+ const pagePath = typeof item?.pagePath === "string" ? item.pagePath.replace(/^\/+/, "") : "";
540
+ if (!pagePath || !configInfo.appInfo.pages?.includes(pagePath)) continue;
541
+ const pageConfig = configInfo.pageInfo[pagePath] ||= {};
542
+ pageConfig.usingComponents ||= {};
543
+ const declaredComponents = {
544
+ ...configInfo.appInfo.usingComponents || {},
545
+ ...pageConfig.usingComponents
546
+ };
547
+ let componentName = Object.entries(declaredComponents).find(([, componentPath]) => componentPath === CUSTOM_TAB_BAR_COMPONENT_PATH)?.[0] || dependencyName;
548
+ let suffix = 0;
549
+ while (declaredComponents[componentName] && declaredComponents[componentName] !== CUSTOM_TAB_BAR_COMPONENT_PATH) {
550
+ suffix++;
551
+ componentName = `${dependencyName}-${suffix}`;
552
+ }
553
+ pageConfig.usingComponents[componentName] = CUSTOM_TAB_BAR_COMPONENT_PATH;
554
+ pageConfig.customTabBar = { componentName };
555
+ }
423
556
  }
424
557
  /**
425
558
  * 匹配页面和对应的配置信息
@@ -473,19 +606,65 @@ function storeComponentConfig(pageJsonContent, pageFilePath) {
473
606
  }
474
607
  const cUsing = cContent.usingComponents || {};
475
608
  const isComponent = cContent.component || false;
609
+ const styleIsolation = resolveComponentStyleIsolation(cContent, componentFilePath);
476
610
  const cComponents = Object.keys(cUsing).reduce((acc, key) => {
477
611
  acc[key] = getModuleId(cUsing[key], componentFilePath);
478
612
  return acc;
479
613
  }, {});
480
614
  configInfo.componentInfo[moduleId] = {
481
- id: uuid(),
615
+ id: uuid(moduleId),
482
616
  path: moduleId,
483
617
  component: isComponent,
618
+ styleIsolation,
484
619
  usingComponents: cComponents
485
620
  };
486
621
  if (cContent.usingComponents && Object.keys(cContent.usingComponents).length > 0) storeComponentConfig(configInfo.componentInfo[moduleId], componentFilePath);
487
622
  }
488
623
  }
624
+ function getStaticProperty(objectExpression, propertyName) {
625
+ if (objectExpression?.type !== "ObjectExpression") return;
626
+ return objectExpression.properties?.find((property) => {
627
+ if (property.type !== "Property" || property.computed) return false;
628
+ return property.key?.name === propertyName || property.key?.value === propertyName;
629
+ })?.value;
630
+ }
631
+ function normalizeStyleIsolation(value) {
632
+ return STYLE_ISOLATION_VALUES.has(value) ? value : void 0;
633
+ }
634
+ /**
635
+ * styleIsolation can be declared either in component.json or in
636
+ * Component({ options }). The style compiler must know it before service
637
+ * runtime starts, so only statically-declared literal options participate.
638
+ * addGlobalClass is the legacy equivalent of apply-shared.
639
+ */
640
+ function resolveComponentStyleIsolation(componentConfig, componentJsonPath) {
641
+ const jsonValue = normalizeStyleIsolation(componentConfig?.styleIsolation);
642
+ if (jsonValue) return jsonValue;
643
+ const basePath = componentJsonPath.replace(/\.json$/i, "");
644
+ const scriptPath = [".js", ".ts"].map((ext) => `${basePath}${ext}`).find((candidate) => node_fs.default.existsSync(candidate));
645
+ if (!scriptPath) return "isolated";
646
+ try {
647
+ const { program } = (0, oxc_parser.parseSync)(scriptPath, getContentByPath(scriptPath), { sourceType: "unambiguous" });
648
+ let extractedValue;
649
+ (0, oxc_walker.walk)(program, { enter(expression) {
650
+ if (extractedValue) return;
651
+ if (expression?.type !== "CallExpression" || expression.callee?.type !== "Identifier" || expression.callee.name !== "Component") return;
652
+ const definition = expression.arguments?.[0];
653
+ const options = getStaticProperty(definition, "options");
654
+ const styleIsolation = getStaticProperty(options, "styleIsolation")?.value;
655
+ const normalized = normalizeStyleIsolation(styleIsolation);
656
+ if (normalized) {
657
+ extractedValue = normalized;
658
+ return;
659
+ }
660
+ if (getStaticProperty(options, "addGlobalClass")?.value === true) extractedValue = "apply-shared";
661
+ } });
662
+ if (extractedValue) return extractedValue;
663
+ } catch (error) {
664
+ console.warn(`[env] 无法解析组件样式隔离配置 ${scriptPath}: ${error.message}`);
665
+ }
666
+ return "isolated";
667
+ }
489
668
  /**
490
669
  * 转化为相对小程序根目录的绝对路径,作为模块唯一性 id
491
670
  * 支持 npm 组件解析
@@ -551,9 +730,12 @@ function getPages() {
551
730
  ...pageComponents
552
731
  };
553
732
  return {
554
- id: uuid(),
733
+ id: uuid(path),
555
734
  path,
556
- usingComponents: mergedComponents
735
+ appStyleScopeId: getAppStyleScopeId(),
736
+ sharedStyleScopeIds: collectSharedStyleScopeIds(mergedComponents),
737
+ usingComponents: mergedComponents,
738
+ customTabBar: pageInfo[path]?.customTabBar
557
739
  };
558
740
  });
559
741
  const subPages = {};
@@ -570,9 +752,12 @@ function getPages() {
570
752
  ...pageComponents
571
753
  };
572
754
  return {
573
- id: uuid(),
755
+ id: uuid(fullPath),
574
756
  path: fullPath,
575
- usingComponents: mergedComponents
757
+ appStyleScopeId: getAppStyleScopeId(),
758
+ sharedStyleScopeIds: collectSharedStyleScopeIds(mergedComponents),
759
+ usingComponents: mergedComponents,
760
+ customTabBar: pageInfo[fullPath]?.customTabBar
576
761
  };
577
762
  })
578
763
  };
@@ -582,19 +767,24 @@ function getPages() {
582
767
  subPages
583
768
  };
584
769
  }
770
+ function collectSharedStyleScopeIds(usingComponents) {
771
+ const result = [];
772
+ const visited = /* @__PURE__ */ new Set();
773
+ const visit = (componentPath) => {
774
+ if (visited.has(componentPath)) return;
775
+ visited.add(componentPath);
776
+ const component = configInfo.componentInfo[componentPath];
777
+ if (!component) return;
778
+ if (component.styleIsolation === "shared") result.push(component.id);
779
+ for (const childPath of Object.values(component.usingComponents || {})) visit(childPath);
780
+ };
781
+ for (const componentPath of Object.values(usingComponents || {})) visit(componentPath);
782
+ return result;
783
+ }
784
+ function getAppStyleScopeId() {
785
+ return uuid("app");
786
+ }
585
787
  //#endregion
586
- Object.defineProperty(exports, "__toESM", {
587
- enumerable: true,
588
- get: function() {
589
- return __toESM;
590
- }
591
- });
592
- Object.defineProperty(exports, "art_default", {
593
- enumerable: true,
594
- get: function() {
595
- return art_default;
596
- }
597
- });
598
788
  Object.defineProperty(exports, "collectAssets", {
599
789
  enumerable: true,
600
790
  get: function() {
@@ -625,6 +815,12 @@ Object.defineProperty(exports, "getAppName", {
625
815
  return getAppName;
626
816
  }
627
817
  });
818
+ Object.defineProperty(exports, "getAppStyleScopeId", {
819
+ enumerable: true,
820
+ get: function() {
821
+ return getAppStyleScopeId;
822
+ }
823
+ });
628
824
  Object.defineProperty(exports, "getComponent", {
629
825
  enumerable: true,
630
826
  get: function() {
@@ -655,12 +851,36 @@ Object.defineProperty(exports, "getPages", {
655
851
  return getPages;
656
852
  }
657
853
  });
854
+ Object.defineProperty(exports, "getStyleExts", {
855
+ enumerable: true,
856
+ get: function() {
857
+ return getStyleExts;
858
+ }
859
+ });
658
860
  Object.defineProperty(exports, "getTargetPath", {
659
861
  enumerable: true,
660
862
  get: function() {
661
863
  return getTargetPath;
662
864
  }
663
865
  });
866
+ Object.defineProperty(exports, "getTemplateExts", {
867
+ enumerable: true,
868
+ get: function() {
869
+ return getTemplateExts;
870
+ }
871
+ });
872
+ Object.defineProperty(exports, "getViewScriptExts", {
873
+ enumerable: true,
874
+ get: function() {
875
+ return getViewScriptExts;
876
+ }
877
+ });
878
+ Object.defineProperty(exports, "getViewScriptTags", {
879
+ enumerable: true,
880
+ get: function() {
881
+ return getViewScriptTags;
882
+ }
883
+ });
664
884
  Object.defineProperty(exports, "getWorkPath", {
665
885
  enumerable: true,
666
886
  get: function() {
@@ -673,6 +893,12 @@ Object.defineProperty(exports, "hasCompileInfo", {
673
893
  return hasCompileInfo;
674
894
  }
675
895
  });
896
+ Object.defineProperty(exports, "miniProgramBuiltinTags", {
897
+ enumerable: true,
898
+ get: function() {
899
+ return miniProgramBuiltinTags;
900
+ }
901
+ });
676
902
  Object.defineProperty(exports, "resetStoreInfo", {
677
903
  enumerable: true,
678
904
  get: function() {
@@ -697,6 +923,12 @@ Object.defineProperty(exports, "tagWhiteList", {
697
923
  return tagWhiteList;
698
924
  }
699
925
  });
926
+ Object.defineProperty(exports, "toMiniProgramModuleId", {
927
+ enumerable: true,
928
+ get: function() {
929
+ return toMiniProgramModuleId;
930
+ }
931
+ });
700
932
  Object.defineProperty(exports, "transformRpx", {
701
933
  enumerable: true,
702
934
  get: function() {