@h3ravel/console 11.10.1 → 11.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/fire.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const e=require(`./zero-Ce9OzYZl.cjs`);require(`tsx/esm`);let t=require(`@h3ravel/core`);t=e.__toESM(t);let n=require(`@h3ravel/shared`);n=e.__toESM(n);let r=require(`@h3ravel/musket`);r=e.__toESM(r);let i=require(`execa`);i=e.__toESM(i);let a=require(`preferred-pm`);a=e.__toESM(a);let o=require(`node:fs/promises`);o=e.__toESM(o),require(`@h3ravel/support`);let s=require(`node:path`);s=e.__toESM(s);let c=require(`node:fs`);c=e.__toESM(c);let l=require(`child_process`);l=e.__toESM(l);let u=require(`path`);u=e.__toESM(u);const d=String.raw`
2
+ const e=require(`./spawn-xwsneyuG.cjs`);require(`tsx/esm`);let t=require(`@h3ravel/core`);t=e.t(t);let n=require(`@h3ravel/shared`);n=e.t(n);let r=require(`@h3ravel/musket`);r=e.t(r);let i=require(`execa`);i=e.t(i);let a=require(`preferred-pm`);a=e.t(a);let o=require(`node:fs/promises`);o=e.t(o),require(`@h3ravel/support`);let s=require(`node:path`);s=e.t(s);let c=require(`node:fs`);c=e.t(c);let l=require(`child_process`);l=e.t(l);let u=require(`path`);u=e.t(u);const d=String.raw`
3
3
  111
4
4
  111111111
5
5
  1111111111 111111
package/bin/fire.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import"./zero-BGMatB6V.js";import"tsx/esm";import{Application as e,ContainerResolver as t,ServiceProvider as n}from"@h3ravel/core";import{FileSystem as r}from"@h3ravel/shared";import{Kernel as i}from"@h3ravel/musket";import{execa as a}from"execa";import o from"preferred-pm";import{mkdir as s,rm as c,writeFile as l}from"node:fs/promises";import"@h3ravel/support";import u from"node:path";import{existsSync as d}from"node:fs";import{fork as f}from"child_process";import{dirname as p,join as m,resolve as h}from"path";String.raw`
2
+ import"./spawn-Btvwwwha.js";import"tsx/esm";import{Application as e,ContainerResolver as t,ServiceProvider as n}from"@h3ravel/core";import{FileSystem as r}from"@h3ravel/shared";import{Kernel as i}from"@h3ravel/musket";import{execa as a}from"execa";import o from"preferred-pm";import{mkdir as s,rm as c,writeFile as l}from"node:fs/promises";import"@h3ravel/support";import u from"node:path";import{existsSync as d}from"node:fs";import{fork as f}from"child_process";import{dirname as p,join as m,resolve as h}from"path";String.raw`
3
3
  111
4
4
  111111111
5
5
  1111111111 111111
@@ -0,0 +1 @@
1
+ import{FileSystem as e,mainTsconfig as t}from"@h3ravel/shared";import{execa as n}from"execa";import r from"preferred-pm";import{mkdir as i,readdir as a,writeFile as o}from"node:fs/promises";import s,{join as c}from"node:path";new class{async spawn(l=`.h3ravel/serve`){let u=(await r(process.cwd()))?.name??`npm`,d=c(process.env.DIST_DIR??l);if(await e.fileExists(d)&&(await a(d)).length>0)return;await e.fileExists(s.join(d,`tsconfig.json`))||(await i(s.join(d.replace(`/serve`,``)),{recursive:!0}),await o(s.join(d.replace(`/serve`,``),`tsconfig.json`),JSON.stringify(t,null,2)));let f={EXTENDED_DEBUG:`false`,CLI_BUILD:`true`,NODE_ENV:`production`,DIST_DIR:d,LOG_LEVEL:`silent`};await n(u,[`tsdown`,`--silent`,`--config-loader`,`unconfig`,`-c`,`tsdown.default.config.ts`].filter(e=>e!==null),{stdout:`inherit`,stderr:`inherit`,cwd:c(process.cwd()),env:Object.assign({},process.env,f)})}}().spawn();export{};
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@h3ravel/shared`);c=s(c);let l=require(`execa`);l=s(l);let u=require(`preferred-pm`);u=s(u);let d=require(`node:fs/promises`);d=s(d);let f=require(`node:path`);f=s(f);var p=class{async spawn(e=`.h3ravel/serve`){let t=(await(0,u.default)(process.cwd()))?.name??`npm`,n=(0,f.join)(process.env.DIST_DIR??e);if(await c.FileSystem.fileExists(n)&&(await(0,d.readdir)(n)).length>0)return;await c.FileSystem.fileExists(f.default.join(n,`tsconfig.json`))||(await(0,d.mkdir)(f.default.join(n.replace(`/serve`,``)),{recursive:!0}),await(0,d.writeFile)(f.default.join(n.replace(`/serve`,``),`tsconfig.json`),JSON.stringify(c.mainTsconfig,null,2)));let r={EXTENDED_DEBUG:`false`,CLI_BUILD:`true`,NODE_ENV:`production`,DIST_DIR:n,LOG_LEVEL:`silent`};await(0,l.execa)(t,[`tsdown`,`--silent`,`--config-loader`,`unconfig`,`-c`,`tsdown.default.config.ts`].filter(e=>e!==null),{stdout:`inherit`,stderr:`inherit`,cwd:(0,f.join)(process.cwd()),env:Object.assign({},process.env,r)})}};Object.defineProperty(exports,`__toESM`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`zero_default`,{enumerable:!0,get:function(){return p}});
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@h3ravel/shared`);c=s(c);let l=require(`execa`);l=s(l);let u=require(`preferred-pm`);u=s(u);let d=require(`node:fs/promises`);d=s(d);let f=require(`node:path`);f=s(f);var p=class{async spawn(e=`.h3ravel/serve`){let t=(await(0,u.default)(process.cwd()))?.name??`npm`,n=(0,f.join)(process.env.DIST_DIR??e);if(await c.FileSystem.fileExists(n)&&(await(0,d.readdir)(n)).length>0)return;await c.FileSystem.fileExists(f.default.join(n,`tsconfig.json`))||(await(0,d.mkdir)(f.default.join(n.replace(`/serve`,``)),{recursive:!0}),await(0,d.writeFile)(f.default.join(n.replace(`/serve`,``),`tsconfig.json`),JSON.stringify(c.mainTsconfig,null,2)));let r={EXTENDED_DEBUG:`false`,CLI_BUILD:`true`,NODE_ENV:`production`,DIST_DIR:n,LOG_LEVEL:`silent`};await(0,l.execa)(t,[`tsdown`,`--silent`,`--config-loader`,`unconfig`,`-c`,`tsdown.default.config.ts`].filter(e=>e!==null),{stdout:`inherit`,stderr:`inherit`,cwd:(0,f.join)(process.cwd()),env:Object.assign({},process.env,r)})}};new p().spawn(),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
package/bin/spawn.cjs CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const e=require(`./zero-Ce9OzYZl.cjs`);new e.zero_default().spawn();
2
+ require(`./spawn-xwsneyuG.cjs`);
package/bin/spawn.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{zero_default as e}from"./zero-BGMatB6V.js";new e().spawn();export{};
2
+ import"./spawn-Btvwwwha.js";export{};
package/dist/index.cjs CHANGED
@@ -35,6 +35,7 @@ let __h3ravel_support = require("@h3ravel/support");
35
35
  __h3ravel_support = __toESM(__h3ravel_support);
36
36
  let node_path = require("node:path");
37
37
  node_path = __toESM(node_path);
38
+ require("tsx/esm");
38
39
  let __h3ravel_core = require("@h3ravel/core");
39
40
  __h3ravel_core = __toESM(__h3ravel_core);
40
41
  let node_fs = require("node:fs");
@@ -258,6 +259,68 @@ var PostinstallCommand = class extends __h3ravel_musket.Command {
258
259
  }
259
260
  };
260
261
 
262
+ //#endregion
263
+ //#region src/IO/app.ts
264
+ var app_default = class {
265
+ async fire() {
266
+ const DIST_DIR = process.env.DIST_DIR ?? "/.h3ravel/serve/";
267
+ const providers = [];
268
+ const app = new __h3ravel_core.Application(process.cwd());
269
+ /**
270
+ * Load Service Providers already registered by the app
271
+ */
272
+ const app_providers = base_path(node_path.default.join(DIST_DIR, "bootstrap/providers.js"));
273
+ providers.push(...(await import(app_providers)).default);
274
+ /** Add the ConsoleServiceProvider */
275
+ providers.push(ConsoleServiceProvider);
276
+ /** Register all the Service Providers */
277
+ await app.quickStartup(providers, ["CoreServiceProvider"]);
278
+ }
279
+ };
280
+
281
+ //#endregion
282
+ //#region src/fire.ts
283
+ new app_default().fire();
284
+
285
+ //#endregion
286
+ //#region src/IO/zero.ts
287
+ var zero_default = class {
288
+ /**
289
+ * Ensures that the app is pre built
290
+ *
291
+ * @returns
292
+ */
293
+ async spawn(DIST_DIR = ".h3ravel/serve") {
294
+ const pm = (await (0, preferred_pm.default)(process.cwd()))?.name ?? "npm";
295
+ const outDir$1 = (0, node_path.join)(process.env.DIST_DIR ?? DIST_DIR);
296
+ if (await __h3ravel_shared.FileSystem.fileExists(outDir$1) && (await (0, node_fs_promises.readdir)(outDir$1)).length > 0) return;
297
+ if (!await __h3ravel_shared.FileSystem.fileExists(node_path.default.join(outDir$1, "tsconfig.json"))) {
298
+ await (0, node_fs_promises.mkdir)(node_path.default.join(outDir$1.replace("/serve", "")), { recursive: true });
299
+ await (0, node_fs_promises.writeFile)(node_path.default.join(outDir$1.replace("/serve", ""), "tsconfig.json"), JSON.stringify(__h3ravel_shared.mainTsconfig, null, 2));
300
+ }
301
+ const ENV_VARS = {
302
+ EXTENDED_DEBUG: "false",
303
+ CLI_BUILD: "true",
304
+ NODE_ENV: "production",
305
+ DIST_DIR: outDir$1,
306
+ LOG_LEVEL: "silent"
307
+ };
308
+ await (0, execa.execa)(pm, [
309
+ "tsdown",
310
+ "--silent",
311
+ "--config-loader",
312
+ "unconfig",
313
+ "-c",
314
+ "tsdown.default.config.ts"
315
+ ].filter((e) => e !== null), {
316
+ stdout: "inherit",
317
+ stderr: "inherit",
318
+ cwd: (0, node_path.join)(process.cwd()),
319
+ env: Object.assign({}, process.env, ENV_VARS)
320
+ });
321
+ }
322
+ };
323
+
261
324
  //#endregion
