@nexusts/cli 0.7.3 → 0.7.4

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.js CHANGED
@@ -19,7 +19,7 @@ var __toESM = (mod, isNodeMode, target) => {
19
19
  var __require = import.meta.require;
20
20
 
21
21
  // packages/cli/src/commands/info.ts
22
- import { resolve as resolve3 } from "path";
22
+ import { resolve as resolve4 } from "path";
23
23
 
24
24
  // packages/cli/src/core/args.ts
25
25
  var LONG_RE = /^--([^=]+)(?:=(.*))?$/;
@@ -493,6 +493,24 @@ function singularize(s) {
493
493
  return s.slice(0, -1);
494
494
  return s;
495
495
  }
496
+ // packages/cli/src/core/version.ts
497
+ import { existsSync as existsSync3, readFileSync as readFileSync3 } from "fs";
498
+ import { resolve as resolve3, dirname as dirname2 } from "path";
499
+ import { fileURLToPath } from "url";
500
+ var __dirname2 = dirname2(fileURLToPath(import.meta.url));
501
+ var PKG_JSON = resolve3(__dirname2, "..", "package.json");
502
+ function loadVersion() {
503
+ try {
504
+ if (!existsSync3(PKG_JSON))
505
+ return "0.0.0";
506
+ const raw = readFileSync3(PKG_JSON, "utf-8");
507
+ const pkg = JSON.parse(raw);
508
+ return pkg.version ?? "0.0.0";
509
+ } catch {
510
+ return "0.0.0";
511
+ }
512
+ }
513
+ var VERSION = loadVersion();
496
514
  // packages/cli/src/commands/info.ts
497
515
  var infoCommand = {
498
516
  name: "info",
@@ -544,7 +562,7 @@ var infoCommand = {
544
562
  logger.blank();
545
563
  logger.info(colors.bold("Working directory"));
546
564
  logger.blank();
547
- logger.info(` ${resolve3(ctx.cwd)}`);
565
+ logger.info(` ${resolve4(ctx.cwd)}`);
548
566
  logger.blank();
549
567
  return 0;
550
568
  }
@@ -552,8 +570,8 @@ var infoCommand = {
552
570
  var info_default = infoCommand;
553
571
 
554
572
  // packages/cli/src/commands/init.ts
555
- import { existsSync as existsSync3, mkdirSync as mkdirSync2, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from "fs";
556
- import { resolve as resolve4 } from "path";
573
+ import { existsSync as existsSync4, mkdirSync as mkdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync2 } from "fs";
574
+ import { resolve as resolve5 } from "path";
557
575
 
558
576
  // packages/cli/src/templates/controller/adonis.ts
559
577
  var adonis_default = `
@@ -1181,8 +1199,8 @@ var initCommand = {
1181
1199
  async run(ctx) {
1182
1200
  const interactive = !flagBool(ctx.flags, "no-interaction", false);
1183
1201
  const force = flagBool(ctx.flags, "force", false);
1184
- const target = resolve4(ctx.cwd, ctx.flags["target"] ?? ".");
1185
- if (!existsSync3(target)) {
1202
+ const target = resolve5(ctx.cwd, ctx.flags["target"] ?? ".");
1203
+ if (!existsSync4(target)) {
1186
1204
  logger.error(`Target directory does not exist: ${target}`);
1187
1205
  logger.info(`Run \`nx new <name>\` to create a fresh project, or \`mkdir -p ${target}\` first.`);
1188
1206
  return 1;
@@ -1225,14 +1243,14 @@ var initCommand = {
1225
1243
  const created = [];
1226
1244
  const skipped = [];
1227
1245
  const merged = [];
1228
- mkdirSync2(resolve4(target, "app/controllers"), { recursive: true });
1229
- mkdirSync2(resolve4(target, "public"), { recursive: true });
1246
+ mkdirSync2(resolve5(target, "app/controllers"), { recursive: true });
1247
+ mkdirSync2(resolve5(target, "public"), { recursive: true });
1230
1248
  if (view !== "none") {
1231
- mkdirSync2(resolve4(target, "resources/views"), { recursive: true });
1249
+ mkdirSync2(resolve5(target, "resources/views"), { recursive: true });
1232
1250
  }
1233
1251
  for (const entry of plan) {
1234
- const abs = resolve4(target, entry.path);
1235
- const exists = existsSync3(abs);
1252
+ const abs = resolve5(target, entry.path);
1253
+ const exists = existsSync4(abs);
1236
1254
  if (entry.mode === "merge-pkg") {
1237
1255
  const coreDeps = {
1238
1256
  "@nexusts/core": "*",
@@ -1490,7 +1508,7 @@ function defaultTsconfig() {
1490
1508
  `;
1491
1509
  }
1492
1510
  function mergePackageJson(path, additions) {
1493
- const raw = readFileSync3(path, "utf8");
1511
+ const raw = readFileSync4(path, "utf8");
1494
1512
  const pkg = parseJsonLoose(raw);
1495
1513
  let changed = false;
1496
1514
  if (!pkg["type"]) {
@@ -1532,7 +1550,7 @@ function mergePackageJson(path, additions) {
1532
1550
  }
1533
1551
  }
1534
1552
  function mergeTsconfig(path, additions) {
1535
- const raw = readFileSync3(path, "utf8");
1553
+ const raw = readFileSync4(path, "utf8");
1536
1554
  const cfg = parseJsonLoose(raw);
1537
1555
  const co = cfg.compilerOptions ?? {};
1538
1556
  let changed = false;
@@ -1561,7 +1579,7 @@ function mergeTsconfig(path, additions) {
1561
1579
  var init_default = initCommand;
1562
1580
 
1563
1581
  // packages/cli/src/commands/make-auth.ts
1564
- import { resolve as resolve5 } from "path";
1582
+ import { resolve as resolve6 } from "path";
1565
1583
  var AUTH_INSTANCE_TEMPLATE = `/**
1566
1584
  * Better-auth instance \u2014 generated by \`nx make:auth\`.
1567
1585
  *
@@ -1676,7 +1694,7 @@ var makeAuthCommand = {
1676
1694
  passkeyRpId: rpId,
1677
1695
  passkeyOrigin: Array.isArray(origin) ? origin.join(",") : origin
1678
1696
  });
1679
- const authOut = resolve5(ctx.cwd, "app/auth/auth.ts");
1697
+ const authOut = resolve6(ctx.cwd, "app/auth/auth.ts");
1680
1698
  if (writeFile(authOut, authCode)) {
1681
1699
  logger.success(`created ${authOut}`);
1682
1700
  } else {
@@ -1686,7 +1704,7 @@ var makeAuthCommand = {
1686
1704
  providers: providers.length > 0,
1687
1705
  entries
1688
1706
  });
1689
- const envOut = resolve5(ctx.cwd, ".env.example");
1707
+ const envOut = resolve6(ctx.cwd, ".env.example");
1690
1708
  if (writeFile(envOut, envCode, { skipIfExists: true })) {
1691
1709
  logger.success(`created ${envOut}`);
1692
1710
  } else {
@@ -1712,7 +1730,7 @@ var makeAuthCommand = {
1712
1730
  var make_auth_default = makeAuthCommand;
1713
1731
 
1714
1732
  // packages/cli/src/commands/make-controller.ts
1715
- import { resolve as resolve6 } from "path";
1733
+ import { resolve as resolve7 } from "path";
1716
1734
  var makeControllerCommand = {
1717
1735
  name: "make:controller",
1718
1736
  aliases: ["mc", "make-controller"],
@@ -1758,7 +1776,7 @@ var makeControllerCommand = {
1758
1776
  service: serviceName,
1759
1777
  serviceCamel
1760
1778
  }).replace(/import .*\n/g, skipService ? (m) => m.includes("services/") ? "" : m : (m) => m);
1761
- const out = resolve6(ctx.cwd, ctx.config.paths.controllers, `${variants.kebab}.controller.ts`);
1779
+ const out = resolve7(ctx.cwd, ctx.config.paths.controllers, `${variants.kebab}.controller.ts`);
1762
1780
  const ok = writeFile(out, code, { skipIfExists: false });
1763
1781
  if (!ok) {
1764
1782
  logger.error(`Refusing to overwrite existing file: ${out}`);
@@ -1773,7 +1791,7 @@ var make_controller_default = makeControllerCommand;
1773
1791
 
1774
1792
  // packages/cli/src/commands/make-crud.ts
1775
1793
  import { mkdirSync as mkdirSync3 } from "fs";
1776
- import { dirname as dirname2, resolve as resolve7 } from "path";
1794
+ import { dirname as dirname3, resolve as resolve8 } from "path";
1777
1795
 
1778
1796
  // packages/cli/src/templates/model/drizzle-dialect.ts
1779
1797
  function renderDrizzleDialect(dialect) {
@@ -1948,7 +1966,7 @@ var makeCrudCommand = {
1948
1966
  viewShowComponent,
1949
1967
  hasInertia
1950
1968
  });
1951
- const out = resolve7(ctx.cwd, ctx.config.paths.controllers, `${variants.kebab}.controller.ts`);
1969
+ const out = resolve8(ctx.cwd, ctx.config.paths.controllers, `${variants.kebab}.controller.ts`);
1952
1970
  if (!writeFile(out, code, { skipIfExists: true })) {
1953
1971
  logger.warn(`skipped (exists): ${out}`);
1954
1972
  } else {
@@ -1966,7 +1984,7 @@ var makeCrudCommand = {
1966
1984
  repository,
1967
1985
  repositoryCamel: variants.camel + "Repository"
1968
1986
  });
1969
- const out = resolve7(ctx.cwd, ctx.config.paths.services, `${variants.kebab}.service.ts`);
1987
+ const out = resolve8(ctx.cwd, ctx.config.paths.services, `${variants.kebab}.service.ts`);
1970
1988
  if (!writeFile(out, code, { skipIfExists: true })) {
1971
1989
  logger.warn(`skipped (exists): ${out}`);
1972
1990
  } else {
@@ -2000,7 +2018,7 @@ var makeCrudCommand = {
2000
2018
  prismaBlock: ""
2001
2019
  });
2002
2020
  }
2003
- const out = resolve7(ctx.cwd, ctx.config.paths.models, `${variants.kebab}.model.ts`);
2021
+ const out = resolve8(ctx.cwd, ctx.config.paths.models, `${variants.kebab}.model.ts`);
2004
2022
  if (!writeFile(out, code, { skipIfExists: true })) {
2005
2023
  logger.warn(`skipped (exists): ${out}`);
2006
2024
  } else {
@@ -2016,8 +2034,8 @@ var makeCrudCommand = {
2016
2034
  tableName,
2017
2035
  repository
2018
2036
  });
2019
- const repoOut = resolve7(ctx.cwd, `${ctx.config.paths.app}/repositories`, `${variants.kebab}.repository.ts`);
2020
- mkdirSync3(dirname2(repoOut), { recursive: true });
2037
+ const repoOut = resolve8(ctx.cwd, `${ctx.config.paths.app}/repositories`, `${variants.kebab}.repository.ts`);
2038
+ mkdirSync3(dirname3(repoOut), { recursive: true });
2021
2039
  if (!writeFile(repoOut, repoCode, { skipIfExists: true })) {
2022
2040
  logger.warn(`skipped (exists): ${repoOut}`);
2023
2041
  } else {
@@ -2031,7 +2049,7 @@ var makeCrudCommand = {
2031
2049
  camel: variants.camel,
2032
2050
  kebab: variants.kebab
2033
2051
  });
2034
- const out = resolve7(ctx.cwd, ctx.config.paths.dto, `${variants.kebab}.dto.ts`);
2052
+ const out = resolve8(ctx.cwd, ctx.config.paths.dto, `${variants.kebab}.dto.ts`);
2035
2053
  if (!writeFile(out, code, { skipIfExists: true })) {
2036
2054
  logger.warn(`skipped (exists): ${out}`);
2037
2055
  } else {
@@ -2049,7 +2067,7 @@ var makeCrudCommand = {
2049
2067
  repository,
2050
2068
  hasRepo: !noRepo
2051
2069
  });
2052
- const out = resolve7(ctx.cwd, ctx.config.paths.modules, `${variants.kebab}.module.ts`);
2070
+ const out = resolve8(ctx.cwd, ctx.config.paths.modules, `${variants.kebab}.module.ts`);
2053
2071
  if (!writeFile(out, code, { skipIfExists: true })) {
2054
2072
  logger.warn(`skipped (exists): ${out}`);
2055
2073
  } else {
@@ -2065,7 +2083,7 @@ var makeCrudCommand = {
2065
2083
  controller,
2066
2084
  service
2067
2085
  });
2068
- const out = resolve7(ctx.cwd, "tests", `${variants.kebab}.test.ts`);
2086
+ const out = resolve8(ctx.cwd, "tests", `${variants.kebab}.test.ts`);
2069
2087
  if (!writeFile(out, code, { skipIfExists: true })) {
2070
2088
  logger.warn(`skipped (exists): ${out}`);
2071
2089
  } else {
@@ -2101,7 +2119,7 @@ function renderDrizzleColumns(dialect) {
2101
2119
  var make_crud_default = makeCrudCommand;
2102
2120
 
2103
2121
  // packages/cli/src/commands/make-listener.ts
2104
- import { resolve as resolve8 } from "path";
2122
+ import { resolve as resolve9 } from "path";
2105
2123
  var LISTENER_TEMPLATE = `
2106
2124
  import { Inject, Injectable } from '@nexusts/core';
2107
2125
  import { EventService, OnEvent } from '@nexusts/events';
@@ -2152,7 +2170,7 @@ var makeListenerCommand = {
2152
2170
  name: variants.pascal,
2153
2171
  kebab: variants.kebab
2154
2172
  });
2155
- const out = resolve8(ctx.cwd, "app/events/listeners", `${variants.kebab}.listener.ts`);
2173
+ const out = resolve9(ctx.cwd, "app/events/listeners", `${variants.kebab}.listener.ts`);
2156
2174
  if (writeFile(out, code, { skipIfExists: true })) {
2157
2175
  logger.success(`created ${out}`);
2158
2176
  } else {
@@ -2172,7 +2190,7 @@ var makeListenerCommand = {
2172
2190
  var make_listener_default = makeListenerCommand;
2173
2191
 
2174
2192
  // packages/cli/src/commands/make-middleware.ts
2175
- import { resolve as resolve9 } from "path";
2193
+ import { resolve as resolve10 } from "path";
2176
2194
  var makeMiddlewareCommand = {
2177
2195
  name: "make:middleware",
2178
2196
  aliases: ["mwm", "make-middleware"],
@@ -2189,7 +2207,7 @@ var makeMiddlewareCommand = {
2189
2207
  const code = render(templates.middleware, {
2190
2208
  name: variants.pascal
2191
2209
  });
2192
- const out = resolve9(ctx.cwd, ctx.config.paths.middleware, `${variants.kebab}.middleware.ts`);
2210
+ const out = resolve10(ctx.cwd, ctx.config.paths.middleware, `${variants.kebab}.middleware.ts`);
2193
2211
  writeFile(out, code);
2194
2212
  logger.success(`created ${out}`);
2195
2213
  logger.finger(`register with: app.server.app.use('*', new ${variants.pascal}Middleware().handle)`);
@@ -2199,7 +2217,7 @@ var makeMiddlewareCommand = {
2199
2217
  var make_middleware_default = makeMiddlewareCommand;
2200
2218
 
2201
2219
  // packages/cli/src/commands/make-migration.ts
2202
- import { resolve as resolve10 } from "path";
2220
+ import { resolve as resolve11 } from "path";
2203
2221
  var makeMigrationCommand = {
2204
2222
  name: "make:migration",
2205
2223
  aliases: ["mkm", "make-migration"],
@@ -2271,7 +2289,7 @@ var makeMigrationCommand = {
2271
2289
  return 1;
2272
2290
  }
2273
2291
  const filename = `${formatTimestamp(new Date)}_${variants.snake}.${extension}`;
2274
- const out = resolve10(ctx.cwd, ctx.config.paths.migrations, filename);
2292
+ const out = resolve11(ctx.cwd, ctx.config.paths.migrations, filename);
2275
2293
  writeFile(out, code);
2276
2294
  logger.success(`created ${out}`);
2277
2295
  if (isDrizzle) {
@@ -2359,7 +2377,7 @@ function formatTimestamp(d) {
2359
2377
  var make_migration_default = makeMigrationCommand;
2360
2378
 
2361
2379
  // packages/cli/src/commands/make-model.ts
2362
- import { resolve as resolve11 } from "path";
2380
+ import { resolve as resolve12 } from "path";
2363
2381
  var makeModelCommand = {
2364
2382
  name: "make:model",
2365
2383
  aliases: ["mmodel", "make-model"],
@@ -2431,7 +2449,7 @@ var makeModelCommand = {
2431
2449
  prismaBlock
2432
2450
  });
2433
2451
  }
2434
- const out = resolve11(ctx.cwd, ctx.config.paths.models, `${variants.kebab}.model.ts`);
2452
+ const out = resolve12(ctx.cwd, ctx.config.paths.models, `${variants.kebab}.model.ts`);
2435
2453
  writeFile(out, code);
2436
2454
  logger.success(`created ${out}`);
2437
2455
  logger.finger(`run \`nx make:migration create_${tableName}_table\` to scaffold a migration.`);
@@ -2490,7 +2508,7 @@ function capitalize(s) {
2490
2508
  var make_model_default = makeModelCommand;
2491
2509
 
2492
2510
  // packages/cli/src/commands/make-module.ts
2493
- import { resolve as resolve12 } from "path";
2511
+ import { resolve as resolve13 } from "path";
2494
2512
  var makeModuleCommand = {
2495
2513
  name: "make:module",
2496
2514
  aliases: ["mm", "make-module"],
@@ -2524,7 +2542,7 @@ var makeModuleCommand = {
2524
2542
  hasService,
2525
2543
  hasRepo
2526
2544
  });
2527
- const out = resolve12(ctx.cwd, ctx.config.paths.modules, `${variants.kebab}.module.ts`);
2545
+ const out = resolve13(ctx.cwd, ctx.config.paths.modules, `${variants.kebab}.module.ts`);
2528
2546
  writeFile(out, code);
2529
2547
  logger.success(`created ${out}`);
2530
2548
  logger.finger(`add ${variants.pascal}Module to AppModule.imports.`);
@@ -2534,7 +2552,7 @@ var makeModuleCommand = {
2534
2552
  var make_module_default = makeModuleCommand;
2535
2553
 
2536
2554
  // packages/cli/src/commands/make-queue.ts
2537
- import { resolve as resolve13 } from "path";
2555
+ import { resolve as resolve14 } from "path";
2538
2556
  var WORKER_TEMPLATE = `
2539
2557
  import { Inject, Injectable } from '@nexusts/core';
2540
2558
  import { QueueService, OnQueueReady } from '@nexusts/queue';
@@ -2662,7 +2680,7 @@ var makeQueueCommand = {
2662
2680
  name: variants.pascal,
2663
2681
  kebab: variants.kebab
2664
2682
  });
2665
- const out = resolve13(ctx.cwd, "app/queue/workers", `${variants.kebab}.worker.ts`);
2683
+ const out = resolve14(ctx.cwd, "app/queue/workers", `${variants.kebab}.worker.ts`);
2666
2684
  if (writeFile(out, code, { skipIfExists: true })) {
2667
2685
  logger.success(`created ${out}`);
2668
2686
  } else {
@@ -2674,7 +2692,7 @@ var makeQueueCommand = {
2674
2692
  name: variants.pascal,
2675
2693
  kebab: variants.kebab
2676
2694
  });
2677
- const out = resolve13(ctx.cwd, "app/queue/jobs", `${variants.kebab}.job.ts`);
2695
+ const out = resolve14(ctx.cwd, "app/queue/jobs", `${variants.kebab}.job.ts`);
2678
2696
  if (writeFile(out, code, { skipIfExists: true })) {
2679
2697
  logger.success(`created ${out}`);
2680
2698
  } else {
@@ -2697,7 +2715,7 @@ var makeQueueCommand = {
2697
2715
  var make_queue_default = makeQueueCommand;
2698
2716
 
2699
2717
  // packages/cli/src/commands/make-schedule.ts
2700
- import { resolve as resolve14 } from "path";
2718
+ import { resolve as resolve15 } from "path";
2701
2719
  var TASK_TEMPLATE = `
2702
2720
  import { Injectable } from '@nexusts/core';
2703
2721
  import { Cron, Interval, Timeout } from '@nexusts/schedule';
@@ -2741,7 +2759,7 @@ var makeScheduleCommand = {
2741
2759
  name: variants.pascal,
2742
2760
  kebab: variants.kebab
2743
2761
  });
2744
- const out = resolve14(ctx.cwd, "app/schedule/tasks", `${variants.kebab}.task.ts`);
2762
+ const out = resolve15(ctx.cwd, "app/schedule/tasks", `${variants.kebab}.task.ts`);
2745
2763
  if (writeFile(out, code, { skipIfExists: true })) {
2746
2764
  logger.success(`created ${out}`);
2747
2765
  } else {
@@ -2759,7 +2777,7 @@ var makeScheduleCommand = {
2759
2777
  var make_schedule_default = makeScheduleCommand;
2760
2778
 
2761
2779
  // packages/cli/src/commands/make-service.ts
2762
- import { resolve as resolve15 } from "path";
2780
+ import { resolve as resolve16 } from "path";
2763
2781
  var makeServiceCommand = {
2764
2782
  name: "make:service",
2765
2783
  aliases: ["ms", "make-service"],
@@ -2790,7 +2808,7 @@ var makeServiceCommand = {
2790
2808
  repository,
2791
2809
  repositoryCamel
2792
2810
  });
2793
- const out = resolve15(ctx.cwd, ctx.config.paths.services, `${variants.kebab}.service.ts`);
2811
+ const out = resolve16(ctx.cwd, ctx.config.paths.services, `${variants.kebab}.service.ts`);
2794
2812
  writeFile(out, code);
2795
2813
  logger.success(`created ${out}`);
2796
2814
  return 0;
@@ -2799,7 +2817,7 @@ var makeServiceCommand = {
2799
2817
  var make_service_default = makeServiceCommand;
2800
2818
 
2801
2819
  // packages/cli/src/commands/make-session.ts
2802
- import { resolve as resolve16 } from "path";
2820
+ import { resolve as resolve17 } from "path";
2803
2821
  var SESSION_TEMPLATE = `
2804
2822
  import { Inject, Injectable } from '@nexusts/core';
2805
2823
  import { SessionService } from '@nexusts/session';
@@ -2861,7 +2879,7 @@ var makeSessionCommand = {
2861
2879
  name: variants.pascal,
2862
2880
  kebab: variants.kebab
2863
2881
  });
2864
- const out = resolve16(ctx.cwd, "app/session/services", `${variants.kebab}.session.ts`);
2882
+ const out = resolve17(ctx.cwd, "app/session/services", `${variants.kebab}.session.ts`);
2865
2883
  if (writeFile(out, code, { skipIfExists: true })) {
2866
2884
  logger.success(`created ${out}`);
2867
2885
  } else {
@@ -2879,7 +2897,7 @@ var makeSessionCommand = {
2879
2897
  var make_session_default = makeSessionCommand;
2880
2898
 
2881
2899
  // packages/cli/src/commands/make-validator.ts
2882
- import { resolve as resolve17 } from "path";
2900
+ import { resolve as resolve18 } from "path";
2883
2901
  var makeValidatorCommand = {
2884
2902
  name: "make:validator",
2885
2903
  aliases: ["mv", "make-validator"],
@@ -2896,7 +2914,7 @@ var makeValidatorCommand = {
2896
2914
  const code = render(templates.validator, {
2897
2915
  name: variants.pascal
2898
2916
  });
2899
- const out = resolve17(ctx.cwd, ctx.config.paths.dto, `${variants.kebab}.dto.ts`);
2917
+ const out = resolve18(ctx.cwd, ctx.config.paths.dto, `${variants.kebab}.dto.ts`);
2900
2918
  writeFile(out, code);
2901
2919
  logger.success(`created ${out}`);
2902
2920
  return 0;
@@ -2906,8 +2924,8 @@ var make_validator_default = makeValidatorCommand;
2906
2924
 
2907
2925
  // packages/cli/src/commands/db-migrate.ts
2908
2926
  import { spawn } from "child_process";
2909
- import { existsSync as existsSync4 } from "fs";
2910
- import { resolve as resolve18 } from "path";
2927
+ import { existsSync as existsSync5 } from "fs";
2928
+ import { resolve as resolve19 } from "path";
2911
2929
  var dbMigrateCommand = {
2912
2930
  name: "db:migrate",
2913
2931
  aliases: ["db:m", "migrate"],
@@ -2942,15 +2960,15 @@ var dbMigrateCommand = {
2942
2960
  }
2943
2961
  ],
2944
2962
  async run(ctx) {
2945
- const folder = ctx.flags["folder"] ?? resolve18(ctx.cwd, ctx.config.paths.migrations);
2963
+ const folder = ctx.flags["folder"] ?? resolve19(ctx.cwd, ctx.config.paths.migrations);
2946
2964
  const dialect = ctx.flags["dialect"] ?? ctx.config.dialect ?? "bun-sqlite";
2947
- const configPath = ctx.flags["config"] ?? resolve18(ctx.cwd, "drizzle.config.ts");
2965
+ const configPath = ctx.flags["config"] ?? resolve19(ctx.cwd, "drizzle.config.ts");
2948
2966
  const wantStatus = Boolean(ctx.flags["status"]);
2949
2967
  const generateName = ctx.flags["generate"];
2950
2968
  if (generateName) {
2951
2969
  return runDrizzleKit(ctx.cwd, [
2952
2970
  "generate",
2953
- ...existsSync4(configPath) ? [`--config=${configPath}`] : [],
2971
+ ...existsSync5(configPath) ? [`--config=${configPath}`] : [],
2954
2972
  "--name",
2955
2973
  generateName
2956
2974
  ]);
@@ -2960,7 +2978,7 @@ var dbMigrateCommand = {
2960
2978
  }
2961
2979
  return runDrizzleKit(ctx.cwd, [
2962
2980
  "migrate",
2963
- ...existsSync4(configPath) ? [`--config=${configPath}`] : []
2981
+ ...existsSync5(configPath) ? [`--config=${configPath}`] : []
2964
2982
  ]);
2965
2983
  }
2966
2984
  };
@@ -2981,7 +2999,7 @@ function runDrizzleKit(cwd, args2) {
2981
2999
  });
2982
3000
  }
2983
3001
  async function runStatus(cwd, folder, dialect, configUrl = "") {
2984
- if (!existsSync4(folder)) {
3002
+ if (!existsSync5(folder)) {
2985
3003
  logger.warn(`migrations folder not found: ${folder}`);
2986
3004
  return 0;
2987
3005
  }
@@ -3005,7 +3023,7 @@ const applied = await svc.appliedMigrations();
3005
3023
  console.log(JSON.stringify({ total: applied.length, applied }, null, 2));
3006
3024
  await svc.close();
3007
3025
  `;
3008
- const tmpFile = resolve18(cwd, ".nx-migrate-status.mjs");
3026
+ const tmpFile = resolve19(cwd, ".nx-migrate-status.mjs");
3009
3027
  await import("fs/promises").then((m) => m.writeFile(tmpFile, script, "utf-8"));
3010
3028
  try {
3011
3029
  const code = await new Promise((resP) => {
@@ -3029,7 +3047,7 @@ function readEnvUrl(dialect) {
3029
3047
  var db_migrate_default = dbMigrateCommand;
3030
3048
 
3031
3049
  // packages/cli/src/commands/db-generate.ts
3032
- import { resolve as resolve19 } from "path";
3050
+ import { resolve as resolve20 } from "path";
3033
3051
  var dbGenerateCommand = {
3034
3052
  name: "db:generate",
3035
3053
  aliases: ["db:g", "db-generate", "generate-migration"],
@@ -3062,7 +3080,7 @@ var dbGenerateCommand = {
3062
3080
  logger.info(`Generating raw SQL migration: ${name} (dialect=${dialect})`);
3063
3081
  return runSqlTemplate(ctx.cwd, name, dialect);
3064
3082
  }
3065
- const configPath = resolve19(ctx.cwd, "drizzle.config.ts");
3083
+ const configPath = resolve20(ctx.cwd, "drizzle.config.ts");
3066
3084
  const args2 = ["generate", "--config", configPath];
3067
3085
  if (name)
3068
3086
  args2.push("--name", name);
@@ -3096,9 +3114,9 @@ var db_generate_default = dbGenerateCommand;
3096
3114
 
3097
3115
  // packages/cli/src/commands/db-seed.ts
3098
3116
  import { spawn as spawn2 } from "child_process";
3099
- import { existsSync as existsSync5 } from "fs";
3117
+ import { existsSync as existsSync6 } from "fs";
3100
3118
  import { mkdir, readdir, writeFile as writeFile2, unlink } from "fs/promises";
3101
- import { resolve as resolve20 } from "path";
3119
+ import { resolve as resolve21 } from "path";
3102
3120
  var SEED_TEMPLATE = `/**
3103
3121
  * Seed: {name}
3104
3122
  *
@@ -3159,7 +3177,7 @@ var dbSeedCommand = {
3159
3177
  }
3160
3178
  ],
3161
3179
  async run(ctx) {
3162
- const folder = resolve20(ctx.cwd, ctx.flags["folder"] ?? ctx.config.paths?.seeds ?? "db/seeds");
3180
+ const folder = resolve21(ctx.cwd, ctx.flags["folder"] ?? ctx.config.paths?.seeds ?? "db/seeds");
3163
3181
  const dialect = ctx.flags["dialect"] ?? ctx.config.dialect ?? "bun-sqlite";
3164
3182
  const createName = ctx.flags["create"];
3165
3183
  const fileName = ctx.flags["file"];
@@ -3167,10 +3185,10 @@ var dbSeedCommand = {
3167
3185
  if (createName) {
3168
3186
  return await createSeedFile(folder, createName);
3169
3187
  }
3170
- if (!existsSync5(folder)) {
3188
+ if (!existsSync6(folder)) {
3171
3189
  logger.info(`creating empty seeds folder at ${folder}`);
3172
3190
  await mkdir(folder, { recursive: true });
3173
- await writeFile2(resolve20(folder, "_README.ts"), `// Seed files go here. Run with: nx db:seed
3191
+ await writeFile2(resolve21(folder, "_README.ts"), `// Seed files go here. Run with: nx db:seed
3174
3192
  `, "utf-8");
3175
3193
  return 0;
3176
3194
  }
@@ -3194,7 +3212,7 @@ var dbSeedCommand = {
3194
3212
  if (reset) {
3195
3213
  logger.warn("--reset is set: truncating every table in the schema before running seeds.");
3196
3214
  }
3197
- const seedImports = target.map((f, i) => `import seed_${i} from ${JSON.stringify(resolve20(folder, f))};`).join(`
3215
+ const seedImports = target.map((f, i) => `import seed_${i} from ${JSON.stringify(resolve21(folder, f))};`).join(`
3198
3216
  `);
3199
3217
  const seedCalls = target.map((_, i) => ` await seed_${i}({ db, logger, dialect, truncate: (t) => db.truncate(t) });`).join(`
3200
3218
  `);
@@ -3227,7 +3245,7 @@ ${seedCalls}
3227
3245
  await db.close();
3228
3246
  logger.info(\`Seeds complete (\${${target.length}} file(s))\`);
3229
3247
  `;
3230
- const tmpFile = resolve20(ctx.cwd, ".nx-db-seed.mjs");
3248
+ const tmpFile = resolve21(ctx.cwd, ".nx-db-seed.mjs");
3231
3249
  await writeFile2(tmpFile, script, "utf-8");
3232
3250
  try {
3233
3251
  const code = await new Promise((resP) => {
@@ -3265,15 +3283,15 @@ async function createSeedFile(folder, name) {
3265
3283
  logger.error(`invalid seed name "${name}" \u2014 use letters, numbers, dash, underscore.`);
3266
3284
  return 1;
3267
3285
  }
3268
- if (!existsSync5(folder))
3286
+ if (!existsSync6(folder))
3269
3287
  await mkdir(folder, { recursive: true });
3270
3288
  let candidate = `${name}.ts`;
3271
3289
  let i = 1;
3272
- while (existsSync5(resolve20(folder, candidate))) {
3290
+ while (existsSync6(resolve21(folder, candidate))) {
3273
3291
  candidate = `${name}_${i}.ts`;
3274
3292
  i++;
3275
3293
  }
3276
- const path = resolve20(folder, candidate);
3294
+ const path = resolve21(folder, candidate);
3277
3295
  const body = SEED_TEMPLATE.replace(/\{name\}/g, name);
3278
3296
  await writeFile2(path, body, "utf-8");
3279
3297
  logger.info(`created ${path}`);
@@ -3284,7 +3302,7 @@ function readEnvUrl2(dialect) {
3284
3302
  return url ?? null;
3285
3303
  }
3286
3304
  function relativeImport(cwd, target) {
3287
- const abs = resolve20(cwd, target);
3305
+ const abs = resolve21(cwd, target);
3288
3306
  let rel = abs;
3289
3307
  if (rel.startsWith(cwd))
3290
3308
  rel = rel.slice(cwd.length);
@@ -3297,8 +3315,8 @@ function relativeImport(cwd, target) {
3297
3315
  var db_seed_default = dbSeedCommand;
3298
3316
 
3299
3317
  // packages/cli/src/commands/new.ts
3300
- import { existsSync as existsSync6, mkdirSync as mkdirSync4, writeFileSync as writeFileSync3 } from "fs";
3301
- import { resolve as resolve21 } from "path";
3318
+ import { existsSync as existsSync7, mkdirSync as mkdirSync4, writeFileSync as writeFileSync3 } from "fs";
3319
+ import { resolve as resolve22 } from "path";
3302
3320
  var newCommand = {
3303
3321
  name: "new",
3304
3322
  aliases: ["n"],
@@ -3333,8 +3351,8 @@ var newCommand = {
3333
3351
  return 1;
3334
3352
  }
3335
3353
  const interactive = !flagBool(ctx.flags, "no-interaction", false);
3336
- const target = resolve21(ctx.cwd, name);
3337
- if (existsSync6(target)) {
3354
+ const target = resolve22(ctx.cwd, name);
3355
+ if (existsSync7(target)) {
3338
3356
  logger.error(`Directory already exists: ${target}`);
3339
3357
  return 1;
3340
3358
  }
@@ -3359,21 +3377,21 @@ var newCommand = {
3359
3377
  default: "react"
3360
3378
  });
3361
3379
  const ssr = !flagBool(ctx.flags, "no-ssr", false);
3362
- mkdirSync4(resolve21(target, "app"), { recursive: true });
3380
+ mkdirSync4(resolve22(target, "app"), { recursive: true });
3363
3381
  if (view !== "none") {
3364
- mkdirSync4(resolve21(target, "resources/views"), { recursive: true });
3382
+ mkdirSync4(resolve22(target, "resources/views"), { recursive: true });
3365
3383
  }
3366
- mkdirSync4(resolve21(target, "public"), { recursive: true });
3367
- writeFileSync3(resolve21(target, "public/.gitkeep"), "");
3384
+ mkdirSync4(resolve22(target, "public"), { recursive: true });
3385
+ writeFileSync3(resolve22(target, "public/.gitkeep"), "");
3368
3386
  if (view !== "none") {
3369
- writeFileSync3(resolve21(target, "resources/views/welcome.html"), `<h1>Welcome to ${name}</h1>
3387
+ writeFileSync3(resolve22(target, "resources/views/welcome.html"), `<h1>Welcome to ${name}</h1>
3370
3388
  <p>This is a sample Rendu template.</p>
3371
3389
  <p>Founded <?= year ?>.</p>
3372
3390
  `);
3373
3391
  }
3374
- writeFileSync3(resolve21(target, ".env"), generateEnvFile());
3375
- writeFileSync3(resolve21(target, ".env.local"), generateEnvLocalFile());
3376
- writeFileSync3(resolve21(target, ".gitignore"), generateGitIgnore());
3392
+ writeFileSync3(resolve22(target, ".env"), generateEnvFile());
3393
+ writeFileSync3(resolve22(target, ".env.local"), generateEnvLocalFile());
3394
+ writeFileSync3(resolve22(target, ".gitignore"), generateGitIgnore());
3377
3395
  const code = render(templates.project["nx.config.ts"], {
3378
3396
  routing,
3379
3397
  view,
@@ -3385,7 +3403,7 @@ var newCommand = {
3385
3403
  inertiaSSR: ssr,
3386
3404
  inertiaVersion: "1.0.0"
3387
3405
  });
3388
- writeFileSync3(resolve21(target, "nx.config.ts"), code);
3406
+ writeFileSync3(resolve22(target, "nx.config.ts"), code);
3389
3407
  const deps = {
3390
3408
  "@nexusts/core": "*",
3391
3409
  "reflect-metadata": "^0.2.2",
@@ -3399,7 +3417,7 @@ var newCommand = {
3399
3417
  if (view !== "none") {
3400
3418
  deps["@nexusts/static"] = "*";
3401
3419
  }
3402
- writeFileSync3(resolve21(target, "package.json"), JSON.stringify({
3420
+ writeFileSync3(resolve22(target, "package.json"), JSON.stringify({
3403
3421
  name,
3404
3422
  version: "0.1.0",
3405
3423
  type: "module",
@@ -3412,7 +3430,7 @@ var newCommand = {
3412
3430
  },
3413
3431
  dependencies: deps
3414
3432
  }, null, 2));
3415
- writeFileSync3(resolve21(target, "tsconfig.json"), `{
3433
+ writeFileSync3(resolve22(target, "tsconfig.json"), `{
3416
3434
  "compilerOptions": {
3417
3435
  "target": "ES2022",
3418
3436
  "module": "ESNext",
@@ -3433,7 +3451,7 @@ const staticMiddleware = StaticModule.mount({ root: './public', prefix: '/static
3433
3451
  ` : "";
3434
3452
  const staticOption = hasView ? `
3435
3453
  middleware: [staticMiddleware],` : "";
3436
- writeFileSync3(resolve21(target, "app/main.ts"), `import 'reflect-metadata';
3454
+ writeFileSync3(resolve22(target, "app/main.ts"), `import 'reflect-metadata';
3437
3455
  import { Application } from '@nexusts/core';
3438
3456
  ${staticImport}import { AppModule } from './app.module.js';
3439
3457
 
@@ -3453,7 +3471,7 @@ console.log('[nexus] Listening on http://localhost:' + (process.env['PORT'] ?? 3
3453
3471
  connection: { filename: 'app.db' },
3454
3472
  logging: true,
3455
3473
  })` : "";
3456
- writeFileSync3(resolve21(target, "app/app.module.ts"), `${ormImport}import { Module } from '@nexusts/core';
3474
+ writeFileSync3(resolve22(target, "app/app.module.ts"), `${ormImport}import { Module } from '@nexusts/core';
3457
3475
  import { HomeController } from './controllers/home.controller.js';
3458
3476
 
3459
3477
  @Module({
@@ -3464,12 +3482,12 @@ ${ormBlock},
3464
3482
  })
3465
3483
  export class AppModule {}
3466
3484
  `);
3467
- mkdirSync4(resolve21(target, "app/controllers"), { recursive: true });
3485
+ mkdirSync4(resolve22(target, "app/controllers"), { recursive: true });
3468
3486
  const homeViewReturn = view !== "none" ? `{
3469
3487
  view: 'welcome.html',
3470
3488
  data: { year: new Date().getFullYear() },
3471
3489
  }` : `{ status: 200, body: { message: 'Hello from NexusTS!' } }`;
3472
- writeFileSync3(resolve21(target, "app/controllers/home.controller.ts"), `import { Controller, Get } from '@nexusts/core';
3490
+ writeFileSync3(resolve22(target, "app/controllers/home.controller.ts"), `import { Controller, Get } from '@nexusts/core';
3473
3491
 
3474
3492
  @Controller('/')
3475
3493
  export class HomeController {
@@ -3479,7 +3497,7 @@ export class HomeController {
3479
3497
  }
3480
3498
  }
3481
3499
  `);
3482
- writeFileSync3(resolve21(target, "README.md"), `# ${name}
3500
+ writeFileSync3(resolve22(target, "README.md"), `# ${name}
3483
3501
 
3484
3502
  A new Nexus project.
3485
3503
 
@@ -3560,8 +3578,8 @@ dist/
3560
3578
  var new_default = newCommand;
3561
3579
 
3562
3580
  // packages/cli/src/commands/config.ts
3563
- import { existsSync as existsSync7, readFileSync as readFileSync4, writeFileSync as writeFileSync4 } from "fs";
3564
- import { resolve as resolve22 } from "path";
3581
+ import { existsSync as existsSync8, readFileSync as readFileSync5, writeFileSync as writeFileSync4 } from "fs";
3582
+ import { resolve as resolve23 } from "path";
3565
3583
  var DEFAULT_VALUES = {
3566
3584
  routing: "nest",
3567
3585
  view: "rendu",
@@ -3575,9 +3593,9 @@ var DEFAULT_VALUES = {
3575
3593
  };
3576
3594
  function parseExistingConfig(path) {
3577
3595
  const out = { ...DEFAULT_VALUES };
3578
- if (!existsSync7(path))
3596
+ if (!existsSync8(path))
3579
3597
  return out;
3580
- const src = readFileSync4(path, "utf8");
3598
+ const src = readFileSync5(path, "utf8");
3581
3599
  const grab = (re) => {
3582
3600
  const m = src.match(re);
3583
3601
  return m?.[1];
@@ -3676,12 +3694,12 @@ var configCommand = {
3676
3694
  async run(ctx) {
3677
3695
  const interactive = !flagBool(ctx.flags, "no-interaction", false);
3678
3696
  const force = flagBool(ctx.flags, "force", false);
3679
- const target = resolve22(ctx.cwd, ctx.flags["target"] ?? ".");
3680
- if (!existsSync7(target)) {
3697
+ const target = resolve23(ctx.cwd, ctx.flags["target"] ?? ".");
3698
+ if (!existsSync8(target)) {
3681
3699
  logger.error(`Target directory does not exist: ${target}`);
3682
3700
  return 1;
3683
3701
  }
3684
- const nxConfigPath = resolve22(target, "nx.config.ts");
3702
+ const nxConfigPath = resolve23(target, "nx.config.ts");
3685
3703
  const values = parseExistingConfig(nxConfigPath);
3686
3704
  const flag = (k) => ctx.flags[k];
3687
3705
  const flagBoolStrict = (k, def) => flagBool(ctx.flags, k, def);
@@ -3705,7 +3723,7 @@ var configCommand = {
3705
3723
  if (flagBoolStrict("no-ssr", false))
3706
3724
  values.inertiaSSR = false;
3707
3725
  const anyFlag = Object.values(ctx.flags).some((v) => v !== undefined && v !== false);
3708
- if (interactive && !anyFlag && !existsSync7(nxConfigPath)) {
3726
+ if (interactive && !anyFlag && !existsSync8(nxConfigPath)) {
3709
3727
  values.routing = await select("Routing style", ["nest", "adonis", "functional"], {
3710
3728
  interactive,
3711
3729
  default: values.routing
@@ -3724,7 +3742,7 @@ var configCommand = {
3724
3742
  if (flag("db-url") === undefined && flag("db") !== undefined) {
3725
3743
  values.dbUrl = defaultDbUrl(values.dbDriver);
3726
3744
  }
3727
- const existed = existsSync7(nxConfigPath);
3745
+ const existed = existsSync8(nxConfigPath);
3728
3746
  if (existed && !force) {
3729
3747
  if (anyFlag) {
3730
3748
  writeNxConfig(target, values);
@@ -3736,18 +3754,18 @@ var configCommand = {
3736
3754
  writeNxConfig(target, values);
3737
3755
  logger.info(` + nx.config.ts`);
3738
3756
  }
3739
- const drizzleConfigPath = resolve22(target, "drizzle.config.ts");
3757
+ const drizzleConfigPath = resolve23(target, "drizzle.config.ts");
3740
3758
  if (values.orm === "drizzle") {
3741
3759
  const dialect = driverToDialect(values.dbDriver);
3742
3760
  const dbUrl = values.dbUrl;
3743
- const existedDrizzle = existsSync7(drizzleConfigPath);
3761
+ const existedDrizzle = existsSync8(drizzleConfigPath);
3744
3762
  if (existedDrizzle && !force && !anyFlag) {
3745
3763
  logger.info(` - drizzle.config.ts (unchanged; pass --force or a flag to update)`);
3746
3764
  } else {
3747
3765
  writeDrizzleConfig(target, { dialect, dbUrl });
3748
3766
  logger.info(` ${existedDrizzle ? "~" : "+"} drizzle.config.ts`);
3749
3767
  }
3750
- } else if (existsSync7(drizzleConfigPath)) {
3768
+ } else if (existsSync8(drizzleConfigPath)) {
3751
3769
  logger.info(` - drizzle.config.ts (left as-is; ORM is '${values.orm}', not 'drizzle')`);
3752
3770
  }
3753
3771
  logger.blank();
@@ -3764,29 +3782,43 @@ var configCommand = {
3764
3782
  };
3765
3783
  function writeNxConfig(target, values) {
3766
3784
  const code = render(templates.project["nx.config.ts"], values);
3767
- writeFileSync4(resolve22(target, "nx.config.ts"), code);
3785
+ writeFileSync4(resolve23(target, "nx.config.ts"), code);
3768
3786
  }
3769
3787
  function writeDrizzleConfig(target, values) {
3770
3788
  const code = render(templates.project["drizzle.config.ts"], values);
3771
- writeFileSync4(resolve22(target, "drizzle.config.ts"), code);
3789
+ writeFileSync4(resolve23(target, "drizzle.config.ts"), code);
3772
3790
  }
3773
3791
  var config_default = configCommand;
3774
3792
 
3775
3793
  // packages/cli/src/commands/repl.ts
3776
3794
  import {
3777
- existsSync as existsSync8,
3795
+ existsSync as existsSync9,
3778
3796
  mkdirSync as mkdirSync5,
3779
- readFileSync as readFileSync5,
3797
+ readFileSync as readFileSync6,
3780
3798
  writeFileSync as writeFileSync5
3781
3799
  } from "fs";
3782
- import { dirname as dirname3, resolve as resolve23 } from "path";
3800
+ import { dirname as dirname4, resolve as resolve24 } from "path";
3783
3801
  import * as readline from "readline";
3784
3802
  import * as vm from "vm";
3785
- var BANNER = `
3786
- \u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E
3787
- \u2502 NexusTS REPL \u2502
3788
- \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F
3789
- `;
3803
+ var BANNER = (() => {
3804
+ const W = 49;
3805
+ const dash = "\u2500".repeat(W);
3806
+ const ver = `v${VERSION}`;
3807
+ const verLen = ver.length;
3808
+ const TITLE = "NexusTS REPL";
3809
+ const HINT = "Type .help for available commands";
3810
+ const titleGap = " ".repeat(W - 2 - TITLE.length - verLen - 1);
3811
+ const hintGap = " ".repeat(W - 2 - HINT.length);
3812
+ const L = (s) => `\u2502${s}\u2502`;
3813
+ return [
3814
+ `\u256D${dash}\u256E`,
3815
+ L(` ${TITLE}${titleGap}${ver} `),
3816
+ L(" ".repeat(W)),
3817
+ L(` ${HINT}${hintGap}`),
3818
+ `\u2570${dash}\u256F`
3819
+ ].join(`
3820
+ `);
3821
+ })();
3790
3822
  var HELP = `
3791
3823
  Available commands:
3792
3824
  .help Show this help
@@ -3813,11 +3845,11 @@ Examples:
3813
3845
  > app.container.size
3814
3846
  `;
3815
3847
  var PRELOAD = [
3816
- ["db", "../../drizzle/drizzle.service.js", "DrizzleService"],
3817
- ["logger", "../../logger/logger.service.js", "LoggerService"],
3818
- ["cfg", "../../config/config.service.js", "ConfigService"],
3819
- ["cache", "../../cache/cache.service.js", "CacheService"],
3820
- ["events", "../../events/event.service.js", "EventService"]
3848
+ ["db", "@nexusts/drizzle", "DrizzleService"],
3849
+ ["logger", "@nexusts/logger", "Logger"],
3850
+ ["cfg", "@nexusts/config", "ConfigService"],
3851
+ ["cache", "@nexusts/cache", "CacheService"],
3852
+ ["events", "@nexusts/events", "EventService"]
3821
3853
  ];
3822
3854
  var replCommand = {
3823
3855
  name: "repl",
@@ -3847,11 +3879,11 @@ var replCommand = {
3847
3879
  async run(ctx) {
3848
3880
  const mod = ctx.flags["module"];
3849
3881
  const noBoot = Boolean(ctx.flags["no-boot"]);
3850
- const histPath = resolve23(ctx.cwd, ctx.flags["history"] ?? ".nx-repl-history");
3882
+ const histPath = resolve24(ctx.cwd, ctx.flags["history"] ?? ".nx-repl-history");
3851
3883
  const env = { console };
3852
3884
  if (!noBoot) {
3853
- const modPath = resolve23(ctx.cwd, mod ?? "app/app.module.ts");
3854
- if (!existsSync8(modPath)) {
3885
+ const modPath = resolve24(ctx.cwd, mod ?? "app/app.module.ts");
3886
+ if (!existsSync9(modPath)) {
3855
3887
  logger.error(`module not found: ${modPath}`);
3856
3888
  logger.info("pass --module <path> or --no-boot to skip booting");
3857
3889
  return 1;
@@ -4016,19 +4048,29 @@ async function preloadService(env, app, name, path, className) {
4016
4048
  try {
4017
4049
  const mod = await import(path);
4018
4050
  const ServiceClass = mod[className];
4019
- if (!ServiceClass)
4051
+ if (!ServiceClass) {
4052
+ logger.debug(`repl: ${className} not found in ${path}`);
4020
4053
  return;
4054
+ }
4021
4055
  const Token = ServiceClass.TOKEN ?? ServiceClass[`${className.toUpperCase()}_TOKEN`];
4022
- if (!Token)
4056
+ if (!Token) {
4057
+ logger.debug(`repl: ${className}.TOKEN not found`);
4023
4058
  return;
4059
+ }
4024
4060
  try {
4025
4061
  env[name] = app.container.resolve(Token);
4062
+ logger.debug(`repl: loaded ${name} (${className})`);
4026
4063
  } catch {
4027
4064
  try {
4028
4065
  env[name] = app.container.resolve(ServiceClass);
4029
- } catch {}
4066
+ logger.debug(`repl: loaded ${name} (${className}) via class`);
4067
+ } catch {
4068
+ logger.debug(`repl: ${name} (${className}) not registered in container`);
4069
+ }
4030
4070
  }
4031
- } catch {}
4071
+ } catch {
4072
+ logger.debug(`repl: ${path} not installed \u2014 skipping ${name}`);
4073
+ }
4032
4074
  }
4033
4075
  function listServices(container) {
4034
4076
  if (!container)
@@ -4121,10 +4163,10 @@ function formatError(e) {
4121
4163
  `) : e.message;
4122
4164
  }
4123
4165
  function loadHistory(path) {
4124
- if (!existsSync8(path))
4166
+ if (!existsSync9(path))
4125
4167
  return [];
4126
4168
  try {
4127
- return readFileSync5(path, "utf-8").split(`
4169
+ return readFileSync6(path, "utf-8").split(`
4128
4170
  `).filter(Boolean);
4129
4171
  } catch {
4130
4172
  return [];
@@ -4132,8 +4174,8 @@ function loadHistory(path) {
4132
4174
  }
4133
4175
  function saveHistoryFile(path, history) {
4134
4176
  try {
4135
- const dir = dirname3(path);
4136
- if (!existsSync8(dir))
4177
+ const dir = dirname4(path);
4178
+ if (!existsSync9(dir))
4137
4179
  mkdirSync5(dir, { recursive: true });
4138
4180
  writeFileSync5(path, history.slice(-1000).join(`
4139
4181
  `));
@@ -4143,7 +4185,7 @@ var repl_default = replCommand;
4143
4185
 
4144
4186
  // packages/cli/src/commands/route-list.ts
4145
4187
  import { readdirSync, statSync as statSync2 } from "fs";
4146
- import { resolve as resolve24 } from "path";
4188
+ import { resolve as resolve25 } from "path";
4147
4189
  var routeListCommand = {
4148
4190
  name: "route:list",
4149
4191
  aliases: ["routes", "route-list"],
@@ -4153,7 +4195,7 @@ var routeListCommand = {
4153
4195
  { name: "format", description: "Output format: table (default) | json" }
4154
4196
  ],
4155
4197
  async run(ctx) {
4156
- const controllersDir = resolve24(ctx.cwd, ctx.config.paths.controllers);
4198
+ const controllersDir = resolve25(ctx.cwd, ctx.config.paths.controllers);
4157
4199
  try {
4158
4200
  statSync2(controllersDir);
4159
4201
  } catch {
@@ -4167,7 +4209,7 @@ var routeListCommand = {
4167
4209
  }
4168
4210
  const routes = [];
4169
4211
  for (const file of files) {
4170
- const fullPath = resolve24(controllersDir, file);
4212
+ const fullPath = resolve25(controllersDir, file);
4171
4213
  try {
4172
4214
  const mod = await import(`${fullPath}?t=${Date.now()}`);
4173
4215
  for (const exportName of Object.keys(mod)) {
@@ -4367,5 +4409,5 @@ main().then((code) => process.exit(code)).catch((err) => {
4367
4409
  process.exit(1);
4368
4410
  });
4369
4411
 
4370
- //# debugId=46928ABDDF8EB83F64756E2164756E21
4412
+ //# debugId=9D68E94AB6C5D92664756E2164756E21
4371
4413
  //# sourceMappingURL=index.js.map