@donotdev/cli 0.0.6 → 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 (82) hide show
  1. package/dependencies-matrix.json +25 -7
  2. package/dist/bin/commands/build.js +156 -158
  3. package/dist/bin/commands/bump.js +153 -153
  4. package/dist/bin/commands/cacheout.js +154 -154
  5. package/dist/bin/commands/create-app.js +184 -156
  6. package/dist/bin/commands/create-project.js +154 -154
  7. package/dist/bin/commands/deploy.js +470 -470
  8. package/dist/bin/commands/dev.js +155 -155
  9. package/dist/bin/commands/emu.js +155 -155
  10. package/dist/bin/commands/format.js +154 -154
  11. package/dist/bin/commands/lint.js +157 -154
  12. package/dist/bin/commands/preview.js +155 -155
  13. package/dist/bin/commands/sync-secrets.js +155 -155
  14. package/dist/bin/commands/wai.d.ts +11 -0
  15. package/dist/bin/commands/wai.d.ts.map +1 -0
  16. package/dist/bin/commands/wai.js +12 -0
  17. package/dist/bin/commands/wai.js.map +1 -0
  18. package/dist/bin/dndev.js +24 -8
  19. package/dist/bin/donotdev.js +24 -8
  20. package/dist/index.js +524 -497
  21. package/package.json +1 -1
  22. package/templates/app-demo/src/config/app.ts.example +12 -0
  23. package/templates/app-next/src/config/app.ts.example +75 -48
  24. package/templates/app-vite/index.html.example +71 -37
  25. package/templates/app-vite/src/config/app.ts.example +75 -47
  26. package/templates/app-vite/src/pages/FormPageExample.tsx.example +152 -0
  27. package/templates/app-vite/src/pages/HomePage.tsx.example +81 -134
  28. package/templates/app-vite/src/pages/ListPageExample.tsx.example +88 -0
  29. package/templates/functions-firebase/build.mjs.example +8 -1
  30. package/templates/functions-firebase/functions-firebase/build.mjs.example +8 -1
  31. package/templates/functions-firebase/functions-firebase/src/index.ts.example +19 -25
  32. package/templates/functions-firebase/functions.config.js.example +35 -0
  33. package/templates/root-consumer/entities/ExampleEntity.ts.example +223 -0
  34. package/templates/root-consumer/entities/demo.ts.example +562 -0
  35. package/templates/root-consumer/entities/index.ts.example +15 -0
  36. package/templates/root-consumer/guides/{AGENT_START_HERE.md.example → dndev/AGENT_START_HERE.md.example} +22 -0
  37. package/templates/root-consumer/guides/dndev/COMPONENTS_CRUD.md.example +231 -0
  38. package/templates/root-consumer/guides/{SETUP_AUTH.md.example → dndev/SETUP_AUTH.md.example} +30 -0
  39. package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +473 -0
  40. package/templates/root-consumer/guides/dndev/SETUP_FUNCTIONS.md.example +116 -0
  41. package/templates/root-consumer/guides/wai-way/WAI_WAY_CLI.md.example +404 -0
  42. package/templates/root-consumer/guides/wai-way/agents/architect.md.example +78 -0
  43. package/templates/root-consumer/guides/wai-way/agents/builder.md.example +87 -0
  44. package/templates/root-consumer/guides/wai-way/agents/extractor.md.example +325 -0
  45. package/templates/root-consumer/guides/wai-way/agents/polisher.md.example +100 -0
  46. package/templates/root-consumer/guides/wai-way/blueprints/0_brainstorm.md.example +281 -0
  47. package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +77 -0
  48. package/templates/root-consumer/guides/wai-way/blueprints/2_entities.md.example +104 -0
  49. package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +124 -0
  50. package/templates/root-consumer/guides/wai-way/blueprints/4_configure.md.example +165 -0
  51. package/templates/root-consumer/guides/wai-way/context_map.json.example +95 -0
  52. package/templates/root-consumer/guides/wai-way/entity_patterns.md.example +840 -0
  53. package/templates/root-consumer/guides/wai-way/page_patterns.md.example +686 -0
  54. package/templates/root-consumer/guides/wai-way/presets_guide.md.example +217 -0
  55. package/templates/root-consumer/guides/wai-way/spec_template.md.example +312 -0
  56. package/templates/functions-firebase/functions-firebase/src/crud/createEntity.ts.example +0 -19
  57. package/templates/functions-firebase/functions-firebase/src/crud/deleteEntity.ts.example +0 -14
  58. package/templates/functions-firebase/functions-firebase/src/crud/getEntity.ts.example +0 -14
  59. package/templates/functions-firebase/functions-firebase/src/crud/index.ts.example +0 -12
  60. package/templates/functions-firebase/functions-firebase/src/crud/listEntities.ts.example +0 -14
  61. package/templates/functions-firebase/functions-firebase/src/crud/updateEntity.ts.example +0 -14
  62. package/templates/root-consumer/guides/COMPONENTS_CRUD.md.example +0 -70
  63. package/templates/root-consumer/guides/SETUP_CRUD.md.example +0 -1244
  64. package/templates/root-consumer/guides/SETUP_FUNCTIONS.md.example +0 -114
  65. /package/templates/root-consumer/guides/{COMPONENTS_ADV.md.example → dndev/COMPONENTS_ADV.md.example} +0 -0
  66. /package/templates/root-consumer/guides/{COMPONENTS_ATOMIC.md.example → dndev/COMPONENTS_ATOMIC.md.example} +0 -0
  67. /package/templates/root-consumer/guides/{COMPONENTS_UI.md.example → dndev/COMPONENTS_UI.md.example} +0 -0
  68. /package/templates/root-consumer/guides/{ENV_SETUP.md.example → dndev/ENV_SETUP.md.example} +0 -0
  69. /package/templates/root-consumer/guides/{INDEX.md.example → dndev/INDEX.md.example} +0 -0
  70. /package/templates/root-consumer/guides/{SETUP_APP_CONFIG.md.example → dndev/SETUP_APP_CONFIG.md.example} +0 -0
  71. /package/templates/root-consumer/guides/{SETUP_BILLING.md.example → dndev/SETUP_BILLING.md.example} +0 -0
  72. /package/templates/root-consumer/guides/{SETUP_I18N.md.example → dndev/SETUP_I18N.md.example} +0 -0
  73. /package/templates/root-consumer/guides/{SETUP_LAYOUTS.md.example → dndev/SETUP_LAYOUTS.md.example} +0 -0
  74. /package/templates/root-consumer/guides/{SETUP_OAUTH.md.example → dndev/SETUP_OAUTH.md.example} +0 -0
  75. /package/templates/root-consumer/guides/{SETUP_PAGES.md.example → dndev/SETUP_PAGES.md.example} +0 -0
  76. /package/templates/root-consumer/guides/{SETUP_PWA.md.example → dndev/SETUP_PWA.md.example} +0 -0
  77. /package/templates/root-consumer/guides/{SETUP_THEMES.md.example → dndev/SETUP_THEMES.md.example} +0 -0
  78. /package/templates/root-consumer/guides/{USE_ROUTING.md.example → dndev/USE_ROUTING.md.example} +0 -0
  79. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/APP_CHECK.md.example +0 -0
  80. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/COOKIE_REFERENCE.md.example +0 -0
  81. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/EMULATORS.md.example +0 -0
  82. /package/templates/root-consumer/guides/{advanced → dndev/advanced}/VERSION_CONTROL.md.example +0 -0
