@syncular/core 0.1.3 → 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 +0,0 @@
1
- {"version":3,"file":"sync-packs.js","sourceRoot":"","sources":["../src/sync-packs.ts"],"names":[],"mappings":"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"}
@@ -1,114 +0,0 @@
1
- /**
2
- * @syncular/core - Runtime telemetry abstraction
3
- *
4
- * Provides vendor-neutral logging, tracing, and metrics interfaces so
5
- * Syncular libraries can emit telemetry without coupling to a specific SDK.
6
- */
7
- /**
8
- * Supported log levels.
9
- */
10
- export type SyncTelemetryLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
11
- /**
12
- * Primitive attribute value used by traces and metrics.
13
- */
14
- export type SyncTelemetryAttributeValue = string | number | boolean;
15
- /**
16
- * Attribute bag used by traces and metrics.
17
- */
18
- export type SyncTelemetryAttributes = Record<string, SyncTelemetryAttributeValue>;
19
- /**
20
- * Structured sync log event.
21
- */
22
- export interface SyncTelemetryEvent {
23
- event: string;
24
- level?: SyncTelemetryLevel;
25
- userId?: string;
26
- durationMs?: number;
27
- rowCount?: number;
28
- resetRequired?: boolean;
29
- error?: string;
30
- [key: string]: unknown;
31
- }
32
- /**
33
- * Span creation options.
34
- */
35
- export interface SyncSpanOptions {
36
- name: string;
37
- op?: string;
38
- attributes?: SyncTelemetryAttributes;
39
- }
40
- /**
41
- * Span API exposed to Syncular internals.
42
- */
43
- export interface SyncSpan {
44
- setAttribute(name: string, value: SyncTelemetryAttributeValue): void;
45
- setAttributes(attributes: SyncTelemetryAttributes): void;
46
- setStatus(status: 'ok' | 'error'): void;
47
- }
48
- /**
49
- * Tracing interface.
50
- */
51
- export interface SyncTracer {
52
- startSpan<T>(options: SyncSpanOptions, callback: (span: SyncSpan) => T): T;
53
- }
54
- /**
55
- * Metric record options.
56
- */
57
- export interface SyncMetricOptions {
58
- attributes?: SyncTelemetryAttributes;
59
- unit?: string;
60
- }
61
- /**
62
- * Metrics interface.
63
- */
64
- export interface SyncMetrics {
65
- count(name: string, value?: number, options?: SyncMetricOptions): void;
66
- gauge(name: string, value: number, options?: SyncMetricOptions): void;
67
- distribution(name: string, value: number, options?: SyncMetricOptions): void;
68
- }
69
- /**
70
- * Unified telemetry interface.
71
- */
72
- export interface SyncTelemetry {
73
- log(event: SyncTelemetryEvent): void;
74
- tracer: SyncTracer;
75
- metrics: SyncMetrics;
76
- captureException(error: unknown, context?: Record<string, unknown>): void;
77
- }
78
- /**
79
- * Create console-backed default telemetry (logs only; no-op tracing/metrics).
80
- */
81
- export declare function createDefaultSyncTelemetry(): SyncTelemetry;
82
- /**
83
- * Get currently configured telemetry backend.
84
- */
85
- export declare function getSyncTelemetry(): SyncTelemetry;
86
- /**
87
- * Replace active telemetry backend.
88
- */
89
- export declare function configureSyncTelemetry(telemetry: SyncTelemetry): void;
90
- /**
91
- * Reset telemetry backend to default console implementation.
92
- */
93
- export declare function resetSyncTelemetry(): void;
94
- /**
95
- * Capture an exception through the active telemetry backend.
96
- */
97
- export declare function captureSyncException(error: unknown, context?: Record<string, unknown>): void;
98
- /**
99
- * Start a span through the active telemetry backend.
100
- */
101
- export declare function startSyncSpan<T>(options: SyncSpanOptions, callback: (span: SyncSpan) => T): T;
102
- /**
103
- * Record a counter metric through the active telemetry backend.
104
- */
105
- export declare function countSyncMetric(name: string, value?: number, options?: SyncMetricOptions): void;
106
- /**
107
- * Record a gauge metric through the active telemetry backend.
108
- */
109
- export declare function gaugeSyncMetric(name: string, value: number, options?: SyncMetricOptions): void;
110
- /**
111
- * Record a distribution metric through the active telemetry backend.
112
- */
113
- export declare function distributionSyncMetric(name: string, value: number, options?: SyncMetricOptions): void;
114
- //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,MAAM,EACN,2BAA2B,CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACrE,aAAa,CAAC,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzD,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACtE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3E;AA+CD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,aAAa,CAqB1D;AAID;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,GAC9B,CAAC,CAEH;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAEN"}
package/dist/telemetry.js DELETED
@@ -1,114 +0,0 @@
1
- /**
2
- * @syncular/core - Runtime telemetry abstraction
3
- *
4
- * Provides vendor-neutral logging, tracing, and metrics interfaces so
5
- * Syncular libraries can emit telemetry without coupling to a specific SDK.
6
- */
7
- const noopSpan = {
8
- setAttribute() { },
9
- setAttributes() { },
10
- setStatus() { },
11
- };
12
- const noopTracer = {
13
- startSpan(_options, callback) {
14
- return callback(noopSpan);
15
- },
16
- };
17
- const noopMetrics = {
18
- count() { },
19
- gauge() { },
20
- distribution() { },
21
- };
22
- function createConsoleLogger() {
23
- const runtimeGlobals = globalThis;
24
- const isNode = typeof globalThis !== 'undefined' &&
25
- typeof runtimeGlobals.setImmediate === 'function';
26
- const defer = isNode
27
- ? (fn) => runtimeGlobals.setImmediate?.(fn)
28
- : (fn) => setTimeout(fn, 0);
29
- return (event) => {
30
- defer(() => {
31
- const level = event.level ?? (event.error ? 'error' : 'info');
32
- const payload = {
33
- timestamp: new Date().toISOString(),
34
- level,
35
- ...event,
36
- };
37
- console.log(JSON.stringify(payload));
38
- });
39
- };
40
- }
41
- /**
42
- * Create console-backed default telemetry (logs only; no-op tracing/metrics).
43
- */
44
- export function createDefaultSyncTelemetry() {
45
- const logger = createConsoleLogger();
46
- return {
47
- log(event) {
48
- logger(event);
49
- },
50
- tracer: noopTracer,
51
- metrics: noopMetrics,
52
- captureException(error, context) {
53
- const message = error instanceof Error
54
- ? error.message
55
- : `Unknown error: ${String(error)}`;
56
- logger({
57
- event: 'sync.exception',
58
- level: 'error',
59
- error: message,
60
- ...(context ?? {}),
61
- });
62
- },
63
- };
64
- }
65
- let activeSyncTelemetry = createDefaultSyncTelemetry();
66
- /**
67
- * Get currently configured telemetry backend.
68
- */
69
- export function getSyncTelemetry() {
70
- return activeSyncTelemetry;
71
- }
72
- /**
73
- * Replace active telemetry backend.
74
- */
75
- export function configureSyncTelemetry(telemetry) {
76
- activeSyncTelemetry = telemetry;
77
- }
78
- /**
79
- * Reset telemetry backend to default console implementation.
80
- */
81
- export function resetSyncTelemetry() {
82
- activeSyncTelemetry = createDefaultSyncTelemetry();
83
- }
84
- /**
85
- * Capture an exception through the active telemetry backend.
86
- */
87
- export function captureSyncException(error, context) {
88
- activeSyncTelemetry.captureException(error, context);
89
- }
90
- /**
91
- * Start a span through the active telemetry backend.
92
- */
93
- export function startSyncSpan(options, callback) {
94
- return activeSyncTelemetry.tracer.startSpan(options, callback);
95
- }
96
- /**
97
- * Record a counter metric through the active telemetry backend.
98
- */
99
- export function countSyncMetric(name, value, options) {
100
- activeSyncTelemetry.metrics.count(name, value, options);
101
- }
102
- /**
103
- * Record a gauge metric through the active telemetry backend.
104
- */
105
- export function gaugeSyncMetric(name, value, options) {
106
- activeSyncTelemetry.metrics.gauge(name, value, options);
107
- }
108
- /**
109
- * Record a distribution metric through the active telemetry backend.
110
- */
111
- export function distributionSyncMetric(name, value, options) {
112
- activeSyncTelemetry.metrics.distribution(name, value, options);
113
- }
114
- //# sourceMappingURL=telemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
@@ -1,146 +0,0 @@
1
- /**
2
- * @syncular/core - Data transformation hooks
3
- *
4
- * Provides interfaces for field-level transformations (e.g., encryption/decryption)
5
- * that can be applied during sync operations.
6
- */
7
- /**
8
- * Direction of the transformation.
9
- * - 'toClient': Server → Client (e.g., decrypt for client)
10
- * - 'toServer': Client → Server (e.g., encrypt for server)
11
- */
12
- export type TransformDirection = 'toClient' | 'toServer';
13
- /**
14
- * Context passed to transform functions.
15
- */
16
- export interface TransformContext {
17
- /** Direction of transformation */
18
- direction: TransformDirection;
19
- /** Scope name */
20
- scope: string;
21
- /** Table name */
22
- table: string;
23
- /** Row ID */
24
- rowId: string;
25
- /** User ID performing the operation */
26
- userId: string;
27
- }
28
- /**
29
- * A field transformer handles transformation of a single field.
30
- *
31
- * @example
32
- * const secretNotesTransformer: FieldTransformer = {
33
- * field: 'secret_notes',
34
- * async transform(value, ctx) {
35
- * const key = await getUserEncryptionKey(ctx.userId);
36
- * return ctx.direction === 'toClient'
37
- * ? decrypt(value as string, key)
38
- * : encrypt(value as string, key);
39
- * }
40
- * };
41
- */
42
- export interface FieldTransformer {
43
- /** Field name to transform */
44
- field: string;
45
- /**
46
- * Transform the field value.
47
- * @param value - Current field value
48
- * @param ctx - Transform context
49
- * @returns Transformed value
50
- */
51
- transform(value: unknown, ctx: TransformContext): Promise<unknown> | unknown;
52
- }
53
- /**
54
- * Configuration for transforms on a scope.
55
- */
56
- export interface ScopeTransformConfig {
57
- /** Scope name this config applies to */
58
- scope: string;
59
- /** Field transformers for this scope */
60
- fields?: FieldTransformer[];
61
- }
62
- /**
63
- * Registry for managing data transforms.
64
- *
65
- * @example
66
- * const transforms = new TransformRegistry();
67
- *
68
- * transforms.register({
69
- * scope: 'tasks',
70
- * fields: [{
71
- * field: 'secret_notes',
72
- * async transform(value, ctx) {
73
- * const key = await getUserEncryptionKey(ctx.userId);
74
- * return ctx.direction === 'toClient'
75
- * ? decrypt(value as string, key)
76
- * : encrypt(value as string, key);
77
- * }
78
- * }]
79
- * });
80
- *
81
- * // Apply transforms to data
82
- * const transformed = await transforms.apply(
83
- * [{ id: '1', secret_notes: 'encrypted...' }],
84
- * { direction: 'toClient', scope: 'tasks', ... }
85
- * );
86
- */
87
- export declare class TransformRegistry {
88
- private configs;
89
- /**
90
- * Register transform config for a scope.
91
- * @throws If config for this scope is already registered
92
- */
93
- register(config: ScopeTransformConfig): void;
94
- /**
95
- * Unregister transform config by scope.
96
- * @returns true if config was found and removed
97
- */
98
- unregister(scope: string): boolean;
99
- /**
100
- * Get config for a scope.
101
- */
102
- get(scope: string): ScopeTransformConfig | undefined;
103
- /**
104
- * Check if any transforms are registered for a scope.
105
- */
106
- hasTransforms(scope: string): boolean;
107
- /**
108
- * Get all registered configs.
109
- */
110
- getAll(): ScopeTransformConfig[];
111
- /**
112
- * Apply transforms to a single row.
113
- *
114
- * @param row - Row data to transform
115
- * @param ctx - Transform context (without rowId, will be extracted from row)
116
- * @param rowIdField - Field name for row ID (default: 'id')
117
- * @returns Transformed row
118
- */
119
- applyToRow<T extends Record<string, unknown>>(row: T, ctx: Omit<TransformContext, 'rowId'>, rowIdField?: string): Promise<T>;
120
- /**
121
- * Apply transforms to multiple rows.
122
- *
123
- * @param rows - Array of rows to transform
124
- * @param ctx - Transform context (without rowId)
125
- * @param rowIdField - Field name for row ID (default: 'id')
126
- * @returns Transformed rows
127
- */
128
- apply<T extends Record<string, unknown>>(rows: T[], ctx: Omit<TransformContext, 'rowId'>, rowIdField?: string): Promise<T[]>;
129
- /**
130
- * Apply transforms to a mutation payload.
131
- *
132
- * @param payload - Mutation payload (may be partial row)
133
- * @param ctx - Full transform context
134
- * @returns Transformed payload
135
- */
136
- applyToPayload<T extends Record<string, unknown>>(payload: T | null, ctx: TransformContext): Promise<T | null>;
137
- /**
138
- * Clear all registered configs.
139
- */
140
- clear(): void;
141
- }
142
- /**
143
- * Create a new transform registry.
144
- */
145
- export declare function createTransformRegistry(): TransformRegistry;
146
- //# sourceMappingURL=transforms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAgD;IAE/D;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAO3C;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjC;IAED;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAEnD;IAED;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpC;IAED;;OAEG;IACH,MAAM,IAAI,oBAAoB,EAAE,CAE/B;IAED;;;;;;;OAOG;IACG,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChD,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EACpC,UAAU,SAAO,GAChB,OAAO,CAAC,CAAC,CAAC,CA4BZ;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3C,IAAI,EAAE,CAAC,EAAE,EACT,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EACpC,UAAU,SAAO,GAChB,OAAO,CAAC,CAAC,EAAE,CAAC,CASd;IAED;;;;;;OAMG;IACG,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpD,OAAO,EAAE,CAAC,GAAG,IAAI,EACjB,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA4BnB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -1,155 +0,0 @@
1
- /**
2
- * @syncular/core - Data transformation hooks
3
- *
4
- * Provides interfaces for field-level transformations (e.g., encryption/decryption)
5
- * that can be applied during sync operations.
6
- */
7
- /**
8
- * Registry for managing data transforms.
9
- *
10
- * @example
11
- * const transforms = new TransformRegistry();
12
- *
13
- * transforms.register({
14
- * scope: 'tasks',
15
- * fields: [{
16
- * field: 'secret_notes',
17
- * async transform(value, ctx) {
18
- * const key = await getUserEncryptionKey(ctx.userId);
19
- * return ctx.direction === 'toClient'
20
- * ? decrypt(value as string, key)
21
- * : encrypt(value as string, key);
22
- * }
23
- * }]
24
- * });
25
- *
26
- * // Apply transforms to data
27
- * const transformed = await transforms.apply(
28
- * [{ id: '1', secret_notes: 'encrypted...' }],
29
- * { direction: 'toClient', scope: 'tasks', ... }
30
- * );
31
- */
32
- export class TransformRegistry {
33
- configs = new Map();
34
- /**
35
- * Register transform config for a scope.
36
- * @throws If config for this scope is already registered
37
- */
38
- register(config) {
39
- if (this.configs.has(config.scope)) {
40
- throw new Error(`Transform config for scope "${config.scope}" is already registered`);
41
- }
42
- this.configs.set(config.scope, config);
43
- }
44
- /**
45
- * Unregister transform config by scope.
46
- * @returns true if config was found and removed
47
- */
48
- unregister(scope) {
49
- return this.configs.delete(scope);
50
- }
51
- /**
52
- * Get config for a scope.
53
- */
54
- get(scope) {
55
- return this.configs.get(scope);
56
- }
57
- /**
58
- * Check if any transforms are registered for a scope.
59
- */
60
- hasTransforms(scope) {
61
- const config = this.configs.get(scope);
62
- return config !== undefined && (config.fields?.length ?? 0) > 0;
63
- }
64
- /**
65
- * Get all registered configs.
66
- */
67
- getAll() {
68
- return Array.from(this.configs.values());
69
- }
70
- /**
71
- * Apply transforms to a single row.
72
- *
73
- * @param row - Row data to transform
74
- * @param ctx - Transform context (without rowId, will be extracted from row)
75
- * @param rowIdField - Field name for row ID (default: 'id')
76
- * @returns Transformed row
77
- */
78
- async applyToRow(row, ctx, rowIdField = 'id') {
79
- const config = this.configs.get(ctx.scope);
80
- if (!config?.fields?.length) {
81
- return row;
82
- }
83
- const rowId = String(row[rowIdField] ?? '');
84
- const fullCtx = { ...ctx, rowId };
85
- const result = { ...row };
86
- for (const transformer of config.fields) {
87
- if (transformer.field in result) {
88
- try {
89
- result[transformer.field] = (await transformer.transform(result[transformer.field], fullCtx));
90
- }
91
- catch (err) {
92
- console.error(`[transforms] Error transforming field "${transformer.field}" for ${ctx.scope}:${rowId}:`, err);
93
- // Keep original value on error
94
- }
95
- }
96
- }
97
- return result;
98
- }
99
- /**
100
- * Apply transforms to multiple rows.
101
- *
102
- * @param rows - Array of rows to transform
103
- * @param ctx - Transform context (without rowId)
104
- * @param rowIdField - Field name for row ID (default: 'id')
105
- * @returns Transformed rows
106
- */
107
- async apply(rows, ctx, rowIdField = 'id') {
108
- const config = this.configs.get(ctx.scope);
109
- if (!config?.fields?.length) {
110
- return rows;
111
- }
112
- return Promise.all(rows.map((row) => this.applyToRow(row, ctx, rowIdField)));
113
- }
114
- /**
115
- * Apply transforms to a mutation payload.
116
- *
117
- * @param payload - Mutation payload (may be partial row)
118
- * @param ctx - Full transform context
119
- * @returns Transformed payload
120
- */
121
- async applyToPayload(payload, ctx) {
122
- if (!payload)
123
- return null;
124
- const config = this.configs.get(ctx.scope);
125
- if (!config?.fields?.length) {
126
- return payload;
127
- }
128
- const result = { ...payload };
129
- for (const transformer of config.fields) {
130
- if (transformer.field in result) {
131
- try {
132
- result[transformer.field] = (await transformer.transform(result[transformer.field], ctx));
133
- }
134
- catch (err) {
135
- console.error(`[transforms] Error transforming field "${transformer.field}" for ${ctx.scope}:${ctx.rowId}:`, err);
136
- // Keep original value on error
137
- }
138
- }
139
- }
140
- return result;
141
- }
142
- /**
143
- * Clear all registered configs.
144
- */
145
- clear() {
146
- this.configs.clear();
147
- }
148
- }
149
- /**
150
- * Create a new transform registry.
151
- */
152
- export function createTransformRegistry() {
153
- return new TransformRegistry();
154
- }
155
- //# sourceMappingURL=transforms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"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"}