@orion-js/core 4.1.4 → 4.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -314,6 +314,7 @@ var import_chalk5 = __toESM(require("chalk"), 1);
314
314
  var rules = [
315
315
  "orionjs.mdx",
316
316
  "orionjs-component.mdx",
317
+ "orionjs-migrations.mdx",
317
318
  "orionjs-repository.mdx",
318
319
  "orionjs-schema.mdx",
319
320
  "orionjs-services.mdx",
@@ -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/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('--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 start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\nimport chalk from 'chalk'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\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 const startCommand = 'tsx'\n\n const args = []\n\n args.push('watch', '--clear-screen=false')\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 {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import 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 checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import 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_chalk","import_node_fs","path","fs","path","fs","import_node_child_process","chalk","chalk","import_typescript","import_node_fs","import_node_path","fs","path","import_typescript","import_node_fs","fs","ts","import_typescript","ts","import_chalk","chalk","ts","import_chalk","chokidar","chalk","ts","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"]}
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/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('--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 start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\nimport chalk from 'chalk'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\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 const startCommand = 'tsx'\n\n const args = []\n\n args.push('watch', '--clear-screen=false')\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 {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import 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-migrations.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 checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import 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_chalk","import_node_fs","path","fs","path","fs","import_node_child_process","chalk","chalk","import_typescript","import_node_fs","import_node_path","fs","path","import_typescript","import_node_fs","fs","ts","import_typescript","ts","import_chalk","chalk","ts","import_chalk","chokidar","chalk","ts","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
@@ -292,6 +292,7 @@ import chalk5 from "chalk";
292
292
  var rules = [
293
293
  "orionjs.mdx",
294
294
  "orionjs-component.mdx",
295
+ "orionjs-migrations.mdx",
295
296
  "orionjs-repository.mdx",
296
297
  "orionjs-schema.mdx",
297
298
  "orionjs-services.mdx",
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/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('--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 start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\nimport chalk from 'chalk'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\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 const startCommand = 'tsx'\n\n const args = []\n\n args.push('watch', '--clear-screen=false')\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 {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import 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 checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import 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","chalk","fs","path","fs","chalk","ts","fs","path","ts","fs","ts","chalk","ts","chalk","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"]}
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/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('--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 start: () => void\n restart: () => void\n stop: () => void\n}\n\nexport function getRunner(options: RunnerOptions, command: any): Runner {\n let appProcess = null\n\n if (options.clean) {\n console.log(chalk.bold('=> Cleaning directory...\\n'))\n }\n\n const startApp = () => {\n appProcess = startProcess(options, command)\n\n appProcess.on('exit', (code: number, signal: string) => {\n if (!code || code === 143 || code === 0 || signal === 'SIGTERM' || signal === 'SIGINT') {\n } else {\n console.log(chalk.bold(`=> Error running app. Exit code: ${code}`))\n }\n })\n\n writeFile('.orion/process', `${appProcess.pid}`)\n }\n\n const stop = () => {\n if (appProcess) {\n appProcess.kill()\n appProcess = null\n }\n }\n\n const restart = () => {\n console.log(chalk.bold('=> Restarting app...\\n'))\n stop()\n startApp()\n }\n\n const start = () => {\n // check if the app is already running\n if (appProcess) {\n // console.log(chalk.bold('=> App is already running. Restarting...\\n'))\n } else {\n startApp()\n }\n }\n\n return {\n restart,\n stop,\n start,\n }\n}\n","import fs from 'node:fs'\nimport ensureDirectory from '../helpers/ensureDirectory'\n\nexport default async function (path: string, content: string): Promise<void> {\n ensureDirectory(path)\n fs.writeFileSync(path, content)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\nconst ensureDirectory = filePath => {\n const dirname = path.dirname(filePath)\n if (fs.existsSync(dirname)) return true\n ensureDirectory(dirname)\n fs.mkdirSync(dirname)\n}\n\nexport default ensureDirectory\n","import {spawn} from 'node:child_process'\nimport {getArgs} from './getArgs'\nimport {RunnerOptions} from './index'\nimport chalk from 'chalk'\n\nexport function startProcess(options: RunnerOptions, command: any) {\n const {startCommand, args} = getArgs(options, command)\n\n console.log(chalk.bold(`=> Starting app with command: ${startCommand} ${args.join(' ')}...\\n`))\n return spawn(startCommand, args, {\n env: {\n ORION_DEV: 'local',\n ...process.env,\n },\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 const startCommand = 'tsx'\n\n const args = []\n\n args.push('watch', '--clear-screen=false')\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 {watchEnvFile} from './writeEnvFile'\n\nexport default async function watchAndCompile(runner: Runner) {\n await cleanDirectory()\n const host = getHost(runner)\n ts.createWatchProgram(host)\n watchEnvFile(runner)\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\n\n/**\n * Remove directory recursively\n * @param {string} dir_path\n * @see https://stackoverflow.com/a/42505874/3027390\n */\nfunction rimraf(dir_path: string) {\n if (fs.existsSync(dir_path)) {\n fs.readdirSync(dir_path).map(entry => {\n const entry_path = path.join(dir_path, entry)\n if (fs.lstatSync(entry_path).isDirectory()) {\n rimraf(entry_path)\n } else {\n fs.unlinkSync(entry_path)\n }\n })\n fs.rmdirSync(dir_path)\n }\n}\n\nexport default async function cleanDirectory(directory?: string) {\n try {\n const dirPath = directory ? directory : path.join(process.cwd(), '.orion', 'build')\n rimraf(dirPath)\n } catch (_) {\n // Ignore errors during cleanup\n }\n}\n","import ts from 'typescript'\nimport {getConfigPath} from './getConfigPath'\nimport {reportDiagnostic} from './reports'\nimport {Runner} from '../runner'\nimport chalk from 'chalk'\n\nexport function getHost(runner: Runner) {\n let isStopped = true\n const reportWatchStatusChanged = (diagnostic: ts.Diagnostic) => {\n if (diagnostic.category !== 3) return\n if (diagnostic.code === 6031 || diagnostic.code === 6032) {\n // file change detected, starting compilation\n // console.log(chalk.bold(`=> ${diagnostic.messageText}`))\n return\n }\n\n if (diagnostic.code === 6193) {\n runner.stop()\n isStopped = true\n return\n }\n\n if (diagnostic.code === 6194) {\n /**\n * Sometimes diagnostic code is 6194 even with errors\n */\n if (/^Found .+ errors?/.test(diagnostic.messageText.toString())) {\n if (!diagnostic.messageText.toString().includes('Found 0 errors.')) {\n runner.stop()\n isStopped = true\n return\n }\n }\n\n if (isStopped) {\n isStopped = false\n runner.start()\n }\n return\n }\n\n console.log(chalk.bold(`=> ${diagnostic.messageText} [${diagnostic.code}]`))\n }\n\n const configPath = getConfigPath()\n const createProgram = ts.createEmitAndSemanticDiagnosticsBuilderProgram\n\n const host = ts.createWatchCompilerHost(\n configPath,\n {},\n ts.sys,\n createProgram,\n reportDiagnostic,\n reportWatchStatusChanged,\n )\n\n return host\n}\n","import ts from 'typescript'\nimport {ensureConfigComplies} from './ensureConfigComplies'\n\nexport function getConfigPath() {\n const appBasePath = process.cwd()\n\n const configPath =\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.server.json') ||\n ts.findConfigFile(appBasePath, ts.sys.fileExists, 'tsconfig.json')\n\n if (!configPath) {\n throw new Error(\"Could not find a valid 'tsconfig.json'.\")\n }\n\n ensureConfigComplies(configPath)\n\n return configPath\n}\n","import {parse, stringify} from 'comment-json'\nimport getFileContents from '../../helpers/getFileContents'\nimport writeFile from '../../helpers/writeFile'\n\n// Define TypeScript config interface\ninterface TSConfig {\n compilerOptions?: {\n baseUrl?: string\n rootDir?: string\n rootDirs?: string[]\n [key: string]: any\n }\n [key: string]: any\n}\n\nexport function ensureConfigComplies(configPath: string) {\n try {\n const configJSON = getFileContents(configPath)\n const config = parse(configJSON) as TSConfig\n\n const newConfig = {\n ...config,\n compilerOptions: {\n ...config.compilerOptions,\n baseUrl: './',\n noEmit: true,\n },\n }\n\n if (!config.compilerOptions?.rootDir && !config.compilerOptions?.rootDirs) {\n newConfig.compilerOptions.rootDir = './app'\n }\n\n // are the same, no write\n if (JSON.stringify(config) === JSON.stringify(newConfig)) {\n return\n }\n\n writeFile(configPath, stringify(newConfig, null, 2))\n } catch (error) {\n console.log(`Error reading tsconfig: ${error.message}`)\n }\n}\n","import fs from 'node:fs'\n\nexport default function readFile(filePath: string) {\n if (!fs.existsSync(filePath)) return null\n\n return fs.readFileSync(filePath).toString()\n}\n","import ts from 'typescript'\n\nconst format = {\n getCanonicalFileName: fileName => fileName,\n getCurrentDirectory: () => process.cwd(),\n getNewLine: () => ts.sys.newLine,\n}\nexport function reportDiagnostic(diagnostic: ts.Diagnostic) {\n console.log(ts.formatDiagnosticsWithColorAndContext([diagnostic], format))\n}\n","import {writeDtsFileFromConfigFile} from '@orion-js/env'\nimport chalk from 'chalk'\nimport chokidar from 'chokidar'\nimport {Runner} from '../runner'\n\nconst envFilePath = process.env.ORION_ENV_FILE_PATH\nconst dtsFilePath = './app/env.d.ts'\n\nexport const watchEnvFile = async (runner: Runner) => {\n if (!envFilePath) return\n\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n\n chokidar.watch(envFilePath, {ignoreInitial: true}).on('change', async () => {\n console.log(chalk.bold('=> Environment file changed. Restarting...'))\n writeDtsFileFromConfigFile(envFilePath, dtsFilePath)\n runner.restart()\n })\n}\n","import 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-migrations.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 checkTs()\n await build(options)\n\n console.log(chalk.bold('Build completed'))\n}\n","import chalk from 'chalk'\nimport * as esbuild from 'esbuild'\n\nexport async function build(options: {output?: string}) {\n const {output} = options\n\n console.log(`Building with esbuild to ${output}`)\n\n await esbuild.build({\n entryPoints: ['./app/index.ts'],\n tsconfig: './tsconfig.json',\n format: 'esm',\n platform: 'node',\n outdir: output,\n bundle: true,\n target: 'node22',\n sourcemap: true,\n allowOverwrite: true,\n minify: true,\n packages: 'external',\n })\n\n console.log(chalk.green.bold('Build successful'))\n}\n","import chalk from 'chalk'\nimport {exec} from 'node:child_process'\nimport {promisify} from 'node:util'\n\nconst execPromise = promisify(exec)\n\nexport async function checkTs(): Promise<void> {\n try {\n console.log('Checking TypeScript...')\n await execPromise('tsc --noEmit', {\n cwd: process.cwd(),\n env: {\n ...process.env,\n },\n gid: process.getgid(),\n uid: process.getuid(),\n })\n console.log(chalk.green.bold('TypeScript check passed'))\n } catch (error) {\n console.log(chalk.red.bold('TypeScript compilation failed'))\n console.log(error.stderr || error.stdout || error.message)\n process.exit(1)\n }\n}\n","import 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","chalk","fs","path","fs","chalk","ts","fs","path","ts","fs","ts","chalk","ts","chalk","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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/core",
3
- "version": "4.1.4",
3
+ "version": "4.1.6",
4
4
  "main": "./dist/index.cjs",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [
@@ -22,7 +22,7 @@
22
22
  "prompts": "^2.4.2",
23
23
  "typescript": "^5.4.5",
24
24
  "yaml": "^2.2.1",
25
- "@orion-js/env": "4.1.4"
25
+ "@orion-js/env": "4.1.6"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "tsx": "*",