@donotdev/cli 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dependencies-matrix.json +76 -34
  2. package/dist/bin/commands/build.js +165 -161
  3. package/dist/bin/commands/bump.js +172 -160
  4. package/dist/bin/commands/cacheout.js +163 -157
  5. package/dist/bin/commands/create-app.js +205 -163
  6. package/dist/bin/commands/create-project.js +176 -161
  7. package/dist/bin/commands/deploy.js +480 -472
  8. package/dist/bin/commands/dev.js +164 -158
  9. package/dist/bin/commands/emu.js +164 -158
  10. package/dist/bin/commands/format.js +163 -157
  11. package/dist/bin/commands/lint.js +166 -157
  12. package/dist/bin/commands/make-admin.d.ts +11 -0
  13. package/dist/bin/commands/make-admin.d.ts.map +1 -0
  14. package/dist/bin/commands/make-admin.js +12 -0
  15. package/dist/bin/commands/make-admin.js.map +1 -0
  16. package/dist/bin/commands/preview.js +164 -158
  17. package/dist/bin/commands/sync-secrets.js +164 -158
  18. package/dist/bin/commands/wai.d.ts +11 -0
  19. package/dist/bin/commands/wai.d.ts.map +1 -0
  20. package/dist/bin/commands/wai.js +12 -0
  21. package/dist/bin/commands/wai.js.map +1 -0
  22. package/dist/bin/dndev.js +24 -8
  23. package/dist/bin/donotdev.js +24 -8
  24. package/dist/index.js +557 -514
  25. package/package.json +1 -1
  26. package/templates/app-demo/index.html.example +4 -0
  27. package/templates/app-demo/src/App.tsx.example +28 -10
  28. package/templates/app-demo/src/config/app.ts.example +68 -0
  29. package/templates/app-next/src/app/ClientLayout.tsx.example +4 -3
  30. package/templates/app-next/src/app/layout.tsx.example +17 -25
  31. package/templates/app-next/src/config/app.ts.example +75 -48
  32. package/templates/app-next/src/globals.css.example +10 -7
  33. package/templates/app-next/src/locales/dndev_en.json.example +68 -0
  34. package/templates/app-next/src/pages/locales/example_en.json.example +5 -0
  35. package/templates/app-vite/index.html.example +71 -34
  36. package/templates/app-vite/src/config/app.ts.example +75 -47
  37. package/templates/app-vite/src/globals.css.example +14 -6
  38. package/templates/app-vite/src/locales/dndev_en.json.example +68 -0
  39. package/templates/app-vite/src/pages/FormPageExample.tsx.example +152 -0
  40. package/templates/app-vite/src/pages/HomePage.tsx.example +81 -134
  41. package/templates/app-vite/src/pages/ListPageExample.tsx.example +88 -0
  42. package/templates/functions-firebase/README.md.example +25 -0
  43. package/templates/functions-firebase/build.mjs.example +8 -1
  44. package/templates/functions-firebase/functions-firebase/build.mjs.example +8 -1
  45. package/templates/functions-firebase/functions-firebase/src/index.ts.example +19 -25
  46. package/templates/functions-firebase/functions.config.js.example +35 -0
  47. package/templates/functions-firebase/tsconfig.json.example +3 -13
  48. package/templates/functions-vercel/tsconfig.json.example +1 -13
  49. package/templates/root-consumer/entities/ExampleEntity.ts.example +223 -0
  50. package/templates/root-consumer/entities/demo.ts.example +562 -0
  51. package/templates/root-consumer/entities/index.ts.example +15 -0
  52. package/templates/root-consumer/firebase.json.example +1 -1
  53. package/templates/root-consumer/guides/{AGENT_START_HERE.md.example → dndev/AGENT_START_HERE.md.example} +22 -0
  54. package/templates/root-consumer/guides/{COMPONENTS_ADV.md.example → dndev/COMPONENTS_ADV.md.example} +456 -360
  55. package/templates/root-consumer/guides/{COMPONENTS_ATOMIC.md.example → dndev/COMPONENTS_ATOMIC.md.example} +42 -0
  56. package/templates/root-consumer/guides/dndev/COMPONENTS_CRUD.md.example +231 -0
  57. package/templates/root-consumer/guides/{INDEX.md.example → dndev/INDEX.md.example} +3 -0
  58. package/templates/root-consumer/guides/{SETUP_APP_CONFIG.md.example → dndev/SETUP_APP_CONFIG.md.example} +5 -2
  59. package/templates/root-consumer/guides/{SETUP_AUTH.md.example → dndev/SETUP_AUTH.md.example} +30 -0
  60. package/templates/root-consumer/guides/{SETUP_BILLING.md.example → dndev/SETUP_BILLING.md.example} +44 -4
  61. package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +473 -0
  62. package/templates/root-consumer/guides/dndev/SETUP_FUNCTIONS.md.example +116 -0
  63. package/templates/root-consumer/guides/{SETUP_PAGES.md.example → dndev/SETUP_PAGES.md.example} +17 -0
  64. package/templates/root-consumer/guides/dndev/SETUP_PWA.md.example +213 -0
  65. package/templates/root-consumer/guides/dndev/USE_ROUTING.md.example +503 -0
  66. package/templates/root-consumer/guides/wai-way/WAI_WAY_CLI.md.example +404 -0
  67. package/templates/root-consumer/guides/wai-way/agents/architect.md.example +78 -0
  68. package/templates/root-consumer/guides/wai-way/agents/builder.md.example +87 -0
  69. package/templates/root-consumer/guides/wai-way/agents/extractor.md.example +325 -0
  70. package/templates/root-consumer/guides/wai-way/agents/polisher.md.example +100 -0
  71. package/templates/root-consumer/guides/wai-way/blueprints/0_brainstorm.md.example +281 -0
  72. package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +77 -0
  73. package/templates/root-consumer/guides/wai-way/blueprints/2_entities.md.example +104 -0
  74. package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +124 -0
  75. package/templates/root-consumer/guides/wai-way/blueprints/4_configure.md.example +165 -0
  76. package/templates/root-consumer/guides/wai-way/context_map.json.example +95 -0
  77. package/templates/root-consumer/guides/wai-way/entity_patterns.md.example +840 -0
  78. package/templates/root-consumer/guides/wai-way/page_patterns.md.example +686 -0
  79. package/templates/root-consumer/guides/wai-way/presets_guide.md.example +217 -0
  80. package/templates/root-consumer/guides/wai-way/spec_template.md.example +312 -0
  81. package/templates/root-consumer/vercel.json.example +315 -20
  82. package/templates/app-demo/src/Routes.tsx.example +0 -20
  83. package/templates/app-vite/src/Routes.tsx.example +0 -16
  84. package/templates/app-vite/src/pages/locales/README.md.example +0 -1
  85. package/templates/functions-firebase/functions-firebase/src/crud/createEntity.ts.example +0 -19
  86. package/templates/functions-firebase/functions-firebase/src/crud/deleteEntity.ts.example +0 -14
  87. package/templates/functions-firebase/functions-firebase/src/crud/getEntity.ts.example +0 -14
  88. package/templates/functions-firebase/functions-firebase/src/crud/index.ts.example +0 -12
  89. package/templates/functions-firebase/functions-firebase/src/crud/listEntities.ts.example +0 -14
  90. package/templates/functions-firebase/functions-firebase/src/crud/updateEntity.ts.example +0 -14
  91. package/templates/root-consumer/guides/COMPONENTS_CRUD.md.example +0 -70
  92. package/templates/root-consumer/guides/SETUP_FUNCTIONS.md.example +0 -62
  93. /package/templates/root-consumer/guides/{COMPONENTS_UI.md.example → dndev/COMPONENTS_UI.md.example} +0 -0
  94. /package/templates/root-consumer/guides/{ENV_SETUP.md.example → dndev/ENV_SETUP.md.example} +0 -0
  95. /package/templates/root-consumer/guides/{SETUP_I18N.md.example → dndev/SETUP_I18N.md.example} +0 -0
  96. /package/templates/root-consumer/guides/{SETUP_LAYOUTS.md.example → dndev/SETUP_LAYOUTS.md.example} +0 -0
  97. /package/templates/root-consumer/guides/{SETUP_OAUTH.md.example → dndev/SETUP_OAUTH.md.example} +0 -0
  98. /package/templates/root-consumer/guides/{SETUP_THEMES.md.example → dndev/SETUP_THEMES.md.example} +0 -0
  99. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/APP_CHECK.md.example +0 -0
  100. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/COOKIE_REFERENCE.md.example +0 -0
  101. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/EMULATORS.md.example +0 -0
  102. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/VERSION_CONTROL.md.example +0 -0
