@schemavaults/dbh 0.7.4 → 0.8.1

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/CLAUDE.md ADDED
@@ -0,0 +1,41 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## What This Is
6
+
7
+ `@schemavaults/dbh` is an npm package that provides a Kysely-based adapter for connecting to Postgres databases through a Neon-compatible WebSocket proxy. It works with both Neon-hosted serverless Postgres and local Postgres instances (via a bundled WS proxy).
8
+
9
+ ## Commands
10
+
11
+ Ensure dependencies are installed with `bun install` before attempting to run any other commands.
12
+
13
+ - **Build:** `bun run build` (runs tsc + tsc-alias, then cleans test files from dist/)
14
+ - **Lint:** `bun run lint` (eslint on src/)
15
+ - **Unit tests:** `bun run test` or `bun run test:unit`
16
+ - **Single test:** `bun test --test-name-pattern '<pattern>'`
17
+ - **E2E tests:** `cd tests && /bin/bash ./run_e2e_tests.sh` (requires Docker Compose — spins up postgres, ws-proxy, and test-runner containers)
18
+ - **CLI:** `bun run cli --help` locally or `bunx @schemavaults/dbh --help` remotely.
19
+
20
+ ## Architecture
21
+
22
+ The core adapter is `SchemaVaultsPostgresNeonProxyAdapter<T>` (generic over Kysely table types). It wraps Kysely with a `NeonDialect` and handles credential parsing, WS proxy URL resolution, and debug logging. Consumers extend or instantiate it, passing an environment (`development|test|staging|production`), optional credentials (defaults to env vars), and an optional `wsProxyUrl` (string or generator function).
23
+
24
+ Key modules:
25
+ - `src/schemavaults-postgres-neon-proxy-adapter.ts` — the main adapter class
26
+ - `src/migrate.ts` — Kysely migration helpers (`migrate`, `reverse`), exported as a separate entrypoint (`@schemavaults/dbh/migrate`)
27
+ - `src/sql.ts` — re-exports Kysely's `sql` tag
28
+ - `src/utils/parseDatabaseCredentials.ts` — parses/validates DB credentials from an object or `process.env`
29
+
30
+ The package has two export entrypoints: `.` (adapter + sql + types), `./sql` (Kysely template tag re-export), `./migrate` (migration utilities), and `./cli` (@schemavaults/dbh command-line utility).
31
+
32
+ ## Local Dev Environment
33
+
34
+ - Runtime/package manager: **Bun** (v1.3.6)
35
+ - TypeScript with path alias `@/*` → `src/*` (resolved by tsc-alias at build time)
36
+ - E2E tests run inside Docker containers (postgres:17.7 + a Go-based WS proxy on port 5433)
37
+
38
+ ## Environment Variables
39
+
40
+ The adapter reads these from `process.env` when credentials aren't passed directly:
41
+ `POSTGRES_USER`, `POSTGRES_PASSWORD`, `POSTGRES_URL`, `POSTGRES_URL_NON_POOLING` (optional), `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_DATABASE`. Debug mode via `SCHEMAVAULTS_DBH_DEBUG=true`.
package/README.md CHANGED
@@ -20,7 +20,7 @@ Ensure that you have both `postgres` and a `postgres-ws-proxy` containers runnin
20
20
 
21
21
  You'll likely want to replace the `build:` sections for the services in the e2e test example `.yml` file with `image:`. For example, use `image: postgres:17.7` for the `postgres` service. For the proxy, you can pull the docker image from `ghcr.io/schemavaults/dbh/postgres-ws-proxy`; use the version number equal to your `@schemavaults/dbh` npm package installation:
22
22
  ```md
23
- # NPM Package: @schemavaults/dbh@0.7.0 => ghcr.io/schemavaults/dbh/postgres-ws-proxy:0.7.0
23
+ # NPM Package: @schemavaults/dbh@0.8.1 => ghcr.io/schemavaults/dbh/postgres-ws-proxy:0.8.1
24
24
  ```
25
25
 
26
26
  ### In your application server code