@@ -2,7 +2,7 @@
2
2
  "$schema": "./dependencies-matrix.schema.json",
3
3
  "version": "0.0.5",
4
4
  "description": "Centralized dependency versions for DoNotDev framework. Single source of truth for all external dependencies. ⚠️ SYNC REQUIRED: When adding/removing @donotdev/* feature packages (auth, billing, crud, oauth), also update packages/core/config/constants.js BUNDLING.optionalFeatures array.",
5
- "lastUpdated": "2026-01-16",
5
+ "lastUpdated": "2026-01-23",
6
6
  "migrationGuides": {
7
7
  "0.0→0.1": {
8
8
  "path": "docs/migration/v0.0-to-v0.1.md",
@@ -41,13 +41,13 @@
41
41
  "@donotdev/core": {
42
42
  "description": "Core framework package",
43
43
  "packages": {
44
- "@donotdev/core": "^0.0.12"
44
+ "@donotdev/core": "^0.0.14"
45
45
  }
46
46
  },
47
47
  "@donotdev/crud": {
48
48
  "description": "CRUD operations package",
49
49
  "packages": {
50
- "@donotdev/crud": "^0.0.5"
50
+ "@donotdev/crud": "^0.0.7"
51
51
  }
52
52
  },
53
53
  "@donotdev/firebase": {
@@ -59,7 +59,7 @@
59
59
  "@donotdev/functions": {
60
60
  "description": "Firebase Functions package",
61
61
  "packages": {
62
- "@donotdev/functions": "^0.0.5"
62
+ "@donotdev/functions": "^0.0.7"
63
63
  }
64
64
  },
65
65
  "@donotdev/oauth": {
@@ -208,6 +208,15 @@
208
208
  "browser-image-compression": "^2.0.2"
209
209
  }
210
210
  },
211
+ "tiptap": {
212
+ "description": "Rich text editor - optional peer dependency. Required: @tiptap/react, @tiptap/pm, @tiptap/starter-kit. Optional: @tiptap/extension-placeholder for placeholder text.",
213
+ "packages": {
214
+ "@tiptap/react": "^3.16.0",
215
+ "@tiptap/pm": "^3.16.0",
216
+ "@tiptap/starter-kit": "^3.16.0",
217
+ "@tiptap/extension-placeholder": "^3.16.0"
218
+ }
219
+ },
211
220
  "stripe": {
212
221
  "packages": {
213
222
  "stripe": "^20.1.0"
@@ -429,14 +438,23 @@
429
438
  "react-easy-crop",
430
439
  "forms-resolvers"
431
440
  ],
441
+ "devDependencies": [
442
+ "tiptap"
443
+ ],
432
444
  "peerDependencies": [
433
445
  "@donotdev/firebase",
434
446
  "react",
435
447
  "forms",
436
448
  "firebase",
437
449
  "validation",
438
- "lucide-react"
439
- ]
450
+ "lucide-react",
451
+ "tiptap"
452
+ ],
453
+ "peerDependenciesMeta": {
454
+ "tiptap": {
455
+ "optional": true
456
+ }
457
+ }
440
458
  },
441
459
  "@donotdev/firebase": {
442
460
  "dependencies": [
@@ -799,4 +817,4 @@
799
817
  "rule": "If imported in code that gets bundled → dependencies. If externalized in esbuild → devDependencies. If optional/consumer-provided → peerDependencies"
800
818
  }
801
819
  }
802
- }
820
+ }
@@ -858,155 +858,6 @@ var init_cli_output = __esm({
858
858
  }
859
859
  });
