buncargo 1.0.29 → 3.2.0

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 (246) hide show
  1. package/dist/bin.d.ts +1 -12
  2. package/dist/bin.js +261 -253
  3. package/dist/cli/bin.d.ts +13 -0
  4. package/dist/cli/bin.js +317 -0
  5. package/dist/cli/commands/help.d.ts +1 -0
  6. package/dist/cli/commands/runtime.d.ts +5 -0
  7. package/dist/cli/commands/version.d.ts +1 -0
  8. package/dist/cli/index.d.ts +1 -0
  9. package/dist/cli/index.js +14 -0
  10. package/dist/cli/run-cli.d.ts +30 -0
  11. package/dist/cli.d.ts +1 -22
  12. package/dist/cli.js +5 -13
  13. package/dist/config/config.d.ts +1 -0
  14. package/dist/config/define-config.d.ts +13 -0
  15. package/dist/config/index.d.ts +3 -0
  16. package/dist/config/index.js +15 -0
  17. package/dist/config/merge-configs.d.ts +3 -0
  18. package/dist/config/validate-config.d.ts +3 -0
  19. package/dist/config.d.ts +1 -72
  20. package/dist/config.js +12 -12
  21. package/dist/core/docker.d.ts +1 -83
  22. package/dist/core/docker.js +35 -32
  23. package/dist/core/index.d.ts +1 -1
  24. package/dist/core/index.js +123 -118
  25. package/dist/core/network.js +2 -2
  26. package/dist/core/ports.js +1 -1
  27. package/dist/core/process.js +1 -1
  28. package/dist/core/quick-tunnel/cloudflared-process.d.ts +10 -0
  29. package/dist/core/quick-tunnel/constants.d.ts +9 -0
  30. package/dist/core/quick-tunnel/index.d.ts +17 -0
  31. package/dist/core/quick-tunnel/install.d.ts +1 -0
  32. package/dist/core/tunnel.d.ts +34 -0
  33. package/dist/core/utils.js +2 -2
  34. package/dist/core/watchdog-runner.js +45 -42
  35. package/dist/core/watchdog.d.ts +1 -0
  36. package/dist/core/watchdog.js +4 -2
  37. package/dist/docker/index.d.ts +1 -0
  38. package/dist/docker/index.js +38 -0
  39. package/dist/docker/runtime.d.ts +87 -0
  40. package/dist/docker/runtime.js +37 -0
  41. package/dist/docker-compose/compose.d.ts +1 -0
  42. package/dist/docker-compose/generated-file.d.ts +7 -0
  43. package/dist/docker-compose/index.d.ts +3 -0
  44. package/dist/docker-compose/index.js +15 -0
  45. package/dist/docker-compose/model.d.ts +6 -0
  46. package/dist/docker-compose/services/clickhouse.d.ts +16 -0
  47. package/dist/docker-compose/services/define-docker-service.d.ts +41 -0
  48. package/dist/docker-compose/services/index.d.ts +23 -0
  49. package/dist/docker-compose/services/index.js +17 -0
  50. package/dist/docker-compose/services/postgres.d.ts +12 -0
  51. package/dist/docker-compose/services/redis.d.ts +12 -0
  52. package/dist/docker-compose/services/shared.d.ts +7 -0
  53. package/dist/docker-compose/yaml.d.ts +2 -0
  54. package/dist/environment/create-dev-environment.d.ts +23 -0
  55. package/dist/environment/index.d.ts +1 -0
  56. package/dist/environment/index.js +15 -0
  57. package/dist/environment/logging.d.ts +17 -0
  58. package/dist/environment/only-apps.d.ts +10 -0
  59. package/dist/environment/seeding.d.ts +9 -0
  60. package/dist/environment.d.ts +1 -23
  61. package/dist/environment.js +12 -14
  62. package/dist/index-045jksh5.js +147 -0
  63. package/dist/index-08wa79cs.js +125 -117
  64. package/dist/index-0kxnae3z.js +335 -0
  65. package/dist/index-1mdrf7nz.js +51 -43
  66. package/dist/index-1yvbwj4k.js +262 -242
  67. package/dist/index-23ev345g.js +475 -0
  68. package/dist/index-2ckr49sf.js +228 -0
  69. package/dist/index-2f47khe5.js +376 -369
  70. package/dist/index-2fr3g85b.js +220 -183
  71. package/dist/index-38xnzpa6.js +450 -0
  72. package/dist/index-3eyrdxw9.js +577 -0
  73. package/dist/index-3h3dhtf2.js +51 -43
  74. package/dist/index-42x95209.js +51 -43
  75. package/dist/index-4gp0az1g.js +145 -0
  76. package/dist/index-4xrxh8yv.js +72 -0
  77. package/dist/index-5aq985p4.js +250 -0
  78. package/dist/index-5gmws6ah.js +181 -0
  79. package/dist/index-5hka0tff.js +78 -76
  80. package/dist/index-5rfqps4b.js +3 -0
  81. package/dist/index-5t9jxqm0.js +428 -0
  82. package/dist/index-6c1w1xk5.js +101 -0
  83. package/dist/index-6cmex7m5.js +72 -0
  84. package/dist/index-6d6x175r.js +572 -0
  85. package/dist/index-6fm7mvwj.js +118 -97
  86. package/dist/index-6srpc523.js +127 -128
  87. package/dist/index-731rzzfp.js +157 -142
  88. package/dist/index-75y4cg2z.js +51 -43
  89. package/dist/index-7ja4ywyj.js +126 -127
  90. package/dist/index-7v19es2e.js +666 -0
  91. package/dist/index-8bw1cmz4.js +531 -0
  92. package/dist/index-8hbbj1mp.js +120 -121
  93. package/dist/index-8xj2p5n5.js +118 -97
  94. package/dist/index-9wyhzw0h.js +574 -0
  95. package/dist/index-ag90ry8t.js +576 -0
  96. package/dist/index-bj79tw5w.js +0 -0
  97. package/dist/index-bnk6nr0g.js +73 -0
  98. package/dist/index-brbbzyks.js +72 -0
  99. package/dist/index-byeqyjrz.js +72 -0
  100. package/dist/index-c0dr6mcv.js +123 -0
  101. package/dist/index-cty0bcry.js +235 -218
  102. package/dist/index-d8tyv5se.js +228 -0
  103. package/dist/index-d9efy0n4.js +176 -150
  104. package/dist/index-enj4zdma.js +574 -0
  105. package/dist/index-etfmqjjf.js +427 -0
  106. package/dist/index-fb29934k.js +172 -0
  107. package/dist/index-g50jw1yf.js +72 -0
  108. package/dist/index-g6eb5wdw.js +118 -117
  109. package/dist/index-ggq3yryx.js +99 -95
  110. package/dist/index-h70tce00.js +177 -0
  111. package/dist/index-hkxtfqtc.js +333 -0
  112. package/dist/index-k370bech.js +72 -0
  113. package/dist/index-kf3dhser.js +146 -143
  114. package/dist/index-ma6tgdb2.js +500 -0
  115. package/dist/index-mam0bcyz.js +123 -0
  116. package/dist/index-mm412dkp.js +274 -0
  117. package/dist/index-n8v18aeb.js +0 -0
  118. package/dist/index-ndnmnsej.js +378 -371
  119. package/dist/index-p8wty0e2.js +389 -379
  120. package/dist/index-qa8akv6y.js +666 -0
  121. package/dist/index-qfphr2fd.js +78 -76
  122. package/dist/index-qqmms8rs.js +51 -43
  123. package/dist/index-qw4093g2.js +51 -43
  124. package/dist/index-qzwpzjbx.js +121 -122
  125. package/dist/index-segbnm0h.js +146 -143
  126. package/dist/index-t0fj6gg1.js +112 -0
  127. package/dist/index-thdkwnv7.js +122 -0
  128. package/dist/index-tjbx2r2t.js +270 -0
  129. package/dist/index-tjqw9vtj.js +62 -54
  130. package/dist/index-vbpb89jy.js +248 -0
  131. package/dist/index-vg55rq0y.js +250 -0
  132. package/dist/index-vhs88xhe.js +99 -95
  133. package/dist/index-vs81yaks.js +244 -0
  134. package/dist/index-w8zxnjka.js +249 -0
  135. package/dist/index-wk2na3t9.js +385 -375
  136. package/dist/index-wz9x8g7z.js +383 -373
  137. package/dist/index-x249gyde.js +388 -378
  138. package/dist/index-x54nbgs7.js +355 -0
  139. package/dist/index-xkvd0nsd.js +187 -0
  140. package/dist/index-yedqxm1z.js +80 -0
  141. package/dist/index-yz4jfz7z.js +338 -0
  142. package/dist/index-zfjzzjkf.js +240 -199
  143. package/dist/index.d.ts +12 -8
  144. package/dist/index.js +56 -34
  145. package/dist/lint.d.ts +1 -46
  146. package/dist/lint.js +3 -7
  147. package/dist/loader/cache.d.ts +4 -0
  148. package/dist/loader/find-config-file.d.ts +2 -0
  149. package/dist/loader/index.d.ts +5 -0
  150. package/dist/loader/index.js +24 -0
  151. package/dist/loader/load-dev-env.d.ts +5 -0
  152. package/dist/loader/loader.d.ts +1 -0
  153. package/dist/loader.d.ts +1 -45
  154. package/dist/loader.js +22 -20
  155. package/dist/prisma/index.d.ts +1 -0
  156. package/dist/prisma/prisma.d.ts +29 -0
  157. package/dist/prisma.d.ts +1 -29
  158. package/dist/prisma.js +6 -10
  159. package/dist/src/bin.js +309 -0
  160. package/dist/src/cli.js +5 -0
  161. package/dist/src/config.js +15 -0
  162. package/dist/src/core/docker.js +38 -0
  163. package/dist/src/core/index.js +130 -0
  164. package/dist/src/core/network.js +9 -0
  165. package/dist/src/core/ports.js +23 -0
  166. package/dist/src/core/process.js +31 -0
  167. package/dist/src/core/utils.js +11 -0
  168. package/dist/src/core/watchdog-runner.js +69 -0
  169. package/dist/src/core/watchdog.js +28 -0
  170. package/dist/src/docker/runtime.js +37 -0
  171. package/dist/src/docker-compose/index.js +16 -0
  172. package/dist/src/docker-compose/services/index.js +17 -0
  173. package/dist/src/environment.js +12 -0
  174. package/dist/src/index.js +122 -0
  175. package/dist/src/lint.js +3 -0
  176. package/dist/src/loader.js +25 -0
  177. package/dist/src/prisma.js +6 -0
  178. package/dist/src/types.js +0 -0
  179. package/dist/typecheck/index.d.ts +1 -0
  180. package/dist/typecheck/index.js +7 -0
  181. package/dist/typecheck/typecheck.d.ts +46 -0
  182. package/dist/types/all-types.d.ts +544 -0
  183. package/dist/types/cli.d.ts +1 -0
  184. package/dist/types/config.d.ts +6 -0
  185. package/dist/types/docker.d.ts +15 -0
  186. package/dist/types/environment.d.ts +8 -0
  187. package/dist/types/hooks.d.ts +9 -0
  188. package/dist/types/index.d.ts +1 -0
  189. package/dist/types/index.js +0 -0
  190. package/dist/types/prisma.d.ts +1 -0
  191. package/dist/types.d.ts +1 -399
  192. package/package.json +55 -48
  193. package/readme.md +365 -109
  194. package/src/cli/bin.ts +77 -0
  195. package/src/cli/commands/help.ts +39 -0
  196. package/src/cli/commands/runtime.ts +72 -0
  197. package/src/cli/commands/version.ts +4 -0
  198. package/src/cli/index.ts +1 -0
  199. package/{cli.ts → src/cli/run-cli.ts} +114 -10
  200. package/src/config/define-config.ts +30 -0
  201. package/src/config/index.ts +3 -0
  202. package/src/config/merge-configs.ts +33 -0
  203. package/src/config/validate-config.ts +136 -0
  204. package/{core → src/core}/index.ts +2 -2
  205. package/{core → src/core}/ports.ts +5 -2
  206. package/{core → src/core}/process.ts +6 -2
  207. package/src/core/quick-tunnel/cloudflared-process.ts +83 -0
  208. package/src/core/quick-tunnel/constants.ts +31 -0
  209. package/src/core/quick-tunnel/index.ts +96 -0
  210. package/src/core/quick-tunnel/install.ts +160 -0
  211. package/src/core/tunnel.ts +165 -0
  212. package/{core → src/core}/utils.ts +1 -0
  213. package/{core → src/core}/watchdog.ts +5 -1
  214. package/src/docker/index.ts +1 -0
  215. package/{core/docker.ts → src/docker/runtime.ts} +11 -4
  216. package/src/docker-compose/generated-file.ts +45 -0
  217. package/src/docker-compose/index.ts +7 -0
  218. package/src/docker-compose/model.ts +197 -0
  219. package/src/docker-compose/services/clickhouse.ts +79 -0
  220. package/src/docker-compose/services/define-docker-service.ts +109 -0
  221. package/src/docker-compose/services/index.ts +67 -0
  222. package/src/docker-compose/services/postgres.ts +60 -0
  223. package/src/docker-compose/services/redis.ts +48 -0
  224. package/src/docker-compose/services/shared.ts +79 -0
  225. package/src/docker-compose/yaml.ts +88 -0
  226. package/{environment.ts → src/environment/create-dev-environment.ts} +214 -141
  227. package/src/environment/index.ts +1 -0
  228. package/src/environment/logging.ts +115 -0
  229. package/src/environment/only-apps.ts +34 -0
  230. package/src/environment/seeding.ts +57 -0
  231. package/{index.ts → src/index.ts} +52 -20
  232. package/src/loader/cache.ts +23 -0
  233. package/src/loader/find-config-file.ts +29 -0
  234. package/src/loader/index.ts +17 -0
  235. package/src/loader/load-dev-env.ts +38 -0
  236. package/src/prisma/index.ts +1 -0
  237. package/{prisma.ts → src/prisma/prisma.ts} +4 -2
  238. package/src/typecheck/index.ts +1 -0
  239. package/{types.ts → src/types/all-types.ts} +186 -8
  240. package/src/types/index.ts +1 -0
  241. package/bin.ts +0 -192
  242. package/config.ts +0 -194
  243. package/loader.ts +0 -126
  244. /package/{core → src/core}/network.ts +0 -0
  245. /package/{core → src/core}/watchdog-runner.ts +0 -0
  246. /package/{lint.ts → src/typecheck/typecheck.ts} +0 -0
