@donotdev/cli 0.0.19 → 0.0.21

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 (128) hide show
  1. package/README.md +31 -0
  2. package/dependencies-matrix.json +205 -50
  3. package/dist/bin/commands/agent-setup.js +2 -2
  4. package/dist/bin/commands/build.js +6 -6
  5. package/dist/bin/commands/bump.js +495 -70
  6. package/dist/bin/commands/cacheout.js +6 -6
  7. package/dist/bin/commands/coach.js +6 -6
  8. package/dist/bin/commands/create-app.js +24 -16
  9. package/dist/bin/commands/create-project.js +114 -18
  10. package/dist/bin/commands/db.js +142136 -0
  11. package/dist/bin/commands/deploy.js +354 -126
  12. package/dist/bin/commands/dev.js +6 -6
  13. package/dist/bin/commands/doctor.js +140 -33
  14. package/dist/bin/commands/emu.js +6 -6
  15. package/dist/bin/commands/format.js +6 -6
  16. package/dist/bin/commands/get-demo.js +11 -6
  17. package/dist/bin/commands/make-admin.js +14210 -13770
  18. package/dist/bin/commands/preview.js +6 -6
  19. package/dist/bin/commands/seed.js +142426 -0
  20. package/dist/bin/commands/setup-cicd.js +8904 -0
  21. package/dist/bin/commands/setup.js +259 -212
  22. package/dist/bin/commands/staging.js +361 -127
  23. package/dist/bin/commands/sync-secrets.js +55 -33
  24. package/dist/bin/commands/type-check.js +16 -10
  25. package/dist/bin/commands/wai.js +6 -6
  26. package/dist/bin/dndev.js +194 -188
  27. package/dist/bin/donotdev.js +139 -189
  28. package/dist/index.js +468 -144
  29. package/package.json +1 -1
  30. package/templates/app-demo/.env.example +1 -0
  31. package/templates/{root-consumer → app-demo}/entities/ExampleEntity.ts.example +15 -9
  32. package/templates/app-demo/index.html.example +1 -1
  33. package/templates/app-demo/public/apple-touch-icon.png.example +0 -0
  34. package/templates/app-demo/public/favicon.svg.example +1 -0
  35. package/templates/app-demo/public/icon-192x192.png.example +0 -0
  36. package/templates/app-demo/public/icon-512x512.png.example +0 -0
  37. package/templates/app-demo/src/App.tsx.example +3 -1
  38. package/templates/app-demo/src/config/app.ts.example +1 -0
  39. package/templates/app-demo/src/entities/booking.ts.example +75 -0
  40. package/templates/app-demo/src/entities/onboarding.ts.example +160 -0
  41. package/templates/app-demo/src/entities/product.ts.example +12 -0
  42. package/templates/app-demo/src/entities/quote.ts.example +70 -0
  43. package/templates/app-demo/src/pages/ChangelogPage.tsx.example +28 -1
  44. package/templates/app-demo/src/pages/ConditionalFormPage.tsx.example +88 -0
  45. package/templates/app-demo/src/pages/DashboardPage.tsx.example +2 -0
  46. package/templates/app-demo/src/pages/HomePage.tsx.example +355 -2
  47. package/templates/app-demo/src/pages/OnboardingPage.tsx.example +47 -0
  48. package/templates/app-demo/src/pages/PricingPage.tsx.example +28 -1
  49. package/templates/app-demo/src/pages/ProductsPage.tsx.example +2 -0
  50. package/templates/app-demo/src/pages/ProfilePage.tsx.example +2 -0
  51. package/templates/app-demo/src/pages/SettingsPage.tsx.example +2 -0
  52. package/templates/app-demo/src/pages/ShowcaseDetailPage.tsx.example +22 -16
  53. package/templates/app-demo/src/pages/ShowcasePage.tsx.example +3 -1
  54. package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +147 -51
  55. package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +103 -21
  56. package/templates/app-demo/src/pages/components/componentConfig.ts.example +139 -59
  57. package/templates/app-demo/src/pages/legal/LegalPage.tsx.example +12 -1
  58. package/templates/app-demo/src/pages/legal/PrivacyPage.tsx.example +10 -1
  59. package/templates/app-demo/src/pages/legal/TermsPage.tsx.example +10 -1
  60. package/templates/app-demo/src/themes.css.example +289 -77
  61. package/templates/app-demo/stats.html.example +4949 -0
  62. package/templates/app-dndev/index.html.example +164 -0
  63. package/templates/app-dndev/public/logo.svg.example +1 -0
  64. package/templates/app-dndev/public/manifest.json.example +10 -0
  65. package/templates/app-dndev/src/App.tsx.example +35 -0
  66. package/templates/app-dndev/src/components/CockpitLayout.css.example +181 -0
  67. package/templates/app-dndev/src/components/CockpitLayout.tsx.example +209 -0
  68. package/templates/app-dndev/src/components/Kanban.css.example +385 -0
  69. package/templates/app-dndev/src/components/ModeToggle.tsx.example +32 -0
  70. package/templates/app-dndev/src/components/OverlaySlot.tsx.example +68 -0
  71. package/templates/app-dndev/src/components/TerminalPanel.css.example +228 -0
  72. package/templates/app-dndev/src/components/TerminalPanel.tsx.example +714 -0
  73. package/templates/app-dndev/src/components/markdown-prose.css.example +49 -0
  74. package/templates/app-dndev/src/components/phases/CaptainLog.tsx.example +107 -0
  75. package/templates/app-dndev/src/components/phases/ContextTabs.tsx.example +352 -0
  76. package/templates/app-dndev/src/components/phases/PhaseCard.tsx.example +126 -0
  77. package/templates/app-dndev/src/components/phases/PhaseDetail.tsx.example +147 -0
  78. package/templates/app-dndev/src/components/phases/ReviewPanel.tsx.example +115 -0
  79. package/templates/app-dndev/src/components/phases/phaseData.ts.example +366 -0
  80. package/templates/app-dndev/src/config/app.ts.example +103 -0
  81. package/templates/app-dndev/src/config/commands.ts.example +171 -0
  82. package/templates/app-dndev/src/config/legal.ts.example +170 -0
  83. package/templates/app-dndev/src/config/providers.ts.example +7 -0
  84. package/templates/app-dndev/src/globals.css.example +10 -0
  85. package/templates/app-dndev/src/hooks/useDndevFile.ts.example +144 -0
  86. package/templates/app-dndev/src/main.tsx.example +21 -0
  87. package/templates/app-dndev/src/pages/BoardPage.tsx.example +640 -0
  88. package/templates/app-dndev/src/pages/GrillPage.tsx.example +658 -0
  89. package/templates/app-dndev/src/pages/HomePage.tsx.example +347 -0
  90. package/templates/app-dndev/src/pages/NotFoundPage.tsx.example +33 -0
  91. package/templates/app-dndev/src/pages/PhasesPage.tsx.example +137 -0
  92. package/templates/app-dndev/src/pages/SettingsPage.tsx.example +64 -0
  93. package/templates/app-dndev/src/pages/legal/LegalNoticePage.tsx.example +75 -0
  94. package/templates/app-dndev/src/pages/legal/PrivacyPage.tsx.example +69 -0
  95. package/templates/app-dndev/src/pages/legal/TermsPage.tsx.example +71 -0
  96. package/templates/app-dndev/src/stores/dndevStore.ts.example +386 -0
  97. package/templates/app-dndev/src/themes.css.example +161 -0
  98. package/templates/app-dndev/terminal-sidecar.cjs.example +341 -0
  99. package/templates/app-dndev/tsconfig.json.example +9 -0
  100. package/templates/app-dndev/vite.config.ts.example +24 -0
  101. package/templates/app-vite/index.html.example +1 -1
  102. package/templates/functions-supabase/supabase/functions/.env.example +0 -2
  103. package/templates/root-consumer/.claude/commands/grill.md.example +86 -8
  104. package/templates/root-consumer/.dndev.secrets.example +32 -0
  105. package/templates/root-consumer/.gitignore.example +3 -0
  106. package/templates/root-consumer/AI.md.example +4 -0
  107. package/templates/root-consumer/entities/index.ts.example +2 -5
  108. package/templates/root-consumer/guides/dndev/COMPONENTS_ATOMIC.md.example +4 -0
  109. package/templates/root-consumer/guides/dndev/ENV_SETUP.md.example +23 -20
  110. package/templates/root-consumer/guides/dndev/INDEX.md.example +1 -0
  111. package/templates/root-consumer/guides/dndev/SETUP_BILLING.md.example +3 -7
  112. package/templates/root-consumer/guides/dndev/SETUP_CICD.md.example +115 -0
  113. package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +41 -0
  114. package/templates/root-consumer/guides/dndev/SETUP_SUPABASE.md.example +13 -18
  115. package/templates/root-consumer/guides/dndev/SETUP_VERCEL.md.example +17 -12
  116. package/templates/root-consumer/guides/wai-way/WAI_WAY_CLI.md.example +185 -251
  117. package/templates/root-consumer/guides/wai-way/agents/extractor.md.example +26 -8
  118. package/templates/root-consumer/guides/wai-way/blueprints/0_brainstorm.md.example +66 -49
  119. package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +6 -5
  120. package/templates/root-consumer/guides/wai-way/blueprints/2_entities.md.example +9 -9
  121. package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +1 -1
  122. package/templates/root-consumer/guides/wai-way/blueprints/4_configure.md.example +7 -6
  123. package/templates/root-consumer/guides/wai-way/context_map.json.example +51 -20
  124. package/templates/root-consumer/guides/wai-way/hld_template.md.example +138 -0
  125. package/templates/root-consumer/guides/wai-way/lld_template.md.example +103 -0
  126. package/templates/root-consumer/guides/wai-way/prd_template.md.example +140 -0
  127. /package/templates/{root-consumer → app-demo}/entities/Contact.ts.example +0 -0
  128. /package/templates/{root-consumer → app-demo}/entities/demo.ts.example +0 -0