860
860
 
861
- // packages/core/config/constants.js
862
- function getPatternsFor(type, repoRoot = null) {
863
- const patterns = SCAN_PATTERNS[type];
864
- if (!patterns) {
865
- throw new Error(`Unknown pattern type: ${type}`);
866
- }
867
- if (repoRoot && patterns.framework) {
868
- return {
869
- ...patterns,
870
- framework: patterns.framework.map((pattern) => `${repoRoot}/${pattern}`)
871
- };
872
- }
873
- return patterns;
874
- }
875
- function getGlobOptionsFor(type) {
876
- return GLOB_OPTIONS[type] || GLOB_OPTIONS.base;
877
- }
878
- var I18N_PATHS, SCAN_PATTERNS, GLOB_OPTIONS;
879
- var init_constants = __esm({
880
- "packages/core/config/constants.js"() {
881
- "use strict";
882
- init_utils();
883
- I18N_PATHS = {
884
- // Monorepo source structure (locales at root, not in src/)
885
- SOURCE_ROOT: "packages/core/i18n",
886
- SOURCE_LOCALES: "packages/core/i18n/locales",
887
- SOURCE_EAGER: "packages/core/i18n/locales/eager",
888
- SOURCE_LAZY: "packages/core/i18n/locales/lazy",
889
- // Published structure (same as source - no flattening needed)
890
- PUBLISHED_ROOT: "i18n",
891
- PUBLISHED_LOCALES: "i18n/locales",
892
- PUBLISHED_EAGER: "i18n/locales/eager",
893
- PUBLISHED_LAZY: "i18n/locales/lazy"
894
- };
895
- SCAN_PATTERNS = {
896
- routes: {
897
- consumer: ["src/**/*Page.tsx", "src/pages/**/*Page.tsx"],
898
- exclude: [
899
- "**/node_modules/**",
900
- "**/dist/**",
901
- "**/build/**",
902
- "**/*.test.tsx",
903
- "**/*.stories.tsx"
904
- ],
905
- extensions: [".tsx"]
906
- },
907
- css: {
908
- consumer: ["src/**/*.css"],
909
- themes: ["src/**/*.css"],
910
- extensions: [".css", ".scss", ".sass"],
911
- framework: [
912
- "packages/ui/src/**/*.css",
913
- "packages/core/components/src/**/*.css",
914
- "packages/core/templates/src/**/*.css"
915
- ]
916
- },
917
- i18n: {
918
- eager: ["src/locales/*_*.json"],
919
- lazy: ["src/**/locales/*_*.json", "!src/locales/*_*.json"],
920
- framework: {
921
- eager: [`${I18N_PATHS.SOURCE_EAGER}/*_*.json`],
922
- lazy: [`${I18N_PATHS.SOURCE_LAZY}/*_*.json`]
923
- },
924
- extensions: [".json"]
925
- },
926
- assets: {
927
- consumer: ["public/**/*"],
928
- fallback: ["manifest.json"],
929
- modern: [
930
- "logo.svg",
931
- "favicon.svg",
932
- "apple-touch-icon.png",
933
- "android-chrome-192x192.png",
934
- "android-chrome-512x512.png"
935
- ],
936
- patterns: [
937
- "favicon.svg",
938
- "favicon.ico",
939
- "favicon-*.png",
940
- "logo.svg",
941
- "logo.png",
942
- "logo.webp",
943
- "logo.avif",
944
- "apple-touch-icon*.png",
945
- "android-chrome-*.png",
946
- "manifest.json"
947
- ],
948
- fonts: ["fonts/**/*.woff2", "fonts/**/*.woff", "fonts/**/*.ttf"],
949
- framework: ["packages/ui/assets/**/*"]
950
- },
951
- pwa: {
952
- consumer: [
953
- "public/manifest.json",
954
- "public/service-worker.js",
955
- "public/sw.js",
956
- "public/icon-192x192.png",
957
- "public/icon-512x512.png",
958
- "public/favicon.ico",
959
- "public/favicon.svg",
960
- "public/apple-touch-icon.png",
961
- "public/logo.svg"
962
- ],
963
- exclude: ["**/node_modules/**", "**/dist/**", "**/build/**"],
964
- extensions: [".json", ".js", ".png", ".svg", ".ico"],
965
- framework: ["packages/ui/assets/**/*"]
966
- },
967
- globalIgnore: [
968
- "**/node_modules/**",
969
- "**/dist/**",
970
- "**/build/**",
971
- "**/.git/**",
972
- "**/coverage/**",
973
- "**/test/**"
974
- ]
975
- };
976
- GLOB_OPTIONS = {
977
- base: {
978
- absolute: true,
979
- onlyFiles: true,
980
- ignore: SCAN_PATTERNS.globalIgnore
981
- },
982
- css: {
983
- absolute: true,
984
- onlyFiles: true,
985
- ignore: [...SCAN_PATTERNS.globalIgnore, "**/*.test.css"]
986
- },
987
- routes: {
988
- absolute: true,
989
- onlyFiles: true,
990
- ignore: [
991
- ...SCAN_PATTERNS.globalIgnore,
992
- "**/*.test.tsx",
993
- "**/*.stories.tsx"
994
- ]
995
- },
996
- i18n: {
997
- absolute: true,
998
- onlyFiles: true,
999
- ignore: SCAN_PATTERNS.globalIgnore
1000
- },
1001
- assets: {
1002
- absolute: true,
1003
- onlyFiles: true,
1004
- ignore: SCAN_PATTERNS.globalIgnore
1005
- }
1006
- };
1007
- }
1008
- });
1009
-
1010
861
  // node_modules/.bun/fast-glob@3.3.3/node_modules/fast-glob/out/utils/array.js
