@abloatai/transaction 0.51.0 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ablo.d.ts +1 -1
- package/dist/ablo.js +1 -1
- package/dist/ai-sdk/updateTool.d.ts +1 -1
- package/dist/ai-sdk/updateTool.js +1 -1
- package/dist/auth/apiKey.d.ts +0 -6
- package/dist/auth/apiKey.d.ts.map +1 -1
- package/dist/auth/apiKey.js +13 -60
- package/dist/auth/apiKey.js.map +1 -1
- package/dist/auth/baseUrl.d.ts +38 -0
- package/dist/auth/baseUrl.d.ts.map +1 -0
- package/dist/auth/baseUrl.js +126 -0
- package/dist/auth/baseUrl.js.map +1 -0
- package/dist/auth/capability.d.ts +2 -2
- package/dist/auth/capability.js +1 -1
- package/dist/auth/index.d.ts +15 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +35 -21
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/schemas.d.ts +24 -1
- package/dist/auth/schemas.d.ts.map +1 -1
- package/dist/auth/schemas.js +8 -2
- package/dist/auth/schemas.js.map +1 -1
- package/dist/auth/sessionIssuanceProtocol.d.ts +41 -0
- package/dist/auth/sessionIssuanceProtocol.d.ts.map +1 -0
- package/dist/auth/sessionIssuanceProtocol.js +48 -0
- package/dist/auth/sessionIssuanceProtocol.js.map +1 -0
- package/dist/auth/sessionMint.js +2 -2
- package/dist/branches.d.ts +34 -33
- package/dist/branches.d.ts.map +1 -1
- package/dist/branches.js +2 -4
- package/dist/branches.js.map +1 -1
- package/dist/coordination/schema.d.ts +3 -2
- package/dist/coordination/schema.d.ts.map +1 -1
- package/dist/coordination/schema.js +7 -2
- package/dist/coordination/schema.js.map +1 -1
- package/dist/errorCodes.d.ts +7 -3
- package/dist/errorCodes.d.ts.map +1 -1
- package/dist/errorCodes.js +8 -4
- package/dist/errorCodes.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/httpResources.d.ts +35 -2
- package/dist/resources/httpResources.d.ts.map +1 -1
- package/dist/resources/httpResources.js +10 -1
- package/dist/resources/httpResources.js.map +1 -1
- package/dist/resources/modelOperations.d.ts +18 -6
- package/dist/resources/modelOperations.d.ts.map +1 -1
- package/dist/resources/modelOperations.js.map +1 -1
- package/dist/resources/where.d.ts +67 -2
- package/dist/resources/where.d.ts.map +1 -1
- package/dist/resources/where.js +73 -0
- package/dist/resources/where.js.map +1 -1
- package/dist/schema/ddl.d.ts.map +1 -1
- package/dist/schema/ddl.js +9 -12
- package/dist/schema/ddl.js.map +1 -1
- package/dist/schema/field.d.ts +3 -3
- package/dist/schema/field.js +2 -2
- package/dist/schema/fieldRef.d.ts +1 -1
- package/dist/schema/generate.d.ts +2 -3
- package/dist/schema/generate.d.ts.map +1 -1
- package/dist/schema/generate.js +2 -8
- package/dist/schema/generate.js.map +1 -1
- package/dist/schema/index.d.ts +2 -2
- package/dist/schema/index.js +3 -3
- package/dist/schema/model.d.ts +7 -7
- package/dist/schema/model.js +2 -2
- package/dist/schema/openapi.d.ts.map +1 -1
- package/dist/schema/openapi.js +63 -21
- package/dist/schema/openapi.js.map +1 -1
- package/dist/schema/queries.d.ts +1 -1
- package/dist/schema/queries.js +1 -1
- package/dist/schema/relation.d.ts +8 -8
- package/dist/schema/relation.js +5 -5
- package/dist/schema/schema.d.ts +24 -37
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +15 -28
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/sugar.d.ts +7 -7
- package/dist/schema/sugar.js +5 -5
- package/dist/server/adapter.d.ts +2 -0
- package/dist/server/adapter.d.ts.map +1 -1
- package/dist/server/commit.d.ts +5 -1
- package/dist/server/commit.d.ts.map +1 -1
- package/dist/server/index.d.ts +3 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/readConfig.d.ts +109 -57
- package/dist/server/readConfig.d.ts.map +1 -1
- package/dist/server/readConfig.js +19 -5
- package/dist/server/readConfig.js.map +1 -1
- package/dist/source/adapters/drizzle.d.ts.map +1 -1
- package/dist/source/adapters/drizzle.js +5 -0
- package/dist/source/adapters/drizzle.js.map +1 -1
- package/dist/source/adapters/kysely.d.ts.map +1 -1
- package/dist/source/adapters/kysely.js +33 -8
- package/dist/source/adapters/kysely.js.map +1 -1
- package/dist/source/adapters/kyselyMutationCore.d.ts +1 -1
- package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -1
- package/dist/source/adapters/kyselyMutationCore.js +58 -20
- package/dist/source/adapters/kyselyMutationCore.js.map +1 -1
- package/dist/source/adapters/memory.d.ts.map +1 -1
- package/dist/source/adapters/memory.js +5 -0
- package/dist/source/adapters/memory.js.map +1 -1
- package/dist/source/adapters/prisma.d.ts.map +1 -1
- package/dist/source/adapters/prisma.js +6 -1
- package/dist/source/adapters/prisma.js.map +1 -1
- package/dist/source/conformance.js +21 -21
- package/dist/source/contract.d.ts +17 -0
- package/dist/source/contract.d.ts.map +1 -1
- package/dist/source/contract.js +31 -0
- package/dist/source/contract.js.map +1 -1
- package/dist/source/index.d.ts +1 -1
- package/dist/source/index.d.ts.map +1 -1
- package/dist/source/index.js +1 -1
- package/dist/source/index.js.map +1 -1
- package/dist/source/types.d.ts +1 -0
- package/dist/source/types.d.ts.map +1 -1
- package/dist/source/types.js.map +1 -1
- package/dist/transactionLayer.d.ts +3 -3
- package/dist/transactionLayer.js +3 -3
- package/dist/transport/httpClient.d.ts +13 -4
- package/dist/transport/httpClient.d.ts.map +1 -1
- package/dist/transport/httpClient.js +4 -2
- package/dist/transport/httpClient.js.map +1 -1
- package/dist/transport/httpTransport.d.ts +1 -0
- package/dist/transport/httpTransport.d.ts.map +1 -1
- package/dist/transport/httpTransport.js +79 -11
- package/dist/transport/httpTransport.js.map +1 -1
- package/dist/transport/wsFrameHandlers.d.ts.map +1 -1
- package/dist/transport/wsFrameHandlers.js +3 -0
- package/dist/transport/wsFrameHandlers.js.map +1 -1
- package/dist/types/streams.d.ts +2 -2
- package/dist/wire/accountResponses.d.ts +18 -13
- package/dist/wire/accountResponses.d.ts.map +1 -1
- package/dist/wire/accountResponses.js +5 -11
- package/dist/wire/accountResponses.js.map +1 -1
- package/dist/wire/claims.d.ts +1 -0
- package/dist/wire/claims.d.ts.map +1 -1
- package/dist/wire/claims.js +7 -1
- package/dist/wire/claims.js.map +1 -1
- package/dist/wire/commit.d.ts +144 -0
- package/dist/wire/commit.d.ts.map +1 -1
- package/dist/wire/commit.js +22 -1
- package/dist/wire/commit.js.map +1 -1
- package/dist/wire/frames.d.ts +4 -0
- package/dist/wire/frames.d.ts.map +1 -1
- package/dist/wire/inboundFrames.d.ts +22 -0
- package/dist/wire/inboundFrames.d.ts.map +1 -1
- package/dist/wire/index.d.ts +3 -3
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +2 -2
- package/dist/wire/index.js.map +1 -1
- package/dist/wire/listEnvelope.d.ts +20 -0
- package/dist/wire/listEnvelope.d.ts.map +1 -1
- package/dist/wire/listEnvelope.js +20 -0
- package/dist/wire/listEnvelope.js.map +1 -1
- package/dist/wire/protocol.d.ts +1 -1
- package/dist/wire/protocol.js +1 -1
- package/package.json +1 -1
- package/src/ablo.ts +1 -1
- package/src/ai-sdk/updateTool.ts +1 -1
- package/src/auth/apiKey.ts +13 -61
- package/src/auth/baseUrl.ts +144 -0
- package/src/auth/capability.ts +3 -3
- package/src/auth/index.ts +62 -21
- package/src/auth/schemas.ts +16 -2
- package/src/auth/sessionIssuanceProtocol.ts +57 -0
- package/src/auth/sessionMint.ts +2 -2
- package/src/branches.ts +2 -4
- package/src/coordination/schema.ts +7 -2
- package/src/errorCodes.ts +29 -5
- package/src/errors.ts +1 -1
- package/src/index.ts +2 -0
- package/src/resources/httpResources.ts +45 -2
- package/src/resources/modelOperations.ts +18 -6
- package/src/resources/where.ts +70 -4
- package/src/schema/ddl.ts +9 -13
- package/src/schema/field.ts +3 -3
- package/src/schema/fieldRef.ts +1 -1
- package/src/schema/generate.ts +2 -8
- package/src/schema/index.ts +3 -3
- package/src/schema/model.ts +7 -7
- package/src/schema/openapi.ts +64 -21
- package/src/schema/queries.ts +1 -1
- package/src/schema/relation.ts +8 -8
- package/src/schema/residency.ts +0 -1
- package/src/schema/schema.ts +33 -58
- package/src/schema/sugar.ts +7 -7
- package/src/server/adapter.ts +2 -0
- package/src/server/commit.ts +5 -1
- package/src/server/index.ts +8 -2
- package/src/server/readConfig.ts +111 -57
- package/src/source/adapters/drizzle.ts +5 -0
- package/src/source/adapters/kysely.ts +48 -10
- package/src/source/adapters/kyselyMutationCore.ts +69 -22
- package/src/source/adapters/memory.ts +5 -0
- package/src/source/adapters/prisma.ts +6 -1
- package/src/source/conformance.ts +21 -21
- package/src/source/contract.ts +34 -0
- package/src/source/index.ts +2 -0
- package/src/source/types.ts +1 -0
- package/src/transactionLayer.ts +3 -3
- package/src/transport/httpClient.ts +23 -6
- package/src/transport/httpTransport.ts +88 -11
- package/src/transport/wsFrameHandlers.ts +3 -0
- package/src/types/global.ts +1 -1
- package/src/types/streams.ts +2 -2
- package/src/wire/accountResponses.ts +5 -11
- package/src/wire/claims.ts +7 -1
- package/src/wire/commit.ts +31 -1
- package/src/wire/index.ts +10 -1
- package/src/wire/listEnvelope.ts +23 -0
- package/src/wire/protocol.ts +1 -1
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Canonical per-model read configuration
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Canonical per-model read configuration — how one model's rows are located,
|
|
3
|
+
* scoped to a tenant, and decoded back into the types the schema declared.
|
|
4
|
+
*
|
|
5
|
+
* {@link ReadModelShape} is the definition site for those facts. Every read seam
|
|
6
|
+
* needs the same set, and each one that restated the set drifted from the
|
|
7
|
+
* others: `json` decoding reached three of them, `number` decoding reached none,
|
|
8
|
+
* and the where-clause `boolean` list reached exactly one — so a `bigint`-backed
|
|
9
|
+
* field left one seam as a decimal string and its `int4` neighbour left the next
|
|
10
|
+
* as a number. Adding a declared type is now one edit here rather than a
|
|
11
|
+
* remembered sweep.
|
|
12
|
+
*
|
|
13
|
+
* The descriptors below carry that shape plus the facts only they need. They
|
|
14
|
+
* disagree on one thing, deliberately: the model's own name. A bootstrap
|
|
15
|
+
* descriptor spells it `name`, the server's read-model descriptor spells it
|
|
16
|
+
* `typename`. `name` is part of the published data-adapter contract, so the two
|
|
17
|
+
* spellings stay and the shape they share owns everything else.
|
|
18
|
+
*
|
|
19
|
+
* Plain data, no database driver — it feeds the read side of the data adapter
|
|
20
|
+
* contract, and your query builder reads it to load a model's initial rows.
|
|
7
21
|
*/
|
|
8
22
|
/** A mapping from a declared field to a physical column, with the alias to apply after a `SELECT *`. */
|
|
9
23
|
export interface ColumnOverride {
|
|
@@ -11,71 +25,109 @@ export interface ColumnOverride {
|
|
|
11
25
|
readonly column: string;
|
|
12
26
|
readonly alias: string;
|
|
13
27
|
}
|
|
14
|
-
/**
|
|
15
|
-
|
|
16
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Parent-table tenancy scoping for rows that have no `organization_id` column
|
|
30
|
+
* of their own, mirroring the schema's `scopedVia` option. A read carrying this
|
|
31
|
+
* adds:
|
|
32
|
+
*
|
|
33
|
+
* WHERE <table>.<localKey> IN
|
|
34
|
+
* (SELECT <parentKey> FROM <parentTable> WHERE <parentOrgColumn> = $1)
|
|
35
|
+
*
|
|
36
|
+
* It applies on top of whatever `orgScoped` dictates, so a table can carry its
|
|
37
|
+
* own `organization_id` and still narrow through a parent. The common case is
|
|
38
|
+
* `orgScoped: false` together with this on a table that lacks the column —
|
|
39
|
+
* without it, such a table reads every tenant's rows.
|
|
40
|
+
*/
|
|
41
|
+
export interface ParentScope {
|
|
42
|
+
readonly localKey: string;
|
|
43
|
+
readonly parentTable: string;
|
|
44
|
+
readonly parentKey?: string;
|
|
45
|
+
readonly parentOrgColumn?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Everything a read seam needs to know about one model except what it is called.
|
|
49
|
+
*
|
|
50
|
+
* Split from the descriptors that carry it because the two of them name the
|
|
51
|
+
* model differently and agree on all of this. A seam that only decodes, or only
|
|
52
|
+
* compiles SQL, projects the members it uses with `Pick` rather than declaring
|
|
53
|
+
* its own near-copy.
|
|
54
|
+
*/
|
|
55
|
+
export interface ReadModelShape {
|
|
17
56
|
/**
|
|
18
57
|
* Extra names accepted when a request looks up or filters this model. When the
|
|
19
|
-
* physical table name is canonical,
|
|
20
|
-
* cover generated compatibility names such as
|
|
58
|
+
* physical table name is canonical, the descriptor's own name stays that table
|
|
59
|
+
* name and the aliases cover generated compatibility names such as
|
|
60
|
+
* `WeatherReports` or `weatherReports`.
|
|
21
61
|
*/
|
|
22
|
-
aliases?: readonly string[];
|
|
62
|
+
readonly aliases?: readonly string[];
|
|
23
63
|
/**
|
|
24
|
-
* The schema key used by source endpoints.
|
|
25
|
-
* name (usually the typename), while source handlers are
|
|
26
|
-
* schema key, such as `files` or `blocks`.
|
|
64
|
+
* The schema key used by source endpoints. The descriptor's own name stays the
|
|
65
|
+
* wire and result model name (usually the typename), while source handlers are
|
|
66
|
+
* keyed by the developer's schema key, such as `files` or `blocks`.
|
|
27
67
|
*/
|
|
28
|
-
sourceModel?: string;
|
|
29
|
-
table: string;
|
|
30
|
-
syncGroups?: string[];
|
|
31
|
-
enabled?: boolean;
|
|
32
|
-
/** Max rows to return. Omit for unlimited. Maps to schema's bootstrapLimit. */
|
|
33
|
-
limit?: number;
|
|
34
|
-
/** SQL ORDER BY clause. Default: 'id'. Maps to schema's bootstrapOrderBy. */
|
|
35
|
-
orderBy?: string;
|
|
68
|
+
readonly sourceModel?: string;
|
|
69
|
+
readonly table: string;
|
|
36
70
|
/** Whether the table has organization_id. Default: true. */
|
|
37
|
-
orgScoped?: boolean;
|
|
71
|
+
readonly orgScoped?: boolean;
|
|
38
72
|
/**
|
|
39
73
|
* The model derives its tenant from the connected data source (`policy:
|
|
40
|
-
* { by: 'source' }`) rather than a row column
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
74
|
+
* { by: 'source' }`) rather than a row column — the source registration is the
|
|
75
|
+
* tenant boundary. Distinct from `orgScoped: false` (a `none`/global model): a
|
|
76
|
+
* source-scoped model IS tenant-scoped, just not by a column. It carries no
|
|
77
|
+
* tenant predicate on a log plane, so every read and bootstrap site fails it
|
|
78
|
+
* closed with `source_tenancy_not_enforced` rather than treating it as global
|
|
79
|
+
* — serving it now would return every row to every tenant. When the
|
|
80
|
+
* write-through connect path can resolve the org from the source registration,
|
|
81
|
+
* this same flag routes to that resolution.
|
|
46
82
|
*/
|
|
47
|
-
sourceScoped?: boolean;
|
|
83
|
+
readonly sourceScoped?: boolean;
|
|
48
84
|
/** Physical tenancy column (default `organization_id`, configurable per model). */
|
|
49
|
-
orgColumn?: string;
|
|
50
|
-
/**
|
|
51
|
-
|
|
52
|
-
* the schema's `scopedVia` option. When set, the bootstrap query adds:
|
|
53
|
-
*
|
|
54
|
-
* WHERE <table>.<localKey> IN
|
|
55
|
-
* (SELECT <parentKey> FROM <parentTable> WHERE <parentOrgColumn> = $1)
|
|
56
|
-
*
|
|
57
|
-
* This applies on top of whatever `orgScoped` dictates, so a table can carry its
|
|
58
|
-
* own `organization_id` and still narrow through a parent. The common case,
|
|
59
|
-
* though, is `orgScoped: false` together with `scopedVia` on a table that lacks the
|
|
60
|
-
* column.
|
|
61
|
-
*/
|
|
62
|
-
scopedVia?: {
|
|
63
|
-
localKey: string;
|
|
64
|
-
parentTable: string;
|
|
65
|
-
parentKey?: string;
|
|
66
|
-
parentOrgColumn?: string;
|
|
67
|
-
};
|
|
85
|
+
readonly orgColumn?: string;
|
|
86
|
+
/** Parent-table scoping for rows with no tenancy column of their own. */
|
|
87
|
+
readonly scopedVia?: ParentScope;
|
|
68
88
|
/** Client-facing field name → physical DB column for declared fields. */
|
|
69
|
-
fieldColumns?: Record<string, string
|
|
89
|
+
readonly fieldColumns?: Readonly<Record<string, string>>;
|
|
70
90
|
/** Physical-column aliases needed after SELECT * for `.from(...)` fields. */
|
|
71
|
-
columnOverrides?: readonly ColumnOverride[];
|
|
91
|
+
readonly columnOverrides?: readonly ColumnOverride[];
|
|
72
92
|
/**
|
|
73
|
-
* Physical columns the schema declares as JSON (via `field.json()`). A JSON
|
|
74
|
-
* stored in a text column comes back
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* object, so reparsing it is a no-op.
|
|
93
|
+
* Physical columns the schema declares as JSON (via `field.json()`). A JSON
|
|
94
|
+
* field stored in a text column comes back serialized, so a read reparses these
|
|
95
|
+
* to make the wire value the canonical object regardless of the physical column
|
|
96
|
+
* type. A `jsonb` column already returns an object, so reparsing it is a no-op.
|
|
78
97
|
*/
|
|
79
|
-
jsonColumns?: readonly string[];
|
|
98
|
+
readonly jsonColumns?: readonly string[];
|
|
99
|
+
/**
|
|
100
|
+
* Physical columns the schema declares as a boolean (via `field.boolean()`).
|
|
101
|
+
* Two seams need the list. A where-clause parameter is coerced to a real JS
|
|
102
|
+
* boolean before binding, because the driver's bool encoder is a strict
|
|
103
|
+
* `=== true` and a string `'t'` would silently bind as `'f'` — an INVERTED
|
|
104
|
+
* filter, not an error. A row read back from the log is coerced the same way,
|
|
105
|
+
* because a value echoed from a customer's database arrives as PG's text
|
|
106
|
+
* literal rather than as `true`.
|
|
107
|
+
*/
|
|
108
|
+
readonly boolColumns?: readonly string[];
|
|
109
|
+
/**
|
|
110
|
+
* Physical columns the schema declares as a number (via `field.number()`).
|
|
111
|
+
* Postgres has four integer widths where JavaScript has one, so a column too
|
|
112
|
+
* wide to always fit a JS number comes back as decimal text. A read decodes
|
|
113
|
+
* these so a `bigint`-backed field and an `int4`-backed one reach the client as
|
|
114
|
+
* the same JS type.
|
|
115
|
+
*/
|
|
116
|
+
readonly numberColumns?: readonly string[];
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Read configuration for one model at bootstrap: {@link ReadModelShape} plus the
|
|
120
|
+
* facts only the initial payload needs — which models are in it, how much of
|
|
121
|
+
* each, and in what order.
|
|
122
|
+
*/
|
|
123
|
+
export interface BootstrapModel extends ReadModelShape {
|
|
124
|
+
/** The wire and result model name. `ModelMeta.typename` is the same fact. */
|
|
125
|
+
readonly name: string;
|
|
126
|
+
readonly syncGroups?: readonly string[];
|
|
127
|
+
readonly enabled?: boolean;
|
|
128
|
+
/** Max rows to return. Omit for unlimited. Maps to schema's bootstrapLimit. */
|
|
129
|
+
readonly limit?: number;
|
|
130
|
+
/** SQL ORDER BY clause. Default: 'id'. Maps to schema's bootstrapOrderBy. */
|
|
131
|
+
readonly orderBy?: string;
|
|
80
132
|
}
|
|
81
133
|
//# sourceMappingURL=readConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readConfig.d.ts","sourceRoot":"","sources":["../../src/server/readConfig.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"readConfig.d.ts","sourceRoot":"","sources":["../../src/server/readConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,wGAAwG;AACxG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,mFAAmF;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC;IACjC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,6EAA6E;IAC7E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;;;;;OAQG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Canonical per-model read configuration
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* Canonical per-model read configuration — how one model's rows are located,
|
|
3
|
+
* scoped to a tenant, and decoded back into the types the schema declared.
|
|
4
|
+
*
|
|
5
|
+
* {@link ReadModelShape} is the definition site for those facts. Every read seam
|
|
6
|
+
* needs the same set, and each one that restated the set drifted from the
|
|
7
|
+
* others: `json` decoding reached three of them, `number` decoding reached none,
|
|
8
|
+
* and the where-clause `boolean` list reached exactly one — so a `bigint`-backed
|
|
9
|
+
* field left one seam as a decimal string and its `int4` neighbour left the next
|
|
10
|
+
* as a number. Adding a declared type is now one edit here rather than a
|
|
11
|
+
* remembered sweep.
|
|
12
|
+
*
|
|
13
|
+
* The descriptors below carry that shape plus the facts only they need. They
|
|
14
|
+
* disagree on one thing, deliberately: the model's own name. A bootstrap
|
|
15
|
+
* descriptor spells it `name`, the server's read-model descriptor spells it
|
|
16
|
+
* `typename`. `name` is part of the published data-adapter contract, so the two
|
|
17
|
+
* spellings stay and the shape they share owns everything else.
|
|
18
|
+
*
|
|
19
|
+
* Plain data, no database driver — it feeds the read side of the data adapter
|
|
20
|
+
* contract, and your query builder reads it to load a model's initial rows.
|
|
7
21
|
*/
|
|
8
22
|
export {};
|
|
9
23
|
//# sourceMappingURL=readConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readConfig.js","sourceRoot":"","sources":["../../src/server/readConfig.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"readConfig.js","sourceRoot":"","sources":["../../src/server/readConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../../src/source/adapters/drizzle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAGV,iBAAiB,EACjB,GAAG,EACJ,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMnE,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnD,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACjE;AAED,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,EAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,CAAC;AAuDtF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,YAAY,EACtD,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../../src/source/adapters/drizzle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAGV,iBAAiB,EACjB,GAAG,EACJ,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMnE,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnD,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACjE;AAED,8EAA8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,EAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAA;CAAE,CAAC;AAuDtF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,YAAY,EACtD,EAAE,EAAE,WAAW,EACf,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,iBAAiB,CA4KnB"}
|
|
@@ -106,6 +106,11 @@ export function drizzleDataSource(db, schema) {
|
|
|
106
106
|
return out;
|
|
107
107
|
};
|
|
108
108
|
const applyOperation = async (tx, op) => {
|
|
109
|
+
if (op.where) {
|
|
110
|
+
throw new AbloValidationError('The Drizzle adapter does not support conditional operations', {
|
|
111
|
+
code: 'source_adapter_misconfigured',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
109
114
|
const mc = modelColumns(op.model);
|
|
110
115
|
const table = sql.identifier(mc.table);
|
|
111
116
|
const id = rowId(op);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../src/source/adapters/drizzle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../src/source/adapters/drizzle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely.d.ts","sourceRoot":"","sources":["../../../src/source/adapters/kysely.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EAEhB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"kysely.d.ts","sourceRoot":"","sources":["../../../src/source/adapters/kysely.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EAEhB,MAAM,eAAe,CAAC;AAsBvB,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,KAAK,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;AA0IhD;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9D;AAED,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,4BAAiC,GACzC,eAAe,CAkGjB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EACrD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,iBAAiB,CAqCnB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,YAAY,EACzD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,eAAe,CAoBjB"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import { AbloValidationError } from '../../errors.js';
|
|
20
20
|
import { defineDatabaseAdapter } from '../adapterFactory.js';
|
|
21
21
|
import { postgresAdapterProfile } from '../adapterProfile.js';
|
|
22
|
-
import { changeSetSchema, outboxEventSchema, sourceCommitEchoMarkerSchema, } from '../contract.js';
|
|
22
|
+
import { changeSetSchema, outboxEventSchema, sourceCommitEchoMarkerSchema, sourceCommitEchoIntentSchema, } from '../contract.js';
|
|
23
23
|
import { assertSourceIdempotencyIntent, assertSourceIdempotencyRetention, sourceChangeIntentHash, SOURCE_IDEMPOTENCY_RETENTION, } from '../idempotency.js';
|
|
24
24
|
import { adapterTableMigrations, idempotencyLedgerMigrations, } from '../migrations.js';
|
|
25
25
|
import { ABLO_POSTGRES_COMMIT_ECHO_PREFIX } from '../types.js';
|
|
@@ -61,13 +61,13 @@ function markerAction(type) {
|
|
|
61
61
|
return 'D';
|
|
62
62
|
return 'U';
|
|
63
63
|
}
|
|
64
|
-
function
|
|
64
|
+
function parseEchoIntent(change, markerModelFor, required) {
|
|
65
65
|
const payload = change.echo?.payload;
|
|
66
66
|
if (!payload) {
|
|
67
|
-
|
|
67
|
+
return undefined;
|
|
68
68
|
}
|
|
69
69
|
try {
|
|
70
|
-
const marker =
|
|
70
|
+
const marker = sourceCommitEchoIntentSchema.parse(JSON.parse(payload));
|
|
71
71
|
if (marker.correlationId !== change.correlationId) {
|
|
72
72
|
throw new Error('marker correlation does not match the ledger key');
|
|
73
73
|
}
|
|
@@ -82,19 +82,39 @@ function assertDirectLogicalMarker(change, markerModelFor) {
|
|
|
82
82
|
// key through the schema so the two vocabularies compare correctly.
|
|
83
83
|
if (!markerOperation ||
|
|
84
84
|
markerOperation.model !== markerModelFor(operation.model) ||
|
|
85
|
-
markerOperation.id !== kyselyOperationRowId(operation) ||
|
|
85
|
+
(markerOperation.id != null && markerOperation.id !== kyselyOperationRowId(operation)) ||
|
|
86
|
+
(markerOperation.id == null && operation.type !== 'CREATE') ||
|
|
86
87
|
markerOperation.action !== markerAction(operation.type) ||
|
|
87
88
|
markerOperation.transactionId !== operation.transactionId) {
|
|
88
89
|
throw new Error(`marker operation ${index} does not match the mutation`);
|
|
89
90
|
}
|
|
90
91
|
}
|
|
92
|
+
return marker;
|
|
91
93
|
}
|
|
92
94
|
catch (error) {
|
|
93
95
|
if (error instanceof AbloValidationError)
|
|
94
96
|
throw error;
|
|
97
|
+
if (!required)
|
|
98
|
+
return undefined;
|
|
95
99
|
throw new AbloValidationError(`The direct Postgres logical marker is invalid: ${error instanceof Error ? error.message : 'unknown marker error'}`, { code: 'source_adapter_misconfigured' });
|
|
96
100
|
}
|
|
97
101
|
}
|
|
102
|
+
function resolveEchoMarker(intent, rows) {
|
|
103
|
+
return sourceCommitEchoMarkerSchema.parse({
|
|
104
|
+
...intent,
|
|
105
|
+
operations: intent.operations.map((operation, index) => {
|
|
106
|
+
const returnedId = rows[index]?.id;
|
|
107
|
+
const id = operation.id ?? returnedId;
|
|
108
|
+
if (typeof id !== 'string' || id.length === 0) {
|
|
109
|
+
throw new AbloValidationError(`source operation ${index} did not return a canonical id for WAL correlation`, { code: 'source_adapter_misconfigured' });
|
|
110
|
+
}
|
|
111
|
+
if (returnedId != null && String(returnedId) !== id) {
|
|
112
|
+
throw new AbloValidationError(`source operation ${index} returned an id that does not match its WAL correlation`, { code: 'source_adapter_misconfigured' });
|
|
113
|
+
}
|
|
114
|
+
return { ...operation, id };
|
|
115
|
+
}),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
98
118
|
export function createKyselyMutationAdapter(db, core, mode, options = {}) {
|
|
99
119
|
const markerModelFor = options.markerModelFor ?? ((model) => model);
|
|
100
120
|
return defineDatabaseAdapter({
|
|
@@ -116,8 +136,10 @@ export function createKyselyMutationAdapter(db, core, mode, options = {}) {
|
|
|
116
136
|
},
|
|
117
137
|
async commit(change) {
|
|
118
138
|
const request = changeSetSchema.parse(change);
|
|
119
|
-
if (mode === 'direct')
|
|
120
|
-
|
|
139
|
+
if (mode === 'direct' && !request.echo) {
|
|
140
|
+
throw new AbloValidationError('A direct Kysely mutation requires a transactional Postgres logical marker', { code: 'source_adapter_misconfigured' });
|
|
141
|
+
}
|
|
142
|
+
const echoIntent = parseEchoIntent(request, markerModelFor, mode === 'direct');
|
|
121
143
|
const requestHash = sourceChangeIntentHash(request);
|
|
122
144
|
return db.transaction().execute(async (transaction) => {
|
|
123
145
|
const reservation = await transaction.executeQuery(reserveLedgerQuery(request.correlationId, requestHash));
|
|
@@ -159,7 +181,10 @@ export function createKyselyMutationAdapter(db, core, mode, options = {}) {
|
|
|
159
181
|
}
|
|
160
182
|
await transaction.executeQuery(completeLedgerQuery(request.correlationId, rows));
|
|
161
183
|
if (request.echo?.kind === 'postgres-wal') {
|
|
162
|
-
|
|
184
|
+
const payload = echoIntent
|
|
185
|
+
? JSON.stringify(resolveEchoMarker(echoIntent, rows))
|
|
186
|
+
: request.echo.payload;
|
|
187
|
+
await transaction.executeQuery(postgresLogicalMarkerQuery(payload));
|
|
163
188
|
}
|
|
164
189
|
return { rows };
|
|
165
190
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely.js","sourceRoot":"","sources":["../../../src/source/adapters/kysely.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAQtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"kysely.js","sourceRoot":"","sources":["../../../src/source/adapters/kysely.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reusable Kysely row-mutation core.
|
|
3
3
|
*
|
|
4
|
-
* This is the single schema-field ↔
|
|
4
|
+
* This is the single schema-field ↔ database-column translation used by both
|
|
5
5
|
* Kysely transports. It deliberately knows nothing about outboxes, logical
|
|
6
6
|
* markers, or idempotency: wrappers compose those transaction policies around
|
|
7
7
|
* the same `applyOperation` implementation, so direct and endpoint DML cannot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kyselyMutationCore.d.ts","sourceRoot":"","sources":["../../../src/source/adapters/kyselyMutationCore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kyselyMutationCore.d.ts","sourceRoot":"","sources":["../../../src/source/adapters/kyselyMutationCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Reusable Kysely row-mutation core.
|
|
3
3
|
*
|
|
4
|
-
* This is the single schema-field ↔
|
|
4
|
+
* This is the single schema-field ↔ database-column translation used by both
|
|
5
5
|
* Kysely transports. It deliberately knows nothing about outboxes, logical
|
|
6
6
|
* markers, or idempotency: wrappers compose those transaction policies around
|
|
7
7
|
* the same `applyOperation` implementation, so direct and endpoint DML cannot
|
|
@@ -58,6 +58,10 @@ export function kyselyOperationRowId(operation) {
|
|
|
58
58
|
}
|
|
59
59
|
return id;
|
|
60
60
|
}
|
|
61
|
+
function suppliedOperationRowId(operation) {
|
|
62
|
+
const id = operation.id ?? operation.input?.id;
|
|
63
|
+
return typeof id === 'string' && id.length > 0 ? id : undefined;
|
|
64
|
+
}
|
|
61
65
|
export function createKyselyMutationCore(db, schema) {
|
|
62
66
|
const maps = buildColumnMaps(schema);
|
|
63
67
|
const modelColumns = (model) => {
|
|
@@ -71,14 +75,20 @@ export function createKyselyMutationCore(db, schema) {
|
|
|
71
75
|
const fieldFor = (columns, column) => columns.columnToField.get(column) ?? snakeToCamel(column);
|
|
72
76
|
const toColumns = (columns, row) => {
|
|
73
77
|
const out = {};
|
|
74
|
-
for (const key of Object.keys(row))
|
|
78
|
+
for (const key of Object.keys(row)) {
|
|
75
79
|
out[columnFor(columns, key)] = row[key];
|
|
80
|
+
}
|
|
76
81
|
return out;
|
|
77
82
|
};
|
|
78
83
|
const toFields = (columns, row) => {
|
|
79
84
|
const out = {};
|
|
80
|
-
for (const key of Object.keys(row))
|
|
81
|
-
|
|
85
|
+
for (const key of Object.keys(row)) {
|
|
86
|
+
const field = fieldFor(columns, key);
|
|
87
|
+
const value = row[key];
|
|
88
|
+
out[field] = field === 'id' && value !== null && value !== undefined
|
|
89
|
+
? String(value)
|
|
90
|
+
: value;
|
|
91
|
+
}
|
|
82
92
|
return out;
|
|
83
93
|
};
|
|
84
94
|
return {
|
|
@@ -88,7 +98,7 @@ export function createKyselyMutationCore(db, schema) {
|
|
|
88
98
|
const rows = await db
|
|
89
99
|
.selectFrom(columns.table)
|
|
90
100
|
.selectAll()
|
|
91
|
-
.where('id', '=', request.id)
|
|
101
|
+
.where(columnFor(columns, 'id'), '=', request.id)
|
|
92
102
|
.limit(1)
|
|
93
103
|
.execute();
|
|
94
104
|
return rows.map((row) => toFields(columns, row));
|
|
@@ -102,12 +112,44 @@ export function createKyselyMutationCore(db, schema) {
|
|
|
102
112
|
},
|
|
103
113
|
async applyOperation(transaction, operation) {
|
|
104
114
|
const columns = modelColumns(operation.model);
|
|
105
|
-
const id = kyselyOperationRowId(operation);
|
|
106
115
|
const input = operation.input ?? {};
|
|
116
|
+
if (operation.where && operation.type !== 'UPDATE') {
|
|
117
|
+
throw new AbloValidationError('where is supported only for UPDATE operations', {
|
|
118
|
+
code: 'commit_operation_invalid',
|
|
119
|
+
param: 'where',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (operation.type === 'CREATE') {
|
|
123
|
+
const suppliedId = suppliedOperationRowId(operation);
|
|
124
|
+
const createInput = operation.id == null
|
|
125
|
+
? Object.fromEntries(Object.entries(input).filter(([field]) => field !== 'id'))
|
|
126
|
+
: input;
|
|
127
|
+
const inserted = await transaction
|
|
128
|
+
.insertInto(columns.table)
|
|
129
|
+
.values(toColumns(columns, {
|
|
130
|
+
...createInput,
|
|
131
|
+
...(operation.id == null
|
|
132
|
+
? {}
|
|
133
|
+
: suppliedId
|
|
134
|
+
? { id: suppliedId }
|
|
135
|
+
: {}),
|
|
136
|
+
}))
|
|
137
|
+
.returningAll()
|
|
138
|
+
.execute();
|
|
139
|
+
if (!inserted[0]) {
|
|
140
|
+
throw new AbloValidationError(`${operation.type} on "${operation.model}" returned no source row`, { code: 'source_adapter_misconfigured' });
|
|
141
|
+
}
|
|
142
|
+
const row = toFields(columns, inserted[0]);
|
|
143
|
+
if (typeof row.id !== 'string' || row.id.length === 0) {
|
|
144
|
+
throw new AbloValidationError(`${operation.type} on "${operation.model}" did not return a canonical id`, { code: 'source_adapter_misconfigured' });
|
|
145
|
+
}
|
|
146
|
+
return row;
|
|
147
|
+
}
|
|
148
|
+
const id = kyselyOperationRowId(operation);
|
|
107
149
|
if (operation.type === 'DELETE') {
|
|
108
150
|
const deleted = await transaction
|
|
109
151
|
.deleteFrom(columns.table)
|
|
110
|
-
.where('id', '=', id)
|
|
152
|
+
.where(columnFor(columns, 'id'), '=', id)
|
|
111
153
|
.returningAll()
|
|
112
154
|
.execute();
|
|
113
155
|
if (!deleted[0]) {
|
|
@@ -115,27 +157,23 @@ export function createKyselyMutationCore(db, schema) {
|
|
|
115
157
|
}
|
|
116
158
|
return toFields(columns, deleted[0]);
|
|
117
159
|
}
|
|
118
|
-
if (operation.type === 'CREATE') {
|
|
119
|
-
const inserted = await transaction
|
|
120
|
-
.insertInto(columns.table)
|
|
121
|
-
.values(toColumns(columns, { id, ...input }))
|
|
122
|
-
.returningAll()
|
|
123
|
-
.execute();
|
|
124
|
-
return inserted[0] ? toFields(columns, inserted[0]) : { id, ...input };
|
|
125
|
-
}
|
|
126
160
|
const patch = toColumns(columns, {
|
|
127
161
|
...input,
|
|
128
162
|
...(operation.type === 'ARCHIVE' ? { archivedAt: new Date() } : {}),
|
|
129
163
|
...(operation.type === 'UNARCHIVE' ? { archivedAt: null } : {}),
|
|
130
164
|
});
|
|
131
|
-
|
|
165
|
+
let update = transaction
|
|
132
166
|
.updateTable(columns.table)
|
|
133
167
|
.set(patch)
|
|
134
|
-
.where('id', '=', id)
|
|
135
|
-
|
|
136
|
-
.
|
|
168
|
+
.where(columnFor(columns, 'id'), '=', id);
|
|
169
|
+
for (const [column, value] of Object.entries(toColumns(columns, operation.where ?? {}))) {
|
|
170
|
+
update = update.where(column, '=', value);
|
|
171
|
+
}
|
|
172
|
+
const updated = await update.returningAll().execute();
|
|
137
173
|
if (!updated[0]) {
|
|
138
|
-
throw new AbloValidationError(
|
|
174
|
+
throw new AbloValidationError(operation.where
|
|
175
|
+
? `The conditional ${operation.type} on "${operation.model}/${id}" did not match`
|
|
176
|
+
: `${operation.type} on "${operation.model}/${id}" matched no source row`, { code: operation.where ? 'precondition_failed' : 'mutate_update_entity_not_found' });
|
|
139
177
|
}
|
|
140
178
|
return toFields(columns, updated[0]);
|
|
141
179
|
},
|