262
325
  //#region src/logo.ts
263
326
  const logo = String.raw`
@@ -444,6 +507,10 @@ var ConsoleServiceProvider = class extends __h3ravel_core.ServiceProvider {
444
507
  }
445
508
  };
446
509
 
510
+ //#endregion
511
+ //#region src/spawn.ts
512
+ new zero_default().spawn();
513
+
447
514
  //#endregion
448
515
  exports.BuildCommand = BuildCommand;
449
516
  exports.ConsoleServiceProvider = ConsoleServiceProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["Command","outDir","TaskManager","Command","FileSystem","nodepath","path","Str","Logger","Command","FileSystem","dir","entryFileName","env","TsDownConfig: Options","path","ServiceProvider","ContainerResolver"],"sources":["../src/Commands/BuildCommand.ts","../src/Commands/MakeCommand.ts","../src/Commands/PostinstallCommand.ts","../src/logo.ts","../../../node_modules/.pnpm/@rollup+plugin-run@3.1.0_rollup@4.52.3/node_modules/@rollup/plugin-run/dist/es/index.js","../src/TsdownConfig.ts","../src/Providers/ConsoleServiceProvider.ts"],"sourcesContent":["import { Logger, TaskManager } from '@h3ravel/shared'\n\nimport { Command } from '@h3ravel/musket'\nimport { execa } from 'execa'\nimport preferredPM from 'preferred-pm'\n\nexport class BuildCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `build\n {--m|minify : Minify your bundle output}\n {--d|dev : Build for dev but don't watch for changes}\n `\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Build the app for production'\n\n public async handle () {\n try {\n await this.fire()\n } catch (e) {\n Logger.error(e as any)\n }\n }\n\n protected async fire () {\n const outDir = this.option('dev') ? '.h3ravel/serve' : env('DIST_DIR', 'dist')\n const minify = this.option('minify')\n const verbosity = this.getVerbosity()\n const debug = verbosity > 0\n\n this.newLine()\n await BuildCommand.build({ outDir, minify, verbosity, debug, mute: false })\n this.newLine()\n }\n\n /**\n * build\n */\n public static async build ({ debug, minify, mute, verbosity, outDir } = {\n mute: false,\n debug: false,\n minify: false,\n verbosity: 0,\n outDir: 'dist'\n }) {\n\n const pm = (await preferredPM(base_path()))?.name ?? 'pnpm'\n\n const LOG_LEVELS = [\n 'silent',\n 'info',\n 'warn',\n 'error',\n ]\n\n const ENV_VARS = {\n EXTENDED_DEBUG: debug ? 'true' : 'false',\n CLI_BUILD: 'true',\n NODE_ENV: 'production',\n DIST_DIR: outDir,\n DIST_MINIFY: minify,\n LOG_LEVEL: LOG_LEVELS[verbosity]\n }\n\n const silent = ENV_VARS.LOG_LEVEL === 'silent' ? '--silent' : null\n\n if (mute) {\n return await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n\n const type = outDir === 'dist' ? 'Production' : 'Development'\n\n return await TaskManager.advancedTaskRunner(\n [[`Creating ${type} Bundle`, 'STARTED'], [`${type} Bundle Created`, 'COMPLETED']],\n async () => {\n await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n )\n }\n}\n","import { FileSystem, Logger } from '@h3ravel/shared'\nimport { mkdir, readFile, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { Str } from '@h3ravel/support'\nimport nodepath from 'node:path'\n\nexport class MakeCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `#make:\n {controller : Create a new controller class. \n | {--a|api : Exclude the create and edit methods from the controller} \n | {--m|model= : Generate a resource controller for the given model} \n | {--r|resource : Generate a resource controller class} \n | {--force : Create the controller even if it already exists}\n }\n {resource : Create a new resource. \n | {--c|collection : Create a resource collection}\n | {--force : Create the resource even if it already exists}\n }\n {command : Create a new Musket command. \n | {--command : The terminal command that will be used to invoke the class} \n | {--force : Create the class even if the console command already exists}\n }\n {view : Create a new view.\n | {--force : Create the view even if it already exists}\n }\n {^name : The name of the [name] to generate}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Generate component classes'\n\n public async handle (this: any) {\n const command = (this.dictionary.baseCommand ?? this.dictionary.name) as never\n\n if (!this.argument('name')) {\n this.program.error('Please provide a valid name for the ' + command)\n }\n\n const methods = {\n controller: 'makeController',\n resource: 'makeResource',\n view: 'makeView',\n command: 'makeCommand',\n } as const\n\n await this[methods[command]]()\n }\n\n /**\n * Create a new controller class.\n */\n protected async makeController () {\n const type = this.option('api') ? '-resource' : ''\n const name = this.argument('name')\n const force = this.option('force')\n\n const crtlrPath = FileSystem.findModulePkg('@h3ravel/http', this.kernel.cwd) ?? ''\n const stubPath = nodepath.join(crtlrPath, `dist/stubs/controller${type}.stub`)\n const path = app_path(`Http/Controllers/${name}.ts`)\n\n /** The Controller is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the controller already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} controller already exists`)\n }\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n Logger.split('INFO: Controller Created', Logger.log(nodepath.basename(path), 'gray', false))\n }\n\n protected makeResource () {\n Logger.success('Resource support is not yet available')\n }\n\n /**\n * Create a new Musket command\n */\n protected makeCommand () {\n Logger.success('Musket command creation is not yet available')\n }\n\n /**\n * Create a new view.\n */\n protected async makeView () {\n const name = this.argument('name')\n const force = this.option('force')\n\n const path = base_path(`src/resources/views/${name}.edge`)\n\n /** The view is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the view already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} view already exists`)\n }\n\n await writeFile(path, `{{-- src/resources/views/${name}.edge --}}`)\n Logger.split('INFO: View Created', Logger.log(`src/resources/views/${name}.edge`, 'gray', false))\n }\n}\n","import { mkdir, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { FileSystem } from '@h3ravel/shared'\n\nexport class PostinstallCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = 'postinstall'\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Default post installation command'\n\n public async handle () {\n this.createSqliteDB()\n }\n\n /**\n * Create sqlite database if none exist\n * \n * @returns \n */\n private async createSqliteDB () {\n if (config('database.default') !== 'sqlite') return\n\n if (!await FileSystem.fileExists(database_path())) {\n await mkdir(database_path(), { recursive: true })\n }\n\n if (!await FileSystem.fileExists(database_path('db.sqlite'))) {\n await writeFile(database_path('db.sqlite'), '')\n }\n }\n}\n","export const logo = String.raw`\n 111 \n 111111111 \n 1111111111 111111 \n 111111 111 111111 \n 111111 111 111111 \n11111 111 11111 \n1111111 111 1111111 \n111 11111 111 111111 111 1111 1111 11111111 1111\n111 11111 1111 111111 111 1111 1111 1111 11111 1111\n111 11111 11111 111 1111 1111 111111111111 111111111111 1111 1111111 1111\n111 111111 1111 111 111111111111 111111 11111 1111 111 1111 11111111 1111 1111\n111 111 11111111 111 1101 1101 111111111 11111111 1111 1111111111111111101\n111 1111111111111111 1111 111 1111 1111 111 11111011 1111 111 1111111 1101 1111\n111 11111 1110111111111111 111 1111 1111 1111111101 1111 111111111 1111011 111111111 1111\n1111111 111110111110 111 1111 1111 111111 1111 11011101 10111 11111 1111\n11011 111111 11 11111 \n 111111 11101 111111 \n 111111 111 111111 \n 111111 111 111111 \n 111111111 \n 110 \n`\n\nexport const altLogo = String.raw`\n _ _ _____ _ \n| | | |___ / _ __ __ ___ _____| |\n| |_| | |_ \\| '__/ _ \\ \\ / / _ \\ |\n| _ |___) | | | (_| |\\ V / __/ |\n|_| |_|____/|_| \\__,_| \\_/ \\___|_|\n\n`\n","import { fork } from 'child_process';\nimport { resolve, dirname, join } from 'path';\n\nfunction run(opts = {}) {\n let input;\n let proc;\n const args = opts.args || [];\n const allowRestarts = opts.allowRestarts || false;\n const overrideInput = opts.input;\n const forkOptions = opts.options || opts;\n delete forkOptions.args;\n delete forkOptions.allowRestarts;\n return {\n name: 'run',\n buildStart(options) {\n let inputs = overrideInput !== null && overrideInput !== void 0 ? overrideInput : options.input;\n if (typeof inputs === 'string') {\n inputs = [inputs];\n }\n if (typeof inputs === 'object') {\n inputs = Object.values(inputs);\n }\n if (inputs.length > 1) {\n throw new Error(`@rollup/plugin-run must have a single entry point; consider setting the \\`input\\` option`);\n }\n input = resolve(inputs[0]);\n },\n generateBundle(_outputOptions, _bundle, isWrite) {\n if (!isWrite) {\n this.error(`@rollup/plugin-run currently only works with bundles that are written to disk`);\n }\n },\n writeBundle(outputOptions, bundle) {\n const forkBundle = (dir, entryFileName) => {\n if (proc)\n proc.kill();\n proc = fork(join(dir, entryFileName), args, forkOptions);\n };\n const dir = outputOptions.dir || dirname(outputOptions.file);\n const entryFileName = Object.keys(bundle).find((fileName) => {\n const chunk = bundle[fileName];\n return chunk.isEntry && chunk.facadeModuleId === input;\n });\n if (entryFileName) {\n forkBundle(dir, entryFileName);\n if (allowRestarts) {\n process.stdin.resume();\n process.stdin.setEncoding('utf8');\n process.stdin.on('data', (data) => {\n const line = data.toString().trim().toLowerCase();\n if (line === 'rs' || line === 'restart' || data.toString().charCodeAt(0) === 11) {\n forkBundle(dir, entryFileName);\n }\n else if (line === 'cls' || line === 'clear' || data.toString().charCodeAt(0) === 12) {\n // eslint-disable-next-line no-console\n console.clear();\n }\n });\n }\n }\n else {\n this.error(`@rollup/plugin-run could not find output chunk`);\n }\n }\n };\n}\n\nexport { run as default };\n//# sourceMappingURL=index.js.map\n","import { Options } from 'tsdown'\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\nimport { rm } from 'node:fs/promises'\nimport run from '@rollup/plugin-run'\n\nconst env = process.env.NODE_ENV || 'development'\nlet outDir = env === 'development' ? '.h3ravel/serve' : 'dist'\nif (process.env.DIST_DIR) {\n outDir = process.env.DIST_DIR\n}\n\nexport const TsDownConfig: Options = {\n outDir,\n entry: ['src/**/*.ts'],\n format: ['esm'],//, 'cjs'],\n target: 'node22',\n sourcemap: env === 'development',\n minify: !!process.env.DIST_MINIFY,\n external: [\n /^@h3ravel\\/.*/gi,\n ],\n clean: true,\n shims: true,\n copy: [{ from: 'public', to: outDir }, 'src/resources', 'src/database'],\n env: env === 'development' ? {\n NODE_ENV: env,\n DIST_DIR: outDir,\n } : {},\n watch:\n env === 'development' && process.env.CLI_BUILD !== 'true'\n ? ['.env', '.env.*', 'src', '../../packages']\n : false,\n dts: false,\n logLevel: 'silent',\n nodeProtocol: true,\n skipNodeModulesBundle: true,\n hooks (e) {\n e.hook('build:done', async () => {\n const paths = ['database/migrations', 'database/factories', 'database/seeders']\n for (let i = 0; i < paths.length; i++) {\n const name = paths[i]\n if (existsSync(path.join(outDir, name)))\n await rm(path.join(outDir, name), { recursive: true })\n }\n })\n },\n plugins: env === 'development' && process.env.CLI_BUILD !== 'true' ? [\n run({\n env: Object.assign({}, process.env, {\n NODE_ENV: env,\n DIST_DIR: outDir,\n }),\n execArgv: ['-r', 'source-map-support/register'],\n allowRestarts: false,\n input: process.cwd() + '/src/server.ts'//\n })\n ] : [],\n}\n\nexport default TsDownConfig\n","/// <reference path=\"../../../core/src/app.globals.d.ts\" />\n\nimport { ContainerResolver, ServiceProvider } from '@h3ravel/core'\n\nimport { Kernel } from '@h3ravel/musket'\nimport { altLogo } from '../logo'\nimport tsDownConfig from '../TsdownConfig'\n\n/**\n * Handles CLI commands and tooling.\n * \n * Auto-Registered when in CLI mode\n */\nexport class ConsoleServiceProvider extends ServiceProvider {\n public static priority = 992\n\n /**\n * Indicate that this service provider only runs in console\n */\n public static runsInConsole = true\n public runsInConsole = true\n\n register () {\n }\n\n boot () {\n const DIST_DIR = `/${env('DIST_DIR', '.h3ravel/serve')}/`.replaceAll('//', '')\n\n Kernel.init(\n this.app,\n {\n logo: altLogo,\n resolver: new ContainerResolver(this.app).resolveMethodParams,\n tsDownConfig,\n packages: [\n { name: '@h3ravel/core', alias: 'H3ravel Framework' },\n { name: '@h3ravel/musket', alias: 'Musket CLI' }\n ],\n cliName: 'musket',\n hideMusketInfo: true,\n discoveryPaths: [app_path('Console/Commands/*.js').replace('/src/', DIST_DIR)],\n }\n )\n\n process.on('SIGINT', () => {\n process.exit(0)\n })\n process.on('SIGTERM', () => {\n process.exit(0)\n })\n }\n}\n"],"x_google_ignoreList":[4],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["Command","outDir","TaskManager","Command","FileSystem","nodepath","path","Str","Logger","Command","FileSystem","providers: AServiceProvider[]","Application","path","musket","outDir","FileSystem","path","mainTsconfig","dir","entryFileName","env","TsDownConfig: Options","path","ServiceProvider","ContainerResolver","zero"],"sources":["../src/Commands/BuildCommand.ts","../src/Commands/MakeCommand.ts","../src/Commands/PostinstallCommand.ts","../src/IO/app.ts","../src/fire.ts","../src/IO/zero.ts","../src/logo.ts","../../../node_modules/.pnpm/@rollup+plugin-run@3.1.0_rollup@4.52.3/node_modules/@rollup/plugin-run/dist/es/index.js","../src/TsdownConfig.ts","../src/Providers/ConsoleServiceProvider.ts","../src/spawn.ts"],"sourcesContent":["import { Logger, TaskManager } from '@h3ravel/shared'\n\nimport { Command } from '@h3ravel/musket'\nimport { execa } from 'execa'\nimport preferredPM from 'preferred-pm'\n\nexport class BuildCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `build\n {--m|minify : Minify your bundle output}\n {--d|dev : Build for dev but don't watch for changes}\n `\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Build the app for production'\n\n public async handle () {\n try {\n await this.fire()\n } catch (e) {\n Logger.error(e as any)\n }\n }\n\n protected async fire () {\n const outDir = this.option('dev') ? '.h3ravel/serve' : env('DIST_DIR', 'dist')\n const minify = this.option('minify')\n const verbosity = this.getVerbosity()\n const debug = verbosity > 0\n\n this.newLine()\n await BuildCommand.build({ outDir, minify, verbosity, debug, mute: false })\n this.newLine()\n }\n\n /**\n * build\n */\n public static async build ({ debug, minify, mute, verbosity, outDir } = {\n mute: false,\n debug: false,\n minify: false,\n verbosity: 0,\n outDir: 'dist'\n }) {\n\n const pm = (await preferredPM(base_path()))?.name ?? 'pnpm'\n\n const LOG_LEVELS = [\n 'silent',\n 'info',\n 'warn',\n 'error',\n ]\n\n const ENV_VARS = {\n EXTENDED_DEBUG: debug ? 'true' : 'false',\n CLI_BUILD: 'true',\n NODE_ENV: 'production',\n DIST_DIR: outDir,\n DIST_MINIFY: minify,\n LOG_LEVEL: LOG_LEVELS[verbosity]\n }\n\n const silent = ENV_VARS.LOG_LEVEL === 'silent' ? '--silent' : null\n\n if (mute) {\n return await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n\n const type = outDir === 'dist' ? 'Production' : 'Development'\n\n return await TaskManager.advancedTaskRunner(\n [[`Creating ${type} Bundle`, 'STARTED'], [`${type} Bundle Created`, 'COMPLETED']],\n async () => {\n await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n )\n }\n}\n","import { FileSystem, Logger } from '@h3ravel/shared'\nimport { mkdir, readFile, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { Str } from '@h3ravel/support'\nimport nodepath from 'node:path'\n\nexport class MakeCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `#make:\n {controller : Create a new controller class. \n | {--a|api : Exclude the create and edit methods from the controller} \n | {--m|model= : Generate a resource controller for the given model} \n | {--r|resource : Generate a resource controller class} \n | {--force : Create the controller even if it already exists}\n }\n {resource : Create a new resource. \n | {--c|collection : Create a resource collection}\n | {--force : Create the resource even if it already exists}\n }\n {command : Create a new Musket command. \n | {--command : The terminal command that will be used to invoke the class} \n | {--force : Create the class even if the console command already exists}\n }\n {view : Create a new view.\n | {--force : Create the view even if it already exists}\n }\n {^name : The name of the [name] to generate}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Generate component classes'\n\n public async handle (this: any) {\n const command = (this.dictionary.baseCommand ?? this.dictionary.name) as never\n\n if (!this.argument('name')) {\n this.program.error('Please provide a valid name for the ' + command)\n }\n\n const methods = {\n controller: 'makeController',\n resource: 'makeResource',\n view: 'makeView',\n command: 'makeCommand',\n } as const\n\n await this[methods[command]]()\n }\n\n /**\n * Create a new controller class.\n */\n protected async makeController () {\n const type = this.option('api') ? '-resource' : ''\n const name = this.argument('name')\n const force = this.option('force')\n\n const crtlrPath = FileSystem.findModulePkg('@h3ravel/http', this.kernel.cwd) ?? ''\n const stubPath = nodepath.join(crtlrPath, `dist/stubs/controller${type}.stub`)\n const path = app_path(`Http/Controllers/${name}.ts`)\n\n /** The Controller is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the controller already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} controller already exists`)\n }\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n Logger.split('INFO: Controller Created', Logger.log(nodepath.basename(path), 'gray', false))\n }\n\n protected makeResource () {\n Logger.success('Resource support is not yet available')\n }\n\n /**\n * Create a new Musket command\n */\n protected makeCommand () {\n Logger.success('Musket command creation is not yet available')\n }\n\n /**\n * Create a new view.\n */\n protected async makeView () {\n const name = this.argument('name')\n const force = this.option('force')\n\n const path = base_path(`src/resources/views/${name}.edge`)\n\n /** The view is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the view already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} view already exists`)\n }\n\n await writeFile(path, `{{-- src/resources/views/${name}.edge --}}`)\n Logger.split('INFO: View Created', Logger.log(`src/resources/views/${name}.edge`, 'gray', false))\n }\n}\n","import { mkdir, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { FileSystem } from '@h3ravel/shared'\n\nexport class PostinstallCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = 'postinstall'\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Default post installation command'\n\n public async handle () {\n this.createSqliteDB()\n }\n\n /**\n * Create sqlite database if none exist\n * \n * @returns \n */\n private async createSqliteDB () {\n if (config('database.default') !== 'sqlite') return\n\n if (!await FileSystem.fileExists(database_path())) {\n await mkdir(database_path(), { recursive: true })\n }\n\n if (!await FileSystem.fileExists(database_path('db.sqlite'))) {\n await writeFile(database_path('db.sqlite'), '')\n }\n }\n}\n","import { Application, ServiceProvider } from '@h3ravel/core'\n\nimport { ConsoleServiceProvider } from '..'\nimport path from 'node:path'\n\ntype AServiceProvider = (new (_app: Application) => ServiceProvider) & Partial<ServiceProvider>\n\nexport default class {\n async fire () {\n\n const DIST_DIR = process.env.DIST_DIR ?? '/.h3ravel/serve/'\n const providers: AServiceProvider[] = []\n const app = new Application(process.cwd())\n\n /**\n * Load Service Providers already registered by the app\n */\n const app_providers = base_path(path.join(DIST_DIR, 'bootstrap/providers.js'))\n providers.push(...(await import(app_providers)).default)\n\n /** Add the ConsoleServiceProvider */\n providers.push(ConsoleServiceProvider)\n\n /** Register all the Service Providers */\n await app.quickStartup(providers, ['CoreServiceProvider'])\n }\n}\n","#!/usr/bin/env node\n\nimport 'tsx/esm'\n\nimport musket from './IO/app'\n\nnew musket().fire()\n","import { FileSystem, mainTsconfig } from '@h3ravel/shared'\nimport { mkdir, readdir, writeFile } from 'node:fs/promises'\nimport path, { join } from 'node:path'\n\nimport { execa } from 'execa'\nimport preferredPM from 'preferred-pm'\n\nexport default class {\n /**\n * Ensures that the app is pre built\n * \n * @returns \n */\n async spawn (DIST_DIR = '.h3ravel/serve') {\n const pm = (await preferredPM(process.cwd()))?.name ?? 'npm'\n const outDir = join(process.env.DIST_DIR ?? DIST_DIR)\n\n if (await FileSystem.fileExists(outDir) && (await readdir(outDir)).length > 0) return\n if (!await FileSystem.fileExists(path.join(outDir, 'tsconfig.json'))) {\n await mkdir(path.join(outDir.replace('/serve', '')), { recursive: true })\n await writeFile(path.join(outDir.replace('/serve', ''), 'tsconfig.json'), JSON.stringify(mainTsconfig, null, 2))\n }\n\n const ENV_VARS = {\n EXTENDED_DEBUG: 'false',\n CLI_BUILD: 'true',\n NODE_ENV: 'production',\n DIST_DIR: outDir,\n LOG_LEVEL: 'silent'\n }\n\n await execa(\n pm,\n ['tsdown', '--silent', '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: join(process.cwd()), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n}\n","export const logo = String.raw`\n 111 \n 111111111 \n 1111111111 111111 \n 111111 111 111111 \n 111111 111 111111 \n11111 111 11111 \n1111111 111 1111111 \n111 11111 111 111111 111 1111 1111 11111111 1111\n111 11111 1111 111111 111 1111 1111 1111 11111 1111\n111 11111 11111 111 1111 1111 111111111111 111111111111 1111 1111111 1111\n111 111111 1111 111 111111111111 111111 11111 1111 111 1111 11111111 1111 1111\n111 111 11111111 111 1101 1101 111111111 11111111 1111 1111111111111111101\n111 1111111111111111 1111 111 1111 1111 111 11111011 1111 111 1111111 1101 1111\n111 11111 1110111111111111 111 1111 1111 1111111101 1111 111111111 1111011 111111111 1111\n1111111 111110111110 111 1111 1111 111111 1111 11011101 10111 11111 1111\n11011 111111 11 11111 \n 111111 11101 111111 \n 111111 111 111111 \n 111111 111 111111 \n 111111111 \n 110 \n`\n\nexport const altLogo = String.raw`\n _ _ _____ _ \n| | | |___ / _ __ __ ___ _____| |\n| |_| | |_ \\| '__/ _ \\ \\ / / _ \\ |\n| _ |___) | | | (_| |\\ V / __/ |\n|_| |_|____/|_| \\__,_| \\_/ \\___|_|\n\n`\n","import { fork } from 'child_process';\nimport { resolve, dirname, join } from 'path';\n\nfunction run(opts = {}) {\n let input;\n let proc;\n const args = opts.args || [];\n const allowRestarts = opts.allowRestarts || false;\n const overrideInput = opts.input;\n const forkOptions = opts.options || opts;\n delete forkOptions.args;\n delete forkOptions.allowRestarts;\n return {\n name: 'run',\n buildStart(options) {\n let inputs = overrideInput !== null && overrideInput !== void 0 ? overrideInput : options.input;\n if (typeof inputs === 'string') {\n inputs = [inputs];\n }\n if (typeof inputs === 'object') {\n inputs = Object.values(inputs);\n }\n if (inputs.length > 1) {\n throw new Error(`@rollup/plugin-run must have a single entry point; consider setting the \\`input\\` option`);\n }\n input = resolve(inputs[0]);\n },\n generateBundle(_outputOptions, _bundle, isWrite) {\n if (!isWrite) {\n this.error(`@rollup/plugin-run currently only works with bundles that are written to disk`);\n }\n },\n writeBundle(outputOptions, bundle) {\n const forkBundle = (dir, entryFileName) => {\n if (proc)\n proc.kill();\n proc = fork(join(dir, entryFileName), args, forkOptions);\n };\n const dir = outputOptions.dir || dirname(outputOptions.file);\n const entryFileName = Object.keys(bundle).find((fileName) => {\n const chunk = bundle[fileName];\n return chunk.isEntry && chunk.facadeModuleId === input;\n });\n if (entryFileName) {\n forkBundle(dir, entryFileName);\n if (allowRestarts) {\n process.stdin.resume();\n process.stdin.setEncoding('utf8');\n process.stdin.on('data', (data) => {\n const line = data.toString().trim().toLowerCase();\n if (line === 'rs' || line === 'restart' || data.toString().charCodeAt(0) === 11) {\n forkBundle(dir, entryFileName);\n }\n else if (line === 'cls' || line === 'clear' || data.toString().charCodeAt(0) === 12) {\n // eslint-disable-next-line no-console\n console.clear();\n }\n });\n }\n }\n else {\n this.error(`@rollup/plugin-run could not find output chunk`);\n }\n }\n };\n}\n\nexport { run as default };\n//# sourceMappingURL=index.js.map\n","import { Options } from 'tsdown'\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\nimport { rm } from 'node:fs/promises'\nimport run from '@rollup/plugin-run'\n\nconst env = process.env.NODE_ENV || 'development'\nlet outDir = env === 'development' ? '.h3ravel/serve' : 'dist'\nif (process.env.DIST_DIR) {\n outDir = process.env.DIST_DIR\n}\n\nexport const TsDownConfig: Options = {\n outDir,\n entry: ['src/**/*.ts'],\n format: ['esm'],//, 'cjs'],\n target: 'node22',\n sourcemap: env === 'development',\n minify: !!process.env.DIST_MINIFY,\n external: [\n /^@h3ravel\\/.*/gi,\n ],\n clean: true,\n shims: true,\n copy: [{ from: 'public', to: outDir }, 'src/resources', 'src/database'],\n env: env === 'development' ? {\n NODE_ENV: env,\n DIST_DIR: outDir,\n } : {},\n watch:\n env === 'development' && process.env.CLI_BUILD !== 'true'\n ? ['.env', '.env.*', 'src', '../../packages']\n : false,\n dts: false,\n logLevel: 'silent',\n nodeProtocol: true,\n skipNodeModulesBundle: true,\n hooks (e) {\n e.hook('build:done', async () => {\n const paths = ['database/migrations', 'database/factories', 'database/seeders']\n for (let i = 0; i < paths.length; i++) {\n const name = paths[i]\n if (existsSync(path.join(outDir, name)))\n await rm(path.join(outDir, name), { recursive: true })\n }\n })\n },\n plugins: env === 'development' && process.env.CLI_BUILD !== 'true' ? [\n run({\n env: Object.assign({}, process.env, {\n NODE_ENV: env,\n DIST_DIR: outDir,\n }),\n execArgv: ['-r', 'source-map-support/register'],\n allowRestarts: false,\n input: process.cwd() + '/src/server.ts'//\n })\n ] : [],\n}\n\nexport default TsDownConfig\n","/// <reference path=\"../../../core/src/app.globals.d.ts\" />\n\nimport { ContainerResolver, ServiceProvider } from '@h3ravel/core'\n\nimport { Kernel } from '@h3ravel/musket'\nimport { altLogo } from '../logo'\nimport tsDownConfig from '../TsdownConfig'\n\n/**\n * Handles CLI commands and tooling.\n * \n * Auto-Registered when in CLI mode\n */\nexport class ConsoleServiceProvider extends ServiceProvider {\n public static priority = 992\n\n /**\n * Indicate that this service provider only runs in console\n */\n public static runsInConsole = true\n public runsInConsole = true\n\n register () {\n }\n\n boot () {\n const DIST_DIR = `/${env('DIST_DIR', '.h3ravel/serve')}/`.replaceAll('//', '')\n\n Kernel.init(\n this.app,\n {\n logo: altLogo,\n resolver: new ContainerResolver(this.app).resolveMethodParams,\n tsDownConfig,\n packages: [\n { name: '@h3ravel/core', alias: 'H3ravel Framework' },\n { name: '@h3ravel/musket', alias: 'Musket CLI' }\n ],\n cliName: 'musket',\n hideMusketInfo: true,\n discoveryPaths: [app_path('Console/Commands/*.js').replace('/src/', DIST_DIR)],\n }\n )\n\n process.on('SIGINT', () => {\n process.exit(0)\n })\n process.on('SIGTERM', () => {\n process.exit(0)\n })\n }\n}\n","#!/usr/bin/env node\n\nimport zero from './IO/zero'\n\nnew zero().spawn()\n\n"],"x_google_ignoreList":[7],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,14 +1,15 @@
1
- import { FileSystem, Logger, TaskManager } from "@h3ravel/shared";
1
+ import { FileSystem, Logger, TaskManager, mainTsconfig } from "@h3ravel/shared";
2
2
  import { Command, Kernel } from "@h3ravel/musket";
3
3
  import { execa } from "execa";
4
4
  import preferredPM from "preferred-pm";
5
- import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
5
+ import { mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
6
6
  import { Str } from "@h3ravel/support";
7
- import nodepath from "node:path";
8
- import { ContainerResolver, ServiceProvider } from "@h3ravel/core";
7
+ import nodepath, { join } from "node:path";
8
+ import "tsx/esm";
9
+ import { Application, ContainerResolver, ServiceProvider } from "@h3ravel/core";
9
10
  import { existsSync } from "node:fs";
10
11
  import { fork } from "child_process";
11
- import { dirname, join, resolve } from "path";
12
+ import { dirname, join as join$1, resolve } from "path";
12
13
 
13
14
  //#region src/Commands/BuildCommand.ts
14
15
  var BuildCommand = class BuildCommand extends Command {
@@ -224,6 +225,68 @@ var PostinstallCommand = class extends Command {
224
225
  }
225
226
  };
226
227
 
228
+ //#endregion
229
+ //#region src/IO/app.ts
230
+ var app_default = class {
231
+ async fire() {
232
+ const DIST_DIR = process.env.DIST_DIR ?? "/.h3ravel/serve/";
233
+ const providers = [];
234
+ const app = new Application(process.cwd());
235
+ /**
236
+ * Load Service Providers already registered by the app
237
+ */
238
+ const app_providers = base_path(nodepath.join(DIST_DIR, "bootstrap/providers.js"));
239
+ providers.push(...(await import(app_providers)).default);
240
+ /** Add the ConsoleServiceProvider */
241
+ providers.push(ConsoleServiceProvider);
242
+ /** Register all the Service Providers */
243
+ await app.quickStartup(providers, ["CoreServiceProvider"]);
244
+ }
245
+ };
246
+
247
+ //#endregion
248
+ //#region src/fire.ts
249
+ new app_default().fire();
250
+
251
+ //#endregion
252
+ //#region src/IO/zero.ts
253
+ var zero_default = class {
254
+ /**
255
+ * Ensures that the app is pre built
256
+ *
257
+ * @returns
258
+ */
259
+ async spawn(DIST_DIR = ".h3ravel/serve") {
260
+ const pm = (await preferredPM(process.cwd()))?.name ?? "npm";
261
+ const outDir$1 = join(process.env.DIST_DIR ?? DIST_DIR);
262
+ if (await FileSystem.fileExists(outDir$1) && (await readdir(outDir$1)).length > 0) return;
263
+ if (!await FileSystem.fileExists(nodepath.join(outDir$1, "tsconfig.json"))) {
264
+ await mkdir(nodepath.join(outDir$1.replace("/serve", "")), { recursive: true });
265
+ await writeFile(nodepath.join(outDir$1.replace("/serve", ""), "tsconfig.json"), JSON.stringify(mainTsconfig, null, 2));
266
+ }
267
+ const ENV_VARS = {
268
+ EXTENDED_DEBUG: "false",
269
+ CLI_BUILD: "true",
270
+ NODE_ENV: "production",
271
+ DIST_DIR: outDir$1,
272
+ LOG_LEVEL: "silent"
273
+ };
274
+ await execa(pm, [
275
+ "tsdown",
276
+ "--silent",
277
+ "--config-loader",
278
+ "unconfig",
279
+ "-c",
280
+ "tsdown.default.config.ts"
281
+ ].filter((e) => e !== null), {
282
+ stdout: "inherit",
283
+ stderr: "inherit",
284
+ cwd: join(process.cwd()),
285
+ env: Object.assign({}, process.env, ENV_VARS)
286
+ });
287
+ }
288
+ };
289
+
227
290
  //#endregion
228
291
  //#region src/logo.ts
229
292
  const logo = String.raw`
@@ -284,7 +347,7 @@ function run(opts = {}) {
284
347
  writeBundle(outputOptions, bundle) {
285
348
  const forkBundle = (dir$1, entryFileName$1) => {
286
349
  if (proc) proc.kill();
287
- proc = fork(join(dir$1, entryFileName$1), args, forkOptions);
350
+ proc = fork(join$1(dir$1, entryFileName$1), args, forkOptions);
288
351
  };
289
352
  const dir = outputOptions.dir || dirname(outputOptions.file);
290
353
  const entryFileName = Object.keys(bundle).find((fileName) => {
@@ -410,6 +473,10 @@ var ConsoleServiceProvider = class extends ServiceProvider {
410
473
  }
411
474
  };
412
475
 
476
+ //#endregion
477
+ //#region src/spawn.ts
478
+ new zero_default().spawn();
479
+
413
480
  //#endregion
414
481
  export { BuildCommand, ConsoleServiceProvider, MakeCommand, PostinstallCommand, TsDownConfig };
415
482
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["outDir","dir","entryFileName","env","TsDownConfig: Options","path"],"sources":["../src/Commands/BuildCommand.ts","../src/Commands/MakeCommand.ts","../src/Commands/PostinstallCommand.ts","../src/logo.ts","../../../node_modules/.pnpm/@rollup+plugin-run@3.1.0_rollup@4.52.3/node_modules/@rollup/plugin-run/dist/es/index.js","../src/TsdownConfig.ts","../src/Providers/ConsoleServiceProvider.ts"],"sourcesContent":["import { Logger, TaskManager } from '@h3ravel/shared'\n\nimport { Command } from '@h3ravel/musket'\nimport { execa } from 'execa'\nimport preferredPM from 'preferred-pm'\n\nexport class BuildCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `build\n {--m|minify : Minify your bundle output}\n {--d|dev : Build for dev but don't watch for changes}\n `\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Build the app for production'\n\n public async handle () {\n try {\n await this.fire()\n } catch (e) {\n Logger.error(e as any)\n }\n }\n\n protected async fire () {\n const outDir = this.option('dev') ? '.h3ravel/serve' : env('DIST_DIR', 'dist')\n const minify = this.option('minify')\n const verbosity = this.getVerbosity()\n const debug = verbosity > 0\n\n this.newLine()\n await BuildCommand.build({ outDir, minify, verbosity, debug, mute: false })\n this.newLine()\n }\n\n /**\n * build\n */\n public static async build ({ debug, minify, mute, verbosity, outDir } = {\n mute: false,\n debug: false,\n minify: false,\n verbosity: 0,\n outDir: 'dist'\n }) {\n\n const pm = (await preferredPM(base_path()))?.name ?? 'pnpm'\n\n const LOG_LEVELS = [\n 'silent',\n 'info',\n 'warn',\n 'error',\n ]\n\n const ENV_VARS = {\n EXTENDED_DEBUG: debug ? 'true' : 'false',\n CLI_BUILD: 'true',\n NODE_ENV: 'production',\n DIST_DIR: outDir,\n DIST_MINIFY: minify,\n LOG_LEVEL: LOG_LEVELS[verbosity]\n }\n\n const silent = ENV_VARS.LOG_LEVEL === 'silent' ? '--silent' : null\n\n if (mute) {\n return await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n\n const type = outDir === 'dist' ? 'Production' : 'Development'\n\n return await TaskManager.advancedTaskRunner(\n [[`Creating ${type} Bundle`, 'STARTED'], [`${type} Bundle Created`, 'COMPLETED']],\n async () => {\n await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n )\n }\n}\n","import { FileSystem, Logger } from '@h3ravel/shared'\nimport { mkdir, readFile, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { Str } from '@h3ravel/support'\nimport nodepath from 'node:path'\n\nexport class MakeCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `#make:\n {controller : Create a new controller class. \n | {--a|api : Exclude the create and edit methods from the controller} \n | {--m|model= : Generate a resource controller for the given model} \n | {--r|resource : Generate a resource controller class} \n | {--force : Create the controller even if it already exists}\n }\n {resource : Create a new resource. \n | {--c|collection : Create a resource collection}\n | {--force : Create the resource even if it already exists}\n }\n {command : Create a new Musket command. \n | {--command : The terminal command that will be used to invoke the class} \n | {--force : Create the class even if the console command already exists}\n }\n {view : Create a new view.\n | {--force : Create the view even if it already exists}\n }\n {^name : The name of the [name] to generate}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Generate component classes'\n\n public async handle (this: any) {\n const command = (this.dictionary.baseCommand ?? this.dictionary.name) as never\n\n if (!this.argument('name')) {\n this.program.error('Please provide a valid name for the ' + command)\n }\n\n const methods = {\n controller: 'makeController',\n resource: 'makeResource',\n view: 'makeView',\n command: 'makeCommand',\n } as const\n\n await this[methods[command]]()\n }\n\n /**\n * Create a new controller class.\n */\n protected async makeController () {\n const type = this.option('api') ? '-resource' : ''\n const name = this.argument('name')\n const force = this.option('force')\n\n const crtlrPath = FileSystem.findModulePkg('@h3ravel/http', this.kernel.cwd) ?? ''\n const stubPath = nodepath.join(crtlrPath, `dist/stubs/controller${type}.stub`)\n const path = app_path(`Http/Controllers/${name}.ts`)\n\n /** The Controller is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the controller already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} controller already exists`)\n }\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n Logger.split('INFO: Controller Created', Logger.log(nodepath.basename(path), 'gray', false))\n }\n\n protected makeResource () {\n Logger.success('Resource support is not yet available')\n }\n\n /**\n * Create a new Musket command\n */\n protected makeCommand () {\n Logger.success('Musket command creation is not yet available')\n }\n\n /**\n * Create a new view.\n */\n protected async makeView () {\n const name = this.argument('name')\n const force = this.option('force')\n\n const path = base_path(`src/resources/views/${name}.edge`)\n\n /** The view is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the view already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} view already exists`)\n }\n\n await writeFile(path, `{{-- src/resources/views/${name}.edge --}}`)\n Logger.split('INFO: View Created', Logger.log(`src/resources/views/${name}.edge`, 'gray', false))\n }\n}\n","import { mkdir, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { FileSystem } from '@h3ravel/shared'\n\nexport class PostinstallCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = 'postinstall'\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Default post installation command'\n\n public async handle () {\n this.createSqliteDB()\n }\n\n /**\n * Create sqlite database if none exist\n * \n * @returns \n */\n private async createSqliteDB () {\n if (config('database.default') !== 'sqlite') return\n\n if (!await FileSystem.fileExists(database_path())) {\n await mkdir(database_path(), { recursive: true })\n }\n\n if (!await FileSystem.fileExists(database_path('db.sqlite'))) {\n await writeFile(database_path('db.sqlite'), '')\n }\n }\n}\n","export const logo = String.raw`\n 111 \n 111111111 \n 1111111111 111111 \n 111111 111 111111 \n 111111 111 111111 \n11111 111 11111 \n1111111 111 1111111 \n111 11111 111 111111 111 1111 1111 11111111 1111\n111 11111 1111 111111 111 1111 1111 1111 11111 1111\n111 11111 11111 111 1111 1111 111111111111 111111111111 1111 1111111 1111\n111 111111 1111 111 111111111111 111111 11111 1111 111 1111 11111111 1111 1111\n111 111 11111111 111 1101 1101 111111111 11111111 1111 1111111111111111101\n111 1111111111111111 1111 111 1111 1111 111 11111011 1111 111 1111111 1101 1111\n111 11111 1110111111111111 111 1111 1111 1111111101 1111 111111111 1111011 111111111 1111\n1111111 111110111110 111 1111 1111 111111 1111 11011101 10111 11111 1111\n11011 111111 11 11111 \n 111111 11101 111111 \n 111111 111 111111 \n 111111 111 111111 \n 111111111 \n 110 \n`\n\nexport const altLogo = String.raw`\n _ _ _____ _ \n| | | |___ / _ __ __ ___ _____| |\n| |_| | |_ \\| '__/ _ \\ \\ / / _ \\ |\n| _ |___) | | | (_| |\\ V / __/ |\n|_| |_|____/|_| \\__,_| \\_/ \\___|_|\n\n`\n","import { fork } from 'child_process';\nimport { resolve, dirname, join } from 'path';\n\nfunction run(opts = {}) {\n let input;\n let proc;\n const args = opts.args || [];\n const allowRestarts = opts.allowRestarts || false;\n const overrideInput = opts.input;\n const forkOptions = opts.options || opts;\n delete forkOptions.args;\n delete forkOptions.allowRestarts;\n return {\n name: 'run',\n buildStart(options) {\n let inputs = overrideInput !== null && overrideInput !== void 0 ? overrideInput : options.input;\n if (typeof inputs === 'string') {\n inputs = [inputs];\n }\n if (typeof inputs === 'object') {\n inputs = Object.values(inputs);\n }\n if (inputs.length > 1) {\n throw new Error(`@rollup/plugin-run must have a single entry point; consider setting the \\`input\\` option`);\n }\n input = resolve(inputs[0]);\n },\n generateBundle(_outputOptions, _bundle, isWrite) {\n if (!isWrite) {\n this.error(`@rollup/plugin-run currently only works with bundles that are written to disk`);\n }\n },\n writeBundle(outputOptions, bundle) {\n const forkBundle = (dir, entryFileName) => {\n if (proc)\n proc.kill();\n proc = fork(join(dir, entryFileName), args, forkOptions);\n };\n const dir = outputOptions.dir || dirname(outputOptions.file);\n const entryFileName = Object.keys(bundle).find((fileName) => {\n const chunk = bundle[fileName];\n return chunk.isEntry && chunk.facadeModuleId === input;\n });\n if (entryFileName) {\n forkBundle(dir, entryFileName);\n if (allowRestarts) {\n process.stdin.resume();\n process.stdin.setEncoding('utf8');\n process.stdin.on('data', (data) => {\n const line = data.toString().trim().toLowerCase();\n if (line === 'rs' || line === 'restart' || data.toString().charCodeAt(0) === 11) {\n forkBundle(dir, entryFileName);\n }\n else if (line === 'cls' || line === 'clear' || data.toString().charCodeAt(0) === 12) {\n // eslint-disable-next-line no-console\n console.clear();\n }\n });\n }\n }\n else {\n this.error(`@rollup/plugin-run could not find output chunk`);\n }\n }\n };\n}\n\nexport { run as default };\n//# sourceMappingURL=index.js.map\n","import { Options } from 'tsdown'\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\nimport { rm } from 'node:fs/promises'\nimport run from '@rollup/plugin-run'\n\nconst env = process.env.NODE_ENV || 'development'\nlet outDir = env === 'development' ? '.h3ravel/serve' : 'dist'\nif (process.env.DIST_DIR) {\n outDir = process.env.DIST_DIR\n}\n\nexport const TsDownConfig: Options = {\n outDir,\n entry: ['src/**/*.ts'],\n format: ['esm'],//, 'cjs'],\n target: 'node22',\n sourcemap: env === 'development',\n minify: !!process.env.DIST_MINIFY,\n external: [\n /^@h3ravel\\/.*/gi,\n ],\n clean: true,\n shims: true,\n copy: [{ from: 'public', to: outDir }, 'src/resources', 'src/database'],\n env: env === 'development' ? {\n NODE_ENV: env,\n DIST_DIR: outDir,\n } : {},\n watch:\n env === 'development' && process.env.CLI_BUILD !== 'true'\n ? ['.env', '.env.*', 'src', '../../packages']\n : false,\n dts: false,\n logLevel: 'silent',\n nodeProtocol: true,\n skipNodeModulesBundle: true,\n hooks (e) {\n e.hook('build:done', async () => {\n const paths = ['database/migrations', 'database/factories', 'database/seeders']\n for (let i = 0; i < paths.length; i++) {\n const name = paths[i]\n if (existsSync(path.join(outDir, name)))\n await rm(path.join(outDir, name), { recursive: true })\n }\n })\n },\n plugins: env === 'development' && process.env.CLI_BUILD !== 'true' ? [\n run({\n env: Object.assign({}, process.env, {\n NODE_ENV: env,\n DIST_DIR: outDir,\n }),\n execArgv: ['-r', 'source-map-support/register'],\n allowRestarts: false,\n input: process.cwd() + '/src/server.ts'//\n })\n ] : [],\n}\n\nexport default TsDownConfig\n","/// <reference path=\"../../../core/src/app.globals.d.ts\" />\n\nimport { ContainerResolver, ServiceProvider } from '@h3ravel/core'\n\nimport { Kernel } from '@h3ravel/musket'\nimport { altLogo } from '../logo'\nimport tsDownConfig from '../TsdownConfig'\n\n/**\n * Handles CLI commands and tooling.\n * \n * Auto-Registered when in CLI mode\n */\nexport class ConsoleServiceProvider extends ServiceProvider {\n public static priority = 992\n\n /**\n * Indicate that this service provider only runs in console\n */\n public static runsInConsole = true\n public runsInConsole = true\n\n register () {\n }\n\n boot () {\n const DIST_DIR = `/${env('DIST_DIR', '.h3ravel/serve')}/`.replaceAll('//', '')\n\n Kernel.init(\n this.app,\n {\n logo: altLogo,\n resolver: new ContainerResolver(this.app).resolveMethodParams,\n tsDownConfig,\n packages: [\n { name: '@h3ravel/core', alias: 'H3ravel Framework' },\n { name: '@h3ravel/musket', alias: 'Musket CLI' }\n ],\n cliName: 'musket',\n hideMusketInfo: true,\n discoveryPaths: [app_path('Console/Commands/*.js').replace('/src/', DIST_DIR)],\n }\n )\n\n process.on('SIGINT', () => {\n process.exit(0)\n })\n process.on('SIGTERM', () => {\n process.exit(0)\n })\n }\n}\n"],"x_google_ignoreList":[4],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["outDir","providers: AServiceProvider[]","path","musket","outDir","path","join","dir","entryFileName","env","TsDownConfig: Options","path","zero"],"sources":["../src/Commands/BuildCommand.ts","../src/Commands/MakeCommand.ts","../src/Commands/PostinstallCommand.ts","../src/IO/app.ts","../src/fire.ts","../src/IO/zero.ts","../src/logo.ts","../../../node_modules/.pnpm/@rollup+plugin-run@3.1.0_rollup@4.52.3/node_modules/@rollup/plugin-run/dist/es/index.js","../src/TsdownConfig.ts","../src/Providers/ConsoleServiceProvider.ts","../src/spawn.ts"],"sourcesContent":["import { Logger, TaskManager } from '@h3ravel/shared'\n\nimport { Command } from '@h3ravel/musket'\nimport { execa } from 'execa'\nimport preferredPM from 'preferred-pm'\n\nexport class BuildCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `build\n {--m|minify : Minify your bundle output}\n {--d|dev : Build for dev but don't watch for changes}\n `\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Build the app for production'\n\n public async handle () {\n try {\n await this.fire()\n } catch (e) {\n Logger.error(e as any)\n }\n }\n\n protected async fire () {\n const outDir = this.option('dev') ? '.h3ravel/serve' : env('DIST_DIR', 'dist')\n const minify = this.option('minify')\n const verbosity = this.getVerbosity()\n const debug = verbosity > 0\n\n this.newLine()\n await BuildCommand.build({ outDir, minify, verbosity, debug, mute: false })\n this.newLine()\n }\n\n /**\n * build\n */\n public static async build ({ debug, minify, mute, verbosity, outDir } = {\n mute: false,\n debug: false,\n minify: false,\n verbosity: 0,\n outDir: 'dist'\n }) {\n\n const pm = (await preferredPM(base_path()))?.name ?? 'pnpm'\n\n const LOG_LEVELS = [\n 'silent',\n 'info',\n 'warn',\n 'error',\n ]\n\n const ENV_VARS = {\n EXTENDED_DEBUG: debug ? 'true' : 'false',\n CLI_BUILD: 'true',\n NODE_ENV: 'production',\n DIST_DIR: outDir,\n DIST_MINIFY: minify,\n LOG_LEVEL: LOG_LEVELS[verbosity]\n }\n\n const silent = ENV_VARS.LOG_LEVEL === 'silent' ? '--silent' : null\n\n if (mute) {\n return await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n\n const type = outDir === 'dist' ? 'Production' : 'Development'\n\n return await TaskManager.advancedTaskRunner(\n [[`Creating ${type} Bundle`, 'STARTED'], [`${type} Bundle Created`, 'COMPLETED']],\n async () => {\n await execa(\n pm,\n ['tsdown', silent, '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: base_path(), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n )\n }\n}\n","import { FileSystem, Logger } from '@h3ravel/shared'\nimport { mkdir, readFile, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { Str } from '@h3ravel/support'\nimport nodepath from 'node:path'\n\nexport class MakeCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = `#make:\n {controller : Create a new controller class. \n | {--a|api : Exclude the create and edit methods from the controller} \n | {--m|model= : Generate a resource controller for the given model} \n | {--r|resource : Generate a resource controller class} \n | {--force : Create the controller even if it already exists}\n }\n {resource : Create a new resource. \n | {--c|collection : Create a resource collection}\n | {--force : Create the resource even if it already exists}\n }\n {command : Create a new Musket command. \n | {--command : The terminal command that will be used to invoke the class} \n | {--force : Create the class even if the console command already exists}\n }\n {view : Create a new view.\n | {--force : Create the view even if it already exists}\n }\n {^name : The name of the [name] to generate}\n `\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Generate component classes'\n\n public async handle (this: any) {\n const command = (this.dictionary.baseCommand ?? this.dictionary.name) as never\n\n if (!this.argument('name')) {\n this.program.error('Please provide a valid name for the ' + command)\n }\n\n const methods = {\n controller: 'makeController',\n resource: 'makeResource',\n view: 'makeView',\n command: 'makeCommand',\n } as const\n\n await this[methods[command]]()\n }\n\n /**\n * Create a new controller class.\n */\n protected async makeController () {\n const type = this.option('api') ? '-resource' : ''\n const name = this.argument('name')\n const force = this.option('force')\n\n const crtlrPath = FileSystem.findModulePkg('@h3ravel/http', this.kernel.cwd) ?? ''\n const stubPath = nodepath.join(crtlrPath, `dist/stubs/controller${type}.stub`)\n const path = app_path(`Http/Controllers/${name}.ts`)\n\n /** The Controller is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the controller already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} controller already exists`)\n }\n\n let stub = await readFile(stubPath, 'utf-8')\n stub = stub.replace(/{{ name }}/g, name)\n\n await writeFile(path, stub)\n Logger.split('INFO: Controller Created', Logger.log(nodepath.basename(path), 'gray', false))\n }\n\n protected makeResource () {\n Logger.success('Resource support is not yet available')\n }\n\n /**\n * Create a new Musket command\n */\n protected makeCommand () {\n Logger.success('Musket command creation is not yet available')\n }\n\n /**\n * Create a new view.\n */\n protected async makeView () {\n const name = this.argument('name')\n const force = this.option('force')\n\n const path = base_path(`src/resources/views/${name}.edge`)\n\n /** The view is scoped to a path make sure to create the associated directories */\n if (name.includes('/')) {\n await mkdir(Str.beforeLast(path, '/'), { recursive: true })\n }\n\n /** Check if the view already exists */\n if (!force && await FileSystem.fileExists(path)) {\n Logger.error(`ERORR: ${name} view already exists`)\n }\n\n await writeFile(path, `{{-- src/resources/views/${name}.edge --}}`)\n Logger.split('INFO: View Created', Logger.log(`src/resources/views/${name}.edge`, 'gray', false))\n }\n}\n","import { mkdir, writeFile } from 'node:fs/promises'\n\nimport { Command } from '@h3ravel/musket'\nimport { FileSystem } from '@h3ravel/shared'\n\nexport class PostinstallCommand extends Command {\n\n /**\n * The name and signature of the console command.\n *\n * @var string\n */\n protected signature: string = 'postinstall'\n\n /**\n * The console command description.\n *\n * @var string\n */\n protected description: string = 'Default post installation command'\n\n public async handle () {\n this.createSqliteDB()\n }\n\n /**\n * Create sqlite database if none exist\n * \n * @returns \n */\n private async createSqliteDB () {\n if (config('database.default') !== 'sqlite') return\n\n if (!await FileSystem.fileExists(database_path())) {\n await mkdir(database_path(), { recursive: true })\n }\n\n if (!await FileSystem.fileExists(database_path('db.sqlite'))) {\n await writeFile(database_path('db.sqlite'), '')\n }\n }\n}\n","import { Application, ServiceProvider } from '@h3ravel/core'\n\nimport { ConsoleServiceProvider } from '..'\nimport path from 'node:path'\n\ntype AServiceProvider = (new (_app: Application) => ServiceProvider) & Partial<ServiceProvider>\n\nexport default class {\n async fire () {\n\n const DIST_DIR = process.env.DIST_DIR ?? '/.h3ravel/serve/'\n const providers: AServiceProvider[] = []\n const app = new Application(process.cwd())\n\n /**\n * Load Service Providers already registered by the app\n */\n const app_providers = base_path(path.join(DIST_DIR, 'bootstrap/providers.js'))\n providers.push(...(await import(app_providers)).default)\n\n /** Add the ConsoleServiceProvider */\n providers.push(ConsoleServiceProvider)\n\n /** Register all the Service Providers */\n await app.quickStartup(providers, ['CoreServiceProvider'])\n }\n}\n","#!/usr/bin/env node\n\nimport 'tsx/esm'\n\nimport musket from './IO/app'\n\nnew musket().fire()\n","import { FileSystem, mainTsconfig } from '@h3ravel/shared'\nimport { mkdir, readdir, writeFile } from 'node:fs/promises'\nimport path, { join } from 'node:path'\n\nimport { execa } from 'execa'\nimport preferredPM from 'preferred-pm'\n\nexport default class {\n /**\n * Ensures that the app is pre built\n * \n * @returns \n */\n async spawn (DIST_DIR = '.h3ravel/serve') {\n const pm = (await preferredPM(process.cwd()))?.name ?? 'npm'\n const outDir = join(process.env.DIST_DIR ?? DIST_DIR)\n\n if (await FileSystem.fileExists(outDir) && (await readdir(outDir)).length > 0) return\n if (!await FileSystem.fileExists(path.join(outDir, 'tsconfig.json'))) {\n await mkdir(path.join(outDir.replace('/serve', '')), { recursive: true })\n await writeFile(path.join(outDir.replace('/serve', ''), 'tsconfig.json'), JSON.stringify(mainTsconfig, null, 2))\n }\n\n const ENV_VARS = {\n EXTENDED_DEBUG: 'false',\n CLI_BUILD: 'true',\n NODE_ENV: 'production',\n DIST_DIR: outDir,\n LOG_LEVEL: 'silent'\n }\n\n await execa(\n pm,\n ['tsdown', '--silent', '--config-loader', 'unconfig', '-c', 'tsdown.default.config.ts'].filter(e => e !== null),\n { stdout: 'inherit', stderr: 'inherit', cwd: join(process.cwd()), env: Object.assign({}, process.env, ENV_VARS) }\n )\n }\n}\n","export const logo = String.raw`\n 111 \n 111111111 \n 1111111111 111111 \n 111111 111 111111 \n 111111 111 111111 \n11111 111 11111 \n1111111 111 1111111 \n111 11111 111 111111 111 1111 1111 11111111 1111\n111 11111 1111 111111 111 1111 1111 1111 11111 1111\n111 11111 11111 111 1111 1111 111111111111 111111111111 1111 1111111 1111\n111 111111 1111 111 111111111111 111111 11111 1111 111 1111 11111111 1111 1111\n111 111 11111111 111 1101 1101 111111111 11111111 1111 1111111111111111101\n111 1111111111111111 1111 111 1111 1111 111 11111011 1111 111 1111111 1101 1111\n111 11111 1110111111111111 111 1111 1111 1111111101 1111 111111111 1111011 111111111 1111\n1111111 111110111110 111 1111 1111 111111 1111 11011101 10111 11111 1111\n11011 111111 11 11111 \n 111111 11101 111111 \n 111111 111 111111 \n 111111 111 111111 \n 111111111 \n 110 \n`\n\nexport const altLogo = String.raw`\n _ _ _____ _ \n| | | |___ / _ __ __ ___ _____| |\n| |_| | |_ \\| '__/ _ \\ \\ / / _ \\ |\n| _ |___) | | | (_| |\\ V / __/ |\n|_| |_|____/|_| \\__,_| \\_/ \\___|_|\n\n`\n","import { fork } from 'child_process';\nimport { resolve, dirname, join } from 'path';\n\nfunction run(opts = {}) {\n let input;\n let proc;\n const args = opts.args || [];\n const allowRestarts = opts.allowRestarts || false;\n const overrideInput = opts.input;\n const forkOptions = opts.options || opts;\n delete forkOptions.args;\n delete forkOptions.allowRestarts;\n return {\n name: 'run',\n buildStart(options) {\n let inputs = overrideInput !== null && overrideInput !== void 0 ? overrideInput : options.input;\n if (typeof inputs === 'string') {\n inputs = [inputs];\n }\n if (typeof inputs === 'object') {\n inputs = Object.values(inputs);\n }\n if (inputs.length > 1) {\n throw new Error(`@rollup/plugin-run must have a single entry point; consider setting the \\`input\\` option`);\n }\n input = resolve(inputs[0]);\n },\n generateBundle(_outputOptions, _bundle, isWrite) {\n if (!isWrite) {\n this.error(`@rollup/plugin-run currently only works with bundles that are written to disk`);\n }\n },\n writeBundle(outputOptions, bundle) {\n const forkBundle = (dir, entryFileName) => {\n if (proc)\n proc.kill();\n proc = fork(join(dir, entryFileName), args, forkOptions);\n };\n const dir = outputOptions.dir || dirname(outputOptions.file);\n const entryFileName = Object.keys(bundle).find((fileName) => {\n const chunk = bundle[fileName];\n return chunk.isEntry && chunk.facadeModuleId === input;\n });\n if (entryFileName) {\n forkBundle(dir, entryFileName);\n if (allowRestarts) {\n process.stdin.resume();\n process.stdin.setEncoding('utf8');\n process.stdin.on('data', (data) => {\n const line = data.toString().trim().toLowerCase();\n if (line === 'rs' || line === 'restart' || data.toString().charCodeAt(0) === 11) {\n forkBundle(dir, entryFileName);\n }\n else if (line === 'cls' || line === 'clear' || data.toString().charCodeAt(0) === 12) {\n // eslint-disable-next-line no-console\n console.clear();\n }\n });\n }\n }\n else {\n this.error(`@rollup/plugin-run could not find output chunk`);\n }\n }\n };\n}\n\nexport { run as default };\n//# sourceMappingURL=index.js.map\n","import { Options } from 'tsdown'\nimport { existsSync } from 'node:fs'\nimport path from 'node:path'\nimport { rm } from 'node:fs/promises'\nimport run from '@rollup/plugin-run'\n\nconst env = process.env.NODE_ENV || 'development'\nlet outDir = env === 'development' ? '.h3ravel/serve' : 'dist'\nif (process.env.DIST_DIR) {\n outDir = process.env.DIST_DIR\n}\n\nexport const TsDownConfig: Options = {\n outDir,\n entry: ['src/**/*.ts'],\n format: ['esm'],//, 'cjs'],\n target: 'node22',\n sourcemap: env === 'development',\n minify: !!process.env.DIST_MINIFY,\n external: [\n /^@h3ravel\\/.*/gi,\n ],\n clean: true,\n shims: true,\n copy: [{ from: 'public', to: outDir }, 'src/resources', 'src/database'],\n env: env === 'development' ? {\n NODE_ENV: env,\n DIST_DIR: outDir,\n } : {},\n watch:\n env === 'development' && process.env.CLI_BUILD !== 'true'\n ? ['.env', '.env.*', 'src', '../../packages']\n : false,\n dts: false,\n logLevel: 'silent',\n nodeProtocol: true,\n skipNodeModulesBundle: true,\n hooks (e) {\n e.hook('build:done', async () => {\n const paths = ['database/migrations', 'database/factories', 'database/seeders']\n for (let i = 0; i < paths.length; i++) {\n const name = paths[i]\n if (existsSync(path.join(outDir, name)))\n await rm(path.join(outDir, name), { recursive: true })\n }\n })\n },\n plugins: env === 'development' && process.env.CLI_BUILD !== 'true' ? [\n run({\n env: Object.assign({}, process.env, {\n NODE_ENV: env,\n DIST_DIR: outDir,\n }),\n execArgv: ['-r', 'source-map-support/register'],\n allowRestarts: false,\n input: process.cwd() + '/src/server.ts'//\n })\n ] : [],\n}\n\nexport default TsDownConfig\n","/// <reference path=\"../../../core/src/app.globals.d.ts\" />\n\nimport { ContainerResolver, ServiceProvider } from '@h3ravel/core'\n\nimport { Kernel } from '@h3ravel/musket'\nimport { altLogo } from '../logo'\nimport tsDownConfig from '../TsdownConfig'\n\n/**\n * Handles CLI commands and tooling.\n * \n * Auto-Registered when in CLI mode\n */\nexport class ConsoleServiceProvider extends ServiceProvider {\n public static priority = 992\n\n /**\n * Indicate that this service provider only runs in console\n */\n public static runsInConsole = true\n public runsInConsole = true\n\n register () {\n }\n\n boot () {\n const DIST_DIR = `/${env('DIST_DIR', '.h3ravel/serve')}/`.replaceAll('//', '')\n\n Kernel.init(\n this.app,\n {\n logo: altLogo,\n resolver: new ContainerResolver(this.app).resolveMethodParams,\n tsDownConfig,\n packages: [\n { name: '@h3ravel/core', alias: 'H3ravel Framework' },\n { name: '@h3ravel/musket', alias: 'Musket CLI' }\n ],\n cliName: 'musket',\n hideMusketInfo: true,\n discoveryPaths: [app_path('Console/Commands/*.js').replace('/src/', DIST_DIR)],\n }\n )\n\n process.on('SIGINT', () => {\n process.exit(0)\n })\n process.on('SIGTERM', () => {\n process.exit(0)\n })\n }\n}\n","#!/usr/bin/env node\n\nimport zero from './IO/zero'\n\nnew zero().spawn()\n\n"],"x_google_ignoreList":[7],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@h3ravel/console",
3
- "version": "11.10.1",
3
+ "version": "11.11.1",
4
4
  "description": "CLI utilities for scaffolding, running migrations, tasks and for H3ravel.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -65,7 +65,7 @@
65
65
  "preferred-pm": "^4.1.1",
66
66
  "radashi": "^12.6.2",
67
67
  "resolve-from": "^5.0.0",
68
- "@h3ravel/musket": "^0.1.10",
68
+ "@h3ravel/musket": "^0.1.8",
69
69
  "tsx": "^4.20.5",
70
70
  "@h3ravel/shared": "^0.22.3"
71
71
  },
@@ -1 +0,0 @@
1
- import{FileSystem as e,mainTsconfig as t}from"@h3ravel/shared";import{execa as n}from"execa";import r from"preferred-pm";import{mkdir as i,readdir as a,writeFile as o}from"node:fs/promises";import s,{join as c}from"node:path";var l=class{async spawn(l=`.h3ravel/serve`){let u=(await r(process.cwd()))?.name??`npm`,d=c(process.env.DIST_DIR??l);if(await e.fileExists(d)&&(await a(d)).length>0)return;await e.fileExists(s.join(d,`tsconfig.json`))||(await i(s.join(d.replace(`/serve`,``)),{recursive:!0}),await o(s.join(d.replace(`/serve`,``),`tsconfig.json`),JSON.stringify(t,null,2)));let f={EXTENDED_DEBUG:`false`,CLI_BUILD:`true`,NODE_ENV:`production`,DIST_DIR:d,LOG_LEVEL:`silent`};await n(u,[`tsdown`,`--silent`,`--config-loader`,`unconfig`,`-c`,`tsdown.default.config.ts`].filter(e=>e!==null),{stdout:`inherit`,stderr:`inherit`,cwd:c(process.cwd()),env:Object.assign({},process.env,f)})}};export{l as zero_default};