@syncular/core 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +5 -19
  2. package/dist/blob-ref.d.ts +21 -0
  3. package/dist/blob-ref.js +97 -0
  4. package/dist/bytes.d.ts +45 -0
  5. package/dist/bytes.js +242 -0
  6. package/dist/canonical-json.d.ts +10 -0
  7. package/dist/canonical-json.js +18 -0
  8. package/dist/constants.d.ts +5 -0
  9. package/dist/constants.js +5 -0
  10. package/dist/crypto.d.ts +60 -0
  11. package/dist/crypto.js +251 -0
  12. package/dist/errors.d.ts +14 -0
  13. package/dist/errors.js +17 -0
  14. package/dist/frames.d.ts +24 -0
  15. package/dist/frames.js +42 -0
  16. package/dist/index.d.ts +18 -26
  17. package/dist/index.js +18 -43
  18. package/dist/message.d.ts +157 -0
  19. package/dist/message.js +786 -0
  20. package/dist/realtime.d.ts +92 -0
  21. package/dist/realtime.js +222 -0
  22. package/dist/render.d.ts +22 -0
  23. package/dist/render.js +273 -0
  24. package/dist/row-codec.d.ts +39 -0
  25. package/dist/row-codec.js +176 -0
  26. package/dist/segment.d.ts +18 -0
  27. package/dist/segment.js +105 -0
  28. package/dist/stream.d.ts +20 -0
  29. package/dist/stream.js +102 -0
  30. package/package.json +7 -59
  31. package/src/blob-ref.ts +135 -0
  32. package/src/bytes.ts +301 -0
  33. package/src/canonical-json.ts +20 -0
  34. package/src/constants.ts +7 -0
  35. package/src/crypto.ts +335 -0
  36. package/src/errors.ts +18 -0
  37. package/src/frames.ts +47 -0
  38. package/src/index.ts +18 -43
  39. package/src/message.ts +1024 -0
  40. package/src/realtime.ts +340 -0
  41. package/src/render.ts +325 -0
  42. package/src/row-codec.ts +265 -0
  43. package/src/segment.ts +150 -0
  44. package/src/stream.ts +128 -0
  45. package/dist/blobs.d.ts +0 -153
  46. package/dist/blobs.d.ts.map +0 -1
  47. package/dist/blobs.js +0 -47
  48. package/dist/blobs.js.map +0 -1
  49. package/dist/column-codecs.d.ts +0 -59
  50. package/dist/column-codecs.d.ts.map +0 -1
  51. package/dist/column-codecs.js +0 -159
  52. package/dist/column-codecs.js.map +0 -1
  53. package/dist/conflict.d.ts +0 -22
  54. package/dist/conflict.d.ts.map +0 -1
  55. package/dist/conflict.js +0 -81
  56. package/dist/conflict.js.map +0 -1
  57. package/dist/database.d.ts +0 -7
  58. package/dist/database.d.ts.map +0 -1
  59. package/dist/database.js +0 -14
  60. package/dist/database.js.map +0 -1
  61. package/dist/dialect.d.ts +0 -7
  62. package/dist/dialect.d.ts.map +0 -1
  63. package/dist/dialect.js +0 -2
  64. package/dist/dialect.js.map +0 -1
  65. package/dist/error-responses.d.ts +0 -393
  66. package/dist/error-responses.d.ts.map +0 -1
  67. package/dist/error-responses.js +0 -393
  68. package/dist/error-responses.js.map +0 -1
  69. package/dist/http/api-client.d.ts +0 -11
  70. package/dist/http/api-client.d.ts.map +0 -1
  71. package/dist/http/api-client.js +0 -30
  72. package/dist/http/api-client.js.map +0 -1
  73. package/dist/http/blob.d.ts +0 -6
  74. package/dist/http/blob.d.ts.map +0 -1
  75. package/dist/http/blob.js +0 -46
  76. package/dist/http/blob.js.map +0 -1
  77. package/dist/http/generated/api.d.ts +0 -5241
  78. package/dist/http/generated/api.d.ts.map +0 -1
  79. package/dist/http/generated/api.js +0 -6
  80. package/dist/http/generated/api.js.map +0 -1
  81. package/dist/http/index.d.ts +0 -18
  82. package/dist/http/index.d.ts.map +0 -1
  83. package/dist/http/index.js +0 -212
  84. package/dist/http/index.js.map +0 -1
  85. package/dist/http/shared.d.ts +0 -45
  86. package/dist/http/shared.d.ts.map +0 -1
  87. package/dist/http/shared.js +0 -122
  88. package/dist/http/shared.js.map +0 -1
  89. package/dist/http/transport-client.d.ts +0 -31
  90. package/dist/http/transport-client.d.ts.map +0 -1
  91. package/dist/http/transport-client.js +0 -193
  92. package/dist/http/transport-client.js.map +0 -1
  93. package/dist/index.d.ts.map +0 -1
  94. package/dist/index.js.map +0 -1
  95. package/dist/kysely-column-codecs.d.ts +0 -31
  96. package/dist/kysely-column-codecs.d.ts.map +0 -1
  97. package/dist/kysely-column-codecs.js +0 -452
  98. package/dist/kysely-column-codecs.js.map +0 -1
  99. package/dist/logger.d.ts +0 -29
  100. package/dist/logger.d.ts.map +0 -1
  101. package/dist/logger.js +0 -26
  102. package/dist/logger.js.map +0 -1
  103. package/dist/proxy/index.d.ts +0 -54
  104. package/dist/proxy/index.d.ts.map +0 -1
  105. package/dist/proxy/index.js +0 -7
  106. package/dist/proxy/index.js.map +0 -1
  107. package/dist/schemas/blobs.d.ts +0 -82
  108. package/dist/schemas/blobs.d.ts.map +0 -1
  109. package/dist/schemas/blobs.js +0 -64
  110. package/dist/schemas/blobs.js.map +0 -1
  111. package/dist/schemas/common.d.ts +0 -100
  112. package/dist/schemas/common.d.ts.map +0 -1
  113. package/dist/schemas/common.js +0 -64
  114. package/dist/schemas/common.js.map +0 -1
  115. package/dist/schemas/index.d.ts +0 -7
  116. package/dist/schemas/index.d.ts.map +0 -1
  117. package/dist/schemas/index.js +0 -7
  118. package/dist/schemas/index.js.map +0 -1
  119. package/dist/schemas/sync.d.ts +0 -1065
  120. package/dist/schemas/sync.d.ts.map +0 -1
  121. package/dist/schemas/sync.js +0 -361
  122. package/dist/schemas/sync.js.map +0 -1
  123. package/dist/scopes/index.d.ts +0 -113
  124. package/dist/scopes/index.d.ts.map +0 -1
  125. package/dist/scopes/index.js +0 -103
  126. package/dist/scopes/index.js.map +0 -1
  127. package/dist/sentry.d.ts +0 -31
  128. package/dist/sentry.d.ts.map +0 -1
  129. package/dist/sentry.js +0 -147
  130. package/dist/sentry.js.map +0 -1
  131. package/dist/snapshot-chunks.d.ts +0 -110
  132. package/dist/snapshot-chunks.d.ts.map +0 -1
  133. package/dist/snapshot-chunks.js +0 -682
  134. package/dist/snapshot-chunks.js.map +0 -1
  135. package/dist/sync-packs.d.ts +0 -33
  136. package/dist/sync-packs.d.ts.map +0 -1
  137. package/dist/sync-packs.js +0 -821
  138. package/dist/sync-packs.js.map +0 -1
  139. package/dist/telemetry.d.ts +0 -114
  140. package/dist/telemetry.d.ts.map +0 -1
  141. package/dist/telemetry.js +0 -114
  142. package/dist/telemetry.js.map +0 -1
  143. package/dist/transforms.d.ts +0 -146
  144. package/dist/transforms.d.ts.map +0 -1
  145. package/dist/transforms.js +0 -155
  146. package/dist/transforms.js.map +0 -1
  147. package/dist/types.d.ts +0 -210
  148. package/dist/types.d.ts.map +0 -1
  149. package/dist/types.js +0 -20
  150. package/dist/types.js.map +0 -1
  151. package/dist/utils/bytes.d.ts +0 -4
  152. package/dist/utils/bytes.d.ts.map +0 -1
  153. package/dist/utils/bytes.js +0 -66
  154. package/dist/utils/bytes.js.map +0 -1
  155. package/dist/utils/compression.d.ts +0 -22
  156. package/dist/utils/compression.d.ts.map +0 -1
  157. package/dist/utils/compression.js +0 -129
  158. package/dist/utils/compression.js.map +0 -1
  159. package/dist/utils/crypto.d.ts +0 -13
  160. package/dist/utils/crypto.d.ts.map +0 -1
  161. package/dist/utils/crypto.js +0 -107
  162. package/dist/utils/crypto.js.map +0 -1
  163. package/dist/utils/id.d.ts +0 -3
  164. package/dist/utils/id.d.ts.map +0 -1
  165. package/dist/utils/id.js +0 -25
  166. package/dist/utils/id.js.map +0 -1
  167. package/dist/utils/index.d.ts +0 -10
  168. package/dist/utils/index.d.ts.map +0 -1
  169. package/dist/utils/index.js +0 -10
  170. package/dist/utils/index.js.map +0 -1
  171. package/dist/utils/internal-runtime.d.ts +0 -16
  172. package/dist/utils/internal-runtime.d.ts.map +0 -1
  173. package/dist/utils/internal-runtime.js +0 -14
  174. package/dist/utils/internal-runtime.js.map +0 -1
  175. package/dist/utils/object.d.ts +0 -2
  176. package/dist/utils/object.d.ts.map +0 -1
  177. package/dist/utils/object.js +0 -4
  178. package/dist/utils/object.js.map +0 -1
  179. package/dist/utils/realtime-change-index.d.ts +0 -9
  180. package/dist/utils/realtime-change-index.d.ts.map +0 -1
  181. package/dist/utils/realtime-change-index.js +0 -36
  182. package/dist/utils/realtime-change-index.js.map +0 -1
  183. package/dist/utils/realtime-connection-registry.d.ts +0 -40
  184. package/dist/utils/realtime-connection-registry.d.ts.map +0 -1
  185. package/dist/utils/realtime-connection-registry.js +0 -237
  186. package/dist/utils/realtime-connection-registry.js.map +0 -1
  187. package/dist/utils/table-registry.d.ts +0 -10
  188. package/dist/utils/table-registry.d.ts.map +0 -1
  189. package/dist/utils/table-registry.js +0 -54
  190. package/dist/utils/table-registry.js.map +0 -1
  191. package/dist/utils/url.d.ts +0 -3
  192. package/dist/utils/url.d.ts.map +0 -1
  193. package/dist/utils/url.js +0 -20
  194. package/dist/utils/url.js.map +0 -1
  195. package/src/blobs.ts +0 -219
  196. package/src/column-codecs.ts +0 -262
  197. package/src/conflict.ts +0 -92
  198. package/src/database.ts +0 -21
  199. package/src/dialect.ts +0 -8
  200. package/src/error-responses.ts +0 -423
  201. package/src/http/api-client.ts +0 -39
  202. package/src/http/blob.ts +0 -95
  203. package/src/http/generated/api.ts +0 -5241
  204. package/src/http/index.ts +0 -365
  205. package/src/http/shared.ts +0 -220
  206. package/src/http/transport-client.ts +0 -314
  207. package/src/kysely-column-codecs.ts +0 -585
  208. package/src/logger.ts +0 -38
  209. package/src/proxy/index.ts +0 -57
  210. package/src/schemas/blobs.ts +0 -110
  211. package/src/schemas/common.ts +0 -89
  212. package/src/schemas/index.ts +0 -7
  213. package/src/schemas/sync.ts +0 -517
  214. package/src/scopes/index.ts +0 -237
  215. package/src/sentry.ts +0 -200
  216. package/src/snapshot-chunks.ts +0 -964
  217. package/src/sync-packs.ts +0 -1096
  218. package/src/telemetry.ts +0 -243
  219. package/src/transforms.ts +0 -256
  220. package/src/types.ts +0 -267
  221. package/src/utils/bytes.ts +0 -75
  222. package/src/utils/compression.ts +0 -187
  223. package/src/utils/crypto.ts +0 -146
  224. package/src/utils/id.ts +0 -34
  225. package/src/utils/index.ts +0 -9
  226. package/src/utils/internal-runtime.ts +0 -39
  227. package/src/utils/object.ts +0 -3
  228. package/src/utils/realtime-change-index.ts +0 -44
  229. package/src/utils/realtime-connection-registry.ts +0 -286
  230. package/src/utils/table-registry.ts +0 -67
  231. package/src/utils/url.ts +0 -29
