@reventlessdev/reventless-postgres 3.0.0-alpha.6 → 3.0.0-alpha.7

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 (111) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/lib/bs/.compiler.log +2 -2
  3. package/lib/bs/ReventlessPostgres.cmi +0 -0
  4. package/lib/bs/ReventlessPostgres.cmt +0 -0
  5. package/lib/bs/ReventlessPostgres.mlmap +3 -0
  6. package/lib/bs/compiler-info.json +1 -1
  7. package/lib/bs/src/DcbEventLogStorage_Postgres-ReventlessPostgres.cmi +0 -0
  8. package/lib/bs/src/DcbEventLogStorage_Postgres-ReventlessPostgres.cmj +0 -0
  9. package/lib/bs/src/DcbEventLogStorage_Postgres-ReventlessPostgres.cmt +0 -0
  10. package/lib/bs/src/DcbEventLogStorage_Postgres.ast +0 -0
  11. package/lib/bs/src/DcbEventLogStorage_Postgres.res +25 -340
  12. package/lib/bs/src/DcbEventLogStorage_Postgres.res.mjs +32 -348
  13. package/lib/bs/src/DcbEventLogStorage_Postgres_Ops-ReventlessPostgres.cmi +0 -0
  14. package/lib/bs/src/DcbEventLogStorage_Postgres_Ops-ReventlessPostgres.cmj +0 -0
  15. package/lib/bs/src/DcbEventLogStorage_Postgres_Ops-ReventlessPostgres.cmt +0 -0
  16. package/lib/bs/src/DcbEventLogStorage_Postgres_Ops.ast +0 -0
  17. package/lib/bs/src/DcbEventLogStorage_Postgres_Ops.res +350 -0
  18. package/lib/bs/src/DcbEventLogStorage_Postgres_Ops.res.mjs +380 -0
  19. package/lib/bs/src/EventLogChangeFeed-ReventlessPostgres.cmi +0 -0
  20. package/lib/bs/src/EventLogChangeFeed-ReventlessPostgres.cmt +0 -0
  21. package/lib/bs/src/EventLogStorage_Postgres-ReventlessPostgres.cmi +0 -0
  22. package/lib/bs/src/EventLogStorage_Postgres-ReventlessPostgres.cmj +0 -0
  23. package/lib/bs/src/EventLogStorage_Postgres-ReventlessPostgres.cmt +0 -0
  24. package/lib/bs/src/EventLogStorage_Postgres.ast +0 -0
  25. package/lib/bs/src/EventLogStorage_Postgres.res +12 -170
  26. package/lib/bs/src/EventLogStorage_Postgres.res.mjs +20 -186
  27. package/lib/bs/src/EventLogStorage_Postgres_Ops-ReventlessPostgres.cmi +0 -0
  28. package/lib/bs/src/EventLogStorage_Postgres_Ops-ReventlessPostgres.cmj +0 -0
  29. package/lib/bs/src/EventLogStorage_Postgres_Ops-ReventlessPostgres.cmt +0 -0
  30. package/lib/bs/src/EventLogStorage_Postgres_Ops.ast +0 -0
  31. package/lib/bs/src/EventLogStorage_Postgres_Ops.res +180 -0
  32. package/lib/bs/src/EventLogStorage_Postgres_Ops.res.mjs +202 -0
  33. package/lib/bs/src/PgChangeFeed-ReventlessPostgres.cmi +0 -0
  34. package/lib/bs/src/PgChangeFeed-ReventlessPostgres.cmt +0 -0
  35. package/lib/bs/src/PgSchema-ReventlessPostgres.cmi +0 -0
  36. package/lib/bs/src/PgSchema-ReventlessPostgres.cmt +0 -0
  37. package/lib/bs/src/QueryDbStorage_Postgres-ReventlessPostgres.cmi +0 -0
  38. package/lib/bs/src/QueryDbStorage_Postgres-ReventlessPostgres.cmt +0 -0
  39. package/lib/bs/src/QueryDbStorage_Postgres.ast +0 -0
  40. package/lib/bs/src/QueryDbStorage_Postgres.res +9 -232
  41. package/lib/bs/src/QueryDbStorage_Postgres.res.mjs +25 -204
  42. package/lib/bs/src/QueryDbStorage_Postgres_Ops-ReventlessPostgres.cmi +0 -0
  43. package/lib/bs/src/QueryDbStorage_Postgres_Ops-ReventlessPostgres.cmj +0 -0
  44. package/lib/bs/src/QueryDbStorage_Postgres_Ops-ReventlessPostgres.cmt +0 -0
  45. package/lib/bs/src/QueryDbStorage_Postgres_Ops.ast +0 -0
  46. package/lib/bs/src/QueryDbStorage_Postgres_Ops.res +229 -0
  47. package/lib/bs/src/QueryDbStorage_Postgres_Ops.res.mjs +222 -0
  48. package/lib/bs/src/QueryEnginePostgres-ReventlessPostgres.cmi +0 -0
  49. package/lib/bs/src/QueryEnginePostgres-ReventlessPostgres.cmt +0 -0
  50. package/lib/bs/tests/PostgresIntegrationTest-ReventlessPostgres.cmi +0 -0
  51. package/lib/bs/tests/PostgresIntegrationTest-ReventlessPostgres.cmt +0 -0
  52. package/lib/bs/tests/QueryEnginePostgresListPageTest-ReventlessPostgres.cmi +0 -0
  53. package/lib/bs/tests/QueryEnginePostgresListPageTest-ReventlessPostgres.cmt +0 -0
  54. package/lib/ocaml/.compiler.log +2 -2
  55. package/lib/ocaml/DcbEventLogStorage_Postgres-ReventlessPostgres.cmi +0 -0
  56. package/lib/ocaml/DcbEventLogStorage_Postgres-ReventlessPostgres.cmj +0 -0
  57. package/lib/ocaml/DcbEventLogStorage_Postgres-ReventlessPostgres.cmt +0 -0
  58. package/lib/ocaml/DcbEventLogStorage_Postgres.ast +0 -0
  59. package/lib/ocaml/DcbEventLogStorage_Postgres.res +25 -340
  60. package/lib/ocaml/DcbEventLogStorage_Postgres_Ops-ReventlessPostgres.cmi +0 -0
  61. package/lib/ocaml/DcbEventLogStorage_Postgres_Ops-ReventlessPostgres.cmj +0 -0
  62. package/lib/ocaml/DcbEventLogStorage_Postgres_Ops-ReventlessPostgres.cmt +0 -0
  63. package/lib/ocaml/DcbEventLogStorage_Postgres_Ops.ast +0 -0
  64. package/lib/ocaml/DcbEventLogStorage_Postgres_Ops.res +350 -0
  65. package/lib/ocaml/EventLogChangeFeed-ReventlessPostgres.cmi +0 -0
  66. package/lib/ocaml/EventLogChangeFeed-ReventlessPostgres.cmt +0 -0
  67. package/lib/ocaml/EventLogStorage_Postgres-ReventlessPostgres.cmi +0 -0
  68. package/lib/ocaml/EventLogStorage_Postgres-ReventlessPostgres.cmj +0 -0
  69. package/lib/ocaml/EventLogStorage_Postgres-ReventlessPostgres.cmt +0 -0
  70. package/lib/ocaml/EventLogStorage_Postgres.ast +0 -0
  71. package/lib/ocaml/EventLogStorage_Postgres.res +12 -170
  72. package/lib/ocaml/EventLogStorage_Postgres_Ops-ReventlessPostgres.cmi +0 -0
  73. package/lib/ocaml/EventLogStorage_Postgres_Ops-ReventlessPostgres.cmj +0 -0
  74. package/lib/ocaml/EventLogStorage_Postgres_Ops-ReventlessPostgres.cmt +0 -0
  75. package/lib/ocaml/EventLogStorage_Postgres_Ops.ast +0 -0
  76. package/lib/ocaml/EventLogStorage_Postgres_Ops.res +180 -0
  77. package/lib/ocaml/PgChangeFeed-ReventlessPostgres.cmi +0 -0
  78. package/lib/ocaml/PgChangeFeed-ReventlessPostgres.cmt +0 -0
  79. package/lib/ocaml/PgSchema-ReventlessPostgres.cmi +0 -0
  80. package/lib/ocaml/PgSchema-ReventlessPostgres.cmt +0 -0
  81. package/lib/ocaml/PostgresIntegrationTest-ReventlessPostgres.cmi +0 -0
  82. package/lib/ocaml/PostgresIntegrationTest-ReventlessPostgres.cmt +0 -0
  83. package/lib/ocaml/QueryDbStorage_Postgres-ReventlessPostgres.cmi +0 -0
  84. package/lib/ocaml/QueryDbStorage_Postgres-ReventlessPostgres.cmt +0 -0
  85. package/lib/ocaml/QueryDbStorage_Postgres.ast +0 -0
  86. package/lib/ocaml/QueryDbStorage_Postgres.res +9 -232
  87. package/lib/ocaml/QueryDbStorage_Postgres_Ops-ReventlessPostgres.cmi +0 -0
  88. package/lib/ocaml/QueryDbStorage_Postgres_Ops-ReventlessPostgres.cmj +0 -0
  89. package/lib/ocaml/QueryDbStorage_Postgres_Ops-ReventlessPostgres.cmt +0 -0
  90. package/lib/ocaml/QueryDbStorage_Postgres_Ops.ast +0 -0
  91. package/lib/ocaml/QueryDbStorage_Postgres_Ops.res +229 -0
  92. package/lib/ocaml/QueryEnginePostgres-ReventlessPostgres.cmi +0 -0
  93. package/lib/ocaml/QueryEnginePostgres-ReventlessPostgres.cmt +0 -0
  94. package/lib/ocaml/QueryEnginePostgresListPageTest-ReventlessPostgres.cmi +0 -0
  95. package/lib/ocaml/QueryEnginePostgresListPageTest-ReventlessPostgres.cmt +0 -0
  96. package/lib/ocaml/ReventlessPostgres.cmi +0 -0
  97. package/lib/ocaml/ReventlessPostgres.cmt +0 -0
  98. package/lib/ocaml/ReventlessPostgres.mlmap +3 -0
  99. package/package.json +3 -3
  100. package/src/DcbEventLogStorage_Postgres.res +25 -340
  101. package/src/DcbEventLogStorage_Postgres.res.mjs +32 -348
  102. package/src/DcbEventLogStorage_Postgres_Ops.res +350 -0
  103. package/src/DcbEventLogStorage_Postgres_Ops.res.mjs +380 -0
  104. package/src/EventLogStorage_Postgres.res +12 -170
  105. package/src/EventLogStorage_Postgres.res.mjs +20 -186
  106. package/src/EventLogStorage_Postgres_Ops.res +180 -0
  107. package/src/EventLogStorage_Postgres_Ops.res.mjs +202 -0
  108. package/src/QueryDbStorage_Postgres.res +9 -232
  109. package/src/QueryDbStorage_Postgres.res.mjs +25 -204
  110. package/src/QueryDbStorage_Postgres_Ops.res +229 -0
  111. package/src/QueryDbStorage_Postgres_Ops.res.mjs +222 -0
