pipework 0.7.24 → 0.7.26
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/CHANGELOG.md +14 -0
- package/README.md +18 -8
- package/dist/async/jobs/execute.d.ts +9 -0
- package/dist/async/jobs/execute.d.ts.map +1 -1
- package/dist/async/jobs/execute.js +21 -1
- package/dist/async/jobs/execute.js.map +1 -1
- package/dist/cli/commands/check.d.ts +2 -0
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +54 -11
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1 -19
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/test.js +8 -3
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/data/migrate/applied.d.ts +12 -0
- package/dist/data/migrate/applied.d.ts.map +1 -0
- package/dist/data/migrate/applied.js +21 -0
- package/dist/data/migrate/applied.js.map +1 -0
- package/dist/data/migrate/check.d.ts +10 -1
- package/dist/data/migrate/check.d.ts.map +1 -1
- package/dist/data/migrate/check.js +12 -1
- package/dist/data/migrate/check.js.map +1 -1
- package/dist/data/migrate/index.d.ts +1 -0
- package/dist/data/migrate/index.d.ts.map +1 -1
- package/dist/data/migrate/index.js +1 -0
- package/dist/data/migrate/index.js.map +1 -1
- package/dist/data/migrate/run.d.ts.map +1 -1
- package/dist/data/migrate/run.js +7 -2
- package/dist/data/migrate/run.js.map +1 -1
- package/dist/request/context/run-in-transaction.d.ts +22 -0
- package/dist/request/context/run-in-transaction.d.ts.map +1 -0
- package/dist/request/context/run-in-transaction.js +114 -0
- package/dist/request/context/run-in-transaction.js.map +1 -0
- package/dist/request/http/server.d.ts.map +1 -1
- package/dist/request/http/server.js +3 -96
- package/dist/request/http/server.js.map +1 -1
- package/dist/test/index.d.ts +1 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +1 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/vitest-workspace.d.ts.map +1 -1
- package/dist/test/vitest-workspace.js +15 -3
- package/dist/test/vitest-workspace.js.map +1 -1
- package/dist/workspace/generate.d.ts.map +1 -1
- package/dist/workspace/generate.js +0 -29
- package/dist/workspace/generate.js.map +1 -1
- package/dist/workspace/sync.d.ts.map +1 -1
- package/dist/workspace/sync.js +1 -4
- package/dist/workspace/sync.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.26
|
|
4
|
+
|
|
5
|
+
- **Removed: `defineTestConfig()`** — test configuration is now centralized under the `vitest` key of `pipework.config.ts`, the single allowed home for test config. `pipework install` generates a pipework-owned `vitest.config.ts` from it. **Migration:** add a `vitest` section to `pipework.config.ts` (a single-package repo can start with `{ modules: { '.': {} } }`), delete every hand-written `vitest.config.ts` / `vitest.*.config.ts`, then run `pipework install` to regenerate (#261).
|
|
6
|
+
- **Centralized test config now covers single-package repos** — a repo with no declared `modules` is treated as one implicit module at the repo root, addressed as `'.'`. Single-package projects can express their test setup centrally instead of being forced into a hand-written config (#261).
|
|
7
|
+
- **Fix: `pipework check` no longer silently skips single-package repos** — a repo with no declared `modules` (the default `pipework init` layout) now resolves to the implicit root module, so doctrine validation, lint, and typecheck run against the root `src/`. Previously `check` resolved zero modules and exited green having checked nothing (#262).
|
|
8
|
+
- **`pipework check` hard-errors on stray vitest configs** — a hand-written `vitest.config.ts` (when the blueprint has no `vitest` key) now fails the check with migration instructions; a generated config that has drifted from the template also fails. Previously the check was skipped (#261).
|
|
9
|
+
- **Fix: `extra.test` overrides pipework's pool defaults** — per-module/profile `extra.test` now overrides pipework's `pool` and `isolate` defaults as documented. Project identity and isolation-critical keys (`name`, `root`, `setupFiles`, inline-deps `server` config) still take precedence over `extra.test` (#260).
|
|
10
|
+
|
|
11
|
+
## 0.7.25
|
|
12
|
+
|
|
13
|
+
- **Fix: `pipework migrate` safety gate over historical migrations** — the destructive/locking safety check now only scans migrations that have not yet been applied. A fully up-to-date database no longer aborts with `UnsafeMigrationError` over migrations that ran long ago (#256).
|
|
14
|
+
- **Fix: `jobs.execute({ tenant })` database-level tenant scoping** — tenant jobs now run inside a transaction with `pipework.tenant_id` (and any custom `tenantConfig.sessionVars`) propagated via `SET LOCAL`, matching the HTTP surface. RLS-protected writes from tenant jobs no longer fail with `new row violates row-level security policy`. `jobs.execute` accepts `tenantConfig` and `transactionTimeoutMs` options (#257).
|
|
15
|
+
- **Removed: git hooks scaffolding** — `pipework sync` no longer generates `.githooks/`, and `pipework init` no longer sets `git config core.hooksPath`. Wire up hooks with your own tooling; run `pipework check` / `pipework test` directly (#258).
|
|
16
|
+
|
|
3
17
|
## 0.7.24
|
|
4
18
|
|
|
5
19
|
- **Vitest 4 compatibility** — `defineTestConfig()` now injects `pipework/test/setup` directly instead of relying on a plugin `config()` hook that Vitest 4 silently ignores. Consumer `setupFiles` are merged, not replaced (#255).
|
package/README.md
CHANGED
|
@@ -106,22 +106,32 @@ This creates `pipework.config.ts` at your project root — the single entry poin
|
|
|
106
106
|
|
|
107
107
|
## Testing
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
// vitest.config.ts — integration tests (auto DB setup + per-test isolation)
|
|
111
|
-
import { defineTestConfig } from 'pipework/vitest'
|
|
112
|
-
export default defineTestConfig()
|
|
109
|
+
Test configuration is centralized in `pipework.config.ts` under the `vitest` key — one place for the whole repo:
|
|
113
110
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
export default
|
|
111
|
+
```typescript
|
|
112
|
+
// pipework.config.ts
|
|
113
|
+
export default createManifold({
|
|
114
|
+
databases: { /* ... */ },
|
|
115
|
+
vitest: {
|
|
116
|
+
// single-package repo: just `{}` enables integration tests at the root
|
|
117
|
+
modules: {
|
|
118
|
+
'.': {
|
|
119
|
+
// optional per-module profiles, e.g. a unit-only suite with no DB:
|
|
120
|
+
profiles: { unit: { database: false } },
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
})
|
|
117
125
|
```
|
|
118
126
|
|
|
127
|
+
`pipework install` generates `vitest.config.ts` from this — the file is owned by pipework, never hand-edited. `pipework check` hard-errors on a stray hand-written `vitest.config.ts`.
|
|
128
|
+
|
|
119
129
|
```bash
|
|
120
130
|
# .env.test
|
|
121
131
|
DATABASE_URL_TEST=postgresql://user:pass@localhost:5432/myapp_test
|
|
122
132
|
```
|
|
123
133
|
|
|
124
|
-
Every integration test runs in a rollback transaction. No cleanup, no state leaks.
|
|
134
|
+
Every integration test runs in a rollback transaction. No cleanup, no state leaks. Profiles with `database: false` skip all DB machinery — safe to use in CI steps without a database.
|
|
125
135
|
|
|
126
136
|
## Documentation
|
|
127
137
|
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { Manifold } from '../../core/pipework.js';
|
|
2
2
|
import type { Handler } from '../../request/di/types.js';
|
|
3
|
+
import type { TenantConfig } from '../../auth/tenant/types.js';
|
|
3
4
|
export interface ExecuteJobOptions {
|
|
4
5
|
instance: Manifold;
|
|
5
6
|
jobId?: string;
|
|
6
7
|
jobType?: string;
|
|
7
8
|
auth?: unknown;
|
|
8
9
|
tenant?: string | null;
|
|
10
|
+
/**
|
|
11
|
+
* Tenant config carrying custom `sessionVars`. When provided alongside
|
|
12
|
+
* `tenant`, the custom session variables are propagated in addition to
|
|
13
|
+
* `pipework.tenant_id` — matching the HTTP surface's behaviour.
|
|
14
|
+
*/
|
|
15
|
+
tenantConfig?: TenantConfig | null;
|
|
9
16
|
input?: unknown;
|
|
17
|
+
/** Timeout for multi-database transaction setup when running a tenant job. */
|
|
18
|
+
transactionTimeoutMs?: number;
|
|
10
19
|
}
|
|
11
20
|
export declare function executeJob<TDeps extends Record<string, unknown>, TReturn>(handler: Handler<TDeps, TReturn>, options: ExecuteJobOptions): Promise<TReturn>;
|
|
12
21
|
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAS9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,wBAAsB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAC7E,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,CA4BlB"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { DEFAULT_DB } from '../../request/di/types.js';
|
|
1
2
|
import { runInContext } from '../../request/context/store.js';
|
|
2
3
|
import { createJobContext } from '../../request/context/create.js';
|
|
4
|
+
import { executeInTransaction } from '../../request/context/run-in-transaction.js';
|
|
3
5
|
import { resolveAndExecute } from '../../request/di/resolve.js';
|
|
6
|
+
/** Default timeout for setting up a tenant job's database transaction(s). */
|
|
7
|
+
const DEFAULT_JOB_TRANSACTION_TIMEOUT_MS = 5000;
|
|
4
8
|
export async function executeJob(handler, options) {
|
|
5
9
|
const jobCtxOptions = {
|
|
6
10
|
instance: options.instance,
|
|
@@ -14,6 +18,22 @@ export async function executeJob(handler, options) {
|
|
|
14
18
|
if (options.tenant !== undefined)
|
|
15
19
|
jobCtxOptions.tenant = options.tenant;
|
|
16
20
|
const ctx = createJobContext(jobCtxOptions);
|
|
17
|
-
|
|
21
|
+
const run = () => resolveAndExecute(handler, options.input);
|
|
22
|
+
// No tenant: app-level scoping does not apply, so there is nothing to
|
|
23
|
+
// propagate to Postgres — run the handler directly as before.
|
|
24
|
+
const databases = resolveHandlerDatabases(handler, options.instance);
|
|
25
|
+
if (ctx.tenant === null || databases.length === 0) {
|
|
26
|
+
return runInContext(ctx, run);
|
|
27
|
+
}
|
|
28
|
+
// Tenant job: wrap in a transaction and propagate session vars so
|
|
29
|
+
// database-side RLS sees the tenant — consistent with the HTTP surface.
|
|
30
|
+
return executeInTransaction(ctx, databases, options.tenantConfig ?? null, options.transactionTimeoutMs ?? DEFAULT_JOB_TRANSACTION_TIMEOUT_MS, run);
|
|
31
|
+
}
|
|
32
|
+
function resolveHandlerDatabases(handler, instance) {
|
|
33
|
+
const names = new Set();
|
|
34
|
+
for (const dbName of handler.meta.databases) {
|
|
35
|
+
names.add(dbName === DEFAULT_DB ? instance.config.defaultDatabaseName() : dbName);
|
|
36
|
+
}
|
|
37
|
+
return [...names];
|
|
18
38
|
}
|
|
19
39
|
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAE/D,6EAA6E;AAC7E,MAAM,kCAAkC,GAAG,IAAI,CAAA;AAmB/C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAgC,EAChC,OAA0B;IAE1B,MAAM,aAAa,GAA2C;QAC5D,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAA;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IACpE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC1E,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAEvE,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,GAAqB,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAE7E,sEAAsE;IACtE,8DAA8D;IAC9D,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpE,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,kEAAkE;IAClE,wEAAwE;IACxE,OAAO,oBAAoB,CACzB,GAAG,EACH,SAAS,EACT,OAAO,CAAC,YAAY,IAAI,IAAI,EAC5B,OAAO,CAAC,oBAAoB,IAAI,kCAAkC,EAClE,GAAG,CACJ,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAgC,EAChC,QAAkB;IAElB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;AACnB,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { ScopeMode } from '../../workspace/affected.js';
|
|
2
2
|
export declare function check(cwd: string, scope?: ScopeMode): Promise<void>;
|
|
3
|
+
export declare function resolveModulePaths(cwd: string, scope?: ScopeMode): Promise<string[]>;
|
|
4
|
+
export declare function verifyVitestConfig(cwd: string): Promise<boolean>;
|
|
3
5
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAK5D,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDzE"}
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAK5D,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDzE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0C1F;AA0CD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiDtE"}
|
|
@@ -16,7 +16,7 @@ export async function check(cwd, scope) {
|
|
|
16
16
|
if (!checksumOk) {
|
|
17
17
|
failed = true;
|
|
18
18
|
}
|
|
19
|
-
const vitestOk = verifyVitestConfig(cwd);
|
|
19
|
+
const vitestOk = await verifyVitestConfig(cwd);
|
|
20
20
|
if (!vitestOk) {
|
|
21
21
|
failed = true;
|
|
22
22
|
}
|
|
@@ -52,7 +52,7 @@ export async function check(cwd, scope) {
|
|
|
52
52
|
process.exit(1);
|
|
53
53
|
success('All checks passed');
|
|
54
54
|
}
|
|
55
|
-
async function resolveModulePaths(cwd, scope) {
|
|
55
|
+
export async function resolveModulePaths(cwd, scope) {
|
|
56
56
|
const configPath = findConfig(cwd);
|
|
57
57
|
if (configPath !== null) {
|
|
58
58
|
try {
|
|
@@ -61,15 +61,22 @@ async function resolveModulePaths(cwd, scope) {
|
|
|
61
61
|
const blueprint = instance.config.raw;
|
|
62
62
|
const configDir = dirname(configPath);
|
|
63
63
|
const resolved = resolveModules(blueprint.modules, configDir);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
// No declared modules: this is a single-package repo whose one implicit
|
|
65
|
+
// module is the repo root, addressed as '.'. Synthesize it so check
|
|
66
|
+
// typechecks/lints/validates the root `src/` — `runTypeCheck`, `runLint`,
|
|
67
|
+
// and `findSourceFiles` all collapse a '.' module path back to the root.
|
|
68
|
+
// `resolveVitestModules` projects the same '.' module, keeping the two in
|
|
69
|
+
// sync. Without this, `discoverModulePaths` excludes '.' and check silently
|
|
70
|
+
// skips typecheck/lint/doctrine for the entire project.
|
|
71
|
+
const effectiveModules = resolved.length === 0
|
|
72
|
+
? [{ key: '.', relativePath: '.', config: {} }]
|
|
73
|
+
: resolved;
|
|
67
74
|
const effectiveScope = scope ?? { kind: 'all' };
|
|
68
|
-
const result = resolveAffected(cwd,
|
|
75
|
+
const result = resolveAffected(cwd, effectiveModules, blueprint.name ?? '', effectiveScope);
|
|
69
76
|
if (result.modules.size === 0) {
|
|
70
77
|
return [];
|
|
71
78
|
}
|
|
72
|
-
const paths =
|
|
79
|
+
const paths = effectiveModules.map(m => m.relativePath).filter(p => result.modules.has(p));
|
|
73
80
|
if (!result.all) {
|
|
74
81
|
info(`Scoped to ${String(paths.length)} affected module(s): ${paths.join(', ')}`);
|
|
75
82
|
}
|
|
@@ -113,16 +120,36 @@ function verifyChecksums(cwd) {
|
|
|
113
120
|
success('Workspace checksums');
|
|
114
121
|
return true;
|
|
115
122
|
}
|
|
116
|
-
function verifyVitestConfig(cwd) {
|
|
123
|
+
export async function verifyVitestConfig(cwd) {
|
|
117
124
|
const configPath = join(cwd, 'vitest.config.ts');
|
|
118
125
|
if (!existsSync(configPath)) {
|
|
119
126
|
return true;
|
|
120
127
|
}
|
|
121
128
|
info('Vitest config');
|
|
122
129
|
let ok = true;
|
|
123
|
-
const
|
|
124
|
-
if (
|
|
125
|
-
|
|
130
|
+
const hasVitest = await blueprintHasVitest(cwd);
|
|
131
|
+
if (hasVitest === undefined) {
|
|
132
|
+
// pipework.config.ts is absent or could not be loaded — we cannot confirm
|
|
133
|
+
// whether pipework owns vitest.config.ts, so we must not fail on a file
|
|
134
|
+
// ownership we can't verify.
|
|
135
|
+
warn('vitest.config.ts present but pipework.config.ts could not be loaded — skipping vitest config check');
|
|
136
|
+
}
|
|
137
|
+
else if (hasVitest) {
|
|
138
|
+
// The blueprint declares `vitest`, so pipework generates and owns
|
|
139
|
+
// vitest.config.ts — it must match the generated template byte-for-byte.
|
|
140
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
141
|
+
if (content !== VITEST_CONFIG_CONTENT) {
|
|
142
|
+
logError('vitest.config.ts is stale. Run `pipework install` to regenerate.');
|
|
143
|
+
ok = false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// The blueprint does not declare `vitest`, so pipework did not generate
|
|
148
|
+
// this file. Test config is centralized — a hand-written vitest.config.ts
|
|
149
|
+
// is not a supported layout.
|
|
150
|
+
logError('vitest.config.ts is hand-written, but test config is centralized.\n' +
|
|
151
|
+
' Move its settings into the `vitest` key of pipework.config.ts and delete this file,\n' +
|
|
152
|
+
' then run `pipework install` to regenerate it.');
|
|
126
153
|
ok = false;
|
|
127
154
|
}
|
|
128
155
|
const staleConfigs = findStaleVitestConfigs(cwd);
|
|
@@ -138,6 +165,22 @@ function verifyVitestConfig(cwd) {
|
|
|
138
165
|
}
|
|
139
166
|
return ok;
|
|
140
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Returns whether the project's blueprint declares centralized `vitest` config,
|
|
170
|
+
* or `undefined` when there is no loadable pipework.config.ts to consult.
|
|
171
|
+
*/
|
|
172
|
+
async function blueprintHasVitest(cwd) {
|
|
173
|
+
if (findConfig(cwd) === null)
|
|
174
|
+
return undefined;
|
|
175
|
+
try {
|
|
176
|
+
const { discoverInstance } = await import('../../core/config/discover.js');
|
|
177
|
+
const instance = await discoverInstance(cwd);
|
|
178
|
+
return instance.config.raw.vitest !== undefined;
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
141
184
|
function findStaleVitestConfigs(cwd) {
|
|
142
185
|
const workspaceYamlPath = join(cwd, 'pnpm-workspace.yaml');
|
|
143
186
|
if (!existsSync(workspaceYamlPath))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAkBA,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiBtC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { execSync } from 'node:child_process';
|
|
3
2
|
import { join } from 'node:path';
|
|
4
|
-
import { success, warn
|
|
3
|
+
import { success, warn } from '../output.js';
|
|
5
4
|
const CONFIG_TEMPLATE = `import { createManifold } from 'pipework'
|
|
6
5
|
|
|
7
6
|
export default createManifold({
|
|
@@ -32,22 +31,5 @@ export function init(cwd) {
|
|
|
32
31
|
else {
|
|
33
32
|
warn(`${migrationsPath} already exists — skipping`);
|
|
34
33
|
}
|
|
35
|
-
configureGitHooks(cwd);
|
|
36
|
-
}
|
|
37
|
-
function configureGitHooks(cwd) {
|
|
38
|
-
try {
|
|
39
|
-
execSync('git rev-parse --git-dir', { cwd, stdio: 'pipe' });
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
info('Not a git repository — skipping git hooks configuration');
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
execSync('git config core.hooksPath .githooks', { cwd, stdio: 'pipe' });
|
|
47
|
-
success('Configured git hooks path → .githooks/');
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
warn('Failed to configure git hooks path');
|
|
51
|
-
}
|
|
52
34
|
}
|
|
53
35
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,eAAe,GAAG;;;;;;;;;;;;CAYvB,CAAA;AAED,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAAA;IAErD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,8CAA8C,CAAC,CAAA;IACtD,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QACnD,OAAO,CAAC,4BAA4B,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9C,OAAO,CAAC,WAAW,cAAc,EAAE,CAAC,CAAA;IACtC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,cAAc,4BAA4B,CAAC,CAAA;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -47,10 +47,15 @@ function buildProjectArgs(options, instance) {
|
|
|
47
47
|
return [];
|
|
48
48
|
const configDir = dirname(configPath);
|
|
49
49
|
const resolved = resolveModules(blueprint.modules, configDir);
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
// No declared modules: single-package repo whose one implicit module is the
|
|
51
|
+
// repo root, addressed as '.'. Synthesize it so --suite/--scope/profile
|
|
52
|
+
// selection works — `resolveVitestModules` projects the same '.' module, so
|
|
53
|
+
// the `--project` names line up.
|
|
54
|
+
const effectiveModules = resolved.length === 0
|
|
55
|
+
? [{ key: '.', relativePath: '.', config: {} }]
|
|
56
|
+
: resolved;
|
|
52
57
|
const scope = options.scope ?? { kind: 'all' };
|
|
53
|
-
const scopeResult = resolveAffected(options.cwd,
|
|
58
|
+
const scopeResult = resolveAffected(options.cwd, effectiveModules, blueprint.name ?? '', scope);
|
|
54
59
|
if (scopeResult.modules.size === 0) {
|
|
55
60
|
return ['--project', '__no_modules_matched__'];
|
|
56
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DB } from '../db/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reads the `created_at` timestamp of the most recently applied migration.
|
|
4
|
+
*
|
|
5
|
+
* Returns -1 when the migration table does not exist or is empty — i.e. nothing
|
|
6
|
+
* has been applied yet, so every journal entry is pending. The migration table
|
|
7
|
+
* is keyed by `created_at` (the journal entry's `when` timestamp), and
|
|
8
|
+
* `applyMigrations` applies entries strictly in `when` order, so the maximum
|
|
9
|
+
* `created_at` is the high-water mark of applied history.
|
|
10
|
+
*/
|
|
11
|
+
export declare function readAppliedThrough(db: DB, migrationsTable: string): Promise<number>;
|
|
12
|
+
//# sourceMappingURL=applied.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/applied.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAGxC;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASzF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { sql } from '../query/index.js';
|
|
2
|
+
import { quoteIdentifier } from '../db/identifiers.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reads the `created_at` timestamp of the most recently applied migration.
|
|
5
|
+
*
|
|
6
|
+
* Returns -1 when the migration table does not exist or is empty — i.e. nothing
|
|
7
|
+
* has been applied yet, so every journal entry is pending. The migration table
|
|
8
|
+
* is keyed by `created_at` (the journal entry's `when` timestamp), and
|
|
9
|
+
* `applyMigrations` applies entries strictly in `when` order, so the maximum
|
|
10
|
+
* `created_at` is the high-water mark of applied history.
|
|
11
|
+
*/
|
|
12
|
+
export async function readAppliedThrough(db, migrationsTable) {
|
|
13
|
+
const quoted = quoteIdentifier(migrationsTable, 'migration table');
|
|
14
|
+
const [reg] = await db.execute(sql `SELECT to_regclass(${quoted}) AS reg`);
|
|
15
|
+
if (reg === undefined || reg['reg'] === null)
|
|
16
|
+
return -1;
|
|
17
|
+
const [row] = await db.execute(sql.raw(`SELECT max(created_at) AS last_applied FROM ${quoted}`));
|
|
18
|
+
const lastApplied = row?.['last_applied'];
|
|
19
|
+
return lastApplied === null || lastApplied === undefined ? -1 : Number(lastApplied);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=applied.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied.js","sourceRoot":"","sources":["../../../src/data/migrate/applied.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAM,EAAE,eAAuB;IACtE,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAA;IAElE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,sBAAsB,MAAM,UAAU,CAAC,CAAA;IACzE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC,CAAA;IAEvD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,+CAA+C,MAAM,EAAE,CAAC,CAAC,CAAA;IAChG,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;AACrF,CAAC"}
|
|
@@ -8,7 +8,16 @@ export interface MigrationCheckResult {
|
|
|
8
8
|
hazards: MigrationHazard[];
|
|
9
9
|
}[];
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Scans pending migrations for destructive and locking operations.
|
|
13
|
+
*
|
|
14
|
+
* `appliedThrough` is the `when` timestamp of the most recently applied
|
|
15
|
+
* migration (see `readAppliedThrough`); journal entries at or below it are
|
|
16
|
+
* already applied and are skipped — their hazards are history, not a decision
|
|
17
|
+
* the operator still gets to make. The default of -1 scans every entry, which
|
|
18
|
+
* is the correct behaviour when applied state is unknown (e.g. unit tests).
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkMigrations(migrationsFolder: string, appliedThrough?: number): MigrationCheckResult;
|
|
12
21
|
export declare function formatCheckResult(result: MigrationCheckResult): string;
|
|
13
22
|
export type { MigrationHazard, Severity };
|
|
14
23
|
//# sourceMappingURL=check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE5F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,EAAE,CAAA;CAC5D;AAYD,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE5F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,EAAE,CAAA;CAC5D;AAYD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,SAAK,GAAG,oBAAoB,CAiCnG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAyBtE;AAED,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { readFileSync, existsSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { analyzeSQL, formatHazards } from './safety.js';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Scans pending migrations for destructive and locking operations.
|
|
6
|
+
*
|
|
7
|
+
* `appliedThrough` is the `when` timestamp of the most recently applied
|
|
8
|
+
* migration (see `readAppliedThrough`); journal entries at or below it are
|
|
9
|
+
* already applied and are skipped — their hazards are history, not a decision
|
|
10
|
+
* the operator still gets to make. The default of -1 scans every entry, which
|
|
11
|
+
* is the correct behaviour when applied state is unknown (e.g. unit tests).
|
|
12
|
+
*/
|
|
13
|
+
export function checkMigrations(migrationsFolder, appliedThrough = -1) {
|
|
5
14
|
const journalPath = join(migrationsFolder, 'meta', '_journal.json');
|
|
6
15
|
if (!existsSync(journalPath)) {
|
|
7
16
|
return { safe: true, hasDestructive: false, hasLocking: false, fileHazards: [] };
|
|
@@ -11,6 +20,8 @@ export function checkMigrations(migrationsFolder) {
|
|
|
11
20
|
let hasDestructive = false;
|
|
12
21
|
let hasLocking = false;
|
|
13
22
|
for (const entry of journal.entries) {
|
|
23
|
+
if (entry.when <= appliedThrough)
|
|
24
|
+
continue;
|
|
14
25
|
const sqlPath = join(migrationsFolder, `${entry.tag}.sql`);
|
|
15
26
|
if (!existsSync(sqlPath))
|
|
16
27
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAuC,MAAM,aAAa,CAAA;AAmB5F,MAAM,UAAU,eAAe,CAAC,gBAAwB;
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/data/migrate/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { migrateAll, migrateOne, UnsafeMigrationError, type MigrateResult, type MigrateOptions } from './run.js';
|
|
2
2
|
export { checkMigrations, formatCheckResult, type MigrationCheckResult, type MigrationHazard, type Severity } from './check.js';
|
|
3
|
+
export { readAppliedThrough } from './applied.js';
|
|
3
4
|
export { analyzeSQL } from './safety.js';
|
|
4
5
|
export { generateForDatabase, type GenerateResult } from './generate.js';
|
|
5
6
|
export { postProcessMigration } from './post-process.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/H,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { migrateAll, migrateOne, UnsafeMigrationError } from './run.js';
|
|
2
2
|
export { checkMigrations, formatCheckResult } from './check.js';
|
|
3
|
+
export { readAppliedThrough } from './applied.js';
|
|
3
4
|
export { analyzeSQL } from './safety.js';
|
|
4
5
|
export { generateForDatabase } from './generate.js';
|
|
5
6
|
export { postProcessMigration } from './post-process.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAA2C,MAAM,UAAU,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAkE,MAAM,YAAY,CAAA;AAC/H,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAA2C,MAAM,UAAU,CAAA;AAChH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAkE,MAAM,YAAY,CAAA;AAC/H,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIvE,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,WAAW,EAAE,oBAAoB,CAAA;CAClC;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,KAAK,EAAE,oBAAoB;IAF7C,SAAkB,IAAI,0BAAyB;gBAE7B,KAAK,EAAE,oBAAoB,EAC3C,OAAO,EAAE,MAAM;CAIlB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAU3G;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgDrI"}
|
package/dist/data/migrate/run.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { sql } from '../query/index.js';
|
|
2
2
|
import { quoteIdentifier } from '../db/identifiers.js';
|
|
3
3
|
import { checkMigrations } from './check.js';
|
|
4
|
+
import { readAppliedThrough } from './applied.js';
|
|
4
5
|
import { applyMigrations } from './apply.js';
|
|
5
6
|
export class UnsafeMigrationError extends Error {
|
|
6
7
|
check;
|
|
@@ -21,8 +22,13 @@ export async function migrateAll(instance, options = {}) {
|
|
|
21
22
|
return results;
|
|
22
23
|
}
|
|
23
24
|
export async function migrateOne(instance, dbConfig, options = {}) {
|
|
25
|
+
const conn = instance.pool.getOrCreate(dbConfig);
|
|
26
|
+
// Scope the safety gate to pending migrations only — hazards in already-applied
|
|
27
|
+
// migrations are history, not a decision the operator still gets to make.
|
|
28
|
+
// Without this, a fully-current database with a destructive op anywhere in its
|
|
29
|
+
// history can never run a clean no-op `migrate`.
|
|
24
30
|
const safetyCheck = dbConfig.migrations !== undefined
|
|
25
|
-
? checkMigrations(dbConfig.migrations)
|
|
31
|
+
? checkMigrations(dbConfig.migrations, await readAppliedThrough(conn.drizzle, dbConfig.migrationTable))
|
|
26
32
|
: { safe: true, hasDestructive: false, hasLocking: false, fileHazards: [] };
|
|
27
33
|
if (safetyCheck.hasDestructive && options.allowDestructive !== true) {
|
|
28
34
|
throw new UnsafeMigrationError(safetyCheck, `Migration for "${dbConfig.name}" contains destructive operations (DROP TABLE, DROP COLUMN, etc.). ` +
|
|
@@ -32,7 +38,6 @@ export async function migrateOne(instance, dbConfig, options = {}) {
|
|
|
32
38
|
throw new UnsafeMigrationError(safetyCheck, `Migration for "${dbConfig.name}" contains operations that acquire heavy locks. ` +
|
|
33
39
|
`Pass { acknowledgeLock: true } or use --acknowledge-lock on the CLI to proceed.`);
|
|
34
40
|
}
|
|
35
|
-
const conn = instance.pool.getOrCreate(dbConfig);
|
|
36
41
|
let extensionsCreated = [];
|
|
37
42
|
if (dbConfig.extensions.length > 0) {
|
|
38
43
|
for (const ext of dbConfig.extensions) {
|