@@ -1,452 +0,0 @@
1
- import { OperationNodeTransformer, } from 'kysely';
2
- import { applyCodecFromDbValue, applyCodecToDbValue, createTableColumnCodecsResolver, } from './column-codecs.js';
3
- function isIdentifierNode(node) {
4
- return node?.kind === 'IdentifierNode';
5
- }
6
- function isTableNode(node) {
7
- return node?.kind === 'TableNode';
8
- }
9
- function isAliasNode(node) {
10
- return node?.kind === 'AliasNode';
11
- }
12
- function isColumnNode(node) {
13
- return node?.kind === 'ColumnNode';
14
- }
15
- function isReferenceNode(node) {
16
- return node?.kind === 'ReferenceNode';
17
- }
18
- function isSelectionNode(node) {
19
- return node?.kind === 'SelectionNode';
20
- }
21
- function isPrimitiveValueListNode(node) {
22
- return node?.kind === 'PrimitiveValueListNode';
23
- }
24
- function isValuesNode(node) {
25
- return node?.kind === 'ValuesNode';
26
- }
27
- function isValueNode(node) {
28
- return node?.kind === 'ValueNode';
29
- }
30
- function getIdentifierName(node) {
31
- if (!isIdentifierNode(node))
32
- return undefined;
33
- return node?.name;
34
- }
35
- function getTableName(node) {
36
- if (!isTableNode(node))
37
- return undefined;
38
- return getIdentifierName(node.table.identifier);
39
- }
40
- function getColumnName(node) {
41
- if (!isColumnNode(node))
42
- return undefined;
43
- return getIdentifierName(node.column);
44
- }
45
- function getBaseTableFromAlias(node) {
46
- if (!isTableNode(node.node))
47
- return undefined;
48
- return getTableName(node.node);
49
- }
50
- function getAliasName(node) {
51
- return getIdentifierName(node.alias);
52
- }
53
- function tableAliasMapForSelect(node) {
54
- const aliases = new Map();
55
- for (const fromItem of node.from?.froms ?? []) {
56
- if (isTableNode(fromItem)) {
57
- const tableName = getTableName(fromItem);
58
- if (tableName)
59
- aliases.set(tableName, tableName);
60
- continue;
61
- }
62
- if (isAliasNode(fromItem)) {
63
- const tableName = getBaseTableFromAlias(fromItem);
64
- const aliasName = getAliasName(fromItem);
65
- if (tableName && aliasName)
66
- aliases.set(aliasName, tableName);
67
- }
68
- }
69
- for (const join of node.joins ?? []) {
70
- const joinItem = join.table;
71
- if (isTableNode(joinItem)) {
72
- const tableName = getTableName(joinItem);
73
- if (tableName)
74
- aliases.set(tableName, tableName);
75
- continue;
76
- }
77
- if (isAliasNode(joinItem)) {
78
- const tableName = getBaseTableFromAlias(joinItem);
79
- const aliasName = getAliasName(joinItem);
80
- if (tableName && aliasName)
81
- aliases.set(aliasName, tableName);
82
- }
83
- }
84
- return aliases;
85
- }
86
- function resolveTableName(args) {
87
- if (args.refTable) {
88
- return args.aliases.get(args.refTable) ?? args.refTable;
89
- }
90
- if (args.fallbackTable)
91
- return args.fallbackTable;
92
- if (args.aliases.size === 1) {
93
- return args.aliases.values().next().value;
94
- }
95
- return undefined;
96
- }
97
- function collectSelectionReferences(args) {
98
- const explicit = [];
99
- const selectAllTables = [];
100
- for (const selectionCandidate of args.selections) {
101
- if (!isSelectionNode(selectionCandidate))
102
- continue;
103
- const selectionNode = selectionCandidate;
104
- const selection = selectionNode.selection;
105
- if (selection.kind === 'SelectAllNode') {
106
- const tableName = resolveTableName({
107
- aliases: args.aliases,
108
- fallbackTable: args.fallbackTable,
109
- });
110
- if (tableName)
111
- selectAllTables.push(tableName);
112
- continue;
113
- }
114
- if (selection.kind === 'ReferenceNode') {
115
- if (selection.column.kind === 'SelectAllNode') {
116
- const tableRef = getTableName(selection.table);
117
- const tableName = resolveTableName({
118
- refTable: tableRef,
119
- aliases: args.aliases,
120
- fallbackTable: args.fallbackTable,
121
- });
122
- if (tableName)
123
- selectAllTables.push(tableName);
124
- continue;
125
- }
126
- const columnName = getColumnName(selection.column);
127
- const tableRef = getTableName(selection.table);
128
- const tableName = resolveTableName({
129
- refTable: tableRef,
130
- aliases: args.aliases,
131
- fallbackTable: args.fallbackTable,
132
- });
133
- if (!columnName || !tableName)
134
- continue;
135
- explicit.push({
136
- outputKey: columnName,
137
- table: tableName,
138
- column: columnName,
139
- });
140
- continue;
141
- }
142
- if (selection.kind === 'AliasNode' && isReferenceNode(selection.node)) {
143
- const outputKey = getIdentifierName(selection.alias);
144
- if (!outputKey)
145
- continue;
146
- const reference = selection.node;
147
- if (reference.column.kind === 'SelectAllNode') {
148
- const tableRef = getTableName(reference.table);
149
- const tableName = resolveTableName({
150
- refTable: tableRef,
151
- aliases: args.aliases,
152
- fallbackTable: args.fallbackTable,
153
- });
154
- if (tableName)
155
- selectAllTables.push(tableName);
156
- continue;
157
- }
158
- const columnName = getColumnName(reference.column);
159
- const tableRef = getTableName(reference.table);
160
- const tableName = resolveTableName({
161
- refTable: tableRef,
162
- aliases: args.aliases,
163
- fallbackTable: args.fallbackTable,
164
- });
165
- if (!columnName || !tableName)
166
- continue;
167
- explicit.push({
168
- outputKey,
169
- table: tableName,
170
- column: columnName,
171
- });
172
- }
173
- }
174
- return { explicit, selectAllTables };
175
- }
176
- function planForSelect(node) {
177
- if (!node.selections || node.selections.length === 0)
178
- return null;
179
- const aliases = tableAliasMapForSelect(node);
180
- const collected = collectSelectionReferences({
181
- selections: node.selections,
182
- aliases,
183
- });
184
- if (collected.explicit.length === 0 &&
185
- collected.selectAllTables.length === 0) {
186
- return null;
187
- }
188
- return collected;
189
- }
190
- function planForInsert(node) {
191
- if (!node.returning || node.returning.selections.length === 0)
192
- return null;
193
- const tableName = getTableName(node.into);
194
- if (!tableName)
195
- return null;
196
- const aliases = new Map([[tableName, tableName]]);
197
- const collected = collectSelectionReferences({
198
- selections: node.returning.selections,
199
- aliases,
200
- fallbackTable: tableName,
201
- });
202
- if (collected.explicit.length === 0 &&
203
- collected.selectAllTables.length === 0) {
204
- return null;
205
- }
206
- return collected;
207
- }
208
- function planForUpdate(node) {
209
- if (!node.returning || node.returning.selections.length === 0)
210
- return null;
211
- const tableName = getTableName(node.table);
212
- if (!tableName)
213
- return null;
214
- const aliases = new Map([[tableName, tableName]]);
215
- const collected = collectSelectionReferences({
216
- selections: node.returning.selections,
217
- aliases,
218
- fallbackTable: tableName,
219
- });
220
- if (collected.explicit.length === 0 &&
221
- collected.selectAllTables.length === 0) {
222
- return null;
223
- }
224
- return collected;
225
- }
226
- function planForDelete(node) {
227
- if (!node.returning || node.returning.selections.length === 0)
228
- return null;
229
- const fromTables = node.from?.froms ?? [];
230
- if (fromTables.length !== 1)
231
- return null;
232
- const fromItem = fromTables[0];
233
- if (!fromItem)
234
- return null;
235
- let tableName;
236
- if (isTableNode(fromItem)) {
237
- tableName = getTableName(fromItem);
238
- }
239
- else if (isAliasNode(fromItem)) {
240
- tableName = getBaseTableFromAlias(fromItem);
241
- }
242
- if (!tableName)
243
- return null;
244
- const aliases = new Map([[tableName, tableName]]);
245
- const collected = collectSelectionReferences({
246
- selections: node.returning.selections,
247
- aliases,
248
- fallbackTable: tableName,
249
- });
250
- if (collected.explicit.length === 0 &&
251
- collected.selectAllTables.length === 0) {
252
- return null;
253
- }
254
- return collected;
255
- }
256
- export function buildQueryResultPlan(node) {
257
- if (node.kind === 'SelectQueryNode')
258
- return planForSelect(node);
259
- if (node.kind === 'InsertQueryNode')
260
- return planForInsert(node);
261
- if (node.kind === 'UpdateQueryNode')
262
- return planForUpdate(node);
263
- if (node.kind === 'DeleteQueryNode')
264
- return planForDelete(node);
265
- return null;
266
- }
267
- export function applyQueryResultPlan(args) {
268
- const { row, plan, resolveTableCodecs, dialect } = args;
269
- const source = row;
270
- const target = { ...source };
271
- if (plan.selectAllTables.length > 0) {
272
- const codecCandidates = new Map();
273
- const ambiguousColumns = new Set();
274
- for (const table of plan.selectAllTables) {
275
- const tableCodecs = resolveTableCodecs(table, source);
276
- for (const [column, codec] of Object.entries(tableCodecs)) {
277
- if (!(column in source))
278
- continue;
279
- const existing = codecCandidates.get(column);
280
- if (existing && existing !== codec) {
281
- ambiguousColumns.add(column);
282
- continue;
283
- }
284
- codecCandidates.set(column, codec);
285
- }
286
- }
287
- for (const [column, codec] of codecCandidates.entries()) {
288
- if (ambiguousColumns.has(column))
289
- continue;
290
- target[column] = applyCodecFromDbValue(codec, target[column], dialect);
291
- }
292
- }
293
- for (const ref of plan.explicit) {
294
- if (!(ref.outputKey in source))
295
- continue;
296
- const tableCodecs = resolveTableCodecs(ref.table, {
297
- [ref.column]: source[ref.outputKey],
298
- });
299
- const codec = tableCodecs[ref.column];
300
- if (!codec)
301
- continue;
302
- target[ref.outputKey] = applyCodecFromDbValue(codec, target[ref.outputKey], dialect);
303
- }
304
- return target;
305
- }
306
- class ColumnCodecsTransformer extends OperationNodeTransformer {
307
- #dialect;
308
- #resolveTableCodecs;
309
- #currentUpdateTable = null;
310
- constructor(options) {
311
- super();
312
- this.#dialect = options.dialect ?? 'sqlite';
313
- this.#resolveTableCodecs = createTableColumnCodecsResolver(options.codecs, {
314
- dialect: this.#dialect,
315
- });
316
- }
317
- transformInsertQuery(node) {
318
- const transformed = super.transformInsertQuery(node);
319
- if (!transformed.columns || transformed.columns.length === 0) {
320
- return transformed;
321
- }
322
- if (!isValuesNode(transformed.values)) {
323
- return transformed;
324
- }
325
- const tableName = getTableName(transformed.into);
326
- if (!tableName)
327
- return transformed;
328
- const columns = transformed.columns
329
- .map((columnNode) => getColumnName(columnNode))
330
- .filter((columnName) => Boolean(columnName));
331
- if (columns.length === 0)
332
- return transformed;
333
- const tableCodecs = this.#resolveTableCodecs(tableName, Object.fromEntries(columns.map((column) => [column, null])));
334
- let didChange = false;
335
- const nextValueRows = transformed.values.values.map((valueNode) => {
336
- if (!isPrimitiveValueListNode(valueNode))
337
- return valueNode;
338
- const nextValues = valueNode.values.map((value, index) => {
339
- const columnName = columns[index];
340
- if (!columnName)
341
- return value;
342
- const codec = tableCodecs[columnName];
343
- if (!codec)
344
- return value;
345
- const converted = applyCodecToDbValue(codec, value, this.#dialect);
346
- if (converted !== value) {
347
- didChange = true;
348
- }
349
- return converted;
350
- });
351
- if (!didChange)
352
- return valueNode;
353
- return {
354
- ...valueNode,
355
- values: nextValues,
356
- };
357
- });
358
- if (!didChange)
359
- return transformed;
360
- const nextValuesNode = {
361
- ...transformed.values,
362
- values: nextValueRows,
363
- };
364
- return {
365
- ...transformed,
366
- values: nextValuesNode,
367
- };
368
- }
369
- transformUpdateQuery(node) {
370
- const previousTable = this.#currentUpdateTable;
371
- this.#currentUpdateTable = getTableName(node.table) ?? null;
372
- try {
373
- return super.transformUpdateQuery(node);
374
- }
375
- finally {
376
- this.#currentUpdateTable = previousTable;
377
- }
378
- }
379
- transformColumnUpdate(node, queryId) {
380
- const transformed = super.transformColumnUpdate(node, queryId);
381
- if (!this.#currentUpdateTable)
382
- return transformed;
383
- if (!isValueNode(transformed.value))
384
- return transformed;
385
- const columnName = getColumnName(transformed.column);
386
- if (!columnName)
387
- return transformed;
388
- const tableCodecs = this.#resolveTableCodecs(this.#currentUpdateTable, {
389
- [columnName]: null,
390
- });
391
- const codec = tableCodecs[columnName];
392
- if (!codec)
393
- return transformed;
394
- const valueNode = transformed.value;
395
- const converted = applyCodecToDbValue(codec, valueNode.value, this.#dialect);
396
- if (converted === valueNode.value)
397
- return transformed;
398
- const nextValueNode = {
399
- ...valueNode,
400
- value: converted,
401
- };
402
- return {
403
- ...transformed,
404
- value: nextValueNode,
405
- };
406
- }
407
- }
408
- export class ColumnCodecsPlugin {
409
- #dialect;
410
- #transformer;
411
- #resultPlans = new WeakMap();
412
- #resolveTableCodecs;
413
- constructor(options) {
414
- this.#dialect = options.dialect ?? 'sqlite';
415
- this.#resolveTableCodecs = createTableColumnCodecsResolver(options.codecs, {
416
- dialect: this.#dialect,
417
- });
418
- this.#transformer = new ColumnCodecsTransformer(options);
419
- }
420
- transformQuery({ node, queryId, }) {
421
- const transformed = this.#transformer.transformNode(node);
422
- const plan = buildQueryResultPlan(transformed);
423
- if (plan) {
424
- this.#resultPlans.set(queryId, plan);
425
- }
426
- return transformed;
427
- }
428
- async transformResult({ result, queryId, }) {
429
- const plan = this.#resultPlans.get(queryId);
430
- if (!plan)
431
- return result;
432
- if (!result.rows || result.rows.length === 0)
433
- return result;
434
- const rows = result.rows.map((row) => this.#transformRow(row, plan));
435
- return {
436
- ...result,
437
- rows,
438
- };
439
- }
440
- #transformRow(row, plan) {
441
- return applyQueryResultPlan({
442
- row,
443
- plan,
444
- resolveTableCodecs: this.#resolveTableCodecs,
445
- dialect: this.#dialect,
446
- });
447
- }
448
- }
449
- export function createColumnCodecsPlugin(options) {
450
- return new ColumnCodecsPlugin(options);
451
- }
452
- //# sourceMappingURL=kysely-column-codecs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kysely-column-codecs.js","sourceRoot":"","sources":["../src/kysely-column-codecs.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts DELETED
@@ -1,29 +0,0 @@
1
- /**
2
- * @syncular/core - Structured logging utilities for sync operations
3
- *
4
- * Uses the active telemetry backend configured via `configureSyncTelemetry()`.
5
- */
6
- import { type SyncTelemetryEvent } from './telemetry';
7
- /**
8
- * Sync log event structure.
9
- */
10
- export type SyncLogEvent = SyncTelemetryEvent;
11
- /**
12
- * Logger function type.
13
- */
14
- export type SyncLogger = (event: SyncLogEvent) => void;
15
- /**
16
- * Log a sync event using the currently configured telemetry backend.
17
- */
18
- export declare const logSyncEvent: SyncLogger;
19
- /**
20
- * Create a timer for measuring operation duration.
21
- * Returns the elapsed time in milliseconds when called.
22
- *
23
- * @example
24
- * const elapsed = createSyncTimer();
25
- * await doSomeWork();
26
- * logSyncEvent({ event: 'work_complete', durationMs: elapsed() });
27
- */
28
- export declare function createSyncTimer(): () => number;
29
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAE1B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,MAAM,MAAM,CAG9C"}
package/dist/logger.js DELETED
@@ -1,26 +0,0 @@
1
- /**
2
- * @syncular/core - Structured logging utilities for sync operations
3
- *
4
- * Uses the active telemetry backend configured via `configureSyncTelemetry()`.
5
- */
6
- import { getSyncTelemetry } from './telemetry.js';
7
- /**
8
- * Log a sync event using the currently configured telemetry backend.
9
- */
10
- export const logSyncEvent = (event) => {
11
- getSyncTelemetry().log(event);
12
- };
13
- /**
14
- * Create a timer for measuring operation duration.
15
- * Returns the elapsed time in milliseconds when called.
16
- *
17
- * @example
18
- * const elapsed = createSyncTimer();
19
- * await doSomeWork();
20
- * logSyncEvent({ event: 'work_complete', durationMs: elapsed() });
21
- */
22
- export function createSyncTimer() {
23
- const start = performance.now();
24
- return () => Math.round(performance.now() - start);
25
- }
26
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAA2B,MAAM,aAAa,CAAC;AAYxE;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAe,CAAC,KAAK,EAAE,EAAE;IAChD,gBAAgB,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -1,54 +0,0 @@
1
- /**
2
- * @syncular/core - Proxy Protocol Types
3
- *
4
- * Shared protocol types between proxy client (Kysely dialect) and server (WebSocket handler).
5
- */
6
- /**
7
- * Message sent from proxy client to server.
8
- */
9
- export interface ProxyMessage {
10
- /** Correlation ID for matching request/response */
11
- id: string;
12
- /** Message type */
13
- type: 'query' | 'begin' | 'commit' | 'rollback';
14
- /** SQL query (for 'query' type) */
15
- sql?: string;
16
- /** Query parameters (for 'query' type) */
17
- parameters?: readonly unknown[];
18
- }
19
- /**
20
- * Response sent from server to proxy client.
21
- */
22
- export interface ProxyResponse {
23
- /** Correlation ID matching the request */
24
- id: string;
25
- /** Response type */
26
- type: 'result' | 'error';
27
- /** Query result rows (for SELECT queries) */
28
- rows?: unknown[];
29
- /** Number of affected rows (for mutations) */
30
- rowCount?: number;
31
- /** Error message (for 'error' type) */
32
- error?: string;
33
- }
34
- /**
35
- * Handshake message sent when connection is established.
36
- */
37
- export interface ProxyHandshake {
38
- type: 'handshake';
39
- /** Actor ID for oplog tracking */
40
- actorId: string;
41
- /** Client ID for oplog tracking */
42
- clientId: string;
43
- }
44
- /**
45
- * Handshake acknowledgement from server.
46
- */
47
- export interface ProxyHandshakeAck {
48
- type: 'handshake_ack';
49
- /** Whether handshake was successful */
50
- ok: boolean;
51
- /** Error message if handshake failed */
52
- error?: string;
53
- }
54
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,uCAAuC;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -1,7 +0,0 @@
1
- /**
2
- * @syncular/core - Proxy Protocol Types
3
- *
4
- * Shared protocol types between proxy client (Kysely dialect) and server (WebSocket handler).
5
- */
6
- export {};
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}