@antelopejs/postgres 0.2.4 → 0.2.6

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 (168) hide show
  1. package/README.md +38 -52
  2. package/dist/connection.js +1 -1
  3. package/dist/connection.js.map +1 -1
  4. package/dist/implementations/database/context.d.ts +4 -3
  5. package/dist/implementations/database/context.js.map +1 -1
  6. package/dist/implementations/database/duplicate-key.d.ts +3 -1
  7. package/dist/implementations/database/duplicate-key.js +1 -2
  8. package/dist/implementations/database/duplicate-key.js.map +1 -1
  9. package/dist/implementations/database/external-discovery.js +17 -8
  10. package/dist/implementations/database/external-discovery.js.map +1 -1
  11. package/dist/implementations/database/external-errors.d.ts +10 -1
  12. package/dist/implementations/database/external-errors.js +57 -27
  13. package/dist/implementations/database/external-errors.js.map +1 -1
  14. package/dist/implementations/database/external-measures.js +3 -3
  15. package/dist/implementations/database/external-measures.js.map +1 -1
  16. package/dist/implementations/database/external-payload.d.ts +4 -3
  17. package/dist/implementations/database/external-payload.js +40 -46
  18. package/dist/implementations/database/external-payload.js.map +1 -1
  19. package/dist/implementations/database/external-rows.js +4 -1
  20. package/dist/implementations/database/external-rows.js.map +1 -1
  21. package/dist/implementations/database/external-types.js +28 -28
  22. package/dist/implementations/database/external-types.js.map +1 -1
  23. package/dist/implementations/database/external-writes.js +16 -12
  24. package/dist/implementations/database/external-writes.js.map +1 -1
  25. package/dist/implementations/database/feeds.d.ts +2 -1
  26. package/dist/implementations/database/feeds.js +2 -2
  27. package/dist/implementations/database/feeds.js.map +1 -1
  28. package/dist/implementations/database/fields.js +12 -14
  29. package/dist/implementations/database/fields.js.map +1 -1
  30. package/dist/implementations/database/instances.d.ts +3 -2
  31. package/dist/implementations/database/instances.js +4 -4
  32. package/dist/implementations/database/instances.js.map +1 -1
  33. package/dist/implementations/database/member.d.ts +41 -0
  34. package/dist/implementations/database/member.js +91 -0
  35. package/dist/implementations/database/member.js.map +1 -0
  36. package/dist/implementations/database/migrate.js.map +1 -1
  37. package/dist/implementations/database/payload.d.ts +3 -2
  38. package/dist/implementations/database/payload.js +33 -49
  39. package/dist/implementations/database/payload.js.map +1 -1
  40. package/dist/implementations/database/pipeline.js +4 -5
  41. package/dist/implementations/database/pipeline.js.map +1 -1
  42. package/dist/implementations/database/query.d.ts +4 -3
  43. package/dist/implementations/database/query.js +28 -22
  44. package/dist/implementations/database/query.js.map +1 -1
  45. package/dist/implementations/database/result.d.ts +6 -2
  46. package/dist/implementations/database/result.js +23 -19
  47. package/dist/implementations/database/result.js.map +1 -1
  48. package/dist/implementations/database/schema.js +30 -31
  49. package/dist/implementations/database/schema.js.map +1 -1
  50. package/dist/implementations/database/selection.js +33 -32
  51. package/dist/implementations/database/selection.js.map +1 -1
  52. package/dist/implementations/database/stage.js +4 -3
  53. package/dist/implementations/database/stage.js.map +1 -1
  54. package/dist/implementations/database/stages-aggregate.js +2 -1
  55. package/dist/implementations/database/stages-aggregate.js.map +1 -1
  56. package/dist/implementations/database/stages-array.js +1 -4
  57. package/dist/implementations/database/stages-array.js.map +1 -1
  58. package/dist/implementations/database/stages-core.js +9 -2
  59. package/dist/implementations/database/stages-core.js.map +1 -1
  60. package/dist/implementations/database/stages-date.js.map +1 -1
  61. package/dist/implementations/database/stages-group.js +16 -17
  62. package/dist/implementations/database/stages-group.js.map +1 -1
  63. package/dist/implementations/database/stages-join.js +6 -8
  64. package/dist/implementations/database/stages-join.js.map +1 -1
  65. package/dist/implementations/database/stages-numeric.js +4 -3
  66. package/dist/implementations/database/stages-numeric.js.map +1 -1
  67. package/dist/implementations/database/stages-projection.js +4 -2
  68. package/dist/implementations/database/stages-projection.js.map +1 -1
  69. package/dist/implementations/database/stages-rows.js +6 -4
  70. package/dist/implementations/database/stages-rows.js.map +1 -1
  71. package/dist/implementations/database/stages-selection.js +8 -6
  72. package/dist/implementations/database/stages-selection.js.map +1 -1
  73. package/dist/implementations/database/stages-string.js +4 -2
  74. package/dist/implementations/database/stages-string.js.map +1 -1
  75. package/dist/implementations/database/subquery.js +1 -1
  76. package/dist/implementations/database/subquery.js.map +1 -1
  77. package/dist/implementations/database/utils.d.ts +10 -2
  78. package/dist/implementations/database/utils.js +6 -1
  79. package/dist/implementations/database/utils.js.map +1 -1
  80. package/dist/implementations/database/value.d.ts +14 -6
  81. package/dist/implementations/database/value.js +58 -67
  82. package/dist/implementations/database/value.js.map +1 -1
  83. package/dist/implementations/database/writes-atomic.js +9 -3
  84. package/dist/implementations/database/writes-atomic.js.map +1 -1
  85. package/dist/implementations/database/writes-identity.js +11 -9
  86. package/dist/implementations/database/writes-identity.js.map +1 -1
  87. package/dist/implementations/database/writes-insert.js +11 -16
  88. package/dist/implementations/database/writes-insert.js.map +1 -1
  89. package/dist/implementations/database/writes-shared.d.ts +2 -2
  90. package/dist/implementations/database/writes-shared.js +4 -7
  91. package/dist/implementations/database/writes-shared.js.map +1 -1
  92. package/dist/implementations/database/writes.js +8 -8
  93. package/dist/implementations/database/writes.js.map +1 -1
  94. package/dist/test/contention.test.js +1 -2
  95. package/dist/test/contention.test.js.map +1 -1
  96. package/dist/test/indexes.test.js.map +1 -1
  97. package/dist/test/typed-operations.test.d.ts +1 -0
  98. package/dist/test/typed-operations.test.js +103 -0
  99. package/dist/test/typed-operations.test.js.map +1 -0
  100. package/dist/test/unit/config.spec.js +4 -2
  101. package/dist/test/unit/config.spec.js.map +1 -1
  102. package/dist/test/unit/expression-array-fixture.d.ts +19 -1
  103. package/dist/test/unit/expression-array-fixture.js.map +1 -1
  104. package/dist/test/unit/expression-array-walk.spec.js +4 -4
  105. package/dist/test/unit/expression-array-walk.spec.js.map +1 -1
  106. package/dist/test/unit/expression-array.spec.js +1 -1
  107. package/dist/test/unit/expression-array.spec.js.map +1 -1
  108. package/dist/test/unit/expression-date.spec.js +10 -11
  109. package/dist/test/unit/expression-date.spec.js.map +1 -1
  110. package/dist/test/unit/expression-numeric.spec.js +7 -10
  111. package/dist/test/unit/expression-numeric.spec.js.map +1 -1
  112. package/dist/test/unit/expression-object.spec.js.map +1 -1
  113. package/dist/test/unit/expression-predicate.spec.js +6 -5
  114. package/dist/test/unit/expression-predicate.spec.js.map +1 -1
  115. package/dist/test/unit/expression-string.spec.js +13 -4
  116. package/dist/test/unit/expression-string.spec.js.map +1 -1
  117. package/dist/test/unit/expression.spec.js +7 -1
  118. package/dist/test/unit/expression.spec.js.map +1 -1
  119. package/dist/test/unit/external-types.spec.js +10 -0
  120. package/dist/test/unit/external-types.spec.js.map +1 -1
  121. package/dist/test/unit/feeds.spec.js +18 -6
  122. package/dist/test/unit/feeds.spec.js.map +1 -1
  123. package/dist/test/unit/fields.spec.js +3 -6
  124. package/dist/test/unit/fields.spec.js.map +1 -1
  125. package/dist/test/unit/member.spec.d.ts +1 -0
  126. package/dist/test/unit/member.spec.js +234 -0
  127. package/dist/test/unit/member.spec.js.map +1 -0
  128. package/dist/test/unit/payload.spec.js +53 -48
  129. package/dist/test/unit/payload.spec.js.map +1 -1
  130. package/dist/test/unit/pipeline-fixture.js +5 -8
  131. package/dist/test/unit/pipeline-fixture.js.map +1 -1
  132. package/dist/test/unit/pipeline-group.spec.js.map +1 -1
  133. package/dist/test/unit/pipeline-lambda-ids.spec.d.ts +1 -0
  134. package/dist/test/unit/pipeline-lambda-ids.spec.js +35 -0
  135. package/dist/test/unit/pipeline-lambda-ids.spec.js.map +1 -0
  136. package/dist/test/unit/pipeline-lookup.spec.js +7 -7
  137. package/dist/test/unit/pipeline-lookup.spec.js.map +1 -1
  138. package/dist/test/unit/pipeline-projection.spec.js +5 -5
  139. package/dist/test/unit/pipeline-projection.spec.js.map +1 -1
  140. package/dist/test/unit/pipeline-selection.spec.js +44 -29
  141. package/dist/test/unit/pipeline-selection.spec.js.map +1 -1
  142. package/dist/test/unit/pipeline-stages.spec.js +2 -2
  143. package/dist/test/unit/pipeline-stages.spec.js.map +1 -1
  144. package/dist/test/unit/pipeline-substream.spec.js +2 -1
  145. package/dist/test/unit/pipeline-substream.spec.js.map +1 -1
  146. package/dist/test/unit/pipeline.spec.js +7 -7
  147. package/dist/test/unit/pipeline.spec.js.map +1 -1
  148. package/dist/test/unit/result.spec.js +4 -0
  149. package/dist/test/unit/result.spec.js.map +1 -1
  150. package/dist/test/unit/schema.spec.js +18 -0
  151. package/dist/test/unit/schema.spec.js.map +1 -1
  152. package/dist/test/unit/selection.spec.js +7 -9
  153. package/dist/test/unit/selection.spec.js.map +1 -1
  154. package/dist/test/unit/utils.spec.js +8 -6
  155. package/dist/test/unit/utils.spec.js.map +1 -1
  156. package/dist/test/unit/value.spec.js +46 -27
  157. package/dist/test/unit/value.spec.js.map +1 -1
  158. package/dist/test/unit/writes-insert.spec.js +2 -3
  159. package/dist/test/unit/writes-insert.spec.js.map +1 -1
  160. package/dist/test/unit/writes-replace.spec.js +1 -2
  161. package/dist/test/unit/writes-replace.spec.js.map +1 -1
  162. package/dist/test/unit/writes-update.spec.js +2 -3
  163. package/dist/test/unit/writes-update.spec.js.map +1 -1
  164. package/dist/test-external/reads.test.js.map +1 -1
  165. package/package.json +9 -8
  166. package/dist/test/unit/invalid-fixture.d.ts +0 -3
  167. package/dist/test/unit/invalid-fixture.js +0 -11
  168. package/dist/test/unit/invalid-fixture.js.map +0 -1
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_assert_1 = require("node:assert");
4
+ const chai_1 = require("chai");
5
+ const interface_database_1 = require("@antelopejs/interface-database");
6
+ const common_1 = require("@antelopejs/interface-database/common");
7
+ const context_1 = require("../../implementations/database/context");
8
+ const external_payload_1 = require("../../implementations/database/external-payload");
9
+ const member_1 = require("../../implementations/database/member");
10
+ const types_1 = require("../../implementations/database/types");
11
+ const value_1 = require("../../implementations/database/value");
12
+ const spec_fixture_1 = require("./spec-fixture");
13
+ const NAMED_KINDS = [
14
+ { label: "undefined", value: undefined, kind: "absent", type: "undefined" },
15
+ { label: "null", value: null, kind: "null", type: "object" },
16
+ { label: "a string", value: "x", kind: "text", type: "string" },
17
+ { label: "a number", value: 1, kind: "number", type: "number" },
18
+ { label: "NaN", value: NaN, kind: "number", type: "number" },
19
+ { label: "a boolean", value: false, kind: "boolean", type: "boolean" },
20
+ { label: "a date", value: new Date(0), kind: "date", type: "object" },
21
+ {
22
+ label: "a proxy",
23
+ value: interface_database_1.ValueProxy.constant(1),
24
+ kind: "proxy",
25
+ type: "object",
26
+ },
27
+ {
28
+ label: "a query",
29
+ value: new interface_database_1.Query((0, common_1.QueryStage)("table", { id: "t" })),
30
+ kind: "query",
31
+ type: "object",
32
+ },
33
+ {
34
+ label: "a staged object",
35
+ value: new common_1.StagedObject((0, common_1.QueryStage)("table", { id: "t" })),
36
+ kind: "staged",
37
+ type: "object",
38
+ },
39
+ { label: "a list", value: [1], kind: "list", type: "object" },
40
+ {
41
+ label: "an object literal",
42
+ value: { a: 1 },
43
+ kind: "record",
44
+ type: "object",
45
+ },
46
+ {
47
+ label: "a Buffer",
48
+ value: Buffer.from("a"),
49
+ kind: "opaque",
50
+ type: "object",
51
+ },
52
+ { label: "a Map", value: new Map(), kind: "opaque", type: "object" },
53
+ { label: "a bigint", value: 1n, kind: "opaque", type: "bigint" },
54
+ { label: "a symbol", value: Symbol("s"), kind: "opaque", type: "symbol" },
55
+ { label: "a function", value: () => 1, kind: "opaque", type: "function" },
56
+ ];
57
+ const STAMP = {
58
+ field: "stamp",
59
+ column: "stamp",
60
+ kind: types_1.TEXT,
61
+ family: "text",
62
+ native: "text",
63
+ castType: "text",
64
+ value: (column) => column,
65
+ notNull: false,
66
+ hasDefault: false,
67
+ generated: true,
68
+ identity: "",
69
+ };
70
+ const WITH_GENERATED = {
71
+ fields: { stamp: { column: "stamp", type: types_1.TEXT, native: STAMP } },
72
+ external: { schema: "public", table: "t", key: [] },
73
+ };
74
+ function Split(document, mode) {
75
+ const view = (0, member_1.ClassifyMember)(Object.fromEntries(document)).document;
76
+ (0, chai_1.expect)(view).to.not.equal(undefined);
77
+ return view
78
+ ? (0, external_payload_1.SplitExternalPayload)(view, WITH_GENERATED, new context_1.DecodingContext((0, spec_fixture_1.RefusingCompilers)()), mode)
79
+ : undefined;
80
+ }
81
+ describe("ClassifyMember", () => {
82
+ for (const { label, value, kind, type } of NAMED_KINDS) {
83
+ it(`reads ${label} as ${kind}, refusing it with what typeof answers`, () => {
84
+ const member = (0, member_1.ClassifyMember)(value);
85
+ (0, chai_1.expect)(member.kind).to.equal(kind);
86
+ (0, chai_1.expect)(() => member.refuseInQuery()).to.throw(Error, `Unsupported value of type '${type}' in query`);
87
+ (0, chai_1.expect)(() => member.refuseAsId()).to.throw(node_assert_1.AssertionError, `An inserted document's '_id' must be a string, received ${type}`);
88
+ });
89
+ }
90
+ it("looks no deeper than the value, so a cyclic member costs nothing until it is walked", () => {
91
+ const cyclic = {};
92
+ cyclic.self = cyclic;
93
+ const member = (0, member_1.ClassifyMember)(cyclic);
94
+ (0, chai_1.expect)(member.kind).to.equal("record");
95
+ (0, chai_1.expect)(() => member.json()).to.throw(/circular/);
96
+ });
97
+ it("reads a getter when the walk asks for the entries, each time it asks", () => {
98
+ const reads = [];
99
+ const member = (0, member_1.ClassifyMember)({
100
+ get a() {
101
+ reads.push("a");
102
+ return 1;
103
+ },
104
+ });
105
+ (0, chai_1.expect)(reads).to.deep.equal([]);
106
+ member.document?.entries();
107
+ member.document?.entries();
108
+ (0, chai_1.expect)(reads).to.deep.equal(["a", "a"]);
109
+ });
110
+ it("views any non-array object as a document, and nothing else", () => {
111
+ (0, chai_1.expect)((0, member_1.ClassifyMember)(Buffer.from("a")).document?.ownNames()).to.include("0");
112
+ (0, chai_1.expect)((0, member_1.ClassifyMember)(new Map()).document).to.not.equal(undefined);
113
+ (0, chai_1.expect)((0, member_1.ClassifyMember)([1]).document).to.equal(undefined);
114
+ (0, chai_1.expect)((0, member_1.ClassifyMember)("x").document).to.equal(undefined);
115
+ (0, chai_1.expect)((0, member_1.ClassifyMember)(() => 1).document).to.equal(undefined);
116
+ });
117
+ it("names a non-enumerable own key, as replace's silent fields read it", () => {
118
+ const document = Object.defineProperty({}, "hidden", {
119
+ value: 1,
120
+ enumerable: false,
121
+ });
122
+ (0, chai_1.expect)((0, member_1.ClassifyMember)(document).document?.ownNames()).to.deep.equal([
123
+ "hidden",
124
+ ]);
125
+ });
126
+ it("answers an own key and no inherited one", () => {
127
+ const view = (0, member_1.ClassifyMember)({ own: 1 }).document;
128
+ (0, chai_1.expect)(view?.own("own")?.kind).to.equal("number");
129
+ (0, chai_1.expect)(view?.own("constructor")).to.equal(undefined);
130
+ });
131
+ it("offers a list whole only when every item is json the driver can send", () => {
132
+ const whole = (0, member_1.ClassifyMember)([1, "a", [true], { b: null }]);
133
+ const stamped = (0, member_1.ClassifyMember)([new Date(0)]);
134
+ (0, chai_1.expect)(whole.kind === "list" && whole.constant()).to.deep.equal([
135
+ 1,
136
+ "a",
137
+ [true],
138
+ { b: null },
139
+ ]);
140
+ (0, chai_1.expect)(stamped.kind === "list" && stamped.constant()).to.equal(undefined);
141
+ });
142
+ it("offers a list whole when an object in it holds an undefined member", () => {
143
+ const holed = (0, member_1.ClassifyMember)([{ a: undefined }]);
144
+ (0, chai_1.expect)(holed.kind === "list" && holed.constant()).to.deep.equal([
145
+ { a: undefined },
146
+ ]);
147
+ });
148
+ });
149
+ describe("a key field read as a number, beside _id's text", () => {
150
+ const COUNT = {
151
+ ...STAMP,
152
+ field: "count",
153
+ column: "count",
154
+ kind: types_1.FLOAT,
155
+ family: "float8",
156
+ generated: false,
157
+ };
158
+ const KEYED = {
159
+ fields: { count: { column: "count", type: types_1.FLOAT, native: COUNT } },
160
+ external: { schema: "public", table: "t", key: [COUNT] },
161
+ };
162
+ function Insert(document) {
163
+ const view = (0, member_1.ClassifyMember)(document).document;
164
+ (0, chai_1.expect)(view).to.not.equal(undefined);
165
+ return view
166
+ ? (0, external_payload_1.SplitExternalPayload)(view, KEYED, new context_1.DecodingContext((0, spec_fixture_1.RefusingCompilers)()), "insert")
167
+ : undefined;
168
+ }
169
+ it("settles to _id's claim when the number is the one _id spells", () => {
170
+ const split = Insert({ _id: "7", count: 7 });
171
+ (0, chai_1.expect)(split?.keyFields).to.deep.equal([]);
172
+ });
173
+ it("refuses a number that names another key", () => {
174
+ (0, chai_1.expect)(() => Insert({ _id: "7", count: 8 })).to.throw(/two values/);
175
+ });
176
+ it("refuses text where the column's reading is a number", () => {
177
+ (0, chai_1.expect)(() => Insert({ _id: "7", count: "7" })).to.throw(/two values/);
178
+ });
179
+ });
180
+ describe("what a write keeps to validate before it runs", () => {
181
+ const PLAIN = { ...STAMP, generated: false };
182
+ const WRITABLE = {
183
+ fields: { stamp: { column: "stamp", type: types_1.TEXT, native: PLAIN } },
184
+ external: { schema: "public", table: "t", key: [] },
185
+ };
186
+ const COMPILED = { sql: "(1)", type: types_1.TEXT };
187
+ function RawOf(document) {
188
+ const view = (0, member_1.ClassifyMember)(document).document;
189
+ (0, chai_1.expect)(view).to.not.equal(undefined);
190
+ const context = new context_1.DecodingContext({
191
+ ...(0, spec_fixture_1.RefusingCompilers)(),
192
+ expression: () => COMPILED,
193
+ subquery: () => COMPILED,
194
+ });
195
+ return view
196
+ ? (0, external_payload_1.SplitExternalPayload)(view, WRITABLE, context, "update").assignments[0]
197
+ .raw
198
+ : undefined;
199
+ }
200
+ it("keeps a constant", () => {
201
+ (0, chai_1.expect)(RawOf({ stamp: "x" })?.kind).to.equal("text");
202
+ });
203
+ it("keeps nothing for a value computed from the row", () => {
204
+ (0, chai_1.expect)(RawOf({ stamp: interface_database_1.ValueProxy.constant("x") })).to.equal(undefined);
205
+ });
206
+ it("keeps nothing for a subquery", () => {
207
+ (0, chai_1.expect)(RawOf({ stamp: new interface_database_1.Query((0, common_1.QueryStage)("table", { id: "t" })) })).to.equal(undefined);
208
+ });
209
+ });
210
+ describe("a value no walk can decode", () => {
211
+ const UNDECODABLE = [
212
+ ["Buffer", Buffer.from("a"), /'object'/],
213
+ ["bigint", 1n, /'bigint'/],
214
+ ];
215
+ it("refuses a staged object that is neither a proxy nor a query", () => {
216
+ (0, chai_1.expect)(() => (0, value_1.DecodeValue)((0, member_1.ClassifyMember)(new common_1.StagedObject((0, common_1.QueryStage)("table", { id: "t" }))), new context_1.DecodingContext((0, spec_fixture_1.RefusingCompilers)()))).to.throw(/'object'/);
217
+ });
218
+ for (const [label, value, refusal] of UNDECODABLE) {
219
+ const document = new Map([["stamp", value]]);
220
+ it(`writes nothing for a ${label} on a generated column of an update`, () => {
221
+ (0, chai_1.expect)(Split(document, "update")?.assignments).to.deep.equal([]);
222
+ });
223
+ it(`writes nothing for a ${label} on a generated column of a replace`, () => {
224
+ (0, chai_1.expect)(Split(document, "replace")?.assignments).to.deep.equal([]);
225
+ });
226
+ it(`refuses a ${label} on a generated column of an insert`, () => {
227
+ (0, chai_1.expect)(() => Split(document, "insert")).to.throw(/stamp/);
228
+ });
229
+ it(`refuses a ${label} when something does decode it`, () => {
230
+ (0, chai_1.expect)(() => (0, value_1.DecodeValue)((0, member_1.ClassifyMember)(value), new context_1.DecodingContext((0, spec_fixture_1.RefusingCompilers)()))).to.throw(refusal);
231
+ });
232
+ }
233
+ });
234
+ //# sourceMappingURL=member.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member.spec.js","sourceRoot":"","sources":["../../../src/test/unit/member.spec.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const member_1 = require("../../implementations/database/member");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
3
8
  const chai_1 = require("chai");