package/dist/lint.d.ts CHANGED
@@ -1,46 +1 @@
1
- /**
2
- * Options for running workspace typechecks.
3
- */
4
- export interface WorkspaceTypecheckOptions {
5
- /** Root directory to search from (defaults to cwd) */
6
- root?: string;
7
- /** Glob patterns for workspaces to check (defaults to apps/*, packages/*, modules) */
8
- patterns?: string[];
9
- /** Maximum concurrent typecheck processes (defaults to 1) */
10
- concurrency?: number;
11
- /** Print output to console (defaults to true) */
12
- verbose?: boolean;
13
- }
14
- /**
15
- * Result of a single workspace typecheck.
16
- */
17
- export interface WorkspaceTypecheckResult {
18
- workspace: string;
19
- duration: number;
20
- success: boolean;
21
- fileCount: number;
22
- errorOutput?: string;
23
- }
24
- /**
25
- * Overall result of running typechecks across all workspaces.
26
- */
27
- export interface TypecheckResult {
28
- success: boolean;
29
- totalDuration: number;
30
- totalFiles: number;
31
- workspaceCount: number;
32
- results: WorkspaceTypecheckResult[];
33
- }
34
- /**
35
- * Run TypeScript typechecks across all workspaces that have a `typecheck` script.
36
- *
37
- * @example
38
- * ```typescript
39
- * const result = await runWorkspaceTypecheck({ verbose: true })
40
- * if (!result.success) {
41
- * console.error('Typecheck failed')
42
- * process.exit(1)
43
- * }
44
- * ```
45
- */
46
- export declare function runWorkspaceTypecheck(options?: WorkspaceTypecheckOptions): Promise<TypecheckResult>;
1
+ export * from "./typecheck";
package/dist/lint.js CHANGED
@@ -1,7 +1,3 @@
1
- import {
2
- runWorkspaceTypecheck
3
- } from "./index-d9efy0n4.js";
4
- import"./index-qnx9j3qa.js";
5
- export {
6
- runWorkspaceTypecheck
7
- };
1
+ import { runWorkspaceTypecheck } from "./index-h70tce00.js";
2
+ import "./index-qnx9j3qa.js";
3
+ export { runWorkspaceTypecheck };
@@ -0,0 +1,4 @@
1
+ import type { AppConfig, DevEnvironment, ServiceConfig } from "../types";
2
+ export declare function setCachedDevEnv(env: DevEnvironment<Record<string, ServiceConfig>, Record<string, AppConfig>>): void;
3
+ export declare function getCachedDevEnv(): DevEnvironment<Record<string, ServiceConfig>, Record<string, AppConfig>> | null;
4
+ export declare function clearDevEnvCache(): void;
@@ -0,0 +1,2 @@
1
+ export declare const CONFIG_FILES: string[];
2
+ export declare function findConfigFile(startDir: string): string | null;
@@ -0,0 +1,5 @@
1
+ import type { AppConfig, DevEnvironment, ServiceConfig } from "../types";
2
+ export { clearDevEnvCache } from "./cache";
3
+ export { CONFIG_FILES, findConfigFile } from "./find-config-file";
4
+ export { loadDevEnv } from "./load-dev-env";
5
+ export declare function getDevEnv(): DevEnvironment<Record<string, ServiceConfig>, Record<string, AppConfig>>;
@@ -0,0 +1,24 @@
1
+ import {
2
+ CONFIG_FILES,
3
+ clearDevEnvCache,
4
+ findConfigFile,
5
+ getDevEnv,
6
+ loadDevEnv
7
+ } from "../index-byeqyjrz.js";
8
+ import"../index-7v19es2e.js";
9
+ import"../index-d8tyv5se.js";
10
+ import"../index-c0dr6mcv.js";
11
+ import"../index-fb29934k.js";
12
+ import"../index-5t9jxqm0.js";
13
+ import"../index-x54nbgs7.js";
14
+ import"../index-mam0bcyz.js";
15
+ import"../index-mm412dkp.js";
16
+ import"../index-t0fj6gg1.js";
17
+ import"../index-qnx9j3qa.js";
18
+ export {
19
+ loadDevEnv,
20
+ getDevEnv,
21
+ findConfigFile,
22
+ clearDevEnvCache,
23
+ CONFIG_FILES
24
+ };
@@ -0,0 +1,5 @@
1
+ import type { AppConfig, DevEnvironment, ServiceConfig } from "../types";
2
+ export declare function loadDevEnv(options?: {
3
+ cwd?: string;
4
+ reload?: boolean;
5
+ }): Promise<DevEnvironment<Record<string, ServiceConfig>, Record<string, AppConfig>>>;
@@ -0,0 +1 @@
1
+ export * from "./index";
package/dist/loader.d.ts CHANGED
@@ -1,45 +1 @@
1
- import type { AppConfig, DevEnvironment, ServiceConfig } from "./types";
2
- export declare const CONFIG_FILES: string[];
3
- /**
4
- * Find a config file by traversing up from the starting directory.
5
- * Returns the full path to the config file, or null if not found.
6
- */
7
- export declare function findConfigFile(startDir: string): string | null;
8
- /**
9
- * Load the dev environment from the config file.
10
- * Caches the result for subsequent calls.
11
- *
12
- * @example
13
- * ```typescript
14
- * import { loadDevEnv } from 'buncargo'
15
- *
16
- * const env = await loadDevEnv()
17
- * console.log(env.ports.postgres) // 5432 (or offset port)
18
- * console.log(env.urls.api) // http://localhost:3000
19
- * ```
20
- */
21
- export declare function loadDevEnv(options?: {
22
- /** Directory to search for config file. Defaults to process.cwd() */
23
- cwd?: string;
24
- /** Skip cache and reload config */
25
- reload?: boolean;
26
- }): Promise<DevEnvironment<Record<string, ServiceConfig>, Record<string, AppConfig>>>;
27
- /**
28
- * Get the cached dev environment synchronously.
29
- * Throws if loadDevEnv() hasn't been called yet.
30
- *
31
- * @example
32
- * ```typescript
33
- * // First load async
34
- * await loadDevEnv()
35
- *
36
- * // Then use sync getter anywhere
37
- * import { getDevEnv } from 'buncargo'
38
- * const env = getDevEnv()
39
- * ```
40
- */
41
- export declare function getDevEnv(): DevEnvironment<Record<string, ServiceConfig>, Record<string, AppConfig>>;
42
- /**
43
- * Clear the cached environment.
44
- */
45
- export declare function clearDevEnvCache(): void;
1
+ export * from "./loader/index";
package/dist/loader.js CHANGED
@@ -1,23 +1,25 @@
1
1
  import {
2
- CONFIG_FILES,
3
- clearDevEnvCache,
4
- findConfigFile,
5
- getDevEnv,
6
- loadDevEnv
7
- } from "./index-1mdrf7nz.js";
8
- import"./index-wk2na3t9.js";
9
- import"./index-ggq3yryx.js";
10
- import"./index-1yvbwj4k.js";
11
- import"./index-tjqw9vtj.js";
12
- import"./index-qfphr2fd.js";
13
- import"./index-zfjzzjkf.js";
14
- import"./index-8xj2p5n5.js";
15
- import"./index-731rzzfp.js";
16
- import"./index-qnx9j3qa.js";
2
+ CONFIG_FILES,
3
+ clearDevEnvCache,
4
+ findConfigFile,
5
+ getDevEnv,
6
+ loadDevEnv,
7
+ } from "./index-yedqxm1z.js";
8
+ import "./index-38xnzpa6.js";
9
+ import "./index-vbpb89jy.js";
10
+ import "./index-w8zxnjka.js";
11
+ import "./index-mam0bcyz.js";
12
+ import "./index-mm412dkp.js";
13
+ import "./index-045jksh5.js";
14
+ import "./index-6c1w1xk5.js";
15
+ import "./index-tjbx2r2t.js";
16
+ import "./index-4gp0az1g.js";
17
+ import "./index-xkvd0nsd.js";
18
+ import "./index-qnx9j3qa.js";
17
19
  export {
18
- loadDevEnv,
19
- getDevEnv,
20
- findConfigFile,
21
- clearDevEnvCache,
22
- CONFIG_FILES
20
+ loadDevEnv,
21
+ getDevEnv,
22
+ findConfigFile,
23
+ clearDevEnvCache,
24
+ CONFIG_FILES,
23
25
  };
