pipework 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -60
- package/dist/audit/namespace.d.ts +2 -0
- package/dist/audit/namespace.d.ts.map +1 -1
- package/dist/audit/namespace.js +2 -0
- package/dist/audit/namespace.js.map +1 -1
- package/dist/auth/chain.d.ts +5 -0
- package/dist/auth/chain.d.ts.map +1 -1
- package/dist/auth/chain.js +1 -0
- package/dist/auth/chain.js.map +1 -1
- package/dist/auth/cookie.d.ts +6 -0
- package/dist/auth/cookie.d.ts.map +1 -1
- package/dist/auth/cookie.js +4 -0
- package/dist/auth/cookie.js.map +1 -1
- package/dist/auth/multi-org.d.ts +9 -0
- package/dist/auth/multi-org.d.ts.map +1 -1
- package/dist/auth/multi-org.js +1 -0
- package/dist/auth/multi-org.js.map +1 -1
- package/dist/auth/namespace.d.ts +8 -0
- package/dist/auth/namespace.d.ts.map +1 -1
- package/dist/auth/namespace.js +8 -0
- package/dist/auth/namespace.js.map +1 -1
- package/dist/auth/sessions.d.ts +6 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/sessions.js +1 -0
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/types.d.ts +4 -0
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/behavior/namespace.d.ts +5 -0
- package/dist/behavior/namespace.d.ts.map +1 -1
- package/dist/behavior/namespace.js +5 -0
- package/dist/behavior/namespace.js.map +1 -1
- package/dist/cache/namespace.d.ts +3 -0
- package/dist/cache/namespace.d.ts.map +1 -1
- package/dist/cache/namespace.js +3 -0
- package/dist/cache/namespace.js.map +1 -1
- package/dist/cli/commands/add.d.ts +2 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +98 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +40 -1
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +37 -1
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/install.d.ts +2 -0
- package/dist/cli/commands/install.d.ts.map +1 -0
- package/dist/cli/commands/install.js +31 -0
- package/dist/cli/commands/install.js.map +1 -0
- package/dist/cli/commands/remove.d.ts +2 -0
- package/dist/cli/commands/remove.d.ts.map +1 -0
- package/dist/cli/commands/remove.js +60 -0
- package/dist/cli/commands/remove.js.map +1 -0
- package/dist/cli/commands/shared/find-config.d.ts +2 -0
- package/dist/cli/commands/shared/find-config.d.ts.map +1 -0
- package/dist/cli/commands/shared/find-config.js +19 -0
- package/dist/cli/commands/shared/find-config.js.map +1 -0
- package/dist/cli/commands/shared/load-config.d.ts +11 -0
- package/dist/cli/commands/shared/load-config.d.ts.map +1 -0
- package/dist/cli/commands/shared/load-config.js +25 -0
- package/dist/cli/commands/shared/load-config.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +2 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +28 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/dev-bootstrap.d.ts +2 -0
- package/dist/cli/dev-bootstrap.d.ts.map +1 -0
- package/dist/cli/dev-bootstrap.js +11 -0
- package/dist/cli/dev-bootstrap.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +31 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +20 -4
- package/dist/config/env.js.map +1 -1
- package/dist/config/namespace.d.ts +7 -0
- package/dist/config/namespace.d.ts.map +1 -1
- package/dist/config/namespace.js +5 -0
- package/dist/config/namespace.js.map +1 -1
- package/dist/config/schema.d.ts +2 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/context/types.d.ts +3 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/db/namespace.d.ts +25 -0
- package/dist/db/namespace.d.ts.map +1 -1
- package/dist/db/namespace.js +17 -6
- package/dist/db/namespace.js.map +1 -1
- package/dist/db/types.d.ts +4 -0
- package/dist/db/types.d.ts.map +1 -1
- package/dist/di/builder.d.ts +7 -2
- package/dist/di/builder.d.ts.map +1 -1
- package/dist/di/builder.js +20 -1
- package/dist/di/builder.js.map +1 -1
- package/dist/di/types.d.ts +19 -0
- package/dist/di/types.d.ts.map +1 -1
- package/dist/di/types.js +1 -0
- package/dist/di/types.js.map +1 -1
- package/dist/domain/brand.d.ts +19 -0
- package/dist/domain/brand.d.ts.map +1 -0
- package/dist/domain/brand.js +2 -0
- package/dist/domain/brand.js.map +1 -0
- package/dist/domain/define.d.ts +5 -0
- package/dist/domain/define.d.ts.map +1 -0
- package/dist/domain/define.js +62 -0
- package/dist/domain/define.js.map +1 -0
- package/dist/domain/field.d.ts +34 -0
- package/dist/domain/field.d.ts.map +1 -0
- package/dist/domain/field.js +111 -0
- package/dist/domain/field.js.map +1 -0
- package/dist/domain/index.d.ts +7 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +5 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/naming.d.ts +2 -0
- package/dist/domain/naming.d.ts.map +1 -0
- package/dist/domain/naming.js +7 -0
- package/dist/domain/naming.js.map +1 -0
- package/dist/domain/project-factory.d.ts +4 -0
- package/dist/domain/project-factory.d.ts.map +1 -0
- package/dist/domain/project-factory.js +136 -0
- package/dist/domain/project-factory.js.map +1 -0
- package/dist/domain/project-schema.d.ts +6 -0
- package/dist/domain/project-schema.d.ts.map +1 -0
- package/dist/domain/project-schema.js +118 -0
- package/dist/domain/project-schema.js.map +1 -0
- package/dist/domain/project-table.d.ts +30 -0
- package/dist/domain/project-table.d.ts.map +1 -0
- package/dist/domain/project-table.js +117 -0
- package/dist/domain/project-table.js.map +1 -0
- package/dist/domain/types.d.ts +68 -0
- package/dist/domain/types.d.ts.map +1 -0
- package/dist/{resource → domain}/types.js.map +1 -1
- package/dist/errors/namespace.d.ts +7 -0
- package/dist/errors/namespace.d.ts.map +1 -1
- package/dist/errors/namespace.js +7 -0
- package/dist/errors/namespace.js.map +1 -1
- package/dist/fitting/namespace.d.ts +2 -0
- package/dist/fitting/namespace.d.ts.map +1 -1
- package/dist/fitting/namespace.js +2 -0
- package/dist/fitting/namespace.js.map +1 -1
- package/dist/fixture/namespace.d.ts +8 -0
- package/dist/fixture/namespace.d.ts.map +1 -1
- package/dist/fixture/namespace.js +8 -0
- package/dist/fixture/namespace.js.map +1 -1
- package/dist/flow/namespace.d.ts +9 -0
- package/dist/flow/namespace.d.ts.map +1 -1
- package/dist/flow/namespace.js +9 -0
- package/dist/flow/namespace.js.map +1 -1
- package/dist/http/namespace.d.ts +2 -0
- package/dist/http/namespace.d.ts.map +1 -1
- package/dist/http/namespace.js +2 -0
- package/dist/http/namespace.js.map +1 -1
- package/dist/http/server.d.ts +2 -0
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +4 -1
- package/dist/http/server.js.map +1 -1
- package/dist/http/types.d.ts +13 -0
- package/dist/http/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/jobs/cron.d.ts +1 -0
- package/dist/jobs/cron.d.ts.map +1 -1
- package/dist/jobs/cron.js.map +1 -1
- package/dist/jobs/namespace.d.ts +5 -0
- package/dist/jobs/namespace.d.ts.map +1 -1
- package/dist/jobs/namespace.js +5 -0
- package/dist/jobs/namespace.js.map +1 -1
- package/dist/jobs/queue.d.ts +5 -0
- package/dist/jobs/queue.d.ts.map +1 -1
- package/dist/jobs/queue.js +2 -1
- package/dist/jobs/queue.js.map +1 -1
- package/dist/lifecycle/namespace.d.ts +2 -0
- package/dist/lifecycle/namespace.d.ts.map +1 -1
- package/dist/lifecycle/namespace.js +2 -0
- package/dist/lifecycle/namespace.js.map +1 -1
- package/dist/log/namespace.d.ts +6 -0
- package/dist/log/namespace.d.ts.map +1 -1
- package/dist/log/namespace.js +6 -0
- package/dist/log/namespace.js.map +1 -1
- package/dist/openapi/namespace.d.ts +2 -0
- package/dist/openapi/namespace.d.ts.map +1 -1
- package/dist/openapi/namespace.js +2 -0
- package/dist/openapi/namespace.js.map +1 -1
- package/dist/pipeline/namespace.d.ts +4 -0
- package/dist/pipeline/namespace.d.ts.map +1 -1
- package/dist/pipeline/namespace.js +4 -0
- package/dist/pipeline/namespace.js.map +1 -1
- package/dist/pipework.d.ts +38 -0
- package/dist/pipework.d.ts.map +1 -1
- package/dist/pipework.js +100 -2
- package/dist/pipework.js.map +1 -1
- package/dist/rbac/index.d.ts +1 -0
- package/dist/rbac/index.d.ts.map +1 -1
- package/dist/rbac/index.js +1 -0
- package/dist/rbac/index.js.map +1 -1
- package/dist/rbac/namespace.d.ts +6 -0
- package/dist/rbac/namespace.d.ts.map +1 -1
- package/dist/rbac/namespace.js +6 -0
- package/dist/rbac/namespace.js.map +1 -1
- package/dist/schema/namespace.d.ts +10 -0
- package/dist/schema/namespace.d.ts.map +1 -1
- package/dist/schema/namespace.js +12 -4
- package/dist/schema/namespace.js.map +1 -1
- package/dist/schema/types.d.ts +2 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/state-machine/namespace.d.ts +4 -0
- package/dist/state-machine/namespace.d.ts.map +1 -1
- package/dist/state-machine/namespace.js +4 -0
- package/dist/state-machine/namespace.js.map +1 -1
- package/dist/surface/http.d.ts +3 -0
- package/dist/surface/http.d.ts.map +1 -0
- package/dist/surface/http.js +84 -0
- package/dist/surface/http.js.map +1 -0
- package/dist/surface/index.d.ts +7 -0
- package/dist/surface/index.d.ts.map +1 -0
- package/dist/surface/index.js +6 -0
- package/dist/surface/index.js.map +1 -0
- package/dist/surface/namespace.d.ts +13 -0
- package/dist/surface/namespace.d.ts.map +1 -0
- package/dist/surface/namespace.js +13 -0
- package/dist/surface/namespace.js.map +1 -0
- package/dist/surface/script.d.ts +3 -0
- package/dist/surface/script.d.ts.map +1 -0
- package/dist/surface/script.js +24 -0
- package/dist/surface/script.js.map +1 -0
- package/dist/surface/start.d.ts +8 -0
- package/dist/surface/start.d.ts.map +1 -0
- package/dist/surface/start.js +64 -0
- package/dist/surface/start.js.map +1 -0
- package/dist/surface/types.d.ts +111 -0
- package/dist/surface/types.d.ts.map +1 -0
- package/dist/surface/types.js +2 -0
- package/dist/surface/types.js.map +1 -0
- package/dist/surface/validate.d.ts +5 -0
- package/dist/surface/validate.d.ts.map +1 -0
- package/dist/surface/validate.js +67 -0
- package/dist/surface/validate.js.map +1 -0
- package/dist/surface/worker.d.ts +3 -0
- package/dist/surface/worker.d.ts.map +1 -0
- package/dist/surface/worker.js +151 -0
- package/dist/surface/worker.js.map +1 -0
- package/dist/temporal/namespace.d.ts +8 -0
- package/dist/temporal/namespace.d.ts.map +1 -1
- package/dist/temporal/namespace.js +8 -0
- package/dist/temporal/namespace.js.map +1 -1
- package/dist/tenant/namespace.d.ts +9 -0
- package/dist/tenant/namespace.d.ts.map +1 -1
- package/dist/tenant/namespace.js +9 -0
- package/dist/tenant/namespace.js.map +1 -1
- package/dist/tenant/types.d.ts +2 -0
- package/dist/tenant/types.d.ts.map +1 -1
- package/dist/test/auto-setup.js +2 -1
- package/dist/test/auto-setup.js.map +1 -1
- package/dist/test/index.d.ts +2 -1
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +2 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/plugin.d.ts +5 -0
- package/dist/test/plugin.d.ts.map +1 -1
- package/dist/test/plugin.js +5 -0
- package/dist/test/plugin.js.map +1 -1
- package/dist/test/vitest-config.d.ts +2 -0
- package/dist/test/vitest-config.d.ts.map +1 -1
- package/dist/test/vitest-config.js +5 -2
- package/dist/test/vitest-config.js.map +1 -1
- package/dist/test/vitest-plugin.d.ts +3 -1
- package/dist/test/vitest-plugin.d.ts.map +1 -1
- package/dist/test/vitest-plugin.js +3 -2
- package/dist/test/vitest-plugin.js.map +1 -1
- package/dist/test/vitest.d.ts +2 -0
- package/dist/test/vitest.d.ts.map +1 -1
- package/dist/test/vitest.js +48 -4
- package/dist/test/vitest.js.map +1 -1
- package/dist/validation/connectivity.d.ts +4 -0
- package/dist/validation/connectivity.d.ts.map +1 -0
- package/dist/validation/connectivity.js +32 -0
- package/dist/validation/connectivity.js.map +1 -0
- package/dist/validation/domain.d.ts +4 -0
- package/dist/validation/domain.d.ts.map +1 -0
- package/dist/validation/domain.js +72 -0
- package/dist/validation/domain.js.map +1 -0
- package/dist/validation/index.d.ts +6 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +6 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/startup.d.ts +12 -0
- package/dist/validation/startup.d.ts.map +1 -0
- package/dist/validation/startup.js +19 -0
- package/dist/validation/startup.js.map +1 -0
- package/dist/validation/surface.d.ts +4 -0
- package/dist/validation/surface.d.ts.map +1 -0
- package/dist/validation/surface.js +55 -0
- package/dist/validation/surface.js.map +1 -0
- package/dist/validation/types.d.ts +13 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +13 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/vector/namespace.d.ts +11 -0
- package/dist/vector/namespace.d.ts.map +1 -1
- package/dist/vector/namespace.js +11 -0
- package/dist/vector/namespace.js.map +1 -1
- package/dist/webhook/namespace.d.ts +7 -0
- package/dist/webhook/namespace.d.ts.map +1 -1
- package/dist/webhook/namespace.js +7 -0
- package/dist/webhook/namespace.js.map +1 -1
- package/dist/workspace/checksum.d.ts +4 -0
- package/dist/workspace/checksum.d.ts.map +1 -0
- package/dist/workspace/checksum.js +20 -0
- package/dist/workspace/checksum.js.map +1 -0
- package/dist/workspace/discover.d.ts +6 -0
- package/dist/workspace/discover.d.ts.map +1 -0
- package/dist/workspace/discover.js +43 -0
- package/dist/workspace/discover.js.map +1 -0
- package/dist/workspace/generate.d.ts +17 -0
- package/dist/workspace/generate.d.ts.map +1 -0
- package/dist/workspace/generate.js +153 -0
- package/dist/workspace/generate.js.map +1 -0
- package/dist/workspace/index.d.ts +5 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +5 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/sync.d.ts +18 -0
- package/dist/workspace/sync.d.ts.map +1 -0
- package/dist/workspace/sync.js +58 -0
- package/dist/workspace/sync.js.map +1 -0
- package/package.json +7 -1
- package/dist/drizzle/index.d.ts +0 -3
- package/dist/drizzle/index.d.ts.map +0 -1
- package/dist/drizzle/index.js +0 -3
- package/dist/drizzle/index.js.map +0 -1
- package/dist/resource/batch.d.ts +0 -17
- package/dist/resource/batch.d.ts.map +0 -1
- package/dist/resource/batch.js +0 -47
- package/dist/resource/batch.js.map +0 -1
- package/dist/resource/builder.d.ts +0 -11
- package/dist/resource/builder.d.ts.map +0 -1
- package/dist/resource/builder.js +0 -12
- package/dist/resource/builder.js.map +0 -1
- package/dist/resource/errors.d.ts +0 -7
- package/dist/resource/errors.d.ts.map +0 -1
- package/dist/resource/errors.js +0 -9
- package/dist/resource/errors.js.map +0 -1
- package/dist/resource/index.d.ts +0 -9
- package/dist/resource/index.d.ts.map +0 -1
- package/dist/resource/index.js +0 -6
- package/dist/resource/index.js.map +0 -1
- package/dist/resource/paginate.d.ts +0 -13
- package/dist/resource/paginate.d.ts.map +0 -1
- package/dist/resource/paginate.js +0 -29
- package/dist/resource/paginate.js.map +0 -1
- package/dist/resource/register.d.ts +0 -16
- package/dist/resource/register.d.ts.map +0 -1
- package/dist/resource/register.js +0 -181
- package/dist/resource/register.js.map +0 -1
- package/dist/resource/types.d.ts +0 -69
- package/dist/resource/types.d.ts.map +0 -1
- package/dist/trunk.d.ts +0 -35
- package/dist/trunk.d.ts.map +0 -1
- package/dist/trunk.js +0 -102
- package/dist/trunk.js.map +0 -1
- /package/dist/{resource → domain}/types.js +0 -0
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { vector as vectorColumn, tsvector } from './types.js';
|
|
2
2
|
import { cosineDistance, cosineSimilarity, l2Distance, innerProduct, toTsvector, toTsquery, tsRank } from './query.js';
|
|
3
3
|
import { validateVectorExtension } from './validate.js';
|
|
4
|
+
/** Vector and full-text search namespace — pgvector column types and similarity/ranking queries. */
|
|
4
5
|
export declare const vector: {
|
|
6
|
+
/** Defines a vector(N) column for embeddings. */
|
|
5
7
|
column: typeof vectorColumn;
|
|
8
|
+
/** Defines a tsvector column for full-text search. */
|
|
6
9
|
tsvector: typeof tsvector;
|
|
10
|
+
/** Cosine distance between a column and a query vector (lower = more similar). */
|
|
7
11
|
cosine: typeof cosineDistance;
|
|
12
|
+
/** Cosine similarity (higher = more similar) — 1 - cosineDistance. */
|
|
8
13
|
cosineSimilarity: typeof cosineSimilarity;
|
|
14
|
+
/** L2 (Euclidean) distance between a column and a query vector. */
|
|
9
15
|
l2: typeof l2Distance;
|
|
16
|
+
/** Inner product between a column and a query vector. */
|
|
10
17
|
innerProduct: typeof innerProduct;
|
|
18
|
+
/** Converts text to a tsvector for full-text indexing. */
|
|
11
19
|
toTsvector: typeof toTsvector;
|
|
20
|
+
/** Converts a search query string to a tsquery. */
|
|
12
21
|
toTsquery: typeof toTsquery;
|
|
22
|
+
/** Computes ts_rank for full-text search result ordering. */
|
|
13
23
|
rank: typeof tsRank;
|
|
24
|
+
/** Verifies the pgvector extension is installed and accessible. */
|
|
14
25
|
validate: typeof validateVectorExtension;
|
|
15
26
|
};
|
|
16
27
|
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/vector/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/vector/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,oGAAoG;AACpG,eAAO,MAAM,MAAM;IACjB,iDAAiD;;IAEjD,sDAAsD;;IAEtD,kFAAkF;;IAElF,sEAAsE;;IAEtE,mEAAmE;;IAEnE,yDAAyD;;IAEzD,0DAA0D;;IAE1D,mDAAmD;;IAEnD,6DAA6D;;IAE7D,mEAAmE;;CAEpE,CAAA"}
|
package/dist/vector/namespace.js
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { vector as vectorColumn, tsvector } from './types.js';
|
|
2
2
|
import { cosineDistance, cosineSimilarity, l2Distance, innerProduct, toTsvector, toTsquery, tsRank } from './query.js';
|
|
3
3
|
import { validateVectorExtension } from './validate.js';
|
|
4
|
+
/** Vector and full-text search namespace — pgvector column types and similarity/ranking queries. */
|
|
4
5
|
export const vector = {
|
|
6
|
+
/** Defines a vector(N) column for embeddings. */
|
|
5
7
|
column: vectorColumn,
|
|
8
|
+
/** Defines a tsvector column for full-text search. */
|
|
6
9
|
tsvector,
|
|
10
|
+
/** Cosine distance between a column and a query vector (lower = more similar). */
|
|
7
11
|
cosine: cosineDistance,
|
|
12
|
+
/** Cosine similarity (higher = more similar) — 1 - cosineDistance. */
|
|
8
13
|
cosineSimilarity,
|
|
14
|
+
/** L2 (Euclidean) distance between a column and a query vector. */
|
|
9
15
|
l2: l2Distance,
|
|
16
|
+
/** Inner product between a column and a query vector. */
|
|
10
17
|
innerProduct,
|
|
18
|
+
/** Converts text to a tsvector for full-text indexing. */
|
|
11
19
|
toTsvector,
|
|
20
|
+
/** Converts a search query string to a tsquery. */
|
|
12
21
|
toTsquery,
|
|
22
|
+
/** Computes ts_rank for full-text search result ordering. */
|
|
13
23
|
rank: tsRank,
|
|
24
|
+
/** Verifies the pgvector extension is installed and accessible. */
|
|
14
25
|
validate: validateVectorExtension,
|
|
15
26
|
};
|
|
16
27
|
//# sourceMappingURL=namespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/vector/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,YAAY;IACpB,QAAQ;IACR,MAAM,EAAE,cAAc;IACtB,gBAAgB;IAChB,EAAE,EAAE,UAAU;IACd,YAAY;IACZ,UAAU;IACV,SAAS;IACT,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,uBAAuB;CAClC,CAAA"}
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/vector/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,oGAAoG;AACpG,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,iDAAiD;IACjD,MAAM,EAAE,YAAY;IACpB,sDAAsD;IACtD,QAAQ;IACR,kFAAkF;IAClF,MAAM,EAAE,cAAc;IACtB,sEAAsE;IACtE,gBAAgB;IAChB,mEAAmE;IACnE,EAAE,EAAE,UAAU;IACd,yDAAyD;IACzD,YAAY;IACZ,0DAA0D;IAC1D,UAAU;IACV,mDAAmD;IACnD,SAAS;IACT,6DAA6D;IAC7D,IAAI,EAAE,MAAM;IACZ,mEAAmE;IACnE,QAAQ,EAAE,uBAAuB;CAClC,CAAA"}
|
|
@@ -2,14 +2,21 @@ import { defineInboundWebhook } from './inbound.js';
|
|
|
2
2
|
import { hmacVerifier, stripeVerifier, githubVerifier } from './verify.js';
|
|
3
3
|
import { signPayload } from './sign.js';
|
|
4
4
|
import { createOutboundWebhook } from './outbound.js';
|
|
5
|
+
/** Webhook namespace — inbound verification, outbound delivery with retries, HMAC signing. */
|
|
5
6
|
export declare const webhook: {
|
|
7
|
+
/** Defines an inbound webhook handler with signature verification and optional idempotency. */
|
|
6
8
|
readonly defineInbound: typeof defineInboundWebhook;
|
|
9
|
+
/** Creates an outbound webhook system — endpoint registration, payload signing, delivery with retries. */
|
|
7
10
|
readonly createOutbound: typeof createOutboundWebhook;
|
|
8
11
|
readonly verify: {
|
|
12
|
+
/** Creates an HMAC signature verifier for inbound webhooks. */
|
|
9
13
|
readonly hmac: typeof hmacVerifier;
|
|
14
|
+
/** Creates a Stripe-compatible signature verifier. */
|
|
10
15
|
readonly stripe: typeof stripeVerifier;
|
|
16
|
+
/** Creates a GitHub-compatible signature verifier. */
|
|
11
17
|
readonly github: typeof githubVerifier;
|
|
12
18
|
};
|
|
19
|
+
/** Signs a payload with HMAC for outbound delivery — returns body, signature, timestamp, messageId. */
|
|
13
20
|
readonly sign: typeof signPayload;
|
|
14
21
|
};
|
|
15
22
|
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/webhook/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/webhook/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,8FAA8F;AAC9F,eAAO,MAAM,OAAO;IAClB,+FAA+F;;IAE/F,0GAA0G;;;QAIxG,+DAA+D;;QAE/D,sDAAsD;;QAEtD,sDAAsD;;;IAIxD,uGAAuG;;CAE/F,CAAA"}
|
|
@@ -2,14 +2,21 @@ import { defineInboundWebhook } from './inbound.js';
|
|
|
2
2
|
import { hmacVerifier, stripeVerifier, githubVerifier } from './verify.js';
|
|
3
3
|
import { signPayload } from './sign.js';
|
|
4
4
|
import { createOutboundWebhook } from './outbound.js';
|
|
5
|
+
/** Webhook namespace — inbound verification, outbound delivery with retries, HMAC signing. */
|
|
5
6
|
export const webhook = {
|
|
7
|
+
/** Defines an inbound webhook handler with signature verification and optional idempotency. */
|
|
6
8
|
defineInbound: defineInboundWebhook,
|
|
9
|
+
/** Creates an outbound webhook system — endpoint registration, payload signing, delivery with retries. */
|
|
7
10
|
createOutbound: createOutboundWebhook,
|
|
8
11
|
verify: {
|
|
12
|
+
/** Creates an HMAC signature verifier for inbound webhooks. */
|
|
9
13
|
hmac: hmacVerifier,
|
|
14
|
+
/** Creates a Stripe-compatible signature verifier. */
|
|
10
15
|
stripe: stripeVerifier,
|
|
16
|
+
/** Creates a GitHub-compatible signature verifier. */
|
|
11
17
|
github: githubVerifier,
|
|
12
18
|
},
|
|
19
|
+
/** Signs a payload with HMAC for outbound delivery — returns body, signature, timestamp, messageId. */
|
|
13
20
|
sign: signPayload,
|
|
14
21
|
};
|
|
15
22
|
//# sourceMappingURL=namespace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/webhook/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,aAAa,EAAE,oBAAoB;IACnC,cAAc,EAAE,qBAAqB;IAErC,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,cAAc;KACvB;IAED,IAAI,EAAE,WAAW;CACT,CAAA"}
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/webhook/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,+FAA+F;IAC/F,aAAa,EAAE,oBAAoB;IACnC,0GAA0G;IAC1G,cAAc,EAAE,qBAAqB;IAErC,MAAM,EAAE;QACN,+DAA+D;QAC/D,IAAI,EAAE,YAAY;QAClB,sDAAsD;QACtD,MAAM,EAAE,cAAc;QACtB,sDAAsD;QACtD,MAAM,EAAE,cAAc;KACvB;IAED,uGAAuG;IACvG,IAAI,EAAE,WAAW;CACT,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function computeChecksum(input: string): string;
|
|
2
|
+
export declare function checksumFromPackageJson(content: string): string | undefined;
|
|
3
|
+
export declare function isStale(expected: string, actual: string | undefined): boolean;
|
|
4
|
+
//# sourceMappingURL=checksum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/workspace/checksum.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ3E;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE7E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export function computeChecksum(input) {
|
|
3
|
+
const hash = createHash('sha256').update(input).digest('hex').slice(0, 16);
|
|
4
|
+
return `sha256:${hash}`;
|
|
5
|
+
}
|
|
6
|
+
export function checksumFromPackageJson(content) {
|
|
7
|
+
try {
|
|
8
|
+
const parsed = JSON.parse(content);
|
|
9
|
+
if (typeof parsed['_checksum'] === 'string')
|
|
10
|
+
return parsed['_checksum'];
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function isStale(expected, actual) {
|
|
18
|
+
return actual !== expected;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=checksum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/workspace/checksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1E,OAAO,UAAU,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAe;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAA;QAC7D,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAA;QACvE,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,QAAgB,EAAE,MAA0B;IAClE,OAAO,MAAM,KAAK,QAAQ,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/workspace/discover.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACpD,GAAG,EAAE,MAAM,GACV,gBAAgB,EAAE,CAWpB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { readdirSync, statSync } from 'node:fs';
|
|
2
|
+
import { join, basename, resolve } from 'node:path';
|
|
3
|
+
export function discoverModules(modules, cwd) {
|
|
4
|
+
if (modules === undefined)
|
|
5
|
+
return [];
|
|
6
|
+
if (typeof modules === 'string') {
|
|
7
|
+
return discoverFromGlob(modules, cwd);
|
|
8
|
+
}
|
|
9
|
+
return Object.entries(modules).map(([name, dir]) => ({
|
|
10
|
+
name,
|
|
11
|
+
path: resolve(cwd, dir),
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
function discoverFromGlob(pattern, cwd) {
|
|
15
|
+
const parts = pattern.split('/');
|
|
16
|
+
const starIndex = parts.indexOf('*');
|
|
17
|
+
if (starIndex === -1) {
|
|
18
|
+
throw new Error(`[pipework] Invalid modules glob: "${pattern}".\n\n` +
|
|
19
|
+
' Expected a glob pattern like "packages/*" or "libs/*".\n');
|
|
20
|
+
}
|
|
21
|
+
const parentDir = resolve(cwd, parts.slice(0, starIndex).join('/'));
|
|
22
|
+
let entries;
|
|
23
|
+
try {
|
|
24
|
+
entries = readdirSync(parentDir);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const results = [];
|
|
30
|
+
for (const entry of entries.sort()) {
|
|
31
|
+
const fullPath = join(parentDir, entry);
|
|
32
|
+
try {
|
|
33
|
+
if (statSync(fullPath).isDirectory()) {
|
|
34
|
+
results.push({ name: basename(entry), path: fullPath });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return results;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/workspace/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnD,MAAM,UAAU,eAAe,CAC7B,OAAoD,EACpD,GAAW;IAEX,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAEpC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;KACxB,CAAC,CAAC,CAAA;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,GAAW;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAEpC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,qCAAqC,OAAO,QAAQ;YACpD,4DAA4D,CAC7D,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAEnE,IAAI,OAAiB,CAAA;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAuB,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DiscoveredModule } from './discover.js';
|
|
2
|
+
export interface WorkspaceConfig {
|
|
3
|
+
readonly name?: string | undefined;
|
|
4
|
+
readonly dependencies?: Readonly<Record<string, string>> | undefined;
|
|
5
|
+
readonly surfaces?: Readonly<Record<string, SurfaceDeps>> | undefined;
|
|
6
|
+
readonly modules: readonly DiscoveredModule[];
|
|
7
|
+
readonly pipeworkVersion: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SurfaceDeps {
|
|
10
|
+
readonly dependencies: Readonly<Record<string, string>>;
|
|
11
|
+
}
|
|
12
|
+
export interface GeneratedFile {
|
|
13
|
+
readonly relativePath: string;
|
|
14
|
+
readonly content: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function generateWorkspace(config: WorkspaceConfig): GeneratedFile[];
|
|
17
|
+
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAarD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IACpE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACxD;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,CAkB1E"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { computeChecksum } from './checksum.js';
|
|
2
|
+
const GENERATED_NOTICE = 'DO NOT EDIT — managed by Pipework. Deleted and regenerated by `pipework sync`.';
|
|
3
|
+
const FRAMEWORK_DEPS = {
|
|
4
|
+
'drizzle-orm': '^0.45.2',
|
|
5
|
+
'fastify': '^5.8.5',
|
|
6
|
+
'jose': '^6.2.3',
|
|
7
|
+
'pino': '^10.3.1',
|
|
8
|
+
'postgres': '^3.4.9',
|
|
9
|
+
'zod': '^4.4.3',
|
|
10
|
+
};
|
|
11
|
+
export function generateWorkspace(config) {
|
|
12
|
+
const files = [];
|
|
13
|
+
files.push(generateRootPackageJson(config));
|
|
14
|
+
files.push(generatePreinstallGuard());
|
|
15
|
+
files.push(generateWorkspaceYaml(config));
|
|
16
|
+
for (const mod of config.modules) {
|
|
17
|
+
files.push(generateModulePackageJson(mod, config));
|
|
18
|
+
}
|
|
19
|
+
if (config.surfaces !== undefined) {
|
|
20
|
+
for (const [name, surface] of Object.entries(config.surfaces)) {
|
|
21
|
+
files.push(generateSurfacePackageJson(name, surface, config));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return files;
|
|
25
|
+
}
|
|
26
|
+
function generatePreinstallGuard() {
|
|
27
|
+
const script = [
|
|
28
|
+
`// ${GENERATED_NOTICE}`,
|
|
29
|
+
`'use strict';`,
|
|
30
|
+
`const fs = require('fs');`,
|
|
31
|
+
`const crypto = require('crypto');`,
|
|
32
|
+
``,
|
|
33
|
+
`function checksum(content) {`,
|
|
34
|
+
` const withoutChecksum = content.replace(/"_checksum":\\s*"[^"]*",?\\n?/, '');`,
|
|
35
|
+
` const hash = crypto.createHash('sha256').update(withoutChecksum).digest('hex').slice(0, 16);`,
|
|
36
|
+
` return 'sha256:' + hash;`,
|
|
37
|
+
`}`,
|
|
38
|
+
``,
|
|
39
|
+
`function check(file) {`,
|
|
40
|
+
` if (!fs.existsSync(file)) return;`,
|
|
41
|
+
` const raw = fs.readFileSync(file, 'utf8');`,
|
|
42
|
+
` let pkg;`,
|
|
43
|
+
` try { pkg = JSON.parse(raw); } catch { return; }`,
|
|
44
|
+
` if (!pkg._generated || !pkg._checksum) return;`,
|
|
45
|
+
` const expected = pkg._checksum;`,
|
|
46
|
+
` delete pkg._checksum;`,
|
|
47
|
+
` const actual = checksum(JSON.stringify(pkg, null, 2) + '\\n');`,
|
|
48
|
+
` if (expected !== actual) {`,
|
|
49
|
+
` console.error('\\n Pipework workspace files are stale.\\n Run: npx pipework install\\n');`,
|
|
50
|
+
` process.exit(1);`,
|
|
51
|
+
` }`,
|
|
52
|
+
`}`,
|
|
53
|
+
``,
|
|
54
|
+
`check('package.json');`,
|
|
55
|
+
``,
|
|
56
|
+
].join('\n');
|
|
57
|
+
return {
|
|
58
|
+
relativePath: 'pipework-guard.cjs',
|
|
59
|
+
content: script,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function generateRootPackageJson(config) {
|
|
63
|
+
const appDeps = config.dependencies ?? {};
|
|
64
|
+
const allDeps = { ...FRAMEWORK_DEPS, ...appDeps };
|
|
65
|
+
const pkg = {
|
|
66
|
+
_generated: GENERATED_NOTICE,
|
|
67
|
+
name: config.name ?? 'app',
|
|
68
|
+
private: true,
|
|
69
|
+
type: 'module',
|
|
70
|
+
packageManager: 'pnpm@9.15.4',
|
|
71
|
+
engines: { node: '>=22' },
|
|
72
|
+
scripts: {
|
|
73
|
+
preinstall: 'node -e "try{require(\'./pipework-guard.cjs\')}catch{}"',
|
|
74
|
+
},
|
|
75
|
+
dependencies: sortKeys(allDeps),
|
|
76
|
+
devDependencies: sortKeys({
|
|
77
|
+
pipework: `^${config.pipeworkVersion}`,
|
|
78
|
+
typescript: '^6.0.3',
|
|
79
|
+
vitest: '^4.1.5',
|
|
80
|
+
}),
|
|
81
|
+
};
|
|
82
|
+
const content = JSON.stringify(pkg, null, 2) + '\n';
|
|
83
|
+
const checksum = computeChecksum(content);
|
|
84
|
+
pkg['_checksum'] = checksum;
|
|
85
|
+
return {
|
|
86
|
+
relativePath: 'package.json',
|
|
87
|
+
content: JSON.stringify(pkg, null, 2) + '\n',
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function generateWorkspaceYaml(config) {
|
|
91
|
+
const packages = ['.'];
|
|
92
|
+
for (const mod of config.modules) {
|
|
93
|
+
packages.push(mod.name);
|
|
94
|
+
}
|
|
95
|
+
if (config.surfaces !== undefined) {
|
|
96
|
+
for (const name of Object.keys(config.surfaces)) {
|
|
97
|
+
packages.push(`surfaces/${name}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const lines = [
|
|
101
|
+
`# ${GENERATED_NOTICE}`,
|
|
102
|
+
'packages:',
|
|
103
|
+
...packages.map(p => ` - "${p}"`),
|
|
104
|
+
'',
|
|
105
|
+
];
|
|
106
|
+
return {
|
|
107
|
+
relativePath: 'pnpm-workspace.yaml',
|
|
108
|
+
content: lines.join('\n'),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function generateModulePackageJson(mod, config) {
|
|
112
|
+
const appDeps = config.dependencies ?? {};
|
|
113
|
+
const pkg = {
|
|
114
|
+
_generated: GENERATED_NOTICE,
|
|
115
|
+
name: `@${config.name ?? 'app'}/${mod.name}`,
|
|
116
|
+
private: true,
|
|
117
|
+
type: 'module',
|
|
118
|
+
dependencies: sortKeys(appDeps),
|
|
119
|
+
};
|
|
120
|
+
const content = JSON.stringify(pkg, null, 2) + '\n';
|
|
121
|
+
const checksum = computeChecksum(content);
|
|
122
|
+
pkg['_checksum'] = checksum;
|
|
123
|
+
return {
|
|
124
|
+
relativePath: `${mod.name}/package.json`,
|
|
125
|
+
content: JSON.stringify(pkg, null, 2) + '\n',
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function generateSurfacePackageJson(name, surface, config) {
|
|
129
|
+
const appDeps = config.dependencies ?? {};
|
|
130
|
+
const surfaceDeps = surface.dependencies;
|
|
131
|
+
const pkg = {
|
|
132
|
+
_generated: GENERATED_NOTICE,
|
|
133
|
+
name: `@${config.name ?? 'app'}/surface-${name}`,
|
|
134
|
+
private: true,
|
|
135
|
+
type: 'module',
|
|
136
|
+
dependencies: sortKeys({ ...appDeps, ...surfaceDeps }),
|
|
137
|
+
};
|
|
138
|
+
const content = JSON.stringify(pkg, null, 2) + '\n';
|
|
139
|
+
const checksum = computeChecksum(content);
|
|
140
|
+
pkg['_checksum'] = checksum;
|
|
141
|
+
return {
|
|
142
|
+
relativePath: `surfaces/${name}/package.json`,
|
|
143
|
+
content: JSON.stringify(pkg, null, 2) + '\n',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function sortKeys(obj) {
|
|
147
|
+
const sorted = {};
|
|
148
|
+
for (const key of Object.keys(obj).sort()) {
|
|
149
|
+
sorted[key] = obj[key];
|
|
150
|
+
}
|
|
151
|
+
return sorted;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/workspace/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { sync, type SyncInput, type SyncResult } from './sync.js';
|
|
2
|
+
export { computeChecksum, checksumFromPackageJson, isStale } from './checksum.js';
|
|
3
|
+
export { discoverModules, type DiscoveredModule } from './discover.js';
|
|
4
|
+
export { generateWorkspace, type WorkspaceConfig, type GeneratedFile, type SurfaceDeps } from './generate.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmC,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,eAAe,EAAyB,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAA8D,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type GeneratedFile } from './generate.js';
|
|
2
|
+
import type { Blueprint } from '../config/schema.js';
|
|
3
|
+
import type { SurfaceManifest } from '../surface/types.js';
|
|
4
|
+
export interface SyncInput {
|
|
5
|
+
readonly config: Blueprint;
|
|
6
|
+
readonly surfaces?: Readonly<Record<string, {
|
|
7
|
+
readonly manifest: SurfaceManifest;
|
|
8
|
+
}>> | undefined;
|
|
9
|
+
readonly cwd: string;
|
|
10
|
+
readonly appName?: string | undefined;
|
|
11
|
+
}
|
|
12
|
+
export interface SyncResult {
|
|
13
|
+
readonly files: readonly GeneratedFile[];
|
|
14
|
+
readonly written: number;
|
|
15
|
+
readonly skipped: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function sync(input: SyncInput): SyncResult;
|
|
18
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6D,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAChG,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;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,CA2CjD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { writeFileSync, mkdirSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join, dirname } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { discoverModules } from './discover.js';
|
|
5
|
+
import { generateWorkspace } from './generate.js';
|
|
6
|
+
export function sync(input) {
|
|
7
|
+
const pipeworkVersion = readPipeworkVersion();
|
|
8
|
+
const surfaceDeps = input.surfaces !== undefined
|
|
9
|
+
? Object.fromEntries(Object.entries(input.surfaces).map(([name, s]) => [
|
|
10
|
+
name,
|
|
11
|
+
{ dependencies: s.manifest.dependencies },
|
|
12
|
+
]))
|
|
13
|
+
: undefined;
|
|
14
|
+
const modules = discoverModules(input.config.modules, input.cwd);
|
|
15
|
+
const workspaceConfig = {
|
|
16
|
+
name: input.appName,
|
|
17
|
+
dependencies: input.config.dependencies,
|
|
18
|
+
surfaces: surfaceDeps,
|
|
19
|
+
modules,
|
|
20
|
+
pipeworkVersion,
|
|
21
|
+
};
|
|
22
|
+
const files = generateWorkspace(workspaceConfig);
|
|
23
|
+
let written = 0;
|
|
24
|
+
let skipped = 0;
|
|
25
|
+
for (const file of files) {
|
|
26
|
+
const fullPath = join(input.cwd, file.relativePath);
|
|
27
|
+
const dir = dirname(fullPath);
|
|
28
|
+
mkdirSync(dir, { recursive: true });
|
|
29
|
+
const existing = readFileSafe(fullPath);
|
|
30
|
+
if (existing === file.content) {
|
|
31
|
+
skipped++;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
writeFileSync(fullPath, file.content, 'utf-8');
|
|
35
|
+
written++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return { files, written, skipped };
|
|
39
|
+
}
|
|
40
|
+
function readFileSafe(path) {
|
|
41
|
+
try {
|
|
42
|
+
return readFileSync(path, 'utf-8');
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function readPipeworkVersion() {
|
|
49
|
+
try {
|
|
50
|
+
const pkgPath = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'package.json');
|
|
51
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
52
|
+
return pkg.version;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return '0.0.0';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/workspace/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAA8D,MAAM,eAAe,CAAA;AAiB7G,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAA;IAE7C,MAAM,WAAW,GACf,KAAK,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAC,MAAM,CAAC,WAAW,CAClB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI;YACJ,EAAE,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE;SAC1C,CAAC,CACH;QACD,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAEhE,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,KAAK,CAAC,OAAO;QACnB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;QACvC,QAAQ,EAAE,WAAW;QACrB,OAAO;QACP,eAAe;KAChB,CAAA;IAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;IAEhD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAEnC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC9C,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAwB,CAAA;QAC7E,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAA;IAChB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pipework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"src/db/",
|
|
67
67
|
"src/test/",
|
|
68
68
|
"src/migrate/",
|
|
69
|
+
"src/validation/",
|
|
69
70
|
"tests/boundaries/"
|
|
70
71
|
]
|
|
71
72
|
},
|
|
@@ -87,6 +88,7 @@
|
|
|
87
88
|
"no-raw-drizzle-orm": {
|
|
88
89
|
"exempt": [
|
|
89
90
|
"src/db/",
|
|
91
|
+
"src/domain/",
|
|
90
92
|
"src/drizzle/",
|
|
91
93
|
"src/migrate/",
|
|
92
94
|
"src/test/",
|
|
@@ -96,6 +98,7 @@
|
|
|
96
98
|
"no-raw-drizzle-pg-core": {
|
|
97
99
|
"exempt": [
|
|
98
100
|
"src/db/",
|
|
101
|
+
"src/domain/",
|
|
99
102
|
"src/drizzle/",
|
|
100
103
|
"src/migrate/",
|
|
101
104
|
"src/test/",
|
|
@@ -106,6 +109,7 @@
|
|
|
106
109
|
"no-raw-zod": {
|
|
107
110
|
"exempt": [
|
|
108
111
|
"src/schema/",
|
|
112
|
+
"src/domain/",
|
|
109
113
|
"src/config/",
|
|
110
114
|
"tests/boundaries/"
|
|
111
115
|
]
|
|
@@ -151,6 +155,8 @@
|
|
|
151
155
|
"type-check": "tsc --noEmit",
|
|
152
156
|
"lint": "eslint src --max-warnings 0",
|
|
153
157
|
"lint:boundaries": "node scripts/check-boundaries.js",
|
|
158
|
+
"lint:jsdoc": "node scripts/check-jsdoc.js",
|
|
159
|
+
"generate:reference": "node scripts/generate-reference.js",
|
|
154
160
|
"test": "vitest run",
|
|
155
161
|
"test:isolation": "vitest run --config vitest.isolation.config.ts",
|
|
156
162
|
"test:property": "vitest run --config vitest.property.config.ts",
|
package/dist/drizzle/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA"}
|
package/dist/drizzle/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA"}
|
package/dist/resource/batch.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
|
|
2
|
-
import type { PermissionMeta } from '../di/types.js';
|
|
3
|
-
export interface BatchTargets {
|
|
4
|
-
readonly ids?: string[];
|
|
5
|
-
readonly filters?: Record<string, unknown>;
|
|
6
|
-
}
|
|
7
|
-
export interface BatchAction<TAuth> {
|
|
8
|
-
readonly permission?: PermissionMeta;
|
|
9
|
-
readonly preview?: (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, targets: BatchTargets) => Promise<unknown>;
|
|
10
|
-
readonly execute: (db: PostgresJsDatabase, auth: TAuth, tenant: string | null, targets: BatchTargets) => Promise<unknown>;
|
|
11
|
-
}
|
|
12
|
-
export interface BatchRequest {
|
|
13
|
-
readonly action: string;
|
|
14
|
-
readonly targets: BatchTargets;
|
|
15
|
-
}
|
|
16
|
-
export declare function validateBatchRequest(body: unknown, validActions: string[]): BatchRequest;
|
|
17
|
-
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/resource/batch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C;AAED,MAAM,WAAW,WAAW,CAAC,KAAK;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1H,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1H;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAC/B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,YAAY,CAkDxF"}
|