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.
- package/dist/bin.d.ts +1 -12
- package/dist/bin.js +261 -253
- package/dist/cli/bin.d.ts +13 -0
- package/dist/cli/bin.js +317 -0
- package/dist/cli/commands/help.d.ts +1 -0
- package/dist/cli/commands/runtime.d.ts +5 -0
- package/dist/cli/commands/version.d.ts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +14 -0
- package/dist/cli/run-cli.d.ts +30 -0
- package/dist/cli.d.ts +1 -22
- package/dist/cli.js +5 -13
- package/dist/config/config.d.ts +1 -0
- package/dist/config/define-config.d.ts +13 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.js +15 -0
- package/dist/config/merge-configs.d.ts +3 -0
- package/dist/config/validate-config.d.ts +3 -0
- package/dist/config.d.ts +1 -72
- package/dist/config.js +12 -12
- package/dist/core/docker.d.ts +1 -83
- package/dist/core/docker.js +35 -32
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +123 -118
- package/dist/core/network.js +2 -2
- package/dist/core/ports.js +1 -1
- package/dist/core/process.js +1 -1
- package/dist/core/quick-tunnel/cloudflared-process.d.ts +10 -0
- package/dist/core/quick-tunnel/constants.d.ts +9 -0
- package/dist/core/quick-tunnel/index.d.ts +17 -0
- package/dist/core/quick-tunnel/install.d.ts +1 -0
- package/dist/core/tunnel.d.ts +34 -0
- package/dist/core/utils.js +2 -2
- package/dist/core/watchdog-runner.js +45 -42
- package/dist/core/watchdog.d.ts +1 -0
- package/dist/core/watchdog.js +4 -2
- package/dist/docker/index.d.ts +1 -0
- package/dist/docker/index.js +38 -0
- package/dist/docker/runtime.d.ts +87 -0
- package/dist/docker/runtime.js +37 -0
- package/dist/docker-compose/compose.d.ts +1 -0
- package/dist/docker-compose/generated-file.d.ts +7 -0
- package/dist/docker-compose/index.d.ts +3 -0
- package/dist/docker-compose/index.js +15 -0
- package/dist/docker-compose/model.d.ts +6 -0
- package/dist/docker-compose/services/clickhouse.d.ts +16 -0
- package/dist/docker-compose/services/define-docker-service.d.ts +41 -0
- package/dist/docker-compose/services/index.d.ts +23 -0
- package/dist/docker-compose/services/index.js +17 -0
- package/dist/docker-compose/services/postgres.d.ts +12 -0
- package/dist/docker-compose/services/redis.d.ts +12 -0
- package/dist/docker-compose/services/shared.d.ts +7 -0
- package/dist/docker-compose/yaml.d.ts +2 -0
- package/dist/environment/create-dev-environment.d.ts +23 -0
- package/dist/environment/index.d.ts +1 -0
- package/dist/environment/index.js +15 -0
- package/dist/environment/logging.d.ts +17 -0
- package/dist/environment/only-apps.d.ts +10 -0
- package/dist/environment/seeding.d.ts +9 -0
- package/dist/environment.d.ts +1 -23
- package/dist/environment.js +12 -14
- package/dist/index-045jksh5.js +147 -0
- package/dist/index-08wa79cs.js +125 -117
- package/dist/index-0kxnae3z.js +335 -0
- package/dist/index-1mdrf7nz.js +51 -43
- package/dist/index-1yvbwj4k.js +262 -242
- package/dist/index-23ev345g.js +475 -0
- package/dist/index-2ckr49sf.js +228 -0
- package/dist/index-2f47khe5.js +376 -369
- package/dist/index-2fr3g85b.js +220 -183
- package/dist/index-38xnzpa6.js +450 -0
- package/dist/index-3eyrdxw9.js +577 -0
- package/dist/index-3h3dhtf2.js +51 -43
- package/dist/index-42x95209.js +51 -43
- package/dist/index-4gp0az1g.js +145 -0
- package/dist/index-4xrxh8yv.js +72 -0
- package/dist/index-5aq985p4.js +250 -0
- package/dist/index-5gmws6ah.js +181 -0
- package/dist/index-5hka0tff.js +78 -76
- package/dist/index-5rfqps4b.js +3 -0
- package/dist/index-5t9jxqm0.js +428 -0
- package/dist/index-6c1w1xk5.js +101 -0
- package/dist/index-6cmex7m5.js +72 -0
- package/dist/index-6d6x175r.js +572 -0
- package/dist/index-6fm7mvwj.js +118 -97
- package/dist/index-6srpc523.js +127 -128
- package/dist/index-731rzzfp.js +157 -142
- package/dist/index-75y4cg2z.js +51 -43
- package/dist/index-7ja4ywyj.js +126 -127
- package/dist/index-7v19es2e.js +666 -0
- package/dist/index-8bw1cmz4.js +531 -0
- package/dist/index-8hbbj1mp.js +120 -121
- package/dist/index-8xj2p5n5.js +118 -97
- package/dist/index-9wyhzw0h.js +574 -0
- package/dist/index-ag90ry8t.js +576 -0
- package/dist/index-bj79tw5w.js +0 -0
- package/dist/index-bnk6nr0g.js +73 -0
- package/dist/index-brbbzyks.js +72 -0
- package/dist/index-byeqyjrz.js +72 -0
- package/dist/index-c0dr6mcv.js +123 -0
- package/dist/index-cty0bcry.js +235 -218
- package/dist/index-d8tyv5se.js +228 -0
- package/dist/index-d9efy0n4.js +176 -150
- package/dist/index-enj4zdma.js +574 -0
- package/dist/index-etfmqjjf.js +427 -0
- package/dist/index-fb29934k.js +172 -0
- package/dist/index-g50jw1yf.js +72 -0
- package/dist/index-g6eb5wdw.js +118 -117
- package/dist/index-ggq3yryx.js +99 -95
- package/dist/index-h70tce00.js +177 -0
- package/dist/index-hkxtfqtc.js +333 -0
- package/dist/index-k370bech.js +72 -0
- package/dist/index-kf3dhser.js +146 -143
- package/dist/index-ma6tgdb2.js +500 -0
- package/dist/index-mam0bcyz.js +123 -0
- package/dist/index-mm412dkp.js +274 -0
- package/dist/index-n8v18aeb.js +0 -0
- package/dist/index-ndnmnsej.js +378 -371
- package/dist/index-p8wty0e2.js +389 -379
- package/dist/index-qa8akv6y.js +666 -0
- package/dist/index-qfphr2fd.js +78 -76
- package/dist/index-qqmms8rs.js +51 -43
- package/dist/index-qw4093g2.js +51 -43
- package/dist/index-qzwpzjbx.js +121 -122
- package/dist/index-segbnm0h.js +146 -143
- package/dist/index-t0fj6gg1.js +112 -0
- package/dist/index-thdkwnv7.js +122 -0
- package/dist/index-tjbx2r2t.js +270 -0
- package/dist/index-tjqw9vtj.js +62 -54
- package/dist/index-vbpb89jy.js +248 -0
- package/dist/index-vg55rq0y.js +250 -0
- package/dist/index-vhs88xhe.js +99 -95
- package/dist/index-vs81yaks.js +244 -0
- package/dist/index-w8zxnjka.js +249 -0
- package/dist/index-wk2na3t9.js +385 -375
- package/dist/index-wz9x8g7z.js +383 -373
- package/dist/index-x249gyde.js +388 -378
- package/dist/index-x54nbgs7.js +355 -0
- package/dist/index-xkvd0nsd.js +187 -0
- package/dist/index-yedqxm1z.js +80 -0
- package/dist/index-yz4jfz7z.js +338 -0
- package/dist/index-zfjzzjkf.js +240 -199
- package/dist/index.d.ts +12 -8
- package/dist/index.js +56 -34
- package/dist/lint.d.ts +1 -46
- package/dist/lint.js +3 -7
- package/dist/loader/cache.d.ts +4 -0
- package/dist/loader/find-config-file.d.ts +2 -0
- package/dist/loader/index.d.ts +5 -0
- package/dist/loader/index.js +24 -0
- package/dist/loader/load-dev-env.d.ts +5 -0
- package/dist/loader/loader.d.ts +1 -0
- package/dist/loader.d.ts +1 -45
- package/dist/loader.js +22 -20
- package/dist/prisma/index.d.ts +1 -0
- package/dist/prisma/prisma.d.ts +29 -0
- package/dist/prisma.d.ts +1 -29
- package/dist/prisma.js +6 -10
- package/dist/src/bin.js +309 -0
- package/dist/src/cli.js +5 -0
- package/dist/src/config.js +15 -0
- package/dist/src/core/docker.js +38 -0
- package/dist/src/core/index.js +130 -0
- package/dist/src/core/network.js +9 -0
- package/dist/src/core/ports.js +23 -0
- package/dist/src/core/process.js +31 -0
- package/dist/src/core/utils.js +11 -0
- package/dist/src/core/watchdog-runner.js +69 -0
- package/dist/src/core/watchdog.js +28 -0
- package/dist/src/docker/runtime.js +37 -0
- package/dist/src/docker-compose/index.js +16 -0
- package/dist/src/docker-compose/services/index.js +17 -0
- package/dist/src/environment.js +12 -0
- package/dist/src/index.js +122 -0
- package/dist/src/lint.js +3 -0
- package/dist/src/loader.js +25 -0
- package/dist/src/prisma.js +6 -0
- package/dist/src/types.js +0 -0
- package/dist/typecheck/index.d.ts +1 -0
- package/dist/typecheck/index.js +7 -0
- package/dist/typecheck/typecheck.d.ts +46 -0
- package/dist/types/all-types.d.ts +544 -0
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/config.d.ts +6 -0
- package/dist/types/docker.d.ts +15 -0
- package/dist/types/environment.d.ts +8 -0
- package/dist/types/hooks.d.ts +9 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +0 -0
- package/dist/types/prisma.d.ts +1 -0
- package/dist/types.d.ts +1 -399
- package/package.json +55 -48
- package/readme.md +365 -109
- package/src/cli/bin.ts +77 -0
- package/src/cli/commands/help.ts +39 -0
- package/src/cli/commands/runtime.ts +72 -0
- package/src/cli/commands/version.ts +4 -0
- package/src/cli/index.ts +1 -0
- package/{cli.ts → src/cli/run-cli.ts} +114 -10
- package/src/config/define-config.ts +30 -0
- package/src/config/index.ts +3 -0
- package/src/config/merge-configs.ts +33 -0
- package/src/config/validate-config.ts +136 -0
- package/{core → src/core}/index.ts +2 -2
- package/{core → src/core}/ports.ts +5 -2
- package/{core → src/core}/process.ts +6 -2
- package/src/core/quick-tunnel/cloudflared-process.ts +83 -0
- package/src/core/quick-tunnel/constants.ts +31 -0
- package/src/core/quick-tunnel/index.ts +96 -0
- package/src/core/quick-tunnel/install.ts +160 -0
- package/src/core/tunnel.ts +165 -0
- package/{core → src/core}/utils.ts +1 -0
- package/{core → src/core}/watchdog.ts +5 -1
- package/src/docker/index.ts +1 -0
- package/{core/docker.ts → src/docker/runtime.ts} +11 -4
- package/src/docker-compose/generated-file.ts +45 -0
- package/src/docker-compose/index.ts +7 -0
- package/src/docker-compose/model.ts +197 -0
- package/src/docker-compose/services/clickhouse.ts +79 -0
- package/src/docker-compose/services/define-docker-service.ts +109 -0
- package/src/docker-compose/services/index.ts +67 -0
- package/src/docker-compose/services/postgres.ts +60 -0
- package/src/docker-compose/services/redis.ts +48 -0
- package/src/docker-compose/services/shared.ts +79 -0
- package/src/docker-compose/yaml.ts +88 -0
- package/{environment.ts → src/environment/create-dev-environment.ts} +214 -141
- package/src/environment/index.ts +1 -0
- package/src/environment/logging.ts +115 -0
- package/src/environment/only-apps.ts +34 -0
- package/src/environment/seeding.ts +57 -0
- package/{index.ts → src/index.ts} +52 -20
- package/src/loader/cache.ts +23 -0
- package/src/loader/find-config-file.ts +29 -0
- package/src/loader/index.ts +17 -0
- package/src/loader/load-dev-env.ts +38 -0
- package/src/prisma/index.ts +1 -0
- package/{prisma.ts → src/prisma/prisma.ts} +4 -2
- package/src/typecheck/index.ts +1 -0
- package/{types.ts → src/types/all-types.ts} +186 -8
- package/src/types/index.ts +1 -0
- package/bin.ts +0 -192
- package/config.ts +0 -194
- package/loader.ts +0 -126
- /package/{core → src/core}/network.ts +0 -0
- /package/{core → src/core}/watchdog-runner.ts +0 -0
- /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
|
-
|
|
3
|
-
|
|
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,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 @@
|
|
|
1
|
+
export * from "./index";
|
package/dist/loader.d.ts
CHANGED
|
@@ -1,45 +1 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
10
|
-
import"./index-
|
|
11
|
-
import"./index-
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
14
|
-
import"./index-
|
|
15
|
-
import"./index-
|
|
16
|
-
import"./index-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
import"./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
|
|
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 };
|
package/dist/src/bin.js
ADDED
|
@@ -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
|
+
});
|
package/dist/src/cli.js
ADDED
|
@@ -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
|
+
};
|