1011
862
  var require_array = __commonJS({
1012
863
  "node_modules/.bun/fast-glob@3.3.3/node_modules/fast-glob/out/utils/array.js"(exports) {
@@ -6591,7 +6442,157 @@ var require_out4 = __commonJS({
6591
6442
  }
6592
6443
  });
6593
6444
 
6445
+ // packages/core/config/constants.js
6446
+ function getPatternsFor(type, repoRoot = null) {
6447
+ const patterns = SCAN_PATTERNS[type];
6448
+ if (!patterns) {
6449
+ throw new Error(`Unknown pattern type: ${type}`);
6450
+ }
6451
+ if (repoRoot && patterns.framework) {
6452
+ return {
6453
+ ...patterns,
6454
+ framework: patterns.framework.map((pattern) => `${repoRoot}/${pattern}`)
6455
+ };
6456
+ }
6457
+ return patterns;
6458
+ }
6459
+ function getGlobOptionsFor(type) {
6460
+ return GLOB_OPTIONS[type] || GLOB_OPTIONS.base;
6461
+ }
6462
+ var I18N_PATHS, SCAN_PATTERNS, GLOB_OPTIONS;
6463
+ var init_constants = __esm({
6464
+ "packages/core/config/constants.js"() {
6465
+ "use strict";
6466
+ init_utils();
6467
+ I18N_PATHS = {
6468
+ // Monorepo source structure (locales at root, not in src/)
6469
+ SOURCE_ROOT: "packages/core/i18n",
6470
+ SOURCE_LOCALES: "packages/core/i18n/locales",
6471
+ SOURCE_EAGER: "packages/core/i18n/locales/eager",
6472
+ SOURCE_LAZY: "packages/core/i18n/locales/lazy",
6473
+ // Published structure (same as source - no flattening needed)
6474
+ PUBLISHED_ROOT: "i18n",
6475
+ PUBLISHED_LOCALES: "i18n/locales",
6476
+ PUBLISHED_EAGER: "i18n/locales/eager",
6477
+ PUBLISHED_LAZY: "i18n/locales/lazy"
6478
+ };
6479
+ SCAN_PATTERNS = {
6480
+ routes: {
6481
+ consumer: ["src/**/*Page.tsx", "src/pages/**/*Page.tsx"],
6482
+ exclude: [
6483
+ "**/node_modules/**",
6484
+ "**/dist/**",
6485
+ "**/build/**",
6486
+ "**/*.test.tsx",
6487
+ "**/*.stories.tsx"
6488
+ ],
6489
+ extensions: [".tsx"]
6490
+ },
6491
+ css: {
6492
+ consumer: ["src/**/*.css"],
6493
+ themes: ["src/**/*.css"],
6494
+ extensions: [".css", ".scss", ".sass"],
6495
+ framework: [
6496
+ "packages/ui/src/**/*.css",
6497
+ "packages/core/components/src/**/*.css",
6498
+ "packages/core/templates/src/**/*.css"
6499
+ ]
6500
+ },
6501
+ i18n: {
6502
+ eager: ["src/locales/*_*.json"],
6503
+ lazy: ["src/**/locales/*_*.json", "!src/locales/*_*.json"],
6504
+ framework: {
6505
+ eager: [`${I18N_PATHS.SOURCE_EAGER}/*_*.json`],
6506
+ lazy: [`${I18N_PATHS.SOURCE_LAZY}/*_*.json`]
6507
+ },
6508
+ extensions: [".json"]
6509
+ },
6510
+ assets: {
6511
+ consumer: ["public/**/*"],
6512
+ fallback: ["manifest.json"],
6513
+ modern: [
6514
+ "logo.svg",
6515
+ "favicon.svg",
6516
+ "apple-touch-icon.png",
6517
+ "android-chrome-192x192.png",
6518
+ "android-chrome-512x512.png"
6519
+ ],
6520
+ patterns: [
6521
+ "favicon.svg",
6522
+ "favicon.ico",
6523
+ "favicon-*.png",
6524
+ "logo.svg",
6525
+ "logo.png",
6526
+ "logo.webp",
6527
+ "logo.avif",
6528
+ "apple-touch-icon*.png",
6529
+ "android-chrome-*.png",
6530
+ "manifest.json"
6531
+ ],
6532
+ fonts: ["fonts/**/*.woff2", "fonts/**/*.woff", "fonts/**/*.ttf"],
6533
+ framework: ["packages/ui/assets/**/*"]
6534
+ },
6535
+ pwa: {
6536
+ consumer: [
6537
+ "public/manifest.json",
6538
+ "public/service-worker.js",
6539
+ "public/sw.js",
6540
+ "public/icon-192x192.png",
6541
+ "public/icon-512x512.png",
6542
+ "public/favicon.ico",
6543
+ "public/favicon.svg",
6544
+ "public/apple-touch-icon.png",
6545
+ "public/logo.svg"
6546
+ ],
6547
+ exclude: ["**/node_modules/**", "**/dist/**", "**/build/**"],
6548
+ extensions: [".json", ".js", ".png", ".svg", ".ico"],
6549
+ framework: ["packages/ui/assets/**/*"]
6550
+ },
6551
+ globalIgnore: [
6552
+ "**/node_modules/**",
6553
+ "**/dist/**",
6554
+ "**/build/**",
6555
+ "**/.git/**",
6556
+ "**/coverage/**",
6557
+ "**/test/**"
6558
+ ]
6559
+ };
6560
+ GLOB_OPTIONS = {
6561
+ base: {
6562
+ absolute: true,
6563
+ onlyFiles: true,
6564
+ ignore: SCAN_PATTERNS.globalIgnore
6565
+ },
6566
+ css: {
6567
+ absolute: true,
6568
+ onlyFiles: true,
6569
+ ignore: [...SCAN_PATTERNS.globalIgnore, "**/*.test.css"]
6570
+ },
6571
+ routes: {
6572
+ absolute: true,
6573
+ onlyFiles: true,
6574
+ ignore: [
6575
+ ...SCAN_PATTERNS.globalIgnore,
6576
+ "**/*.test.tsx",
6577
+ "**/*.stories.tsx"
6578
+ ]
6579
+ },
6580
+ i18n: {
6581
+ absolute: true,
6582
+ onlyFiles: true,
6583
+ ignore: SCAN_PATTERNS.globalIgnore
6584
+ },
6585
+ assets: {
6586
+ absolute: true,
6587
+ onlyFiles: true,
6588
+ ignore: SCAN_PATTERNS.globalIgnore
6589
+ }
6590
+ };
6591
+ }
6592
+ });
6593
+
6594
6594
  // packages/core/config/utils/PathResolver.ts
6595
+ import * as fs from "node:fs";
6595
6596
  import { createRequire } from "node:module";
6596
6597
  import {
6597
6598
  resolve,
@@ -6603,7 +6604,6 @@ import {
6603
6604
  extname
6604
6605
  } from "node:path";
6605
6606
  import { fileURLToPath } from "node:url";
6606
- import * as fs from "node:fs";
6607
6607
  function safeExecuteAsync(fn, message) {
6608
6608
  return fn().catch((error2) => {
6609
6609
  throw new Error(
@@ -6616,8 +6616,8 @@ var init_PathResolver = __esm({
6616
6616
  "packages/core/config/utils/PathResolver.ts"() {
6617
6617
  "use strict";
6618
6618
  init_utils();
6619
- init_constants();
6620
6619
  import_fast_glob = __toESM(require_out4(), 1);
6620
+ init_constants();
6621
6621
  constants = {
6622
6622
  getGlobOptionsFor: getGlobOptionsFor || void 0,
6623
6623
  SCAN_PATTERNS: SCAN_PATTERNS || void 0,
@@ -7738,11 +7738,11 @@ var init_pathResolver = __esm({
7738
7738
  });
7739
7739
 
7740
7740
  // packages/tooling/src/bundler/utils.ts
7741
+ import { Buffer as Buffer2 } from "node:buffer";
7741
7742
  import { createRequire as createRequire2 } from "node:module";
7742
- import { fileURLToPath as fileURLToPath2 } from "node:url";
7743
7743
  import { dirname as dirname3, resolve as resolve3 } from "node:path";
7744
- import { Buffer as Buffer2 } from "node:buffer";
7745
7744
  import process from "node:process";
7745
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
7746
7746
  var require2, __filename, __dirname;
7747
7747
  var init_utils = __esm({
7748
7748
  "packages/tooling/src/bundler/utils.ts"() {
@@ -7779,7 +7779,6 @@ import { spawnSync, execSync } from "node:child_process";
7779
7779
  // packages/tooling/src/utils/app-selector.ts
7780
7780
  init_utils();
7781
7781
  init_dist2();
7782
- init_cli_output();
7783
7782
 
7784
7783
  // packages/tooling/src/utils/app-detection.ts
7785
7784
  init_utils();
@@ -7867,6 +7866,7 @@ function analyzeApp(appPath, appName) {
7867
7866
  }
7868
7867
 
7869
7868
  // packages/tooling/src/utils/app-selector.ts
7869
+ init_cli_output();
7870
7870
  async function selectApp(projectRoot, appName) {
7871
7871
  const apps = detectApps(projectRoot);
7872
7872
  if (apps.length === 0) {
@@ -7901,10 +7901,6 @@ async function selectApp(projectRoot, appName) {
7901
7901
  return apps.find((a) => a.name === selected) || null;
7902
7902
  }
7903
7903
 
7904
- // packages/tooling/src/apps/build.ts
7905
- init_errors();
7906
- init_cli_output();
7907
-
7908
7904
  // packages/tooling/src/utils/cli-input.ts
7909
7905
  init_utils();
7910
7906
  init_dist2();
@@ -7927,6 +7923,8 @@ async function askForSelection(message, choices, defaultValue = 0) {
7927
7923
  }
7928
7924
 
7929
7925
  // packages/tooling/src/apps/build.ts
7926
+ init_cli_output();
7927
+ init_errors();
7930
7928
  init_pathResolver();
7931
7929
  function validateFirebaseJson(appDir) {
7932
7930
  const firebaseJsonPath = joinPath(appDir, "firebase.json");