@@ -6920,7 +6920,7 @@ var init_PathResolver = __esm({
6920
6920
  }
6921
6921
  const detectedFormat = this._detectFormat(filePath, format);
6922
6922
  let writeContent;
6923
- if (Buffer2.isBuffer(content)) {
6923
+ if (Buffer.isBuffer(content)) {
6924
6924
  writeContent = content;
6925
6925
  } else if (detectedFormat === "json" && typeof content === "object") {
6926
6926
  writeContent = JSON.stringify(content, null, 2);
@@ -6929,7 +6929,7 @@ var init_PathResolver = __esm({
6929
6929
  }
6930
6930
  try {
6931
6931
  return await safeExecuteAsync(async () => {
6932
- if (Buffer2.isBuffer(writeContent)) {
6932
+ if (Buffer.isBuffer(writeContent)) {
6933
6933
  await fs.promises.writeFile(normalizedPath, writeContent);
6934
6934
  } else {
6935
6935
  await fs.promises.writeFile(normalizedPath, writeContent, "utf8");
@@ -6981,7 +6981,7 @@ var init_PathResolver = __esm({
6981
6981
  }
6982
6982
  const detectedFormat = this._detectFormat(filePath, format);
6983
6983
  let writeContent;
6984
- if (Buffer2.isBuffer(content)) {
6984
+ if (Buffer.isBuffer(content)) {
6985
6985
  writeContent = content;
6986
6986
  } else if (detectedFormat === "json" && typeof content === "object") {
6987
6987
  writeContent = JSON.stringify(content, null, 2);
@@ -6989,7 +6989,7 @@ var init_PathResolver = __esm({
6989
6989
  writeContent = String(content);
6990
6990
  }
6991
6991
  try {
6992
- if (Buffer2.isBuffer(writeContent)) {
6992
+ if (Buffer.isBuffer(writeContent)) {
6993
6993
  fs.writeFileSync(normalizedPath, writeContent);
6994
6994
  } else {
6995
6995
  fs.writeFileSync(normalizedPath, writeContent, "utf8");
@@ -7716,7 +7716,7 @@ var init_pathResolver = __esm({
7716
7716
  });
7717
7717
 
7718
7718
  // packages/tooling/src/bundler/utils.ts
7719
- import { Buffer as Buffer2 } from "node:buffer";
7719
+ import { Buffer } from "node:buffer";
7720
7720
  import { readFileSync as readFileSync2, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "node:fs";
7721
7721
  import { createRequire as createRequire3 } from "node:module";
7722
7722
  import { dirname as dirname3, resolve as resolve3 } from "node:path";
@@ -7733,7 +7733,7 @@ var init_utils = __esm({
7733
7733
  globalThis.require = require2;
7734
7734
  globalThis.__filename = __filename;
7735
7735
  globalThis.__dirname = __dirname;
7736
- globalThis.Buffer = Buffer2;
7736
+ globalThis.Buffer = Buffer;
7737
7737
  globalThis.process = process;
7738
7738
  if (typeof global === "undefined") {
7739
7739
  globalThis.global = globalThis;
@@ -7768,9 +7768,39 @@ var init_cli_input = __esm({
7768
7768
  }
7769
7769
  });
7770
7770
 
7771
+ // packages/tooling/src/utils/secrets-resolver.ts
7772
+ function parseEnvFile(filePath) {
7773
+ if (!pathExists(filePath)) return {};
7774
+ const content = readSync(filePath, { format: "text" });
7775
+ if (typeof content !== "string" || !content) return {};
7776
+ const result = {};
7777
+ for (const line of content.split(/\r?\n/)) {
7778
+ const trimmed = line.trim();
7779
+ if (!trimmed || trimmed.startsWith("#")) continue;
7780
+ const eqIdx = trimmed.indexOf("=");
7781
+ if (eqIdx === -1) continue;
7782
+ const key = trimmed.slice(0, eqIdx).trim();
7783
+ let value = trimmed.slice(eqIdx + 1).trim();
7784
+ if (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'")) {
7785
+ value = value.slice(1, -1);
7786
+ }
7787
+ if (key && value) {
7788
+ result[key] = value;
7789
+ }
7790
+ }
7791
+ return result;
7792
+ }
7793
+ var init_secrets_resolver = __esm({
7794
+ "packages/tooling/src/utils/secrets-resolver.ts"() {
7795
+ "use strict";
7796
+ init_utils();
7797
+ init_pathResolver();
7798
+ }
7799
+ });
7800
+
7771
7801
  // packages/tooling/src/apps/sync-secrets.ts
7772
7802
  import { spawnSync } from "node:child_process";
7773
- function parseEnvFile(filePath) {
7803
+ function parseEnvFile2(filePath) {
7774
7804
  if (!pathExists(filePath)) {
7775
7805
  throw new DoNotDevError(
7776
7806
  `Environment file not found: ${filePath}`,
@@ -7778,30 +7808,22 @@ function parseEnvFile(filePath) {
7778
7808
  { context: { filePath } }
7779
7809
  );
7780
7810
  }
7781
- const contentRaw = readSync(filePath, { format: "text" });
7782
- const content = typeof contentRaw === "string" ? contentRaw : null;
7783
- if (!content) {
7784
- throw new Error(`Failed to read secrets file: ${filePath}`);
7811
+ const result = parseEnvFile(filePath);
7812
+ if (Object.keys(result).length === 0) {
7813
+ log.debug(`No key-value pairs found in ${filePath}`);
7785
7814
  }
7786
- const secrets = {};
7787
- content.split("\n").forEach((line, index) => {
7788
- const trimmedLine = line.trim();
7789
- if (!trimmedLine || trimmedLine.startsWith("#")) {
7790
- return;
7791
- }
7792
- const equalIndex = trimmedLine.indexOf("=");
7793
- if (equalIndex === -1) {
7794
- log.warn(`Invalid line format at line ${index + 1}: ${trimmedLine}`);
7795
- return;
7796
- }
7797
- const key = trimmedLine.substring(0, equalIndex).trim();
7798
- const value = trimmedLine.substring(equalIndex + 1).trim();
7799
- const cleanValue = value.replace(/^["']|["']$/g, "");
7800
- if (key && cleanValue) {
7801
- secrets[key] = cleanValue;
7815
+ return result;
7816
+ }
7817
+ function parseSecretsWithFallback(envFilePath, projectRoot) {
7818
+ const dndevSecretsPath = joinPath(projectRoot, ".dndev.secrets");
7819
+ if (pathExists(dndevSecretsPath)) {
7820
+ const secrets = parseEnvFile(dndevSecretsPath);
7821
+ if (Object.keys(secrets).length > 0) {
7822
+ log.info(`Reading secrets from: ${dndevSecretsPath}`);
7823
+ return secrets;
7802
7824
  }
7803
- });
7804
- return secrets;
7825
+ }
7826
+ return parseEnvFile2(envFilePath);
7805
7827
  }
7806
7828
  function detectPlatform() {
7807
7829
  const currentDir = process.cwd();
@@ -8161,7 +8183,7 @@ function uploadServiceAccountToGitHub(appDir, repo, dryRun = false, staging = fa
8161
8183
  const contentRaw = readSync(filePath, { format: "text" });
8162
8184
  const content = typeof contentRaw === "string" ? contentRaw : null;
8163
8185
  if (!content) return;
8164
- const encoded = Buffer2.from(content).toString("base64");
8186
+ const encoded = Buffer.from(content).toString("base64");
8165
8187
  setGitHubSecret(secretName, encoded, repo, dryRun);
8166
8188
  }
8167
8189
  async function main(options = {}) {
@@ -8248,7 +8270,7 @@ Examples:
8248
8270
  return 1;
8249
8271
  }
8250
8272
  log.info(`Syncing secrets to GitHub repository: ${repo}`);
8251
- const secrets2 = parseEnvFile(envFilePath);
8273
+ const secrets2 = parseSecretsWithFallback(envFilePath, currentDir);
8252
8274
  const secretKeys2 = Object.keys(secrets2);
8253
8275
  if (secretKeys2.length === 0) {
8254
8276
  log.info("No secrets found in .env file");
@@ -8284,14 +8306,13 @@ Examples:
8284
8306
  return 0;
8285
8307
  }
8286
8308
  const platform = config.platform || detectPlatform();
8287
- log.info(`Reading secrets from: ${envFilePath}`);
8288
8309
  if (config.verbose) {
8289
8310
  log.debug(`Working directory: ${currentDir}`);
8290
8311
  log.debug(`Environment file: ${envFilePath}`);
8291
8312
  log.debug(`Platform: ${platform}`);
8292
8313
  log.debug(`Dry run mode: ${config.dryRun}`);
8293
8314
  }
8294
- const secrets = parseEnvFile(envFilePath);
8315
+ const secrets = parseSecretsWithFallback(envFilePath, currentDir);
8295
8316
  const secretKeys = Object.keys(secrets);
8296
8317
  if (secretKeys.length === 0) {
8297
8318
  log.info("No secrets found in .env file");
@@ -8351,6 +8372,7 @@ var init_sync_secrets = __esm({
8351
8372
  init_cli_output();
8352
8373
  init_errors();
8353
8374
  init_pathResolver();
8375
+ init_secrets_resolver();
8354
8376
  }
8355
8377
  });
8356
8378
 
@@ -6712,7 +6712,7 @@ var init_PathResolver = __esm({
6712
6712
  }
6713
6713
  const detectedFormat = this._detectFormat(filePath, format);
6714
6714
  let writeContent;
6715
- if (Buffer2.isBuffer(content)) {
6715
+ if (Buffer.isBuffer(content)) {
6716
6716
  writeContent = content;
6717
6717
  } else if (detectedFormat === "json" && typeof content === "object") {
6718
6718
  writeContent = JSON.stringify(content, null, 2);
@@ -6721,7 +6721,7 @@ var init_PathResolver = __esm({
6721
6721
  }
6722
6722
  try {
6723
6723
  return await safeExecuteAsync(async () => {
6724
- if (Buffer2.isBuffer(writeContent)) {
6724
+ if (Buffer.isBuffer(writeContent)) {
6725
6725
  await fs.promises.writeFile(normalizedPath, writeContent);
6726
6726
  } else {
6727
6727
  await fs.promises.writeFile(normalizedPath, writeContent, "utf8");
@@ -6773,7 +6773,7 @@ var init_PathResolver = __esm({
6773
6773
  }
6774
6774
  const detectedFormat = this._detectFormat(filePath, format);
6775
6775
  let writeContent;
6776
- if (Buffer2.isBuffer(content)) {
6776
+ if (Buffer.isBuffer(content)) {
6777
6777
  writeContent = content;
6778
6778
  } else if (detectedFormat === "json" && typeof content === "object") {
6779
6779
  writeContent = JSON.stringify(content, null, 2);
@@ -6781,7 +6781,7 @@ var init_PathResolver = __esm({
6781
6781
  writeContent = String(content);
6782
6782
  }
6783
6783
  try {
6784
- if (Buffer2.isBuffer(writeContent)) {
6784
+ if (Buffer.isBuffer(writeContent)) {
6785
6785
  fs.writeFileSync(normalizedPath, writeContent);
6786
6786
  } else {
6787
6787
  fs.writeFileSync(normalizedPath, writeContent, "utf8");
@@ -7510,7 +7510,7 @@ function globSync(pattern, options = {}) {
7510
7510
  });
7511
7511
  return results.map((p) => pathResolverInstance.normalizePath(p));
7512
7512
  }
7513
- var pathResolverInstance, getRepoRoot, normalizePath, pathExists, readSync, writeSync, removeSync, getDirname;
7513
+ var pathResolverInstance, getRepoRoot, normalizePath, pathExists, readSync, writeSync, removeSync, getDirname, joinPath;
7514
7514
  var init_pathResolver = __esm({
7515
7515
  "packages/tooling/src/utils/pathResolver.ts"() {
7516
7516
  "use strict";
@@ -7528,11 +7528,14 @@ var init_pathResolver = __esm({
7528
7528
  getDirname = (filePath) => {
7529
7529
  return normalizePath(dirname2(filePath));
7530
7530
  };
7531
+ joinPath = (...pathSegments) => {
7532
+ return normalizePath(...pathSegments);
7533
+ };
7531
7534
  }
7532
7535
  });
7533
7536
 
7534
7537
  // packages/tooling/src/bundler/utils.ts
7535
- import { Buffer as Buffer2 } from "node:buffer";
7538
+ import { Buffer } from "node:buffer";
7536
7539
  import { readFileSync as readFileSync2, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "node:fs";
7537
7540
  import { createRequire as createRequire3 } from "node:module";
7538
7541
  import { dirname as dirname3, resolve as resolve3 } from "node:path";
@@ -7549,7 +7552,7 @@ var init_utils = __esm({
7549
7552
  globalThis.require = require2;
7550
7553
  globalThis.__filename = __filename;
7551
7554
  globalThis.__dirname = __dirname;
7552
- globalThis.Buffer = Buffer2;
7555
+ globalThis.Buffer = Buffer;
7553
7556
  globalThis.process = process;
7554
7557
  if (typeof global === "undefined") {
7555
7558
  globalThis.global = globalThis;
@@ -7959,7 +7962,7 @@ ${output}
7959
7962
  }
7960
7963
  }
7961
7964
  const logName2 = options.package ? `type-check-${options.package}.log` : `type-check-all.log`;
7962
- const logFilePath2 = normalizePath(repoRoot, logName2);
7965
+ const logFilePath2 = joinPath(repoRoot, logName2);
7963
7966
  const logContent = [
7964
7967
  `DoNotDev Type Check - Errors`,
7965
7968
  `Generated: ${(/* @__PURE__ */ new Date()).toISOString()}`,
@@ -7983,7 +7986,7 @@ ${output}
7983
7986
  return 1;
7984
7987
  }
7985
7988
  const logName = options.package ? `type-check-${options.package}.log` : `type-check-all.log`;
7986
- const logFilePath = normalizePath(repoRoot, logName);
7989
+ const logFilePath = joinPath(repoRoot, logName);
7987
7990
  if (pathExists(logFilePath, true)) {
7988
7991
  removeSync(logFilePath);
7989
7992
  }
@@ -8000,8 +8003,11 @@ ${output}
8000
8003
  displayDoNotDevError(doNotDevError);
8001
8004
  if (options.verbose && logEntries.length > 0) {
8002
8005
  const repoRoot = getRepoRoot();
8006
+ if (!repoRoot) {
8007
+ throw doNotDevError;
8008
+ }
8003
8009
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
8004
- const logFilePath = normalizePath(
8010
+ const logFilePath = joinPath(
8005
8011
  repoRoot,
8006
8012
  `type-check-error-${timestamp}.log`
8007
8013
  );
@@ -6601,7 +6601,7 @@ var init_PathResolver = __esm({
6601
6601
  }
6602
6602
  const detectedFormat = this._detectFormat(filePath, format);
6603
6603
  let writeContent;
6604
- if (Buffer2.isBuffer(content)) {
6604
+ if (Buffer.isBuffer(content)) {
6605
6605
  writeContent = content;
6606
6606
  } else if (detectedFormat === "json" && typeof content === "object") {
6607
6607
  writeContent = JSON.stringify(content, null, 2);
@@ -6610,7 +6610,7 @@ var init_PathResolver = __esm({
6610
6610
  }
6611
6611
  try {
6612
6612
  return await safeExecuteAsync(async () => {
6613
- if (Buffer2.isBuffer(writeContent)) {
6613
+ if (Buffer.isBuffer(writeContent)) {
6614
6614
  await fs.promises.writeFile(normalizedPath, writeContent);
6615
6615
  } else {
6616
6616
  await fs.promises.writeFile(normalizedPath, writeContent, "utf8");
@@ -6662,7 +6662,7 @@ var init_PathResolver = __esm({
6662
6662
  }
6663
6663
  const detectedFormat = this._detectFormat(filePath, format);
6664
6664
  let writeContent;
6665
- if (Buffer2.isBuffer(content)) {
6665
+ if (Buffer.isBuffer(content)) {
6666
6666
  writeContent = content;
6667
6667
  } else if (detectedFormat === "json" && typeof content === "object") {
6668
6668
  writeContent = JSON.stringify(content, null, 2);
@@ -6670,7 +6670,7 @@ var init_PathResolver = __esm({
6670
6670
  writeContent = String(content);
6671
6671
  }
6672
6672
  try {
6673
- if (Buffer2.isBuffer(writeContent)) {
6673
+ if (Buffer.isBuffer(writeContent)) {
6674
6674
  fs.writeFileSync(normalizedPath, writeContent);
6675
6675
  } else {
6676
6676
  fs.writeFileSync(normalizedPath, writeContent, "utf8");
@@ -7247,7 +7247,7 @@ var init_pathResolver = __esm({
7247
7247
  });
7248
7248
 
7249
7249
  // packages/tooling/src/bundler/utils.ts
7250
- import { Buffer as Buffer2 } from "node:buffer";
7250
+ import { Buffer } from "node:buffer";
7251
7251
  import { readFileSync as readFileSync2, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "node:fs";
7252
7252
  import { createRequire as createRequire3 } from "node:module";
7253
7253
  import { dirname as dirname3, resolve as resolve3 } from "node:path";
@@ -7264,7 +7264,7 @@ var init_utils = __esm({
7264
7264
  globalThis.require = require2;
7265
7265
  globalThis.__filename = __filename;
7266
7266
  globalThis.__dirname = __dirname;
7267
- globalThis.Buffer = Buffer2;
7267
+ globalThis.Buffer = Buffer;
7268
7268
  globalThis.process = process;
7269
7269
  if (typeof global === "undefined") {
7270
7270
  globalThis.global = globalThis;