@orion-js/core 4.3.1 → 4.3.2

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/dist/index.cjs CHANGED
@@ -29,12 +29,12 @@ var import_commander = require("commander");
29
29
  // src/helpers/execute.ts
30
30
  var import_node_child_process = require("child_process");
31
31
  async function execute_default(command) {
32
- return new Promise((resolve2, reject) => {
32
+ return new Promise((resolve3, reject) => {
33
33
  (0, import_node_child_process.exec)(command, (error, stdout, stderr) => {
34
34
  if (error) {
35
35
  reject(error);
36
36
  } else {
37
- resolve2({ stdout, stderr });
37
+ resolve3({ stdout, stderr });
38
38
  }
39
39
  });
40
40
  });
@@ -68,10 +68,10 @@ var import_node_fs2 = __toESM(require("fs"), 1);
68
68
  var import_node_fs = __toESM(require("fs"), 1);
69
69
  var import_node_path = __toESM(require("path"), 1);
70
70
  var ensureDirectory = (filePath) => {
71
- const dirname = import_node_path.default.dirname(filePath);
72
- if (import_node_fs.default.existsSync(dirname)) return true;
73
- ensureDirectory(dirname);
74
- import_node_fs.default.mkdirSync(dirname);
71
+ const dirname2 = import_node_path.default.dirname(filePath);
72
+ if (import_node_fs.default.existsSync(dirname2)) return true;
73
+ ensureDirectory(dirname2);
74
+ import_node_fs.default.mkdirSync(dirname2);
75
75
  };
76
76
  var ensureDirectory_default = ensureDirectory;
77
77
 
@@ -447,7 +447,21 @@ process.on("unhandledRejection", (error) => {
447
447
  });
448
448
 
449
449
  // src/version.ts
450
- var version_default = "3.0";
450
+ var import_node_fs5 = require("fs");
451
+ var import_node_path3 = require("path");
452
+ var import_node_url = require("url");
453
+ var import_meta = {};
454
+ function getVersion() {
455
+ try {
456
+ const dir = (0, import_node_path3.dirname)((0, import_node_url.fileURLToPath)(import_meta.url));
457
+ const pkgPath = (0, import_node_path3.resolve)(dir, "..", "package.json");
458
+ const pkg = JSON.parse((0, import_node_fs5.readFileSync)(pkgPath, "utf-8"));
459
+ return pkg.version;
460
+ } catch {
461
+ return "unknown";
462
+ }
463
+ }
464
+ var version_default = getVersion();
451
465
 
452
466
  // src/index.ts
453
467
  var import_config = require("dotenv/config");
@@ -503,16 +517,16 @@ function info() {
503
517
  }
504
518
 
505
519
  // src/repl/index.ts
506
- var import_node_fs5 = require("fs");
507
- var import_node_path3 = require("path");
520
+ var import_node_fs6 = require("fs");
521
+ var import_node_path4 = require("path");
508
522
  var import_chalk14 = __toESM(require("chalk"), 1);
509
523
  function resolvePort(options) {
510
524
  if (options.port) {
511
525
  return Number(options.port);
512
526
  }
513
527
  try {
514
- const portFile = (0, import_node_path3.resolve)(process.cwd(), ".orion/port");
515
- const port = (0, import_node_fs5.readFileSync)(portFile, "utf-8").trim();
528
+ const portFile = (0, import_node_path4.resolve)(process.cwd(), ".orion/port");
529
+ const port = (0, import_node_fs6.readFileSync)(portFile, "utf-8").trim();
516
530
  return Number(port);
517
531
  } catch {
518
532
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/index.ts","../src/dev/index.ts","../src/dev/runner/index.ts","../src/helpers/writeFile.ts","../src/helpers/ensureDirectory.ts","../src/dev/runner/startProcess.ts","../src/dev/runner/getArgs.ts","../src/dev/watchAndCompile/index.ts","../src/dev/watchAndCompile/cleanDirectory.ts","../src/dev/watchAndCompile/getHost.ts","../src/dev/watchAndCompile/getConfigPath.ts","../src/dev/watchAndCompile/ensureConfigComplies.ts","../src/helpers/getFileContents.ts","../src/dev/watchAndCompile/reports.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/prod/index.ts","../src/build/index.ts","../src/build/build.ts","../src/build/checkTs.ts","../src/prod/runProd.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.ts","../src/info.ts","../src/repl/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk'\nimport {Command} from 'commander'\nimport create from './create'\nimport dev from './dev'\nimport prod from './prod'\nimport './handleErrors'\nimport version from './version'\nimport 'dotenv/config'\nimport build from './build'\nimport check from './check'\nimport info from './info'\nimport repl from './repl'\n\nconst program = new Command()\n\nconst run =\n action =>\n async (...args) => {\n try {\n await action(...args)\n } catch (e) {\n console.error(chalk.red(`Error: ${e.message}`))\n }\n }\n\nprogram\n .command('dev')\n .description('Run the Orionjs app in development mode')\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option('--repl', 'Enable REPL endpoint for orion repl')\n .allowUnknownOption()\n .action(run(dev))\n\nprogram.command('check').description('Runs a typescript check').action(run(check))\n\nprogram\n .command('build')\n .description('Build the Orionjs app for production')\n .option('--output [path]', 'Path of the output file')\n .action(run(build))\n\nprogram\n .command('prod')\n .allowUnknownOption()\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option(\n '--path [path]',\n 'Path of the compiled Orionjs app. If not provided, the app will be compiled and then run',\n )\n .description('Run the Orionjs app in production mode')\n .action(run(prod))\n\nprogram\n .command('create')\n .description('Creates a new Orionjs project')\n .option('--name [name]', 'Name of the project')\n .option('--kit [kit]', 'Which starter kit to use')\n .action(run(create))\n\nprogram.command('info').description('Print runtime and version info').action(run(info))\n\nprogram\n .command('repl')\n .description('Evaluate an expression against a running Orionjs dev server')\n .requiredOption('-e, --expression <expression>', 'Expression to evaluate')\n .option('--port <port>', 'Port of the dev server (default: auto-detect from .orion/port)')\n .action(run(repl))\n\nprogram.version(version, '-v --version')\n\nprogram.parse(process.argv)\n\nif (!process.argv.slice(2).length) {\n program.outputHelp()\n}\n","import {exec} from 'node:child_process'\n\nexport default async function (command) {\n return new Promise((resolve, reject) => {\n exec(command, (error, stdout, stderr) => {\n if (error) {\n reject(error)\n } else {\n resolve({stdout, stderr})\n }\n })\n })\n}\n","import execute from '../helpers/execute'\n\nexport default async function ({name, kit}) {\n if (!name) {\n throw new Error('Please set the name of the app')\n }\n if (!kit) {\n throw new Error('Please select which kit to use')\n }\n const repo = `https://github.com/siturra/boilerplate-orionjs-${kit}`\n console.log('Downloading starter kit...')\n await execute(`git clone ${repo} ${name}`)\n await execute(`cd ${name} && rm -rf .git`)\n console.log('Your starter kit is ready')\n}\n","import chalk from 'chalk'\nimport {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\n\nexport default async function (options: RunnerOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Dev mode \\n`))\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n node: boolean\n repl: boolean\n}\n\nexport interface Runner {\n start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport chalk from 'chalk'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n ...(options.repl ? {ORION_REPL: 'true'} : {}),\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from './index'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n if (options.node) {\n const startCommand = 'tsx'\n const args = ['watch', '--clear-screen=false', ...command.args, './app/index.ts']\n return {startCommand, args}\n }\n\n const startCommand = 'bun'\n const args = ['--watch', ...command.args, './app/index.ts']\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import chalk from 'chalk'\nimport build from '../build'\nimport {runProd} from './runProd'\n\nexport interface ProdOptions {\n path?: string\n node?: boolean\n}\n\nexport default async function (options: ProdOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Prod mode\\n`))\n\n if (options.node) {\n if (!options.path) {\n await build({output: './build'})\n options.path = './build'\n }\n }\n\n runProd(options, command)\n}\n","import chalk from 'chalk'\nimport {build} from './build'\nimport cleanDirectory from '../dev/watchAndCompile/cleanDirectory'\nimport {checkTs} from './checkTs'\n\nexport default async function (options: {output?: string}) {\n console.log(chalk.bold(`Building Orionjs App ${chalk.green(chalk.bold('V4'))}...`))\n\n if (!options.output) {\n options.output = './build'\n }\n\n await cleanDirectory(options.output)\n\n await checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import {spawn} from 'node:child_process'\nimport {ProdOptions} from './index'\n\nexport function runProd(options: ProdOptions, command: any) {\n if (options.node) {\n const indexPath = `${options.path}/index.js`\n const args = ['--import=tsx', ...command.args, indexPath]\n spawn('node', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n return\n }\n\n const args = [...command.args, './app/index.ts']\n spawn('bun', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n}\n","import chalk from 'chalk'\n\ninterface ErrorWithCodeFrame extends Error {\n codeFrame?: string\n}\n\nprocess\n .on('unhandledRejection', (error: ErrorWithCodeFrame) => {\n if (error.codeFrame) {\n console.error(chalk.red(error.message))\n console.log(error.codeFrame)\n } else {\n console.error(chalk.red(error.message), chalk.red('Unhandled promise rejection'))\n }\n })\n .on('uncaughtException', (error: Error) => {\n console.error(chalk.red(error.message))\n process.exit(1)\n })\n","export default '3.0'\n","import chalk from 'chalk'\nimport {checkTs} from './checkTs'\n\nexport default async function () {\n console.log(chalk.bold(`Orionjs App ${chalk.green(chalk.bold('V4'))}\\n`))\n console.log('Checking typescript...')\n\n checkTs()\n\n console.log(chalk.bold.green('Check passed\\n'))\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\n\nexport function checkTs() {\n try {\n execSync('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n stdio: 'inherit',\n })\n } catch {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n process.exit(1)\n }\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\nimport version from './version'\n\nfunction detectRuntime(): string {\n const runtimes: string[] = []\n\n try {\n const bunVersion = execSync('bun --version', {encoding: 'utf-8'}).trim()\n runtimes.push(`Bun ${bunVersion}`)\n } catch {}\n\n runtimes.push(`Node ${process.versions.node}`)\n\n return runtimes.join(', ')\n}\n\nexport default function info() {\n console.log(`Orion CLI v${version} — Available runtimes: ${chalk.bold(detectRuntime())}`)\n console.log(`Default runtime: ${chalk.bold('Bun')} (use --node flag to switch to Node.js)`)\n}\n","import {readFileSync} from 'node:fs'\nimport {resolve} from 'node:path'\nimport chalk from 'chalk'\n\nexport interface ReplOptions {\n expression?: string\n port?: string\n}\n\nfunction resolvePort(options: ReplOptions): number {\n if (options.port) {\n return Number(options.port)\n }\n\n try {\n const portFile = resolve(process.cwd(), '.orion/port')\n const port = readFileSync(portFile, 'utf-8').trim()\n return Number(port)\n } catch {}\n\n if (process.env.PORT) {\n return Number(process.env.PORT)\n }\n\n return 3000\n}\n\nexport default async function repl(options: ReplOptions) {\n const expression = options.expression\n\n if (!expression) {\n console.error(chalk.red('Error: expression is required. Use -e \"<expression>\"'))\n process.exit(1)\n }\n\n const port = resolvePort(options)\n\n try {\n const response = await fetch(`http://localhost:${port}/__repl`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify({expression}),\n })\n\n const data = await response.json()\n\n if (!data.success) {\n console.error(chalk.red(`Error: ${data.error}`))\n if (data.stack) {\n console.error(chalk.dim(data.stack))\n }\n process.exit(1)\n }\n\n if (data.result !== undefined) {\n console.log(\n typeof data.result === 'string' ? data.result : JSON.stringify(data.result, null, 2),\n )\n }\n } catch (error) {\n if (error.code === 'ECONNREFUSED' || error.cause?.code === 'ECONNREFUSED') {\n console.error(\n chalk.red(\n `Could not connect to dev server on port ${port}. Make sure \"orion dev --repl\" is running.`,\n ),\n )\n } else {\n console.error(chalk.red(`Error: ${error.message}`))\n }\n process.exit(1)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,iBAAkB;AAClB,uBAAsB;;;ACFtB,gCAAmB;AAEnB,eAAO,gBAAwB,SAAS;AACtC,SAAO,IAAI,QAAQ,CAACC,UAAS,WAAW;AACtC,wCAAK,SAAS,CAAC,OAAO,QAAQ,WAAW;AACvC,UAAI,OAAO;AACT,eAAO,KAAK;AAAA,MACd,OAAO;AACL,QAAAA,SAAQ,EAAC,QAAQ,OAAM,CAAC;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;ACVA,eAAO,eAAwB,EAAC,MAAM,IAAG,GAAG;AAC1C,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AACA,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AACA,QAAM,OAAO,kDAAkD,GAAG;AAClE,UAAQ,IAAI,4BAA4B;AACxC,QAAM,gBAAQ,aAAa,IAAI,IAAI,IAAI,EAAE;AACzC,QAAM,gBAAQ,MAAM,IAAI,iBAAiB;AACzC,UAAQ,IAAI,2BAA2B;AACzC;;;ACdA,IAAAC,gBAAkB;;;ACAlB,IAAAC,gBAAkB;;;ACAlB,IAAAC,kBAAe;;;ACAf,qBAAe;AACf,uBAAiB;AAEjB,IAAM,kBAAkB,cAAY;AAClC,QAAM,UAAU,iBAAAC,QAAK,QAAQ,QAAQ;AACrC,MAAI,eAAAC,QAAG,WAAW,OAAO,EAAG,QAAO;AACnC,kBAAgB,OAAO;AACvB,iBAAAA,QAAG,UAAU,OAAO;AACtB;AAEA,IAAO,0BAAQ;;;ADPf,eAAO,kBAAwBC,OAAc,SAAgC;AAC3E,0BAAgBA,KAAI;AACpB,kBAAAC,QAAG,cAAcD,OAAM,OAAO;AAChC;;;AENA,IAAAE,6BAAoB;AACpB,mBAAkB;;;ACCX,SAAS,QAAQ,SAAwB,SAAc;AAC5D,MAAI,QAAQ,MAAM;AAChB,UAAMC,gBAAe;AACrB,UAAMC,QAAO,CAAC,SAAS,wBAAwB,GAAG,QAAQ,MAAM,gBAAgB;AAChF,WAAO,EAAC,cAAAD,eAAc,MAAAC,MAAI;AAAA,EAC5B;AAEA,QAAM,eAAe;AACrB,QAAM,OAAO,CAAC,WAAW,GAAG,QAAQ,MAAM,gBAAgB;AAC1D,SAAO,EAAC,cAAc,KAAI;AAC5B;;;ADPO,SAAS,aAAa,SAAwB,SAAc;AACjE,QAAM,EAAC,cAAc,KAAI,IAAI,QAAQ,SAAS,OAAO;AAErD,UAAQ,IAAI,aAAAC,QAAM,KAAK,iCAAiC,YAAY,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,CAAO,CAAC;AAC9F,aAAO,kCAAM,cAAc,MAAM;AAAA,IAC/B,KAAK;AAAA,MACH,WAAW;AAAA,MACX,GAAG,QAAQ;AAAA,MACX,GAAI,QAAQ,OAAO,EAAC,YAAY,OAAM,IAAI,CAAC;AAAA,IAC7C;AAAA,IACA,KAAK,QAAQ,IAAI;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,CAAC;AACH;;;AHFO,SAAS,UAAU,SAAwB,SAAsB;AACtE,MAAI,aAAa;AAEjB,MAAI,QAAQ,OAAO;AACjB,YAAQ,IAAI,cAAAC,QAAM,KAAK,4BAA4B,CAAC;AAAA,EACtD;AAEA,QAAM,WAAW,MAAM;AACrB,iBAAa,aAAa,SAAS,OAAO;AAE1C,eAAW,GAAG,QAAQ,CAAC,MAAc,WAAmB;AACtD,UAAI,CAAC,QAAQ,SAAS,OAAO,SAAS,KAAK,WAAW,aAAa,WAAW,UAAU;AAAA,MACxF,OAAO;AACL,gBAAQ,IAAI,cAAAA,QAAM,KAAK,oCAAoC,IAAI,EAAE,CAAC;AAAA,MACpE;AAAA,IACF,CAAC;AAED,sBAAU,kBAAkB,GAAG,WAAW,GAAG,EAAE;AAAA,EACjD;AAEA,QAAM,OAAO,MAAM;AACjB,QAAI,YAAY;AACd,iBAAW,KAAK;AAChB,mBAAa;AAAA,IACf;AAAA,EACF;AAEA,QAAM,UAAU,MAAM;AACpB,YAAQ,IAAI,cAAAA,QAAM,KAAK,wBAAwB,CAAC;AAChD,SAAK;AACL,aAAS;AAAA,EACX;AAEA,QAAM,QAAQ,MAAM;AAElB,QAAI,YAAY;AAAA,IAEhB,OAAO;AACL,eAAS;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AKhEA,IAAAC,qBAAe;;;ACAf,IAAAC,kBAAe;AACf,IAAAC,oBAAiB;AAOjB,SAAS,OAAO,UAAkB;AAChC,MAAI,gBAAAC,QAAG,WAAW,QAAQ,GAAG;AAC3B,oBAAAA,QAAG,YAAY,QAAQ,EAAE,IAAI,WAAS;AACpC,YAAM,aAAa,kBAAAC,QAAK,KAAK,UAAU,KAAK;AAC5C,UAAI,gBAAAD,QAAG,UAAU,UAAU,EAAE,YAAY,GAAG;AAC1C,eAAO,UAAU;AAAA,MACnB,OAAO;AACL,wBAAAA,QAAG,WAAW,UAAU;AAAA,MAC1B;AAAA,IACF,CAAC;AACD,oBAAAA,QAAG,UAAU,QAAQ;AAAA,EACvB;AACF;AAEA,eAAO,eAAsC,WAAoB;AAC/D,MAAI;AACF,UAAM,UAAU,YAAY,YAAY,kBAAAC,QAAK,KAAK,QAAQ,IAAI,GAAG,UAAU,OAAO;AAClF,WAAO,OAAO;AAAA,EAChB,SAAS,GAAG;AAAA,EAEZ;AACF;;;AC7BA,IAAAC,qBAAe;;;ACAf,wBAAe;;;ACAf,0BAA+B;;;ACA/B,IAAAC,kBAAe;AAEA,SAAR,SAA0B,UAAkB;AACjD,MAAI,CAAC,gBAAAC,QAAG,WAAW,QAAQ,EAAG,QAAO;AAErC,SAAO,gBAAAA,QAAG,aAAa,QAAQ,EAAE,SAAS;AAC5C;;;ADSO,SAAS,qBAAqB,YAAoB;AAfzD;AAgBE,MAAI;AACF,UAAM,aAAa,SAAgB,UAAU;AAC7C,UAAM,aAAS,2BAAM,UAAU;AAE/B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,iBAAiB;AAAA,QACf,GAAG,OAAO;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,QAAI,GAAC,YAAO,oBAAP,mBAAwB,YAAW,GAAC,YAAO,oBAAP,mBAAwB,WAAU;AACzE,gBAAU,gBAAgB,UAAU;AAAA,IACtC;AAGA,QAAI,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,SAAS,GAAG;AACxD;AAAA,IACF;AAEA,sBAAU,gBAAY,+BAAU,WAAW,MAAM,CAAC,CAAC;AAAA,EACrD,SAAS,OAAO;AACd,YAAQ,IAAI,2BAA2B,MAAM,OAAO,EAAE;AAAA,EACxD;AACF;;;ADvCO,SAAS,gBAAgB;AAC9B,QAAM,cAAc,QAAQ,IAAI;AAEhC,QAAM,aACJ,kBAAAC,QAAG,eAAe,aAAa,kBAAAA,QAAG,IAAI,YAAY,sBAAsB,KACxE,kBAAAA,QAAG,eAAe,aAAa,kBAAAA,QAAG,IAAI,YAAY,eAAe;AAEnE,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,yCAAyC;AAAA,EAC3D;AAEA,uBAAqB,UAAU;AAE/B,SAAO;AACT;;;AGjBA,IAAAC,qBAAe;AAEf,IAAM,SAAS;AAAA,EACb,sBAAsB,cAAY;AAAA,EAClC,qBAAqB,MAAM,QAAQ,IAAI;AAAA,EACvC,YAAY,MAAM,mBAAAC,QAAG,IAAI;AAC3B;AACO,SAAS,iBAAiB,YAA2B;AAC1D,UAAQ,IAAI,mBAAAA,QAAG,qCAAqC,CAAC,UAAU,GAAG,MAAM,CAAC;AAC3E;;;AJLA,IAAAC,gBAAkB;AAEX,SAAS,QAAQ,QAAgB;AACtC,MAAI,YAAY;AAChB,QAAM,2BAA2B,CAAC,eAA8B;AAC9D,QAAI,WAAW,aAAa,EAAG;AAC/B,QAAI,WAAW,SAAS,QAAQ,WAAW,SAAS,MAAM;AAGxD;AAAA,IACF;AAEA,QAAI,WAAW,SAAS,MAAM;AAC5B,aAAO,KAAK;AACZ,kBAAY;AACZ;AAAA,IACF;AAEA,QAAI,WAAW,SAAS,MAAM;AAI5B,UAAI,oBAAoB,KAAK,WAAW,YAAY,SAAS,CAAC,GAAG;AAC/D,YAAI,CAAC,WAAW,YAAY,SAAS,EAAE,SAAS,iBAAiB,GAAG;AAClE,iBAAO,KAAK;AACZ,sBAAY;AACZ;AAAA,QACF;AAAA,MACF;AAEA,UAAI,WAAW;AACb,oBAAY;AACZ,eAAO,MAAM;AAAA,MACf;AACA;AAAA,IACF;AAEA,YAAQ,IAAI,cAAAC,QAAM,KAAK,MAAM,WAAW,WAAW,KAAK,WAAW,IAAI,GAAG,CAAC;AAAA,EAC7E;AAEA,QAAM,aAAa,cAAc;AACjC,QAAM,gBAAgB,mBAAAC,QAAG;AAEzB,QAAM,OAAO,mBAAAA,QAAG;AAAA,IACd;AAAA,IACA,CAAC;AAAA,IACD,mBAAAA,QAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AACT;;;AKzDA,iBAAyC;AACzC,IAAAC,gBAAkB;AAClB,sBAAqB;AAGrB,IAAM,cAAc,QAAQ,IAAI;AAChC,IAAM,cAAc;AAEb,IAAM,eAAe,OAAO,WAAmB;AACpD,MAAI,CAAC,YAAa;AAElB,6CAA2B,aAAa,WAAW;AAEnD,kBAAAC,QAAS,MAAM,aAAa,EAAC,eAAe,KAAI,CAAC,EAAE,GAAG,UAAU,YAAY;AAC1E,YAAQ,IAAI,cAAAC,QAAM,KAAK,4CAA4C,CAAC;AACpE,+CAA2B,aAAa,WAAW;AACnD,WAAO,QAAQ;AAAA,EACjB,CAAC;AACH;;;APZA,eAAO,gBAAuC,QAAgB;AAC5D,QAAM,eAAe;AACrB,QAAM,OAAO,QAAQ,MAAM;AAC3B,qBAAAC,QAAG,mBAAmB,IAAI;AAC1B,eAAa,MAAM;AACrB;;;ANPA,eAAO,YAAwB,SAAwB,SAAc;AACnE,UAAQ,IAAI,cAAAC,QAAM,KAAK;AAAA,cAAiB,cAAAA,QAAM,MAAM,cAAAA,QAAM,KAAK,IAAI,CAAC,CAAC;AAAA,CAAc,CAAC;AAEpF,QAAM,SAAS,UAAU,SAAS,OAAO;AAEzC,kBAAgB,MAAM;AACxB;;;AcVA,IAAAC,gBAAkB;;;ACAlB,IAAAC,gBAAkB;;;ACAlB,IAAAC,gBAAkB;AAClB,cAAyB;AAEzB,eAAsBC,OAAM,SAA4B;AACtD,QAAM,EAAC,OAAM,IAAI;AAEjB,UAAQ,IAAI,4BAA4B,MAAM,EAAE;AAEhD,QAAc,cAAM;AAAA,IAClB,aAAa,CAAC,gBAAgB;AAAA,IAC9B,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ,CAAC;AAED,UAAQ,IAAI,cAAAC,QAAM,MAAM,KAAK,kBAAkB,CAAC;AAClD;;;ACvBA,IAAAC,gBAAkB;AAClB,IAAAC,6BAAmB;AACnB,uBAAwB;AAExB,IAAM,kBAAc,4BAAU,+BAAI;AAElC,eAAsB,UAAyB;AAC7C,MAAI;AACF,YAAQ,IAAI,wBAAwB;AACpC,UAAM,YAAY,gBAAgB;AAAA,MAChC,KAAK,QAAQ,IAAI;AAAA,MACjB,KAAK;AAAA,QACH,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,IACtB,CAAC;AACD,YAAQ,IAAI,cAAAC,QAAM,MAAM,KAAK,yBAAyB,CAAC;AAAA,EACzD,SAAS,OAAO;AACd,YAAQ,IAAI,cAAAA,QAAM,IAAI,KAAK,+BAA+B,CAAC;AAC3D,YAAQ,IAAI,MAAM,UAAU,MAAM,UAAU,MAAM,OAAO;AACzD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;AFlBA,eAAO,cAAwB,SAA4B;AACzD,UAAQ,IAAI,cAAAC,QAAM,KAAK,wBAAwB,cAAAA,QAAM,MAAM,cAAAA,QAAM,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;AAElF,MAAI,CAAC,QAAQ,QAAQ;AACnB,YAAQ,SAAS;AAAA,EACnB;AAEA,QAAM,eAAe,QAAQ,MAAM;AAEnC,QAAM,QAAQ;AACd,QAAMC,OAAM,OAAO;AAEnB,UAAQ,IAAI,cAAAD,QAAM,KAAK,iBAAiB,CAAC;AAC3C;;;AGlBA,IAAAE,6BAAoB;AAGb,SAAS,QAAQ,SAAsB,SAAc;AAC1D,MAAI,QAAQ,MAAM;AAChB,UAAM,YAAY,GAAG,QAAQ,IAAI;AACjC,UAAMC,QAAO,CAAC,gBAAgB,GAAG,QAAQ,MAAM,SAAS;AACxD,0CAAM,QAAQA,OAAM;AAAA,MAClB,KAAK;AAAA,QACH,UAAU;AAAA,QACV,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,KAAK,QAAQ,IAAI;AAAA,MACjB,OAAO;AAAA,MACP,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,MACpB,UAAU;AAAA,IACZ,CAAC;AACD;AAAA,EACF;AAEA,QAAM,OAAO,CAAC,GAAG,QAAQ,MAAM,gBAAgB;AAC/C,wCAAM,OAAO,MAAM;AAAA,IACjB,KAAK;AAAA,MACH,UAAU;AAAA,MACV,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,KAAK,QAAQ,IAAI;AAAA,IACjB,OAAO;AAAA,IACP,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,OAAO;AAAA,IACpB,UAAU;AAAA,EACZ,CAAC;AACH;;;AJxBA,eAAO,aAAwB,SAAsB,SAAc;AACjE,UAAQ,IAAI,cAAAC,QAAM,KAAK;AAAA,cAAiB,cAAAA,QAAM,MAAM,cAAAA,QAAM,KAAK,IAAI,CAAC,CAAC;AAAA,CAAc,CAAC;AAEpF,MAAI,QAAQ,MAAM;AAChB,QAAI,CAAC,QAAQ,MAAM;AACjB,YAAM,cAAM,EAAC,QAAQ,UAAS,CAAC;AAC/B,cAAQ,OAAO;AAAA,IACjB;AAAA,EACF;AAEA,UAAQ,SAAS,OAAO;AAC1B;;;AKpBA,IAAAC,iBAAkB;AAMlB,QACG,GAAG,sBAAsB,CAAC,UAA8B;AACvD,MAAI,MAAM,WAAW;AACnB,YAAQ,MAAM,eAAAC,QAAM,IAAI,MAAM,OAAO,CAAC;AACtC,YAAQ,IAAI,MAAM,SAAS;AAAA,EAC7B,OAAO;AACL,YAAQ,MAAM,eAAAA,QAAM,IAAI,MAAM,OAAO,GAAG,eAAAA,QAAM,IAAI,6BAA6B,CAAC;AAAA,EAClF;AACF,CAAC,EACA,GAAG,qBAAqB,CAAC,UAAiB;AACzC,UAAQ,MAAM,eAAAA,QAAM,IAAI,MAAM,OAAO,CAAC;AACtC,UAAQ,KAAK,CAAC;AAChB,CAAC;;;AClBH,IAAO,kBAAQ;;;AvBQf,oBAAO;;;AwBRP,IAAAC,iBAAkB;;;ACAlB,IAAAC,iBAAkB;AAClB,IAAAC,6BAAuB;AAEhB,SAASC,WAAU;AACxB,MAAI;AACF,6CAAS,gBAAgB;AAAA,MACvB,KAAK,QAAQ,IAAI;AAAA,MACjB,KAAK;AAAA,QACH,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,MACpB,OAAO;AAAA,IACT,CAAC;AAAA,EACH,QAAQ;AACN,YAAQ,IAAI,eAAAC,QAAM,IAAI,KAAK,+BAA+B,CAAC;AAC3D,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;ADfA,eAAO,gBAA0B;AAC/B,UAAQ,IAAI,eAAAC,QAAM,KAAK,eAAe,eAAAA,QAAM,MAAM,eAAAA,QAAM,KAAK,IAAI,CAAC,CAAC;AAAA,CAAI,CAAC;AACxE,UAAQ,IAAI,wBAAwB;AAEpC,EAAAC,SAAQ;AAER,UAAQ,IAAI,eAAAD,QAAM,KAAK,MAAM,gBAAgB,CAAC;AAChD;;;AEVA,IAAAE,iBAAkB;AAClB,IAAAC,6BAAuB;AAGvB,SAAS,gBAAwB;AAC/B,QAAM,WAAqB,CAAC;AAE5B,MAAI;AACF,UAAM,iBAAa,qCAAS,iBAAiB,EAAC,UAAU,QAAO,CAAC,EAAE,KAAK;AACvE,aAAS,KAAK,OAAO,UAAU,EAAE;AAAA,EACnC,QAAQ;AAAA,EAAC;AAET,WAAS,KAAK,QAAQ,QAAQ,SAAS,IAAI,EAAE;AAE7C,SAAO,SAAS,KAAK,IAAI;AAC3B;AAEe,SAAR,OAAwB;AAC7B,UAAQ,IAAI,cAAc,eAAO,+BAA0B,eAAAC,QAAM,KAAK,cAAc,CAAC,CAAC,EAAE;AACxF,UAAQ,IAAI,oBAAoB,eAAAA,QAAM,KAAK,KAAK,CAAC,yCAAyC;AAC5F;;;ACpBA,IAAAC,kBAA2B;AAC3B,IAAAC,oBAAsB;AACtB,IAAAC,iBAAkB;AAOlB,SAAS,YAAY,SAA8B;AACjD,MAAI,QAAQ,MAAM;AAChB,WAAO,OAAO,QAAQ,IAAI;AAAA,EAC5B;AAEA,MAAI;AACF,UAAM,eAAW,2BAAQ,QAAQ,IAAI,GAAG,aAAa;AACrD,UAAM,WAAO,8BAAa,UAAU,OAAO,EAAE,KAAK;AAClD,WAAO,OAAO,IAAI;AAAA,EACpB,QAAQ;AAAA,EAAC;AAET,MAAI,QAAQ,IAAI,MAAM;AACpB,WAAO,OAAO,QAAQ,IAAI,IAAI;AAAA,EAChC;AAEA,SAAO;AACT;AAEA,eAAO,KAA4B,SAAsB;AA3BzD;AA4BE,QAAM,aAAa,QAAQ;AAE3B,MAAI,CAAC,YAAY;AACf,YAAQ,MAAM,eAAAC,QAAM,IAAI,sDAAsD,CAAC;AAC/E,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,OAAO,YAAY,OAAO;AAEhC,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,oBAAoB,IAAI,WAAW;AAAA,MAC9D,QAAQ;AAAA,MACR,SAAS,EAAC,gBAAgB,mBAAkB;AAAA,MAC5C,MAAM,KAAK,UAAU,EAAC,WAAU,CAAC;AAAA,IACnC,CAAC;AAED,UAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,QAAI,CAAC,KAAK,SAAS;AACjB,cAAQ,MAAM,eAAAA,QAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;AAC/C,UAAI,KAAK,OAAO;AACd,gBAAQ,MAAM,eAAAA,QAAM,IAAI,KAAK,KAAK,CAAC;AAAA,MACrC;AACA,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,QAAI,KAAK,WAAW,QAAW;AAC7B,cAAQ;AAAA,QACN,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS,KAAK,UAAU,KAAK,QAAQ,MAAM,CAAC;AAAA,MACrF;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,QAAI,MAAM,SAAS,oBAAkB,WAAM,UAAN,mBAAa,UAAS,gBAAgB;AACzE,cAAQ;AAAA,QACN,eAAAA,QAAM;AAAA,UACJ,2CAA2C,IAAI;AAAA,QACjD;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,MAAM,eAAAA,QAAM,IAAI,UAAU,MAAM,OAAO,EAAE,CAAC;AAAA,IACpD;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;A3BzDA,IAAM,UAAU,IAAI,yBAAQ;AAE5B,IAAM,MACJ,YACA,UAAU,SAAS;AACjB,MAAI;AACF,UAAM,OAAO,GAAG,IAAI;AAAA,EACtB,SAAS,GAAG;AACV,YAAQ,MAAM,eAAAC,QAAM,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;AAAA,EAChD;AACF;AAEF,QACG,QAAQ,KAAK,EACb,YAAY,yCAAyC,EACrD,OAAO,UAAU,oCAAoC,EACrD,OAAO,UAAU,qCAAqC,EACtD,mBAAmB,EACnB,OAAO,IAAI,WAAG,CAAC;AAElB,QAAQ,QAAQ,OAAO,EAAE,YAAY,yBAAyB,EAAE,OAAO,IAAI,aAAK,CAAC;AAEjF,QACG,QAAQ,OAAO,EACf,YAAY,sCAAsC,EAClD,OAAO,mBAAmB,yBAAyB,EACnD,OAAO,IAAI,aAAK,CAAC;AAEpB,QACG,QAAQ,MAAM,EACd,mBAAmB,EACnB,OAAO,UAAU,oCAAoC,EACrD;AAAA,EACC;AAAA,EACA;AACF,EACC,YAAY,wCAAwC,EACpD,OAAO,IAAI,YAAI,CAAC;AAEnB,QACG,QAAQ,QAAQ,EAChB,YAAY,+BAA+B,EAC3C,OAAO,iBAAiB,qBAAqB,EAC7C,OAAO,eAAe,0BAA0B,EAChD,OAAO,IAAI,cAAM,CAAC;AAErB,QAAQ,QAAQ,MAAM,EAAE,YAAY,gCAAgC,EAAE,OAAO,IAAI,IAAI,CAAC;AAEtF,QACG,QAAQ,MAAM,EACd,YAAY,6DAA6D,EACzE,eAAe,iCAAiC,wBAAwB,EACxE,OAAO,iBAAiB,gEAAgE,EACxF,OAAO,IAAI,IAAI,CAAC;AAEnB,QAAQ,QAAQ,iBAAS,cAAc;AAEvC,QAAQ,MAAM,QAAQ,IAAI;AAE1B,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,QAAQ;AACjC,UAAQ,WAAW;AACrB;","names":["import_chalk","resolve","import_chalk","import_chalk","import_node_fs","path","fs","path","fs","import_node_child_process","startCommand","args","chalk","chalk","import_typescript","import_node_fs","import_node_path","fs","path","import_typescript","import_node_fs","fs","ts","import_typescript","ts","import_chalk","chalk","ts","import_chalk","chokidar","chalk","ts","chalk","import_chalk","import_chalk","import_chalk","build","chalk","import_chalk","import_node_child_process","chalk","chalk","build","import_node_child_process","args","chalk","import_chalk","chalk","import_chalk","import_chalk","import_node_child_process","checkTs","chalk","chalk","checkTs","import_chalk","import_node_child_process","chalk","import_node_fs","import_node_path","import_chalk","chalk","chalk"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/index.ts","../src/dev/index.ts","../src/dev/runner/index.ts","../src/helpers/writeFile.ts","../src/helpers/ensureDirectory.ts","../src/dev/runner/startProcess.ts","../src/dev/runner/getArgs.ts","../src/dev/watchAndCompile/index.ts","../src/dev/watchAndCompile/cleanDirectory.ts","../src/dev/watchAndCompile/getHost.ts","../src/dev/watchAndCompile/getConfigPath.ts","../src/dev/watchAndCompile/ensureConfigComplies.ts","../src/helpers/getFileContents.ts","../src/dev/watchAndCompile/reports.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/prod/index.ts","../src/build/index.ts","../src/build/build.ts","../src/build/checkTs.ts","../src/prod/runProd.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.ts","../src/info.ts","../src/repl/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk'\nimport {Command} from 'commander'\nimport create from './create'\nimport dev from './dev'\nimport prod from './prod'\nimport './handleErrors'\nimport version from './version'\nimport 'dotenv/config'\nimport build from './build'\nimport check from './check'\nimport info from './info'\nimport repl from './repl'\n\nconst program = new Command()\n\nconst run =\n action =>\n async (...args) => {\n try {\n await action(...args)\n } catch (e) {\n console.error(chalk.red(`Error: ${e.message}`))\n }\n }\n\nprogram\n .command('dev')\n .description('Run the Orionjs app in development mode')\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option('--repl', 'Enable REPL endpoint for orion repl')\n .allowUnknownOption()\n .action(run(dev))\n\nprogram.command('check').description('Runs a typescript check').action(run(check))\n\nprogram\n .command('build')\n .description('Build the Orionjs app for production')\n .option('--output [path]', 'Path of the output file')\n .action(run(build))\n\nprogram\n .command('prod')\n .allowUnknownOption()\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option(\n '--path [path]',\n 'Path of the compiled Orionjs app. If not provided, the app will be compiled and then run',\n )\n .description('Run the Orionjs app in production mode')\n .action(run(prod))\n\nprogram\n .command('create')\n .description('Creates a new Orionjs project')\n .option('--name [name]', 'Name of the project')\n .option('--kit [kit]', 'Which starter kit to use')\n .action(run(create))\n\nprogram.command('info').description('Print runtime and version info').action(run(info))\n\nprogram\n .command('repl')\n .description('Evaluate an expression against a running Orionjs dev server')\n .requiredOption('-e, --expression <expression>', 'Expression to evaluate')\n .option('--port <port>', 'Port of the dev server (default: auto-detect from .orion/port)')\n .action(run(repl))\n\nprogram.version(version, '-v --version')\n\nprogram.parse(process.argv)\n\nif (!process.argv.slice(2).length) {\n program.outputHelp()\n}\n","import {exec} from 'node:child_process'\n\nexport default async function (command) {\n return new Promise((resolve, reject) => {\n exec(command, (error, stdout, stderr) => {\n if (error) {\n reject(error)\n } else {\n resolve({stdout, stderr})\n }\n })\n })\n}\n","import execute from '../helpers/execute'\n\nexport default async function ({name, kit}) {\n if (!name) {\n throw new Error('Please set the name of the app')\n }\n if (!kit) {\n throw new Error('Please select which kit to use')\n }\n const repo = `https://github.com/siturra/boilerplate-orionjs-${kit}`\n console.log('Downloading starter kit...')\n await execute(`git clone ${repo} ${name}`)\n await execute(`cd ${name} && rm -rf .git`)\n console.log('Your starter kit is ready')\n}\n","import chalk from 'chalk'\nimport {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\n\nexport default async function (options: RunnerOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Dev mode \\n`))\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n node: boolean\n repl: boolean\n}\n\nexport interface Runner {\n start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport chalk from 'chalk'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n ...(options.repl ? {ORION_REPL: 'true'} : {}),\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from './index'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n if (options.node) {\n const startCommand = 'tsx'\n const args = ['watch', '--clear-screen=false', ...command.args, './app/index.ts']\n return {startCommand, args}\n }\n\n const startCommand = 'bun'\n const args = ['--watch', ...command.args, './app/index.ts']\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import chalk from 'chalk'\nimport build from '../build'\nimport {runProd} from './runProd'\n\nexport interface ProdOptions {\n path?: string\n node?: boolean\n}\n\nexport default async function (options: ProdOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Prod mode\\n`))\n\n if (options.node) {\n if (!options.path) {\n await build({output: './build'})\n options.path = './build'\n }\n }\n\n runProd(options, command)\n}\n","import chalk from 'chalk'\nimport {build} from './build'\nimport cleanDirectory from '../dev/watchAndCompile/cleanDirectory'\nimport {checkTs} from './checkTs'\n\nexport default async function (options: {output?: string}) {\n console.log(chalk.bold(`Building Orionjs App ${chalk.green(chalk.bold('V4'))}...`))\n\n if (!options.output) {\n options.output = './build'\n }\n\n await cleanDirectory(options.output)\n\n await checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import {spawn} from 'node:child_process'\nimport {ProdOptions} from './index'\n\nexport function runProd(options: ProdOptions, command: any) {\n if (options.node) {\n const indexPath = `${options.path}/index.js`\n const args = ['--import=tsx', ...command.args, indexPath]\n spawn('node', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n return\n }\n\n const args = [...command.args, './app/index.ts']\n spawn('bun', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n}\n","import chalk from 'chalk'\n\ninterface ErrorWithCodeFrame extends Error {\n codeFrame?: string\n}\n\nprocess\n .on('unhandledRejection', (error: ErrorWithCodeFrame) => {\n if (error.codeFrame) {\n console.error(chalk.red(error.message))\n console.log(error.codeFrame)\n } else {\n console.error(chalk.red(error.message), chalk.red('Unhandled promise rejection'))\n }\n })\n .on('uncaughtException', (error: Error) => {\n console.error(chalk.red(error.message))\n process.exit(1)\n })\n","import {readFileSync} from 'node:fs'\nimport {dirname, resolve} from 'node:path'\nimport {fileURLToPath} from 'node:url'\n\nfunction getVersion(): string {\n try {\n const dir = dirname(fileURLToPath(import.meta.url))\n const pkgPath = resolve(dir, '..', 'package.json')\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'))\n return pkg.version\n } catch {\n return 'unknown'\n }\n}\n\nexport default getVersion()\n","import chalk from 'chalk'\nimport {checkTs} from './checkTs'\n\nexport default async function () {\n console.log(chalk.bold(`Orionjs App ${chalk.green(chalk.bold('V4'))}\\n`))\n console.log('Checking typescript...')\n\n checkTs()\n\n console.log(chalk.bold.green('Check passed\\n'))\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\n\nexport function checkTs() {\n try {\n execSync('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n stdio: 'inherit',\n })\n } catch {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n process.exit(1)\n }\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\nimport version from './version'\n\nfunction detectRuntime(): string {\n const runtimes: string[] = []\n\n try {\n const bunVersion = execSync('bun --version', {encoding: 'utf-8'}).trim()\n runtimes.push(`Bun ${bunVersion}`)\n } catch {}\n\n runtimes.push(`Node ${process.versions.node}`)\n\n return runtimes.join(', ')\n}\n\nexport default function info() {\n console.log(`Orion CLI v${version} — Available runtimes: ${chalk.bold(detectRuntime())}`)\n console.log(`Default runtime: ${chalk.bold('Bun')} (use --node flag to switch to Node.js)`)\n}\n","import {readFileSync} from 'node:fs'\nimport {resolve} from 'node:path'\nimport chalk from 'chalk'\n\nexport interface ReplOptions {\n expression?: string\n port?: string\n}\n\nfunction resolvePort(options: ReplOptions): number {\n if (options.port) {\n return Number(options.port)\n }\n\n try {\n const portFile = resolve(process.cwd(), '.orion/port')\n const port = readFileSync(portFile, 'utf-8').trim()\n return Number(port)\n } catch {}\n\n if (process.env.PORT) {\n return Number(process.env.PORT)\n }\n\n return 3000\n}\n\nexport default async function repl(options: ReplOptions) {\n const expression = options.expression\n\n if (!expression) {\n console.error(chalk.red('Error: expression is required. Use -e \"<expression>\"'))\n process.exit(1)\n }\n\n const port = resolvePort(options)\n\n try {\n const response = await fetch(`http://localhost:${port}/__repl`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify({expression}),\n })\n\n const data = await response.json()\n\n if (!data.success) {\n console.error(chalk.red(`Error: ${data.error}`))\n if (data.stack) {\n console.error(chalk.dim(data.stack))\n }\n process.exit(1)\n }\n\n if (data.result !== undefined) {\n console.log(\n typeof data.result === 'string' ? data.result : JSON.stringify(data.result, null, 2),\n )\n }\n } catch (error) {\n if (error.code === 'ECONNREFUSED' || error.cause?.code === 'ECONNREFUSED') {\n console.error(\n chalk.red(\n `Could not connect to dev server on port ${port}. Make sure \"orion dev --repl\" is running.`,\n ),\n )\n } else {\n console.error(chalk.red(`Error: ${error.message}`))\n }\n process.exit(1)\n }\n}\n"],"mappings":"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","names":["import_chalk","resolve","import_chalk","import_chalk","import_node_fs","dirname","path","fs","path","fs","import_node_child_process","startCommand","args","chalk","chalk","import_typescript","import_node_fs","import_node_path","fs","path","import_typescript","import_node_fs","fs","ts","import_typescript","ts","import_chalk","chalk","ts","import_chalk","chokidar","chalk","ts","chalk","import_chalk","import_chalk","import_chalk","build","chalk","import_chalk","import_node_child_process","chalk","chalk","build","import_node_child_process","args","chalk","import_chalk","chalk","import_node_fs","import_node_path","import_chalk","import_chalk","import_node_child_process","checkTs","chalk","chalk","checkTs","import_chalk","import_node_child_process","chalk","import_node_fs","import_node_path","import_chalk","chalk","chalk"]}
package/dist/index.js CHANGED
@@ -7,12 +7,12 @@ import { Command } from "commander";
7
7
  // src/helpers/execute.ts
8
8
  import { exec } from "child_process";
9
9
  async function execute_default(command) {
10
- return new Promise((resolve2, reject) => {
10
+ return new Promise((resolve3, reject) => {
11
11
  exec(command, (error, stdout, stderr) => {
12
12
  if (error) {
13
13
  reject(error);
14
14
  } else {
15
- resolve2({ stdout, stderr });
15
+ resolve3({ stdout, stderr });
16
16
  }
17
17
  });
18
18
  });
@@ -46,10 +46,10 @@ import fs2 from "fs";
46
46
  import fs from "fs";
47
47
  import path from "path";
48
48
  var ensureDirectory = (filePath) => {
49
- const dirname = path.dirname(filePath);
50
- if (fs.existsSync(dirname)) return true;
51
- ensureDirectory(dirname);
52
- fs.mkdirSync(dirname);
49
+ const dirname2 = path.dirname(filePath);
50
+ if (fs.existsSync(dirname2)) return true;
51
+ ensureDirectory(dirname2);
52
+ fs.mkdirSync(dirname2);
53
53
  };
54
54
  var ensureDirectory_default = ensureDirectory;
55
55
 
@@ -425,7 +425,20 @@ process.on("unhandledRejection", (error) => {
425
425
  });
426
426
 
427
427
  // src/version.ts
428
- var version_default = "3.0";
428
+ import { readFileSync } from "fs";
429
+ import { dirname, resolve } from "path";
430
+ import { fileURLToPath } from "url";
431
+ function getVersion() {
432
+ try {
433
+ const dir = dirname(fileURLToPath(import.meta.url));
434
+ const pkgPath = resolve(dir, "..", "package.json");
435
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
436
+ return pkg.version;
437
+ } catch {
438
+ return "unknown";
439
+ }
440
+ }
441
+ var version_default = getVersion();
429
442
 
430
443
  // src/index.ts
431
444
  import "dotenv/config";
@@ -481,16 +494,16 @@ function info() {
481
494
  }
482
495
 
483
496
  // src/repl/index.ts
484
- import { readFileSync } from "fs";
485
- import { resolve } from "path";
497
+ import { readFileSync as readFileSync2 } from "fs";
498
+ import { resolve as resolve2 } from "path";
486
499
  import chalk14 from "chalk";
487
500
  function resolvePort(options) {
488
501
  if (options.port) {
489
502
  return Number(options.port);
490
503
  }
491
504
  try {
492
- const portFile = resolve(process.cwd(), ".orion/port");
493
- const port = readFileSync(portFile, "utf-8").trim();
505
+ const portFile = resolve2(process.cwd(), ".orion/port");
506
+ const port = readFileSync2(portFile, "utf-8").trim();
494
507
  return Number(port);
495
508
  } catch {
496
509
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/index.ts","../src/dev/index.ts","../src/dev/runner/index.ts","../src/helpers/writeFile.ts","../src/helpers/ensureDirectory.ts","../src/dev/runner/startProcess.ts","../src/dev/runner/getArgs.ts","../src/dev/watchAndCompile/index.ts","../src/dev/watchAndCompile/cleanDirectory.ts","../src/dev/watchAndCompile/getHost.ts","../src/dev/watchAndCompile/getConfigPath.ts","../src/dev/watchAndCompile/ensureConfigComplies.ts","../src/helpers/getFileContents.ts","../src/dev/watchAndCompile/reports.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/prod/index.ts","../src/build/index.ts","../src/build/build.ts","../src/build/checkTs.ts","../src/prod/runProd.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.ts","../src/info.ts","../src/repl/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk'\nimport {Command} from 'commander'\nimport create from './create'\nimport dev from './dev'\nimport prod from './prod'\nimport './handleErrors'\nimport version from './version'\nimport 'dotenv/config'\nimport build from './build'\nimport check from './check'\nimport info from './info'\nimport repl from './repl'\n\nconst program = new Command()\n\nconst run =\n action =>\n async (...args) => {\n try {\n await action(...args)\n } catch (e) {\n console.error(chalk.red(`Error: ${e.message}`))\n }\n }\n\nprogram\n .command('dev')\n .description('Run the Orionjs app in development mode')\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option('--repl', 'Enable REPL endpoint for orion repl')\n .allowUnknownOption()\n .action(run(dev))\n\nprogram.command('check').description('Runs a typescript check').action(run(check))\n\nprogram\n .command('build')\n .description('Build the Orionjs app for production')\n .option('--output [path]', 'Path of the output file')\n .action(run(build))\n\nprogram\n .command('prod')\n .allowUnknownOption()\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option(\n '--path [path]',\n 'Path of the compiled Orionjs app. If not provided, the app will be compiled and then run',\n )\n .description('Run the Orionjs app in production mode')\n .action(run(prod))\n\nprogram\n .command('create')\n .description('Creates a new Orionjs project')\n .option('--name [name]', 'Name of the project')\n .option('--kit [kit]', 'Which starter kit to use')\n .action(run(create))\n\nprogram.command('info').description('Print runtime and version info').action(run(info))\n\nprogram\n .command('repl')\n .description('Evaluate an expression against a running Orionjs dev server')\n .requiredOption('-e, --expression <expression>', 'Expression to evaluate')\n .option('--port <port>', 'Port of the dev server (default: auto-detect from .orion/port)')\n .action(run(repl))\n\nprogram.version(version, '-v --version')\n\nprogram.parse(process.argv)\n\nif (!process.argv.slice(2).length) {\n program.outputHelp()\n}\n","import {exec} from 'node:child_process'\n\nexport default async function (command) {\n return new Promise((resolve, reject) => {\n exec(command, (error, stdout, stderr) => {\n if (error) {\n reject(error)\n } else {\n resolve({stdout, stderr})\n }\n })\n })\n}\n","import execute from '../helpers/execute'\n\nexport default async function ({name, kit}) {\n if (!name) {\n throw new Error('Please set the name of the app')\n }\n if (!kit) {\n throw new Error('Please select which kit to use')\n }\n const repo = `https://github.com/siturra/boilerplate-orionjs-${kit}`\n console.log('Downloading starter kit...')\n await execute(`git clone ${repo} ${name}`)\n await execute(`cd ${name} && rm -rf .git`)\n console.log('Your starter kit is ready')\n}\n","import chalk from 'chalk'\nimport {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\n\nexport default async function (options: RunnerOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Dev mode \\n`))\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n node: boolean\n repl: boolean\n}\n\nexport interface Runner {\n start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport chalk from 'chalk'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n ...(options.repl ? {ORION_REPL: 'true'} : {}),\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from './index'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n if (options.node) {\n const startCommand = 'tsx'\n const args = ['watch', '--clear-screen=false', ...command.args, './app/index.ts']\n return {startCommand, args}\n }\n\n const startCommand = 'bun'\n const args = ['--watch', ...command.args, './app/index.ts']\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import chalk from 'chalk'\nimport build from '../build'\nimport {runProd} from './runProd'\n\nexport interface ProdOptions {\n path?: string\n node?: boolean\n}\n\nexport default async function (options: ProdOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Prod mode\\n`))\n\n if (options.node) {\n if (!options.path) {\n await build({output: './build'})\n options.path = './build'\n }\n }\n\n runProd(options, command)\n}\n","import chalk from 'chalk'\nimport {build} from './build'\nimport cleanDirectory from '../dev/watchAndCompile/cleanDirectory'\nimport {checkTs} from './checkTs'\n\nexport default async function (options: {output?: string}) {\n console.log(chalk.bold(`Building Orionjs App ${chalk.green(chalk.bold('V4'))}...`))\n\n if (!options.output) {\n options.output = './build'\n }\n\n await cleanDirectory(options.output)\n\n await checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import {spawn} from 'node:child_process'\nimport {ProdOptions} from './index'\n\nexport function runProd(options: ProdOptions, command: any) {\n if (options.node) {\n const indexPath = `${options.path}/index.js`\n const args = ['--import=tsx', ...command.args, indexPath]\n spawn('node', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n return\n }\n\n const args = [...command.args, './app/index.ts']\n spawn('bun', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n}\n","import chalk from 'chalk'\n\ninterface ErrorWithCodeFrame extends Error {\n codeFrame?: string\n}\n\nprocess\n .on('unhandledRejection', (error: ErrorWithCodeFrame) => {\n if (error.codeFrame) {\n console.error(chalk.red(error.message))\n console.log(error.codeFrame)\n } else {\n console.error(chalk.red(error.message), chalk.red('Unhandled promise rejection'))\n }\n })\n .on('uncaughtException', (error: Error) => {\n console.error(chalk.red(error.message))\n process.exit(1)\n })\n","export default '3.0'\n","import chalk from 'chalk'\nimport {checkTs} from './checkTs'\n\nexport default async function () {\n console.log(chalk.bold(`Orionjs App ${chalk.green(chalk.bold('V4'))}\\n`))\n console.log('Checking typescript...')\n\n checkTs()\n\n console.log(chalk.bold.green('Check passed\\n'))\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\n\nexport function checkTs() {\n try {\n execSync('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n stdio: 'inherit',\n })\n } catch {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n process.exit(1)\n }\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\nimport version from './version'\n\nfunction detectRuntime(): string {\n const runtimes: string[] = []\n\n try {\n const bunVersion = execSync('bun --version', {encoding: 'utf-8'}).trim()\n runtimes.push(`Bun ${bunVersion}`)\n } catch {}\n\n runtimes.push(`Node ${process.versions.node}`)\n\n return runtimes.join(', ')\n}\n\nexport default function info() {\n console.log(`Orion CLI v${version} — Available runtimes: ${chalk.bold(detectRuntime())}`)\n console.log(`Default runtime: ${chalk.bold('Bun')} (use --node flag to switch to Node.js)`)\n}\n","import {readFileSync} from 'node:fs'\nimport {resolve} from 'node:path'\nimport chalk from 'chalk'\n\nexport interface ReplOptions {\n expression?: string\n port?: string\n}\n\nfunction resolvePort(options: ReplOptions): number {\n if (options.port) {\n return Number(options.port)\n }\n\n try {\n const portFile = resolve(process.cwd(), '.orion/port')\n const port = readFileSync(portFile, 'utf-8').trim()\n return Number(port)\n } catch {}\n\n if (process.env.PORT) {\n return Number(process.env.PORT)\n }\n\n return 3000\n}\n\nexport default async function repl(options: ReplOptions) {\n const expression = options.expression\n\n if (!expression) {\n console.error(chalk.red('Error: expression is required. Use -e \"<expression>\"'))\n process.exit(1)\n }\n\n const port = resolvePort(options)\n\n try {\n const response = await fetch(`http://localhost:${port}/__repl`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify({expression}),\n })\n\n const data = await response.json()\n\n if (!data.success) {\n console.error(chalk.red(`Error: ${data.error}`))\n if (data.stack) {\n console.error(chalk.dim(data.stack))\n }\n process.exit(1)\n }\n\n if (data.result !== undefined) {\n console.log(\n typeof data.result === 'string' ? data.result : JSON.stringify(data.result, null, 2),\n )\n }\n } catch (error) {\n if (error.code === 'ECONNREFUSED' || error.cause?.code === 'ECONNREFUSED') {\n console.error(\n chalk.red(\n `Could not connect to dev server on port ${port}. Make sure \"orion dev --repl\" is running.`,\n ),\n )\n } else {\n console.error(chalk.red(`Error: ${error.message}`))\n }\n process.exit(1)\n }\n}\n"],"mappings":";;;AACA,OAAOA,aAAW;AAClB,SAAQ,eAAc;;;ACFtB,SAAQ,YAAW;AAEnB,eAAO,gBAAwB,SAAS;AACtC,SAAO,IAAI,QAAQ,CAACC,UAAS,WAAW;AACtC,SAAK,SAAS,CAAC,OAAO,QAAQ,WAAW;AACvC,UAAI,OAAO;AACT,eAAO,KAAK;AAAA,MACd,OAAO;AACL,QAAAA,SAAQ,EAAC,QAAQ,OAAM,CAAC;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;;;ACVA,eAAO,eAAwB,EAAC,MAAM,IAAG,GAAG;AAC1C,MAAI,CAAC,MAAM;AACT,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AACA,MAAI,CAAC,KAAK;AACR,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AACA,QAAM,OAAO,kDAAkD,GAAG;AAClE,UAAQ,IAAI,4BAA4B;AACxC,QAAM,gBAAQ,aAAa,IAAI,IAAI,IAAI,EAAE;AACzC,QAAM,gBAAQ,MAAM,IAAI,iBAAiB;AACzC,UAAQ,IAAI,2BAA2B;AACzC;;;ACdA,OAAOC,YAAW;;;ACAlB,OAAOC,YAAW;;;ACAlB,OAAOC,SAAQ;;;ACAf,OAAO,QAAQ;AACf,OAAO,UAAU;AAEjB,IAAM,kBAAkB,cAAY;AAClC,QAAM,UAAU,KAAK,QAAQ,QAAQ;AACrC,MAAI,GAAG,WAAW,OAAO,EAAG,QAAO;AACnC,kBAAgB,OAAO;AACvB,KAAG,UAAU,OAAO;AACtB;AAEA,IAAO,0BAAQ;;;ADPf,eAAO,kBAAwBC,OAAc,SAAgC;AAC3E,0BAAgBA,KAAI;AACpB,EAAAC,IAAG,cAAcD,OAAM,OAAO;AAChC;;;AENA,SAAQ,aAAY;AACpB,OAAO,WAAW;;;ACCX,SAAS,QAAQ,SAAwB,SAAc;AAC5D,MAAI,QAAQ,MAAM;AAChB,UAAME,gBAAe;AACrB,UAAMC,QAAO,CAAC,SAAS,wBAAwB,GAAG,QAAQ,MAAM,gBAAgB;AAChF,WAAO,EAAC,cAAAD,eAAc,MAAAC,MAAI;AAAA,EAC5B;AAEA,QAAM,eAAe;AACrB,QAAM,OAAO,CAAC,WAAW,GAAG,QAAQ,MAAM,gBAAgB;AAC1D,SAAO,EAAC,cAAc,KAAI;AAC5B;;;ADPO,SAAS,aAAa,SAAwB,SAAc;AACjE,QAAM,EAAC,cAAc,KAAI,IAAI,QAAQ,SAAS,OAAO;AAErD,UAAQ,IAAI,MAAM,KAAK,iCAAiC,YAAY,IAAI,KAAK,KAAK,GAAG,CAAC;AAAA,CAAO,CAAC;AAC9F,SAAO,MAAM,cAAc,MAAM;AAAA,IAC/B,KAAK;AAAA,MACH,WAAW;AAAA,MACX,GAAG,QAAQ;AAAA,MACX,GAAI,QAAQ,OAAO,EAAC,YAAY,OAAM,IAAI,CAAC;AAAA,IAC7C;AAAA,IACA,KAAK,QAAQ,IAAI;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,EACZ,CAAC;AACH;;;AHFO,SAAS,UAAU,SAAwB,SAAsB;AACtE,MAAI,aAAa;AAEjB,MAAI,QAAQ,OAAO;AACjB,YAAQ,IAAIC,OAAM,KAAK,4BAA4B,CAAC;AAAA,EACtD;AAEA,QAAM,WAAW,MAAM;AACrB,iBAAa,aAAa,SAAS,OAAO;AAE1C,eAAW,GAAG,QAAQ,CAAC,MAAc,WAAmB;AACtD,UAAI,CAAC,QAAQ,SAAS,OAAO,SAAS,KAAK,WAAW,aAAa,WAAW,UAAU;AAAA,MACxF,OAAO;AACL,gBAAQ,IAAIA,OAAM,KAAK,oCAAoC,IAAI,EAAE,CAAC;AAAA,MACpE;AAAA,IACF,CAAC;AAED,sBAAU,kBAAkB,GAAG,WAAW,GAAG,EAAE;AAAA,EACjD;AAEA,QAAM,OAAO,MAAM;AACjB,QAAI,YAAY;AACd,iBAAW,KAAK;AAChB,mBAAa;AAAA,IACf;AAAA,EACF;AAEA,QAAM,UAAU,MAAM;AACpB,YAAQ,IAAIA,OAAM,KAAK,wBAAwB,CAAC;AAChD,SAAK;AACL,aAAS;AAAA,EACX;AAEA,QAAM,QAAQ,MAAM;AAElB,QAAI,YAAY;AAAA,IAEhB,OAAO;AACL,eAAS;AAAA,IACX;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AKhEA,OAAOC,SAAQ;;;ACAf,OAAOC,SAAQ;AACf,OAAOC,WAAU;AAOjB,SAAS,OAAO,UAAkB;AAChC,MAAID,IAAG,WAAW,QAAQ,GAAG;AAC3B,IAAAA,IAAG,YAAY,QAAQ,EAAE,IAAI,WAAS;AACpC,YAAM,aAAaC,MAAK,KAAK,UAAU,KAAK;AAC5C,UAAID,IAAG,UAAU,UAAU,EAAE,YAAY,GAAG;AAC1C,eAAO,UAAU;AAAA,MACnB,OAAO;AACL,QAAAA,IAAG,WAAW,UAAU;AAAA,MAC1B;AAAA,IACF,CAAC;AACD,IAAAA,IAAG,UAAU,QAAQ;AAAA,EACvB;AACF;AAEA,eAAO,eAAsC,WAAoB;AAC/D,MAAI;AACF,UAAM,UAAU,YAAY,YAAYC,MAAK,KAAK,QAAQ,IAAI,GAAG,UAAU,OAAO;AAClF,WAAO,OAAO;AAAA,EAChB,SAAS,GAAG;AAAA,EAEZ;AACF;;;AC7BA,OAAOC,SAAQ;;;ACAf,OAAO,QAAQ;;;ACAf,SAAQ,OAAO,iBAAgB;;;ACA/B,OAAOC,SAAQ;AAEA,SAAR,SAA0B,UAAkB;AACjD,MAAI,CAACA,IAAG,WAAW,QAAQ,EAAG,QAAO;AAErC,SAAOA,IAAG,aAAa,QAAQ,EAAE,SAAS;AAC5C;;;ADSO,SAAS,qBAAqB,YAAoB;AAfzD;AAgBE,MAAI;AACF,UAAM,aAAa,SAAgB,UAAU;AAC7C,UAAM,SAAS,MAAM,UAAU;AAE/B,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,MACH,iBAAiB;AAAA,QACf,GAAG,OAAO;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,QAAI,GAAC,YAAO,oBAAP,mBAAwB,YAAW,GAAC,YAAO,oBAAP,mBAAwB,WAAU;AACzE,gBAAU,gBAAgB,UAAU;AAAA,IACtC;AAGA,QAAI,KAAK,UAAU,MAAM,MAAM,KAAK,UAAU,SAAS,GAAG;AACxD;AAAA,IACF;AAEA,sBAAU,YAAY,UAAU,WAAW,MAAM,CAAC,CAAC;AAAA,EACrD,SAAS,OAAO;AACd,YAAQ,IAAI,2BAA2B,MAAM,OAAO,EAAE;AAAA,EACxD;AACF;;;ADvCO,SAAS,gBAAgB;AAC9B,QAAM,cAAc,QAAQ,IAAI;AAEhC,QAAM,aACJ,GAAG,eAAe,aAAa,GAAG,IAAI,YAAY,sBAAsB,KACxE,GAAG,eAAe,aAAa,GAAG,IAAI,YAAY,eAAe;AAEnE,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,yCAAyC;AAAA,EAC3D;AAEA,uBAAqB,UAAU;AAE/B,SAAO;AACT;;;AGjBA,OAAOC,SAAQ;AAEf,IAAM,SAAS;AAAA,EACb,sBAAsB,cAAY;AAAA,EAClC,qBAAqB,MAAM,QAAQ,IAAI;AAAA,EACvC,YAAY,MAAMA,IAAG,IAAI;AAC3B;AACO,SAAS,iBAAiB,YAA2B;AAC1D,UAAQ,IAAIA,IAAG,qCAAqC,CAAC,UAAU,GAAG,MAAM,CAAC;AAC3E;;;AJLA,OAAOC,YAAW;AAEX,SAAS,QAAQ,QAAgB;AACtC,MAAI,YAAY;AAChB,QAAM,2BAA2B,CAAC,eAA8B;AAC9D,QAAI,WAAW,aAAa,EAAG;AAC/B,QAAI,WAAW,SAAS,QAAQ,WAAW,SAAS,MAAM;AAGxD;AAAA,IACF;AAEA,QAAI,WAAW,SAAS,MAAM;AAC5B,aAAO,KAAK;AACZ,kBAAY;AACZ;AAAA,IACF;AAEA,QAAI,WAAW,SAAS,MAAM;AAI5B,UAAI,oBAAoB,KAAK,WAAW,YAAY,SAAS,CAAC,GAAG;AAC/D,YAAI,CAAC,WAAW,YAAY,SAAS,EAAE,SAAS,iBAAiB,GAAG;AAClE,iBAAO,KAAK;AACZ,sBAAY;AACZ;AAAA,QACF;AAAA,MACF;AAEA,UAAI,WAAW;AACb,oBAAY;AACZ,eAAO,MAAM;AAAA,MACf;AACA;AAAA,IACF;AAEA,YAAQ,IAAIA,OAAM,KAAK,MAAM,WAAW,WAAW,KAAK,WAAW,IAAI,GAAG,CAAC;AAAA,EAC7E;AAEA,QAAM,aAAa,cAAc;AACjC,QAAM,gBAAgBC,IAAG;AAEzB,QAAM,OAAOA,IAAG;AAAA,IACd;AAAA,IACA,CAAC;AAAA,IACDA,IAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AACT;;;AKzDA,SAAQ,kCAAiC;AACzC,OAAOC,YAAW;AAClB,OAAO,cAAc;AAGrB,IAAM,cAAc,QAAQ,IAAI;AAChC,IAAM,cAAc;AAEb,IAAM,eAAe,OAAO,WAAmB;AACpD,MAAI,CAAC,YAAa;AAElB,6BAA2B,aAAa,WAAW;AAEnD,WAAS,MAAM,aAAa,EAAC,eAAe,KAAI,CAAC,EAAE,GAAG,UAAU,YAAY;AAC1E,YAAQ,IAAIA,OAAM,KAAK,4CAA4C,CAAC;AACpE,+BAA2B,aAAa,WAAW;AACnD,WAAO,QAAQ;AAAA,EACjB,CAAC;AACH;;;APZA,eAAO,gBAAuC,QAAgB;AAC5D,QAAM,eAAe;AACrB,QAAM,OAAO,QAAQ,MAAM;AAC3B,EAAAC,IAAG,mBAAmB,IAAI;AAC1B,eAAa,MAAM;AACrB;;;ANPA,eAAO,YAAwB,SAAwB,SAAc;AACnE,UAAQ,IAAIC,OAAM,KAAK;AAAA,cAAiBA,OAAM,MAAMA,OAAM,KAAK,IAAI,CAAC,CAAC;AAAA,CAAc,CAAC;AAEpF,QAAM,SAAS,UAAU,SAAS,OAAO;AAEzC,kBAAgB,MAAM;AACxB;;;AcVA,OAAOC,YAAW;;;ACAlB,OAAOC,YAAW;;;ACAlB,OAAOC,YAAW;AAClB,YAAY,aAAa;AAEzB,eAAsBC,OAAM,SAA4B;AACtD,QAAM,EAAC,OAAM,IAAI;AAEjB,UAAQ,IAAI,4BAA4B,MAAM,EAAE;AAEhD,QAAc,cAAM;AAAA,IAClB,aAAa,CAAC,gBAAgB;AAAA,IAC9B,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ,CAAC;AAED,UAAQ,IAAID,OAAM,MAAM,KAAK,kBAAkB,CAAC;AAClD;;;ACvBA,OAAOE,YAAW;AAClB,SAAQ,QAAAC,aAAW;AACnB,SAAQ,iBAAgB;AAExB,IAAM,cAAc,UAAUA,KAAI;AAElC,eAAsB,UAAyB;AAC7C,MAAI;AACF,YAAQ,IAAI,wBAAwB;AACpC,UAAM,YAAY,gBAAgB;AAAA,MAChC,KAAK,QAAQ,IAAI;AAAA,MACjB,KAAK;AAAA,QACH,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,IACtB,CAAC;AACD,YAAQ,IAAID,OAAM,MAAM,KAAK,yBAAyB,CAAC;AAAA,EACzD,SAAS,OAAO;AACd,YAAQ,IAAIA,OAAM,IAAI,KAAK,+BAA+B,CAAC;AAC3D,YAAQ,IAAI,MAAM,UAAU,MAAM,UAAU,MAAM,OAAO;AACzD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;AFlBA,eAAO,cAAwB,SAA4B;AACzD,UAAQ,IAAIE,OAAM,KAAK,wBAAwBA,OAAM,MAAMA,OAAM,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;AAElF,MAAI,CAAC,QAAQ,QAAQ;AACnB,YAAQ,SAAS;AAAA,EACnB;AAEA,QAAM,eAAe,QAAQ,MAAM;AAEnC,QAAM,QAAQ;AACd,QAAMC,OAAM,OAAO;AAEnB,UAAQ,IAAID,OAAM,KAAK,iBAAiB,CAAC;AAC3C;;;AGlBA,SAAQ,SAAAE,cAAY;AAGb,SAAS,QAAQ,SAAsB,SAAc;AAC1D,MAAI,QAAQ,MAAM;AAChB,UAAM,YAAY,GAAG,QAAQ,IAAI;AACjC,UAAMC,QAAO,CAAC,gBAAgB,GAAG,QAAQ,MAAM,SAAS;AACxD,IAAAD,OAAM,QAAQC,OAAM;AAAA,MAClB,KAAK;AAAA,QACH,UAAU;AAAA,QACV,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,KAAK,QAAQ,IAAI;AAAA,MACjB,OAAO;AAAA,MACP,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,MACpB,UAAU;AAAA,IACZ,CAAC;AACD;AAAA,EACF;AAEA,QAAM,OAAO,CAAC,GAAG,QAAQ,MAAM,gBAAgB;AAC/C,EAAAD,OAAM,OAAO,MAAM;AAAA,IACjB,KAAK;AAAA,MACH,UAAU;AAAA,MACV,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,KAAK,QAAQ,IAAI;AAAA,IACjB,OAAO;AAAA,IACP,KAAK,QAAQ,OAAO;AAAA,IACpB,KAAK,QAAQ,OAAO;AAAA,IACpB,UAAU;AAAA,EACZ,CAAC;AACH;;;AJxBA,eAAO,aAAwB,SAAsB,SAAc;AACjE,UAAQ,IAAIE,OAAM,KAAK;AAAA,cAAiBA,OAAM,MAAMA,OAAM,KAAK,IAAI,CAAC,CAAC;AAAA,CAAc,CAAC;AAEpF,MAAI,QAAQ,MAAM;AAChB,QAAI,CAAC,QAAQ,MAAM;AACjB,YAAM,cAAM,EAAC,QAAQ,UAAS,CAAC;AAC/B,cAAQ,OAAO;AAAA,IACjB;AAAA,EACF;AAEA,UAAQ,SAAS,OAAO;AAC1B;;;AKpBA,OAAOC,aAAW;AAMlB,QACG,GAAG,sBAAsB,CAAC,UAA8B;AACvD,MAAI,MAAM,WAAW;AACnB,YAAQ,MAAMA,QAAM,IAAI,MAAM,OAAO,CAAC;AACtC,YAAQ,IAAI,MAAM,SAAS;AAAA,EAC7B,OAAO;AACL,YAAQ,MAAMA,QAAM,IAAI,MAAM,OAAO,GAAGA,QAAM,IAAI,6BAA6B,CAAC;AAAA,EAClF;AACF,CAAC,EACA,GAAG,qBAAqB,CAAC,UAAiB;AACzC,UAAQ,MAAMA,QAAM,IAAI,MAAM,OAAO,CAAC;AACtC,UAAQ,KAAK,CAAC;AAChB,CAAC;;;AClBH,IAAO,kBAAQ;;;AvBQf,OAAO;;;AwBRP,OAAOC,aAAW;;;ACAlB,OAAOC,aAAW;AAClB,SAAQ,gBAAe;AAEhB,SAASC,WAAU;AACxB,MAAI;AACF,aAAS,gBAAgB;AAAA,MACvB,KAAK,QAAQ,IAAI;AAAA,MACjB,KAAK;AAAA,QACH,GAAG,QAAQ;AAAA,MACb;AAAA,MACA,KAAK,QAAQ,OAAO;AAAA,MACpB,KAAK,QAAQ,OAAO;AAAA,MACpB,OAAO;AAAA,IACT,CAAC;AAAA,EACH,QAAQ;AACN,YAAQ,IAAID,QAAM,IAAI,KAAK,+BAA+B,CAAC;AAC3D,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;ADfA,eAAO,gBAA0B;AAC/B,UAAQ,IAAIE,QAAM,KAAK,eAAeA,QAAM,MAAMA,QAAM,KAAK,IAAI,CAAC,CAAC;AAAA,CAAI,CAAC;AACxE,UAAQ,IAAI,wBAAwB;AAEpC,EAAAC,SAAQ;AAER,UAAQ,IAAID,QAAM,KAAK,MAAM,gBAAgB,CAAC;AAChD;;;AEVA,OAAOE,aAAW;AAClB,SAAQ,YAAAC,iBAAe;AAGvB,SAAS,gBAAwB;AAC/B,QAAM,WAAqB,CAAC;AAE5B,MAAI;AACF,UAAM,aAAaC,UAAS,iBAAiB,EAAC,UAAU,QAAO,CAAC,EAAE,KAAK;AACvE,aAAS,KAAK,OAAO,UAAU,EAAE;AAAA,EACnC,QAAQ;AAAA,EAAC;AAET,WAAS,KAAK,QAAQ,QAAQ,SAAS,IAAI,EAAE;AAE7C,SAAO,SAAS,KAAK,IAAI;AAC3B;AAEe,SAAR,OAAwB;AAC7B,UAAQ,IAAI,cAAc,eAAO,+BAA0BC,QAAM,KAAK,cAAc,CAAC,CAAC,EAAE;AACxF,UAAQ,IAAI,oBAAoBA,QAAM,KAAK,KAAK,CAAC,yCAAyC;AAC5F;;;ACpBA,SAAQ,oBAAmB;AAC3B,SAAQ,eAAc;AACtB,OAAOC,aAAW;AAOlB,SAAS,YAAY,SAA8B;AACjD,MAAI,QAAQ,MAAM;AAChB,WAAO,OAAO,QAAQ,IAAI;AAAA,EAC5B;AAEA,MAAI;AACF,UAAM,WAAW,QAAQ,QAAQ,IAAI,GAAG,aAAa;AACrD,UAAM,OAAO,aAAa,UAAU,OAAO,EAAE,KAAK;AAClD,WAAO,OAAO,IAAI;AAAA,EACpB,QAAQ;AAAA,EAAC;AAET,MAAI,QAAQ,IAAI,MAAM;AACpB,WAAO,OAAO,QAAQ,IAAI,IAAI;AAAA,EAChC;AAEA,SAAO;AACT;AAEA,eAAO,KAA4B,SAAsB;AA3BzD;AA4BE,QAAM,aAAa,QAAQ;AAE3B,MAAI,CAAC,YAAY;AACf,YAAQ,MAAMA,QAAM,IAAI,sDAAsD,CAAC;AAC/E,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,OAAO,YAAY,OAAO;AAEhC,MAAI;AACF,UAAM,WAAW,MAAM,MAAM,oBAAoB,IAAI,WAAW;AAAA,MAC9D,QAAQ;AAAA,MACR,SAAS,EAAC,gBAAgB,mBAAkB;AAAA,MAC5C,MAAM,KAAK,UAAU,EAAC,WAAU,CAAC;AAAA,IACnC,CAAC;AAED,UAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,QAAI,CAAC,KAAK,SAAS;AACjB,cAAQ,MAAMA,QAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;AAC/C,UAAI,KAAK,OAAO;AACd,gBAAQ,MAAMA,QAAM,IAAI,KAAK,KAAK,CAAC;AAAA,MACrC;AACA,cAAQ,KAAK,CAAC;AAAA,IAChB;AAEA,QAAI,KAAK,WAAW,QAAW;AAC7B,cAAQ;AAAA,QACN,OAAO,KAAK,WAAW,WAAW,KAAK,SAAS,KAAK,UAAU,KAAK,QAAQ,MAAM,CAAC;AAAA,MACrF;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,QAAI,MAAM,SAAS,oBAAkB,WAAM,UAAN,mBAAa,UAAS,gBAAgB;AACzE,cAAQ;AAAA,QACNA,QAAM;AAAA,UACJ,2CAA2C,IAAI;AAAA,QACjD;AAAA,MACF;AAAA,IACF,OAAO;AACL,cAAQ,MAAMA,QAAM,IAAI,UAAU,MAAM,OAAO,EAAE,CAAC;AAAA,IACpD;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;A3BzDA,IAAM,UAAU,IAAI,QAAQ;AAE5B,IAAM,MACJ,YACA,UAAU,SAAS;AACjB,MAAI;AACF,UAAM,OAAO,GAAG,IAAI;AAAA,EACtB,SAAS,GAAG;AACV,YAAQ,MAAMC,QAAM,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;AAAA,EAChD;AACF;AAEF,QACG,QAAQ,KAAK,EACb,YAAY,yCAAyC,EACrD,OAAO,UAAU,oCAAoC,EACrD,OAAO,UAAU,qCAAqC,EACtD,mBAAmB,EACnB,OAAO,IAAI,WAAG,CAAC;AAElB,QAAQ,QAAQ,OAAO,EAAE,YAAY,yBAAyB,EAAE,OAAO,IAAI,aAAK,CAAC;AAEjF,QACG,QAAQ,OAAO,EACf,YAAY,sCAAsC,EAClD,OAAO,mBAAmB,yBAAyB,EACnD,OAAO,IAAI,aAAK,CAAC;AAEpB,QACG,QAAQ,MAAM,EACd,mBAAmB,EACnB,OAAO,UAAU,oCAAoC,EACrD;AAAA,EACC;AAAA,EACA;AACF,EACC,YAAY,wCAAwC,EACpD,OAAO,IAAI,YAAI,CAAC;AAEnB,QACG,QAAQ,QAAQ,EAChB,YAAY,+BAA+B,EAC3C,OAAO,iBAAiB,qBAAqB,EAC7C,OAAO,eAAe,0BAA0B,EAChD,OAAO,IAAI,cAAM,CAAC;AAErB,QAAQ,QAAQ,MAAM,EAAE,YAAY,gCAAgC,EAAE,OAAO,IAAI,IAAI,CAAC;AAEtF,QACG,QAAQ,MAAM,EACd,YAAY,6DAA6D,EACzE,eAAe,iCAAiC,wBAAwB,EACxE,OAAO,iBAAiB,gEAAgE,EACxF,OAAO,IAAI,IAAI,CAAC;AAEnB,QAAQ,QAAQ,iBAAS,cAAc;AAEvC,QAAQ,MAAM,QAAQ,IAAI;AAE1B,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,QAAQ;AACjC,UAAQ,WAAW;AACrB;","names":["chalk","resolve","chalk","chalk","fs","path","fs","startCommand","args","chalk","ts","fs","path","ts","fs","ts","chalk","ts","chalk","ts","chalk","chalk","chalk","chalk","build","chalk","exec","chalk","build","spawn","args","chalk","chalk","chalk","chalk","checkTs","chalk","checkTs","chalk","execSync","execSync","chalk","chalk","chalk"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/index.ts","../src/dev/index.ts","../src/dev/runner/index.ts","../src/helpers/writeFile.ts","../src/helpers/ensureDirectory.ts","../src/dev/runner/startProcess.ts","../src/dev/runner/getArgs.ts","../src/dev/watchAndCompile/index.ts","../src/dev/watchAndCompile/cleanDirectory.ts","../src/dev/watchAndCompile/getHost.ts","../src/dev/watchAndCompile/getConfigPath.ts","../src/dev/watchAndCompile/ensureConfigComplies.ts","../src/helpers/getFileContents.ts","../src/dev/watchAndCompile/reports.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/prod/index.ts","../src/build/index.ts","../src/build/build.ts","../src/build/checkTs.ts","../src/prod/runProd.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.ts","../src/info.ts","../src/repl/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport chalk from 'chalk'\nimport {Command} from 'commander'\nimport create from './create'\nimport dev from './dev'\nimport prod from './prod'\nimport './handleErrors'\nimport version from './version'\nimport 'dotenv/config'\nimport build from './build'\nimport check from './check'\nimport info from './info'\nimport repl from './repl'\n\nconst program = new Command()\n\nconst run =\n action =>\n async (...args) => {\n try {\n await action(...args)\n } catch (e) {\n console.error(chalk.red(`Error: ${e.message}`))\n }\n }\n\nprogram\n .command('dev')\n .description('Run the Orionjs app in development mode')\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option('--repl', 'Enable REPL endpoint for orion repl')\n .allowUnknownOption()\n .action(run(dev))\n\nprogram.command('check').description('Runs a typescript check').action(run(check))\n\nprogram\n .command('build')\n .description('Build the Orionjs app for production')\n .option('--output [path]', 'Path of the output file')\n .action(run(build))\n\nprogram\n .command('prod')\n .allowUnknownOption()\n .option('--node', 'Use Node.js runtime instead of Bun')\n .option(\n '--path [path]',\n 'Path of the compiled Orionjs app. If not provided, the app will be compiled and then run',\n )\n .description('Run the Orionjs app in production mode')\n .action(run(prod))\n\nprogram\n .command('create')\n .description('Creates a new Orionjs project')\n .option('--name [name]', 'Name of the project')\n .option('--kit [kit]', 'Which starter kit to use')\n .action(run(create))\n\nprogram.command('info').description('Print runtime and version info').action(run(info))\n\nprogram\n .command('repl')\n .description('Evaluate an expression against a running Orionjs dev server')\n .requiredOption('-e, --expression <expression>', 'Expression to evaluate')\n .option('--port <port>', 'Port of the dev server (default: auto-detect from .orion/port)')\n .action(run(repl))\n\nprogram.version(version, '-v --version')\n\nprogram.parse(process.argv)\n\nif (!process.argv.slice(2).length) {\n program.outputHelp()\n}\n","import {exec} from 'node:child_process'\n\nexport default async function (command) {\n return new Promise((resolve, reject) => {\n exec(command, (error, stdout, stderr) => {\n if (error) {\n reject(error)\n } else {\n resolve({stdout, stderr})\n }\n })\n })\n}\n","import execute from '../helpers/execute'\n\nexport default async function ({name, kit}) {\n if (!name) {\n throw new Error('Please set the name of the app')\n }\n if (!kit) {\n throw new Error('Please select which kit to use')\n }\n const repo = `https://github.com/siturra/boilerplate-orionjs-${kit}`\n console.log('Downloading starter kit...')\n await execute(`git clone ${repo} ${name}`)\n await execute(`cd ${name} && rm -rf .git`)\n console.log('Your starter kit is ready')\n}\n","import chalk from 'chalk'\nimport {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\n\nexport default async function (options: RunnerOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Dev mode \\n`))\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n node: boolean\n repl: boolean\n}\n\nexport interface Runner {\n start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport chalk from 'chalk'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n ...(options.repl ? {ORION_REPL: 'true'} : {}),\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from './index'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n if (options.node) {\n const startCommand = 'tsx'\n const args = ['watch', '--clear-screen=false', ...command.args, './app/index.ts']\n return {startCommand, args}\n }\n\n const startCommand = 'bun'\n const args = ['--watch', ...command.args, './app/index.ts']\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import chalk from 'chalk'\nimport build from '../build'\nimport {runProd} from './runProd'\n\nexport interface ProdOptions {\n path?: string\n node?: boolean\n}\n\nexport default async function (options: ProdOptions, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Prod mode\\n`))\n\n if (options.node) {\n if (!options.path) {\n await build({output: './build'})\n options.path = './build'\n }\n }\n\n runProd(options, command)\n}\n","import chalk from 'chalk'\nimport {build} from './build'\nimport cleanDirectory from '../dev/watchAndCompile/cleanDirectory'\nimport {checkTs} from './checkTs'\n\nexport default async function (options: {output?: string}) {\n console.log(chalk.bold(`Building Orionjs App ${chalk.green(chalk.bold('V4'))}...`))\n\n if (!options.output) {\n options.output = './build'\n }\n\n await cleanDirectory(options.output)\n\n await checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import {spawn} from 'node:child_process'\nimport {ProdOptions} from './index'\n\nexport function runProd(options: ProdOptions, command: any) {\n if (options.node) {\n const indexPath = `${options.path}/index.js`\n const args = ['--import=tsx', ...command.args, indexPath]\n spawn('node', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n return\n }\n\n const args = [...command.args, './app/index.ts']\n spawn('bun', args, {\n env: {\n NODE_ENV: 'production',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n gid: process.getgid(),\n uid: process.getuid(),\n detached: false,\n })\n}\n","import chalk from 'chalk'\n\ninterface ErrorWithCodeFrame extends Error {\n codeFrame?: string\n}\n\nprocess\n .on('unhandledRejection', (error: ErrorWithCodeFrame) => {\n if (error.codeFrame) {\n console.error(chalk.red(error.message))\n console.log(error.codeFrame)\n } else {\n console.error(chalk.red(error.message), chalk.red('Unhandled promise rejection'))\n }\n })\n .on('uncaughtException', (error: Error) => {\n console.error(chalk.red(error.message))\n process.exit(1)\n })\n","import {readFileSync} from 'node:fs'\nimport {dirname, resolve} from 'node:path'\nimport {fileURLToPath} from 'node:url'\n\nfunction getVersion(): string {\n try {\n const dir = dirname(fileURLToPath(import.meta.url))\n const pkgPath = resolve(dir, '..', 'package.json')\n const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'))\n return pkg.version\n } catch {\n return 'unknown'\n }\n}\n\nexport default getVersion()\n","import chalk from 'chalk'\nimport {checkTs} from './checkTs'\n\nexport default async function () {\n console.log(chalk.bold(`Orionjs App ${chalk.green(chalk.bold('V4'))}\\n`))\n console.log('Checking typescript...')\n\n checkTs()\n\n console.log(chalk.bold.green('Check passed\\n'))\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\n\nexport function checkTs() {\n try {\n execSync('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n stdio: 'inherit',\n })\n } catch {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n process.exit(1)\n }\n}\n","import chalk from 'chalk'\nimport {execSync} from 'node:child_process'\nimport version from './version'\n\nfunction detectRuntime(): string {\n const runtimes: string[] = []\n\n try {\n const bunVersion = execSync('bun --version', {encoding: 'utf-8'}).trim()\n runtimes.push(`Bun ${bunVersion}`)\n } catch {}\n\n runtimes.push(`Node ${process.versions.node}`)\n\n return runtimes.join(', ')\n}\n\nexport default function info() {\n console.log(`Orion CLI v${version} — Available runtimes: ${chalk.bold(detectRuntime())}`)\n console.log(`Default runtime: ${chalk.bold('Bun')} (use --node flag to switch to Node.js)`)\n}\n","import {readFileSync} from 'node:fs'\nimport {resolve} from 'node:path'\nimport chalk from 'chalk'\n\nexport interface ReplOptions {\n expression?: string\n port?: string\n}\n\nfunction resolvePort(options: ReplOptions): number {\n if (options.port) {\n return Number(options.port)\n }\n\n try {\n const portFile = resolve(process.cwd(), '.orion/port')\n const port = readFileSync(portFile, 'utf-8').trim()\n return Number(port)\n } catch {}\n\n if (process.env.PORT) {\n return Number(process.env.PORT)\n }\n\n return 3000\n}\n\nexport default async function repl(options: ReplOptions) {\n const expression = options.expression\n\n if (!expression) {\n console.error(chalk.red('Error: expression is required. Use -e \"<expression>\"'))\n process.exit(1)\n }\n\n const port = resolvePort(options)\n\n try {\n const response = await fetch(`http://localhost:${port}/__repl`, {\n method: 'POST',\n headers: {'Content-Type': 'application/json'},\n body: JSON.stringify({expression}),\n })\n\n const data = await response.json()\n\n if (!data.success) {\n console.error(chalk.red(`Error: ${data.error}`))\n if (data.stack) {\n console.error(chalk.dim(data.stack))\n }\n process.exit(1)\n }\n\n if (data.result !== undefined) {\n console.log(\n typeof data.result === 'string' ? data.result : JSON.stringify(data.result, null, 2),\n )\n }\n } catch (error) {\n if (error.code === 'ECONNREFUSED' || error.cause?.code === 'ECONNREFUSED') {\n console.error(\n chalk.red(\n `Could not connect to dev server on port ${port}. Make sure \"orion dev --repl\" is running.`,\n ),\n )\n } else {\n console.error(chalk.red(`Error: ${error.message}`))\n }\n process.exit(1)\n }\n}\n"],"mappings":"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","names":["chalk","resolve","chalk","chalk","fs","dirname","path","fs","startCommand","args","chalk","ts","fs","path","ts","fs","ts","chalk","ts","chalk","ts","chalk","chalk","chalk","chalk","build","chalk","exec","chalk","build","spawn","args","chalk","chalk","chalk","chalk","checkTs","chalk","checkTs","chalk","execSync","execSync","chalk","readFileSync","resolve","chalk","chalk"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/core",
3
- "version": "4.3.1",
3
+ "version": "4.3.2",
4
4
  "main": "./dist/index.cjs",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [