pipework 0.7.24 → 0.7.25

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 (37) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/async/jobs/execute.d.ts +9 -0
  3. package/dist/async/jobs/execute.d.ts.map +1 -1
  4. package/dist/async/jobs/execute.js +21 -1
  5. package/dist/async/jobs/execute.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts.map +1 -1
  7. package/dist/cli/commands/init.js +1 -19
  8. package/dist/cli/commands/init.js.map +1 -1
  9. package/dist/data/migrate/applied.d.ts +12 -0
  10. package/dist/data/migrate/applied.d.ts.map +1 -0
  11. package/dist/data/migrate/applied.js +21 -0
  12. package/dist/data/migrate/applied.js.map +1 -0
  13. package/dist/data/migrate/check.d.ts +10 -1
  14. package/dist/data/migrate/check.d.ts.map +1 -1
  15. package/dist/data/migrate/check.js +12 -1
  16. package/dist/data/migrate/check.js.map +1 -1
  17. package/dist/data/migrate/index.d.ts +1 -0
  18. package/dist/data/migrate/index.d.ts.map +1 -1
  19. package/dist/data/migrate/index.js +1 -0
  20. package/dist/data/migrate/index.js.map +1 -1
  21. package/dist/data/migrate/run.d.ts.map +1 -1
  22. package/dist/data/migrate/run.js +7 -2
  23. package/dist/data/migrate/run.js.map +1 -1
  24. package/dist/request/context/run-in-transaction.d.ts +22 -0
  25. package/dist/request/context/run-in-transaction.d.ts.map +1 -0
  26. package/dist/request/context/run-in-transaction.js +114 -0
  27. package/dist/request/context/run-in-transaction.js.map +1 -0
  28. package/dist/request/http/server.d.ts.map +1 -1
  29. package/dist/request/http/server.js +3 -96
  30. package/dist/request/http/server.js.map +1 -1
  31. package/dist/workspace/generate.d.ts.map +1 -1
  32. package/dist/workspace/generate.js +0 -29
  33. package/dist/workspace/generate.js.map +1 -1
  34. package/dist/workspace/sync.d.ts.map +1 -1
  35. package/dist/workspace/sync.js +1 -4
  36. package/dist/workspace/sync.js.map +1 -1
  37. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.25
4
+
5
+ - **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).
6
+ - **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).
7
+ - **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).
8
+
3
9
  ## 0.7.24
4
10
 
5
11
  - **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).
@@ -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;AAKxD,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,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;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,CAWlB"}
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
- return runInContext(ctx, () => resolveAndExecute(handler, options.input));
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;AAW/D,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,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAC3E,CAAC"}
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 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAmBA,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAmBtC"}
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, info } from '../output.js';
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,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAElD,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;IAED,iBAAiB,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,QAAQ,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,yDAAyD,CAAC,CAAA;QAC/D,OAAM;IACR,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,CAAC,qCAAqC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,OAAO,CAAC,wCAAwC,CAAC,CAAA;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC"}
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"}
@@ -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
- export declare function checkMigrations(migrationsFolder: string): MigrationCheckResult;
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,CA+B9E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAyBtE;AAED,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
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
- export function checkMigrations(migrationsFolder) {
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":"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"}
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;AAGvE,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,CA2CrI"}
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"}
@@ -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) {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,eAAe,EAA6B,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAc5C,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAG3B;IAFA,IAAI,GAAG,sBAAsB,CAAA;IAC/C,YACkB,KAA2B,EAC3C,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,UAAK,GAAL,KAAK,CAAsB;IAI7C,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAkB,EAAE,UAA0B,EAAE;IAC/E,MAAM,OAAO,GAAoB,EAAE,CAAA;IAEnC,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;YAAE,SAAQ;QAC/C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAkB,EAAE,QAA0B,EAAE,UAA0B,EAAE;IAC3G,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,KAAK,SAAS;QACnD,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAA0B,CAAA;IAErG,IAAI,WAAW,CAAC,cAAc,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QACpE,MAAM,IAAI,oBAAoB,CAC5B,WAAW,EACX,kBAAkB,QAAQ,CAAC,IAAI,qEAAqE;YACpG,mFAAmF,CACpF,CAAA;IACH,CAAC;IAED,IAAI,WAAW,CAAC,UAAU,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,IAAI,oBAAoB,CAC5B,WAAW,EACX,kBAAkB,QAAQ,CAAC,IAAI,kDAAkD;YACjF,iFAAiF,CAClF,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,iBAAiB,GAAa,EAAE,CAAA;IAEpC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,kCAAkC,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5G,CAAC;QACD,iBAAiB,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC9C,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC;QAC1C,gBAAgB,EAAE,QAAQ,CAAC,UAAW;QACtC,eAAe,EAAE,QAAQ,CAAC,cAAc;QACxC,aAAa,EAAE,QAAQ,CAAC,GAAG;KAC5B,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,aAAa;QACb,UAAU,EAAE,iBAAiB;QAC7B,WAAW;KACZ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/data/migrate/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Flow } from './types.js';
2
+ import type { DB } from '../../data/db/index.js';
3
+ import type { TenantConfig } from '../../auth/tenant/types.js';
4
+ /**
5
+ * Runs `run` inside a database transaction (or one independent transaction per
6
+ * database, when several are involved), with the request/job context's locals
7
+ * propagated via `SET LOCAL` so Postgres-side RLS policies and `current_setting`
8
+ * lookups see the active tenant.
9
+ *
10
+ * The transactions are bound to a child context so `pipe()` and DI resolution
11
+ * pick them up; `run` is invoked inside that child context. This is the single
12
+ * shared path for both the HTTP surface and `jobs.execute` — keep it that way
13
+ * so the two entry points cannot drift in their isolation behaviour.
14
+ */
15
+ export declare function executeInTransaction<T>(ctx: Flow, databases: readonly string[], tenant: TenantConfig | null, timeoutMs: number, run: () => Promise<T>): Promise<T>;
16
+ /**
17
+ * Propagates context locals onto a transaction via `SET LOCAL`: the request id,
18
+ * the tenant id (`pipework.tenant_id`, read by generated RLS policies), and any
19
+ * custom tenant session variables.
20
+ */
21
+ export declare function propagateLocals(tx: DB, ctx: Flow, tenant: TenantConfig | null): Promise<void>;
22
+ //# sourceMappingURL=run-in-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-transaction.d.ts","sourceRoot":"","sources":["../../../src/request/context/run-in-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,4BAA4B,CAAA;AAM7E;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC,CAyFZ;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,YAAY,GAAG,IAAI,GAC1B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
@@ -0,0 +1,114 @@
1
+ import { sql } from '../../data/db/sql.js';
2
+ import { propagateTenantLocals } from '../../auth/tenant/index.js';
3
+ import { bindTransaction } from './guard.js';
4
+ import { runInContext } from './store.js';
5
+ /**
6
+ * Runs `run` inside a database transaction (or one independent transaction per
7
+ * database, when several are involved), with the request/job context's locals
8
+ * propagated via `SET LOCAL` so Postgres-side RLS policies and `current_setting`
9
+ * lookups see the active tenant.
10
+ *
11
+ * The transactions are bound to a child context so `pipe()` and DI resolution
12
+ * pick them up; `run` is invoked inside that child context. This is the single
13
+ * shared path for both the HTTP surface and `jobs.execute` — keep it that way
14
+ * so the two entry points cannot drift in their isolation behaviour.
15
+ */
16
+ export async function executeInTransaction(ctx, databases, tenant, timeoutMs, run) {
17
+ const instance = ctx.instance;
18
+ if (databases.length === 1) {
19
+ const dbName = databases[0];
20
+ const dbConfig = instance.config.database(dbName);
21
+ const conn = instance.pool.getOrCreate(dbConfig);
22
+ return conn.drizzle.transaction(async (tx) => {
23
+ const childCtx = {
24
+ ...ctx,
25
+ transactions: new Map(ctx.transactions),
26
+ };
27
+ childCtx.transactions.set(dbName, bindTransaction(ctx, dbName, tx));
28
+ await propagateLocals(tx, ctx, tenant);
29
+ return runInContext(childCtx, run);
30
+ });
31
+ }
32
+ // Multiple databases: nested transactions (each independent)
33
+ const childCtx = {
34
+ ...ctx,
35
+ transactions: new Map(ctx.transactions),
36
+ };
37
+ const txPromises = [];
38
+ const readyPromises = [];
39
+ const readyDatabases = new Set();
40
+ let releaseAll;
41
+ let abortAll;
42
+ const donePromise = new Promise((resolve, reject) => {
43
+ releaseAll = resolve;
44
+ abortAll = reject;
45
+ });
46
+ donePromise.catch(() => { });
47
+ for (const dbName of databases) {
48
+ const dbConfig = instance.config.database(dbName);
49
+ const conn = instance.pool.getOrCreate(dbConfig);
50
+ let signalReady;
51
+ readyPromises.push(new Promise(r => { signalReady = r; }));
52
+ txPromises.push(conn.drizzle.transaction(async (tx) => {
53
+ childCtx.transactions.set(dbName, bindTransaction(ctx, dbName, tx));
54
+ await propagateLocals(tx, ctx, tenant);
55
+ readyDatabases.add(dbName);
56
+ signalReady();
57
+ await donePromise;
58
+ }));
59
+ }
60
+ const timeoutPromise = new Promise((_, reject) => {
61
+ const timer = setTimeout(() => {
62
+ const pending = databases.filter(db => !readyDatabases.has(db));
63
+ reject(new Error(`[pipework] Multi-database transaction setup timed out after ${timeoutMs}ms.\n\n` +
64
+ ` Database(s) that failed to become ready: ${pending.join(', ')}\n` +
65
+ ` Database(s) that are ready: ${[...readyDatabases].join(', ') || '(none)'}\n\n` +
66
+ ' This usually means one of the databases is unreachable or under heavy load.\n' +
67
+ ' You can increase the timeout via createServer({ transactionTimeoutMs }).\n'));
68
+ }, timeoutMs);
69
+ timer.unref();
70
+ });
71
+ try {
72
+ await Promise.race([Promise.all(readyPromises), timeoutPromise]);
73
+ }
74
+ catch (err) {
75
+ abortAll(err instanceof Error ? err : new Error(String(err)));
76
+ await Promise.allSettled(txPromises);
77
+ throw err;
78
+ }
79
+ try {
80
+ const result = await runInContext(childCtx, run);
81
+ releaseAll();
82
+ await Promise.all(txPromises);
83
+ return result;
84
+ }
85
+ catch (err) {
86
+ abortAll(err instanceof Error ? err : new Error(String(err)));
87
+ await Promise.allSettled(txPromises);
88
+ throw err;
89
+ }
90
+ }
91
+ /**
92
+ * Propagates context locals onto a transaction via `SET LOCAL`: the request id,
93
+ * the tenant id (`pipework.tenant_id`, read by generated RLS policies), and any
94
+ * custom tenant session variables.
95
+ */
96
+ export async function propagateLocals(tx, ctx, tenant) {
97
+ if (ctx.requestId !== '') {
98
+ await tx.execute(sql `SELECT set_config('pipework.request_id', ${ctx.requestId}, true)`);
99
+ }
100
+ if (ctx.tenant !== null) {
101
+ await tx.execute(sql `SELECT set_config('pipework.tenant_id', ${ctx.tenant}, true)`);
102
+ }
103
+ if (tenant !== null && tenant.sessionVars !== undefined && ctx.tenant !== null) {
104
+ const tenantCtx = {
105
+ tenant: ctx.tenant,
106
+ requestId: ctx.requestId,
107
+ userId: ctx.auth !== null && typeof ctx.auth === 'object' && 'userId' in ctx.auth
108
+ ? ctx.auth.userId
109
+ : null,
110
+ };
111
+ await propagateTenantLocals(tx, tenant, tenantCtx);
112
+ }
113
+ }
114
+ //# sourceMappingURL=run-in-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-in-transaction.js","sourceRoot":"","sources":["../../../src/request/context/run-in-transaction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAsC,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAkBjH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACjG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAA;IAC7E,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACpD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,wHAAwH;AACxH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,GAAG,cAAc,CA4O1F"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAsC,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAejH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IACjG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,CAAA;IAC7E,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACpD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,wHAAwH;AACxH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,YAAiB,GAAG,cAAc,CAkP1F"}
@@ -5,18 +5,17 @@ import fastifyCors from '@fastify/cors';
5
5
  import fastifyHelmet from '@fastify/helmet';
