@syncular/core 0.0.6-95 → 0.1.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 (159) hide show
  1. package/dist/blobs.d.ts +14 -7
  2. package/dist/blobs.d.ts.map +1 -1
  3. package/dist/blobs.js.map +1 -1
  4. package/dist/column-codecs.d.ts +3 -0
  5. package/dist/column-codecs.d.ts.map +1 -1
  6. package/dist/column-codecs.js +32 -4
  7. package/dist/column-codecs.js.map +1 -1
  8. package/dist/conflict.js.map +1 -1
  9. package/dist/database.js +1 -1
  10. package/dist/database.js.map +1 -1
  11. package/dist/error-responses.d.ts +393 -0
  12. package/dist/error-responses.d.ts.map +1 -0
  13. package/dist/error-responses.js +393 -0
  14. package/dist/error-responses.js.map +1 -0
  15. package/dist/http/api-client.d.ts +11 -0
  16. package/dist/http/api-client.d.ts.map +1 -0
  17. package/dist/http/api-client.js +30 -0
  18. package/dist/http/api-client.js.map +1 -0
  19. package/dist/http/blob.d.ts +6 -0
  20. package/dist/http/blob.d.ts.map +1 -0
  21. package/dist/http/blob.js +46 -0
  22. package/dist/http/blob.js.map +1 -0
  23. package/dist/http/generated/api.d.ts +5241 -0
  24. package/dist/http/generated/api.d.ts.map +1 -0
  25. package/dist/http/generated/api.js +6 -0
  26. package/dist/http/generated/api.js.map +1 -0
  27. package/dist/http/index.d.ts +18 -0
  28. package/dist/http/index.d.ts.map +1 -0
  29. package/dist/http/index.js +212 -0
  30. package/dist/http/index.js.map +1 -0
  31. package/dist/http/shared.d.ts +45 -0
  32. package/dist/http/shared.d.ts.map +1 -0
  33. package/dist/http/shared.js +122 -0
  34. package/dist/http/shared.js.map +1 -0
  35. package/dist/http/transport-client.d.ts +31 -0
  36. package/dist/http/transport-client.d.ts.map +1 -0
  37. package/dist/http/transport-client.js +193 -0
  38. package/dist/http/transport-client.js.map +1 -0
  39. package/dist/index.d.ts +2 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +19 -15
  42. package/dist/index.js.map +1 -1
  43. package/dist/kysely-column-codecs.d.ts +17 -1
  44. package/dist/kysely-column-codecs.d.ts.map +1 -1
  45. package/dist/kysely-column-codecs.js +56 -70
  46. package/dist/kysely-column-codecs.js.map +1 -1
  47. package/dist/logger.js +1 -1
  48. package/dist/logger.js.map +1 -1
  49. package/dist/schemas/blobs.d.ts +7 -1
  50. package/dist/schemas/blobs.d.ts.map +1 -1
  51. package/dist/schemas/blobs.js +1 -0
  52. package/dist/schemas/blobs.js.map +1 -1
  53. package/dist/schemas/common.d.ts +73 -1
  54. package/dist/schemas/common.d.ts.map +1 -1
  55. package/dist/schemas/common.js +38 -0
  56. package/dist/schemas/common.js.map +1 -1
  57. package/dist/schemas/index.js +3 -3
  58. package/dist/schemas/sync.d.ts +712 -38
  59. package/dist/schemas/sync.d.ts.map +1 -1
  60. package/dist/schemas/sync.js +209 -5
  61. package/dist/schemas/sync.js.map +1 -1
  62. package/dist/scopes/index.d.ts +5 -0
  63. package/dist/scopes/index.d.ts.map +1 -1
  64. package/dist/scopes/index.js +27 -0
  65. package/dist/scopes/index.js.map +1 -1
  66. package/dist/sentry.d.ts +31 -0
  67. package/dist/sentry.d.ts.map +1 -0
  68. package/dist/sentry.js +147 -0
  69. package/dist/sentry.js.map +1 -0
  70. package/dist/snapshot-chunks.d.ts +104 -20
  71. package/dist/snapshot-chunks.d.ts.map +1 -1
  72. package/dist/snapshot-chunks.js +665 -72
  73. package/dist/snapshot-chunks.js.map +1 -1
  74. package/dist/sync-packs.d.ts +33 -0
  75. package/dist/sync-packs.d.ts.map +1 -0
  76. package/dist/sync-packs.js +821 -0
  77. package/dist/sync-packs.js.map +1 -0
  78. package/dist/telemetry.d.ts.map +1 -1
  79. package/dist/telemetry.js +3 -2
  80. package/dist/telemetry.js.map +1 -1
  81. package/dist/transforms.js.map +1 -1
  82. package/dist/types.d.ts +48 -7
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/types.js.map +1 -1
  85. package/dist/utils/bytes.d.ts +4 -0
  86. package/dist/utils/bytes.d.ts.map +1 -0
  87. package/dist/utils/bytes.js +66 -0
  88. package/dist/utils/bytes.js.map +1 -0
  89. package/dist/utils/compression.d.ts +11 -3
  90. package/dist/utils/compression.d.ts.map +1 -1
  91. package/dist/utils/compression.js +102 -50
  92. package/dist/utils/compression.js.map +1 -1
  93. package/dist/utils/crypto.d.ts +7 -1
  94. package/dist/utils/crypto.d.ts.map +1 -1
  95. package/dist/utils/crypto.js +89 -7
  96. package/dist/utils/crypto.js.map +1 -1
  97. package/dist/utils/id.d.ts.map +1 -1
  98. package/dist/utils/id.js +4 -1
  99. package/dist/utils/id.js.map +1 -1
  100. package/dist/utils/index.d.ts +5 -0
  101. package/dist/utils/index.d.ts.map +1 -1
  102. package/dist/utils/index.js +9 -4
  103. package/dist/utils/index.js.map +1 -1
  104. package/dist/utils/internal-runtime.d.ts +16 -0
  105. package/dist/utils/internal-runtime.d.ts.map +1 -0
  106. package/dist/utils/internal-runtime.js +14 -0
  107. package/dist/utils/internal-runtime.js.map +1 -0
  108. package/dist/utils/object.js.map +1 -1
  109. package/dist/utils/realtime-change-index.d.ts +9 -0
  110. package/dist/utils/realtime-change-index.d.ts.map +1 -0
  111. package/dist/utils/realtime-change-index.js +36 -0
  112. package/dist/utils/realtime-change-index.js.map +1 -0
  113. package/dist/utils/realtime-connection-registry.d.ts +40 -0
  114. package/dist/utils/realtime-connection-registry.d.ts.map +1 -0
  115. package/dist/utils/realtime-connection-registry.js +237 -0
  116. package/dist/utils/realtime-connection-registry.js.map +1 -0
  117. package/dist/utils/table-registry.d.ts +10 -0
  118. package/dist/utils/table-registry.d.ts.map +1 -0
  119. package/dist/utils/table-registry.js +54 -0
  120. package/dist/utils/table-registry.js.map +1 -0
  121. package/dist/utils/url.d.ts +3 -0
  122. package/dist/utils/url.d.ts.map +1 -0
  123. package/dist/utils/url.js +20 -0
  124. package/dist/utils/url.js.map +1 -0
  125. package/package.json +52 -7
  126. package/src/blobs.ts +24 -7
  127. package/src/column-codecs.ts +36 -8
  128. package/src/error-responses.ts +423 -0
  129. package/src/http/api-client.ts +39 -0
  130. package/src/http/blob.ts +95 -0
  131. package/src/http/generated/api.ts +5241 -0
  132. package/src/http/index.ts +365 -0
  133. package/src/http/shared.ts +220 -0
  134. package/src/http/transport-client.ts +314 -0
  135. package/src/index.ts +4 -0
  136. package/src/kysely-column-codecs.ts +81 -86
  137. package/src/schemas/blobs.ts +10 -1
  138. package/src/schemas/common.ts +44 -0
  139. package/src/schemas/sync.ts +298 -7
  140. package/src/scopes/index.ts +42 -0
  141. package/src/sentry.ts +200 -0
  142. package/src/snapshot-chunks.ts +921 -69
  143. package/src/sync-packs.ts +1096 -0
  144. package/src/telemetry.ts +7 -2
  145. package/src/types.ts +63 -8
  146. package/src/utils/bytes.ts +75 -0
  147. package/src/utils/compression.ts +147 -51
  148. package/src/utils/crypto.ts +120 -7
  149. package/src/utils/id.ts +11 -1
  150. package/src/utils/index.ts +5 -0
  151. package/src/utils/internal-runtime.ts +39 -0
  152. package/src/utils/realtime-change-index.ts +44 -0
  153. package/src/utils/realtime-connection-registry.ts +286 -0
  154. package/src/utils/table-registry.ts +67 -0
  155. package/src/utils/url.ts +29 -0
  156. package/src/__tests__/compression.test.ts +0 -54
  157. package/src/__tests__/conflict.test.ts +0 -325
  158. package/src/__tests__/telemetry.test.ts +0 -170
  159. package/src/__tests__/utils.test.ts +0 -27
@@ -1,26 +1,110 @@
1
1
  /**
2
2
  * @syncular/core - Snapshot chunk encoding helpers
3
3
  */
4
- export declare const SYNC_SNAPSHOT_CHUNK_ENCODING = "json-row-frame-v1";
5
- export type SyncSnapshotChunkEncoding = typeof SYNC_SNAPSHOT_CHUNK_ENCODING;
4
+ export declare const SYNC_SNAPSHOT_CHUNK_ENCODING_BINARY_TABLE_V1 = "binary-table-v1";
5
+ export declare const SYNC_SNAPSHOT_CHUNK_ENCODINGS: readonly ["binary-table-v1"];
6
+ export declare const SYNC_SNAPSHOT_CHUNK_ENCODING = "binary-table-v1";
7
+ export type SyncSnapshotChunkEncoding = (typeof SYNC_SNAPSHOT_CHUNK_ENCODINGS)[number];
8
+ export declare function isSyncSnapshotChunkEncoding(value: unknown): value is SyncSnapshotChunkEncoding;
6
9
  export declare const SYNC_SNAPSHOT_CHUNK_COMPRESSION = "gzip";
7
10
  export type SyncSnapshotChunkCompression = typeof SYNC_SNAPSHOT_CHUNK_COMPRESSION;