@@ -765,155 +765,6 @@ var init_cli_output = __esm({
765
765
  }
766
766
  });
767
767
 
768
- // packages/core/config/constants.js
769
- function getPatternsFor(type, repoRoot = null) {
770
- const patterns = SCAN_PATTERNS[type];
771
- if (!patterns) {
772
- throw new Error(`Unknown pattern type: ${type}`);
773
- }
774
- if (repoRoot && patterns.framework) {
775
- return {
776
- ...patterns,
777
- framework: patterns.framework.map((pattern) => `${repoRoot}/${pattern}`)
778
- };
779
- }
780
- return patterns;
781
- }
782
- function getGlobOptionsFor(type) {
783
- return GLOB_OPTIONS[type] || GLOB_OPTIONS.base;
784
- }
785
- var I18N_PATHS, SCAN_PATTERNS, GLOB_OPTIONS;
786
- var init_constants = __esm({
787
- "packages/core/config/constants.js"() {
788
- "use strict";
789
- init_utils();
790
- I18N_PATHS = {
791
- // Monorepo source structure (locales at root, not in src/)
792
- SOURCE_ROOT: "packages/core/i18n",
793
- SOURCE_LOCALES: "packages/core/i18n/locales",
794
- SOURCE_EAGER: "packages/core/i18n/locales/eager",
795
- SOURCE_LAZY: "packages/core/i18n/locales/lazy",
796
- // Published structure (same as source - no flattening needed)
797
- PUBLISHED_ROOT: "i18n",
798
- PUBLISHED_LOCALES: "i18n/locales",
799
- PUBLISHED_EAGER: "i18n/locales/eager",
800
- PUBLISHED_LAZY: "i18n/locales/lazy"
801
- };
802
- SCAN_PATTERNS = {
803
- routes: {
804
- consumer: ["src/**/*Page.tsx", "src/pages/**/*Page.tsx"],
805
- exclude: [
806
- "**/node_modules/**",
807
- "**/dist/**",
808
- "**/build/**",
809
- "**/*.test.tsx",
810
- "**/*.stories.tsx"
811
- ],
812
- extensions: [".tsx"]
813
- },
814
- css: {
815
- consumer: ["src/**/*.css"],
816
- themes: ["src/**/*.css"],
817
- extensions: [".css", ".scss", ".sass"],
818
- framework: [
819
- "packages/ui/src/**/*.css",
820
- "packages/core/components/src/**/*.css",
821
- "packages/core/templates/src/**/*.css"
822
- ]
823
- },
824
- i18n: {
825
- eager: ["src/locales/*_*.json"],
826
- lazy: ["src/**/locales/*_*.json", "!src/locales/*_*.json"],
827
- framework: {
828
- eager: [`${I18N_PATHS.SOURCE_EAGER}/*_*.json`],
829
- lazy: [`${I18N_PATHS.SOURCE_LAZY}/*_*.json`]
830
- },
831
- extensions: [".json"]
832
- },
833
- assets: {
834
- consumer: ["public/**/*"],
835
- fallback: ["manifest.json"],
836
- modern: [
837
- "logo.svg",
838
- "favicon.svg",
839
- "apple-touch-icon.png",
840
- "android-chrome-192x192.png",
841
- "android-chrome-512x512.png"
842
- ],
843
- patterns: [
844
- "favicon.svg",
845
- "favicon.ico",
846
- "favicon-*.png",
847
- "logo.svg",
848
- "logo.png",
849
- "logo.webp",
850
- "logo.avif",
851
- "apple-touch-icon*.png",
852
- "android-chrome-*.png",
853
- "manifest.json"
854
- ],
855
- fonts: ["fonts/**/*.woff2", "fonts/**/*.woff", "fonts/**/*.ttf"],
856
- framework: ["packages/ui/assets/**/*"]
857
- },
858
- pwa: {
859
- consumer: [
860
- "public/manifest.json",
861
- "public/service-worker.js",
862
- "public/sw.js",
863
- "public/icon-192x192.png",
864
- "public/icon-512x512.png",
865
- "public/favicon.ico",
866
- "public/favicon.svg",
867
- "public/apple-touch-icon.png",
868
- "public/logo.svg"
869
- ],
870
- exclude: ["**/node_modules/**", "**/dist/**", "**/build/**"],
871
- extensions: [".json", ".js", ".png", ".svg", ".ico"],
872
- framework: ["packages/ui/assets/**/*"]
873
- },
874
- globalIgnore: [
875
- "**/node_modules/**",
876
- "**/dist/**",
877
- "**/build/**",
878
- "**/.git/**",
879
- "**/coverage/**",
880
- "**/test/**"
881
- ]
882
- };
883
- GLOB_OPTIONS = {
884
- base: {
885
- absolute: true,
886
- onlyFiles: true,
887
- ignore: SCAN_PATTERNS.globalIgnore
888
- },
889
- css: {
890
- absolute: true,
891
- onlyFiles: true,
892
- ignore: [...SCAN_PATTERNS.globalIgnore, "**/*.test.css"]
893
- },
894
- routes: {
895
- absolute: true,
896
- onlyFiles: true,
897
- ignore: [
898
- ...SCAN_PATTERNS.globalIgnore,
899
- "**/*.test.tsx",
900
- "**/*.stories.tsx"
901
- ]
902
- },
903
- i18n: {
904
- absolute: true,
905
- onlyFiles: true,
906
- ignore: SCAN_PATTERNS.globalIgnore
907
- },
908
- assets: {
909
- absolute: true,
910
- onlyFiles: true,
911
- ignore: SCAN_PATTERNS.globalIgnore
912
- }
913
- };
914
- }
915
- });
916
-
917
768
  // node_modules/.bun/fast-glob@3.3.3/node_modules/fast-glob/out/utils/array.js