4
9
  const interface_database_1 = require("@antelopejs/interface-database");
10
+ const guards_1 = require("../../implementations/database/guards");
5
11
  const context_1 = require("../../implementations/database/context");
6
12
  const expression_1 = require("../../implementations/database/expression");
7
13
  const spec_fixture_1 = require("./spec-fixture");
@@ -30,10 +36,11 @@ function NewContext() {
30
36
  expression: expression_1.CompileExpression,
31
37
  });
32
38
  }
33
- function Split(document, options = TARGETED) {
39
+ function Split(member, options = TARGETED) {
34
40
  const context = NewContext();
41
+ (0, node_assert_1.default)(member.document, "the literal is a document");
35
42
  return {
36
- split: (0, payload_1.SplitPayload)(document, vehicles, context, options),
43
+ split: (0, payload_1.SplitPayload)(member.document, vehicles, context, options),
37
44
  context,
38
45
  };
39
46
  }
@@ -53,19 +60,19 @@ function ReadParamLedger(applied) {
53
60
  }
54
61
  describe("SplitPayload over declared fields", () => {
55
62
  it("binds a number as a bare parameter, with no coercion wrapper", () => {
56
- const applied = Split({ price: 3000 });
63
+ const applied = Split((0, member_1.ClassifyMember)({ price: 3000 }));
57
64
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price"]);
58
65
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal(["($1::double precision)"]);
59
66
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([3000]);
60
67
  });
61
68
  it("reads a text value as the column's type rather than casting it", () => {
62
- const applied = Split({ price: "3000" });
69
+ const applied = Split((0, member_1.ClassifyMember)({ price: "3000" }));
63
70
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal([AsNumber("$1")]);
64
71
  (0, chai_1.expect)(Fragments(applied)[0]).to.not.equal("(($1::text)::double precision)");
65
72
  });
66
73
  it("reads an expression's result as the column's type, not as the type it produced", () => {
67
74
  const concatenated = "(($1::text) || ($2::text))";
68
- const applied = Split({ price: interface_database_1.ValueProxy.constant("30").concat("00") });
75
+ const applied = Split((0, member_1.ClassifyMember)({ price: interface_database_1.ValueProxy.constant("30").concat("00") }));
69
76
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price"]);
70
77
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal([
71
78
  `(CASE WHEN ${concatenated} ~ ${NUMERIC_TEXT_PATTERN}` +
@@ -74,7 +81,7 @@ describe("SplitPayload over declared fields", () => {
74
81
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal(["30", "00"]);
75
82
  });
76
83
  it("writes a null as a stored value rather than as a removal", () => {
77
- const applied = Split({ car: null, price: undefined });
84
+ const applied = Split((0, member_1.ClassifyMember)({ car: null, price: undefined }));
78
85
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["car"]);
79
86
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal([
80
87
  "(CASE WHEN jsonb_typeof('null'::jsonb) = 'string'" +
@@ -85,31 +92,29 @@ describe("SplitPayload over declared fields", () => {
85
92
  });
86
93
  it("binds a date as a timestamptz rather than as a json string", () => {
87
94
  const manufactured = new Date("2023-01-15T00:00:00.000Z");
88
- const applied = Split({ manufactured });
95
+ const applied = Split((0, member_1.ClassifyMember)({ manufactured }));
89
96
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal(["($1::timestamptz)"]);
90
97
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([manufactured]);
91
98
  });
92
99
  it("writes a boolean without a guard or a second cast", () => {
93
- (0, chai_1.expect)(Fragments(Split({ isElectric: true }))).to.deep.equal([
94
- "($1::boolean)",
95
- ]);
100
+ (0, chai_1.expect)(Fragments(Split((0, member_1.ClassifyMember)({ isElectric: true })))).to.deep.equal(["($1::boolean)"]);
96
101
  });
97
102
  it("refuses a text value for a boolean column, naming the field and both types", () => {
98
- (0, chai_1.expect)(() => Split({ isElectric: "false" })).to.throw(/'isElectric'.*boolean.*received text/);
103
+ (0, chai_1.expect)(() => Split((0, member_1.ClassifyMember)({ isElectric: "false" }))).to.throw(/'isElectric'.*boolean.*received text/);
99
104
  });
100
105
  it("refuses every other scalar reading rather than rewriting it as truthiness", () => {
101
106
  for (const value of [1, 0, new Date(0), interface_database_1.ValueProxy.constant("no")]) {
102
- (0, chai_1.expect)(() => Split({ isElectric: value })).to.throw(/'isElectric'/);
107
+ (0, chai_1.expect)(() => Split((0, member_1.ClassifyMember)({ isElectric: value }))).to.throw(/'isElectric'/);
103
108
  }
104
109
  });
105
110
  it("reads a json value against a boolean column under the typeof guard", () => {
106
- (0, chai_1.expect)(Fragments(Split({ isElectric: null }))).to.deep.equal([
111
+ (0, chai_1.expect)(Fragments(Split((0, member_1.ClassifyMember)({ isElectric: null })))).to.deep.equal([
107
112
  "(CASE WHEN jsonb_typeof('null'::jsonb) = 'boolean'" +
108
113
  " THEN (('null'::jsonb #>> '{}')::boolean) END)",
109
114
  ]);
110
115
  });
111
116
  it("keeps a nested object as one jsonb document, nulls and all", () => {
112
- const applied = Split({ metadata: { level: 3, note: null } });
117
+ const applied = Split((0, member_1.ClassifyMember)({ metadata: { level: 3, note: null } }));
113
118
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal([
114
119
  "jsonb_build_object('level', to_jsonb(($1::double precision))," +
115
120
  " 'note', 'null'::jsonb)",
@@ -117,28 +122,26 @@ describe("SplitPayload over declared fields", () => {
117
122
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([3]);
118
123
  });
119
124
  it("clears a declared jsonb column rather than storing a json null in it", () => {
120
- const applied = Split({ metadata: null });
125
+ const applied = Split((0, member_1.ClassifyMember)({ metadata: null }));
121
126
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["metadata"]);
122
127
  (0, chai_1.expect)(Fragments(applied)).to.deep.equal(["NULL"]);
123
128
  (0, chai_1.expect)(applied.split.cleared).to.deep.equal([]);
124
129
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([]);
125
130
  });
126
131
  it("names the column rather than the field", () => {
127
- (0, chai_1.expect)(Columns(Split({ aVeryLongFieldName: "x" }))).to.deep.equal([
128
- "truncated",
129
- ]);
132
+ (0, chai_1.expect)(Columns(Split((0, member_1.ClassifyMember)({ aVeryLongFieldName: "x" })))).to.deep.equal(["truncated"]);
130
133
  });
131
134
  it("clears a declared field the payload set to undefined", () => {
132
- const applied = Split({ car: undefined });
135
+ const applied = Split((0, member_1.ClassifyMember)({ car: undefined }));
133
136
  (0, chai_1.expect)(applied.split.cleared).to.deep.equal(["car"]);
134
137
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
135
138
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([]);
136
139
  });
137
140
  it("clears by column name, not by field name", () => {
138
- (0, chai_1.expect)(Split({ aVeryLongFieldName: undefined }).split.cleared).to.deep.equal(["truncated"]);
141
+ (0, chai_1.expect)(Split((0, member_1.ClassifyMember)({ aVeryLongFieldName: undefined })).split.cleared).to.deep.equal(["truncated"]);
139
142
  });
140
143
  it("walks the payload's keys once, in insertion order", () => {
141
- const applied = Split({ price: 1, car: "a", isElectric: undefined });
144
+ const applied = Split((0, member_1.ClassifyMember)({ price: 1, car: "a", isElectric: undefined }));
142
145
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price", "car"]);
143
146
  (0, chai_1.expect)(applied.split.cleared).to.deep.equal(["isElectric"]);
144
147
  (0, chai_1.expect)(applied.split.removed).to.deep.equal([]);
@@ -147,115 +150,117 @@ describe("SplitPayload over declared fields", () => {
147
150
  });
148
151
  describe("SplitPayload over undeclared keys", () => {
149
152
  it("collects a supplied key into one jsonb object", () => {
150
- const applied = Split({ productIds: ["a"] });
153
+ const applied = Split((0, member_1.ClassifyMember)({ productIds: ["a"] }));
151
154
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
152
155
  (0, chai_1.expect)(applied.split.extra?.sql).to.equal("jsonb_build_object('productIds', ($1::jsonb))");
153
156
  });
154
157
  it("subtracts a key the payload set to undefined", () => {
155
- const applied = Split({ productIds: undefined });
158
+ const applied = Split((0, member_1.ClassifyMember)({ productIds: undefined }));
156
159
  (0, chai_1.expect)(applied.split.removed).to.deep.equal(["productIds"]);
157
160
  (0, chai_1.expect)(applied.split.extra).to.equal(undefined);
158
161
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([]);
159
162
  });
160
163
  it("carries an addition and a removal side by side", () => {
161
- const applied = Split({ tags: ["x"], productIds: undefined });
164
+ const applied = Split((0, member_1.ClassifyMember)({ tags: ["x"], productIds: undefined }));
162
165
  (0, chai_1.expect)(applied.split.removed).to.deep.equal(["productIds"]);
163
166
  (0, chai_1.expect)(applied.split.extra?.sql).to.contain("'tags'");
164
167
  });
165
168
  it("compiles no overflow object when there is nothing to add", () => {
166
- const applied = Split({ price: 1, productIds: undefined });
169
+ const applied = Split((0, member_1.ClassifyMember)({ price: 1, productIds: undefined }));
167
170
  (0, chai_1.expect)(applied.split.extra).to.equal(undefined);
168
171
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([1]);
169
172
  });
170
173
  it("splits declared and undeclared keys of one payload", () => {
171
- const applied = Split({ productIds: ["a"], price: 1 });
174
+ const applied = Split((0, member_1.ClassifyMember)({ productIds: ["a"], price: 1 }));
172
175
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price"]);
173
176
  (0, chai_1.expect)(applied.split.extra?.sql).to.contain("'productIds'");
174
177
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([1, '["a"]']);
175
178
  });
176
179
  it("does not resolve a key inherited from Object.prototype", () => {
177
- const applied = Split({ constructor: 1 });
180
+ const applied = Split((0, member_1.ClassifyMember)({ constructor: 1 }));
178
181
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
179
182
  (0, chai_1.expect)(applied.split.extra?.sql).to.equal("jsonb_build_object('constructor', to_jsonb(($1::double precision)))");
180
183
  });
181
184
  it("subtracts an inherited key rather than clearing a column", () => {
182
- const applied = Split({ constructor: undefined });
185
+ const applied = Split((0, member_1.ClassifyMember)({ constructor: undefined }));
183
186
  (0, chai_1.expect)(applied.split.removed).to.deep.equal(["constructor"]);
184
187
  (0, chai_1.expect)(applied.split.cleared).to.deep.equal([]);
185
188
  });
186
189
  it("keeps an own __proto__ key as a member rather than as a prototype", () => {
187
- const applied = Split(JSON.parse('{"__proto__": 1}'));
190
+ const document = JSON.parse('{"__proto__": 1}');
191
+ (0, node_assert_1.default)((0, guards_1.IsDocument)(document), "the literal parses to a document");
192
+ const applied = Split((0, member_1.ClassifyMember)(document));
188
193
  (0, chai_1.expect)(applied.split.extra?.sql).to.equal("jsonb_build_object('__proto__', to_jsonb(($1::double precision)))");
189
194
  });
190
195
  });
191
196
  describe("SplitPayload over the reserved columns", () => {
192
197
  it("drops the instance column, which restates where the row already is", () => {
193
- const applied = Split({ _instance: "x", price: 1 });
198
+ const applied = Split((0, member_1.ClassifyMember)({ _instance: "x", price: 1 }));
194
199
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price"]);
195
200
  (0, chai_1.expect)(applied.split.identity).to.equal(undefined);
196
201
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([1]);
197
202
  });
198
203
  it("refuses the overflow column by name", () => {
199
- (0, chai_1.expect)(() => Split({ _extra: {} })).to.throw("Payload key '_extra' is a column this adapter owns and no payload may write it");
204
+ (0, chai_1.expect)(() => Split((0, member_1.ClassifyMember)({ _extra: {} }))).to.throw("Payload key '_extra' is a column this adapter owns and no payload may write it");
200
205
  });
201
206
  it("takes the key column as an assertion where the stage targets rows by identity", () => {
202
- const applied = Split({ _id: "k", price: 1 });
207
+ const applied = Split((0, member_1.ClassifyMember)({ _id: "k", price: 1 }));
203
208
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price"]);
204
209
  (0, chai_1.expect)(applied.split.identity?.sql).to.equal("($1::text)");
205
210
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal(["k", 1]);
206
211
  });
207
212
  it("reads the asserted key as text, the way a key is read everywhere else", () => {
208
- (0, chai_1.expect)(Split({ _id: 1 }).split.identity?.sql).to.equal("((($1::double precision))::text)");
213
+ (0, chai_1.expect)(Split((0, member_1.ClassifyMember)({ _id: 1 })).split.identity?.sql).to.equal("((($1::double precision))::text)");
209
214
  });
210
215
  it("asserts nothing for a key column the payload only names", () => {
211
- const applied = Split({ _id: undefined });
216
+ const applied = Split((0, member_1.ClassifyMember)({ _id: undefined }));
212
217
  (0, chai_1.expect)(applied.split.identity).to.equal(undefined);
213
218
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
214
219
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([]);
215
220
  });
216
221
  it("asserts nothing for a key column the payload set to null", () => {
217
- const applied = Split({ _id: null, price: 1 });
222
+ const applied = Split((0, member_1.ClassifyMember)({ _id: null, price: 1 }));
218
223
  (0, chai_1.expect)(applied.split.identity).to.equal(undefined);
219
224
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["price"]);
220
225
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([1]);
221
226
  });
222
227
  it("refuses the overflow column the payload only names", () => {
223
- (0, chai_1.expect)(() => Split({ _extra: undefined })).to.throw("Payload key '_extra'");
228
+ (0, chai_1.expect)(() => Split((0, member_1.ClassifyMember)({ _extra: undefined }))).to.throw("Payload key '_extra'");
224
229
  });
225
230
  it("drops the instance column the payload only names", () => {
226
- const applied = Split({ _instance: undefined });
231
+ const applied = Split((0, member_1.ClassifyMember)({ _instance: undefined }));
227
232
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
228
233
  (0, chai_1.expect)(applied.split.removed).to.deep.equal([]);
229
234
  });
230
235
  it("takes the key column as a member when the stage is keyed by it", () => {
231
- const applied = Split({ _id: "k", price: 1 }, INSERTED);
236
+ const applied = Split((0, member_1.ClassifyMember)({ _id: "k", price: 1 }), INSERTED);
232
237
  (0, chai_1.expect)(Columns(applied)).to.deep.equal(["_id", "price"]);
233
238
  (0, chai_1.expect)(Fragments(applied)[0]).to.equal("($1::text)");
234
239
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal(["k", 1]);
235
240
  });
236
241
  it("still refuses the overflow column when the stage is keyed", () => {
237
- (0, chai_1.expect)(() => Split({ _extra: {} }, INSERTED)).to.throw("Payload key '_extra'");
242
+ (0, chai_1.expect)(() => Split((0, member_1.ClassifyMember)({ _extra: {} }), INSERTED)).to.throw("Payload key '_extra'");
238
243
  });
239
244
  it("drops the instance column under the keyed stage too", () => {
240
- const applied = Split({ _instance: "x" }, INSERTED);
245
+ const applied = Split((0, member_1.ClassifyMember)({ _instance: "x" }), INSERTED);
241
246
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
242
247
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([]);
243
248
  });
244
249
  it("takes no key from a payload that only names it", () => {
245
- const applied = Split({ _id: undefined }, INSERTED);
250
+ const applied = Split((0, member_1.ClassifyMember)({ _id: undefined }), INSERTED);
246
251
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
247
252
  (0, chai_1.expect)(applied.split.cleared).to.deep.equal([]);
248
253
  (0, chai_1.expect)(applied.split.removed).to.deep.equal([]);
249
254
  });
250
255
  it("takes no key from a payload that set it to null", () => {
251
- const applied = Split({ _id: null }, INSERTED);
256
+ const applied = Split((0, member_1.ClassifyMember)({ _id: null }), INSERTED);
252
257
  (0, chai_1.expect)(applied.split.members).to.deep.equal([]);
253
258
  (0, chai_1.expect)(applied.split.cleared).to.deep.equal([]);
254
259
  (0, chai_1.expect)(applied.split.removed).to.deep.equal([]);
255
260
  (0, chai_1.expect)(applied.context.params.all()).to.deep.equal([]);
256
261
  });
257
262
  it("keeps a null under an undeclared key while dropping one under the key column", () => {
258
- const applied = Split({ _id: null, tags: null }, INSERTED);
263
+ const applied = Split((0, member_1.ClassifyMember)({ _id: null, tags: null }), INSERTED);
259
264
  (0, chai_1.expect)(applied.split.extra?.sql).to.equal("jsonb_build_object('tags', 'null'::jsonb)");
260
265
  (0, chai_1.expect)(applied.split.removed).to.deep.equal([]);
261
266
  });
@@ -263,11 +268,11 @@ describe("SplitPayload over the reserved columns", () => {
263
268
  describe("SplitPayload's parameter ledger", () => {
264
269
  it("references every parameter it binds, and binds every one it references", () => {
265
270
  const splits = [
266
- Split({ price: 3000, car: "a", metadata: { level: 1 } }),
267
- Split({ price: undefined, productIds: undefined }),
268
- Split({ productIds: ["a", "b"], price: "3000" }),
269
- Split({ _id: "k", tags: ["x"] }, INSERTED),
270
- Split({ _id: "k", price: 1, tags: ["x"] }),
271
+ Split((0, member_1.ClassifyMember)({ price: 3000, car: "a", metadata: { level: 1 } })),
272
+ Split((0, member_1.ClassifyMember)({ price: undefined, productIds: undefined })),
273
+ Split((0, member_1.ClassifyMember)({ productIds: ["a", "b"], price: "3000" })),
274
+ Split((0, member_1.ClassifyMember)({ _id: "k", tags: ["x"] }), INSERTED),
275
+ Split((0, member_1.ClassifyMember)({ _id: "k", price: 1, tags: ["x"] })),
271
276
  ];
272
277
  for (const applied of splits) {
273
278
  const ledger = ReadParamLedger(applied);
@@ -1 +1 @@
1
- {"version":3,"file":"payload.spec.js","sourceRoot":"","sources":["../../../src/test/unit/payload.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload.spec.js","sourceRoot":"","sources":["../../../src/test/unit/payload.spec.ts"],"names":[],"mappings":"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"}