@@ -31,6 +31,28 @@ For an example, see the e2e test file: [./src/tests/e2e/ConnectToLocalDatabase.t
31
31
 
32
32
  You may need to define a custom `WsProxyUrlGenerator` function to determine how the `postgres-ws-proxy` can be reached.
33
33
 
34
+ ### From your command-line
35
+
36
+ #### CLI Help Command
37
+ ```bash
38
+ # run migrations (and more) from the cli
39
+ bunx @schemavaults/dbh --help
40
+ # or `bun run cli --help` if you have the dbh source repository as your working directory
41
+ ```
42
+
43
+ #### Build example database migrations with the CLI
44
+ ```bash
45
+ mkdir ./tests/tmp
46
+
47
+ # compile TypeScript Kysely migrations to JavaScript
48
+ bunx @schemavaults/dbh build-db-migrations ./src/tests/example-migrations \
49
+ --outdir ./tests/tmp/example-compiled-migrations \
50
+ --sql-module ./src/sql.ts \
51
+ --sql-outdir ./tests/tmp/
52
+
53
+ rm -rf ./tests/tmp
54
+ ```
55
+
34
56
  ## Required Environment Variables
35
57
 
36
58
  Ensure that the following environment variables are defined:
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ declare const buildDbMigrations: Command;
3
+ export default buildDbMigrations;
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ declare const dbhCli: Command;
3
+ export default dbhCli;
package/dist/migrate.d.ts CHANGED
@@ -1,4 +1,9 @@
1
- import { Kysely, MigrationResult } from "kysely";
1
+ import { Kysely } from "kysely";
2
+ export interface IMigrationResult {
3
+ migrationName: string;
4
+ status: "Success" | "Error" | "NotExecuted";
5
+ direction: "Up" | "Down";
6
+ }
2
7
  export interface IMigrateOptions {
3
8
  db: Kysely<any>;
4
9
  migrationFolder: string;
@@ -9,6 +14,6 @@ export interface IReverseOptions {
9
14
  migrationFolder: string;
10
15
  version: string;
11
16
  }
12
- export declare function migrate({ db, migrationFolder, ...opts }: IMigrateOptions): Promise<MigrationResult[] | undefined>;
13
- export declare function reverse({ db, migrationFolder, version, }: IReverseOptions): Promise<MigrationResult[] | undefined>;
17
+ export declare function migrate({ db, migrationFolder, ...opts }: IMigrateOptions): Promise<readonly IMigrationResult[]>;
18
+ export declare function reverse({ db, migrationFolder, version, }: IReverseOptions): Promise<IMigrationResult[]>;
14
19
  export default migrate;
package/dist/migrate.js CHANGED
@@ -13,6 +13,39 @@ function createMigrator({ db, migrationFolder }) {
13
13
  }),
14
14
  });
15
15
  }
16
+ function validateMigrationResultFormat(migration_result) {
17
+ if (typeof migration_result !== "object" || !migration_result) {
18
+ throw new TypeError("Expected migration result to be an object!");
19
+ }
20
+ if (!("migrationName" in migration_result) ||
21
+ typeof migration_result.migrationName !== "string") {
22
+ throw new TypeError("Expected migration result's 'migrationName' to be a string!");
23
+ }
24
+ else if (!("direction" in migration_result) ||
25
+ typeof migration_result.direction !== "string") {
26
+ throw new TypeError("Expected migration result's 'direction' to be a string!");
27
+ }
28
+ else if (!("status" in migration_result) ||
29
+ typeof migration_result.status !== "string") {
30
+ throw new TypeError("Expected migration result's 'status' to be a string!");
31
+ }
32
+ else if (!["Up", "Down"].includes(migration_result.direction)) {
33
+ throw new TypeError("Expected migration result's 'direction' to be one of: 'Up' or 'Down'!");
34
+ }
35
+ else if (!["Success", "Error", "NotExecuted"].includes(migration_result.status)) {
36
+ throw new TypeError("Expected migration result's 'status' to be one of: 'Success', 'Error', or 'NotExecuted'!");
37
+ }
38
+ return true;
39
+ }
40
+ function validateMigrationResultFormats(results) {
41
+ if (!Array.isArray(results)) {
42
+ throw new TypeError("Expected 'results' to be an array!");
43
+ }
44
+ for (const migration_result of results) {
45
+ validateMigrationResultFormat(migration_result);
46
+ }
47
+ return true;
48
+ }
16
49
  export async function migrate({ db, migrationFolder, ...opts }) {
17
50
  if (typeof migrationFolder !== "string") {
18
51
  throw new Error("migrationFolder must be a string");
@@ -33,6 +66,12 @@ export async function migrate({ db, migrationFolder, ...opts }) {
33
66
  console.error(error);
34
67
  throw error;
35
68
  }
69
+ if (!results) {
70
+ return [];
71
+ }
72
+ if (!validateMigrationResultFormats(results)) {
73
+ throw new TypeError("Migration appears to have succeeded but failed to parse received results!");
74
+ }
36
75
  return results;
37
76
  }
38
77
  export async function reverse({ db, migrationFolder, version, }) {
@@ -48,6 +87,12 @@ export async function reverse({ db, migrationFolder, version, }) {
48
87
  console.error(error);
49
88
  throw error;
50
89
  }
90
+ if (!results) {
91
+ return [];
92
+ }
93
+ if (!validateMigrationResultFormats(results)) {
94
+ throw new TypeError("Reverse migration appears to have succeeded but failed to parse received results!");
95
+ }
51
96
  return results;
52
97
  }
53
98
  export default migrate;
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,OAAO,EAEL,QAAQ,EACR,qBAAqB,GAGtB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAchC,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,eAAe,EAAmB;IAC9D,OAAO,IAAI,QAAQ,CAAC;QAClB,EAAE,EAAE,EAAE;QACN,QAAQ,EAAE,IAAI,qBAAqB,CAAC;YAClC,EAAE;YACF,IAAI;YACJ,eAAe;SAChB,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAC5B,EAAE,EACF,eAAe,EACf,GAAG,IAAI,EACS;IAChB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,oBAAoB,eAAe,kBAAkB,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAEzD,IAAI,MAA0B,CAAC;IAC/B,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAC5B,EAAE,EACF,eAAe,EACf,OAAO,GACS;IAChB,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,oBAAoB,eAAe,kBAAkB,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;IAEzD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/dbh",
3
- "version": "0.7.4",
3
+ "version": "0.8.1",
4
4
  "description": "Easily connect to PostgresDB from serverless environment",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
@@ -8,6 +8,9 @@
8
8
  "type": "git",
9
9
  "url": "https://github.com/schemavaults/dbh.git"
10
10
  },