@@ -0,0 +1 @@
1
+ export * from "./prisma";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Prisma integration for dev-tools-v2.
3
+ *
4
+ * When `prisma` is configured in defineDevConfig, `dev.prisma` becomes available
5
+ * with methods to run prisma commands against the Docker development database.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // In dev.config.ts
10
+ * const config = defineDevConfig({
11
+ * projectPrefix: 'myapp',
12
+ * services: { postgres: { port: 5432, healthCheck: 'pg_isready' } },
13
+ * prisma: { cwd: 'packages/prisma' } // Enable prisma integration
14
+ * })
15
+ *
16
+ * // Usage
17
+ * await dev.prisma.run(['migrate', 'dev'])
18
+ * await dev.prisma.ensureDatabase()
19
+ * const url = dev.prisma.getDatabaseUrl()
20
+ * ```
21
+ *
22
+ * @internal This module is used internally by createDevEnvironment.
23
+ */
24
+ import type { AppConfig, DevEnvironment, PrismaConfig, PrismaRunner, ServiceConfig } from "../types";
25
+ /**
26
+ * Create a Prisma runner from config (used internally by createDevEnvironment).
27
+ * @internal
28
+ */
29
+ export declare function createPrismaRunner<TServices extends Record<string, ServiceConfig>, TApps extends Record<string, AppConfig>>(env: DevEnvironment<TServices, TApps>, config: PrismaConfig): PrismaRunner;
package/dist/prisma.d.ts CHANGED
@@ -1,29 +1 @@
1
- /**
2
- * Prisma integration for dev-tools-v2.
3
- *
4
- * When `prisma` is configured in defineDevConfig, `dev.prisma` becomes available
5
- * with methods to run prisma commands against the Docker development database.
6
- *
7
- * @example
8
- * ```typescript
9
- * // In dev.config.ts
10
- * const config = defineDevConfig({
11
- * projectPrefix: 'myapp',
12
- * services: { postgres: { port: 5432, healthCheck: 'pg_isready' } },
13
- * prisma: { cwd: 'packages/prisma' } // Enable prisma integration
14
- * })
15
- *
16
- * // Usage
17
- * await dev.prisma.run(['migrate', 'dev'])
18
- * await dev.prisma.ensureDatabase()
19
- * const url = dev.prisma.getDatabaseUrl()
20
- * ```
21
- *
22
- * @internal This module is used internally by createDevEnvironment.
23
- */
24
- import type { AppConfig, DevEnvironment, PrismaConfig, PrismaRunner, ServiceConfig } from "./types";
25
- /**
26
- * Create a Prisma runner from config (used internally by createDevEnvironment).
27
- * @internal
28
- */
29
- export declare function createPrismaRunner<TServices extends Record<string, ServiceConfig>, TApps extends Record<string, AppConfig>>(env: DevEnvironment<TServices, TApps>, config: PrismaConfig): PrismaRunner;
1
+ export * from "./prisma/index";
package/dist/prisma.js CHANGED
@@ -1,10 +1,6 @@
1
- import {
2
- createPrismaRunner
3
- } from "./index-qfphr2fd.js";
4
- import"./index-zfjzzjkf.js";
5
- import"./index-8xj2p5n5.js";
6
- import"./index-731rzzfp.js";
7
- import"./index-qnx9j3qa.js";
8
- export {
9
- createPrismaRunner
10
- };
1
+ import { createPrismaRunner } from "./index-6c1w1xk5.js";
2
+ import "./index-tjbx2r2t.js";
3
+ import "./index-4gp0az1g.js";
4
+ import "./index-xkvd0nsd.js";
5
+ import "./index-qnx9j3qa.js";
6
+ export { createPrismaRunner };
@@ -0,0 +1,309 @@
1
+ #!/usr/bin/env bun
2
+ import { runCli } from "../index-5gmws6ah.js";
3
+ import { loadDevEnv } from "../index-yedqxm1z.js";
4
+ import "../index-38xnzpa6.js";
5
+ import "../index-vbpb89jy.js";
6
+ import "../index-w8zxnjka.js";
7
+ import "../index-mam0bcyz.js";
8
+ import "../index-mm412dkp.js";
9
+ import "../index-045jksh5.js";
10
+ import "../index-6c1w1xk5.js";
11
+ import "../index-tjbx2r2t.js";
12
+ import "../index-4gp0az1g.js";
13
+ import "../index-xkvd0nsd.js";
14
+ import { __commonJS, __require } from "../index-qnx9j3qa.js";
15
+
16
+ // package.json
17
+ var require_package = __commonJS((exports, module) => {
18
+ module.exports = {
19
+ name: "buncargo",
20
+ version: "1.0.31",
21
+ description:
22
+ "A Bun-powered development environment CLI for managing Docker Compose services, dev servers, and environment variables",
23
+ type: "module",
24
+ module: "./dist/index.js",
25
+ main: "./dist/index.js",
26
+ types: "./dist/index.d.ts",
27
+ license: "MIT",
28
+ repository: {
29
+ type: "git",
30
+ url: "git+https://github.com/HansKristoffer/buncargo.git",
31
+ },
32
+ author: "Kristoffer Hansen",
33
+ keywords: [
34
+ "bun",
35
+ "dev-tools",
36
+ "docker",
37
+ "docker-compose",
38
+ "development",
39
+ "cli",
40
+ "monorepo",
41
+ "dev-server",
42
+ "environment",
43
+ ],
44
+ engines: {
45
+ bun: ">=1.0.0",
46
+ },
47
+ files: ["src/**/*.ts", "dist", "!src/**/*.test.ts"],
48
+ bin: {
49
+ "dev-tools": "./dist/bin.js",
50
+ buncargo: "./dist/bin.js",
51
+ },
52
+ exports: {
53
+ ".": {
54
+ types: "./dist/index.d.ts",
55
+ bun: "./src/index.ts",
56
+ import: "./dist/index.js",
57
+ default: "./dist/index.js",
58
+ },
59
+ "./types": {
60
+ types: "./dist/types.d.ts",
61
+ bun: "./src/types.ts",
62
+ import: "./dist/types.js",
63
+ default: "./dist/types.js",
64
+ },
65
+ "./config": {
66
+ types: "./dist/config.d.ts",
67
+ bun: "./src/config.ts",
68
+ import: "./dist/config.js",
69
+ default: "./dist/config.js",
70
+ },
71
+ "./environment": {
72
+ types: "./dist/environment.d.ts",
73
+ bun: "./src/environment.ts",
74
+ import: "./dist/environment.js",
75
+ default: "./dist/environment.js",
76
+ },
77
+ "./core/ports": {
78
+ types: "./dist/core/ports.d.ts",
79
+ bun: "./src/core/ports.ts",
80
+ import: "./dist/core/ports.js",
81
+ default: "./dist/core/ports.js",
82
+ },
83
+ "./core/docker": {
84
+ types: "./dist/core/docker.d.ts",
85
+ bun: "./src/core/docker.ts",
86
+ import: "./dist/core/docker.js",
87
+ default: "./dist/core/docker.js",
88
+ },
89
+ "./core/network": {
90
+ types: "./dist/core/network.d.ts",
91
+ bun: "./src/core/network.ts",
92
+ import: "./dist/core/network.js",
93
+ default: "./dist/core/network.js",
94
+ },
95
+ "./core/process": {
96
+ types: "./dist/core/process.d.ts",
97
+ bun: "./src/core/process.ts",
98
+ import: "./dist/core/process.js",
99
+ default: "./dist/core/process.js",
100
+ },
101
+ "./core/watchdog": {
102
+ types: "./dist/core/watchdog.d.ts",
103
+ bun: "./src/core/watchdog.ts",
104
+ import: "./dist/core/watchdog.js",
105
+ default: "./dist/core/watchdog.js",
106
+ },
107
+ "./core/utils": {
108
+ types: "./dist/core/utils.d.ts",
109
+ bun: "./src/core/utils.ts",
110
+ import: "./dist/core/utils.js",
111
+ default: "./dist/core/utils.js",
112
+ },
113
+ "./cli": {
114
+ types: "./dist/cli.d.ts",
115
+ bun: "./src/cli.ts",
116
+ import: "./dist/cli.js",
117
+ default: "./dist/cli.js",
118
+ },
119
+ "./lint": {
120
+ types: "./dist/lint.d.ts",
121
+ bun: "./src/lint.ts",
122
+ import: "./dist/lint.js",
123
+ default: "./dist/lint.js",
124
+ },
125
+ "./loader": {
126
+ types: "./dist/loader.d.ts",
127
+ bun: "./src/loader.ts",
128
+ import: "./dist/loader.js",
129
+ default: "./dist/loader.js",
130
+ },
131
+ },
132
+ scripts: {
133
+ build: "bun run build:js && bun run build:types",
134
+ "build:js":
135
+ "bun build ./src/index.ts ./src/bin.ts ./src/cli.ts ./src/config.ts ./src/environment.ts ./src/lint.ts ./src/loader.ts ./src/prisma.ts ./src/types.ts ./src/core/docker.ts ./src/core/index.ts ./src/core/network.ts ./src/core/ports.ts ./src/core/process.ts ./src/core/utils.ts ./src/core/watchdog.ts ./src/core/watchdog-runner.ts ./src/docker/runtime.ts ./src/docker-compose/index.ts ./src/docker-compose/services/index.ts --outdir ./dist --target node --packages external --splitting",
136
+ "build:types": "tsc -p tsconfig.build.json",
137
+ prepublishOnly: "bun run build",
138
+ "publish:patch": "npm version patch && npm publish",
139
+ "publish:minor": "npm version minor && npm publish",
140
+ "publish:major": "npm version major && npm publish",
141
+ lint: "bun run typecheck && biome check",
142
+ "lint:write": "bun run typecheck && biome check --fix && biome format",
143
+ typecheck: "tsgo --incremental",
144
+ },
145
+ devDependencies: {
146
+ "@types/bun": "1.3.2",
147
+ "@biomejs/biome": "2.3.4",
148
+ "@typescript/native-preview": "7.0.0-dev.20260127.1",
149
+ typescript: "^5.7.0",
150
+ },
151
+ dependencies: {
152
+ "fast-glob": "^3.3.3",
153
+ picocolors: "^1.1.1",
154
+ },
155
+ };
156
+ });
157
+
158
+ // src/cli/commands/help.ts
159
+ function showHelp() {
160
+ console.log(`
161
+ buncargo - Development environment CLI
162
+
163
+ USAGE:
164
+ bunx buncargo <command> [options]
165
+
166
+ COMMANDS:
167
+ dev Start the development environment
168
+ typecheck Run TypeScript typecheck across workspaces
169
+ prisma <args> Run Prisma CLI with correct DATABASE_URL
170
+ env Print environment info as JSON
171
+ help Show this help message
172
+ version Show version
173
+
174
+ EXAMPLES:
175
+ bunx buncargo dev # Start everything
176
+ bunx buncargo dev --help # Show dev command options
177
+ bunx buncargo dev --down # Stop containers
178
+ bunx buncargo typecheck # Run typecheck
179
+ bunx buncargo prisma studio # Open Prisma Studio
180
+ bunx buncargo env # Get ports/urls as JSON
181
+
182
+ CONFIG:
183
+ Create a dev.config.ts with a default export:
184
+
185
+ import { defineDevConfig } from 'buncargo'
186
+
187
+ export default defineDevConfig({
188
+ projectPrefix: 'myapp',
189
+ services: { ... },
190
+ apps: { ... }
191
+ })
192
+
193
+ Run "bunx buncargo dev --help" for dev command options.
194
+ `);
195
+ }
196
+
197
+ // src/cli/commands/runtime.ts
198
+ async function loadEnv() {
199
+ try {
200
+ return await loadDevEnv();
201
+ } catch (error) {
202
+ console.error(`❌ ${error instanceof Error ? error.message : error}`);
203
+ process.exit(1);
204
+ }
205
+ }
206
+ async function handleDev(args) {
207
+ const env = await loadEnv();
208
+ await runCli(env, { args });
209
+ }
210
+ async function handlePrisma(args) {
211
+ const env = await loadEnv();
212
+ if (!env.prisma) {
213
+ console.error("❌ Prisma is not configured in your dev config.");
214
+ console.error("");
215
+ console.error(" Add prisma to your config:");
216
+ console.error("");
217
+ console.error(" export default defineDevConfig({");
218
+ console.error(" ...");
219
+ console.error(" prisma: {");
220
+ console.error(" cwd: 'packages/prisma'");
221
+ console.error(" }");
222
+ console.error(" })");
223
+ process.exit(1);
224
+ }
225
+ const running = await env.isRunning();
226
+ if (!running) {
227
+ console.log("\uD83D\uDC33 Starting database container...");
228
+ await env.start({ startServers: false, wait: true });
229
+ }
230
+ const exitCode = await env.prisma.run(args);
231
+ process.exit(exitCode);
232
+ }
233
+ async function handleEnv() {
234
+ const env = await loadEnv();
235
+ console.log(
236
+ JSON.stringify(
237
+ {
238
+ projectName: env.projectName,
239
+ ports: env.ports,
240
+ urls: env.urls,
241
+ portOffset: env.portOffset,
242
+ isWorktree: env.isWorktree,
243
+ localIp: env.localIp,
244
+ root: env.root,
245
+ },
246
+ null,
247
+ 2,
248
+ ),
249
+ );
250
+ }
251
+ async function handleTypecheck() {
252
+ const env = await loadEnv();
253
+ const { runWorkspaceTypecheck } = await import("../index-5rfqps4b.js");
254
+ const result = await runWorkspaceTypecheck({
255
+ root: env.root,
256
+ verbose: true,
257
+ });
258
+ process.exit(result.success ? 0 : 1);
259
+ }
260
+
261
+ // src/cli/commands/version.ts
262
+ function showVersion() {
263
+ const pkg = require_package();
264
+ console.log(`buncargo v${pkg.version}`);
265
+ }
266
+
267
+ // src/cli/bin.ts
268
+ async function main() {
269
+ const args = process.argv.slice(2);
270
+ const command = args[0];
271
+ const commandArgs = args.slice(1);
272
+ if (
273
+ !command ||
274
+ command === "help" ||
275
+ command === "--help" ||
276
+ command === "-h"
277
+ ) {
278
+ showHelp();
279
+ process.exit(0);
280
+ }
281
+ if (command === "version" || command === "--version" || command === "-v") {
282
+ showVersion();
283
+ process.exit(0);
284
+ }
285
+ switch (command) {
286
+ case "dev":
287
+ await handleDev(commandArgs);
288
+ break;
289
+ case "typecheck":
290
+ await handleTypecheck();
291
+ break;
292
+ case "prisma":
293
+ await handlePrisma(commandArgs);
294
+ break;
295
+ case "env":
296
+ await handleEnv();
297
+ break;
298
+ default:
299
+ console.error(`❌ Unknown command: ${command}`);
300
+ console.error("");
301
+ console.error(' Run "bunx buncargo help" for available commands.');
302
+ process.exit(1);
303
+ }
304
+ }
305
+ main().catch((error) => {
306
+ const message = error instanceof Error ? error.message : String(error);
307
+ console.error(`❌ ${message}`);
308
+ process.exit(1);
309
+ });
@@ -0,0 +1,5 @@
1
+ import { getFlagValue, hasFlag, runCli } from "../index-5gmws6ah.js";
2
+ import "../index-mam0bcyz.js";
3
+ import "../index-mm412dkp.js";
4
+ import "../index-qnx9j3qa.js";
5
+ export { runCli, hasFlag, getFlagValue };
@@ -0,0 +1,15 @@
1
+ import {
2
+ assertValidConfig,
3
+ defineDevConfig,
4
+ definePartialConfig,
5
+ mergeConfigs,
6
+ validateConfig,
7
+ } from "../index-045jksh5.js";
8
+ import "../index-qnx9j3qa.js";
9
+ export {
10
+ validateConfig,
11
+ mergeConfigs,
12
+ definePartialConfig,
13
+ defineDevConfig,
14
+ assertValidConfig,
15
+ };
@@ -0,0 +1,38 @@
1
+ import "../../index-n8v18aeb.js";
2
+ import {
3
+ areContainersRunning,
4
+ assertDockerRunning,
5
+ createBuiltInHealthCheck,
6
+ DOCKER_NOT_RUNNING_MESSAGE,
7
+ getComposeArg,
8
+ isContainerRunning,
9
+ isDockerRunning,
10
+ MAX_ATTEMPTS,
11
+ POLL_INTERVAL,
12
+ startContainers,
13
+ startService,
14
+ stopContainers,
15
+ waitForAllServices,
16
+ waitForService,
17
+ waitForServiceByType,
18
+ } from "../../index-tjbx2r2t.js";
19
+ import "../../index-4gp0az1g.js";
20
+ import "../../index-xkvd0nsd.js";
21
+ import "../../index-qnx9j3qa.js";
22
+ export {
23
+ waitForServiceByType,
24
+ waitForService,
25
+ waitForAllServices,
26
+ stopContainers,
27
+ startService,
28
+ startContainers,
29
+ isDockerRunning,
30
+ isContainerRunning,
31
+ getComposeArg,
32
+ createBuiltInHealthCheck,
33
+ assertDockerRunning,
34
+ areContainersRunning,
35
+ POLL_INTERVAL,
36
+ MAX_ATTEMPTS,
37
+ DOCKER_NOT_RUNNING_MESSAGE,
38
+ };