8
- /**
9
- * Encode rows as framed JSON bytes without the format header.
10
- */
11
- export declare function encodeSnapshotRowFrames(rows: readonly unknown[]): Uint8Array;
12
- /**
13
- * Encode rows as framed JSON bytes with a format header.
14
- *
15
- * Format:
16
- * - 4-byte magic header ("SRF1")
17
- * - repeated frames of:
18
- * - 4-byte big-endian payload byte length
19
- * - UTF-8 JSON payload
20
- */
21
- export declare function encodeSnapshotRows(rows: readonly unknown[]): Uint8Array;
22
- /**
23
- * Decode framed JSON bytes into rows.
24
- */
25
- export declare function decodeSnapshotRows(bytes: Uint8Array): unknown[];
11
+ export declare const SYNC_SNAPSHOT_ARTIFACT_COMPRESSION_NONE = "none";
12
+ export declare const SYNC_SCOPED_SNAPSHOT_ARTIFACT_MANIFEST_VERSION = 1;
13
+ export declare const SYNC_SCOPED_SNAPSHOT_ARTIFACT_KIND_SQLITE_V1 = "sqlite-snapshot-v1";
14
+ export type SyncSnapshotArtifactCompression = SyncSnapshotChunkCompression | typeof SYNC_SNAPSHOT_ARTIFACT_COMPRESSION_NONE;
15
+ export type SyncScopedSnapshotArtifactKind = typeof SYNC_SCOPED_SNAPSHOT_ARTIFACT_KIND_SQLITE_V1;
16
+ export interface SnapshotManifestChunkDigestInput {
17
+ id: string;
18
+ byteLength: number;
19
+ sha256: string;
20
+ encoding: SyncSnapshotChunkEncoding;
21
+ compression: SyncSnapshotChunkCompression;
22
+ }
23
+ export interface SnapshotManifestDigestInput {
24
+ version: 1;
25
+ table: string;
26
+ asOfCommitSeq: number;
27
+ scopeDigest: string;
28
+ rowCursor: string | null;
29
+ rowLimit: number;
30
+ nextRowCursor: string | null;
31
+ isFirstPage: boolean;
32
+ isLastPage: boolean;
33
+ chunks: readonly SnapshotManifestChunkDigestInput[];
34
+ }
35
+ export interface SnapshotManifestDigestValue extends Omit<SnapshotManifestDigestInput, 'chunks'> {
36
+ chunks: SnapshotManifestChunkDigestInput[];
37
+ digest: string;
38
+ }
39
+ export interface ScopedSnapshotArtifactDigestInput {
40
+ version: typeof SYNC_SCOPED_SNAPSHOT_ARTIFACT_MANIFEST_VERSION;
41
+ artifactKind: SyncScopedSnapshotArtifactKind;
42
+ partitionId: string;
43
+ subscriptionId: string;
44
+ table: string;
45
+ schemaVersion: string;
46
+ asOfCommitSeq: number;
47
+ scopeDigest: string;
48
+ rowCursor: string | null;
49
+ rowLimit: number;
50
+ rowCount: number;
51
+ nextRowCursor: string | null;
52
+ isFirstPage: boolean;
53
+ isLastPage: boolean;
54
+ compression: SyncSnapshotArtifactCompression;
55
+ byteLength: number;
56
+ sha256: string;
57
+ featureSet: readonly string[];
58
+ }
59
+ export interface ScopedSnapshotArtifactManifest extends ScopedSnapshotArtifactDigestInput {
60
+ featureSet: string[];
61
+ digest: string;
62
+ }
63
+ export type BinarySnapshotColumnType = 'string' | 'integer' | 'float' | 'boolean' | 'json' | 'bytes';
64
+ export interface BinarySnapshotColumn {
65
+ name: string;
66
+ type: BinarySnapshotColumnType;
67
+ nullable?: boolean;
68
+ }
69
+ export interface BinarySnapshotTable {
70
+ table: string;
71
+ columns: readonly BinarySnapshotColumn[];
72
+ rows: readonly Record<string, unknown>[];
73
+ }
74
+ export type BinarySnapshotRowsEncoder<Row = unknown> = (rows: readonly Row[]) => Uint8Array;
75
+ export interface DecodedBinarySnapshotTable {
76
+ table: string;
77
+ columns: BinarySnapshotColumn[];
78
+ rows: Record<string, unknown>[];
79
+ }
80
+ export declare function snapshotScopeDigestFromCacheKey(scopeKey: string): string;
81
+ export declare function snapshotManifestDigestPayload(manifest: SnapshotManifestDigestInput): string;
82
+ export declare function createSnapshotManifestDigest(manifest: SnapshotManifestDigestInput): Promise<string>;
83
+ export declare function createSnapshotManifest(manifest: SnapshotManifestDigestInput): Promise<SnapshotManifestDigestValue>;
84
+ export declare function scopedSnapshotArtifactDigestPayload(manifest: ScopedSnapshotArtifactDigestInput): string;
85
+ export declare function createScopedSnapshotArtifactDigest(manifest: ScopedSnapshotArtifactDigestInput): Promise<string>;
86
+ export declare function createScopedSnapshotArtifactManifest(manifest: ScopedSnapshotArtifactDigestInput): Promise<ScopedSnapshotArtifactManifest>;
87
+ export declare function encodeBinarySnapshotTable(table: BinarySnapshotTable): Uint8Array;
88
+ export declare class BinarySnapshotTableWriter {
89
+ private readonly columns;
90
+ private readonly writer;
91
+ private readonly nullBitmapBytes;
92
+ private readonly expectedRows;
93
+ private rowsWritten;
94
+ private nullBitmapOffset;
95
+ constructor(table: string, columns: readonly BinarySnapshotColumn[], rowCount: number, initialCapacity?: number);
96
+ beginRow(): void;
97
+ writeNull(columnIndex: number): void;
98
+ writeString(value: string | Date, label: string): void;
99
+ writeInteger(value: number | bigint | string, label: string): void;
100
+ writeFloat(value: number, label: string): void;
101
+ writeBoolean(value: boolean, label: string): void;
102
+ writeJson(value: unknown, label: string): void;
103
+ writeBytes(value: Uint8Array | ArrayBuffer, columnName: string): void;
104
+ writeValue(columnIndex: number, value: unknown): void;
105
+ finish(): Uint8Array;
106
+ private column;
107
+ private currentNullBitmapOffset;
108
+ }
109
+ export declare function decodeBinarySnapshotTable(bytes: Uint8Array): DecodedBinarySnapshotTable;
26
110
  //# sourceMappingURL=snapshot-chunks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-chunks.d.ts","sourceRoot":"","sources":["../src/snapshot-chunks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAChE,MAAM,MAAM,yBAAyB,GAAG,OAAO,4BAA4B,CAAC;AAE5E,eAAO,MAAM,+BAA+B,SAAS,CAAC;AACtD,MAAM,MAAM,4BAA4B,GACtC,OAAO,+BAA+B,CAAC;AAWzC;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,UAAU,CA2B5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,UAAU,CASvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,EAAE,CAoC/D"}
1
+ {"version":3,"file":"snapshot-chunks.d.ts","sourceRoot":"","sources":["../src/snapshot-chunks.ts"],"names":[],"mappings":"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"}