@orion-js/core 4.2.2 → 4.2.3

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
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
23
  ));
24
24
 
25
25
  // src/index.ts
26
- var import_chalk16 = __toESM(require("chalk"), 1);
26
+ var import_chalk15 = __toESM(require("chalk"), 1);
27
27
  var import_commander = require("commander");
28
28
 
29
29
  // src/helpers/execute.ts
@@ -73,9 +73,9 @@ var ensureDirectory = (filePath) => {
73
73
  var ensureDirectory_default = ensureDirectory;
74
74
 
75
75
  // src/helpers/writeFile.ts
76
- async function writeFile_default(path6, content) {
77
- ensureDirectory_default(path6);
78
- import_node_fs2.default.writeFileSync(path6, content);
76
+ async function writeFile_default(path5, content) {
77
+ ensureDirectory_default(path5);
78
+ import_node_fs2.default.writeFileSync(path5, content);
79
79
  }
80
80
 
81
81
  // src/dev/runner/startProcess.ts
@@ -306,93 +306,37 @@ async function watchAndCompile(runner) {
306
306
  watchEnvFile(runner);
307
307
  }
308
308
 
309
- // src/dev/copyCursorRule/index.ts
310
- var import_promises = __toESM(require("fs/promises"), 1);
311
- var import_node_https = __toESM(require("https"), 1);
312
- var import_node_path3 = __toESM(require("path"), 1);
313
- var import_chalk5 = __toESM(require("chalk"), 1);
314
- var rules = [
315
- "orionjs.mdx",
316
- "orionjs-component.mdx",
317
- "orionjs-migrations.mdx",
318
- "orionjs-repository.mdx",
319
- "orionjs-schema.mdx",
320
- "orionjs-services.mdx",
321
- "orionjs-resolvers.mdx",
322
- "orionjs-tov4.mdx"
323
- ];
324
- var downloadFile = (url) => {
325
- return new Promise((resolve, reject) => {
326
- import_node_https.default.get(url, (response) => {
327
- if (response.statusCode !== 200) {
328
- reject(new Error(`Failed to download, status code: ${response.statusCode}`));
329
- return;
330
- }
331
- let data = "";
332
- response.on("data", (chunk) => {
333
- data += chunk;
334
- });
335
- response.on("end", () => {
336
- resolve(data);
337
- });
338
- response.on("error", (err) => {
339
- reject(err);
340
- });
341
- });
342
- });
343
- };
344
- async function copyCursorRule() {
345
- const baseUrl = "https://raw.githubusercontent.com/orionjs/orionjs/refs/heads/master/mdc";
346
- try {
347
- const targetDir = import_node_path3.default.join(process.cwd(), ".cursor", "rules");
348
- await import_promises.default.mkdir(targetDir, { recursive: true });
349
- await Promise.all(
350
- rules.map(async (rule) => {
351
- const targetFileName = rule.replace(".mdx", ".mdc");
352
- const targetFile = import_node_path3.default.join(targetDir, targetFileName);
353
- const sourceUrl = `${baseUrl}/${rule}`;
354
- const content = await downloadFile(sourceUrl);
355
- await import_promises.default.writeFile(targetFile, content, "utf8");
356
- console.log(import_chalk5.default.bold(`=> \u2728 Successfully downloaded ${import_chalk5.default.cyan(targetFileName)}`));
357
- })
358
- );
359
- console.log(import_chalk5.default.bold("=> \u2728 All rule files have been successfully copied"));
360
- } catch (error) {
361
- console.error(import_chalk5.default.red(`Error copying rule files: ${error.message}`));
362
- }
363
- }
364
-
365
309
  // src/dev/copyMCP/index.ts
366
- var import_promises3 = __toESM(require("fs/promises"), 1);
367
- var import_node_path5 = __toESM(require("path"), 1);
368
- var import_chalk7 = __toESM(require("chalk"), 1);
310
+ var import_promises2 = __toESM(require("fs/promises"), 1);
311
+ var import_node_path4 = __toESM(require("path"), 1);
312
+ var import_chalk6 = __toESM(require("chalk"), 1);
369
313
 
370
314
  // src/dev/copyMCP/consts.ts
371
315
  var MCP_VERSION = "v4";
372
316
  var VERSION_FILE = "version.txt";
373
317
 
374
318
  // src/dev/copyMCP/isValidMCPRepo.ts
375
- var import_promises2 = __toESM(require("fs/promises"), 1);
376
- var import_node_path4 = __toESM(require("path"), 1);
377
- var import_chalk6 = __toESM(require("chalk"), 1);
319
+ var import_promises = __toESM(require("fs/promises"), 1);
320
+ var import_node_path3 = __toESM(require("path"), 1);
321
+ var import_chalk5 = __toESM(require("chalk"), 1);
378
322
  async function isValidMCPRepository(directoryPath) {
379
323
  try {
380
- const stats = await import_promises2.default.stat(directoryPath);
324
+ const stats = await import_promises.default.stat(directoryPath);
381
325
  if (!stats.isDirectory()) return false;
382
326
  const expectedFiles = ["settings.js", "package.json"];
383
327
  for (const file of expectedFiles) {
384
328
  try {
385
- await import_promises2.default.access(import_node_path4.default.join(directoryPath, file));
329
+ await import_promises.default.access(import_node_path3.default.join(directoryPath, file));
386
330
  } catch {
387
331
  return false;
388
332
  }
389
333
  }
390
334
  try {
391
- const versionPath = import_node_path4.default.join(directoryPath, VERSION_FILE);
392
- const versionContent = await import_promises2.default.readFile(versionPath, "utf-8");
335
+ const versionPath = import_node_path3.default.join(directoryPath, VERSION_FILE);
336
+ const versionContent = await import_promises.default.readFile(versionPath, "utf-8");
393
337
  if (versionContent.trim() !== MCP_VERSION) {
394
338
  console.log(
395
- import_chalk6.default.yellow(
339
+ import_chalk5.default.yellow(
396
340
  `=> \u2728 MCP version mismatch: installed=${versionContent.trim()}, required=${MCP_VERSION}`
397
341
  )
398
342
  );
@@ -410,87 +354,82 @@ async function isValidMCPRepository(directoryPath) {
410
354
  // src/dev/copyMCP/index.ts
411
355
  async function copyMCP() {
412
356
  const repoUrl = "https://github.com/orionjs/mcp-docs";
413
- const targetDir = import_node_path5.default.join(process.cwd(), ".orion", "mcp");
357
+ const targetDir = import_node_path4.default.join(process.cwd(), ".orion", "mcp");
414
358
  try {
415
- await import_promises3.default.mkdir(import_node_path5.default.join(process.cwd(), ".orion"), { recursive: true });
359
+ await import_promises2.default.mkdir(import_node_path4.default.join(process.cwd(), ".orion"), { recursive: true });
416
360
  if (await isValidMCPRepository(targetDir)) {
417
- console.log(import_chalk7.default.bold("=> \u2728 MCP documentation already installed"));
361
+ console.log(import_chalk6.default.bold("=> \u2728 MCP documentation already installed"));
418
362
  return;
419
363
  }
420
364
  try {
421
- const stats = await import_promises3.default.stat(targetDir);
365
+ const stats = await import_promises2.default.stat(targetDir);
422
366
  if (stats.isDirectory()) {
423
- await import_promises3.default.rm(targetDir, { recursive: true, force: true });
367
+ await import_promises2.default.rm(targetDir, { recursive: true, force: true });
424
368
  console.log(
425
- import_chalk7.default.bold(
369
+ import_chalk6.default.bold(
426
370
  "=> \u2728 Removed existing .orion/mcp directory (invalid, incomplete, or outdated)"
427
371
  )
428
372
  );
429
373
  }
430
374
  } catch (_) {
431
375
  }
432
- console.log(import_chalk7.default.bold(`=> \u2728 Downloading MCP documentation ${MCP_VERSION}...`));
376
+ console.log(import_chalk6.default.bold(`=> \u2728 Downloading MCP documentation ${MCP_VERSION}...`));
433
377
  await execute_default(`git clone ${repoUrl} ${targetDir}`);
434
- await execute_default(`rm -rf ${import_node_path5.default.join(targetDir, ".git")}`);
435
- await import_promises3.default.writeFile(import_node_path5.default.join(targetDir, VERSION_FILE), MCP_VERSION, "utf-8");
378
+ await execute_default(`rm -rf ${import_node_path4.default.join(targetDir, ".git")}`);
379
+ await import_promises2.default.writeFile(import_node_path4.default.join(targetDir, VERSION_FILE), MCP_VERSION, "utf-8");
436
380
  console.log(
437
- import_chalk7.default.bold(`=> \u2728 Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`)
381
+ import_chalk6.default.bold(`=> \u2728 Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`)
438
382
  );
439
- console.log(import_chalk7.default.bold("=> \u2728 Installing MCP dependencies..."));
383
+ console.log(import_chalk6.default.bold("=> \u2728 Installing MCP dependencies..."));
440
384
  await execute_default(`cd ${targetDir} && npm install`);
441
- console.log(import_chalk7.default.bold("=> \u2728 Successfully installed MCP dependencies"));
442
- const relativePath = import_node_path5.default.relative(process.cwd(), targetDir);
385
+ console.log(import_chalk6.default.bold("=> \u2728 Successfully installed MCP dependencies"));
386
+ const relativePath = import_node_path4.default.relative(process.cwd(), targetDir);
443
387
  console.log(relativePath);
444
388
  const mcpServerConfig = {
445
389
  mcpServers: {
446
390
  "Orionjs documentation search": {
447
391
  command: "node",
448
- args: [`./${import_node_path5.default.join(relativePath, "src", "index.js")}`]
392
+ args: [`./${import_node_path4.default.join(relativePath, "src", "index.js")}`]
449
393
  }
450
394
  }
451
395
  };
452
- const configPath = import_node_path5.default.join(process.cwd(), ".cursor", "mcp.json");
396
+ const configPath = import_node_path4.default.join(process.cwd(), ".cursor", "mcp.json");
453
397
  try {
454
- const existingConfig = await import_promises3.default.readFile(configPath, "utf-8");
398
+ const existingConfig = await import_promises2.default.readFile(configPath, "utf-8");
455
399
  const parsedConfig = JSON.parse(existingConfig);
456
400
  parsedConfig.mcpServers = {
457
401
  ...parsedConfig.mcpServers,
458
402
  ...mcpServerConfig.mcpServers
459
403
  };
460
- await import_promises3.default.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), "utf-8");
461
- console.log(import_chalk7.default.bold("=> \u2728 Updated MCP server configuration in .cursor/mcp.json"));
404
+ await import_promises2.default.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), "utf-8");
405
+ console.log(import_chalk6.default.bold("=> \u2728 Updated MCP server configuration in .cursor/mcp.json"));
462
406
  } catch (_) {
463
- await import_promises3.default.mkdir(import_node_path5.default.dirname(configPath), { recursive: true });
464
- await import_promises3.default.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), "utf-8");
465
- console.log(import_chalk7.default.bold("=> \u2728 Created new MCP server configuration in .cursor/mcp.json"));
407
+ await import_promises2.default.mkdir(import_node_path4.default.dirname(configPath), { recursive: true });
408
+ await import_promises2.default.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), "utf-8");
409
+ console.log(import_chalk6.default.bold("=> \u2728 Created new MCP server configuration in .cursor/mcp.json"));
466
410
  }
467
411
  } catch (error) {
468
- console.error(import_chalk7.default.red("=> \u2728 Error copying MCP documentation:"), error);
412
+ console.error(import_chalk6.default.red("=> \u2728 Error copying MCP documentation:"), error);
469
413
  throw error;
470
414
  }
471
415
  }
472
416
 
473
417
  // src/dev/index.ts
474
- var import_chalk8 = __toESM(require("chalk"), 1);
418
+ var import_chalk7 = __toESM(require("chalk"), 1);
475
419
  async function dev_default(options, command) {
476
- console.log(import_chalk8.default.bold(`
477
- Orionjs App ${import_chalk8.default.green(import_chalk8.default.bold("V4"))} Dev mode
420
+ console.log(import_chalk7.default.bold(`
421
+ Orionjs App ${import_chalk7.default.green(import_chalk7.default.bold("V4"))} Dev mode
478
422
  `));
479
- if (!options.omitCursorRule) {
480
- await copyCursorRule().catch(console.error);
481
- }
482
423
  if (!options.omitMcpServer) {
483
424
  await copyMCP().catch(console.error);
484
- }
485
- if (!options.omitMcpServer && !options.omitCursorRule) {
486
- console.log(import_chalk8.default.bold("=> \u2728 Orionjs AI is ready\n"));
425
+ console.log(import_chalk7.default.bold("=> \u2728 Orionjs AI is ready\n"));
487
426
  }
488
427
  const runner = getRunner(options, command);
489
428
  watchAndCompile(runner);
490
429
  }
491
430
 
492
431
  // src/prod/index.ts
493
- var import_chalk12 = __toESM(require("chalk"), 1);
432
+ var import_chalk11 = __toESM(require("chalk"), 1);
494
433
 
495
434
  // src/prod/runProd.ts
496
435
  var import_node_child_process3 = require("child_process");
@@ -511,10 +450,10 @@ function runProd(options, command) {
511
450
  }
512
451
 
513
452
  // src/build/index.ts
514
- var import_chalk11 = __toESM(require("chalk"), 1);
453
+ var import_chalk10 = __toESM(require("chalk"), 1);
515
454
 
516
455
  // src/build/build.ts
517
- var import_chalk9 = __toESM(require("chalk"), 1);
456
+ var import_chalk8 = __toESM(require("chalk"), 1);
518
457
  var esbuild = __toESM(require("esbuild"), 1);
519
458
  async function build2(options) {
520
459
  const { output } = options;
@@ -532,11 +471,11 @@ async function build2(options) {
532
471
  minify: true,
533
472
  packages: "external"
534
473
  });
535
- console.log(import_chalk9.default.green.bold("Build successful"));
474
+ console.log(import_chalk8.default.green.bold("Build successful"));
536
475
  }
537
476
 
538
477
  // src/build/checkTs.ts
539
- var import_chalk10 = __toESM(require("chalk"), 1);
478
+ var import_chalk9 = __toESM(require("chalk"), 1);
540
479
  var import_node_child_process4 = require("child_process");
541
480
  var import_node_util = require("util");
542
481
  var execPromise = (0, import_node_util.promisify)(import_node_child_process4.exec);
@@ -551,9 +490,9 @@ async function checkTs() {
551
490
  gid: process.getgid(),
552
491
  uid: process.getuid()
553
492
  });
554
- console.log(import_chalk10.default.green.bold("TypeScript check passed"));
493
+ console.log(import_chalk9.default.green.bold("TypeScript check passed"));
555
494
  } catch (error) {
556
- console.log(import_chalk10.default.red.bold("TypeScript compilation failed"));
495
+ console.log(import_chalk9.default.red.bold("TypeScript compilation failed"));
557
496
  console.log(error.stderr || error.stdout || error.message);
558
497
  process.exit(1);
559
498
  }
@@ -561,20 +500,20 @@ async function checkTs() {
561
500
 
562
501
  // src/build/index.ts
563
502
  async function build_default(options) {
564
- console.log(import_chalk11.default.bold(`Building Orionjs App ${import_chalk11.default.green(import_chalk11.default.bold("V4"))}...`));
503
+ console.log(import_chalk10.default.bold(`Building Orionjs App ${import_chalk10.default.green(import_chalk10.default.bold("V4"))}...`));
565
504
  if (!options.output) {
566
505
  options.output = "./build";
567
506
  }
568
507
  await cleanDirectory(options.output);
569
508
  await checkTs();
570
509
  await build2(options);
571
- console.log(import_chalk11.default.bold("Build completed"));
510
+ console.log(import_chalk10.default.bold("Build completed"));
572
511
  }
573
512
 
574
513
  // src/prod/index.ts
575
514
  async function prod_default(options, command) {
576
- console.log(import_chalk12.default.bold(`
577
- Orionjs App ${import_chalk12.default.green(import_chalk12.default.bold("V4"))} Prod mode
515
+ console.log(import_chalk11.default.bold(`
516
+ Orionjs App ${import_chalk11.default.green(import_chalk11.default.bold("V4"))} Prod mode
578
517
  `));
579
518
  if (!options.path) {
580
519
  await build_default({ output: "./build" });
@@ -584,16 +523,16 @@ Orionjs App ${import_chalk12.default.green(import_chalk12.default.bold("V4"))} P
584
523
  }
585
524
 
586
525
  // src/handleErrors.ts
587
- var import_chalk13 = __toESM(require("chalk"), 1);
526
+ var import_chalk12 = __toESM(require("chalk"), 1);
588
527
  process.on("unhandledRejection", (error) => {
589
528
  if (error.codeFrame) {
590
- console.error(import_chalk13.default.red(error.message));
529
+ console.error(import_chalk12.default.red(error.message));
591
530
  console.log(error.codeFrame);
592
531
  } else {
593
- console.error(import_chalk13.default.red(error.message), import_chalk13.default.red("Unhandled promise rejection"));
532
+ console.error(import_chalk12.default.red(error.message), import_chalk12.default.red("Unhandled promise rejection"));
594
533
  }
595
534
  }).on("uncaughtException", (error) => {
596
- console.error(import_chalk13.default.red(error.message));
535
+ console.error(import_chalk12.default.red(error.message));
597
536
  process.exit(1);
598
537
  });
599
538
 
@@ -604,10 +543,10 @@ var version_default = "3.0";
604
543
  var import_config = require("dotenv/config");
605
544
 
606
545
  // src/check/index.ts
607
- var import_chalk15 = __toESM(require("chalk"), 1);
546
+ var import_chalk14 = __toESM(require("chalk"), 1);
608
547
 
609
548
  // src/check/checkTs.ts
610
- var import_chalk14 = __toESM(require("chalk"), 1);
549
+ var import_chalk13 = __toESM(require("chalk"), 1);
611
550
  var import_node_child_process5 = require("child_process");
612
551
  function checkTs2() {
613
552
  try {
@@ -621,18 +560,18 @@ function checkTs2() {
621
560
  stdio: "inherit"
622
561
  });
623
562
  } catch {
624
- console.log(import_chalk14.default.red.bold("TypeScript compilation failed"));
563
+ console.log(import_chalk13.default.red.bold("TypeScript compilation failed"));
625
564
  process.exit(1);
626
565
  }
627
566
  }
628
567
 
629
568
  // src/check/index.ts
630
569
  async function check_default() {
631
- console.log(import_chalk15.default.bold(`Orionjs App ${import_chalk15.default.green(import_chalk15.default.bold("V4"))}
570
+ console.log(import_chalk14.default.bold(`Orionjs App ${import_chalk14.default.green(import_chalk14.default.bold("V4"))}
632
571
  `));
633
572
  console.log("Checking typescript...");
634
573
  checkTs2();
635
- console.log(import_chalk15.default.bold.green("Check passed\n"));
574
+ console.log(import_chalk14.default.bold.green("Check passed\n"));
636
575
  }
637
576
 
638
577
  // src/index.ts
@@ -641,10 +580,10 @@ var run = (action) => async (...args) => {
641
580
  try {
642
581
  await action(...args);
643
582
  } catch (e) {
644
- console.error(import_chalk16.default.red(`Error: ${e.message}`));
583
+ console.error(import_chalk15.default.red(`Error: ${e.message}`));
645
584
  }
646
585
  };
647
- program.command("dev").description("Run the Orionjs app in development mode").option("--omit-cursor-rule", "Omit the creation of the Orionjs Cursor rule").option("--omit-mcp-server", "Omit the creation of the Orionjs MCP server").allowUnknownOption().action(run(dev_default));
586
+ program.command("dev").description("Run the Orionjs app in development mode").option("--omit-mcp-server", "Omit the creation of the Orionjs MCP server").allowUnknownOption().action(run(dev_default));
648
587
  program.command("check").description("Runs a typescript check").action(run(check_default));
649
588
  program.command("build").description("Build the Orionjs app for production").option("--output [path]", "Path of the output file").action(run(build_default));
650
589
  program.command("prod").allowUnknownOption().option(
@@ -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-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"]}
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/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-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 // 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 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 {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.omitMcpServer) {\n await copyMCP().catch(console.error)\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_promises","import_node_path","import_chalk","import_node_path","import_chalk","fs","path","chalk","path","fs","chalk","import_chalk","chalk","import_chalk","import_node_child_process","import_chalk","import_chalk","build","chalk","import_chalk","import_node_child_process","chalk","chalk","build","chalk","import_chalk","chalk","import_chalk","import_chalk","import_node_child_process","checkTs","chalk","chalk","checkTs","chalk"]}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/index.ts
4
- import chalk16 from "chalk";
4
+ import chalk15 from "chalk";
5
5
  import { Command } from "commander";
6
6
 
7
7
  // src/helpers/execute.ts
@@ -51,9 +51,9 @@ var ensureDirectory = (filePath) => {
51
51
  var ensureDirectory_default = ensureDirectory;
52
52
 
53
53
  // src/helpers/writeFile.ts
54
- async function writeFile_default(path6, content) {
55
- ensureDirectory_default(path6);
56
- fs2.writeFileSync(path6, content);
54
+ async function writeFile_default(path5, content) {
55
+ ensureDirectory_default(path5);
56
+ fs2.writeFileSync(path5, content);
57
57
  }
58
58
 
59
59
  // src/dev/runner/startProcess.ts
@@ -284,93 +284,37 @@ async function watchAndCompile(runner) {
284
284
  watchEnvFile(runner);
285
285
  }
286
286
 
287
- // src/dev/copyCursorRule/index.ts
288
- import fs5 from "fs/promises";
289
- import https from "https";
290
- import path3 from "path";
291
- import chalk5 from "chalk";
292
- var rules = [
293
- "orionjs.mdx",
294
- "orionjs-component.mdx",
295
- "orionjs-migrations.mdx",
296
- "orionjs-repository.mdx",
297
- "orionjs-schema.mdx",
298
- "orionjs-services.mdx",
299
- "orionjs-resolvers.mdx",
300
- "orionjs-tov4.mdx"
301
- ];
302
- var downloadFile = (url) => {
303
- return new Promise((resolve, reject) => {
304
- https.get(url, (response) => {
305
- if (response.statusCode !== 200) {
306
- reject(new Error(`Failed to download, status code: ${response.statusCode}`));
307
- return;
308
- }
309
- let data = "";
310
- response.on("data", (chunk) => {
311
- data += chunk;
312
- });
313
- response.on("end", () => {
314
- resolve(data);
315
- });
316
- response.on("error", (err) => {
317
- reject(err);
318
- });
319
- });
320
- });
321
- };
322
- async function copyCursorRule() {
323
- const baseUrl = "https://raw.githubusercontent.com/orionjs/orionjs/refs/heads/master/mdc";
324
- try {
325
- const targetDir = path3.join(process.cwd(), ".cursor", "rules");
326
- await fs5.mkdir(targetDir, { recursive: true });
327
- await Promise.all(
328
- rules.map(async (rule) => {
329
- const targetFileName = rule.replace(".mdx", ".mdc");
330
- const targetFile = path3.join(targetDir, targetFileName);
331
- const sourceUrl = `${baseUrl}/${rule}`;
332
- const content = await downloadFile(sourceUrl);
333
- await fs5.writeFile(targetFile, content, "utf8");
334
- console.log(chalk5.bold(`=> \u2728 Successfully downloaded ${chalk5.cyan(targetFileName)}`));
335
- })
336
- );
337
- console.log(chalk5.bold("=> \u2728 All rule files have been successfully copied"));
338
- } catch (error) {
339
- console.error(chalk5.red(`Error copying rule files: ${error.message}`));
340
- }
341
- }
342
-
343
287
  // src/dev/copyMCP/index.ts
344
- import fs7 from "fs/promises";
345
- import path5 from "path";
346
- import chalk7 from "chalk";
288
+ import fs6 from "fs/promises";
289
+ import path4 from "path";
290
+ import chalk6 from "chalk";
347
291
 
348
292
  // src/dev/copyMCP/consts.ts
349
293
  var MCP_VERSION = "v4";
350
294
  var VERSION_FILE = "version.txt";
351
295
 
352
296
  // src/dev/copyMCP/isValidMCPRepo.ts
353
- import fs6 from "fs/promises";
354
- import path4 from "path";
355
- import chalk6 from "chalk";
297
+ import fs5 from "fs/promises";
298
+ import path3 from "path";
299
+ import chalk5 from "chalk";
356
300
  async function isValidMCPRepository(directoryPath) {
357
301
  try {
358
- const stats = await fs6.stat(directoryPath);
302
+ const stats = await fs5.stat(directoryPath);
359
303
  if (!stats.isDirectory()) return false;
360
304
  const expectedFiles = ["settings.js", "package.json"];
361
305
  for (const file of expectedFiles) {
362
306
  try {
363
- await fs6.access(path4.join(directoryPath, file));
307
+ await fs5.access(path3.join(directoryPath, file));
364
308
  } catch {
365
309
  return false;
366
310
  }
367
311
  }
368
312
  try {
369
- const versionPath = path4.join(directoryPath, VERSION_FILE);
370
- const versionContent = await fs6.readFile(versionPath, "utf-8");
313
+ const versionPath = path3.join(directoryPath, VERSION_FILE);
314
+ const versionContent = await fs5.readFile(versionPath, "utf-8");
371
315
  if (versionContent.trim() !== MCP_VERSION) {
372
316
  console.log(
373
- chalk6.yellow(
317
+ chalk5.yellow(
374
318
  `=> \u2728 MCP version mismatch: installed=${versionContent.trim()}, required=${MCP_VERSION}`
375
319
  )
376
320
  );
@@ -388,87 +332,82 @@ async function isValidMCPRepository(directoryPath) {
388
332
  // src/dev/copyMCP/index.ts
389
333
  async function copyMCP() {
390
334
  const repoUrl = "https://github.com/orionjs/mcp-docs";
391
- const targetDir = path5.join(process.cwd(), ".orion", "mcp");
335
+ const targetDir = path4.join(process.cwd(), ".orion", "mcp");
392
336
  try {
393
- await fs7.mkdir(path5.join(process.cwd(), ".orion"), { recursive: true });
337
+ await fs6.mkdir(path4.join(process.cwd(), ".orion"), { recursive: true });
394
338
  if (await isValidMCPRepository(targetDir)) {
395
- console.log(chalk7.bold("=> \u2728 MCP documentation already installed"));
339
+ console.log(chalk6.bold("=> \u2728 MCP documentation already installed"));
396
340
  return;
397
341
  }
398
342
  try {
399
- const stats = await fs7.stat(targetDir);
343
+ const stats = await fs6.stat(targetDir);
400
344
  if (stats.isDirectory()) {
401
- await fs7.rm(targetDir, { recursive: true, force: true });
345
+ await fs6.rm(targetDir, { recursive: true, force: true });
402
346
  console.log(
403
- chalk7.bold(
347
+ chalk6.bold(
404
348
  "=> \u2728 Removed existing .orion/mcp directory (invalid, incomplete, or outdated)"
405
349
  )
406
350
  );
407
351
  }
408
352
  } catch (_) {
409
353
  }
410
- console.log(chalk7.bold(`=> \u2728 Downloading MCP documentation ${MCP_VERSION}...`));
354
+ console.log(chalk6.bold(`=> \u2728 Downloading MCP documentation ${MCP_VERSION}...`));
411
355
  await execute_default(`git clone ${repoUrl} ${targetDir}`);
412
- await execute_default(`rm -rf ${path5.join(targetDir, ".git")}`);
413
- await fs7.writeFile(path5.join(targetDir, VERSION_FILE), MCP_VERSION, "utf-8");
356
+ await execute_default(`rm -rf ${path4.join(targetDir, ".git")}`);
357
+ await fs6.writeFile(path4.join(targetDir, VERSION_FILE), MCP_VERSION, "utf-8");
414
358
  console.log(
415
- chalk7.bold(`=> \u2728 Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`)
359
+ chalk6.bold(`=> \u2728 Successfully downloaded MCP documentation v${MCP_VERSION} to .orion/mcp`)
416
360
  );
417
- console.log(chalk7.bold("=> \u2728 Installing MCP dependencies..."));
361
+ console.log(chalk6.bold("=> \u2728 Installing MCP dependencies..."));
418
362
  await execute_default(`cd ${targetDir} && npm install`);
419
- console.log(chalk7.bold("=> \u2728 Successfully installed MCP dependencies"));
420
- const relativePath = path5.relative(process.cwd(), targetDir);
363
+ console.log(chalk6.bold("=> \u2728 Successfully installed MCP dependencies"));
364
+ const relativePath = path4.relative(process.cwd(), targetDir);
421
365
  console.log(relativePath);
422
366
  const mcpServerConfig = {
423
367
  mcpServers: {
424
368
  "Orionjs documentation search": {
425
369
  command: "node",
426
- args: [`./${path5.join(relativePath, "src", "index.js")}`]
370
+ args: [`./${path4.join(relativePath, "src", "index.js")}`]
427
371
  }
428
372
  }
429
373
  };
430
- const configPath = path5.join(process.cwd(), ".cursor", "mcp.json");
374
+ const configPath = path4.join(process.cwd(), ".cursor", "mcp.json");
431
375
  try {
432
- const existingConfig = await fs7.readFile(configPath, "utf-8");
376
+ const existingConfig = await fs6.readFile(configPath, "utf-8");
433
377
  const parsedConfig = JSON.parse(existingConfig);
434
378
  parsedConfig.mcpServers = {
435
379
  ...parsedConfig.mcpServers,
436
380
  ...mcpServerConfig.mcpServers
437
381
  };
438
- await fs7.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), "utf-8");
439
- console.log(chalk7.bold("=> \u2728 Updated MCP server configuration in .cursor/mcp.json"));
382
+ await fs6.writeFile(configPath, JSON.stringify(parsedConfig, null, 2), "utf-8");
383
+ console.log(chalk6.bold("=> \u2728 Updated MCP server configuration in .cursor/mcp.json"));
440
384
  } catch (_) {
441
- await fs7.mkdir(path5.dirname(configPath), { recursive: true });
442
- await fs7.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), "utf-8");
443
- console.log(chalk7.bold("=> \u2728 Created new MCP server configuration in .cursor/mcp.json"));
385
+ await fs6.mkdir(path4.dirname(configPath), { recursive: true });
386
+ await fs6.writeFile(configPath, JSON.stringify(mcpServerConfig, null, 2), "utf-8");
387
+ console.log(chalk6.bold("=> \u2728 Created new MCP server configuration in .cursor/mcp.json"));
444
388
  }
445
389
  } catch (error) {
446
- console.error(chalk7.red("=> \u2728 Error copying MCP documentation:"), error);
390
+ console.error(chalk6.red("=> \u2728 Error copying MCP documentation:"), error);
447
391
  throw error;
448
392
  }
449
393
  }
450
394
 
451
395
  // src/dev/index.ts
452
- import chalk8 from "chalk";
396
+ import chalk7 from "chalk";
453
397
  async function dev_default(options, command) {
454
- console.log(chalk8.bold(`
455
- Orionjs App ${chalk8.green(chalk8.bold("V4"))} Dev mode
398
+ console.log(chalk7.bold(`
399
+ Orionjs App ${chalk7.green(chalk7.bold("V4"))} Dev mode
456
400
  `));
457
- if (!options.omitCursorRule) {
458
- await copyCursorRule().catch(console.error);
459
- }
460
401
  if (!options.omitMcpServer) {
461
402
  await copyMCP().catch(console.error);
462
- }
463
- if (!options.omitMcpServer && !options.omitCursorRule) {
464
- console.log(chalk8.bold("=> \u2728 Orionjs AI is ready\n"));
403
+ console.log(chalk7.bold("=> \u2728 Orionjs AI is ready\n"));
465
404
  }
466
405
  const runner = getRunner(options, command);
467
406
  watchAndCompile(runner);
468
407
  }
469
408
 
470
409
  // src/prod/index.ts
471
- import chalk12 from "chalk";
410
+ import chalk11 from "chalk";
472
411
 
473
412
  // src/prod/runProd.ts
474
413
  import { spawn as spawn2 } from "child_process";
@@ -489,10 +428,10 @@ function runProd(options, command) {
489
428
  }
490
429
 
491
430
  // src/build/index.ts
492
- import chalk11 from "chalk";
431
+ import chalk10 from "chalk";
493
432
 
494
433
  // src/build/build.ts
495
- import chalk9 from "chalk";
434
+ import chalk8 from "chalk";
496
435
  import * as esbuild from "esbuild";
497
436
  async function build2(options) {
498
437
  const { output } = options;
@@ -510,11 +449,11 @@ async function build2(options) {
510
449
  minify: true,
511
450
  packages: "external"
512
451
  });
513
- console.log(chalk9.green.bold("Build successful"));
452
+ console.log(chalk8.green.bold("Build successful"));
514
453
  }
515
454
 
516
455
  // src/build/checkTs.ts
517
- import chalk10 from "chalk";
456
+ import chalk9 from "chalk";
518
457
  import { exec as exec2 } from "child_process";
519
458
  import { promisify } from "util";
520
459
  var execPromise = promisify(exec2);
@@ -529,9 +468,9 @@ async function checkTs() {
529
468
  gid: process.getgid(),
530
469
  uid: process.getuid()
531
470
  });
532
- console.log(chalk10.green.bold("TypeScript check passed"));
471
+ console.log(chalk9.green.bold("TypeScript check passed"));
533
472
  } catch (error) {
534
- console.log(chalk10.red.bold("TypeScript compilation failed"));
473
+ console.log(chalk9.red.bold("TypeScript compilation failed"));
535
474
  console.log(error.stderr || error.stdout || error.message);
536
475
  process.exit(1);
537
476
  }
@@ -539,20 +478,20 @@ async function checkTs() {
539
478
 
540
479
  // src/build/index.ts
541
480
  async function build_default(options) {
542
- console.log(chalk11.bold(`Building Orionjs App ${chalk11.green(chalk11.bold("V4"))}...`));
481
+ console.log(chalk10.bold(`Building Orionjs App ${chalk10.green(chalk10.bold("V4"))}...`));
543
482
  if (!options.output) {
544
483
  options.output = "./build";
545
484
  }
546
485
  await cleanDirectory(options.output);
547
486
  await checkTs();
548
487
  await build2(options);
549
- console.log(chalk11.bold("Build completed"));
488
+ console.log(chalk10.bold("Build completed"));
550
489
  }
551
490
 
552
491
  // src/prod/index.ts
553
492
  async function prod_default(options, command) {
554
- console.log(chalk12.bold(`
555
- Orionjs App ${chalk12.green(chalk12.bold("V4"))} Prod mode
493
+ console.log(chalk11.bold(`
494
+ Orionjs App ${chalk11.green(chalk11.bold("V4"))} Prod mode
556
495
  `));
557
496
  if (!options.path) {
558
497
  await build_default({ output: "./build" });
@@ -562,16 +501,16 @@ Orionjs App ${chalk12.green(chalk12.bold("V4"))} Prod mode
562
501
  }
563
502
 
564
503
  // src/handleErrors.ts
565
- import chalk13 from "chalk";
504
+ import chalk12 from "chalk";
566
505
  process.on("unhandledRejection", (error) => {
567
506
  if (error.codeFrame) {
568
- console.error(chalk13.red(error.message));
507
+ console.error(chalk12.red(error.message));
569
508
  console.log(error.codeFrame);
570
509
  } else {
571
- console.error(chalk13.red(error.message), chalk13.red("Unhandled promise rejection"));
510
+ console.error(chalk12.red(error.message), chalk12.red("Unhandled promise rejection"));
572
511
  }
573
512
  }).on("uncaughtException", (error) => {
574
- console.error(chalk13.red(error.message));
513
+ console.error(chalk12.red(error.message));
575
514
  process.exit(1);
576
515
  });
577
516
 
@@ -582,10 +521,10 @@ var version_default = "3.0";
582
521
  import "dotenv/config";
583
522
 
584
523
  // src/check/index.ts
585
- import chalk15 from "chalk";
524
+ import chalk14 from "chalk";
586
525
 
587
526
  // src/check/checkTs.ts
588
- import chalk14 from "chalk";
527
+ import chalk13 from "chalk";
589
528
  import { execSync } from "child_process";
590
529
  function checkTs2() {
591
530
  try {
@@ -599,18 +538,18 @@ function checkTs2() {
599
538
  stdio: "inherit"
600
539
  });
601
540
  } catch {
602
- console.log(chalk14.red.bold("TypeScript compilation failed"));
541
+ console.log(chalk13.red.bold("TypeScript compilation failed"));
603
542
  process.exit(1);
604
543
  }
605
544
  }
606
545
 
607
546
  // src/check/index.ts
608
547
  async function check_default() {
609
- console.log(chalk15.bold(`Orionjs App ${chalk15.green(chalk15.bold("V4"))}
548
+ console.log(chalk14.bold(`Orionjs App ${chalk14.green(chalk14.bold("V4"))}
610
549
  `));
611
550
  console.log("Checking typescript...");
612
551
  checkTs2();
613
- console.log(chalk15.bold.green("Check passed\n"));
552
+ console.log(chalk14.bold.green("Check passed\n"));
614
553
  }
615
554
 
616
555
  // src/index.ts
@@ -619,10 +558,10 @@ var run = (action) => async (...args) => {
619
558
  try {
620
559
  await action(...args);
621
560
  } catch (e) {
622
- console.error(chalk16.red(`Error: ${e.message}`));
561
+ console.error(chalk15.red(`Error: ${e.message}`));
623
562
  }
624
563
  };
625
- program.command("dev").description("Run the Orionjs app in development mode").option("--omit-cursor-rule", "Omit the creation of the Orionjs Cursor rule").option("--omit-mcp-server", "Omit the creation of the Orionjs MCP server").allowUnknownOption().action(run(dev_default));
564
+ program.command("dev").description("Run the Orionjs app in development mode").option("--omit-mcp-server", "Omit the creation of the Orionjs MCP server").allowUnknownOption().action(run(dev_default));
626
565
  program.command("check").description("Runs a typescript check").action(run(check_default));
627
566
  program.command("build").description("Build the Orionjs app for production").option("--output [path]", "Path of the output file").action(run(build_default));
628
567
  program.command("prod").allowUnknownOption().option(
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-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"]}
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/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-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 // 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 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 {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.omitMcpServer) {\n await copyMCP().catch(console.error)\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","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.2.2",
3
+ "version": "4.2.3",
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.2.0"
25
+ "@orion-js/env": "4.2.1"
26
26
  },
27
27
  "peerDependencies": {
28
28
  "tsx": "*",