11
+ "bin": {
12
+ "dbh": "dist-cli/cli.js"
13
+ },
11
14
  "dependencies": {
12
15
  "kysely": "0.28.10",
13
16
  "kysely-neon": "1.3.0",
@@ -21,19 +24,25 @@
21
24
  "@eslint/js": "9.39.1",
22
25
  "globals": "16.5.0",
23
26
  "@typescript-eslint/eslint-plugin": "8.48.1",
24
- "@typescript-eslint/parser": "8.48.1"
27
+ "@typescript-eslint/parser": "8.48.1",
28
+ "commander": "14.0.3"
25
29
  },
26
30
  "scripts": {
27
31
  "build": "tsc --project tsconfig.json && tsc-alias --project tsconfig.json",
32
+ "postbuild": "bun run cleanup",
33
+ "build:cli": "bun build ./src/cli.ts --outdir dist-cli --format esm --target node --minify",
34
+ "build:build-db-migrations": "bun build ./src/build-db-migrations.ts --outdir dist-cli --format esm --target bun --minify",
28
35
  "test:unit": "bun test --test-name-pattern 'DBH Init'",
29
36
  "test": "bun run test:unit",
30
- "test:e2e": "bun test ./src/tests/e2e/ConnectToLocalDatabase.test.ts",
37
+ "test:e2e": "bun test ./src/tests/e2e/",
38
+ "test:build-db-migrations": "/bin/bash ./tests/run_build_example_migrations_test.sh",
31
39
  "cleanup:compiled_tests_in_dist_directory": "find ./dist -type f \\( -name \"*.test.js\" -o -name \"*.test.js.map\" -o -name \"*.test.d.ts\" \\) -delete",
32
40
  "cleanup:rm_tests_dir": "rm -rf ./dist/tests",
33
- "cleanup": "bun run cleanup:compiled_tests_in_dist_directory",
34
- "postbuild": "bun run cleanup",
41
+ "cleanup:rm_cli_js_artifacts": "rm -rf ./dist/cli.js && rm -rf ./dist/cli.js.map",
42
+ "cleanup": "bun run cleanup:compiled_tests_in_dist_directory && bun run cleanup:rm_tests_dir && bun run cleanup:rm_cli_js_artifacts",
35
43
  "version": "bun run ./scripts/package_version.ts",
36
- "lint": "eslint src"
44
+ "lint": "eslint src",
45
+ "cli": "bun run ./src/cli.ts"
37
46
  },
38
47
  "main": "dist/index.js",
39
48
  "module": "dist/index.js",
@@ -63,6 +72,20 @@
63
72
  "types": "./dist/migrate.d.ts",
64
73
  "import": "./dist/migrate.js",
65
74
  "require": "./dist/migrate.js"
75
+ },
76
+ "./sql": {
77
+ "types": "./dist/sql.d.ts",
78
+ "import": "./dist/sql.js",
79
+ "require": "./dist/sql.js"
80
+ },
81
+ "./cli": {
82
+ "types": "./dist/cli.d.ts",
83
+ "import": "./dist-cli/cli.js",
84
+ "require": "./dist-cli/cli.js"
85
+ },
86
+ "./build-db-migrations": {
87
+ "import": "./dist-cli/build-db-migrations.js",
88
+ "require": "./dist-cli/build-db-migrations.js"
66
89
  }
67
90
  }
68
91
  }