@antelopejs/postgres 0.2.1 → 0.2.3

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 (284) hide show
  1. package/README.md +6 -5
  2. package/dist/config.d.ts +1 -0
  3. package/dist/config.js +7 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/connect-failure.d.ts +1 -0
  6. package/dist/connect-failure.js +39 -0
  7. package/dist/connect-failure.js.map +1 -0
  8. package/dist/connection.d.ts +2 -1
  9. package/dist/connection.js +19 -2
  10. package/dist/connection.js.map +1 -1
  11. package/dist/implementations/catalog/index.js +3 -6
  12. package/dist/implementations/catalog/index.js.map +1 -1
  13. package/dist/implementations/database/coerce.js +20 -20
  14. package/dist/implementations/database/coerce.js.map +1 -1
  15. package/dist/implementations/database/context.d.ts +1 -0
  16. package/dist/implementations/database/context.js +4 -0
  17. package/dist/implementations/database/context.js.map +1 -1
  18. package/dist/implementations/database/convergence.d.ts +22 -0
  19. package/dist/implementations/database/convergence.js +183 -0
  20. package/dist/implementations/database/convergence.js.map +1 -0
  21. package/dist/implementations/database/cursors.js +3 -0
  22. package/dist/implementations/database/cursors.js.map +1 -1
  23. package/dist/implementations/database/ddl.d.ts +6 -26
  24. package/dist/implementations/database/ddl.js +28 -195
  25. package/dist/implementations/database/ddl.js.map +1 -1
  26. package/dist/implementations/database/duplicate-key.d.ts +2 -0
  27. package/dist/implementations/database/duplicate-key.js +49 -0
  28. package/dist/implementations/database/duplicate-key.js.map +1 -0
  29. package/dist/implementations/database/external-column-profile.js +6 -1
  30. package/dist/implementations/database/external-column-profile.js.map +1 -1
  31. package/dist/implementations/database/external-discovery.js +5 -5
  32. package/dist/implementations/database/external-discovery.js.map +1 -1
  33. package/dist/implementations/database/external-measures.js.map +1 -1
  34. package/dist/implementations/database/external-payload.d.ts +2 -2
  35. package/dist/implementations/database/external-payload.js +23 -13
  36. package/dist/implementations/database/external-payload.js.map +1 -1
  37. package/dist/implementations/database/external-schema.d.ts +2 -2
  38. package/dist/implementations/database/external-schema.js +3 -3
  39. package/dist/implementations/database/external-schema.js.map +1 -1
  40. package/dist/implementations/database/external-types.js +23 -16
  41. package/dist/implementations/database/external-types.js.map +1 -1
  42. package/dist/implementations/database/external-writes.d.ts +7 -1
  43. package/dist/implementations/database/external-writes.js +22 -21
  44. package/dist/implementations/database/external-writes.js.map +1 -1
  45. package/dist/implementations/database/feed-pipeline.js +3 -2
  46. package/dist/implementations/database/feed-pipeline.js.map +1 -1
  47. package/dist/implementations/database/feeds.d.ts +1 -1
  48. package/dist/implementations/database/feeds.js +36 -45
  49. package/dist/implementations/database/feeds.js.map +1 -1
  50. package/dist/implementations/database/fields.d.ts +9 -13
  51. package/dist/implementations/database/fields.js +25 -21
  52. package/dist/implementations/database/fields.js.map +1 -1
  53. package/dist/implementations/database/guards.d.ts +5 -0
  54. package/dist/implementations/database/guards.js +23 -0
  55. package/dist/implementations/database/guards.js.map +1 -0
  56. package/dist/implementations/database/introspect.d.ts +1 -1
  57. package/dist/implementations/database/listener.js +9 -3
  58. package/dist/implementations/database/listener.js.map +1 -1
  59. package/dist/implementations/database/migrate.d.ts +2 -2
  60. package/dist/implementations/database/migrate.js +10 -10
  61. package/dist/implementations/database/migrate.js.map +1 -1
  62. package/dist/implementations/database/payload.d.ts +3 -3
  63. package/dist/implementations/database/payload.js +4 -4
  64. package/dist/implementations/database/pipeline.d.ts +6 -2
  65. package/dist/implementations/database/pipeline.js +4 -1
  66. package/dist/implementations/database/pipeline.js.map +1 -1
  67. package/dist/implementations/database/query.js +27 -12
  68. package/dist/implementations/database/query.js.map +1 -1
  69. package/dist/implementations/database/reaper.js +6 -4
  70. package/dist/implementations/database/reaper.js.map +1 -1
  71. package/dist/implementations/database/relation.d.ts +2 -12
  72. package/dist/implementations/database/relation.js +5 -141
  73. package/dist/implementations/database/relation.js.map +1 -1
  74. package/dist/implementations/database/render.d.ts +11 -0
  75. package/dist/implementations/database/render.js +147 -0
  76. package/dist/implementations/database/render.js.map +1 -0
  77. package/dist/implementations/database/result.d.ts +2 -2
  78. package/dist/implementations/database/result.js +18 -19
  79. package/dist/implementations/database/result.js.map +1 -1
  80. package/dist/implementations/database/row-source.d.ts +10 -10
  81. package/dist/implementations/database/row-source.js +22 -19
  82. package/dist/implementations/database/row-source.js.map +1 -1
  83. package/dist/implementations/database/schema.d.ts +3 -2
  84. package/dist/implementations/database/schema.js +35 -19
  85. package/dist/implementations/database/schema.js.map +1 -1
  86. package/dist/implementations/database/selection.js +13 -7
  87. package/dist/implementations/database/selection.js.map +1 -1
  88. package/dist/implementations/database/sql.d.ts +7 -3
  89. package/dist/implementations/database/sql.js.map +1 -1
  90. package/dist/implementations/database/stage.js +3 -2
  91. package/dist/implementations/database/stage.js.map +1 -1
  92. package/dist/implementations/database/stages-aggregate.js +7 -5
  93. package/dist/implementations/database/stages-aggregate.js.map +1 -1
  94. package/dist/implementations/database/stages-array.js.map +1 -1
  95. package/dist/implementations/database/stages-core.js +2 -1
  96. package/dist/implementations/database/stages-core.js.map +1 -1
  97. package/dist/implementations/database/stages-date.js +2 -1
  98. package/dist/implementations/database/stages-date.js.map +1 -1
  99. package/dist/implementations/database/stages-group.js +11 -6
  100. package/dist/implementations/database/stages-group.js.map +1 -1
  101. package/dist/implementations/database/stages-join.js +13 -11
  102. package/dist/implementations/database/stages-join.js.map +1 -1
  103. package/dist/implementations/database/stages-numeric.js.map +1 -1
  104. package/dist/implementations/database/stages-object.js +1 -1
  105. package/dist/implementations/database/stages-object.js.map +1 -1
  106. package/dist/implementations/database/stages-projection.js +9 -8
  107. package/dist/implementations/database/stages-projection.js.map +1 -1
  108. package/dist/implementations/database/stages-rows.js +10 -8
  109. package/dist/implementations/database/stages-rows.js.map +1 -1
  110. package/dist/implementations/database/stages-selection.js +6 -4
  111. package/dist/implementations/database/stages-selection.js.map +1 -1
  112. package/dist/implementations/database/stages-string.js +7 -6
  113. package/dist/implementations/database/stages-string.js.map +1 -1
  114. package/dist/implementations/database/subquery.d.ts +1 -1
  115. package/dist/implementations/database/subquery.js +7 -5
  116. package/dist/implementations/database/subquery.js.map +1 -1
  117. package/dist/implementations/database/types.d.ts +5 -5
  118. package/dist/implementations/database/types.js +11 -11
  119. package/dist/implementations/database/types.js.map +1 -1
  120. package/dist/implementations/database/utils.js +2 -1
  121. package/dist/implementations/database/utils.js.map +1 -1
  122. package/dist/implementations/database/value.d.ts +1 -1
  123. package/dist/implementations/database/value.js +34 -33
  124. package/dist/implementations/database/value.js.map +1 -1
  125. package/dist/implementations/database/writes-atomic.js +6 -5
  126. package/dist/implementations/database/writes-atomic.js.map +1 -1
  127. package/dist/implementations/database/writes-identity.js +18 -19
  128. package/dist/implementations/database/writes-identity.js.map +1 -1
  129. package/dist/implementations/database/writes-insert.js +16 -22
  130. package/dist/implementations/database/writes-insert.js.map +1 -1
  131. package/dist/implementations/database/writes-shared.d.ts +1 -1
  132. package/dist/implementations/database/writes-shared.js +11 -7
  133. package/dist/implementations/database/writes-shared.js.map +1 -1
  134. package/dist/implementations/database/writes.d.ts +22 -1
  135. package/dist/implementations/database/writes.js +6 -3
  136. package/dist/implementations/database/writes.js.map +1 -1
  137. package/dist/test/catalog-owned.test.js +2 -0
  138. package/dist/test/catalog-owned.test.js.map +1 -1
  139. package/dist/test/contention.test.js.map +1 -1
  140. package/dist/test/duplicate-key.test.d.ts +1 -0
  141. package/dist/test/duplicate-key.test.js +103 -0
  142. package/dist/test/duplicate-key.test.js.map +1 -0
  143. package/dist/test/indexes.test.js +7 -7
  144. package/dist/test/indexes.test.js.map +1 -1
  145. package/dist/test/unit/coerce.spec.js +7 -7
  146. package/dist/test/unit/coerce.spec.js.map +1 -1
  147. package/dist/test/unit/config.spec.js +3 -1
  148. package/dist/test/unit/config.spec.js.map +1 -1
  149. package/dist/test/unit/connect-failure.spec.d.ts +1 -0
  150. package/dist/test/unit/connect-failure.spec.js +50 -0
  151. package/dist/test/unit/connect-failure.spec.js.map +1 -0
  152. package/dist/test/unit/connection.spec.js +16 -18
  153. package/dist/test/unit/connection.spec.js.map +1 -1
  154. package/dist/test/unit/convergence.spec.d.ts +1 -0
  155. package/dist/test/unit/convergence.spec.js +347 -0
  156. package/dist/test/unit/convergence.spec.js.map +1 -0
  157. package/dist/test/unit/cursors-fixture.d.ts +79 -0
  158. package/dist/test/unit/cursors-fixture.js +245 -0
  159. package/dist/test/unit/cursors-fixture.js.map +1 -0
  160. package/dist/test/unit/cursors.spec.js +138 -718
  161. package/dist/test/unit/cursors.spec.js.map +1 -1
  162. package/dist/test/unit/cursors.teardown.spec.d.ts +1 -0
  163. package/dist/test/unit/cursors.teardown.spec.js +322 -0
  164. package/dist/test/unit/cursors.teardown.spec.js.map +1 -0
  165. package/dist/test/unit/cursors.window.spec.d.ts +1 -0
  166. package/dist/test/unit/cursors.window.spec.js +78 -0
  167. package/dist/test/unit/cursors.window.spec.js.map +1 -0
  168. package/dist/test/unit/ddl-fixture.d.ts +5 -0
  169. package/dist/test/unit/ddl-fixture.js +19 -0
  170. package/dist/test/unit/ddl-fixture.js.map +1 -0
  171. package/dist/test/unit/ddl.spec.js +64 -366
  172. package/dist/test/unit/ddl.spec.js.map +1 -1
  173. package/dist/test/unit/expression-array-fixture.d.ts +17 -0
  174. package/dist/test/unit/expression-array-fixture.js +63 -0
  175. package/dist/test/unit/expression-array-fixture.js.map +1 -0
  176. package/dist/test/unit/expression-array-walk.spec.d.ts +1 -0
  177. package/dist/test/unit/expression-array-walk.spec.js +235 -0
  178. package/dist/test/unit/expression-array-walk.spec.js.map +1 -0
  179. package/dist/test/unit/expression-array.spec.js +48 -322
  180. package/dist/test/unit/expression-array.spec.js.map +1 -1
  181. package/dist/test/unit/expression-date.spec.js +4 -3
  182. package/dist/test/unit/expression-date.spec.js.map +1 -1
  183. package/dist/test/unit/expression-fixture.d.ts +15 -0
  184. package/dist/test/unit/expression-fixture.js +40 -0
  185. package/dist/test/unit/expression-fixture.js.map +1 -0
  186. package/dist/test/unit/expression-numeric.spec.js +10 -8
  187. package/dist/test/unit/expression-numeric.spec.js.map +1 -1
  188. package/dist/test/unit/expression-object.spec.js +3 -4
  189. package/dist/test/unit/expression-object.spec.js.map +1 -1
  190. package/dist/test/unit/expression-predicate.spec.d.ts +1 -0
  191. package/dist/test/unit/expression-predicate.spec.js +231 -0
  192. package/dist/test/unit/expression-predicate.spec.js.map +1 -0
  193. package/dist/test/unit/expression-stages.spec.js +0 -5
  194. package/dist/test/unit/expression-stages.spec.js.map +1 -1
  195. package/dist/test/unit/expression-string.spec.js +2 -5
  196. package/dist/test/unit/expression-string.spec.js.map +1 -1
  197. package/dist/test/unit/expression.spec.js +44 -292
  198. package/dist/test/unit/expression.spec.js.map +1 -1
  199. package/dist/test/unit/external-comparisons.spec.js +5 -5
  200. package/dist/test/unit/external-comparisons.spec.js.map +1 -1
  201. package/dist/test/unit/external-types.spec.js +2 -3
  202. package/dist/test/unit/external-types.spec.js.map +1 -1
  203. package/dist/test/unit/feeds.spec.js +40 -23
  204. package/dist/test/unit/feeds.spec.js.map +1 -1
  205. package/dist/test/unit/fields.spec.js +15 -9
  206. package/dist/test/unit/fields.spec.js.map +1 -1
  207. package/dist/test/unit/invalid-fixture.d.ts +3 -0
  208. package/dist/test/unit/invalid-fixture.js +11 -0
  209. package/dist/test/unit/invalid-fixture.js.map +1 -0
  210. package/dist/test/unit/payload.spec.js.map +1 -1
  211. package/dist/test/unit/pipeline-aggregate.spec.js +14 -14
  212. package/dist/test/unit/pipeline-aggregate.spec.js.map +1 -1
  213. package/dist/test/unit/pipeline-fixture.d.ts +25 -6
  214. package/dist/test/unit/pipeline-fixture.js +21 -11
  215. package/dist/test/unit/pipeline-fixture.js.map +1 -1
  216. package/dist/test/unit/pipeline-group-fixture.d.ts +2 -0
  217. package/dist/test/unit/pipeline-group-fixture.js +6 -0
  218. package/dist/test/unit/pipeline-group-fixture.js.map +1 -0
  219. package/dist/test/unit/pipeline-group.spec.js +15 -248
  220. package/dist/test/unit/pipeline-group.spec.js.map +1 -1
  221. package/dist/test/unit/pipeline-lookup.spec.js +13 -10
  222. package/dist/test/unit/pipeline-lookup.spec.js.map +1 -1
  223. package/dist/test/unit/pipeline-projection.spec.js +12 -13
  224. package/dist/test/unit/pipeline-projection.spec.js.map +1 -1
  225. package/dist/test/unit/pipeline-rows.spec.js +21 -18
  226. package/dist/test/unit/pipeline-rows.spec.js.map +1 -1
  227. package/dist/test/unit/pipeline-selection.spec.js +6 -4
  228. package/dist/test/unit/pipeline-selection.spec.js.map +1 -1
  229. package/dist/test/unit/pipeline-stages.spec.js +23 -35
  230. package/dist/test/unit/pipeline-stages.spec.js.map +1 -1
  231. package/dist/test/unit/pipeline-substream.spec.d.ts +1 -0
  232. package/dist/test/unit/pipeline-substream.spec.js +246 -0
  233. package/dist/test/unit/pipeline-substream.spec.js.map +1 -0
  234. package/dist/test/unit/pipeline.spec.js +1 -1
  235. package/dist/test/unit/query.spec.js +6 -2
  236. package/dist/test/unit/query.spec.js.map +1 -1
  237. package/dist/test/unit/reaper.spec.js +4 -3
  238. package/dist/test/unit/reaper.spec.js.map +1 -1
  239. package/dist/test/unit/relation.spec.js +37 -36
  240. package/dist/test/unit/relation.spec.js.map +1 -1
  241. package/dist/test/unit/result.spec.js +13 -11
  242. package/dist/test/unit/result.spec.js.map +1 -1
  243. package/dist/test/unit/row-source.spec.js +1 -1
  244. package/dist/test/unit/row-source.spec.js.map +1 -1
  245. package/dist/test/unit/schema.spec.js +5 -2
  246. package/dist/test/unit/schema.spec.js.map +1 -1
  247. package/dist/test/unit/selection.spec.js +7 -3
  248. package/dist/test/unit/selection.spec.js.map +1 -1
  249. package/dist/test/unit/types.spec.js +6 -6
  250. package/dist/test/unit/types.spec.js.map +1 -1
  251. package/dist/test/unit/writes-atomic.spec.js +2 -2
  252. package/dist/test/unit/writes-atomic.spec.js.map +1 -1
  253. package/dist/test/unit/writes-insert.spec.js +5 -4
  254. package/dist/test/unit/writes-insert.spec.js.map +1 -1
  255. package/dist/test/unit/writes-replace.spec.js +6 -6
  256. package/dist/test/unit/writes-replace.spec.js.map +1 -1
  257. package/dist/test/unit/writes-target.spec.js +3 -3
  258. package/dist/test/unit/writes-target.spec.js.map +1 -1
  259. package/dist/test/unit/writes-update-fixture.d.ts +9 -0
  260. package/dist/test/unit/writes-update-fixture.js +20 -0
  261. package/dist/test/unit/writes-update-fixture.js.map +1 -0
  262. package/dist/test/unit/writes-update-mapper.spec.d.ts +1 -0
  263. package/dist/test/unit/writes-update-mapper.spec.js +123 -0
  264. package/dist/test/unit/writes-update-mapper.spec.js.map +1 -0
  265. package/dist/test/unit/writes-update.spec.js +42 -171
  266. package/dist/test/unit/writes-update.spec.js.map +1 -1
  267. package/dist/test-external/catalog.test.js +11 -1
  268. package/dist/test-external/catalog.test.js.map +1 -1
  269. package/dist/test-external/native.test.js +8 -6
  270. package/dist/test-external/native.test.js.map +1 -1
  271. package/dist/test-external/reads.test.js +20 -22
  272. package/dist/test-external/reads.test.js.map +1 -1
  273. package/dist/test-external/refusals.test.js +45 -24
  274. package/dist/test-external/refusals.test.js.map +1 -1
  275. package/dist/test-external/registration.test.js +4 -2
  276. package/dist/test-external/registration.test.js.map +1 -1
  277. package/dist/test-external/sales.d.ts +9 -2
  278. package/dist/test-external/sales.js.map +1 -1
  279. package/dist/test-external/unreachable.test.d.ts +1 -0
  280. package/dist/test-external/unreachable.test.js +83 -0
  281. package/dist/test-external/unreachable.test.js.map +1 -0
  282. package/dist/test-external/writes.test.js +71 -37
  283. package/dist/test-external/writes.test.js.map +1 -1
  284. package/package.json +19 -6
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NULL_JSON = void 0;
4
4
  exports.DecodeValue = DecodeValue;