918
769
  var require_array = __commonJS({
919
770
  "node_modules/.bun/fast-glob@3.3.3/node_modules/fast-glob/out/utils/array.js"(exports) {
@@ -6498,7 +6349,157 @@ var require_out4 = __commonJS({
6498
6349
  }
6499
6350
  });
6500
6351
 
6352
+ // packages/core/config/constants.js
6353
+ function getPatternsFor(type, repoRoot = null) {
6354
+ const patterns = SCAN_PATTERNS[type];
6355
+ if (!patterns) {
6356
+ throw new Error(`Unknown pattern type: ${type}`);
6357
+ }
6358
+ if (repoRoot && patterns.framework) {
6359
+ return {
6360
+ ...patterns,
6361
+ framework: patterns.framework.map((pattern) => `${repoRoot}/${pattern}`)
6362
+ };
6363
+ }
6364
+ return patterns;
6365
+ }
6366
+ function getGlobOptionsFor(type) {
6367
+ return GLOB_OPTIONS[type] || GLOB_OPTIONS.base;
6368
+ }
6369
+ var I18N_PATHS, SCAN_PATTERNS, GLOB_OPTIONS;
6370
+ var init_constants = __esm({
6371
+ "packages/core/config/constants.js"() {
6372
+ "use strict";
6373
+ init_utils();
6374
+ I18N_PATHS = {
6375
+ // Monorepo source structure (locales at root, not in src/)
6376
+ SOURCE_ROOT: "packages/core/i18n",
6377
+ SOURCE_LOCALES: "packages/core/i18n/locales",
6378
+ SOURCE_EAGER: "packages/core/i18n/locales/eager",
6379
+ SOURCE_LAZY: "packages/core/i18n/locales/lazy",
6380
+ // Published structure (same as source - no flattening needed)
6381
+ PUBLISHED_ROOT: "i18n",
6382
+ PUBLISHED_LOCALES: "i18n/locales",
6383
+ PUBLISHED_EAGER: "i18n/locales/eager",
6384
+ PUBLISHED_LAZY: "i18n/locales/lazy"
6385
+ };
6386
+ SCAN_PATTERNS = {
6387
+ routes: {
6388
+ consumer: ["src/**/*Page.tsx", "src/pages/**/*Page.tsx"],
6389
+ exclude: [
6390
+ "**/node_modules/**",
6391
+ "**/dist/**",
6392
+ "**/build/**",
6393
+ "**/*.test.tsx",
6394
+ "**/*.stories.tsx"
6395
+ ],
6396
+ extensions: [".tsx"]
6397
+ },
6398
+ css: {
6399
+ consumer: ["src/**/*.css"],
6400
+ themes: ["src/**/*.css"],
6401
+ extensions: [".css", ".scss", ".sass"],
6402
+ framework: [
6403
+ "packages/ui/src/**/*.css",
6404
+ "packages/core/components/src/**/*.css",
6405
+ "packages/core/templates/src/**/*.css"
6406
+ ]
6407
+ },
6408
+ i18n: {
6409
+ eager: ["src/locales/*_*.json"],
6410
+ lazy: ["src/**/locales/*_*.json", "!src/locales/*_*.json"],
6411
+ framework: {
6412
+ eager: [`${I18N_PATHS.SOURCE_EAGER}/*_*.json`],
6413
+ lazy: [`${I18N_PATHS.SOURCE_LAZY}/*_*.json`]
6414
+ },
6415
+ extensions: [".json"]
6416
+ },
6417
+ assets: {
6418
+ consumer: ["public/**/*"],
6419
+ fallback: ["manifest.json"],
6420
+ modern: [
6421
+ "logo.svg",
6422
+ "favicon.svg",
6423
+ "apple-touch-icon.png",
6424
+ "android-chrome-192x192.png",
6425
+ "android-chrome-512x512.png"
6426
+ ],
6427
+ patterns: [
6428
+ "favicon.svg",
6429
+ "favicon.ico",
6430
+ "favicon-*.png",
6431
+ "logo.svg",
6432
+ "logo.png",
6433
+ "logo.webp",
6434
+ "logo.avif",
6435
+ "apple-touch-icon*.png",
6436
+ "android-chrome-*.png",
6437
+ "manifest.json"
6438
+ ],
6439
+ fonts: ["fonts/**/*.woff2", "fonts/**/*.woff", "fonts/**/*.ttf"],
6440
+ framework: ["packages/ui/assets/**/*"]
6441
+ },
6442
+ pwa: {
6443
+ consumer: [
6444
+ "public/manifest.json",
6445
+ "public/service-worker.js",
6446
+ "public/sw.js",
6447
+ "public/icon-192x192.png",
6448
+ "public/icon-512x512.png",
6449
+ "public/favicon.ico",
6450
+ "public/favicon.svg",
6451
+ "public/apple-touch-icon.png",
6452
+ "public/logo.svg"
6453
+ ],
6454
+ exclude: ["**/node_modules/**", "**/dist/**", "**/build/**"],
6455
+ extensions: [".json", ".js", ".png", ".svg", ".ico"],
6456
+ framework: ["packages/ui/assets/**/*"]
6457
+ },
6458
+ globalIgnore: [
6459
+ "**/node_modules/**",
6460
+ "**/dist/**",
6461
+ "**/build/**",
6462
+ "**/.git/**",
6463
+ "**/coverage/**",
6464
+ "**/test/**"
6465
+ ]
6466
+ };
6467
+ GLOB_OPTIONS = {
6468
+ base: {
6469
+ absolute: true,
6470
+ onlyFiles: true,
6471
+ ignore: SCAN_PATTERNS.globalIgnore
6472
+ },
6473
+ css: {
6474
+ absolute: true,
6475
+ onlyFiles: true,
6476
+ ignore: [...SCAN_PATTERNS.globalIgnore, "**/*.test.css"]
6477
+ },
6478
+ routes: {
6479
+ absolute: true,
6480
+ onlyFiles: true,
6481
+ ignore: [
6482
+ ...SCAN_PATTERNS.globalIgnore,
6483
+ "**/*.test.tsx",
6484
+ "**/*.stories.tsx"
6485
+ ]
6486
+ },
6487
+ i18n: {
6488
+ absolute: true,
6489
+ onlyFiles: true,
6490
+ ignore: SCAN_PATTERNS.globalIgnore
6491
+ },
6492
+ assets: {
6493
+ absolute: true,
6494
+ onlyFiles: true,
6495
+ ignore: SCAN_PATTERNS.globalIgnore
6496
+ }
6497
+ };
6498
+ }
6499
+ });
6500
+
6501
6501
  // packages/core/config/utils/PathResolver.ts
6502
+ import * as fs from "node:fs";
6502
6503
  import { createRequire } from "node:module";
6503
6504
  import {
6504
6505
  resolve,
@@ -6510,7 +6511,6 @@ import {
6510
6511
  extname
6511
6512
  } from "node:path";
6512
6513
  import { fileURLToPath } from "node:url";
6513
- import * as fs from "node:fs";
6514
6514
  function safeExecuteAsync(fn, message) {
6515
6515
  return fn().catch((error2) => {
6516
6516
  throw new Error(
@@ -6523,8 +6523,8 @@ var init_PathResolver = __esm({
6523
6523
  "packages/core/config/utils/PathResolver.ts"() {
6524
6524
  "use strict";
6525
6525
  init_utils();
6526
- init_constants();
6527
6526
  import_fast_glob = __toESM(require_out4(), 1);
6527
+ init_constants();
6528
6528
  constants = {
6529
6529
  getGlobOptionsFor: getGlobOptionsFor || void 0,
6530
6530
  SCAN_PATTERNS: SCAN_PATTERNS || void 0,
@@ -7439,11 +7439,17 @@ var init_PathResolver = __esm({
7439
7439
  /**
7440
7440
  * Get path to empty.js module for optional dependency aliasing
7441
7441
  * Used by Vite and Turbopack to alias missing optional deps
7442
- * @returns Absolute path to empty.js
7442
+ * @param returnPackageSpecifier - If true, returns package specifier '@donotdev/core/empty' for Turbopack. If false, returns absolute path for Vite.
7443
+ * @returns Package specifier or absolute path to empty.js
7443
7444
  */
7444
- getEmptyModulePath() {
7445
+ getEmptyModulePath(returnPackageSpecifier = false) {
7446
+ if (returnPackageSpecifier) {
7447
+ return "@donotdev/core/empty";
7448
+ }
7449
+ const resolved = this.resolvePackage("@donotdev/core/empty");
7450
+ if (resolved) return resolved;
7445
7451
  const thisDir = dirname(fileURLToPath(import.meta.url));
7446
- return this.normalizePath(join(thisDir, "../vite/empty.js"));
7452
+ return this.normalizePath(join(thisDir, "../empty.js"));
7447
7453
  }
7448
7454
  // === PRIVATE METHODS ===
7449
7455
  /**
@@ -7639,11 +7645,11 @@ var init_pathResolver = __esm({
7639
7645
  });
7640
7646
 
7641
7647
  // packages/tooling/src/bundler/utils.ts
7648
+ import { Buffer as Buffer2 } from "node:buffer";
7642
7649
  import { createRequire as createRequire2 } from "node:module";
7643
- import { fileURLToPath as fileURLToPath2 } from "node:url";
7644
7650
  import { dirname as dirname3, resolve as resolve3 } from "node:path";
7645
- import { Buffer as Buffer2 } from "node:buffer";
7646
7651
  import process from "node:process";
7652
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
7647
7653
  var require2, __filename, __dirname;
7648
7654
  var init_utils = __esm({
7649
7655
  "packages/tooling/src/bundler/utils.ts"() {
@@ -7676,7 +7682,6 @@ init_utils();
7676
7682
  // packages/tooling/src/utils/app-selector.ts
7677
7683
  init_utils();
7678
7684
  init_dist2();
7679
- init_cli_output();
7680
7685
 
7681
7686
  // packages/tooling/src/utils/app-detection.ts
7682
7687
  init_utils();
@@ -7764,6 +7769,7 @@ function analyzeApp(appPath, appName) {
7764
7769
  }
7765
7770
 
7766
7771
  // packages/tooling/src/utils/app-selector.ts
7772
+ init_cli_output();
7767
7773
  async function selectApp(projectRoot, appName) {
7768
7774
  const apps = detectApps(projectRoot);
7769
7775
  if (apps.length === 0) {
@@ -7810,8 +7816,8 @@ function createAppEnv(appPath) {
7810
7816
  // packages/tooling/src/apps/preview.ts
7811
7817
  init_utils();
7812
7818
  import { spawnSync } from "node:child_process";
7813
- init_errors();
7814
7819
  init_cli_output();
7820
+ init_errors();
7815
7821
  init_pathResolver();
7816
7822
  async function main() {
7817
7823
  const args = process.argv.slice(2);