@mahameru/cli 0.0.20 → 0.0.21

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 (2) hide show
  1. package/cli.js +25 -23
  2. package/package.json +1 -1
package/cli.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * ┌────────────────────────────────────────────┐
4
4
  * │ │
5
5
  * │ ▲ MahameruJS - CLI │
6
- * │ Version: 0.0.20
6
+ * │ Version: 0.0.21
7
7
  * │ Built: 2026 │
8
8
  * │ │
9
9
  * │ Copyright (c) Bintan <hello@bintvn.co> │
@@ -29,9 +29,9 @@ console.error(n.default.yellow("Please use tsconfig path aliases such as @/* and
29
29
  r.succeed(n.default.green(" Build success."))}catch(e){r.fail(n.default.red(" Internal error.")),console.error(e),
30
30
  process.exit(1)}}}
31
31
  ;const s=o(8330),n=r(o(5205)),i=r(o(8720)),a=o(1455),c=o(6760),l=o(242),d=o(5775),u=o(5412),p=o(5242),f=o(5183),m=o(760)
32
- },7022(e,t,o){t.dev=function({version:e}){return async({host:t,port:o})=>{console.clear();const i=(0,
33
- r.ensureDevEnvironment)();(0,s.printCliBanner)(e),await(0,n.startWatchedDevServer)({version:e,environment:i,host:t,
34
- port:o})}};const r=o(242),s=o(1785),n=o(8320)},3674(e,t,o){var r=this&&this.__importDefault||function(e){
32
+ },7022(e,t,o){t.dev=function({version:e}){return async({host:t,port:o})=>{const a=(0,s.ensureDevEnvironment)();(0,
33
+ n.printCliBanner)(e),o=await(0,r.freePortFinder)(o),await(0,i.startWatchedDevServer)({version:e,environment:a,host:t,
34
+ port:o})}};const r=o(7209),s=o(242),n=o(1785),i=o(8320)},3674(e,t,o){var r=this&&this.__importDefault||function(e){
35
35
  return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.install=void 0
36
36
  ;const s=o(1421),n=o(3024),i=r(o(5205)),a=o(6760),c=o(6921),l=o(6718),d=o(6471),u=r(o(8720))
37
37
  ;t.install=e=>({host:t,port:o,cert:r,key:p})=>{const f="linux"===process.platform,m="win32"===process.platform;let h=""
@@ -170,9 +170,9 @@ return e.includes("Starting compilation in watch mode...")||e.includes("File cha
170
170
  function(e){
171
171
  return["Starting compilation in watch mode...","File change detected. Starting incremental compilation...","Found 0 errors. Watching for file changes.","Watching for file changes."].some(t=>e.includes(t))
172
172
  }(t)||console.log(`${c.default.yellow("[Mahameru TSC]")} ${t}`)}),N=$((0,i.resolve)((0,i.join)(h,"types"))),I=e=>{
173
- const t=$((0,i.resolve)(e));return t===N||t.startsWith(`${N}/`)},H=C.watchFile?.bind(C)
174
- ;H&&(C.watchFile=(e,t,o,r)=>I(e)?{close(){}}:H(e,t,o,r));const F=C.watchDirectory?.bind(C)
175
- ;F&&(C.watchDirectory=(e,t,o,r)=>I(e)?{close(){}}:F(e,t,o,r));const W=C,J=W.writeFile?.bind(W)??S.writeFile.bind(S)
173
+ const t=$((0,i.resolve)(e));return t===N||t.startsWith(`${N}/`)},F=C.watchFile?.bind(C)
174
+ ;F&&(C.watchFile=(e,t,o,r)=>I(e)?{close(){}}:F(e,t,o,r));const H=C.watchDirectory?.bind(C)
175
+ ;H&&(C.watchDirectory=(e,t,o,r)=>I(e)?{close(){}}:H(e,t,o,r));const W=C,J=W.writeFile?.bind(W)??S.writeFile.bind(S)
176
176
  ;W.writeFile=(e,t,o,r,s,n)=>{J?.(e,t,o,r,s,n),q(e,s)};const U=C.afterProgramCreate;C.afterProgramCreate=e=>{U?.(e)
177
177
  ;const t=0===T?1:T;T=t,R=R.then(()=>B(e,t)).catch(e=>{
178
178
  console.error(c.default.red("[Mahameru Dev] Build lifecycle failed.")),console.error(e)})};const L=u(C)
@@ -200,11 +200,11 @@ i.resolve)(e.fileName)).filter(e=>{const o=$(e);return o.startsWith(t)&&o.endsWi
200
200
  }(t))s.changedRuntimeSourceFiles.add(e)}}try{return await k,L}catch(e){throw L.close(),e}}({environment:e,spinner:k,
201
201
  onBuildStart:()=>{T=!0},
202
202
  onBuildSuccess:({durationMs:e,emittedRuntimeFiles:t,changedRuntimeSourceFiles:o,initialBuild:r})=>{if(b=e,T=!1,!r){
203
- for(const e of t)D.add(e);for(const e of o)O.add(e)}T||!u?.initialized||E||(x||A||0!==D.size)&&F()},onBuildFailure:()=>{
203
+ for(const e of t)D.add(e);for(const e of o)O.add(e)}T||!u?.initialized||E||(x||A||0!==D.size)&&H()},onBuildFailure:()=>{
204
204
  T=!1,b=0,A=!1,D.clear(),O.clear(),j&&(clearTimeout(j),j=null)}
205
205
  }),k.succeed(`${c.default.green("[Mahameru]")} Initial build completed.\n`),await u.start()