5
5
  exports.IsPlainObject = IsPlainObject;
6
- exports.RecordedFunction = RecordedFunction;
6
+ exports.IsRecordedFunction = IsRecordedFunction;
7
7
  exports.FunctionBody = FunctionBody;
8
8
  exports.WithBoundArguments = WithBoundArguments;
9
9
  exports.DecodeFunction = DecodeFunction;
@@ -11,11 +11,7 @@ const interface_database_1 = require("@antelopejs/interface-database");
11
11
  const coerce_1 = require("./coerce");
12
12
  const sql_1 = require("./sql");
13
13
  const types_1 = require("./types");
14
- const PRIMITIVE_TYPES = {
15
- string: types_1.TEXT,
16
- number: types_1.FLOAT,
17
- boolean: types_1.BOOL,
18
- };
14
+ const guards_1 = require("./guards");
19
15
  exports.NULL_JSON = { sql: sql_1.JSON_NULL, type: types_1.OPAQUE };
20
16
  function DecodeValue(value, context) {
21
17
  if (value === undefined) {
@@ -39,20 +35,22 @@ function DecodeValue(value, context) {
39
35
  if (IsPlainObject(value)) {
40
36
  return DecodeObject(value, context);
41
37
  }
42
- return DecodePrimitive(value, context);
38
+ if ((0, guards_1.IsString)(value)) {
39
+ return (0, sql_1.Param)(context.params, value, types_1.TEXT);
40
+ }
41
+ if ((0, guards_1.IsNumber)(value)) {
42
+ return (0, sql_1.Param)(context.params, value, types_1.FLOAT);
43
+ }
44
+ if ((0, guards_1.IsBoolean)(value)) {
45
+ return (0, sql_1.Param)(context.params, value, types_1.BOOL);
46
+ }
47
+ throw new Error(`Unsupported value of type '${typeof value}' in query`);
43
48
  }
44
49
  function IsPlainObject(value) {
45
50
  return (typeof value === "object" &&
46
51
  value !== null &&
47
52
  Object.getPrototypeOf(value) === Object.prototype);
48
53
  }
49
- function DecodePrimitive(value, context) {
50
- const type = PRIMITIVE_TYPES[typeof value];
51
- if (!type) {
52
- throw new Error(`Unsupported value of type '${typeof value}' in query`);
53
- }
54
- return (0, sql_1.Param)(context.params, value, type);
55
- }
56
54
  function IsConstantJson(value) {
57
55
  if (value === null) {
58
56
  return true;
@@ -63,7 +61,7 @@ function IsConstantJson(value) {
63
61
  if (IsPlainObject(value)) {
64
62
  return Object.values(value).every((item) => item === undefined || IsConstantJson(item));
65
63
  }
66
- return Object.hasOwn(PRIMITIVE_TYPES, typeof value);
64
+ return (0, guards_1.IsString)(value) || (0, guards_1.IsNumber)(value) || (0, guards_1.IsBoolean)(value);
67
65
  }
68
66
  function ConstantType(value) {
69
67
  if (value === null) {
@@ -72,16 +70,22 @@ function ConstantType(value) {
72
70
  if (Array.isArray(value)) {
73
71
  return (0, types_1.ArrayOf)((0, coerce_1.UnifyAll)(value.map(ConstantType)));
74
72
  }
75
- if (IsPlainObject(value)) {
76
- const shape = {};
77
- for (const [name, item] of Object.entries(value)) {
78
- if (item !== undefined) {
79
- shape[name] = ConstantType(item);
80
- }
73
+ if ((0, guards_1.IsString)(value)) {
74
+ return types_1.TEXT;
75
+ }
76
+ if ((0, guards_1.IsNumber)(value)) {
77
+ return types_1.FLOAT;
78
+ }
79
+ if ((0, guards_1.IsBoolean)(value)) {
80
+ return types_1.BOOL;
81
+ }
82
+ const keyTypes = {};
83
+ for (const [name, item] of Object.entries(value)) {
84
+ if (item !== undefined) {
85
+ keyTypes[name] = ConstantType(item);
81
86
  }
82
- return (0, types_1.JsonOf)(shape);
83
87
  }
84
- return PRIMITIVE_TYPES[typeof value];
88
+ return (0, types_1.JsonOf)(keyTypes);
85
89
  }
86
90
  function DecodeArray(values, context) {
87
91
  if (values.every(IsConstantJson)) {
@@ -95,36 +99,33 @@ function DecodeArray(values, context) {
95
99
  }
96
100
  function DecodeObject(value, context) {
97
101
  const parts = [];
98
- const shape = {};
102
+ const keyTypes = {};
99
103
  for (const [name, item] of Object.entries(value)) {
100
104
  const compiled = DecodeValue(item, context);
101
105
  if (!compiled) {
102
106
  continue;
103
107
  }
104
108
  parts.push((0, sql_1.QuoteLiteral)(name), (0, coerce_1.Cast)(compiled, types_1.OPAQUE).sql);
105
- shape[name] = compiled.type;
109
+ keyTypes[name] = compiled.type;
106
110
  }
107
111
  return {
108
112
  sql: `jsonb_build_object(${parts.join(", ")})`,
109
- type: (0, types_1.JsonOf)(shape),
113
+ type: (0, types_1.JsonOf)(keyTypes),
110
114
  };
111
115
  }
112
116
  const FUNCTION_STAGE = "func";
113
117
  const PARAMETER_IDS = 0;
114
118
  const FUNCTION_BODY = 1;
115
- function RecordedFunction(value) {
119
+ function IsRecordedFunction(value) {
116
120
  if (!IsPlainObject(value) || value.stage !== FUNCTION_STAGE) {
117
- return undefined;
121
+ return false;
118
122
  }
119
123
  const args = value.args;
120
124
  if (!Array.isArray(args)) {
121
- return undefined;
125
+ return false;
122
126
  }
123
127
  const ids = args[PARAMETER_IDS];
124
- if (!Array.isArray(ids) || ids.some((id) => typeof id !== "number")) {
125
- return undefined;
126
- }
127
- return value;
128
+ return Array.isArray(ids) && ids.every(guards_1.IsNumber);
128
129
  }
129
130
  function FunctionBody(func) {
130
131
  return func.args[FUNCTION_BODY];
@@ -1 +1 @@
1
- {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/implementations/database/value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/implementations/database/value.ts"],"names":[],"mappings":"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"}
@@ -16,20 +16,21 @@ const sql_1 = require("./sql");
16
16
  const payload_1 = require("./payload");
17
17
  const utils_1 = require("./utils");
18
18
  const writes_shared_1 = require("./writes-shared");
19
+ const guards_1 = require("./guards");
19
20
  exports.ATOMIC_MUTATION = "atomicMutation";
20
21
  const ATOMIC_ARGUMENT_COUNT = 2;
21
22
  function RevisionPredicate(target, request, context) {
22
23
  const { revisionField, expectedRevision } = request;
23
- const declared = Object.hasOwn(target.origin.shape.fields, revisionField)
24
- ? target.origin.shape.fields[revisionField]
24
+ const declared = Object.hasOwn(target.origin.model.fields, revisionField)
25
+ ? target.origin.model.fields[revisionField]
25
26
  : undefined;
26
27
  if (declared) {
27
- (0, node_assert_1.default)(typeof expectedRevision === "string", "Missing revision bootstrap is unsupported for declared PostgreSQL columns: absent and null share SQL NULL");
28
+ (0, node_assert_1.default)((0, guards_1.IsString)(expectedRevision), "Missing revision bootstrap is unsupported for declared PostgreSQL columns: absent and null share SQL NULL");
28
29
  (0, node_assert_1.default)(declared.type.kind === "text", "A declared revision field must be text");
29
30
  return `${(0, sql_1.QualifiedColumn)(writes_shared_1.WRITE_ALIAS, declared.column)} = ${(0, sql_1.Param)(context.params, expectedRevision, types_1.TEXT).sql}`;
30
31
  }
31
32
  const extra = (0, sql_1.QualifiedColumn)(writes_shared_1.WRITE_ALIAS, utils_1.EXTRA_COLUMN);
32
- if (typeof expectedRevision !== "string") {
33
+ if (!(0, guards_1.IsString)(expectedRevision)) {
33
34
  return `NOT (${extra} ? ${(0, sql_1.Param)(context.params, revisionField, types_1.TEXT).sql})`;
34
35
  }
35
36
  return `${(0, sql_1.JsonKey)(extra, revisionField)} = ${(0, sql_1.Param)(context.params, expectedRevision, types_1.OPAQUE).sql}`;
@@ -40,7 +41,7 @@ function AtomicAssignments(target, request, context) {
40
41
  ...request.patch,
41
42
  [request.revisionField]: request.nextRevision,
42
43
  };
43
- const split = (0, payload_1.SplitPayload)(document, target.origin.shape, context, {
44
+ const split = (0, payload_1.SplitPayload)(document, target.origin.model, context, {
44
45
  id: payload_1.ID_AS_ASSERTION,
45
46
  });
46
47
  const assignments = split.members.map((member) => (0, writes_shared_1.Assignment)(member.column, member.value.sql));
@@ -1 +1 @@
1
- {"version":3,"file":"writes-atomic.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-atomic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writes-atomic.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-atomic.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,9 @@ const stage_1 = require("./stage");
10
10
  const ddl_1 = require("./ddl");
11
11
  const row_source_1 = require("./row-source");
12
12
  const types_1 = require("./types");
13
- const relation_1 = require("./relation");
13
+ const render_1 = require("./render");
14
14
  const jsonb_1 = require("./jsonb");
15
+ const guards_1 = require("./guards");
15
16
  const utils_1 = require("./utils");
16
17
  const sql_1 = require("./sql");
17
18
  const fields_1 = require("./fields");
@@ -25,7 +26,7 @@ function KeyTuple(alias) {
25
26
  }
26
27
  function IdentityTarget(target, context) {
27
28
  const source = context.nextAlias();
28
- const wrapped = `(${(0, relation_1.Render)(target.relation)}) AS ${(0, sql_1.QuoteIdentifier)(source)}`;
29
+ const wrapped = `(${(0, render_1.Render)(target.relation)}) AS ${(0, sql_1.QuoteIdentifier)(source)}`;
29
30
  return `(${KeyTuple(writes_shared_1.WRITE_ALIAS)}) IN (SELECT ${KeyTuple(source)} FROM ${wrapped})`;
30
31
  }
31
32
  function Assignments(written) {
@@ -66,12 +67,11 @@ function UpdateStatement(target, stage, changed, context) {
66
67
  };
67
68
  }
68
69
  function ChangedDocument(stage, argument) {
69
- const document = (0, writes_shared_1.AsDocument)(argument);
70
- (0, node_assert_1.default)(document, `The '${stage.stage}' stage takes a document, received ${(0, writes_shared_1.DescribeKind)(argument)}`);
71
- return document;
70
+ (0, node_assert_1.default)((0, guards_1.IsDocument)(argument), `The '${stage.stage}' stage takes a document, received ${(0, writes_shared_1.DescribeKind)(argument)}`);
71
+ return argument;
72
72
  }
73
73
  function ChangedPayload(document, target, context) {
74
- return (0, payload_1.SplitPayload)(document, target.origin.shape, context, CHANGED);
74
+ return (0, payload_1.SplitPayload)(document, target.origin.model, context, CHANGED);
75
75
  }
76
76
  function UpdatedExtra(split) {
77
77
  if (!split.extra && split.removed.length === 0) {
@@ -101,9 +101,9 @@ function UpdatedColumns(split, stage) {
101
101
  function ChangedColumnsOf(split, stage) {
102
102
  return ChangedFrom(UpdatedColumns(split, stage), split.identity);
103
103
  }
104
- function ReplacedColumns(split, shape) {
104
+ function ReplacedColumns(split, model) {
105
105
  const supplied = (0, payload_1.MembersByColumn)(split);
106
- const written = (0, fields_1.DeclaredColumns)(shape).map((column) => ({
106
+ const written = (0, fields_1.DeclaredColumns)(model).map((column) => ({
107
107
  column,
108
108
  value: supplied.get(column)?.sql ?? writes_shared_1.NULL_VALUE,
109
109
  }));
@@ -113,11 +113,11 @@ function ReplacedColumns(split, shape) {
113
113
  });
114
114
  return written;
115
115
  }
116
- function MappedShape(shape) {
117
- return Object.fromEntries(Object.entries(shape.fields).map(([name, spec]) => [name, spec.type]));
116
+ function MappedKeyTypes(model) {
117
+ return Object.fromEntries(Object.entries(model.fields).map(([name, spec]) => [name, spec.type]));
118
118
  }
119
- function MappedExtra(mapped, shape) {
120
- const kept = `(${mapped.sql} - ${(0, jsonb_1.TextArray)((0, fields_1.DocumentKeys)(shape))})`;
119
+ function MappedExtra(mapped, model) {
120
+ const kept = `(${mapped.sql} - ${(0, jsonb_1.TextArray)((0, fields_1.DocumentKeys)(model))})`;
121
121
  return `COALESCE(${(0, jsonb_1.GuardJson)(mapped, jsonb_1.OBJECT_TYPEOF, kept)}, ${writes_shared_1.EMPTY_EXTRA})`;
122
122
  }
123
123
  function MappedTarget(columns) {
@@ -131,14 +131,14 @@ function MultiAssignment(origin, document, context) {
131
131
  const alias = context.nextAlias();
132
132
  const mapped = {
133
133
  sql: (0, sql_1.QualifiedColumn)(alias, MAPPED_COLUMN),
134
- type: (0, types_1.JsonOf)(MappedShape(origin.shape)),
134
+ type: (0, types_1.JsonOf)(MappedKeyTypes(origin.model)),
135
135
  };
136
136
  const source = new row_source_1.JsonRowSource(mapped);
137
- const declared = Object.entries(origin.shape.fields);
137
+ const declared = Object.entries(origin.model.fields);
138
138
  const columns = [...declared.map(([, spec]) => spec.column), utils_1.EXTRA_COLUMN];
139
139
  const reads = [
140
140
  ...declared.map(([name]) => source.field(name).sql),
141
- MappedExtra(mapped, origin.shape),
141
+ MappedExtra(mapped, origin.model),
142
142
  ];
143
143
  const held = `(SELECT ${document.sql} AS ${(0, sql_1.QuoteIdentifier)(MAPPED_COLUMN)}) AS ${(0, sql_1.QuoteIdentifier)(alias)}`;
144
144
  return `${MappedTarget(columns)} = (SELECT ${reads.join(", ")} FROM ${held})`;
@@ -158,9 +158,8 @@ function MappedColumns(target, stage, mapper, context) {
158
158
  }
159
159
  const UpdateWrite = (target, stage, context) => {
160
160
  const argument = stage.args[stage_1.FIRST_OPERAND];
161
- const mapper = (0, value_1.RecordedFunction)(argument);
162
- const changed = mapper
163
- ? MappedColumns(target, stage, mapper, context)
161
+ const changed = (0, value_1.IsRecordedFunction)(argument)
162
+ ? MappedColumns(target, stage, argument, context)
164
163
  : ChangedColumnsOf(ChangedPayload(ChangedDocument(stage, argument), target, context), stage);
165
164
  return UpdateStatement(target, stage, changed, context);
166
165
  };
@@ -169,7 +168,7 @@ const ReplaceWrite = (target, stage, context) => {
169
168
  (0, writes_shared_1.RefuseCrossInstance)(target, stage);
170
169
  const document = ChangedDocument(stage, stage.args[stage_1.FIRST_OPERAND]);
171
170
  const split = ChangedPayload(document, target, context);
172
- const changed = ChangedFrom(ReplacedColumns(split, target.origin.shape), split.identity);
171
+ const changed = ChangedFrom(ReplacedColumns(split, target.origin.model), split.identity);
173
172
  return UpdateStatement(target, stage, changed, context);
174
173
  };
175
174
  exports.ReplaceWrite = ReplaceWrite;
@@ -1 +1 @@
1
- {"version":3,"file":"writes-identity.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writes-identity.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-identity.ts"],"names":[],"mappings":"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"}
@@ -7,13 +7,13 @@ exports.InsertWrite = void 0;
7
7
  const node_assert_1 = __importDefault(require("node:assert"));
8
8
  const node_crypto_1 = require("node:crypto");
9
9
  const types_1 = require("./types");
10
- const stage_1 = require("./stage");
11
10
  const ddl_1 = require("./ddl");
12
11
  const sql_1 = require("./sql");
13
12
  const fields_1 = require("./fields");
14
13
  const utils_1 = require("./utils");
15
14
  const payload_1 = require("./payload");
16
15
  const writes_shared_1 = require("./writes-shared");
16
+ const guards_1 = require("./guards");
17
17
  const EXCLUDED_ROW = "EXCLUDED";
18
18
  const INSERTED = { id: payload_1.ID_AS_KEY };
19
19
  const SIGNATURE_SEPARATOR = ",";
@@ -28,23 +28,17 @@ const CONFLICT_MODES = {
28
28
  update: { everyColumn: false, extra: (0, writes_shared_1.MergeExtra)(EXCLUDED_EXTRA) },
29
29
  replace: { everyColumn: true, extra: EXCLUDED_EXTRA },
30
30
  };
31
+ function IsConflictMode(name) {
32
+ return Object.hasOwn(CONFLICT_MODES, name);
33
+ }
31
34
  function ConflictModeOf(stage) {
32
35
  const conflict = stage.options?.conflict;
33
36
  if (conflict === undefined || conflict === null) {
34
37
  return undefined;
35
38
  }
36
- (0, node_assert_1.default)(typeof conflict === "string" && Object.hasOwn(CONFLICT_MODES, conflict), `The '${stage.stage}' stage takes a conflict mode of ${Object.keys(CONFLICT_MODES).join(" or ")}, received ${JSON.stringify(conflict)}`);
39
+ (0, node_assert_1.default)((0, guards_1.IsString)(conflict) && IsConflictMode(conflict), `The '${stage.stage}' stage takes a conflict mode of ${Object.keys(CONFLICT_MODES).join(" or ")}, received ${JSON.stringify(conflict)}`);
37
40
  return CONFLICT_MODES[conflict];
38
41
  }
39
- function Documents(stage) {
40
- const argument = stage.args[stage_1.FIRST_OPERAND];
41
- const list = Array.isArray(argument) ? argument : [argument];
42
- return list.map((entry, position) => {
43
- const document = (0, writes_shared_1.AsDocument)(entry);
44
- (0, node_assert_1.default)(document, `The '${stage.stage}' stage takes documents, and the one at position ${position} is ${(0, writes_shared_1.DescribeKind)(entry)}`);
45
- return document;
46
- });
47
- }
48
42
  function SuppliedId(document) {
49
43
  const supplied = Object.hasOwn(document, utils_1.ID_COLUMN)
50
44
  ? document[utils_1.ID_COLUMN]
@@ -52,22 +46,22 @@ function SuppliedId(document) {
52
46
  if ((0, payload_1.NoIdSupplied)(supplied)) {
53
47
  return undefined;
54
48
  }
55
- (0, node_assert_1.default)(typeof supplied === "string", `An inserted document's '${utils_1.ID_COLUMN}' must be a string, received ${typeof supplied}`);
49
+ (0, node_assert_1.default)((0, guards_1.IsString)(supplied), `An inserted document's '${utils_1.ID_COLUMN}' must be a string, received ${typeof supplied}`);
56
50
  return supplied;
57
51
  }
58
- function InsertRowOf(document, shape, context) {
52
+ function InsertRowOf(document, model, context) {
59
53
  const supplied = SuppliedId(document);
60
54
  const id = supplied ?? (0, node_crypto_1.randomUUID)();
61
55
  const generated = supplied === undefined ? (0, sql_1.Param)(context.params, id, types_1.TEXT) : undefined;
62
- const split = (0, payload_1.SplitPayload)(document, shape, context, INSERTED);
56
+ const split = (0, payload_1.SplitPayload)(document, model, context, INSERTED);
63
57
  const values = (0, payload_1.MembersByColumn)(split);
64
58
  const key = generated ?? values.get(utils_1.ID_COLUMN);
65
59
  (0, node_assert_1.default)(key, `An inserted row is keyed by the '${utils_1.ID_COLUMN}' its payload supplied or by the one generated for it`);
66
60
  values.delete(utils_1.ID_COLUMN);
67
61
  return { id, key, values, extra: split.extra };
68
62
  }
69
- function BatchColumns(shape, rows) {
70
- return (0, fields_1.DeclaredColumns)(shape).filter((column) => rows.some((row) => row.values.has(column)));
63
+ function BatchColumns(model, rows) {
64
+ return (0, fields_1.DeclaredColumns)(model).filter((column) => rows.some((row) => row.values.has(column)));
71
65
  }
72
66
  function RowTuple(row, columns, instance) {
73
67
  const declared = columns.map((column) => row.values.get(column)?.sql ?? writes_shared_1.NULL_VALUE);
@@ -87,10 +81,10 @@ function InsertInto(origin, columns) {
87
81
  return `INSERT INTO ${(0, writes_shared_1.WriteTable)(origin)} (${named.join(", ")})`;
88
82
  }
89
83
  function GroupStatement(plan, rows) {
90
- const shape = plan.origin.shape;
84
+ const model = plan.origin.model;
91
85
  const columns = plan.mode?.everyColumn
92
- ? (0, fields_1.DeclaredColumns)(shape)
93
- : BatchColumns(shape, rows);
86
+ ? (0, fields_1.DeclaredColumns)(model)
87
+ : BatchColumns(model, rows);
94
88
  const tuples = rows.map((row) => RowTuple(row, columns, plan.instance));
95
89
  return `${InsertInto(plan.origin, columns)} VALUES ${tuples.join(", ")}${ConflictClause(columns, plan.mode)}`;
96
90
  }
@@ -100,7 +94,7 @@ function RowGroups(plan, rows) {
100
94
  }
101
95
  const groups = new Map();
102
96
  for (const row of rows) {
103
- const signature = BatchColumns(plan.origin.shape, [row]).join(SIGNATURE_SEPARATOR);
97
+ const signature = BatchColumns(plan.origin.model, [row]).join(SIGNATURE_SEPARATOR);
104
98
  const group = groups.get(signature);
105
99
  if (group) {
106
100
  group.push(row);
@@ -119,7 +113,7 @@ function OneStatement(statements) {
119
113
  }
120
114
  const InsertWrite = (target, stage, context) => {
121
115
  const instance = (0, writes_shared_1.RequireInstance)(target, stage);
122
- const documents = Documents(stage);
116
+ const documents = (0, writes_shared_1.InsertedDocuments)(stage);
123
117
  if (documents.length === 0) {
124
118
  return { sql: "", ids: [] };
125
119
  }
@@ -128,7 +122,7 @@ const InsertWrite = (target, stage, context) => {
128
122
  mode: ConflictModeOf(stage),
129
123
  instance: instance.sql,
130
124
  };
131
- const rows = documents.map((document) => InsertRowOf(document, target.origin.shape, context));
125
+ const rows = documents.map((document) => InsertRowOf(document, target.origin.model, context));
132
126
  const statements = RowGroups(plan, rows).map((group) => GroupStatement(plan, group));
133
127
  return { sql: OneStatement(statements), ids: rows.map((row) => row.id) };
134
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"writes-insert.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-insert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writes-insert.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-insert.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,6 @@ export declare function Assignment(column: string, value: string): string;
31
31
  export declare const EXISTING_EXTRA: string;
32
32
  export declare function MergeExtra(incoming: string): string;
33
33
  export declare function DescribeKind(value: unknown): string;
34
- export declare function AsDocument(value: unknown): Record<string, unknown> | undefined;
34
+ export declare function InsertedDocuments(stage: QueryStage): Record<string, unknown>[];
35
35
  export declare function RequireInstance(target: WriteTarget, stage: QueryStage): Compiled;
36
36
  export declare function RefuseCrossInstance(target: WriteTarget, stage: QueryStage): void;
@@ -10,7 +10,7 @@ exports.WriteRowSource = WriteRowSource;
10
10
  exports.Assignment = Assignment;
11
11
  exports.MergeExtra = MergeExtra;
12
12
  exports.DescribeKind = DescribeKind;
13
- exports.AsDocument = AsDocument;
13
+ exports.InsertedDocuments = InsertedDocuments;
14
14
  exports.RequireInstance = RequireInstance;
15
15
  exports.RefuseCrossInstance = RefuseCrossInstance;
16
16
  const node_assert_1 = __importDefault(require("node:assert"));
@@ -20,6 +20,8 @@ const utils_1 = require("./utils");
20
20
  const sql_1 = require("./sql");
21
21
  const relation_1 = require("./relation");
22
22
  const row_source_1 = require("./row-source");
23
+ const stage_1 = require("./stage");
24
+ const guards_1 = require("./guards");
23
25
  function WriteTargetOf(root, relation) {
24
26
  return {
25
27
  relation,
@@ -35,7 +37,7 @@ function WriteTable(origin) {
35
37
  return `${table} AS ${(0, sql_1.QuoteIdentifier)(exports.WRITE_ALIAS)}`;
36
38
  }
37
39
  function WriteRowSource(origin) {
38
- return new row_source_1.ColumnRowSource((0, row_source_1.AliasedColumns)(exports.WRITE_ALIAS), origin.shape);
40
+ return new row_source_1.ColumnRowSource((0, row_source_1.AliasedColumns)(exports.WRITE_ALIAS), origin.model);
39
41
  }
40
42
  function Assignment(column, value) {
41
43
  return `${(0, sql_1.QuoteIdentifier)(column)} = ${value}`;
@@ -47,11 +49,13 @@ function MergeExtra(incoming) {
47
49
  function DescribeKind(value) {
48
50
  return Array.isArray(value) ? "an array" : `a ${typeof value}`;
49
51
  }
50
- function AsDocument(value) {
51
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
52
- return undefined;
53
- }
54
- return value;
52
+ function InsertedDocuments(stage) {
53
+ const argument = stage.args[stage_1.FIRST_OPERAND];
54
+ const list = Array.isArray(argument) ? argument : [argument];
55
+ return list.map((entry, position) => {
56
+ (0, node_assert_1.default)((0, guards_1.IsDocument)(entry), `The '${stage.stage}' stage takes documents, and the one at position ${position} is ${DescribeKind(entry)}`);
57
+ return entry;
58
+ });
55
59
  }
56
60
  function RequireInstance(target, stage) {
57
61
  const scope = target.instance;
@@ -1 +1 @@
1
- {"version":3,"file":"writes-shared.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-shared.ts"],"names":[],"mappings":";;;;;;AAgCA,sCASC;AA6DD,gCAGC;AAWD,wCAEC;AAQD,gCAEC;AAsBD,gCAEC;AAGD,oCAEC;AAWD,gCAOC;AAaD,0CAUC;AAGD,kDAKC;AA9MD,8DAAiC;AACjC,kEAAuE;AAEvE,6CAA8C;AAE9C,mCAAwD;AAExD,+BAAwE;AACxE,yCAA4E;AAC5E,6CAA+E;AAuB/E,SAAgB,aAAa,CAC3B,IAAmB,EACnB,QAAkB;IAElB,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,IAAA,wBAAa,EAAC,QAAQ,CAAC;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAkDY,QAAA,WAAW,GAAG,IAAI,CAAC;AACnB,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,UAAU,GAAG,MAAM,CAAC;AASjC,SAAgB,UAAU,CAAC,MAAmB;IAC5C,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,GAAG,KAAK,OAAO,IAAA,qBAAe,EAAC,mBAAW,CAAC,EAAE,CAAC;AACvD,CAAC;AAWD,SAAgB,cAAc,CAAC,MAAmB;IAChD,OAAO,IAAI,4BAAe,CAAC,IAAA,2BAAc,EAAC,mBAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAQD,SAAgB,UAAU,CAAC,MAAc,EAAE,KAAa;IACtD,OAAO,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;AACjD,CAAC;AAaY,QAAA,cAAc,GAAG,YAAY,IAAA,qBAAe,EAAC,mBAAW,EAAE,oBAAY,CAAC,KAAK,mBAAW,GAAG,CAAC;AASxG,SAAgB,UAAU,CAAC,QAAgB;IACzC,OAAO,IAAI,sBAAc,OAAO,QAAQ,GAAG,CAAC;AAC9C,CAAC;AAGD,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC;AACjE,CAAC;AAWD,SAAgB,UAAU,CACxB,KAAc;IAEd,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAaD,SAAgB,eAAe,CAC7B,MAAmB,EACnB,KAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC9B,IAAA,qBAAM,EACJ,KAAK,KAAK,uBAAc,EACxB,QAAQ,KAAK,CAAC,KAAK,8HAA8H,CAClJ,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAgB,mBAAmB,CACjC,MAAmB,EACnB,KAAiB;IAEjB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"writes-shared.js","sourceRoot":"","sources":["../../../src/implementations/database/writes-shared.ts"],"names":[],"mappings":";;;;;;AAkCA,sCASC;AA6DD,gCAGC;AAWD,wCAEC;AAQD,gCAEC;AAsBD,gCAEC;AAGD,oCAEC;AAOD,8CAYC;AAaD,0CAUC;AAGD,kDAKC;AAjND,8DAAiC;AACjC,kEAAuE;AAEvE,6CAA8C;AAE9C,mCAAwD;AAExD,+BAAwE;AACxE,yCAA4E;AAC5E,6CAA+E;AAC/E,mCAAwC;AACxC,qCAAsC;AAuBtC,SAAgB,aAAa,CAC3B,IAAmB,EACnB,QAAkB;IAElB,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,IAAA,wBAAa,EAAC,QAAQ,CAAC;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC;AAkDY,QAAA,WAAW,GAAG,IAAI,CAAC;AACnB,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,UAAU,GAAG,MAAM,CAAC;AASjC,SAAgB,UAAU,CAAC,MAAmB;IAC5C,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,GAAG,KAAK,OAAO,IAAA,qBAAe,EAAC,mBAAW,CAAC,EAAE,CAAC;AACvD,CAAC;AAWD,SAAgB,cAAc,CAAC,MAAmB;IAChD,OAAO,IAAI,4BAAe,CAAC,IAAA,2BAAc,EAAC,mBAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAQD,SAAgB,UAAU,CAAC,MAAc,EAAE,KAAa;IACtD,OAAO,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;AACjD,CAAC;AAaY,QAAA,cAAc,GAAG,YAAY,IAAA,qBAAe,EAAC,mBAAW,EAAE,oBAAY,CAAC,KAAK,mBAAW,GAAG,CAAC;AASxG,SAAgB,UAAU,CAAC,QAAgB;IACzC,OAAO,IAAI,sBAAc,OAAO,QAAQ,GAAG,CAAC;AAC9C,CAAC;AAGD,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,KAAK,EAAE,CAAC;AACjE,CAAC;AAOD,SAAgB,iBAAiB,CAC/B,KAAiB;IAEjB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAa,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAClC,IAAA,qBAAM,EACJ,IAAA,mBAAU,EAAC,KAAK,CAAC,EACjB,QAAQ,KAAK,CAAC,KAAK,oDAAoD,QAAQ,OAAO,YAAY,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAaD,SAAgB,eAAe,CAC7B,MAAmB,EACnB,KAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC9B,IAAA,qBAAM,EACJ,KAAK,KAAK,uBAAc,EACxB,QAAQ,KAAK,CAAC,KAAK,8HAA8H,CAClJ,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAgB,mBAAmB,CACjC,MAAmB,EACnB,KAAiB;IAEjB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC"}
@@ -10,7 +10,28 @@ export interface WriteSplit {
10
10
  pipeline: QueryStage[];
11
11
  write?: QueryStage;
12
12
  }
13
- export declare const WRITE_STAGES: WriteSpecMap;
13
+ export declare const WRITE_STAGES: {
14
+ atomicMutation: {
15
+ compile: WriteCompiler;
16
+ readsRelation: false;
17
+ };
18
+ insert: {
19
+ compile: WriteCompiler;
20
+ readsRelation: false;
21
+ };
22
+ update: {
23
+ compile: WriteCompiler;
24
+ readsRelation: true;
25
+ };
26
+ replace: {
27
+ compile: WriteCompiler;
28
+ readsRelation: true;
29
+ };
30
+ delete: {
31
+ compile: WriteCompiler;
32
+ readsRelation: true;
33
+ };
34
+ };
14
35
  export declare function SplitWrite(stages: QueryStage[]): WriteSplit;
15
36
  export declare function CompileWrite(target: WriteTarget, stage: QueryStage, context: DecodingContext): WriteStatement;
16
37
  export {};