6
6
  import fastifyRateLimit from '@fastify/rate-limit';
7
7
  import { runInContext } from '../context/store.js';
8
- import { bindTransaction } from '../context/guard.js';
8
+ import { executeInTransaction } from '../context/run-in-transaction.js';
9
9
  import { resolveAndExecute } from '../di/resolve.js';
10
10
  import { buildContext } from './middleware.js';
11
11
  import { buildErrorResponse, buildInternalErrorResponse } from './response.js';
12
- import { sql } from '../../data/db/sql.js';
13
12
  import { PipeworkError } from '../../core/errors/index.js';
14
13
  import { toJsonSchema } from '../../data/schema/json-schema.js';
15
14
  import { generateOpenAPI } from '../openapi/generate.js';
16
15
  import { getBaseLogger, setLoggingConfig } from '../../core/logging/index.js';
17
16
  import { setupDrain } from '../../core/lifecycle/drain.js';
18
17
  import { registerHealthRoutes } from '../../core/lifecycle/health.js';
19
- import { propagateTenantLocals, validateSessionVarName } from '../../auth/tenant/index.js';
18
+ import { validateSessionVarName } from '../../auth/tenant/index.js';
20
19
  import { ForbiddenError } from '../../core/errors/index.js';
21
20
  import { resourceToHandlers } from '../fixture/to-handlers.js';