206
- ;const N=new l.Watchman([h,P]),I=new l.Watchman(y);let H=Promise.resolve();const F=()=>{j&&clearTimeout(j),
207
- j=setTimeout(()=>{H=H.then(async()=>{if(E||!u)return;if(T)return void F();const e=[...D],t=[...O],o=A,r=x;if(x=!1,A=!1,
206
+ ;const N=new l.Watchman([h,P]),I=new l.Watchman(y);let F=Promise.resolve();const H=()=>{j&&clearTimeout(j),
207
+ j=setTimeout(()=>{F=F.then(async()=>{if(E||!u)return;if(T)return void H();const e=[...D],t=[...O],o=A,r=x;if(x=!1,A=!1,
208
208
  D.clear(),
209
209
  O.clear(),j=null,r)return console.log(c.default.yellow("\n [Mahameru] Config file changed. Reloading server...\n")),
210
210
  await u.stop(),u=new d.App(C),console.clear(),void await u.start();if(0===e.length&&!o)return
@@ -216,7 +216,7 @@ console.error(c.default.red("[Mahameru Dev] Hot reload failed.")),console.error(
216
216
  i.resolve)(g)),n=$((0,i.resolve)(P));if(!o.startsWith(`${r}/`)&&o!==n)return null
217
217
  ;if(o.endsWith(".d.ts")||o.endsWith(".map")||o.endsWith(".tsbuildinfo"))return null;if(o===n)return"config"
218
218
  ;if(!o.endsWith(".js"))return null;if(o.startsWith(`${s}/`))return"runtime";return null}(t)
219
- ;o&&("runtime"===o&&"delete"!==e&&"rename"!==e||((e,t)=>{"config"===e?x=!0:(D.add(t),O.add(S(t))),T||F()})(o,t))}),
219
+ ;o&&("runtime"===o&&"delete"!==e&&"rename"!==e||((e,t)=>{"config"===e?x=!0:(D.add(t),O.add(S(t))),T||H()})(o,t))}),
220
220
  I.on("all",async({event:e,filePath:t,oldFilePath:o})=>{if("delete"!==e&&"rename"!==e)return;const r="rename"===e&&o?o:t
221
221
  ;(function(e){const t=`${$((0,i.resolve)(y))}/`;return $((0,i.resolve)(e)).startsWith(t)})(r)&&(await async function(e){
222
222
  const t=(0,i.resolve)(e),o=(0,i.relative)(y,t);if(o.startsWith(".."))return;if(/\.[^\\/]+$/.test(o)){
@@ -224,7 +224,7 @@ const e=function(e){const t=(0,i.relative)(y,e);return(0,i.resolve)(g,t.replace(
224
224
  ;return void await Promise.all([(0,n.rm)(e,{force:!0}).catch(()=>{}),(0,n.rm)(`${e}.map`,{force:!0}).catch(()=>{}),(0,
225
225
  n.rm)(e.replace(/\.js$/i,".d.ts"),{force:!0}).catch(()=>{}),(0,n.rm)(e.replace(/\.js$/i,".d.ts.map"),{force:!0
226
226
  }).catch(()=>{})])}await(0,n.rm)((0,i.resolve)(g,o),{recursive:!0,force:!0}).catch(()=>{})}(r),A=!0,O.add((0,
227
- i.resolve)(r)),T||F())}),await N.start(),await I.start();const W=async(e=0)=>{E||(E=!0,j&&(clearTimeout(j),j=null),
227
+ i.resolve)(r)),T||H())}),await N.start(),await I.start();const W=async(e=0)=>{E||(E=!0,j&&(clearTimeout(j),j=null),
228
228
  N.stop(),I.stop(),await u.stop(),M?.close(),process.exit(e))};process.once("SIGINT",()=>{W(0)}),
229
229
  process.once("SIGTERM",()=>{W(0)}),await new Promise(()=>{})}
230
230
  ;const s=o(3024),n=o(1455),i=o(6760),a=r(o(8720)),c=r(o(5205)),l=o(6469),d=o(1205),u=o(8995),p=o(5183),f=(0,
@@ -457,7 +457,7 @@ var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:
457
457
  ;const s=o(6858),n=r(o(5205)),i=o(8330),a=o(7022),c=o(545),l=o(5775),d=o(3674),u=o(6478),p=o(6571),f=o(1471),m=o(5019),h=o(7659),g=o(846),y=o(7695),v=o(2074),P=new s.Command
458
458
  ;(async()=>{try{const e=process.cwd(),t="mahameru-pm"
459
459
  ;P.name("mahameru").description(`${n.default.bold(n.default.cyan("▲ MahameruJS"))} ${n.default.dim(`CLI v${i.version}`)}`).version(i.version,"-v, --version","Display help for command"),
460
- P.command("dev").description("Start MahameruJS development server.").option("-p, --port <number>","Port to run the server on",l.parsePort).option("-H, --host <string>","Host to run the server on").action((0,
460
+ P.command("dev").description("Start MahameruJS development server.").option("-p, --port <number>","Port to run the server on",l.parsePort,3e3).option("-H, --host <string>","Host to run the server on","127.0.0.1").action((0,
461
461
  a.dev)({version:i.version})),P.command("build").description("Build MahameruJS production application.").action((0,
462
462
  c.build)({rootPath:e
463
463
  })),P.command("start").description("Start MahameruJS production server.").option("-p, --port <number>","Port to run the server on",l.parsePort,8e3).option("-H, --host <string>","Host to run the server on","127.0.0.1").action((0,
@@ -538,17 +538,17 @@ o.write(JSON.stringify({success:!0,message:`Project ${r} successfully started by
538
538
  mpmUrl:`http://${e}:${t}`}));else if("PROCESS_USAGE"===n){const e=(0,h.getProject)(r);e&&G.emit("process-usage",{data:i,
539
539
  project:(0,g.parseProject)(e)})}},D=e=>t=>{console.log(`[MPM] Project ${e} errored: ${t.message}`)},O=e=>({success:!0,
540
540
  data:e}),R=e=>({success:!1,error:e}),k=e=>(0,g.parseProject)(e),C=()=>(0,h.getProjects)().map(g.parseProject),N=e=>{
541
- console.log(`[MPM] ${e}`)},I=()=>{G.emit("projects",C())},H=e=>{
541
+ console.log(`[MPM] ${e}`)},I=()=>{G.emit("projects",C())},F=e=>{
542
542
  const t=(0,d.join)(e.rootPath,"node_modules","mahameru","dist","server.js");if(!(0,
543
543
  v.existsSync)(t))throw new Error(`Mahameru package is not installed in ${e.rootPath} project. Please install it by running: npm install mahameru`)
544
- ;return t},F=e=>({MAHAMERU__SEND_PROCESS_USAGE_INTERVAL:"3000",MAHAMERU__ROOT_PATH:e.rootPath,
544
+ ;return t},H=e=>({MAHAMERU__SEND_PROCESS_USAGE_INTERVAL:"3000",MAHAMERU__ROOT_PATH:e.rootPath,
545
545
  MAHAMERU__MODE:"production",...e.host?{MAHAMERU__HTTP_LISTEN_HOST:e.host.trim()}:{},...e.port?{
546
546
  MAHAMERU__HTTP_LISTEN_PORT:e.port.toString().trim()}:{}}),W=(e,t,o=null)=>{t.stdout?.on("data",T(e.name)),
547
547
  t.stderr?.on("data",A(e.name)),t.on("message",b(o,e.name,t)),t.on("error",D(e.name)),t.once("exit",o=>{e.child===t&&(0,
548
548
  h.getProject)(e.name)&&(e.status=0===o||null===o?"stopped":"errored",e.pid=void 0,e.child=void 0,
549
549
  G.emit("project-update",k(e)),I())})},J=(e,t)=>new Promise(o=>{const r=s=>{t.includes(s.type)&&(e.off("message",r),o(s))
550
- };e.on("message",r)}),U=(e,t=null)=>new Promise((o,r)=>{let s=!1;const n=e=>{s||(s=!0,e())};try{const s=H(e),i=(0,
551
- l.fork)(s,[],{cwd:e.rootPath,env:{...process.env,...F(e)},stdio:["inherit","pipe","pipe","ipc"]});e.status="stopped",
550
+ };e.on("message",r)}),U=(e,t=null)=>new Promise((o,r)=>{let s=!1;const n=e=>{s||(s=!0,e())};try{const s=F(e),i=(0,
551
+ l.fork)(s,[],{cwd:e.rootPath,env:{...process.env,...H(e)},stdio:["inherit","pipe","pipe","ipc"]});e.status="stopped",
552
552
  e.pid=i.pid,e.child=i,(0,h.setProject)(e),W(e,i,t),J(i,["READY","ERROR"]).then(({type:t,data:s})=>{"READY"===t?n(()=>{
553
553
  e.status="running",e.pid=i.pid,e.child=i,(0,h.setProject)(e),o(e)}):"ERROR"===t&&n(()=>{e.status="errored",e.pid=void 0,
554
554
  e.child=void 0,(0,h.setProject)(e),r(new Error("string"==typeof s?s:`Failed to start project ${e.name}`))})}),
@@ -612,11 +612,13 @@ t.getProjects)().map(e=>({...e,child:void 0,pid:void 0,isLastStatusIsRunning:"ru
612
612
  throw new Error("Failed to save projects")}}},7209(e,t,o){var r=this&&this.__importDefault||function(e){
613
613
  return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),
614
614
  t.freePortFinder=async function(e=3e3){let t=e;const o=e+999;for(;t<o;)try{return await n(t)}catch(e){t++}
615
- throw new Error(`Port ${e} - 999 is not available`)};const s=r(o(7030));function n(e){return new Promise((t,o)=>{
616
- const r=s.default.createServer();r.once("error",e=>{e.code,o(e)}),r.once("listening",()=>{r.close(()=>t(e))}),
617
- r.listen(e,"127.0.0.1")})}},4830(e,t,o){t.getProjectJson=async function(e){try{return JSON.parse(await(0,r.readFile)((0,
618
- s.join)(e,"package.json"),"utf-8"))}catch(e){throw new Error("package.json not found")}};const r=o(1455),s=o(6760)},
619
- 6718(e,t,o){t.getNodeModulesPath=function(){try{return(0,r.execSync)("npm root -g",{stdio:["ignore","pipe","ignore"]
615
+ throw new Error(`Port ${e} - 999 is not available`)},t.isPortAvailable=function(e){return new Promise((t,o)=>{
616
+ const r=s.default.createServer();r.once("error",e=>{e.code,o(!1)}),r.once("listening",()=>{r.close(()=>t(!0))}),
617
+ r.listen(e,"127.0.0.1")})};const s=r(o(7030));function n(e){return new Promise((t,o)=>{const r=s.default.createServer()
618
+ ;r.once("error",e=>{e.code,o(e)}),r.once("listening",()=>{r.close(()=>t(e))}),r.listen(e,"127.0.0.1")})}},4830(e,t,o){
619
+ t.getProjectJson=async function(e){try{return JSON.parse(await(0,r.readFile)((0,s.join)(e,"package.json"),"utf-8"))
620
+ }catch(e){throw new Error("package.json not found")}};const r=o(1455),s=o(6760)},6718(e,t,o){
621
+ t.getNodeModulesPath=function(){try{return(0,r.execSync)("npm root -g",{stdio:["ignore","pipe","ignore"]
620
622
  }).toString().trim()}catch(e){throw new Error("npm is not installed or not accessible on your system.")}}
621
623
  ;const r=o(1421)},4813(e,t,o){t.isMahameruProjectDir=function(e){const t=(0,s.join)(e,"package.json"),o=(0,
622
624
  s.join)(e,"node_modules");if(!(0,r.existsSync)(t)&&(0,r.existsSync)(o))return!1;try{const e=(0,
@@ -643,6 +645,6 @@ e.exports=require("module")},9278(e){e.exports=require("net")},1421(e){e.exports
643
645
  e.exports=require("node:cluster")},3024(e){e.exports=require("node:fs")},1455(e){e.exports=require("node:fs/promises")},
644
646
  7067(e){e.exports=require("node:http")},4708(e){e.exports=require("node:https")},8995(e){
645
647
  e.exports=require("node:module")},7030(e){e.exports=require("node:net")},8161(e){e.exports=require("node:os")},6760(e){
646
- e.exports=require("node:path")},6928(e){e.exports=require("path")},8330(e){e.exports={version:"0.0.20"}}};const t={}
648
+ e.exports=require("node:path")},6928(e){e.exports=require("path")},8330(e){e.exports={version:"0.0.21"}}};const t={}
647
649
  ;(function o(r){const s=t[r];if(void 0!==s)return s.exports;const n=t[r]={exports:{}}
648
650
  ;return e[r].call(n.exports,n,n.exports,o),n.exports})(8625)})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mahameru/cli",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "MahameruJS CLI Utility - The command-line interface for running and building Mahameru-based applications",
5
5
  "bin": {
6
6
  "mahameru": "./cli.js"