@@ -1,369 +1,52 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
- import * as S from "sury/src/S.res.mjs";
4
- import * as Stream from "@reventlessdev/rescript-effect/src/Stream.res.mjs";
5
- import * as Stdlib_Int from "@rescript/runtime/lib/es6/Stdlib_Int.js";
6
- import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
7
- import * as Stdlib_JsExn from "@rescript/runtime/lib/es6/Stdlib_JsExn.js";
8
- import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
9
- import * as Effect from "effect/Effect";
10
3
  import * as Pulumi from "@pulumi/pulumi";
11
- import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js";
12
- import * as Primitive_option from "@rescript/runtime/lib/es6/Primitive_option.js";
13
- import * as Message$Reventless from "@reventlessdev/reventless-spec/src/types/Message.res.mjs";
14
- import * as Primitive_exceptions from "@rescript/runtime/lib/es6/Primitive_exceptions.js";
15
- import * as PgDriver$ReventlessPostgres from "./PgDriver.res.mjs";
4
+ import * as DcbEventLogStorage_Postgres_Ops$ReventlessPostgres from "./DcbEventLogStorage_Postgres_Ops.res.mjs";
16
5
 
17
- function strategyParam(s) {
18
- if (s === "AdvisoryLocks") {
19
- return "advisory";
20
- } else {
21
- return "rows";
22
- }
6
+ function makeStorage(pool, name, indexes, partitionTag, crossPartitionTagKeys, opts, lockStrategyOpt, onAppendedOpt) {
7
+ let lockStrategy = lockStrategyOpt !== undefined ? lockStrategyOpt : "AdvisoryLocks";
8
+ let onAppended = onAppendedOpt !== undefined ? onAppendedOpt : DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.noTracking;
9
+ let match = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.makeOps(pool, name, indexes, partitionTag, crossPartitionTagKeys, opts, lockStrategy, onAppended);
10
+ let ops = match[1];
11
+ return [
12
+ match[0],
13
+ ops,
14
+ {
15
+ resources: [],
16
+ operations: Pulumi.output(ops)
17
+ }
18
+ ];
23
19
  }
24
20
 
25
- function noTracking(param) {
26
-
27
- }
21
+ let strategyParam = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.strategyParam;
28
22
 
29
- let selectColumns = "\n lpad(transaction_id::text, 20, '0') || ':' || lpad(position::text, 20, '0') AS cursor,\n event_type,\n tags,\n data,\n meta,\n to_char(recorded_at AT TIME ZONE 'UTC', 'YYYY-MM-DD\"T\"HH24:MI:SS.MS\"Z\"') AS recorded_at\n";
23
+ let noTracking = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.noTracking;
30
24
 
31
- function decodeTag(s) {
32
- let i = s.indexOf("=");
33
- if (i !== -1) {
34
- return {
35
- key: s.slice(0, i),
36
- value: s.slice(i + 1 | 0, s.length)
37
- };
38
- } else {
39
- return {
40
- key: s,
41
- value: ""
42
- };
43
- }
44
- }
25
+ let selectColumns = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.selectColumns;
45
26
 
46
- function decodeTags(v) {
47
- if (v !== undefined) {
48
- if (Array.isArray(v)) {
49
- return Stdlib_Array.filterMap(v, x => {
50
- if (typeof x === "string") {
51
- return decodeTag(x);
52
- }
53
- });
54
- } else {
55
- return [];
56
- }
57
- } else {
58
- return [];
59
- }
60
- }
27
+ let decodeTag = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.decodeTag;
61
28
 
62
- function rowToEvent(row) {
63
- let str = key => {
64
- let match = row[key];
65
- if (typeof match === "string") {
66
- return match;
67
- } else {
68
- return "";
69
- }
70
- };
71
- let metaJson = row["meta"];
72
- let meta = metaJson !== undefined ? S.parseJsonOrThrow(metaJson, Message$Reventless.metaSchema) : Stdlib_JsError.throwWithMessage("missing meta column in dcb_event row");
73
- return {
74
- position: str("cursor"),
75
- eventType: str("event_type"),
76
- data: Stdlib_Option.getOr(row["data"], null),
77
- tags: decodeTags(row["tags"]),
78
- meta: meta,
79
- recordedAt: str("recorded_at")
80
- };
81
- }
29
+ let decodeTags = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.decodeTags;
82
30
 
83
- function mkBuilder() {
84
- return {
85
- params: []
86
- };
87
- }
31
+ let rowToEvent = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.rowToEvent;
88
32
 
89
- function param(b, v) {
90
- b.params.push(v);
91
- return "$" + b.params.length.toString();
92
- }
33
+ let mkBuilder = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.mkBuilder;
93
34
 
94
- function buildReadWhere(b, name, query, after, applyFence) {
95
- let parts = [`log_name = ` + param(b, name)];
96
- if (applyFence) {
97
- parts.push("transaction_id < pg_snapshot_xmin(pg_current_snapshot())");
98
- }
99
- if (after !== undefined) {
100
- let txP = param(b, after[0]);
101
- let posP = param(b, after[1]);
102
- parts.push(`(transaction_id > ` + txP + `::xid8 OR (transaction_id = ` + txP + `::xid8 AND position > ` + posP + `::bigint))`);
103
- }
104
- if (query.length !== 0) {
105
- let clauseSqls = query.map(clause => {
106
- let clauseParts = [];
107
- let types = clause.eventTypes;
108
- if (types !== undefined && types.length !== 0) {
109
- let ph = types.map(t => param(b, t)).join(",");
110
- clauseParts.push(`event_type IN (` + ph + `)`);
111
- }
112
- let tags = clause.tags;
113
- if (tags !== undefined && tags.length !== 0) {
114
- let arr = tags.map(t => param(b, t.key + "=" + t.value)).join(",");
115
- clauseParts.push(`tags @> ARRAY[` + arr + `]::text[]`);
116
- }
117
- if (clauseParts.length === 0) {
118
- return "TRUE";
119
- } else {
120
- return "(" + clauseParts.join(" AND ") + ")";
121
- }
122
- });
123
- parts.push("(" + clauseSqls.join(" OR ") + ")");
124
- }
125
- return parts.join(" AND ");
126
- }
35
+ let param = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.param;
127
36
 
128
- function stripZeros(s) {
129
- let t = s.replace(/^0+/, "");
130
- if (t === "") {
131
- return "0";
132
- } else {
133
- return t;
134
- }
135
- }
37
+ let buildReadWhere = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.buildReadWhere;
136
38
 
137
- function decodeCursor(pos) {
138
- let match = pos.split(":");
139
- if (match.length !== 2) {
140
- return;
141
- }
142
- let tx = match[0];
143
- let p = match[1];
144
- return [
145
- stripZeros(tx),
146
- stripZeros(p)
147
- ];
148
- }
39
+ let stripZeros = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.stripZeros;
149
40
 
150
- function isConflict(exn) {
151
- let msg = Stdlib_Option.getOr(Stdlib_Option.flatMap(Stdlib_JsExn.fromException(exn), Stdlib_JsExn.message), "");
152
- if (msg.includes("dcb_conflict") || msg.includes("duplicate key")) {
153
- return true;
154
- } else {
155
- return msg.includes("23505");
156
- }
157
- }
41
+ let decodeCursor = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.decodeCursor;
158
42
 
159
- async function countAll(pool) {
160
- let row = await PgDriver$ReventlessPostgres.queryOne(pool, "SELECT COUNT(*)::bigint AS c FROM dcb_event", []);
161
- if (row === undefined) {
162
- return 0;
163
- }
164
- let match = row["c"];
165
- if (match === undefined) {
166
- return 0;
167
- }
168
- switch (typeof match) {
169
- case "string" :
170
- return Stdlib_Option.getOr(Stdlib_Int.fromString(match, undefined), 0);
171
- case "number" :
172
- return match | 0;
173
- default:
174
- return 0;
175
- }
176
- }
43
+ let pageSize = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.pageSize;
177
44
 
178
- function makeStorage(pool, name, param, param$1, param$2, param$3, lockStrategyOpt, onAppendedOpt) {
179
- let lockStrategy = lockStrategyOpt !== undefined ? lockStrategyOpt : "AdvisoryLocks";
180
- let onAppended = onAppendedOpt !== undefined ? onAppendedOpt : noTracking;
181
- let currentHead = async () => {
182
- let row = await PgDriver$ReventlessPostgres.queryOne(pool, "SELECT lpad(transaction_id::text, 20, '0') || ':' || lpad(position::text, 20, '0') AS head\n FROM dcb_event\n WHERE log_name = $1 AND transaction_id < pg_snapshot_xmin(pg_current_snapshot())\n ORDER BY transaction_id DESC, position DESC\n LIMIT 1", [name]);
183
- if (row === undefined) {
184
- return;
185
- }
186
- let match = row["head"];
187
- if (typeof match === "string") {
188
- return match;
189
- }
190
- };
191
- let runQuery = async (query, after) => {
192
- let b = {
193
- params: []
194
- };
195
- let where = buildReadWhere(b, name, query, after, true);
196
- let sql = `SELECT ` + selectColumns + ` FROM dcb_event WHERE ` + where + ` ORDER BY transaction_id ASC, position ASC`;
197
- return (await PgDriver$ReventlessPostgres.query(pool, sql, b.params)).map(rowToEvent);
198
- };
199
- let read = async (query, after) => {
200
- let afterCols = Stdlib_Option.flatMap(after, decodeCursor);
201
- let events = await runQuery(query, afterCols);
202
- let head = await currentHead();
203
- if (head !== undefined) {
204
- return {
205
- events: events,
206
- headPosition: head
207
- };
208
- } else {
209
- return {
210
- events: events
211
- };
212
- }
213
- };
214
- let append = async (newEvents, condition) => {
215
- let eventsJson = newEvents.map(ev => (Object.fromEntries([
216
- [
217
- "event_type",
218
- ev.eventType
219
- ],
220
- [
221
- "tags",
222
- ev.tags.map(t => t.key + "=" + t.value)
223
- ],
224
- [
225
- "data",
226
- ev.data
227
- ],
228
- [
229
- "meta",
230
- S.reverseConvertToJsonOrThrow(ev.meta, Message$Reventless.metaSchema)
231
- ]
232
- ])));
233
- let conditionParam;
234
- if (condition !== undefined) {
235
- let queryJson = condition.query.map(clause => {
236
- let types = clause.eventTypes;
237
- let tags = clause.tags;
238
- return Object.fromEntries([
239
- [
240
- "eventTypes",
241
- types !== undefined ? types.map(prim => prim) : null
242
- ],
243
- [
244
- "tags",
245
- tags !== undefined ? tags.map(t => t.key + "=" + t.value) : null
246
- ]
247
- ]);
248
- });
249
- let fields = [[
250
- "query",
251
- queryJson
252
- ]];
253
- let a = condition.after;
254
- if (a !== undefined) {
255
- fields.push([
256
- "after",
257
- a
258
- ]);
259
- }
260
- conditionParam = JSON.stringify(Object.fromEntries(fields));
261
- } else {
262
- conditionParam = null;
263
- }
264
- try {
265
- let rows = await PgDriver$ReventlessPostgres.query(pool, "SELECT dcb_append($1, $2::jsonb, $3::jsonb, $4) AS pos", [
266
- name,
267
- JSON.stringify(eventsJson),
268
- conditionParam,
269
- strategyParam(lockStrategy)
270
- ]);
271
- let match = Stdlib_Option.flatMap(rows[0], r => r["pos"]);
272
- if (match === undefined) {
273
- return {
274
- TAG: "Error",
275
- _0: {
276
- TAG: "StorageFailure",
277
- _0: "dcb_append returned no position"
278
- }
279
- };
280
- }
281
- if (typeof match !== "string") {
282
- return {
283
- TAG: "Error",
284
- _0: {
285
- TAG: "StorageFailure",
286
- _0: "dcb_append returned no position"
287
- }
288
- };
289
- }
290
- onAppended(Stdlib_Array.filterMap(newEvents, ev => {
291
- let match$1 = decodeCursor(match);
292
- if (match$1 !== undefined) {
293
- return Stdlib_Option.map(Stdlib_Int.fromString(match$1[1], undefined), p => [
294
- ev.meta.msgId,
295
- p
296
- ]);
297
- }
298
- }));
299
- return {
300
- TAG: "Ok",
301
- _0: match
302
- };
303
- } catch (raw_exn) {
304
- let exn = Primitive_exceptions.internalToException(raw_exn);
305
- if (isConflict(exn)) {
306
- return {
307
- TAG: "Error",
308
- _0: "Conflict"
309
- };
310
- } else {
311
- return {
312
- TAG: "Error",
313
- _0: {
314
- TAG: "StorageFailure",
315
- _0: Stdlib_Option.getOr(Stdlib_Option.flatMap(Stdlib_JsExn.fromException(exn), Stdlib_JsExn.message), "storage error")
316
- }
317
- };
318
- }
319
- }
320
- };
321
- let readStream = (query, after, param) => Stream.paginateEffect(Stdlib_Option.flatMap(after, decodeCursor), cursor => Effect.map(Effect.promise(() => {
322
- let b = {
323
- params: []
324
- };
325
- let where = buildReadWhere(b, name, query, cursor, true);
326
- let sql = `SELECT ` + selectColumns + `, transaction_id::text AS tx_raw, position::text AS pos_raw FROM dcb_event WHERE ` + where + ` ORDER BY transaction_id ASC, position ASC LIMIT ` + (500).toString();
327
- return PgDriver$ReventlessPostgres.query(pool, sql, b.params);
328
- }), rows => {
329
- let events = rows.map(rowToEvent);
330
- let next;
331
- if (rows.length < 500) {
332
- next = undefined;
333
- } else {
334
- let lastRow = rows[rows.length - 1 | 0];
335
- if (lastRow !== undefined) {
336
- let match = lastRow["tx_raw"];
337
- let match$1 = lastRow["pos_raw"];
338
- next = typeof match === "string" && typeof match$1 === "string" ? Primitive_option.some([
339
- match,
340
- match$1
341
- ]) : undefined;
342
- } else {
343
- next = undefined;
344
- }
345
- }
346
- return [
347
- events,
348
- next
349
- ];
350
- }));
351
- let ops = {
352
- read: read,
353
- append: append,
354
- readStream: readStream
355
- };
356
- return [
357
- name,
358
- ops,
359
- {
360
- resources: [],
361
- operations: Pulumi.output(ops)
362
- }
363
- ];
364
- }
45
+ let isConflict = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.isConflict;
46
+
47
+ let countAll = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.countAll;
365
48
 
366
- let pageSize = 500;
49
+ let makeOps = DcbEventLogStorage_Postgres_Ops$ReventlessPostgres.makeOps;
367
50
 
368
51
  export {
369
52
  strategyParam,
@@ -380,6 +63,7 @@ export {
380
63
  pageSize,
381
64
  isConflict,
382
65
  countAll,
66
+ makeOps,
383
67
  makeStorage,
384
68
  }
385
- /* S Not a pure module */
69
+ /* @pulumi/pulumi Not a pure module */