22
21
  /** Creates a PipeworkServer — wraps Fastify with auto request IDs, CORS, rate limiting, and transaction-per-request. */
@@ -152,7 +151,7 @@ export function createServer(instance, config = {}) {
152
151
  };
153
152
  let result;
154
153
  if (txDatabases !== null && txDatabases.length > 0) {
155
- result = await executeInTransaction(instance, ctx, txDatabases, handler, req, tenantConfig, txTimeoutMs, httpOptions);
154
+ result = await executeInTransaction(ctx, txDatabases, tenantConfig, txTimeoutMs, () => resolveAndExecute(handler, req.body, req.query, req.params, httpOptions));
156
155
  }
157
156
  else {
158
157
  result = await runInContext(ctx, () => resolveAndExecute(handler, req.body, req.query, req.params, httpOptions));
@@ -238,98 +237,6 @@ function setupGracefulShutdown(app, instance, drain, timeoutMs) {
238
237
  process.once('SIGTERM', () => { void shutdown('SIGTERM'); });
239
238
  process.once('SIGINT', () => { void shutdown('SIGINT'); });
240
239
  }
241
- async function executeInTransaction(instance, ctx, databases, handler, req, tenant, timeoutMs, httpOptions) {
242
- if (databases.length === 1) {
243
- const dbName = databases[0];
244
- const dbConfig = instance.config.database(dbName);
245
- const conn = instance.pool.getOrCreate(dbConfig);
246
- return conn.drizzle.transaction(async (tx) => {
247
- const childCtx = {
248
- ...ctx,
249
- transactions: new Map(ctx.transactions),
250
- };
251
- childCtx.transactions.set(dbName, bindTransaction(ctx, dbName, tx));
252
- await propagateLocals(tx, ctx, tenant);
253
- return runInContext(childCtx, () => resolveAndExecute(handler, req.body, req.query, req.params, httpOptions));
254
- });
255
- }
256
- // Multiple databases: nested transactions (each independent)
257
- const childCtx = {
258
- ...ctx,
259
- transactions: new Map(ctx.transactions),
260
- };
261
- const txPromises = [];
262
- const readyPromises = [];
263
- const readyDatabases = new Set();
264
- let releaseAll;
265
- let abortAll;
266
- const donePromise = new Promise((resolve, reject) => {
267
- releaseAll = resolve;
268
- abortAll = reject;
269
- });
270
- donePromise.catch(() => { });
271
- for (const dbName of databases) {
272
- const dbConfig = instance.config.database(dbName);
273
- const conn = instance.pool.getOrCreate(dbConfig);
274
- let signalReady;
275
- readyPromises.push(new Promise(r => { signalReady = r; }));
276
- txPromises.push(conn.drizzle.transaction(async (tx) => {
277
- childCtx.transactions.set(dbName, bindTransaction(ctx, dbName, tx));
278
- await propagateLocals(tx, ctx, tenant);
279
- readyDatabases.add(dbName);
280
- signalReady();
281
- await donePromise;
282
- }));
283
- }
284
- const timeoutPromise = new Promise((_, reject) => {
285
- const timer = setTimeout(() => {
286
- const pending = databases.filter(db => !readyDatabases.has(db));
287
- reject(new Error(`[pipework] Multi-database transaction setup timed out after ${timeoutMs}ms.\n\n` +
288
- ` Database(s) that failed to become ready: ${pending.join(', ')}\n` +
289
- ` Database(s) that are ready: ${[...readyDatabases].join(', ') || '(none)'}\n\n` +
290
- ' This usually means one of the databases is unreachable or under heavy load.\n' +
291
- ' You can increase the timeout via createServer({ transactionTimeoutMs }).\n'));
292
- }, timeoutMs);
293
- timer.unref();
294
- });
295
- try {
296
- await Promise.race([Promise.all(readyPromises), timeoutPromise]);
297
- }
298
- catch (err) {
299
- abortAll(err instanceof Error ? err : new Error(String(err)));
300
- await Promise.allSettled(txPromises);
301
- throw err;
302
- }
303
- try {
304
- const result = await runInContext(childCtx, () => resolveAndExecute(handler, req.body, req.query, req.params, httpOptions));
305
- releaseAll();
306
- await Promise.all(txPromises);
307
- return result;
308
- }
309
- catch (err) {
310
- abortAll(err instanceof Error ? err : new Error(String(err)));
311
- await Promise.allSettled(txPromises);
312
- throw err;
313
- }
314
- }
315
- async function propagateLocals(tx, ctx, tenant) {
316
- if (ctx.requestId !== '') {
317
- await tx.execute(sql `SELECT set_config('pipework.request_id', ${ctx.requestId}, true)`);
318
- }
319
- if (ctx.tenant !== null) {
320
- await tx.execute(sql `SELECT set_config('pipework.tenant_id', ${ctx.tenant}, true)`);
321
- }
322
- if (tenant !== null && tenant.sessionVars !== undefined && ctx.tenant !== null) {
323
- const tenantCtx = {
324
- tenant: ctx.tenant,
325
- requestId: ctx.requestId,
326
- userId: ctx.auth !== null && typeof ctx.auth === 'object' && 'userId' in ctx.auth
327
- ? ctx.auth.userId
328
- : null,
329
- };
330
- await propagateTenantLocals(tx, tenant, tenantCtx);
331
- }
332
- }
333
240
  function sendResult(reply, result) {
334
241
  if (result !== null && typeof result === 'object' && 'status' in result && typeof result['status'] === 'number') {
335
242
  const response = result;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/request/http/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAenD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,CAuB1E;AAyHD,eAAO,MAAM,qBAAqB,QAKtB,CAAA;AASZ,eAAO,MAAM,qBAAqB,QAWtB,CAAA"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAenD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,EAAE,CAoB1E;AAyHD,eAAO,MAAM,qBAAqB,QAKtB,CAAA;AASZ,eAAO,MAAM,qBAAqB,QAWtB,CAAA"}
@@ -20,8 +20,6 @@ export function generateWorkspace(config) {
20
20
  if (config.hasVitest) {
21
21
  files.push(generateVitestConfig());
22
22
  }
23
- files.push(generatePreCommitHook());
24
- files.push(generatePrePushHook());
25
23
  for (const mod of config.modules) {
26
24
  files.push(generateModulePackageJson(mod, config));
27
25
  files.push(generateModuleTsconfig(mod));
@@ -164,33 +162,6 @@ function generateVitestConfig() {
164
162
  content: VITEST_CONFIG_CONTENT,
165
163
  };
166
164
  }
167
- function generatePreCommitHook() {
168
- const script = [
169
- '#!/bin/sh',
170
- `# ${GENERATED_NOTICE}`,
171
- '',
172
- 'npx pipework check --staged',
173
- '',
174
- ].join('\n');
175
- return {
176
- relativePath: '.githooks/pre-commit',
177
- content: script,
178
- };
179
- }
180
- function generatePrePushHook() {
181
- const script = [
182
- '#!/bin/sh',
183
- `# ${GENERATED_NOTICE}`,
184
- '',
185
- 'npx pipework check --all',
186
- 'npx pipework test',
187
- '',
188
- ].join('\n');
189
- return {
190
- relativePath: '.githooks/pre-push',
191
- content: script,
192
- };
193
- }
194
165
  function generateModulePackageJson(mod, config) {
195
166
  const moduleName = mod.config.name ?? `@${config.name}/${basename(mod.relativePath)}`;
196
167
  const isPrivate = mod.config.private !== false;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAsCjD;AAoBD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAMnF"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAmCjD;AAoBD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAMnF"}
@@ -1,4 +1,4 @@
1
- import { writeFileSync, mkdirSync, readFileSync, chmodSync } from 'node:fs';
1
+ import { writeFileSync, mkdirSync, readFileSync } from 'node:fs';
2
2
  import { join, dirname } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import { resolveModules } from './discover.js';
@@ -28,9 +28,6 @@ export function sync(input) {
28
28
  }
29
29
  else {
30
30
  writeFileSync(fullPath, file.content, 'utf-8');
31
- if (file.relativePath.startsWith('.githooks/')) {
32
- chmodSync(fullPath, 0o755);
33
- }
34
31
  written++;
35
32
  }
36
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.7.24",
3
+ "version": "0.7.25",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",