mbler 0.1.3-alpha → 0.1.3-alpna-r1

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.
Files changed (178) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +8 -4
  3. package/bin/mbler.js +12 -12
  4. package/bin/minify.js +58 -44
  5. package/lib/build/base.js +1 -297
  6. package/lib/build/build-g-config.json +12 -12
  7. package/lib/build/getModule.js +1 -182
  8. package/lib/build/index.js +1 -370
  9. package/lib/build/manifest.build.js +1 -103
  10. package/lib/build/mcVersion.js +1 -86
  11. package/lib/build/utils.js +1 -6
  12. package/lib/code-processor/c-handler-export.js +1 -12
  13. package/lib/code-processor/index.js +1 -141
  14. package/lib/code-processor/mtreehandler.js +1 -164
  15. package/lib/commander/index.js +1 -154
  16. package/lib/data/includes.json +13 -13
  17. package/lib/data/version.json +88 -88
  18. package/lib/git/clone.js +1 -28
  19. package/lib/git/index.js +1 -12
  20. package/lib/git/pull.js +1 -100
  21. package/lib/lang/__translate.js +1 -93
  22. package/lib/lang/en.js +1 -128
  23. package/lib/lang/index.js +1 -78
  24. package/lib/lang/zh.js +1 -146
  25. package/lib/loger/colors.js +1 -13
  26. package/lib/loger/index.js +1 -136
  27. package/lib/mcx/ast/index.js +1 -11
  28. package/lib/mcx/ast/prop.js +1 -78
  29. package/lib/mcx/ast/tag.js +1 -246
  30. package/lib/mcx/compile-component/lib.js +1 -106
  31. package/lib/mcx/compile-component/types.js +1 -2
  32. package/lib/mcx/compile-component/utils.js +1 -26
  33. package/lib/mcx/compile-mcx/compile.js +1 -34
  34. package/lib/mcx/compile-mcx/compiler/bundler.js +1 -0
  35. package/lib/mcx/compile-mcx/compiler/compileData.js +1 -0
  36. package/lib/mcx/compile-mcx/compiler/compileMain.js +1 -0
  37. package/lib/mcx/compile-mcx/compiler/index.js +1 -0
  38. package/lib/mcx/compile-mcx/compiler/utils.js +1 -0
  39. package/lib/mcx/compile-mcx/context.js +1 -19
  40. package/lib/mcx/compile-mcx/index.js +1 -10
  41. package/lib/mcx/compile-mcx/mcx/index.js +1 -2
  42. package/lib/mcx/compile-mcx/mcx/types.js +1 -2
  43. package/lib/mcx/compile-mcx/template/module.js +1 -42
  44. package/lib/mcx/compile-mcx/types.js +1 -2
  45. package/lib/mcx/compile-mcx/utils.node.js +1 -207
  46. package/lib/mcx/index.js +1 -13
  47. package/lib/mcx/test/index.js +1 -7
  48. package/lib/mcx/test.js +1 -21
  49. package/lib/mcx/types.js +1 -2
  50. package/lib/mcx/utils.js +1 -86
  51. package/lib/module-handler/index.js +1 -482
  52. package/lib/modules/create-game/mbler.config.json +13 -13
  53. package/lib/modules/create-game/src/Runner/RunnerManager.js +1 -113
  54. package/lib/modules/create-game/src/Runner/scriptRunner.js +1 -70
  55. package/lib/modules/create-game/src/config.js +1 -27
  56. package/lib/modules/create-game/src/constants.js +1 -19
  57. package/lib/modules/create-game/src/createGameModule.js +1 -24
  58. package/lib/modules/create-game/src/gameComponent/common/autoStop.js +1 -38
  59. package/lib/modules/create-game/src/gameComponent/common/lazyLoader.js +1 -76
  60. package/lib/modules/create-game/src/gameComponent/common/stopWatch/onTimeEvent.js +1 -36
  61. package/lib/modules/create-game/src/gameComponent/common/stopWatch/stopWatch.js +1 -90
  62. package/lib/modules/create-game/src/gameComponent/common/stopWatch/tickEvent.js +1 -29
  63. package/lib/modules/create-game/src/gameComponent/common/timer/onTimeEvent.js +1 -36
  64. package/lib/modules/create-game/src/gameComponent/common/timer/tickEvent.js +1 -29
  65. package/lib/modules/create-game/src/gameComponent/common/timer/timer.js +1 -87
  66. package/lib/modules/create-game/src/gameComponent/gameComponent.js +1 -53
  67. package/lib/modules/create-game/src/gameComponent/index.js +1 -31
  68. package/lib/modules/create-game/src/gameComponent/player/blockInteractionBlocker.js +1 -40
  69. package/lib/modules/create-game/src/gameComponent/player/entityInteractionBlocker.js +1 -48
  70. package/lib/modules/create-game/src/gameComponent/player/healthIndicator.js +1 -48
  71. package/lib/modules/create-game/src/gameComponent/player/regionMonitor.js +1 -22
  72. package/lib/modules/create-game/src/gameComponent/player/respawn.js +1 -59
  73. package/lib/modules/create-game/src/gameComponent/player/spawnProtector.js +1 -69
  74. package/lib/modules/create-game/src/gameComponent/region/regionProtecter.js +1 -53
  75. package/lib/modules/create-game/src/gameComponent/region/regionTeamChooser.js +1 -71
  76. package/lib/modules/create-game/src/gameComponent/region/regionTeamCleaner.js +1 -20
  77. package/lib/modules/create-game/src/gameComponent/view/infoScoreboard.js +1 -77
  78. package/lib/modules/create-game/src/gameComponent/view/teamScoreboard.js +1 -83
  79. package/lib/modules/create-game/src/gameContext.js +1 -6
  80. package/lib/modules/create-game/src/gameEngine.js +1 -139
  81. package/lib/modules/create-game/src/gameEvent/eventManager.js +1 -108
  82. package/lib/modules/create-game/src/gameEvent/eventSignal.js +1 -28
  83. package/lib/modules/create-game/src/gameEvent/events/buttonPush.js +1 -41
  84. package/lib/modules/create-game/src/gameEvent/events/inSlot.js +1 -77
  85. package/lib/modules/create-game/src/gameEvent/events/interval.js +1 -51
  86. package/lib/modules/create-game/src/gameEvent/events/itemUse.js +1 -36
  87. package/lib/modules/create-game/src/gameEvent/events/onBlock.js +1 -106
  88. package/lib/modules/create-game/src/gameEvent/events/regionEvents.js +1 -105
  89. package/lib/modules/create-game/src/gameEvent/events/signClick.js +1 -45
  90. package/lib/modules/create-game/src/gameEvent/gameEvent.js +1 -54
  91. package/lib/modules/create-game/src/gameEvent/index.js +1 -20
  92. package/lib/modules/create-game/src/gameEvent/mapEventSignal.js +1 -101
  93. package/lib/modules/create-game/src/gameEvent/subscription.js +1 -17
  94. package/lib/modules/create-game/src/gamePlayer/gamePlayer.js +1 -102
  95. package/lib/modules/create-game/src/gamePlayer/groupBuilder.js +1 -38
  96. package/lib/modules/create-game/src/gamePlayer/groupSet.js +1 -96
  97. package/lib/modules/create-game/src/gamePlayer/index.js +1 -25
  98. package/lib/modules/create-game/src/gamePlayer/playerGroup.js +1 -145
  99. package/lib/modules/create-game/src/gamePlayer/playerManager.js +1 -57
  100. package/lib/modules/create-game/src/gameRegion/gameRegion.js +1 -229
  101. package/lib/modules/create-game/src/gameRegion/index.js +1 -43
  102. package/lib/modules/create-game/src/gameRegion/regionHelper.js +1 -79
  103. package/lib/modules/create-game/src/gameState/common/autoStop.js +1 -39
  104. package/lib/modules/create-game/src/gameState/gameState.js +1 -169
  105. package/lib/modules/create-game/src/gameState/index.js +1 -7
  106. package/lib/modules/create-game/src/gameState/types.js +1 -35
  107. package/lib/modules/create-game/src/gameStructure/gameStructure.js +1 -36
  108. package/lib/modules/create-game/src/main.js +1 -86
  109. package/lib/modules/create-game/src/system/gameCommand.js +1 -107
  110. package/lib/modules/create-game/src/system/gameManager.js +1 -124
  111. package/lib/modules/create-game/src/system/globalPlayerManager.js +1 -119
  112. package/lib/modules/create-game/src/utils/GameError.js +1 -31
  113. package/lib/modules/create-game/src/utils/algorithm.js +1 -95
  114. package/lib/modules/create-game/src/utils/chunk.js +1 -63
  115. package/lib/modules/create-game/src/utils/deferredObject.js +1 -27
  116. package/lib/modules/create-game/src/utils/duration.js +1 -25
  117. package/lib/modules/create-game/src/utils/func.js +1 -20
  118. package/lib/modules/create-game/src/utils/index.js +1 -52
  119. package/lib/modules/create-game/src/utils/interfaces.js +1 -2
  120. package/lib/modules/create-game/src/utils/logger.js +1 -47
  121. package/lib/modules/create-game/src/utils/random.js +1 -76
  122. package/lib/modules/create-game/src/utils/vanila-data.js +1 -123
  123. package/lib/modules/create-game/src/utils/vector.js +1 -96
  124. package/lib/modules/gameLib/mbler.config.json +15 -15
  125. package/lib/modules/gameLib/src/config.js +1 -134
  126. package/lib/modules/gameLib/src/data.js +1 -77
  127. package/lib/modules/gameLib/src/entity.js +1 -256
  128. package/lib/modules/gameLib/src/event.js +1 -285
  129. package/lib/modules/gameLib/src/index.js +1 -20
  130. package/lib/modules/gameLib/src/loger.js +1 -21
  131. package/lib/modules/gameLib/src/ui.js +1 -209
  132. package/lib/modules/gameLib/src/utils.js +1 -122
  133. package/lib/modules/gutils/mbler.config.json +11 -11
  134. package/lib/modules/gutils/src/index.js +1 -22
  135. package/lib/modules/innerDef.json +4 -4
  136. package/lib/runTemp/File.js +1 -54
  137. package/lib/runTemp/config.json +3 -3
  138. package/lib/runTemp/index.js +1 -137
  139. package/lib/runTemp/securityFile.js +1 -93
  140. package/lib/start/addPack.js +1 -3
  141. package/lib/start/clean.js +1 -84
  142. package/lib/start/create.js +1 -146
  143. package/lib/start/dev.js +1 -99
  144. package/lib/start/getResConfig.js +1 -3
  145. package/lib/start/incg.js +1 -3
  146. package/lib/start/index.js +1 -207
  147. package/lib/start/init.js +1 -125
  148. package/lib/start/rechce.js +1 -57
  149. package/lib/start/unaddPack.js +1 -3
  150. package/lib/start/unincg.js +1 -67
  151. package/lib/start/version.js +1 -73
  152. package/lib/utils/index.js +1 -298
  153. package/lib/uuid/index.js +1 -27
  154. package/package.json +49 -1
  155. package/test/2x sword/behavior/scripts/index.js +24 -24
  156. package/test/2x sword/mbler.config.json +11 -11
  157. package/test/2x sword/package.json +13 -13
  158. package/test/README.md +7 -7
  159. package/test/des/index.js +19 -19
  160. package/test/des/mbler.config.json +4 -4
  161. package/test/des/package.json +6 -6
  162. package/test/initializer/index.js +5 -5
  163. package/test/initializer/mbler.config.json +4 -4
  164. package/test/initializer/package.json +6 -6
  165. package/test/mbler-int/behavior/res/items/mang_one_int.json +21 -21
  166. package/test/mbler-int/behavior/scripts/index.js +7 -7
  167. package/test/mbler-int/behavior/scripts/lib/event/index.js +19 -19
  168. package/test/mbler-int/behavior/scripts/lib/ui/Lore.js +18 -18
  169. package/test/mbler-int/behavior/scripts/lib/ui/baseUi.js +6 -6
  170. package/test/mbler-int/behavior/scripts/lib/ui/index.js +206 -206
  171. package/test/mbler-int/behavior/scripts/lib/utils/index.js +51 -51
  172. package/test/mbler-int/mbler.config.json +18 -18
  173. package/test/mbler-int/package.json +12 -12
  174. package/test/script-mbler/behavior/scripts/index.js +5 -0
  175. package/test/script-mbler/behavior/scripts/index.ts +5 -5
  176. package/test/script-mbler/mbler.config.json +14 -14
  177. package/test/script-mbler/package.json +15 -15
  178. package/lib/mcx/compile-mcx/_compile.js +0 -602
@@ -1,182 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- const fs = __importStar(require("fs/promises"));
36
- const path = __importStar(require("path"));
37
- const utils = __importStar(require("./../utils/index.js"));
38
- // 目录缓存
39
- const dirCache = new Map();
40
- let cacheList = null;
41
- const normalize = (v) => {
42
- return String(v || '').trim();
43
- };
44
- const parts = (v) => {
45
- return normalize(v)
46
- .split('.')
47
- .slice(0, 3)
48
- .map((n) => parseInt(n, 10) || 0);
49
- };
50
- // 比较版本号,返回 1 表示 a > b,-1 表示 a < b,0 表示相等
51
- const compareVer = (a, b) => {
52
- const A = parts(a);
53
- const B = parts(b);
54
- for (let i = 0; i < 3; i++) {
55
- const a = A[i];
56
- const b = B[i];
57
- if (!a || !b)
58
- continue;
59
- if (a !== b)
60
- return a > b ? 1 : -1;
61
- }
62
- return 0;
63
- };
64
- // 判断版本范围是否合法:min < max
65
- const isValidVersionRange = (min, max) => {
66
- return compareVer(max, min) === 1;
67
- };
68
- // 判断目标版本 v 是否在 [min, max] 范围内(闭区间)
69
- const isVersionInRange = (v, min, max) => {
70
- return compareVer(v, min) >= 0 && compareVer(v, max) <= 0;
71
- };
72
- // ModulePath 类定义
73
- class ModulePath {
74
- dir;
75
- innerList;
76
- cache;
77
- constructor(dirname) {
78
- this.dir = dirname;
79
- this.innerList = new Array();
80
- this.cache = [];
81
- }
82
- // 初始化:加载内容并读取 innerDef.json
83
- async start() {
84
- this.cache = await this.#loadContents();
85
- this.innerList = JSON.parse((await fs.readFile(path.join(this.dir, 'lib/modules/innerDef.json'), "utf-8")).toString());
86
- }
87
- // 根据模块名称获取对应的 git 地址
88
- getGit(Name) {
89
- for (const { name, git } of this.cache) {
90
- if (name === Name)
91
- return git;
92
- }
93
- return null;
94
- }
95
- // 获取所有模块名称列表
96
- getAll() {
97
- if (cacheList)
98
- return cacheList;
99
- cacheList = this.cache.map((item) => item.name);
100
- return cacheList;
101
- }
102
- // 根据包名查找模块所在目录,同时校验版本
103
- async getDir(packageName, options = {}) {
104
- if (!packageName)
105
- return null;
106
- const { gitUrl = '', v = "0.0.0" } = options;
107
- // 先查缓存
108
- if (dirCache.has(packageName)) {
109
- return dirCache.get(packageName);
110
- }
111
- for (const { name, git } of this.cache) {
112
- if (!/^[a-zA-Z0-9\-]*$/.test(name))
113
- continue; // 只允许字母数字
114
- if (name !== packageName)
115
- continue;
116
- // 如果指定了 gitUrl,需校验是否匹配,除非是 inner 且存在于 innerList
117
- if (gitUrl) {
118
- if (git !== gitUrl) {
119
- if (!(git === 'inner' && this.innerList.includes(name))) {
120
- continue; // 不匹配且不是合法的 inner 模块则跳过
121
- }
122
- }
123
- }
124
- const ddirPath = path.join(this.dir, 'lib/modules', name);
125
- const packageJson = await utils.GetData(ddirPath);
126
- // 如果有 mcVersion 配置,则进行版本校验
127
- if (packageJson.mcVersion) {
128
- // 校验 mcVersion 格式是否正确
129
- if (!Array.isArray(packageJson.mcVersion) || packageJson.mcVersion.length !== 2) {
130
- utils.Exit(`ERR - ${name} 模块的 mcVersion 配置格式错误,应为 [minVersion, maxVersion],如 ["1.0.0", "2.0.0"]`);
131
- }
132
- const [min, max] = packageJson.mcVersion;
133
- // 校验版本范围是否合法:max 必须 > min
134
- if (!isValidVersionRange(min, max)) {
135
- utils.Exit(`ERR - ${name} 模块 mcVersion 配置不正确:最高版本必须大于最低版本\n当前配置:min=${min}, max=${max}\n请联系开发者获取稳定版本`);
136
- }
137
- // 校验传入的版本号 v 是否在 [min, max] 范围内
138
- if (!isVersionInRange(v, min, max)) {
139
- return {
140
- ERR: "V",
141
- message: `模块 "${name}" 不支持当前版本 v=${v},要求版本范围:[${min}, ${max}]`
142
- };
143
- }
144
- }
145
- // 所有校验通过,缓存并返回模块路径
146
- dirCache.set(packageName, ddirPath);
147
- return ddirPath;
148
- }
149
- // 没找到对应模块
150
- return null;
151
- }
152
- // 读取 contents.json 文件内容
153
- async #loadContents() {
154
- const dataPath = path.join(this.dir, 'lib/modules/contents.json');
155
- try {
156
- if (await this.#fileExists(dataPath)) {
157
- const content = await fs.readFile(dataPath, 'utf8');
158
- const data = utils.JSONparse(content);
159
- return (typeof data === 'object' && data !== null) ? data : [];
160
- }
161
- }
162
- catch (err) {
163
- console.error('Failed to load contents.json:', err);
164
- }
165
- return [];
166
- }
167
- // 检查文件是否存在
168
- async #fileExists(filePath) {
169
- try {
170
- await fs.access(filePath);
171
- return true;
172
- }
173
- catch {
174
- return false;
175
- }
176
- }
177
- }
178
- module.exports = async (dirname) => {
179
- const instance = new ModulePath(dirname);
180
- await instance.start();
181
- return instance;
182
- };
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(t,e,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);n&&!("get"in n?!e.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){void 0===i&&(i=r),t[i]=e[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),__importStar=this&&this.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[e.length]=r);return e},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var i=t(e),n=0;n<i.length;n++)"default"!==i[n]&&__createBinding(r,e,i[n]);return __setModuleDefault(r,e),r}}();const fs=__importStar(require("fs/promises")),path=__importStar(require("path")),utils=__importStar(require("./../utils/index.js")),dirCache=new Map;let cacheList=null;const normalize=t=>String(t||"").trim(),parts=t=>normalize(t).split(".").slice(0,3).map(t=>parseInt(t,10)||0),compareVer=(t,e)=>{const r=parts(t),i=parts(e);for(let t=0;t<3;t++){const e=r[t],n=i[t];if(e&&n&&e!==n)return e>n?1:-1}return 0},isValidVersionRange=(t,e)=>1===compareVer(e,t),isVersionInRange=(t,e,r)=>compareVer(t,e)>=0&&compareVer(t,r)<=0;class ModulePath{dir;innerList;cache;constructor(t){this.dir=t,this.innerList=new Array,this.cache=[]}async start(){this.cache=await this.#t(),this.innerList=JSON.parse((await fs.readFile(path.join(this.dir,"lib/modules/innerDef.json"),"utf-8")).toString())}getGit(t){for(const{name:e,git:r}of this.cache)if(e===t)return r;return null}getAll(){return cacheList||(cacheList=this.cache.map(t=>t.name),cacheList)}async getDir(t,e={}){if(!t)return null;const{gitUrl:r="",v:i="0.0.0"}=e;if(dirCache.has(t))return dirCache.get(t);for(const{name:e,git:n}of this.cache){if(!/^[a-zA-Z0-9\-]*$/.test(e))continue;if(e!==t)continue;if(r&&n!==r&&("inner"!==n||!this.innerList.includes(e)))continue;const s=path.join(this.dir,"lib/modules",e),a=await utils.GetData(s);if(a.mcVersion){Array.isArray(a.mcVersion)&&2===a.mcVersion.length||utils.Exit(`ERR - ${e} 模块的 mcVersion 配置格式错误,应为 [minVersion, maxVersion],如 ["1.0.0", "2.0.0"]`);const[t,r]=a.mcVersion;if(isValidVersionRange(t,r)||utils.Exit(`ERR - ${e} 模块 mcVersion 配置不正确:最高版本必须大于最低版本\n当前配置:min=${t}, max=${r}\n请联系开发者获取稳定版本`),!isVersionInRange(i,t,r))return{ERR:"V",message:`模块 "${e}" 不支持当前版本 v=${i},要求版本范围:[${t}, ${r}]`}}return dirCache.set(t,s),s}return null}async#t(){const t=path.join(this.dir,"lib/modules/contents.json");try{if(await this.#e(t)){const e=await fs.readFile(t,"utf8"),r=utils.JSONparse(e);return"object"==typeof r&&null!==r?r:[]}}catch(t){console.error("Failed to load contents.json:",t)}return[]}async#e(t){try{return await fs.access(t),!0}catch{return!1}}}module.exports=async t=>{const e=new ModulePath(t);return await e.start(),e};
@@ -1,370 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- const fs = __importStar(require("fs/promises"));
40
- const path = __importStar(require("path"));
41
- const ts = __importStar(require("typescript"));
42
- const index_js_1 = __importDefault(require("./../lang/index.js"));
43
- const index_js_2 = require("./../uuid/index.js");
44
- const index_js_3 = __importDefault(require("./../code-processor/index.js"));
45
- const utils = __importStar(require("./../utils/index.js"));
46
- const getModule_js_1 = __importDefault(require("./getModule.js"));
47
- const includes_json_1 = __importDefault(require("./../data/includes.json"));
48
- const clean_js_1 = __importDefault(require("./../start/clean.js"));
49
- const index_js_4 = __importDefault(require("./../runTemp/index.js"));
50
- const base_js_1 = require("./base.js");
51
- const manifest_build_js_1 = require("./manifest.build.js");
52
- const index_js_5 = __importDefault(require("./../mcx/index.js"));
53
- const node_os_1 = __importDefault(require("node:os"));
54
- const utils_1 = __importDefault(require("./utils"));
55
- // 构建主类
56
- class Build extends base_js_1.BaseBuild {
57
- baseDir;
58
- baseModDir;
59
- gamelibModule;
60
- constructor(buildPath, baseDir) {
61
- super();
62
- if (!buildPath)
63
- utils.Exit(index_js_1.default.build.config_invalid);
64
- this.baseDir = baseDir;
65
- this.baseCwd = path.isAbsolute(buildPath) ?
66
- buildPath :
67
- path.join(baseDir, buildPath);
68
- this.cwd = path.join(this.baseCwd, "behavior");
69
- this.ResOutDir = null;
70
- this.ResCwd = path.join(this.baseCwd, "resources");
71
- this.dependencies = {};
72
- this.gamelibModule = null;
73
- this.baseModDir = path.join(this.baseDir, 'lib/modules');
74
- // 锁定属性
75
- this.#ObjectPri(['baseModDir', 'baseDir']);
76
- this.#ObjectPriEn(["outdir", "dependencies", "gamelibModule", "cwd", "ResCwd", "baseModDir", "baseCwd"]);
77
- this.cacheDir = path.join(this.baseCwd, '.cache__mbler__');
78
- }
79
- #ObjectPri(list) {
80
- if (!Array.isArray(list))
81
- return;
82
- for (let item of list) {
83
- Object.defineProperty(this, item, {
84
- enumerable: false,
85
- writable: false
86
- });
87
- }
88
- }
89
- // 私有:设置不可枚举属性
90
- #ObjectPriEn(list) {
91
- if (!Array.isArray(list))
92
- return;
93
- for (let item of list) {
94
- Object.defineProperty(this, item, {
95
- enumerable: false
96
- });
97
- }
98
- }
99
- // 确保缓存目录存在
100
- async #ensureCacheDir() {
101
- try {
102
- await fs.mkdir(this.cacheDir, {
103
- recursive: true
104
- });
105
- }
106
- catch (err) {
107
- // 如果目录已存在,忽略错误
108
- if (err.code !== 'EEXIST') {
109
- throw err;
110
- }
111
- }
112
- }
113
- // 构建入口
114
- build() {
115
- return this.start().catch(err => {
116
- const errorMsg = utils.toString(err);
117
- (0, utils_1.default)(index_js_1.default.build.error_message_log + errorMsg);
118
- });
119
- }
120
- async start() {
121
- const startTime = Date.now();
122
- await this.#ensureCacheDir();
123
- const { configChanged, packageChanged } = await this.chackConfigHash();
124
- const clean = new clean_js_1.default(this.baseCwd, this.baseDir);
125
- await clean.run();
126
- await utils.waitGC();
127
- const data = await this.loadPackageData();
128
- this.d_data = data;
129
- this.outdir = this.getOutputDir(data.outdir?.behavior, path.join(this.baseCwd, "dist/dep"));
130
- this.ResOutDir = this.getOutputDir(data.outdir?.resources, path.join(this.baseCwd, "dist/res"));
131
- const requiredKeys = ['name', 'description', 'version', 'mcVersion'];
132
- if (!utils.hasKeys(data, requiredKeys, requiredKeys.length))
133
- throw new Error(`${index_js_1.default.build.package_file} 字段缺失:必需字段 ${JSON.stringify(requiredKeys)}`);
134
- this.gamelibModule = await (0, getModule_js_1.default)(this.baseDir);
135
- console.log(index_js_1.default.build.build_info_header);
136
- console.table({
137
- [index_js_1.default.build.project_path]: this.baseCwd,
138
- [index_js_1.default.build.output_dir]: JSON.stringify(data.outdir),
139
- [index_js_1.default.build.minify_enabled]: Boolean(data.minify),
140
- [index_js_1.default.build.build_time]: Build.times,
141
- [index_js_1.default.build.tip_dist]: process.env.MBLER_BUILD_MODULE || "dev"
142
- });
143
- // 并发处理资源、脚本、子包、includes
144
- await Promise.all([
145
- this.writeManifest(data),
146
- this.handleScripts(data),
147
- this.handleIncludes(),
148
- this.processSubpacks(data)
149
- ]);
150
- switch (data.script?.lang || "") {
151
- case "ts": // TypeScript 编译
152
- await this.compileTypeScriptUnified();
153
- break;
154
- case "mcx":
155
- await index_js_5.default.load({
156
- ProjectDir: path.join(this.cwd, "scripts"),
157
- config: {
158
- useTS: true
159
- },
160
- output: path.join(this.outdir, "scripts"),
161
- moduleList: this.Modules,
162
- main: path.join(this.cwd, data.script?.main || "index.js"),
163
- cacheDir: this.cacheDir,
164
- moduleDir: path.join(this.outdir, "scripts/node_modules"),
165
- isCache: true
166
- });
167
- break;
168
- }
169
- await Promise.all([this.processMinification(data),
170
- // 资源包处理
171
- this.processResources()
172
- ]);
173
- await this.processDist();
174
- // 最终完成
175
- console.log(`${index_js_1.default.build.build_success} ${(Date.now() - startTime) / 1000}`);
176
- }
177
- async writeManifest(data) {
178
- const manifest = await this.buildManifest(data);
179
- await this.writeFile(path.join(this.outdir, 'manifest.json'), manifest);
180
- }
181
- async buildManifest(data) {
182
- const manifest = (new manifest_build_js_1.ManiFest(data, "data")).data;
183
- const subpack = data.subpack || {};
184
- if (typeof data.ResDes === 'object')
185
- this.processResourceDependencies(data, manifest);
186
- if (typeof data.subpack === 'object' && Object.keys(data.subpack).length > 0) {
187
- manifest.subpack = Object.keys(data.subpack).map(id => ({
188
- folder_name: id,
189
- name: subpack[id] || "",
190
- memory_tier: 1
191
- }));
192
- }
193
- return manifest;
194
- }
195
- processResourceDependencies(data, manifest) {
196
- const { name = 'unknown', version } = data.ResDes || {};
197
- if (version && utils.isVerison(version)) {
198
- manifest.dependencies.push({
199
- name: (0, index_js_2.fromString)(name),
200
- version: utils.ToArray(version)
201
- });
202
- }
203
- }
204
- async handleScripts(data) {
205
- if (!data.script || typeof data.script !== 'object')
206
- return;
207
- const scriptsDir = path.join(this.cwd, 'scripts');
208
- const outScripts = path.join(this.outdir, 'scripts');
209
- if (!(await utils.FileExsit(scriptsDir)))
210
- return;
211
- // 复制主包脚本
212
- await utils.copy(scriptsDir, outScripts);
213
- this.dependencies = data.script.dependencies || {};
214
- await this.initNpmDes();
215
- if (Object.keys(this.dependencies).length > 0) {
216
- this.Modules = await this.handlerMod(this.dependencies, new Set());
217
- }
218
- }
219
- async processSubpacks(data) {
220
- if (typeof data.subpack !== 'object')
221
- return;
222
- const outdir = this.outdir;
223
- const content = new Build(this.cwd, this.baseDir);
224
- for (let [id, title] of Object.entries(data.subpack)) {
225
- try {
226
- const subpackPath = path.join(this.cwd, 'subpacks', id);
227
- const outSubpack = path.join(outdir, 'subpacks', id);
228
- await fs.mkdir(outSubpack, {
229
- recursive: true
230
- });
231
- if (!(await utils.FileExsit(subpackPath))) {
232
- (0, utils_1.default)(index_js_1.default.build.subpack_folder_not_found.replace('{id}', id));
233
- continue;
234
- }
235
- const subScriptDir = path.join(subpackPath, 'scripts');
236
- const outSubScriptDir = path.join(outSubpack, 'scripts');
237
- if (await utils.FileExsit(subScriptDir)) {
238
- await utils.copy(subScriptDir, outSubScriptDir);
239
- }
240
- // 复制子包其他资源
241
- content.cwd = subpackPath;
242
- content.outdir = outSubpack;
243
- await content.handleIncludes();
244
- }
245
- catch (err) {
246
- (0, utils_1.default)(index_js_1.default.build.error_processing_subpack.replace('{id}', id).replace('{error}', err.stack));
247
- }
248
- }
249
- }
250
- async compileTypeScriptUnified() {
251
- const tempMod = new index_js_4.default(path.join(node_os_1.default.tmpdir(), "mbler"));
252
- await tempMod.init();
253
- const tempDir = tempMod.dir;
254
- try {
255
- const rootFiles = await this.getAllTsFiles(this.outdir);
256
- if (!rootFiles || rootFiles.length === 0) {
257
- (0, utils_1.default)(index_js_1.default.build.ts_no_files);
258
- return;
259
- }
260
- let tsConfigJson = {
261
- compilerOptions: {
262
- target: "esnext",
263
- module: "esnext",
264
- moduleResolution: "NodeNext",
265
- esModuleInterop: true,
266
- verbatimModuleSyntax: false,
267
- allowSyntheticDefaultImports: true,
268
- outDir: tempDir,
269
- rootDir: this.outdir,
270
- strict: true,
271
- allowJs: true,
272
- sourceMap: false,
273
- incremental: true, // 启用增量编译
274
- tsBuildInfoFile: path.join(this.cacheDir, 'tsbuildinfo') // 指定缓存文件
275
- },
276
- include: ["**/*.ts"]
277
- };
278
- if (await utils.FileExsit(path.join(this.baseCwd, "tsconfig.json")))
279
- tsConfigJson = JSON.parse(await fs.readFile(path.join(this.baseCwd, "tsconfig.json"), "utf-8"));
280
- const parsed = ts.parseJsonConfigFileContent(tsConfigJson, ts.sys, this.outdir, undefined, "tsconfig.json");
281
- const program = ts.createProgram({
282
- rootNames: rootFiles,
283
- options: parsed.options
284
- });
285
- const emitResult = program.emit();
286
- const allDiagnostics = ts
287
- .getPreEmitDiagnostics(program)
288
- .concat(emitResult.diagnostics);
289
- allDiagnostics.forEach(d => {
290
- const msg = ts.flattenDiagnosticMessageText(d.messageText, "\n");
291
- if (d.file) {
292
- const { line, character } = d.file.getLineAndCharacterOfPosition(d.start);
293
- (0, utils_1.default)(index_js_1.default.build.ts_diagnostics.replace('{file}', d.file.fileName).replace('{line}', (line + 1).toString()).replace('{character}', (character + 1).toString()).replace('{message}', msg));
294
- }
295
- else {
296
- (0, utils_1.default)(msg);
297
- }
298
- });
299
- await this.removeJsFiles(path.join(this.outdir, 'scripts'));
300
- await this.copyCompiledOnly(tempDir, this.outdir);
301
- (0, utils_1.default)(index_js_1.default.build.ts_compilation_error + " 完成");
302
- }
303
- catch (err) {
304
- (0, utils_1.default)(index_js_1.default.build.ts_compilation_error + err.stack);
305
- throw err;
306
- }
307
- finally {
308
- await tempMod.remove();
309
- }
310
- }
311
- async handlerMod(modules, processed = new Set()) {
312
- const allModules = this.gamelibModule.getAll();
313
- const scriptOutDir = path.join(this.outdir, 'scripts/node_modules');
314
- let nextDeps = {};
315
- for (const [packageName, gitRepo] of Object.entries(modules)) {
316
- if (!allModules.includes(packageName) || processed.has(packageName))
317
- continue;
318
- const srcDir = await this.gamelibModule.getDir(packageName, {
319
- gitUrl: gitRepo,
320
- v: this.d_data.mcVersion
321
- });
322
- if (!srcDir || !(await utils.FileExsit(srcDir)))
323
- continue;
324
- const pkg = await utils.handlerPackage(srcDir, {
325
- des: Array.from(processed)
326
- });
327
- if (pkg.des)
328
- Object.assign(nextDeps, pkg.des);
329
- await utils.copy(srcDir, path.join(scriptOutDir, packageName));
330
- await utils.waitGC();
331
- processed.add(packageName);
332
- }
333
- if (Object.keys(nextDeps).length > 0)
334
- await this.handlerMod(nextDeps, processed);
335
- return Array.from(processed);
336
- }
337
- handleIncludes() {
338
- if (!Array.isArray(includes_json_1.default))
339
- return;
340
- const copyOperations = includes_json_1.default
341
- .filter(item => typeof item === 'string')
342
- .map(async (item) => {
343
- const src = path.join(this.cwd, 'res', item);
344
- const dest = path.join(this.outdir, item);
345
- if (await utils.FileExsit(src)) {
346
- await utils.copy(src, dest);
347
- }
348
- });
349
- return Promise.all(copyOperations);
350
- }
351
- async processMinification(data) {
352
- try {
353
- if (!Array.isArray(includes_json_1.default)) {
354
- (0, utils_1.default)(index_js_1.default.build.includes_not_array);
355
- return;
356
- }
357
- await (0, index_js_3.default)(this.outdir, {
358
- modules: this.Modules,
359
- sourceDir: path.join(this.outdir, 'scripts'),
360
- baseDir: this.baseDir,
361
- minify: Boolean(data.minify)
362
- });
363
- await utils.waitGC();
364
- }
365
- catch (err) {
366
- (0, utils_1.default)(index_js_1.default.build.minification_error + err);
367
- }
368
- }
369
- }
370
- exports.default = Build;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,s){void 0===s&&(s=i);var a=Object.getOwnPropertyDescriptor(t,i);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,s,a)}:function(e,t,i,s){void 0===s&&(s=i),e[s]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[t.length]=i);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(null!=t)for(var s=e(t),a=0;a<s.length;a++)"default"!==s[a]&&__createBinding(i,t,s[a]);return __setModuleDefault(i,t),i}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const fs=__importStar(require("fs/promises")),path=__importStar(require("path")),ts=__importStar(require("typescript")),index_js_1=__importDefault(require("./../lang/index.js")),index_js_2=require("./../uuid/index.js"),index_js_3=__importDefault(require("./../code-processor/index.js")),utils=__importStar(require("./../utils/index.js")),getModule_js_1=__importDefault(require("./getModule.js")),includes_json_1=__importDefault(require("./../data/includes.json")),clean_js_1=__importDefault(require("./../start/clean.js")),index_js_4=__importDefault(require("./../runTemp/index.js")),base_js_1=require("./base.js"),manifest_build_js_1=require("./manifest.build.js"),index_js_5=__importDefault(require("./../mcx/index.js")),node_os_1=__importDefault(require("node:os")),utils_1=__importDefault(require("./utils"));class Build extends base_js_1.BaseBuild{baseDir;baseModDir;gamelibModule;constructor(e,t){super(),e||utils.Exit(index_js_1.default.build.config_invalid),this.baseDir=t,this.baseCwd=path.isAbsolute(e)?e:path.join(t,e),this.cwd=path.join(this.baseCwd,"behavior"),this.ResOutDir=null,this.ResCwd=path.join(this.baseCwd,"resources"),this.dependencies={},this.gamelibModule=null,this.baseModDir=path.join(this.baseDir,"lib/modules"),this.#e(["baseModDir","baseDir"]),this.#t(["outdir","dependencies","gamelibModule","cwd","ResCwd","baseModDir","baseCwd"]),this.cacheDir=path.join(this.baseCwd,".cache__mbler__")}#e(e){if(Array.isArray(e))for(let t of e)Object.defineProperty(this,t,{enumerable:!1,writable:!1})}#t(e){if(Array.isArray(e))for(let t of e)Object.defineProperty(this,t,{enumerable:!1})}async#i(){try{await fs.mkdir(this.cacheDir,{recursive:!0})}catch(e){if("EEXIST"!==e.code)throw e}}build(){return this.start().catch(e=>{const t=utils.toString(e);(0,utils_1.default)(index_js_1.default.build.error_message_log+t)})}async start(){const e=Date.now();await this.#i();const{configChanged:t,packageChanged:i}=await this.chackConfigHash(),s=new clean_js_1.default(this.baseCwd,this.baseDir);await s.run(),await utils.waitGC();const a=await this.loadPackageData();this.d_data=a,this.outdir=this.getOutputDir(a.outdir?.behavior,path.join(this.baseCwd,"dist/dep")),this.ResOutDir=this.getOutputDir(a.outdir?.resources,path.join(this.baseCwd,"dist/res"));const r=["name","description","version","mcVersion"];if(!utils.hasKeys(a,r,r.length))throw new Error(`${index_js_1.default.build.package_file} 字段缺失:必需字段 ${JSON.stringify(r)}`);switch(this.gamelibModule=await(0,getModule_js_1.default)(this.baseDir),console.log(index_js_1.default.build.build_info_header),console.table({[index_js_1.default.build.project_path]:this.baseCwd,[index_js_1.default.build.output_dir]:JSON.stringify(a.outdir),[index_js_1.default.build.minify_enabled]:Boolean(a.minify),[index_js_1.default.build.build_time]:Build.times,[index_js_1.default.build.tip_dist]:process.env.MBLER_BUILD_MODULE||"dev"}),await Promise.all([this.writeManifest(a),this.handleScripts(a),this.handleIncludes(),this.processSubpacks(a)]),a.script?.lang||""){case"ts":await this.compileTypeScriptUnified();break;case"mcx":await index_js_5.default.load({ProjectDir:path.join(this.cwd,"scripts"),config:{useTS:!0},output:path.join(this.outdir,"scripts"),moduleList:this.Modules,main:path.join(this.cwd,a.script?.main||"index.js"),cacheDir:this.cacheDir,moduleDir:path.join(this.outdir,"scripts/node_modules"),isCache:!0})}await Promise.all([this.processMinification(a),this.processResources()]),await this.processDist(),console.log(`${index_js_1.default.build.build_success} ${(Date.now()-e)/1e3}`)}async writeManifest(e){const t=await this.buildManifest(e);await this.writeFile(path.join(this.outdir,"manifest.json"),t)}async buildManifest(e){const t=new manifest_build_js_1.ManiFest(e,"data").data,i=e.subpack||{};return"object"==typeof e.ResDes&&this.processResourceDependencies(e,t),"object"==typeof e.subpack&&Object.keys(e.subpack).length>0&&(t.subpack=Object.keys(e.subpack).map(e=>({folder_name:e,name:i[e]||"",memory_tier:1}))),t}processResourceDependencies(e,t){const{name:i="unknown",version:s}=e.ResDes||{};s&&utils.isVerison(s)&&t.dependencies.push({name:(0,index_js_2.fromString)(i),version:utils.ToArray(s)})}async handleScripts(e){if(!e.script||"object"!=typeof e.script)return;const t=path.join(this.cwd,"scripts"),i=path.join(this.outdir,"scripts");await utils.FileExsit(t)&&(await utils.copy(t,i),this.dependencies=e.script.dependencies||{},await this.initNpmDes(),Object.keys(this.dependencies).length>0&&(this.Modules=await this.handlerMod(this.dependencies,new Set)))}async processSubpacks(e){if("object"!=typeof e.subpack)return;const t=this.outdir,i=new Build(this.cwd,this.baseDir);for(let[s,a]of Object.entries(e.subpack))try{const e=path.join(this.cwd,"subpacks",s),a=path.join(t,"subpacks",s);if(await fs.mkdir(a,{recursive:!0}),!await utils.FileExsit(e)){(0,utils_1.default)(index_js_1.default.build.subpack_folder_not_found.replace("{id}",s));continue}const r=path.join(e,"scripts"),n=path.join(a,"scripts");await utils.FileExsit(r)&&await utils.copy(r,n),i.cwd=e,i.outdir=a,await i.handleIncludes()}catch(e){(0,utils_1.default)(index_js_1.default.build.error_processing_subpack.replace("{id}",s).replace("{error}",e.stack))}}async compileTypeScriptUnified(){const e=new index_js_4.default(path.join(node_os_1.default.tmpdir(),"mbler"));await e.init();const t=e.dir;try{const e=await this.getAllTsFiles(this.outdir);if(!e||0===e.length)return void(0,utils_1.default)(index_js_1.default.build.ts_no_files);let i={compilerOptions:{target:"esnext",module:"esnext",moduleResolution:"NodeNext",esModuleInterop:!0,verbatimModuleSyntax:!1,allowSyntheticDefaultImports:!0,outDir:t,rootDir:this.outdir,strict:!0,allowJs:!0,sourceMap:!1,incremental:!0,tsBuildInfoFile:path.join(this.cacheDir,"tsbuildinfo")},include:["**/*.ts"]};await utils.FileExsit(path.join(this.baseCwd,"tsconfig.json"))&&(i=JSON.parse(await fs.readFile(path.join(this.baseCwd,"tsconfig.json"),"utf-8")));const s=ts.parseJsonConfigFileContent(i,ts.sys,this.outdir,void 0,"tsconfig.json"),a=ts.createProgram({rootNames:e,options:s.options}),r=a.emit();ts.getPreEmitDiagnostics(a).concat(r.diagnostics).forEach(e=>{const t=ts.flattenDiagnosticMessageText(e.messageText,"\n");if(e.file){const{line:i,character:s}=e.file.getLineAndCharacterOfPosition(e.start);(0,utils_1.default)(index_js_1.default.build.ts_diagnostics.replace("{file}",e.file.fileName).replace("{line}",(i+1).toString()).replace("{character}",(s+1).toString()).replace("{message}",t))}else(0,utils_1.default)(t)}),await this.removeJsFiles(path.join(this.outdir,"scripts")),await this.copyCompiledOnly(t,this.outdir),(0,utils_1.default)(index_js_1.default.build.ts_compilation_error+" 完成")}catch(e){throw(0,utils_1.default)(index_js_1.default.build.ts_compilation_error+e.stack),e}finally{await e.remove()}}async handlerMod(e,t=new Set){const i=this.gamelibModule.getAll(),s=path.join(this.outdir,"scripts/node_modules");let a={};for(const[r,n]of Object.entries(e)){if(!i.includes(r)||t.has(r))continue;const e=await this.gamelibModule.getDir(r,{gitUrl:n,v:this.d_data.mcVersion});if(!e||!await utils.FileExsit(e))continue;const o=await utils.handlerPackage(e,{des:Array.from(t)});o.des&&Object.assign(a,o.des),await utils.copy(e,path.join(s,r)),await utils.waitGC(),t.add(r)}return Object.keys(a).length>0&&await this.handlerMod(a,t),Array.from(t)}handleIncludes(){if(!Array.isArray(includes_json_1.default))return;const e=includes_json_1.default.filter(e=>"string"==typeof e).map(async e=>{const t=path.join(this.cwd,"res",e),i=path.join(this.outdir,e);await utils.FileExsit(t)&&await utils.copy(t,i)});return Promise.all(e)}async processMinification(e){try{if(!Array.isArray(includes_json_1.default))return void(0,utils_1.default)(index_js_1.default.build.includes_not_array);await(0,index_js_3.default)(this.outdir,{modules:this.Modules,sourceDir:path.join(this.outdir,"scripts"),baseDir:this.baseDir,minify:Boolean(e.minify)}),await utils.waitGC()}catch(e){(0,utils_1.default)(index_js_1.default.build.minification_error+e)}}}exports.default=Build;