@orion-js/core 4.0.6 → 4.0.7
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 +75 -64
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +78 -67
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
));
|
|
24
24
|
|
|
25
25
|
// src/index.ts
|
|
26
|
-
var
|
|
26
|
+
var import_chalk15 = __toESM(require("chalk"), 1);
|
|
27
27
|
var import_commander = require("commander");
|
|
28
28
|
|
|
29
29
|
// src/helpers/execute.ts
|
|
@@ -495,13 +495,14 @@ Orionjs App ${import_chalk7.default.green(import_chalk7.default.bold("V4"))} Dev
|
|
|
495
495
|
}
|
|
496
496
|
|
|
497
497
|
// src/prod/index.ts
|
|
498
|
-
var
|
|
498
|
+
var import_chalk11 = __toESM(require("chalk"), 1);
|
|
499
499
|
|
|
500
500
|
// src/prod/runProd.ts
|
|
501
501
|
var import_node_child_process3 = require("child_process");
|
|
502
|
-
function runProd(command) {
|
|
503
|
-
const
|
|
504
|
-
|
|
502
|
+
function runProd(options, command) {
|
|
503
|
+
const indexPath = `${options.path}/index.js`;
|
|
504
|
+
const args = ["--import=tsx", ...command.args, indexPath];
|
|
505
|
+
(0, import_node_child_process3.spawn)("node", args, {
|
|
505
506
|
env: {
|
|
506
507
|
NODE_ENV: "production",
|
|
507
508
|
...process.env
|
|
@@ -514,46 +515,89 @@ function runProd(command) {
|
|
|
514
515
|
});
|
|
515
516
|
}
|
|
516
517
|
|
|
517
|
-
// src/
|
|
518
|
+
// src/build/index.ts
|
|
519
|
+
var import_chalk10 = __toESM(require("chalk"), 1);
|
|
520
|
+
|
|
521
|
+
// src/build/build.ts
|
|
518
522
|
var import_chalk8 = __toESM(require("chalk"), 1);
|
|
523
|
+
var esbuild = __toESM(require("esbuild"), 1);
|
|
524
|
+
async function build2(options) {
|
|
525
|
+
const { output } = options;
|
|
526
|
+
console.log(`Building with esbuild to ${output}`);
|
|
527
|
+
await esbuild.build({
|
|
528
|
+
entryPoints: ["./app/index.ts"],
|
|
529
|
+
tsconfig: "./tsconfig.json",
|
|
530
|
+
format: "esm",
|
|
531
|
+
platform: "node",
|
|
532
|
+
outdir: output,
|
|
533
|
+
bundle: true,
|
|
534
|
+
target: "node22",
|
|
535
|
+
sourcemap: true,
|
|
536
|
+
allowOverwrite: true,
|
|
537
|
+
minify: true,
|
|
538
|
+
packages: "external"
|
|
539
|
+
});
|
|
540
|
+
console.log(import_chalk8.default.green.bold("Build successful"));
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
// src/build/checkTs.ts
|
|
544
|
+
var import_chalk9 = __toESM(require("chalk"), 1);
|
|
519
545
|
var import_node_child_process4 = require("child_process");
|
|
520
|
-
|
|
546
|
+
var import_node_util = require("util");
|
|
547
|
+
var execPromise = (0, import_node_util.promisify)(import_node_child_process4.exec);
|
|
548
|
+
async function checkTs() {
|
|
521
549
|
try {
|
|
522
|
-
|
|
550
|
+
console.log("Checking TypeScript...");
|
|
551
|
+
await execPromise("tsc --noEmit", {
|
|
523
552
|
cwd: process.cwd(),
|
|
524
553
|
env: {
|
|
525
554
|
...process.env
|
|
526
555
|
},
|
|
527
556
|
gid: process.getgid(),
|
|
528
|
-
uid: process.getuid()
|
|
529
|
-
stdio: "inherit"
|
|
557
|
+
uid: process.getuid()
|
|
530
558
|
});
|
|
531
|
-
|
|
532
|
-
|
|
559
|
+
console.log(import_chalk9.default.green.bold("TypeScript check passed"));
|
|
560
|
+
} catch (error) {
|
|
561
|
+
console.log(import_chalk9.default.red.bold("TypeScript compilation failed"));
|
|
562
|
+
console.log(error.stderr || error.stdout || error.message);
|
|
533
563
|
process.exit(1);
|
|
534
564
|
}
|
|
535
565
|
}
|
|
536
566
|
|
|
567
|
+
// src/build/index.ts
|
|
568
|
+
async function build_default(options) {
|
|
569
|
+
console.log(import_chalk10.default.bold(`Building Orionjs App ${import_chalk10.default.green(import_chalk10.default.bold("V4"))}...`));
|
|
570
|
+
if (!options.output) {
|
|
571
|
+
options.output = "./build";
|
|
572
|
+
}
|
|
573
|
+
await cleanDirectory(options.output);
|
|
574
|
+
await Promise.all([checkTs(), build2(options)]);
|
|
575
|
+
console.log(import_chalk10.default.bold("Build completed"));
|
|
576
|
+
}
|
|
577
|
+
|
|
537
578
|
// src/prod/index.ts
|
|
538
|
-
async function prod_default(
|
|
539
|
-
console.log(
|
|
540
|
-
Orionjs App ${
|
|
579
|
+
async function prod_default(options, command) {
|
|
580
|
+
console.log(import_chalk11.default.bold(`
|
|
581
|
+
Orionjs App ${import_chalk11.default.green(import_chalk11.default.bold("V4"))} Prod mode
|
|
541
582
|
`));
|
|
542
|
-
|
|
543
|
-
|
|
583
|
+
if (!options.path) {
|
|
584
|
+
await build_default({ output: "./build" });
|
|
585
|
+
options.path = "./build";
|
|
586
|
+
}
|
|
587
|
+
runProd(options, command);
|
|
544
588
|
}
|
|
545
589
|
|
|
546
590
|
// src/handleErrors.ts
|
|
547
|
-
var
|
|
591
|
+
var import_chalk12 = __toESM(require("chalk"), 1);
|
|
548
592
|
process.on("unhandledRejection", (error) => {
|
|
549
593
|
if (error.codeFrame) {
|
|
550
|
-
console.error(
|
|
594
|
+
console.error(import_chalk12.default.red(error.message));
|
|
551
595
|
console.log(error.codeFrame);
|
|
552
596
|
} else {
|
|
553
|
-
console.error(
|
|
597
|
+
console.error(import_chalk12.default.red(error.message), import_chalk12.default.red("Unhandled promise rejection"));
|
|
554
598
|
}
|
|
555
599
|
}).on("uncaughtException", (error) => {
|
|
556
|
-
console.error(
|
|
600
|
+
console.error(import_chalk12.default.red(error.message));
|
|
557
601
|
process.exit(1);
|
|
558
602
|
});
|
|
559
603
|
|
|
@@ -564,10 +608,10 @@ var version_default = "3.0";
|
|
|
564
608
|
var import_config = require("dotenv/config");
|
|
565
609
|
|
|
566
610
|
// src/check/index.ts
|
|
567
|
-
var
|
|
611
|
+
var import_chalk14 = __toESM(require("chalk"), 1);
|
|
568
612
|
|
|
569
613
|
// src/check/checkTs.ts
|
|
570
|
-
var
|
|
614
|
+
var import_chalk13 = __toESM(require("chalk"), 1);
|
|
571
615
|
var import_node_child_process5 = require("child_process");
|
|
572
616
|
function checkTs2() {
|
|
573
617
|
try {
|
|
@@ -581,54 +625,18 @@ function checkTs2() {
|
|
|
581
625
|
stdio: "inherit"
|
|
582
626
|
});
|
|
583
627
|
} catch {
|
|
584
|
-
console.log(
|
|
628
|
+
console.log(import_chalk13.default.red.bold("TypeScript compilation failed"));
|
|
585
629
|
process.exit(1);
|
|
586
630
|
}
|
|
587
631
|
}
|
|
588
632
|
|
|
589
633
|
// src/check/index.ts
|
|
590
634
|
async function check_default() {
|
|
591
|
-
console.log(
|
|
635
|
+
console.log(import_chalk14.default.bold(`Orionjs App ${import_chalk14.default.green(import_chalk14.default.bold("V4"))}
|
|
592
636
|
`));
|
|
593
637
|
console.log("Checking typescript...");
|
|
594
638
|
checkTs2();
|
|
595
|
-
console.log(
|
|
596
|
-
}
|
|
597
|
-
|
|
598
|
-
// src/build/index.ts
|
|
599
|
-
var import_chalk13 = __toESM(require("chalk"), 1);
|
|
600
|
-
|
|
601
|
-
// src/build/build.ts
|
|
602
|
-
var import_esbuild_plugin_typecheck = require("@jgoz/esbuild-plugin-typecheck");
|
|
603
|
-
var esbuild = __toESM(require("esbuild"), 1);
|
|
604
|
-
async function build2(options) {
|
|
605
|
-
const { output } = options;
|
|
606
|
-
console.log(`Building with esbuild to ${output}`);
|
|
607
|
-
await esbuild.build({
|
|
608
|
-
entryPoints: ["./app/index.ts"],
|
|
609
|
-
tsconfig: "./tsconfig.json",
|
|
610
|
-
format: "esm",
|
|
611
|
-
platform: "node",
|
|
612
|
-
outdir: output,
|
|
613
|
-
bundle: true,
|
|
614
|
-
target: "node22",
|
|
615
|
-
sourcemap: true,
|
|
616
|
-
allowOverwrite: true,
|
|
617
|
-
minify: true,
|
|
618
|
-
packages: "external",
|
|
619
|
-
plugins: [(0, import_esbuild_plugin_typecheck.typecheckPlugin)()]
|
|
620
|
-
});
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
// src/build/index.ts
|
|
624
|
-
async function build_default(options) {
|
|
625
|
-
console.log(import_chalk13.default.bold(`Building Orionjs App ${import_chalk13.default.green(import_chalk13.default.bold("V4"))}...`));
|
|
626
|
-
if (!options.output) {
|
|
627
|
-
options.output = "./build";
|
|
628
|
-
}
|
|
629
|
-
await cleanDirectory(options.output);
|
|
630
|
-
await build2(options);
|
|
631
|
-
console.log(import_chalk13.default.bold("Build successful"));
|
|
639
|
+
console.log(import_chalk14.default.bold.green("Check passed\n"));
|
|
632
640
|
}
|
|
633
641
|
|
|
634
642
|
// src/index.ts
|
|
@@ -637,13 +645,16 @@ var run = (action) => async (...args) => {
|
|
|
637
645
|
try {
|
|
638
646
|
await action(...args);
|
|
639
647
|
} catch (e) {
|
|
640
|
-
console.error(
|
|
648
|
+
console.error(import_chalk15.default.red(`Error: ${e.message}`));
|
|
641
649
|
}
|
|
642
650
|
};
|
|
643
651
|
program.command("dev").description("Run the Orionjs app in development mode").option("--shell", "Opens a shell in Chrome developer tools").option("--omit-cursor-rule", "Omit the creation of the Orionjs Cursor rule").option("--omit-mcp-server", "Omit the creation of the Orionjs MCP server").allowUnknownOption().action(run(dev_default));
|
|
644
652
|
program.command("check").description("Runs a typescript check").action(run(check_default));
|
|
645
653
|
program.command("build").description("Build the Orionjs app for production").option("--output [path]", "Path of the output file").action(run(build_default));
|
|
646
|
-
program.command("prod").allowUnknownOption().
|
|
654
|
+
program.command("prod").allowUnknownOption().option(
|
|
655
|
+
"--path [path]",
|
|
656
|
+
"Path of the compiled Orionjs app. If not provided, the app will be compiled and then run"
|
|
657
|
+
).description("Run the Orionjs app in production mode").action(run(prod_default));
|
|
647
658
|
program.command("create").description("Creates a new Orionjs project").option("--name [name]", "Name of the project").option("--kit [kit]", "Which starter kit to use").action(run(create_default));
|
|
648
659
|
program.version(version_default, "-v --version");
|
|
649
660
|
program.parse(process.argv);
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/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/watchDeletes.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/dev/copyCursorRule/index.ts","../src/dev/copyMCP/index.ts","../src/dev/copyMCP/consts.ts","../src/dev/copyMCP/isValidMCPRepo.ts","../src/dev/index.ts","../src/prod/index.ts","../src/prod/runProd.ts","../src/prod/checkTs.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.ts","../src/build/index.ts","../src/build/build.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 check from './check'\nimport build from './build'\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('--shell', 'Opens a shell in Chrome developer tools')\n .option('--omit-cursor-rule', 'Omit the creation of the Orionjs Cursor rule')\n .option('--omit-mcp-server', 'Omit the creation of the Orionjs MCP server')\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 .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.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 writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n // option to omit the creation of the orion cursor rule\n omitCursorRule?: boolean\n // omit the creation of the orion mcp server\n omitMcpServer?: boolean\n}\n\nexport interface Runner {\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 start = () => {\n console.log(chalk.bold('=> Starting app...\\n'))\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 }\n }\n\n const restart = () => {\n stop()\n start()\n }\n\n return {\n restart,\n stop,\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 {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from '.'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n let startCommand = process.env.START_COMMAND || 'tsx'\n\n const args = []\n\n if (process.env.START_COMMAND) {\n const [first, ...otherArgs] = process.env.START_COMMAND.split(' ')\n startCommand = first\n args.push(...otherArgs)\n\n console.log(`Using custom command: ${[startCommand, ...args].join(' ')}`)\n } else if (options.shell) {\n args.push('--inspect')\n }\n\n args.push(...command.args)\n\n args.push('./app/index.ts')\n\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchDeletes} from './watchDeletes'\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 watchDeletes()\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 const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n\n if (diagnostic.code === 6032 || diagnostic.code === 6031) {\n runner.stop()\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText}`))\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 return\n }\n }\n\n runner.restart()\n }\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 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 fs from 'node:fs'\nimport path from 'node:path'\nimport chokidar from 'chokidar'\n\nexport async function watchDeletes() {\n const projectPath = path.resolve('./app')\n const watcher = chokidar.watch(projectPath, {\n ignoreInitial: true,\n })\n\n watcher.on('unlink', async filepath => {\n if (!filepath.endsWith('.ts')) return\n\n const relative = path.relative(process.cwd(), filepath)\n const atBuildPath = path.resolve('.orion/build', relative.replace(/.ts$/, ''))\n try {\n fs.unlinkSync(`${atBuildPath}.js`)\n fs.unlinkSync(`${atBuildPath}.d.ts`)\n } catch (error) {\n console.log(\n `Error cleaning ${atBuildPath}. Restar project is suggested. Error: ${error.message}`,\n )\n }\n })\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 fs from 'node:fs/promises'\nimport https from 'node:https'\nimport path from 'node:path'\nimport chalk from 'chalk'\n\nconst rules = [\n 'orionjs.mdx',\n 'orionjs-component.mdx',\n 'orionjs-repository.mdx',\n 'orionjs-schema.mdx',\n 'orionjs-services.mdx',\n 'orionjs-resolvers.mdx',\n 'orionjs-tov4.mdx',\n]\n\n// Function to download the file content\nconst downloadFile = (url: string): Promise<string> => {\n return new Promise((resolve, reject) => {\n https.get(url, response => {\n if (response.statusCode !== 200) {\n reject(new Error(`Failed to download, status code: ${response.statusCode}`))\n return\n }\n\n let data = ''\n response.on('data', chunk => {\n data += chunk\n })\n response.on('end', () => {\n resolve(data)\n })\n response.on('error', err => {\n reject(err)\n })\n })\n })\n}\n\nexport async function copyCursorRule() {\n const baseUrl = 'https://raw.githubusercontent.com/orionjs/orionjs/refs/heads/master/mdc'\n\n try {\n // Create target directory if it doesn't exist\n const targetDir = path.join(process.cwd(), '.cursor', 'rules')\n await fs.mkdir(targetDir, {recursive: true})\n\n // Process each rule file\n await Promise.all(\n rules.map(async rule => {\n // Change extension from .mdx to .mdc\n const targetFileName = rule.replace('.mdx', '.mdc')\n const targetFile = path.join(targetDir, targetFileName)\n\n // Construct source URL\n const sourceUrl = `${baseUrl}/${rule}`\n\n // console.log(chalk.gray(`=> ✨ Downloading ${chalk.cyan(rule)} to ${chalk.cyan(targetFileName)}...`))\n\n // Download the file content\n const content = await downloadFile(sourceUrl)\n\n // Write the content to the target file\n await fs.writeFile(targetFile, content, 'utf8')\n\n console.log(chalk.bold(`=> ✨ Successfully downloaded ${chalk.cyan(targetFileName)}`))\n }),\n )\n\n console.log(chalk.bold('=> ✨ All rule files have been successfully copied'))\n } catch (error) {\n console.error(chalk.red(`Error copying rule files: ${error.message}`))\n }\n}\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport execute from '../../helpers/execute'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\nimport {isValidMCPRepository} from './isValidMCPRepo'\n\nexport async function copyMCP() {\n const repoUrl = 'https://github.com/orionjs/mcp-docs'\n const targetDir = path.join(process.cwd(), '.orion', 'mcp')\n\n try {\n // Ensure parent directory exists\n await fs.mkdir(path.join(process.cwd(), '.orion'), {recursive: true})\n\n // Check if the repository is already properly installed with current version\n if (await isValidMCPRepository(targetDir)) {\n console.log(chalk.bold('=> ✨ MCP documentation already installed'))\n return\n }\n\n // Check if the directory already exists but is not a valid repository or has outdated version\n try {\n const stats = await fs.stat(targetDir)\n if (stats.isDirectory()) {\n // Directory exists, remove it first to ensure fresh clone\n await fs.rm(targetDir, {recursive: true, force: true})\n console.log(\n chalk.bold(\n '=> ✨ Removed existing .orion/mcp directory (invalid, incomplete, or outdated)',\n ),\n )\n }\n } catch (_) {\n // Directory doesn't exist, which is fine\n }\n\n // Clone the repository\n console.log(chalk.bold(`=> ✨ Downloading MCP documentation ${MCP_VERSION}...`))\n await execute(`git clone ${repoUrl} ${targetDir}`)\n\n // Remove git directory to avoid confusion\n await execute(`rm -rf ${path.join(targetDir, '.git')}`)\n\n // Create version file\n await fs.writeFile(path.join(targetDir, VERSION_FILE), MCP_VERSION, 'utf-8')\n\n console.log(\n chalk.bold(`=> ✨ Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`),\n )\n\n // Install dependencies in the MCP directory\n console.log(chalk.bold('=> ✨ Installing MCP dependencies...'))\n await execute(`cd ${targetDir} && npm install`)\n console.log(chalk.bold('=> ✨ Successfully installed MCP dependencies'))\n\n const relativePath = path.relative(process.cwd(), targetDir)\n console.log(relativePath)\n const mcpServerConfig = {\n mcpServers: {\n 'Orionjs documentation search': {\n command: 'node',\n args: [`./${path.join(relativePath, 'src', 'index.js')}`],\n },\n },\n }\n\n const configPath = path.join(process.cwd(), '.cursor', 'mcp.json')\n\n // Check if the config file exists\n try {\n // Try to read existing config file\n const existingConfig = await fs.readFile(configPath, 'utf-8')\n const parsedConfig = JSON.parse(existingConfig)\n\n // Update the mcpServers section while preserving other settings\n parsedConfig.mcpServers = {\n ...parsedConfig.mcpServers,\n ...mcpServerConfig.mcpServers,\n }\n\n // Write the updated config back\n await fs.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Updated MCP server configuration in .cursor/mcp.json'))\n } catch (_) {\n // If file doesn't exist or can't be parsed, create a new one\n // Ensure the .cursor directory exists\n await fs.mkdir(path.dirname(configPath), {recursive: true})\n\n // Write the new config file\n await fs.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Created new MCP server configuration in .cursor/mcp.json'))\n }\n } catch (error) {\n console.error(chalk.red('=> ✨ Error copying MCP documentation:'), error)\n throw error\n }\n}\n","// Define current MCP version - update this when a new version needs to be deployed\nexport const MCP_VERSION = 'v4'\nexport const VERSION_FILE = 'version.txt'\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\n\n/**\n * Checks if the MCP repository appears to be already installed correctly\n * and has the current version\n */\nexport async function isValidMCPRepository(directoryPath: string): Promise<boolean> {\n try {\n // Check if directory exists\n const stats = await fs.stat(directoryPath)\n if (!stats.isDirectory()) return false\n\n // Check for some key files/directories that should exist in the repository\n // This helps verify it's a valid repository and not just an empty or corrupted directory\n const expectedFiles = ['settings.js', 'package.json']\n\n for (const file of expectedFiles) {\n try {\n await fs.access(path.join(directoryPath, file))\n } catch {\n // If any expected file doesn't exist, consider the repository invalid\n return false\n }\n }\n\n // Check if version file exists and has the correct version\n try {\n const versionPath = path.join(directoryPath, VERSION_FILE)\n const versionContent = await fs.readFile(versionPath, 'utf-8')\n\n // If the version in the file doesn't match the current version,\n // consider the repository outdated\n if (versionContent.trim() !== MCP_VERSION) {\n console.log(\n chalk.yellow(\n `=> ✨ MCP version mismatch: installed=${versionContent.trim()}, required=${MCP_VERSION}`,\n ),\n )\n return false\n }\n } catch {\n // Version file doesn't exist or can't be read\n return false\n }\n\n // All checks passed, consider it a valid and current repository\n return true\n } catch {\n // Any error means directory doesn't exist or can't be accessed\n return false\n }\n}\n","import {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\nimport {copyCursorRule} from './copyCursorRule'\nimport {copyMCP} from './copyMCP'\nimport chalk from 'chalk'\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 if (!options.omitCursorRule) {\n await copyCursorRule().catch(console.error)\n }\n\n if (!options.omitMcpServer) {\n await copyMCP().catch(console.error)\n }\n\n if (!options.omitMcpServer && !options.omitCursorRule) {\n console.log(chalk.bold('=> ✨ Orionjs AI is ready\\n'))\n }\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport {runProd} from './runProd'\nimport {checkTs} from './checkTs'\n\nexport default async function (_, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Prod mode\\n`))\n\n checkTs()\n runProd(command)\n}\n","import {spawn} from 'node:child_process'\n\nexport function runProd(command: any) {\n const args = [...command.args, './app/index.ts']\n spawn('tsx', 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'\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'\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 {build} from './build'\nimport cleanDirectory from '../dev/watchAndCompile/cleanDirectory'\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 build(options)\n\n console.log(chalk.bold('Build successful'))\n}\n","import {typecheckPlugin} from '@jgoz/esbuild-plugin-typecheck'\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 plugins: [typecheckPlugin()],\n })\n}\n"],"mappings":"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","names":["import_chalk","import_node_fs","path","fs","path","fs","import_node_child_process","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_node_fs","import_node_path","path","chokidar","fs","import_chalk","import_chokidar","chokidar","chalk","ts","import_node_path","import_chalk","https","path","fs","chalk","import_promises","import_node_path","import_chalk","import_promises","import_node_path","import_chalk","fs","path","chalk","path","fs","chalk","import_chalk","chalk","import_chalk","import_node_child_process","import_chalk","import_node_child_process","chalk","chalk","import_chalk","chalk","import_chalk","import_chalk","import_node_child_process","checkTs","chalk","chalk","checkTs","import_chalk","build","chalk","build","chalk"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/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/watchDeletes.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/dev/copyCursorRule/index.ts","../src/dev/copyMCP/index.ts","../src/dev/copyMCP/consts.ts","../src/dev/copyMCP/isValidMCPRepo.ts","../src/dev/index.ts","../src/prod/index.ts","../src/prod/runProd.ts","../src/build/index.ts","../src/build/build.ts","../src/build/checkTs.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.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 check from './check'\nimport build from './build'\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('--shell', 'Opens a shell in Chrome developer tools')\n .option('--omit-cursor-rule', 'Omit the creation of the Orionjs Cursor rule')\n .option('--omit-mcp-server', 'Omit the creation of the Orionjs MCP server')\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(\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.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 writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n // option to omit the creation of the orion cursor rule\n omitCursorRule?: boolean\n // omit the creation of the orion mcp server\n omitMcpServer?: boolean\n}\n\nexport interface Runner {\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 start = () => {\n console.log(chalk.bold('=> Starting app...\\n'))\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 }\n }\n\n const restart = () => {\n stop()\n start()\n }\n\n return {\n restart,\n stop,\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 {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from '.'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n let startCommand = process.env.START_COMMAND || 'tsx'\n\n const args = []\n\n if (process.env.START_COMMAND) {\n const [first, ...otherArgs] = process.env.START_COMMAND.split(' ')\n startCommand = first\n args.push(...otherArgs)\n\n console.log(`Using custom command: ${[startCommand, ...args].join(' ')}`)\n } else if (options.shell) {\n args.push('--inspect')\n }\n\n args.push(...command.args)\n\n args.push('./app/index.ts')\n\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchDeletes} from './watchDeletes'\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 watchDeletes()\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 const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n\n if (diagnostic.code === 6032 || diagnostic.code === 6031) {\n runner.stop()\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText}`))\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 return\n }\n }\n\n runner.restart()\n }\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 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 fs from 'node:fs'\nimport path from 'node:path'\nimport chokidar from 'chokidar'\n\nexport async function watchDeletes() {\n const projectPath = path.resolve('./app')\n const watcher = chokidar.watch(projectPath, {\n ignoreInitial: true,\n })\n\n watcher.on('unlink', async filepath => {\n if (!filepath.endsWith('.ts')) return\n\n const relative = path.relative(process.cwd(), filepath)\n const atBuildPath = path.resolve('.orion/build', relative.replace(/.ts$/, ''))\n try {\n fs.unlinkSync(`${atBuildPath}.js`)\n fs.unlinkSync(`${atBuildPath}.d.ts`)\n } catch (error) {\n console.log(\n `Error cleaning ${atBuildPath}. Restar project is suggested. Error: ${error.message}`,\n )\n }\n })\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 fs from 'node:fs/promises'\nimport https from 'node:https'\nimport path from 'node:path'\nimport chalk from 'chalk'\n\nconst rules = [\n 'orionjs.mdx',\n 'orionjs-component.mdx',\n 'orionjs-repository.mdx',\n 'orionjs-schema.mdx',\n 'orionjs-services.mdx',\n 'orionjs-resolvers.mdx',\n 'orionjs-tov4.mdx',\n]\n\n// Function to download the file content\nconst downloadFile = (url: string): Promise<string> => {\n return new Promise((resolve, reject) => {\n https.get(url, response => {\n if (response.statusCode !== 200) {\n reject(new Error(`Failed to download, status code: ${response.statusCode}`))\n return\n }\n\n let data = ''\n response.on('data', chunk => {\n data += chunk\n })\n response.on('end', () => {\n resolve(data)\n })\n response.on('error', err => {\n reject(err)\n })\n })\n })\n}\n\nexport async function copyCursorRule() {\n const baseUrl = 'https://raw.githubusercontent.com/orionjs/orionjs/refs/heads/master/mdc'\n\n try {\n // Create target directory if it doesn't exist\n const targetDir = path.join(process.cwd(), '.cursor', 'rules')\n await fs.mkdir(targetDir, {recursive: true})\n\n // Process each rule file\n await Promise.all(\n rules.map(async rule => {\n // Change extension from .mdx to .mdc\n const targetFileName = rule.replace('.mdx', '.mdc')\n const targetFile = path.join(targetDir, targetFileName)\n\n // Construct source URL\n const sourceUrl = `${baseUrl}/${rule}`\n\n // console.log(chalk.gray(`=> ✨ Downloading ${chalk.cyan(rule)} to ${chalk.cyan(targetFileName)}...`))\n\n // Download the file content\n const content = await downloadFile(sourceUrl)\n\n // Write the content to the target file\n await fs.writeFile(targetFile, content, 'utf8')\n\n console.log(chalk.bold(`=> ✨ Successfully downloaded ${chalk.cyan(targetFileName)}`))\n }),\n )\n\n console.log(chalk.bold('=> ✨ All rule files have been successfully copied'))\n } catch (error) {\n console.error(chalk.red(`Error copying rule files: ${error.message}`))\n }\n}\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport execute from '../../helpers/execute'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\nimport {isValidMCPRepository} from './isValidMCPRepo'\n\nexport async function copyMCP() {\n const repoUrl = 'https://github.com/orionjs/mcp-docs'\n const targetDir = path.join(process.cwd(), '.orion', 'mcp')\n\n try {\n // Ensure parent directory exists\n await fs.mkdir(path.join(process.cwd(), '.orion'), {recursive: true})\n\n // Check if the repository is already properly installed with current version\n if (await isValidMCPRepository(targetDir)) {\n console.log(chalk.bold('=> ✨ MCP documentation already installed'))\n return\n }\n\n // Check if the directory already exists but is not a valid repository or has outdated version\n try {\n const stats = await fs.stat(targetDir)\n if (stats.isDirectory()) {\n // Directory exists, remove it first to ensure fresh clone\n await fs.rm(targetDir, {recursive: true, force: true})\n console.log(\n chalk.bold(\n '=> ✨ Removed existing .orion/mcp directory (invalid, incomplete, or outdated)',\n ),\n )\n }\n } catch (_) {\n // Directory doesn't exist, which is fine\n }\n\n // Clone the repository\n console.log(chalk.bold(`=> ✨ Downloading MCP documentation ${MCP_VERSION}...`))\n await execute(`git clone ${repoUrl} ${targetDir}`)\n\n // Remove git directory to avoid confusion\n await execute(`rm -rf ${path.join(targetDir, '.git')}`)\n\n // Create version file\n await fs.writeFile(path.join(targetDir, VERSION_FILE), MCP_VERSION, 'utf-8')\n\n console.log(\n chalk.bold(`=> ✨ Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`),\n )\n\n // Install dependencies in the MCP directory\n console.log(chalk.bold('=> ✨ Installing MCP dependencies...'))\n await execute(`cd ${targetDir} && npm install`)\n console.log(chalk.bold('=> ✨ Successfully installed MCP dependencies'))\n\n const relativePath = path.relative(process.cwd(), targetDir)\n console.log(relativePath)\n const mcpServerConfig = {\n mcpServers: {\n 'Orionjs documentation search': {\n command: 'node',\n args: [`./${path.join(relativePath, 'src', 'index.js')}`],\n },\n },\n }\n\n const configPath = path.join(process.cwd(), '.cursor', 'mcp.json')\n\n // Check if the config file exists\n try {\n // Try to read existing config file\n const existingConfig = await fs.readFile(configPath, 'utf-8')\n const parsedConfig = JSON.parse(existingConfig)\n\n // Update the mcpServers section while preserving other settings\n parsedConfig.mcpServers = {\n ...parsedConfig.mcpServers,\n ...mcpServerConfig.mcpServers,\n }\n\n // Write the updated config back\n await fs.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Updated MCP server configuration in .cursor/mcp.json'))\n } catch (_) {\n // If file doesn't exist or can't be parsed, create a new one\n // Ensure the .cursor directory exists\n await fs.mkdir(path.dirname(configPath), {recursive: true})\n\n // Write the new config file\n await fs.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Created new MCP server configuration in .cursor/mcp.json'))\n }\n } catch (error) {\n console.error(chalk.red('=> ✨ Error copying MCP documentation:'), error)\n throw error\n }\n}\n","// Define current MCP version - update this when a new version needs to be deployed\nexport const MCP_VERSION = 'v4'\nexport const VERSION_FILE = 'version.txt'\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\n\n/**\n * Checks if the MCP repository appears to be already installed correctly\n * and has the current version\n */\nexport async function isValidMCPRepository(directoryPath: string): Promise<boolean> {\n try {\n // Check if directory exists\n const stats = await fs.stat(directoryPath)\n if (!stats.isDirectory()) return false\n\n // Check for some key files/directories that should exist in the repository\n // This helps verify it's a valid repository and not just an empty or corrupted directory\n const expectedFiles = ['settings.js', 'package.json']\n\n for (const file of expectedFiles) {\n try {\n await fs.access(path.join(directoryPath, file))\n } catch {\n // If any expected file doesn't exist, consider the repository invalid\n return false\n }\n }\n\n // Check if version file exists and has the correct version\n try {\n const versionPath = path.join(directoryPath, VERSION_FILE)\n const versionContent = await fs.readFile(versionPath, 'utf-8')\n\n // If the version in the file doesn't match the current version,\n // consider the repository outdated\n if (versionContent.trim() !== MCP_VERSION) {\n console.log(\n chalk.yellow(\n `=> ✨ MCP version mismatch: installed=${versionContent.trim()}, required=${MCP_VERSION}`,\n ),\n )\n return false\n }\n } catch {\n // Version file doesn't exist or can't be read\n return false\n }\n\n // All checks passed, consider it a valid and current repository\n return true\n } catch {\n // Any error means directory doesn't exist or can't be accessed\n return false\n }\n}\n","import {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\nimport {copyCursorRule} from './copyCursorRule'\nimport {copyMCP} from './copyMCP'\nimport chalk from 'chalk'\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 if (!options.omitCursorRule) {\n await copyCursorRule().catch(console.error)\n }\n\n if (!options.omitMcpServer) {\n await copyMCP().catch(console.error)\n }\n\n if (!options.omitMcpServer && !options.omitCursorRule) {\n console.log(chalk.bold('=> ✨ Orionjs AI is ready\\n'))\n }\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport {runProd} from './runProd'\nimport build from '../build'\n\nexport interface ProdOptions {\n path?: string\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.path) {\n await build({output: './build'})\n options.path = './build'\n }\n\n runProd(options, command)\n}\n","import {spawn} from 'node:child_process'\nimport {ProdOptions} from './index'\n\nexport function runProd(options: ProdOptions, command: any) {\n const indexPath = `${options.path}/index.js`\n\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}\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 Promise.all([checkTs(), 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 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"],"mappings":"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","names":["import_chalk","import_node_fs","path","fs","path","fs","import_node_child_process","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_node_fs","import_node_path","path","chokidar","fs","import_chalk","import_chokidar","chokidar","chalk","ts","import_node_path","import_chalk","https","path","fs","chalk","import_promises","import_node_path","import_chalk","import_promises","import_node_path","import_chalk","fs","path","chalk","path","fs","chalk","import_chalk","chalk","import_chalk","import_node_child_process","import_chalk","import_chalk","build","chalk","import_chalk","import_node_child_process","chalk","chalk","build","chalk","import_chalk","chalk","import_chalk","import_chalk","import_node_child_process","checkTs","chalk","chalk","checkTs","chalk"]}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// src/index.ts
|
|
4
|
-
import
|
|
4
|
+
import chalk15 from "chalk";
|
|
5
5
|
import { Command } from "commander";
|
|
6
6
|
|
|
7
7
|
// src/helpers/execute.ts
|
|
@@ -473,13 +473,14 @@ Orionjs App ${chalk7.green(chalk7.bold("V4"))} Dev mode
|
|
|
473
473
|
}
|
|
474
474
|
|
|
475
475
|
// src/prod/index.ts
|
|
476
|
-
import
|
|
476
|
+
import chalk11 from "chalk";
|
|
477
477
|
|
|
478
478
|
// src/prod/runProd.ts
|
|
479
479
|
import { spawn as spawn2 } from "child_process";
|
|
480
|
-
function runProd(command) {
|
|
481
|
-
const
|
|
482
|
-
|
|
480
|
+
function runProd(options, command) {
|
|
481
|
+
const indexPath = `${options.path}/index.js`;
|
|
482
|
+
const args = ["--import=tsx", ...command.args, indexPath];
|
|
483
|
+
spawn2("node", args, {
|
|
483
484
|
env: {
|
|
484
485
|
NODE_ENV: "production",
|
|
485
486
|
...process.env
|
|
@@ -492,46 +493,89 @@ function runProd(command) {
|
|
|
492
493
|
});
|
|
493
494
|
}
|
|
494
495
|
|
|
495
|
-
// src/
|
|
496
|
+
// src/build/index.ts
|
|
497
|
+
import chalk10 from "chalk";
|
|
498
|
+
|
|
499
|
+
// src/build/build.ts
|
|
496
500
|
import chalk8 from "chalk";
|
|
497
|
-
import
|
|
498
|
-
function
|
|
501
|
+
import * as esbuild from "esbuild";
|
|
502
|
+
async function build2(options) {
|
|
503
|
+
const { output } = options;
|
|
504
|
+
console.log(`Building with esbuild to ${output}`);
|
|
505
|
+
await esbuild.build({
|
|
506
|
+
entryPoints: ["./app/index.ts"],
|
|
507
|
+
tsconfig: "./tsconfig.json",
|
|
508
|
+
format: "esm",
|
|
509
|
+
platform: "node",
|
|
510
|
+
outdir: output,
|
|
511
|
+
bundle: true,
|
|
512
|
+
target: "node22",
|
|
513
|
+
sourcemap: true,
|
|
514
|
+
allowOverwrite: true,
|
|
515
|
+
minify: true,
|
|
516
|
+
packages: "external"
|
|
517
|
+
});
|
|
518
|
+
console.log(chalk8.green.bold("Build successful"));
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// src/build/checkTs.ts
|
|
522
|
+
import chalk9 from "chalk";
|
|
523
|
+
import { exec as exec2 } from "child_process";
|
|
524
|
+
import { promisify } from "util";
|
|
525
|
+
var execPromise = promisify(exec2);
|
|
526
|
+
async function checkTs() {
|
|
499
527
|
try {
|
|
500
|
-
|
|
528
|
+
console.log("Checking TypeScript...");
|
|
529
|
+
await execPromise("tsc --noEmit", {
|
|
501
530
|
cwd: process.cwd(),
|
|
502
531
|
env: {
|
|
503
532
|
...process.env
|
|
504
533
|
},
|
|
505
534
|
gid: process.getgid(),
|
|
506
|
-
uid: process.getuid()
|
|
507
|
-
stdio: "inherit"
|
|
535
|
+
uid: process.getuid()
|
|
508
536
|
});
|
|
509
|
-
|
|
510
|
-
|
|
537
|
+
console.log(chalk9.green.bold("TypeScript check passed"));
|
|
538
|
+
} catch (error) {
|
|
539
|
+
console.log(chalk9.red.bold("TypeScript compilation failed"));
|
|
540
|
+
console.log(error.stderr || error.stdout || error.message);
|
|
511
541
|
process.exit(1);
|
|
512
542
|
}
|
|
513
543
|
}
|
|
514
544
|
|
|
545
|
+
// src/build/index.ts
|
|
546
|
+
async function build_default(options) {
|
|
547
|
+
console.log(chalk10.bold(`Building Orionjs App ${chalk10.green(chalk10.bold("V4"))}...`));
|
|
548
|
+
if (!options.output) {
|
|
549
|
+
options.output = "./build";
|
|
550
|
+
}
|
|
551
|
+
await cleanDirectory(options.output);
|
|
552
|
+
await Promise.all([checkTs(), build2(options)]);
|
|
553
|
+
console.log(chalk10.bold("Build completed"));
|
|
554
|
+
}
|
|
555
|
+
|
|
515
556
|
// src/prod/index.ts
|
|
516
|
-
async function prod_default(
|
|
517
|
-
console.log(
|
|
518
|
-
Orionjs App ${
|
|
557
|
+
async function prod_default(options, command) {
|
|
558
|
+
console.log(chalk11.bold(`
|
|
559
|
+
Orionjs App ${chalk11.green(chalk11.bold("V4"))} Prod mode
|
|
519
560
|
`));
|
|
520
|
-
|
|
521
|
-
|
|
561
|
+
if (!options.path) {
|
|
562
|
+
await build_default({ output: "./build" });
|
|
563
|
+
options.path = "./build";
|
|
564
|
+
}
|
|
565
|
+
runProd(options, command);
|
|
522
566
|
}
|
|
523
567
|
|
|
524
568
|
// src/handleErrors.ts
|
|
525
|
-
import
|
|
569
|
+
import chalk12 from "chalk";
|
|
526
570
|
process.on("unhandledRejection", (error) => {
|
|
527
571
|
if (error.codeFrame) {
|
|
528
|
-
console.error(
|
|
572
|
+
console.error(chalk12.red(error.message));
|
|
529
573
|
console.log(error.codeFrame);
|
|
530
574
|
} else {
|
|
531
|
-
console.error(
|
|
575
|
+
console.error(chalk12.red(error.message), chalk12.red("Unhandled promise rejection"));
|
|
532
576
|
}
|
|
533
577
|
}).on("uncaughtException", (error) => {
|
|
534
|
-
console.error(
|
|
578
|
+
console.error(chalk12.red(error.message));
|
|
535
579
|
process.exit(1);
|
|
536
580
|
});
|
|
537
581
|
|
|
@@ -542,14 +586,14 @@ var version_default = "3.0";
|
|
|
542
586
|
import "dotenv/config";
|
|
543
587
|
|
|
544
588
|
// src/check/index.ts
|
|
545
|
-
import
|
|
589
|
+
import chalk14 from "chalk";
|
|
546
590
|
|
|
547
591
|
// src/check/checkTs.ts
|
|
548
|
-
import
|
|
549
|
-
import { execSync
|
|
592
|
+
import chalk13 from "chalk";
|
|
593
|
+
import { execSync } from "child_process";
|
|
550
594
|
function checkTs2() {
|
|
551
595
|
try {
|
|
552
|
-
|
|
596
|
+
execSync("tsc --noEmit", {
|
|
553
597
|
cwd: process.cwd(),
|
|
554
598
|
env: {
|
|
555
599
|
...process.env
|
|
@@ -559,54 +603,18 @@ function checkTs2() {
|
|
|
559
603
|
stdio: "inherit"
|
|
560
604
|
});
|
|
561
605
|
} catch {
|
|
562
|
-
console.log(
|
|
606
|
+
console.log(chalk13.red.bold("TypeScript compilation failed"));
|
|
563
607
|
process.exit(1);
|
|
564
608
|
}
|
|
565
609
|
}
|
|
566
610
|
|
|
567
611
|
// src/check/index.ts
|
|
568
612
|
async function check_default() {
|
|
569
|
-
console.log(
|
|
613
|
+
console.log(chalk14.bold(`Orionjs App ${chalk14.green(chalk14.bold("V4"))}
|
|
570
614
|
`));
|
|
571
615
|
console.log("Checking typescript...");
|
|
572
616
|
checkTs2();
|
|
573
|
-
console.log(
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
// src/build/index.ts
|
|
577
|
-
import chalk13 from "chalk";
|
|
578
|
-
|
|
579
|
-
// src/build/build.ts
|
|
580
|
-
import { typecheckPlugin } from "@jgoz/esbuild-plugin-typecheck";
|
|
581
|
-
import * as esbuild from "esbuild";
|
|
582
|
-
async function build2(options) {
|
|
583
|
-
const { output } = options;
|
|
584
|
-
console.log(`Building with esbuild to ${output}`);
|
|
585
|
-
await esbuild.build({
|
|
586
|
-
entryPoints: ["./app/index.ts"],
|
|
587
|
-
tsconfig: "./tsconfig.json",
|
|
588
|
-
format: "esm",
|
|
589
|
-
platform: "node",
|
|
590
|
-
outdir: output,
|
|
591
|
-
bundle: true,
|
|
592
|
-
target: "node22",
|
|
593
|
-
sourcemap: true,
|
|
594
|
-
allowOverwrite: true,
|
|
595
|
-
minify: true,
|
|
596
|
-
packages: "external",
|
|
597
|
-
plugins: [typecheckPlugin()]
|
|
598
|
-
});
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
// src/build/index.ts
|
|
602
|
-
async function build_default(options) {
|
|
603
|
-
console.log(chalk13.bold(`Building Orionjs App ${chalk13.green(chalk13.bold("V4"))}...`));
|
|
604
|
-
if (!options.output) {
|
|
605
|
-
options.output = "./build";
|
|
606
|
-
}
|
|
607
|
-
await cleanDirectory(options.output);
|
|
608
|
-
await build2(options);
|
|
609
|
-
console.log(chalk13.bold("Build successful"));
|
|
617
|
+
console.log(chalk14.bold.green("Check passed\n"));
|
|
610
618
|
}
|
|
611
619
|
|
|
612
620
|
// src/index.ts
|
|
@@ -615,13 +623,16 @@ var run = (action) => async (...args) => {
|
|
|
615
623
|
try {
|
|
616
624
|
await action(...args);
|
|
617
625
|
} catch (e) {
|
|
618
|
-
console.error(
|
|
626
|
+
console.error(chalk15.red(`Error: ${e.message}`));
|
|
619
627
|
}
|
|
620
628
|
};
|
|
621
629
|
program.command("dev").description("Run the Orionjs app in development mode").option("--shell", "Opens a shell in Chrome developer tools").option("--omit-cursor-rule", "Omit the creation of the Orionjs Cursor rule").option("--omit-mcp-server", "Omit the creation of the Orionjs MCP server").allowUnknownOption().action(run(dev_default));
|
|
622
630
|
program.command("check").description("Runs a typescript check").action(run(check_default));
|
|
623
631
|
program.command("build").description("Build the Orionjs app for production").option("--output [path]", "Path of the output file").action(run(build_default));
|
|
624
|
-
program.command("prod").allowUnknownOption().
|
|
632
|
+
program.command("prod").allowUnknownOption().option(
|
|
633
|
+
"--path [path]",
|
|
634
|
+
"Path of the compiled Orionjs app. If not provided, the app will be compiled and then run"
|
|
635
|
+
).description("Run the Orionjs app in production mode").action(run(prod_default));
|
|
625
636
|
program.command("create").description("Creates a new Orionjs project").option("--name [name]", "Name of the project").option("--kit [kit]", "Which starter kit to use").action(run(create_default));
|
|
626
637
|
program.version(version_default, "-v --version");
|
|
627
638
|
program.parse(process.argv);
|
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/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/watchDeletes.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/dev/copyCursorRule/index.ts","../src/dev/copyMCP/index.ts","../src/dev/copyMCP/consts.ts","../src/dev/copyMCP/isValidMCPRepo.ts","../src/dev/index.ts","../src/prod/index.ts","../src/prod/runProd.ts","../src/prod/checkTs.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.ts","../src/build/index.ts","../src/build/build.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 check from './check'\nimport build from './build'\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('--shell', 'Opens a shell in Chrome developer tools')\n .option('--omit-cursor-rule', 'Omit the creation of the Orionjs Cursor rule')\n .option('--omit-mcp-server', 'Omit the creation of the Orionjs MCP server')\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 .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.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 writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n // option to omit the creation of the orion cursor rule\n omitCursorRule?: boolean\n // omit the creation of the orion mcp server\n omitMcpServer?: boolean\n}\n\nexport interface Runner {\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 start = () => {\n console.log(chalk.bold('=> Starting app...\\n'))\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 }\n }\n\n const restart = () => {\n stop()\n start()\n }\n\n return {\n restart,\n stop,\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 {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from '.'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n let startCommand = process.env.START_COMMAND || 'tsx'\n\n const args = []\n\n if (process.env.START_COMMAND) {\n const [first, ...otherArgs] = process.env.START_COMMAND.split(' ')\n startCommand = first\n args.push(...otherArgs)\n\n console.log(`Using custom command: ${[startCommand, ...args].join(' ')}`)\n } else if (options.shell) {\n args.push('--inspect')\n }\n\n args.push(...command.args)\n\n args.push('./app/index.ts')\n\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchDeletes} from './watchDeletes'\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 watchDeletes()\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 const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n\n if (diagnostic.code === 6032 || diagnostic.code === 6031) {\n runner.stop()\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText}`))\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 return\n }\n }\n\n runner.restart()\n }\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 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 fs from 'node:fs'\nimport path from 'node:path'\nimport chokidar from 'chokidar'\n\nexport async function watchDeletes() {\n const projectPath = path.resolve('./app')\n const watcher = chokidar.watch(projectPath, {\n ignoreInitial: true,\n })\n\n watcher.on('unlink', async filepath => {\n if (!filepath.endsWith('.ts')) return\n\n const relative = path.relative(process.cwd(), filepath)\n const atBuildPath = path.resolve('.orion/build', relative.replace(/.ts$/, ''))\n try {\n fs.unlinkSync(`${atBuildPath}.js`)\n fs.unlinkSync(`${atBuildPath}.d.ts`)\n } catch (error) {\n console.log(\n `Error cleaning ${atBuildPath}. Restar project is suggested. Error: ${error.message}`,\n )\n }\n })\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 fs from 'node:fs/promises'\nimport https from 'node:https'\nimport path from 'node:path'\nimport chalk from 'chalk'\n\nconst rules = [\n 'orionjs.mdx',\n 'orionjs-component.mdx',\n 'orionjs-repository.mdx',\n 'orionjs-schema.mdx',\n 'orionjs-services.mdx',\n 'orionjs-resolvers.mdx',\n 'orionjs-tov4.mdx',\n]\n\n// Function to download the file content\nconst downloadFile = (url: string): Promise<string> => {\n return new Promise((resolve, reject) => {\n https.get(url, response => {\n if (response.statusCode !== 200) {\n reject(new Error(`Failed to download, status code: ${response.statusCode}`))\n return\n }\n\n let data = ''\n response.on('data', chunk => {\n data += chunk\n })\n response.on('end', () => {\n resolve(data)\n })\n response.on('error', err => {\n reject(err)\n })\n })\n })\n}\n\nexport async function copyCursorRule() {\n const baseUrl = 'https://raw.githubusercontent.com/orionjs/orionjs/refs/heads/master/mdc'\n\n try {\n // Create target directory if it doesn't exist\n const targetDir = path.join(process.cwd(), '.cursor', 'rules')\n await fs.mkdir(targetDir, {recursive: true})\n\n // Process each rule file\n await Promise.all(\n rules.map(async rule => {\n // Change extension from .mdx to .mdc\n const targetFileName = rule.replace('.mdx', '.mdc')\n const targetFile = path.join(targetDir, targetFileName)\n\n // Construct source URL\n const sourceUrl = `${baseUrl}/${rule}`\n\n // console.log(chalk.gray(`=> ✨ Downloading ${chalk.cyan(rule)} to ${chalk.cyan(targetFileName)}...`))\n\n // Download the file content\n const content = await downloadFile(sourceUrl)\n\n // Write the content to the target file\n await fs.writeFile(targetFile, content, 'utf8')\n\n console.log(chalk.bold(`=> ✨ Successfully downloaded ${chalk.cyan(targetFileName)}`))\n }),\n )\n\n console.log(chalk.bold('=> ✨ All rule files have been successfully copied'))\n } catch (error) {\n console.error(chalk.red(`Error copying rule files: ${error.message}`))\n }\n}\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport execute from '../../helpers/execute'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\nimport {isValidMCPRepository} from './isValidMCPRepo'\n\nexport async function copyMCP() {\n const repoUrl = 'https://github.com/orionjs/mcp-docs'\n const targetDir = path.join(process.cwd(), '.orion', 'mcp')\n\n try {\n // Ensure parent directory exists\n await fs.mkdir(path.join(process.cwd(), '.orion'), {recursive: true})\n\n // Check if the repository is already properly installed with current version\n if (await isValidMCPRepository(targetDir)) {\n console.log(chalk.bold('=> ✨ MCP documentation already installed'))\n return\n }\n\n // Check if the directory already exists but is not a valid repository or has outdated version\n try {\n const stats = await fs.stat(targetDir)\n if (stats.isDirectory()) {\n // Directory exists, remove it first to ensure fresh clone\n await fs.rm(targetDir, {recursive: true, force: true})\n console.log(\n chalk.bold(\n '=> ✨ Removed existing .orion/mcp directory (invalid, incomplete, or outdated)',\n ),\n )\n }\n } catch (_) {\n // Directory doesn't exist, which is fine\n }\n\n // Clone the repository\n console.log(chalk.bold(`=> ✨ Downloading MCP documentation ${MCP_VERSION}...`))\n await execute(`git clone ${repoUrl} ${targetDir}`)\n\n // Remove git directory to avoid confusion\n await execute(`rm -rf ${path.join(targetDir, '.git')}`)\n\n // Create version file\n await fs.writeFile(path.join(targetDir, VERSION_FILE), MCP_VERSION, 'utf-8')\n\n console.log(\n chalk.bold(`=> ✨ Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`),\n )\n\n // Install dependencies in the MCP directory\n console.log(chalk.bold('=> ✨ Installing MCP dependencies...'))\n await execute(`cd ${targetDir} && npm install`)\n console.log(chalk.bold('=> ✨ Successfully installed MCP dependencies'))\n\n const relativePath = path.relative(process.cwd(), targetDir)\n console.log(relativePath)\n const mcpServerConfig = {\n mcpServers: {\n 'Orionjs documentation search': {\n command: 'node',\n args: [`./${path.join(relativePath, 'src', 'index.js')}`],\n },\n },\n }\n\n const configPath = path.join(process.cwd(), '.cursor', 'mcp.json')\n\n // Check if the config file exists\n try {\n // Try to read existing config file\n const existingConfig = await fs.readFile(configPath, 'utf-8')\n const parsedConfig = JSON.parse(existingConfig)\n\n // Update the mcpServers section while preserving other settings\n parsedConfig.mcpServers = {\n ...parsedConfig.mcpServers,\n ...mcpServerConfig.mcpServers,\n }\n\n // Write the updated config back\n await fs.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Updated MCP server configuration in .cursor/mcp.json'))\n } catch (_) {\n // If file doesn't exist or can't be parsed, create a new one\n // Ensure the .cursor directory exists\n await fs.mkdir(path.dirname(configPath), {recursive: true})\n\n // Write the new config file\n await fs.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Created new MCP server configuration in .cursor/mcp.json'))\n }\n } catch (error) {\n console.error(chalk.red('=> ✨ Error copying MCP documentation:'), error)\n throw error\n }\n}\n","// Define current MCP version - update this when a new version needs to be deployed\nexport const MCP_VERSION = 'v4'\nexport const VERSION_FILE = 'version.txt'\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\n\n/**\n * Checks if the MCP repository appears to be already installed correctly\n * and has the current version\n */\nexport async function isValidMCPRepository(directoryPath: string): Promise<boolean> {\n try {\n // Check if directory exists\n const stats = await fs.stat(directoryPath)\n if (!stats.isDirectory()) return false\n\n // Check for some key files/directories that should exist in the repository\n // This helps verify it's a valid repository and not just an empty or corrupted directory\n const expectedFiles = ['settings.js', 'package.json']\n\n for (const file of expectedFiles) {\n try {\n await fs.access(path.join(directoryPath, file))\n } catch {\n // If any expected file doesn't exist, consider the repository invalid\n return false\n }\n }\n\n // Check if version file exists and has the correct version\n try {\n const versionPath = path.join(directoryPath, VERSION_FILE)\n const versionContent = await fs.readFile(versionPath, 'utf-8')\n\n // If the version in the file doesn't match the current version,\n // consider the repository outdated\n if (versionContent.trim() !== MCP_VERSION) {\n console.log(\n chalk.yellow(\n `=> ✨ MCP version mismatch: installed=${versionContent.trim()}, required=${MCP_VERSION}`,\n ),\n )\n return false\n }\n } catch {\n // Version file doesn't exist or can't be read\n return false\n }\n\n // All checks passed, consider it a valid and current repository\n return true\n } catch {\n // Any error means directory doesn't exist or can't be accessed\n return false\n }\n}\n","import {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\nimport {copyCursorRule} from './copyCursorRule'\nimport {copyMCP} from './copyMCP'\nimport chalk from 'chalk'\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 if (!options.omitCursorRule) {\n await copyCursorRule().catch(console.error)\n }\n\n if (!options.omitMcpServer) {\n await copyMCP().catch(console.error)\n }\n\n if (!options.omitMcpServer && !options.omitCursorRule) {\n console.log(chalk.bold('=> ✨ Orionjs AI is ready\\n'))\n }\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport {runProd} from './runProd'\nimport {checkTs} from './checkTs'\n\nexport default async function (_, command: any) {\n console.log(chalk.bold(`\\nOrionjs App ${chalk.green(chalk.bold('V4'))} Prod mode\\n`))\n\n checkTs()\n runProd(command)\n}\n","import {spawn} from 'node:child_process'\n\nexport function runProd(command: any) {\n const args = [...command.args, './app/index.ts']\n spawn('tsx', 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'\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'\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 {build} from './build'\nimport cleanDirectory from '../dev/watchAndCompile/cleanDirectory'\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 build(options)\n\n console.log(chalk.bold('Build successful'))\n}\n","import {typecheckPlugin} from '@jgoz/esbuild-plugin-typecheck'\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 plugins: [typecheckPlugin()],\n })\n}\n"],"mappings":"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","names":["chalk","fs","path","fs","ts","fs","path","ts","fs","ts","chalk","ts","fs","path","chalk","chokidar","ts","fs","path","chalk","fs","path","chalk","fs","path","chalk","fs","path","chalk","path","fs","chalk","chalk","chalk","spawn","chalk","chalk","chalk","chalk","chalk","execSync","checkTs","chalk","checkTs","chalk","build","chalk","build","chalk"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/helpers/execute.ts","../src/create/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/watchDeletes.ts","../src/dev/watchAndCompile/writeEnvFile.ts","../src/dev/copyCursorRule/index.ts","../src/dev/copyMCP/index.ts","../src/dev/copyMCP/consts.ts","../src/dev/copyMCP/isValidMCPRepo.ts","../src/dev/index.ts","../src/prod/index.ts","../src/prod/runProd.ts","../src/build/index.ts","../src/build/build.ts","../src/build/checkTs.ts","../src/handleErrors.ts","../src/version.ts","../src/check/index.ts","../src/check/checkTs.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 check from './check'\nimport build from './build'\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('--shell', 'Opens a shell in Chrome developer tools')\n .option('--omit-cursor-rule', 'Omit the creation of the Orionjs Cursor rule')\n .option('--omit-mcp-server', 'Omit the creation of the Orionjs MCP server')\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(\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.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 writeFile from '../../helpers/writeFile'\nimport {startProcess} from './startProcess'\n\nexport interface RunnerOptions {\n shell: boolean\n clean: boolean\n // option to omit the creation of the orion cursor rule\n omitCursorRule?: boolean\n // omit the creation of the orion mcp server\n omitMcpServer?: boolean\n}\n\nexport interface Runner {\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 start = () => {\n console.log(chalk.bold('=> Starting app...\\n'))\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 }\n }\n\n const restart = () => {\n stop()\n start()\n }\n\n return {\n restart,\n stop,\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 {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\n cwd: process.cwd(),\n stdio: 'inherit',\n detached: false,\n })\n}\n","import {RunnerOptions} from '.'\n\nexport function getArgs(options: RunnerOptions, command: any) {\n let startCommand = process.env.START_COMMAND || 'tsx'\n\n const args = []\n\n if (process.env.START_COMMAND) {\n const [first, ...otherArgs] = process.env.START_COMMAND.split(' ')\n startCommand = first\n args.push(...otherArgs)\n\n console.log(`Using custom command: ${[startCommand, ...args].join(' ')}`)\n } else if (options.shell) {\n args.push('--inspect')\n }\n\n args.push(...command.args)\n\n args.push('./app/index.ts')\n\n return {startCommand, args}\n}\n","import ts from 'typescript'\nimport {Runner} from '../runner'\nimport cleanDirectory from './cleanDirectory'\nimport {getHost} from './getHost'\nimport {watchDeletes} from './watchDeletes'\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 watchDeletes()\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 const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n\n if (diagnostic.code === 6032 || diagnostic.code === 6031) {\n runner.stop()\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText}`))\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 return\n }\n }\n\n runner.restart()\n }\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 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 fs from 'node:fs'\nimport path from 'node:path'\nimport chokidar from 'chokidar'\n\nexport async function watchDeletes() {\n const projectPath = path.resolve('./app')\n const watcher = chokidar.watch(projectPath, {\n ignoreInitial: true,\n })\n\n watcher.on('unlink', async filepath => {\n if (!filepath.endsWith('.ts')) return\n\n const relative = path.relative(process.cwd(), filepath)\n const atBuildPath = path.resolve('.orion/build', relative.replace(/.ts$/, ''))\n try {\n fs.unlinkSync(`${atBuildPath}.js`)\n fs.unlinkSync(`${atBuildPath}.d.ts`)\n } catch (error) {\n console.log(\n `Error cleaning ${atBuildPath}. Restar project is suggested. Error: ${error.message}`,\n )\n }\n })\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 fs from 'node:fs/promises'\nimport https from 'node:https'\nimport path from 'node:path'\nimport chalk from 'chalk'\n\nconst rules = [\n 'orionjs.mdx',\n 'orionjs-component.mdx',\n 'orionjs-repository.mdx',\n 'orionjs-schema.mdx',\n 'orionjs-services.mdx',\n 'orionjs-resolvers.mdx',\n 'orionjs-tov4.mdx',\n]\n\n// Function to download the file content\nconst downloadFile = (url: string): Promise<string> => {\n return new Promise((resolve, reject) => {\n https.get(url, response => {\n if (response.statusCode !== 200) {\n reject(new Error(`Failed to download, status code: ${response.statusCode}`))\n return\n }\n\n let data = ''\n response.on('data', chunk => {\n data += chunk\n })\n response.on('end', () => {\n resolve(data)\n })\n response.on('error', err => {\n reject(err)\n })\n })\n })\n}\n\nexport async function copyCursorRule() {\n const baseUrl = 'https://raw.githubusercontent.com/orionjs/orionjs/refs/heads/master/mdc'\n\n try {\n // Create target directory if it doesn't exist\n const targetDir = path.join(process.cwd(), '.cursor', 'rules')\n await fs.mkdir(targetDir, {recursive: true})\n\n // Process each rule file\n await Promise.all(\n rules.map(async rule => {\n // Change extension from .mdx to .mdc\n const targetFileName = rule.replace('.mdx', '.mdc')\n const targetFile = path.join(targetDir, targetFileName)\n\n // Construct source URL\n const sourceUrl = `${baseUrl}/${rule}`\n\n // console.log(chalk.gray(`=> ✨ Downloading ${chalk.cyan(rule)} to ${chalk.cyan(targetFileName)}...`))\n\n // Download the file content\n const content = await downloadFile(sourceUrl)\n\n // Write the content to the target file\n await fs.writeFile(targetFile, content, 'utf8')\n\n console.log(chalk.bold(`=> ✨ Successfully downloaded ${chalk.cyan(targetFileName)}`))\n }),\n )\n\n console.log(chalk.bold('=> ✨ All rule files have been successfully copied'))\n } catch (error) {\n console.error(chalk.red(`Error copying rule files: ${error.message}`))\n }\n}\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport execute from '../../helpers/execute'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\nimport {isValidMCPRepository} from './isValidMCPRepo'\n\nexport async function copyMCP() {\n const repoUrl = 'https://github.com/orionjs/mcp-docs'\n const targetDir = path.join(process.cwd(), '.orion', 'mcp')\n\n try {\n // Ensure parent directory exists\n await fs.mkdir(path.join(process.cwd(), '.orion'), {recursive: true})\n\n // Check if the repository is already properly installed with current version\n if (await isValidMCPRepository(targetDir)) {\n console.log(chalk.bold('=> ✨ MCP documentation already installed'))\n return\n }\n\n // Check if the directory already exists but is not a valid repository or has outdated version\n try {\n const stats = await fs.stat(targetDir)\n if (stats.isDirectory()) {\n // Directory exists, remove it first to ensure fresh clone\n await fs.rm(targetDir, {recursive: true, force: true})\n console.log(\n chalk.bold(\n '=> ✨ Removed existing .orion/mcp directory (invalid, incomplete, or outdated)',\n ),\n )\n }\n } catch (_) {\n // Directory doesn't exist, which is fine\n }\n\n // Clone the repository\n console.log(chalk.bold(`=> ✨ Downloading MCP documentation ${MCP_VERSION}...`))\n await execute(`git clone ${repoUrl} ${targetDir}`)\n\n // Remove git directory to avoid confusion\n await execute(`rm -rf ${path.join(targetDir, '.git')}`)\n\n // Create version file\n await fs.writeFile(path.join(targetDir, VERSION_FILE), MCP_VERSION, 'utf-8')\n\n console.log(\n chalk.bold(`=> ✨ Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`),\n )\n\n // Install dependencies in the MCP directory\n console.log(chalk.bold('=> ✨ Installing MCP dependencies...'))\n await execute(`cd ${targetDir} && npm install`)\n console.log(chalk.bold('=> ✨ Successfully installed MCP dependencies'))\n\n const relativePath = path.relative(process.cwd(), targetDir)\n console.log(relativePath)\n const mcpServerConfig = {\n mcpServers: {\n 'Orionjs documentation search': {\n command: 'node',\n args: [`./${path.join(relativePath, 'src', 'index.js')}`],\n },\n },\n }\n\n const configPath = path.join(process.cwd(), '.cursor', 'mcp.json')\n\n // Check if the config file exists\n try {\n // Try to read existing config file\n const existingConfig = await fs.readFile(configPath, 'utf-8')\n const parsedConfig = JSON.parse(existingConfig)\n\n // Update the mcpServers section while preserving other settings\n parsedConfig.mcpServers = {\n ...parsedConfig.mcpServers,\n ...mcpServerConfig.mcpServers,\n }\n\n // Write the updated config back\n await fs.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Updated MCP server configuration in .cursor/mcp.json'))\n } catch (_) {\n // If file doesn't exist or can't be parsed, create a new one\n // Ensure the .cursor directory exists\n await fs.mkdir(path.dirname(configPath), {recursive: true})\n\n // Write the new config file\n await fs.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), 'utf-8')\n console.log(chalk.bold('=> ✨ Created new MCP server configuration in .cursor/mcp.json'))\n }\n } catch (error) {\n console.error(chalk.red('=> ✨ Error copying MCP documentation:'), error)\n throw error\n }\n}\n","// Define current MCP version - update this when a new version needs to be deployed\nexport const MCP_VERSION = 'v4'\nexport const VERSION_FILE = 'version.txt'\n","import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport chalk from 'chalk'\nimport {MCP_VERSION, VERSION_FILE} from './consts'\n\n/**\n * Checks if the MCP repository appears to be already installed correctly\n * and has the current version\n */\nexport async function isValidMCPRepository(directoryPath: string): Promise<boolean> {\n try {\n // Check if directory exists\n const stats = await fs.stat(directoryPath)\n if (!stats.isDirectory()) return false\n\n // Check for some key files/directories that should exist in the repository\n // This helps verify it's a valid repository and not just an empty or corrupted directory\n const expectedFiles = ['settings.js', 'package.json']\n\n for (const file of expectedFiles) {\n try {\n await fs.access(path.join(directoryPath, file))\n } catch {\n // If any expected file doesn't exist, consider the repository invalid\n return false\n }\n }\n\n // Check if version file exists and has the correct version\n try {\n const versionPath = path.join(directoryPath, VERSION_FILE)\n const versionContent = await fs.readFile(versionPath, 'utf-8')\n\n // If the version in the file doesn't match the current version,\n // consider the repository outdated\n if (versionContent.trim() !== MCP_VERSION) {\n console.log(\n chalk.yellow(\n `=> ✨ MCP version mismatch: installed=${versionContent.trim()}, required=${MCP_VERSION}`,\n ),\n )\n return false\n }\n } catch {\n // Version file doesn't exist or can't be read\n return false\n }\n\n // All checks passed, consider it a valid and current repository\n return true\n } catch {\n // Any error means directory doesn't exist or can't be accessed\n return false\n }\n}\n","import {getRunner, RunnerOptions} from './runner'\nimport watchAndCompile from './watchAndCompile'\nimport {copyCursorRule} from './copyCursorRule'\nimport {copyMCP} from './copyMCP'\nimport chalk from 'chalk'\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 if (!options.omitCursorRule) {\n await copyCursorRule().catch(console.error)\n }\n\n if (!options.omitMcpServer) {\n await copyMCP().catch(console.error)\n }\n\n if (!options.omitMcpServer && !options.omitCursorRule) {\n console.log(chalk.bold('=> ✨ Orionjs AI is ready\\n'))\n }\n\n const runner = getRunner(options, command)\n\n watchAndCompile(runner)\n}\n","import chalk from 'chalk'\nimport {runProd} from './runProd'\nimport build from '../build'\n\nexport interface ProdOptions {\n path?: string\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.path) {\n await build({output: './build'})\n options.path = './build'\n }\n\n runProd(options, command)\n}\n","import {spawn} from 'node:child_process'\nimport {ProdOptions} from './index'\n\nexport function runProd(options: ProdOptions, command: any) {\n const indexPath = `${options.path}/index.js`\n\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}\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 Promise.all([checkTs(), 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 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"],"mappings":"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","names":["chalk","fs","path","fs","ts","fs","path","ts","fs","ts","chalk","ts","fs","path","chalk","chokidar","ts","fs","path","chalk","fs","path","chalk","fs","path","chalk","fs","path","chalk","path","fs","chalk","chalk","chalk","spawn","chalk","chalk","build","chalk","exec","chalk","build","chalk","chalk","chalk","chalk","checkTs","chalk","checkTs","chalk"]}
|