mbler 0.1.1 → 0.1.3-alpha

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 (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/lib/build/base.js +297 -1
  4. package/lib/build/build-g-config.json +11 -11
  5. package/lib/build/getModule.js +182 -1
  6. package/lib/build/index.js +370 -1
  7. package/lib/build/manifest.build.js +103 -1
  8. package/lib/build/mcVersion.js +86 -1
  9. package/lib/build/utils.js +6 -1
  10. package/lib/code-processor/c-handler-export.js +12 -1
  11. package/lib/code-processor/index.js +141 -1
  12. package/lib/code-processor/mtreehandler.js +164 -1
  13. package/lib/commander/index.js +154 -1
  14. package/lib/data/includes.json +12 -12
  15. package/lib/git/clone.js +28 -1
  16. package/lib/git/index.js +12 -1
  17. package/lib/git/pull.js +100 -1
  18. package/lib/lang/__translate.js +93 -1
  19. package/lib/lang/en.js +128 -1
  20. package/lib/lang/index.js +78 -1
  21. package/lib/lang/zh.js +146 -1
  22. package/lib/loger/colors.js +13 -1
  23. package/lib/loger/index.js +136 -1
  24. package/lib/mcx/ast/index.js +11 -1
  25. package/lib/mcx/ast/prop.js +78 -1
  26. package/lib/mcx/ast/tag.js +246 -1
  27. package/lib/mcx/compile-component/lib.js +106 -1
  28. package/lib/mcx/compile-component/types.js +2 -1
  29. package/lib/mcx/compile-component/utils.js +26 -1
  30. package/lib/mcx/compile-mcx/_compile.js +1 -1
  31. package/lib/mcx/compile-mcx/compile.js +34 -1
  32. package/lib/mcx/compile-mcx/context.js +19 -1
  33. package/lib/mcx/compile-mcx/index.js +10 -1
  34. package/lib/mcx/compile-mcx/mcx/index.js +2 -1
  35. package/lib/mcx/compile-mcx/mcx/types.js +2 -1
  36. package/lib/mcx/compile-mcx/template/module.js +42 -1
  37. package/lib/mcx/compile-mcx/types.js +2 -1
  38. package/lib/mcx/compile-mcx/utils.node.js +207 -1
  39. package/lib/mcx/index.js +13 -1
  40. package/lib/mcx/test/index.js +7 -1
  41. package/lib/mcx/test.js +21 -1
  42. package/lib/mcx/types.js +2 -1
  43. package/lib/mcx/utils.js +86 -1
  44. package/lib/module-handler/index.js +482 -1
  45. package/lib/modules/create-game/src/Runner/RunnerManager.js +113 -1
  46. package/lib/modules/create-game/src/Runner/scriptRunner.js +70 -1
  47. package/lib/modules/create-game/src/config.js +27 -1
  48. package/lib/modules/create-game/src/constants.js +19 -1
  49. package/lib/modules/create-game/src/createGameModule.js +24 -1
  50. package/lib/modules/create-game/src/gameComponent/common/autoStop.js +38 -1
  51. package/lib/modules/create-game/src/gameComponent/common/lazyLoader.js +76 -1
  52. package/lib/modules/create-game/src/gameComponent/common/stopWatch/onTimeEvent.js +36 -1
  53. package/lib/modules/create-game/src/gameComponent/common/stopWatch/stopWatch.js +90 -1
  54. package/lib/modules/create-game/src/gameComponent/common/stopWatch/tickEvent.js +29 -1
  55. package/lib/modules/create-game/src/gameComponent/common/timer/onTimeEvent.js +36 -1
  56. package/lib/modules/create-game/src/gameComponent/common/timer/tickEvent.js +29 -1
  57. package/lib/modules/create-game/src/gameComponent/common/timer/timer.js +87 -1
  58. package/lib/modules/create-game/src/gameComponent/gameComponent.js +53 -1
  59. package/lib/modules/create-game/src/gameComponent/index.js +31 -1
  60. package/lib/modules/create-game/src/gameComponent/player/blockInteractionBlocker.js +40 -1
  61. package/lib/modules/create-game/src/gameComponent/player/entityInteractionBlocker.js +48 -1
  62. package/lib/modules/create-game/src/gameComponent/player/healthIndicator.js +48 -1
  63. package/lib/modules/create-game/src/gameComponent/player/regionMonitor.js +22 -1
  64. package/lib/modules/create-game/src/gameComponent/player/respawn.js +59 -1
  65. package/lib/modules/create-game/src/gameComponent/player/spawnProtector.js +69 -1
  66. package/lib/modules/create-game/src/gameComponent/region/regionProtecter.js +53 -1
  67. package/lib/modules/create-game/src/gameComponent/region/regionTeamChooser.js +71 -1
  68. package/lib/modules/create-game/src/gameComponent/region/regionTeamCleaner.js +20 -1
  69. package/lib/modules/create-game/src/gameComponent/view/infoScoreboard.js +77 -1
  70. package/lib/modules/create-game/src/gameComponent/view/teamScoreboard.js +83 -1
  71. package/lib/modules/create-game/src/gameContext.js +6 -1
  72. package/lib/modules/create-game/src/gameEngine.js +139 -1
  73. package/lib/modules/create-game/src/gameEvent/eventManager.js +108 -1
  74. package/lib/modules/create-game/src/gameEvent/eventSignal.js +28 -1
  75. package/lib/modules/create-game/src/gameEvent/events/buttonPush.js +41 -1
  76. package/lib/modules/create-game/src/gameEvent/events/inSlot.js +77 -1
  77. package/lib/modules/create-game/src/gameEvent/events/interval.js +51 -1
  78. package/lib/modules/create-game/src/gameEvent/events/itemUse.js +36 -1
  79. package/lib/modules/create-game/src/gameEvent/events/onBlock.js +106 -1
  80. package/lib/modules/create-game/src/gameEvent/events/regionEvents.js +105 -1
  81. package/lib/modules/create-game/src/gameEvent/events/signClick.js +45 -1
  82. package/lib/modules/create-game/src/gameEvent/gameEvent.js +54 -1
  83. package/lib/modules/create-game/src/gameEvent/index.js +20 -1
  84. package/lib/modules/create-game/src/gameEvent/mapEventSignal.js +101 -1
  85. package/lib/modules/create-game/src/gameEvent/subscription.js +17 -1
  86. package/lib/modules/create-game/src/gamePlayer/gamePlayer.js +102 -1
  87. package/lib/modules/create-game/src/gamePlayer/groupBuilder.js +38 -1
  88. package/lib/modules/create-game/src/gamePlayer/groupSet.js +96 -1
  89. package/lib/modules/create-game/src/gamePlayer/index.js +25 -1
  90. package/lib/modules/create-game/src/gamePlayer/playerGroup.js +145 -1
  91. package/lib/modules/create-game/src/gamePlayer/playerManager.js +57 -1
  92. package/lib/modules/create-game/src/gameRegion/gameRegion.js +229 -1
  93. package/lib/modules/create-game/src/gameRegion/index.js +43 -1
  94. package/lib/modules/create-game/src/gameRegion/regionHelper.js +79 -1
  95. package/lib/modules/create-game/src/gameState/common/autoStop.js +39 -1
  96. package/lib/modules/create-game/src/gameState/gameState.js +169 -1
  97. package/lib/modules/create-game/src/gameState/index.js +7 -1
  98. package/lib/modules/create-game/src/gameState/types.js +35 -1
  99. package/lib/modules/create-game/src/gameStructure/gameStructure.js +36 -1
  100. package/lib/modules/create-game/src/main.js +86 -1
  101. package/lib/modules/create-game/src/system/gameCommand.js +107 -1
  102. package/lib/modules/create-game/src/system/gameManager.js +124 -1
  103. package/lib/modules/create-game/src/system/globalPlayerManager.js +119 -1
  104. package/lib/modules/create-game/src/utils/GameError.js +31 -1
  105. package/lib/modules/create-game/src/utils/algorithm.js +95 -1
  106. package/lib/modules/create-game/src/utils/chunk.js +63 -1
  107. package/lib/modules/create-game/src/utils/deferredObject.js +27 -1
  108. package/lib/modules/create-game/src/utils/duration.js +25 -1
  109. package/lib/modules/create-game/src/utils/func.js +20 -1
  110. package/lib/modules/create-game/src/utils/index.js +52 -1
  111. package/lib/modules/create-game/src/utils/interfaces.js +2 -1
  112. package/lib/modules/create-game/src/utils/logger.js +47 -1
  113. package/lib/modules/create-game/src/utils/random.js +76 -1
  114. package/lib/modules/create-game/src/utils/vanila-data.js +123 -1
  115. package/lib/modules/create-game/src/utils/vector.js +96 -1
  116. package/lib/modules/gameLib/src/config.js +134 -1
  117. package/lib/modules/gameLib/src/data.js +77 -1
  118. package/lib/modules/gameLib/src/entity.js +256 -1
  119. package/lib/modules/gameLib/src/event.js +285 -1
  120. package/lib/modules/gameLib/src/index.js +20 -1
  121. package/lib/modules/gameLib/src/loger.js +21 -1
  122. package/lib/modules/gameLib/src/ui.js +209 -1
  123. package/lib/modules/gameLib/src/utils.js +122 -1
  124. package/lib/modules/gutils/src/index.js +22 -1
  125. package/lib/runTemp/File.js +54 -1
  126. package/lib/runTemp/index.js +137 -1
  127. package/lib/runTemp/securityFile.js +93 -1
  128. package/lib/start/addPack.js +3 -1
  129. package/lib/start/clean.js +84 -1
  130. package/lib/start/create.js +146 -1
  131. package/lib/start/dev.js +99 -1
  132. package/lib/start/getResConfig.js +3 -1
  133. package/lib/start/incg.js +3 -1
  134. package/lib/start/index.js +207 -1
  135. package/lib/start/init.js +125 -1
  136. package/lib/start/rechce.js +57 -1
  137. package/lib/start/unaddPack.js +3 -1
  138. package/lib/start/unincg.js +67 -1
  139. package/lib/start/version.js +73 -1
  140. package/lib/utils/index.js +298 -1
  141. package/lib/uuid/index.js +27 -1
  142. package/package.json +1 -1
  143. package/test/script-mbler/behavior/scripts/index.js +0 -5
@@ -1 +1,84 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(t,e,i,r){void 0===r&&(r=i);var u=Object.getOwnPropertyDescriptor(e,i);u&&!("get"in u?!e.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return e[i]}}),Object.defineProperty(t,r,u)}:function(t,e,i,r){void 0===r&&(r=i),t[r]=e[i]}),__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 i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[e.length]=i);return e},t(e)};return function(e){if(e&&e.__esModule)return e;var i={};if(null!=e)for(var r=t(e),u=0;u<r.length;u++)"default"!==r[u]&&__createBinding(i,e,r[u]);return __setModuleDefault(i,e),i}}(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const promises_1=__importDefault(require("fs/promises")),utils=__importStar(require("./../utils/index.js")),index_js_1=__importDefault(require("./../loger/index.js")),path_1=__importDefault(require("path")),index_js_2=__importDefault(require("./../lang/index.js"));class Clean{p;dirname;outdir=[];constructor(t,e){this.p=t,this.dirname=e}run=()=>this.start().catch(t=>{index_js_1.default.e(t)});async start(){await utils.FileExsit(this.p)||utils.Exit("项目不存在");try{const t=await utils.GetData(this.p);this.outdir=[this.getOutDir(t.outdir?.resources),this.getOutDir(t.outdir?.behavior)],await Promise.all(this.outdir.map(t=>promises_1.default.rm(t,{recursive:!0,force:!0}).catch(()=>{})))}catch(t){index_js_1.default.e("clean",t)}index_js_1.default.i("clean",index_js_2.default.cleanFinally)}getOutDir(t){const e=t;return e?utils.join(this.p,e):path_1.default.join(this.p,"dist")}}exports.default=Clean;
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 promises_1 = __importDefault(require("fs/promises"));
40
+ const utils = __importStar(require("./../utils/index.js"));
41
+ const index_js_1 = __importDefault(require("./../loger/index.js"));
42
+ const path_1 = __importDefault(require("path"));
43
+ const index_js_2 = __importDefault(require("./../lang/index.js"));
44
+ class Clean {
45
+ p;
46
+ dirname;
47
+ outdir = [];
48
+ constructor(p, baseDir) {
49
+ this.p = p;
50
+ this.dirname = baseDir;
51
+ }
52
+ run = () => this.start().catch((err) => {
53
+ index_js_1.default.e(err);
54
+ });
55
+ async start() {
56
+ if (!await utils.FileExsit(this.p)) {
57
+ utils.Exit(`项目不存在`);
58
+ }
59
+ // 获取 mbler.config.json
60
+ try {
61
+ const packager = await utils.GetData(this.p);
62
+ // 提取输出目录
63
+ this.outdir = [
64
+ /*resources*/
65
+ this.getOutDir(packager.outdir?.resources),
66
+ /*behavior*/
67
+ this.getOutDir(packager.outdir?.behavior)
68
+ ];
69
+ await Promise.all(this.outdir.map((dir) => promises_1.default.rm(dir, {
70
+ recursive: true,
71
+ force: true
72
+ }).catch(() => { })));
73
+ }
74
+ catch (err) {
75
+ index_js_1.default.e('clean', err);
76
+ }
77
+ index_js_1.default.i('clean', index_js_2.default.cleanFinally);
78
+ }
79
+ getOutDir(dir) {
80
+ const outdir = dir;
81
+ return outdir ? utils.join(this.p, outdir) : path_1.default.join(this.p, 'dist');
82
+ }
83
+ }
84
+ exports.default = Clean;
@@ -1 +1,146 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=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 r=e(t),n=0;n<r.length;n++)"default"!==r[n]&&__createBinding(i,t,r[n]);return __setModuleDefault(i,t),i}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const index_js_1=__importDefault(require("./../uuid/index.js")),promises_1=__importDefault(require("fs/promises")),utils=__importStar(require("./../utils/index.js")),path_1=__importDefault(require("path")),index_js_2=__importDefault(require("./../git/index.js")),child_process_1=require("child_process"),index_js_3=__importDefault(require("./../runTemp/index.js")),securityFile_js_1=__importDefault(require("./../runTemp/securityFile.js")),regex=/(https?:\/\/[^\s\/]+\/[^\s\/]+\/[^\s]+(?:\.git)?|(?:git@|[\w.-]+@)[\w.-]+:[^\s]+(?:\.git)?)/,npmStart="npm:";let dirname="";async function Load(e,t){const i=JSON.parse(await promises_1.default.readFile(path_1.default.join(e,"package.json"),{encoding:"utf-8"})).main,r=JSON.parse(await promises_1.default.readFile(path_1.default.join(e,"mbler.config.json"),{encoding:"utf-8"})),n={name:r.name,description:r.description,version:r.version,setWorkDir:new securityFile_js_1.default(t)};let a=require(path_1.default.join(e,i));a=a.main(n),a instanceof Promise&&(a=await a)}function runNpm(e,t){return new Promise((i,r)=>{const n=(0,child_process_1.spawn)("npm",e,{cwd:t,stdio:"ignore"});n.on("close",i),n.on("error",e=>{r(e)})})}async function NpmInstall(e,t){const i=new index_js_3.default(path_1.default.join(require("os").tmpdir(),"mbler"));await i.init();const{dir:r}=i;await promises_1.default.writeFile(path_1.default.join(r,"package.json"),JSON.stringify({name:"",description:"",version:"0.0.1",type:"commjs"}));if(0!==await runNpm(["install",e],r))throw new Error("npm package install falled");const n=path_1.default.join(r,"node_modules");await copy(n,t),await i.remove()}function copy(e,t){return new Promise((i,r)=>promises_1.default.readdir(e).then(r=>Promise.all(r.map(i=>utils.copy(path_1.default.join(e,i),path_1.default.join(t,i)))).then(()=>i())).catch(r))}module.exports=async function(e,t,i=""){i=i.trim(),dirname=t;try{if(!e)throw new Error("Wrok Dir is undefined");if(await utils.isMblerProject(e))throw new Error("WorkDir is init You shouldn't use 'create' command");const t=index_js_1.default.fromString(`ul-to-${i}`),r=path_1.default.join(process.cwd(),"lib/initializer-cache",t);if(await utils.FileExsit(r))await Load(r,e);else{const t=utils.join(dirname,i);if(regex.test(i))await index_js_2.default.clone(i,r);else if(i.startsWith("npm:")){const e=i.slice(4);await NpmInstall(e,r)}else{if(!await utils.FileExsit(t))throw new Error("Package source not match");await copy(i,r)}await Load(r,e)}}catch(e){console.error(`加载模板初始化失败 错误信息\n${e.stack}`)}};
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
+ const index_js_1 = __importDefault(require("./../uuid/index.js"));
39
+ const promises_1 = __importDefault(require("fs/promises"));
40
+ const utils = __importStar(require("./../utils/index.js"));
41
+ const path_1 = __importDefault(require("path"));
42
+ const index_js_2 = __importDefault(require("./../git/index.js"));
43
+ const child_process_1 = require("child_process");
44
+ const index_js_3 = __importDefault(require("./../runTemp/index.js"));
45
+ const securityFile_js_1 = __importDefault(require("./../runTemp/securityFile.js"));
46
+ const regex = /(https?:\/\/[^\s\/]+\/[^\s\/]+\/[^\s]+(?:\.git)?|(?:git@|[\w.-]+@)[\w.-]+:[^\s]+(?:\.git)?)/;
47
+ const npmStart = "npm:";
48
+ let dirname = '';
49
+ async function Load(cacheDir, workDir) {
50
+ const main = JSON.parse(await promises_1.default.readFile(path_1.default.join(cacheDir, "package.json"), {
51
+ encoding: "utf-8"
52
+ })).main;
53
+ const MblerConfig = JSON.parse(await promises_1.default.readFile(path_1.default.join(cacheDir, "mbler.config.json"), {
54
+ encoding: "utf-8"
55
+ }));
56
+ const query = {
57
+ name: MblerConfig.name,
58
+ description: MblerConfig.description,
59
+ version: MblerConfig.version,
60
+ // securityFile提供不能来到上级的文件操作
61
+ setWorkDir: new securityFile_js_1.default(workDir)
62
+ };
63
+ let run = require(path_1.default.join(cacheDir, main));
64
+ run = run.main(query);
65
+ if (run instanceof Promise)
66
+ run = await run;
67
+ }
68
+ function runNpm(param, cwd) {
69
+ return new Promise((resolve, reject) => {
70
+ const processC = (0, child_process_1.spawn)('npm', param, {
71
+ cwd,
72
+ stdio: 'ignore'
73
+ });
74
+ processC.on('close', resolve);
75
+ processC.on('error', (err) => {
76
+ reject(err);
77
+ });
78
+ });
79
+ }
80
+ async function NpmInstall(dependencies, tagerDir) {
81
+ const temp = new index_js_3.default(path_1.default.join(require("os").tmpdir(), "mbler"));
82
+ await temp.init();
83
+ const { dir } = temp;
84
+ await promises_1.default.writeFile(path_1.default.join(dir, "package.json"), JSON.stringify({
85
+ name: "",
86
+ description: "",
87
+ version: "0.0.1",
88
+ type: "commjs"
89
+ }));
90
+ const rel = await runNpm(["install", dependencies], dir);
91
+ if (rel !== 0)
92
+ throw new Error(`npm package install falled`);
93
+ const ModDor = path_1.default.join(dir, "node_modules");
94
+ // 复制到目标目录
95
+ await copy(ModDor, tagerDir);
96
+ await temp.remove();
97
+ }
98
+ function copy(source, out) {
99
+ return new Promise((then, error) => promises_1.default.readdir(source)
100
+ .then((data) => Promise.all(data
101
+ .map((file) => utils.copy(path_1.default.join(source, file), path_1.default.join(out, file)))).then(() => then()))
102
+ .catch(error));
103
+ }
104
+ module.exports = async function workDirFunction(workDir, _dirname, param = "") {
105
+ param = param.trim();
106
+ dirname = _dirname;
107
+ // 如果已经初始化了
108
+ try {
109
+ if (!workDir)
110
+ throw new Error("Wrok Dir is undefined");
111
+ if (await utils.isMblerProject(workDir))
112
+ throw new Error("WorkDir is init You shouldn't use 'create' command");
113
+ // 缓存id
114
+ const CreateId = index_js_1.default.fromString(`ul-to-${param}`);
115
+ const cacheDir = path_1.default.join(process.cwd(), "lib/initializer-cache", CreateId);
116
+ // 如果缓存存在
117
+ if (await utils.FileExsit(cacheDir)) {
118
+ await Load(cacheDir, workDir);
119
+ // 不存在缓存
120
+ }
121
+ else {
122
+ const dir = utils.join(dirname, param);
123
+ // 尝试匹配为git url
124
+ if (regex.test(param)) {
125
+ await index_js_2.default.clone(param, cacheDir);
126
+ }
127
+ else if (param.startsWith(npmStart)) {
128
+ // 如果是 npm 包,需要加上 npm: 前缀
129
+ const packageName = param.slice(npmStart.length);
130
+ // 开始npm安装
131
+ await NpmInstall(packageName, cacheDir);
132
+ }
133
+ else if (await utils.FileExsit(dir)) {
134
+ // 情况 : 输入路径
135
+ await copy(param, cacheDir);
136
+ }
137
+ else {
138
+ throw new Error("Package source not match");
139
+ }
140
+ await Load(cacheDir, workDir);
141
+ }
142
+ }
143
+ catch (err) {
144
+ console.error(`加载模板初始化失败 错误信息\n${err.stack}`);
145
+ }
146
+ };
package/lib/start/dev.js CHANGED
@@ -1 +1,99 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=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 r=e(t),n=0;n<r.length;n++)"default"!==r[n]&&__createBinding(i,t,r[n]);return __setModuleDefault(i,t),i}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const chokidar=__importStar(require("chokidar")),index_js_1=__importDefault(require("./../build/index.js")),index_js_2=__importDefault(require("./../loger/index.js")),utils=__importStar(require("./../utils/index.js")),index_js_3=__importDefault(require("./../lang/index.js"));class Dev{cwd;baseDir;build;isBuilding=!1;pending=!1;constructor(e,t){this.cwd=e,this.baseDir=t,this.build=new index_js_1.default(e,t)}async start(){index_js_2.default.i("Dev",index_js_3.default.dev?.start||"开始即时监听构建"),await this.build.build(),this.startWatcher()}startWatcher(){const e=this.cwd;chokidar.watch(e,{ignoreInitial:!0,ignored:["**/dist/**","**/.git/**","**/node_modules/**","**/lib/data/cache/**","dist/**"],persistent:!0,usePolling:!0,interval:150}).on("all",async(e,t)=>{index_js_2.default.i("Dev",`${index_js_3.default.dev?.tip||"监听到变化"} ${e} ${t}`),this.isBuilding?this.pending=!0:await this.rebuild()})}async rebuild(){this.isBuilding=!0;try{index_js_2.default.i("Dev",index_js_3.default.dev?.start_d||"开始增量构建"),await this.build.build()}catch(e){index_js_2.default.e("Dev",(index_js_3.default.err_bulid||"构建错误")+utils.toString(e))}this.isBuilding=!1,this.pending&&(this.pending=!1,await this.rebuild())}}module.exports=async(e,t)=>new Dev(e,t).start();
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
+ const chokidar = __importStar(require("chokidar"));
39
+ const index_js_1 = __importDefault(require("./../build/index.js"));
40
+ const index_js_2 = __importDefault(require("./../loger/index.js"));
41
+ const utils = __importStar(require("./../utils/index.js"));
42
+ const index_js_3 = __importDefault(require("./../lang/index.js"));
43
+ class Dev {
44
+ cwd;
45
+ baseDir;
46
+ build;
47
+ isBuilding = false;
48
+ pending = false;
49
+ constructor(cwd, baseDir) {
50
+ this.cwd = cwd;
51
+ this.baseDir = baseDir;
52
+ this.build = new index_js_1.default(cwd, baseDir);
53
+ }
54
+ async start() {
55
+ index_js_2.default.i("Dev", index_js_3.default.dev?.start || "开始即时监听构建");
56
+ await this.build.build();
57
+ this.startWatcher();
58
+ }
59
+ startWatcher() {
60
+ const watchPath = this.cwd;
61
+ const watcher = chokidar.watch(watchPath, {
62
+ ignoreInitial: true,
63
+ ignored: [
64
+ "**/dist/**",
65
+ "**/.git/**",
66
+ "**/node_modules/**",
67
+ "**/lib/data/cache/**",
68
+ "dist/**"
69
+ ],
70
+ persistent: true,
71
+ usePolling: true,
72
+ interval: 150
73
+ });
74
+ watcher.on("all", async (event, filePath) => {
75
+ index_js_2.default.i("Dev", `${index_js_3.default.dev?.tip || "监听到变化"} ${event} ${filePath}`);
76
+ if (this.isBuilding) {
77
+ this.pending = true;
78
+ return;
79
+ }
80
+ await this.rebuild();
81
+ });
82
+ }
83
+ async rebuild() {
84
+ this.isBuilding = true;
85
+ try {
86
+ index_js_2.default.i("Dev", index_js_3.default.dev?.start_d || "开始增量构建");
87
+ await this.build.build();
88
+ }
89
+ catch (err) {
90
+ index_js_2.default.e("Dev", (index_js_3.default.err_bulid || "构建错误") + utils.toString(err));
91
+ }
92
+ this.isBuilding = false;
93
+ if (this.pending) {
94
+ this.pending = false;
95
+ await this.rebuild();
96
+ }
97
+ }
98
+ }
99
+ module.exports = async (workDir, baseDir) => new Dev(workDir, baseDir).start();
@@ -1 +1,3 @@
1
- "use strict";const index_js_1=require("./../module-handler/index.js");module.exports=index_js_1.getResConfig;
1
+ "use strict";
2
+ const index_js_1 = require("./../module-handler/index.js");
3
+ module.exports = index_js_1.getResConfig;
package/lib/start/incg.js CHANGED
@@ -1 +1,3 @@
1
- "use strict";const index_js_1=require("./../module-handler/index.js");module.exports=index_js_1.installModules;
1
+ "use strict";
2
+ const index_js_1 = require("./../module-handler/index.js");
3
+ module.exports = index_js_1.installModules;
@@ -1 +1,207 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(t,e,i,s){void 0===s&&(s=i);var r=Object.getOwnPropertyDescriptor(e,i);r&&!("get"in r?!e.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return e[i]}}),Object.defineProperty(t,s,r)}:function(t,e,i,s){void 0===s&&(s=i),t[s]=e[i]}),__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 i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[e.length]=i);return e},t(e)};return function(e){if(e&&e.__esModule)return e;var i={};if(null!=e)for(var s=t(e),r=0;r<s.length;r++)"default"!==s[r]&&__createBinding(i,e,s[r]);return __setModuleDefault(i,e),i}}(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const promises_1=__importDefault(require("node:fs/promises")),index_js_1=__importDefault(require("./../lang/index.js")),node_path_1=__importDefault(require("node:path")),utils=__importStar(require("./../utils/index.js")),db=".cache/mbler/.path.db";require("./../commander/index.js");const node_process_1=__importDefault(require("node:process")),node_os_1=__importDefault(require("node:os"));class start{command;two;param;dirname;DataPath;constructor(t){this.dirname=t,this.param="",this.DataPath=node_path_1.default.join(node_os_1.default.homedir(),db),this.command=node_process_1.default.argv[2]||"",this.two=(node_process_1.default.argv[3]||"").trim(),this.start()}v=()=>{const{version:t}=require("./../../package.json");console.log(`MBLER : ${t}`)};build=async()=>{const t=new(0,require("./../build").default)(this.param,this.dirname);await t.build()};help=()=>{const t=index_js_1.default.commands;if(t.list.includes(this.two)&&"string"==typeof t[this.two]){let e=t[this.two];return e.startsWith("$")&&(e=t[e.slice(1)]),console.log(`-- '${this.two}' command -- : \n`),void console.log(`Usage : ${e}`)}this.echoHelp()};checkout=async()=>{this.two&&(this.two=utils.join(node_process_1.default.cwd(),this.two||"./")),await utils.FileExsit(this.two)&&this.two&&this.param!==this.two?(await promises_1.default.writeFile(this.DataPath,this.two),console.log(index_js_1.default.s0,`PATH => ${this.two}`)):console.log(this.param)};init=()=>new(require("./init.js"))(this.param,this.dirname).start();async start(){await this.getWorkDir();const t=this.command.toLowerCase().trim(),e={build:this.build,dev:()=>require("./dev")(this.param,this.dirname),create:()=>require("./create")(this.param,this.dirname,this.two),"":()=>this.echoHelp(),recache:()=>require("./rechce")(this.dirname,this.param),lang:()=>{this.two&&index_js_1.default.__internal.set(this.two),console.log(index_js_1.default.__internal.class.currenyLang)},"-h":this.help,"-help":this.help,help:this.help,version:()=>{new(require("./version.js"))(this.param,this.dirname)},v:this.v,"-v":this.v,checkout:this.checkout,"-c":this.checkout,init:this.init,"-i":this.init,web_edit:()=>{new(require("./../web"))({PORT:1025,PATH:this.param})},install:async()=>require("./incg.js")(this.dirname,this.param),uninstall:()=>require("./unincg.js")(this.two,this.dirname),add:()=>require("./addPack.js")(this.two,this.dirname,this.param),remive:()=>require("./unaddPack.js")(this.two,this.dirname,this.param),clean:async()=>{const t=require("./clean.js");await new t(this.param,this.dirname).run()}}[t];try{if("function"==typeof e){const t=e();t instanceof Promise&&await t}else this.defaultCommand(t);node_process_1.default.exit(0)}catch(t){console.error(t)}}defaultCommand(t){console.log(`${index_js_1.default.uncommand}: ${this.command.toLowerCase().trim()}`);const e=index_js_1.default.commands.list.map(e=>this.getMatchChance(t,e)).reduce((t,e,i)=>{try{if(e>t.max)return{max:e,index:i};if(e===t.max)return t.indices.push(i),t}catch{}return t},{max:-1/0,index:-1,indices:[]}),i=index_js_1.default.commands.list[e.index];i&&console.log(`${index_js_1.default.noCommandTip} ${i}`)}async getWorkDir(){try{this.param=(await promises_1.default.readFile(this.DataPath,"utf-8")).toString()||"./test"}catch(t){}}echoHelp(){console.log(index_js_1.default.help)}getMatchChance(t,e){let i=0;for(let s=0;s<e.length;s++)t[s]==e[s]&&i++;return i/e.length}}module.exports=start;
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 promises_1 = __importDefault(require("node:fs/promises"));
40
+ const index_js_1 = __importDefault(require("./../lang/index.js"));
41
+ const node_path_1 = __importDefault(require("node:path"));
42
+ const utils = __importStar(require("./../utils/index.js"));
43
+ const db = '.cache/mbler/.path.db';
44
+ require("./../commander/index.js");
45
+ const node_process_1 = __importDefault(require("node:process"));
46
+ const node_os_1 = __importDefault(require("node:os"));
47
+ class start {
48
+ command;
49
+ two;
50
+ param;
51
+ dirname;
52
+ DataPath;
53
+ constructor(dir) {
54
+ this.dirname = dir;
55
+ this.param = "";
56
+ this.DataPath = node_path_1.default.join(node_os_1.default.homedir(), db);
57
+ this.command = node_process_1.default.argv[2] || '';
58
+ this.two = (node_process_1.default.argv[3] || '').trim();
59
+ this.start();
60
+ }
61
+ v = () => {
62
+ const { version: v } = require('./../../package.json');
63
+ console.log(`MBLER : ${v}`);
64
+ };
65
+ build = async () => {
66
+ const Bulid = require('./../build').default;
67
+ const build = new Bulid(this.param, this.dirname);
68
+ await build.build();
69
+ };
70
+ help = () => {
71
+ const cmds = index_js_1.default.commands;
72
+ if (cmds.list.includes(this.two) && typeof cmds[this.two] === "string") {
73
+ let cmd = cmds[this.two];
74
+ if (cmd.startsWith("$"))
75
+ cmd = cmds[cmd.slice(1)];
76
+ console.log(`-- '${this.two}' command -- : \n`);
77
+ console.log(`Usage : ${cmd}`);
78
+ return;
79
+ }
80
+ this.echoHelp();
81
+ };
82
+ checkout = async () => {
83
+ if (this.two)
84
+ this.two = utils.join(node_process_1.default.cwd(), this.two || './');
85
+ if (!(await utils.FileExsit(this.two)) || !this.two || this.param === this.two) {
86
+ console.log(this.param);
87
+ return;
88
+ }
89
+ try {
90
+ if (!(await utils.FileExsit(node_path_1.default.dirname(this.DataPath)))) {
91
+ await promises_1.default.mkdir(node_path_1.default.dirname(this.DataPath));
92
+ }
93
+ }
94
+ catch (err) { }
95
+ await promises_1.default.writeFile(this.DataPath, this.two);
96
+ console.log(index_js_1.default.s0, `PATH => ${this.two}`);
97
+ };
98
+ init = () => {
99
+ const Init = require('./init.js');
100
+ const init = new Init(this.param, this.dirname);
101
+ return init.start();
102
+ };
103
+ async start() {
104
+ await this.getWorkDir();
105
+ const commandcc = this.command.toLowerCase().trim();
106
+ const commandMap = {
107
+ build: this.build,
108
+ dev: () => require('./dev')(this.param, this.dirname),
109
+ create: () => require('./create')(this.param, this.dirname, this.two),
110
+ "": () => this.echoHelp(),
111
+ recache: () => require('./rechce')(this.dirname, this.param),
112
+ lang: () => {
113
+ if (this.two)
114
+ index_js_1.default.__internal.set(this.two);
115
+ console.log(index_js_1.default.__internal.class.currenyLang);
116
+ },
117
+ "-h": this.help,
118
+ "-help": this.help,
119
+ "help": this.help,
120
+ version: () => {
121
+ const version = require('./version.js');
122
+ new version(this.param, this.dirname);
123
+ },
124
+ "v": this.v,
125
+ "-v": this.v,
126
+ checkout: this.checkout,
127
+ "-c": this.checkout,
128
+ init: this.init,
129
+ "-i": this.init,
130
+ "web_edit": () => {
131
+ const edit = require('./../web');
132
+ new edit({
133
+ PORT: 1025,
134
+ PATH: this.param
135
+ });
136
+ },
137
+ install: async () => require('./incg.js')(this.dirname, this.param),
138
+ uninstall: () => require('./unincg.js')(this.two, this.dirname),
139
+ add: () => require('./addPack.js')(this.two, this.dirname, this.param),
140
+ remive: () => require('./unaddPack.js')(this.two, this.dirname, this.param),
141
+ clean: async () => {
142
+ const clean = require('./clean.js');
143
+ await (new clean(this.param, this.dirname)).run();
144
+ }
145
+ };
146
+ const run = commandMap[commandcc];
147
+ try {
148
+ if (typeof run === "function") {
149
+ const i = run();
150
+ if (i instanceof Promise)
151
+ await i;
152
+ }
153
+ else {
154
+ this.defaultCommand(commandcc);
155
+ }
156
+ node_process_1.default.exit(0);
157
+ }
158
+ catch (err) {
159
+ console.error(err);
160
+ }
161
+ }
162
+ defaultCommand(commandcc) {
163
+ console.log(`\x1b[31m${index_js_1.default.uncommand}: ${this.command.toLowerCase().trim()}\x1b[0m`);
164
+ const didvalue = index_js_1.default.commands.list.map((item) => this.getMatchChance(commandcc, item)).reduce((acc, cur, index) => {
165
+ try {
166
+ if (cur > acc.max) {
167
+ return {
168
+ max: cur,
169
+ index: index
170
+ }; // 更新最大值及索引
171
+ }
172
+ else if (cur === acc.max) {
173
+ acc.indices.push(index); // 记录重复最大值的索引
174
+ return acc;
175
+ }
176
+ }
177
+ catch { }
178
+ return acc;
179
+ }, {
180
+ max: -Infinity,
181
+ index: -1,
182
+ indices: []
183
+ });
184
+ const value = index_js_1.default.commands.list[didvalue.index];
185
+ if (value)
186
+ console.log(`${index_js_1.default.noCommandTip} ${value}`);
187
+ }
188
+ async getWorkDir() {
189
+ try {
190
+ this.param = (await promises_1.default.readFile(this.DataPath, 'utf-8')).toString() || "./test";
191
+ }
192
+ catch (err) { }
193
+ }
194
+ echoHelp() {
195
+ console.log(index_js_1.default.help);
196
+ }
197
+ getMatchChance(a, b) {
198
+ let match = 0;
199
+ // b = 比较值,a = 待比较值
200
+ for (let i = 0; i < b.length; i++) {
201
+ if (a[i] == b[i])
202
+ match++;
203
+ }
204
+ return match / b.length;
205
+ }
206
+ }
207
+ module.exports = start;