@powersync/service-core-tests 0.0.0-dev-20260313100403 → 0.0.0-dev-20260601140105

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 (55) hide show
  1. package/CHANGELOG.md +91 -5
  2. package/dist/test-utils/AbstractStreamTestContext.d.ts +51 -0
  3. package/dist/test-utils/AbstractStreamTestContext.js +143 -0
  4. package/dist/test-utils/AbstractStreamTestContext.js.map +1 -0
  5. package/dist/test-utils/MetricsHelper.js +1 -1
  6. package/dist/test-utils/MetricsHelper.js.map +1 -1
  7. package/dist/test-utils/StorageDataHelpers.d.ts +8 -0
  8. package/dist/test-utils/StorageDataHelpers.js +33 -0
  9. package/dist/test-utils/StorageDataHelpers.js.map +1 -0
  10. package/dist/test-utils/general-utils.d.ts +3 -8
  11. package/dist/test-utils/general-utils.js +28 -26
  12. package/dist/test-utils/general-utils.js.map +1 -1
  13. package/dist/test-utils/stream_utils.js +2 -2
  14. package/dist/test-utils/stream_utils.js.map +1 -1
  15. package/dist/test-utils/test-utils-index.d.ts +2 -0
  16. package/dist/test-utils/test-utils-index.js +2 -0
  17. package/dist/test-utils/test-utils-index.js.map +1 -1
  18. package/dist/tests/register-compacting-tests.js +491 -627
  19. package/dist/tests/register-compacting-tests.js.map +1 -1
  20. package/dist/tests/register-data-storage-checkpoint-tests.js +192 -304
  21. package/dist/tests/register-data-storage-checkpoint-tests.js.map +1 -1
  22. package/dist/tests/register-data-storage-data-tests.js +1125 -1446
  23. package/dist/tests/register-data-storage-data-tests.js.map +1 -1
  24. package/dist/tests/register-data-storage-parameter-tests.js +816 -629
  25. package/dist/tests/register-data-storage-parameter-tests.js.map +1 -1
  26. package/dist/tests/register-migration-tests.js +63 -139
  27. package/dist/tests/register-migration-tests.js.map +1 -1
  28. package/dist/tests/register-parameter-compacting-tests.js +95 -171
  29. package/dist/tests/register-parameter-compacting-tests.js.map +1 -1
  30. package/dist/tests/register-report-tests.js +22 -22
  31. package/dist/tests/register-report-tests.js.map +1 -1
  32. package/dist/tests/register-sync-tests.js +965 -1155
  33. package/dist/tests/register-sync-tests.js.map +1 -1
  34. package/dist/tests/tests-index.d.ts +4 -4
  35. package/dist/tests/tests-index.js +4 -4
  36. package/dist/tests/tests-index.js.map +1 -1
  37. package/dist/tests/util.d.ts +1 -2
  38. package/dist/tests/util.js +8 -5
  39. package/dist/tests/util.js.map +1 -1
  40. package/package.json +7 -6
  41. package/src/test-utils/AbstractStreamTestContext.ts +179 -0
  42. package/src/test-utils/MetricsHelper.ts +1 -1
  43. package/src/test-utils/StorageDataHelpers.ts +44 -0
  44. package/src/test-utils/general-utils.ts +31 -31
  45. package/src/test-utils/stream_utils.ts +2 -2
  46. package/src/test-utils/test-utils-index.ts +2 -0
  47. package/src/tests/register-data-storage-data-tests.ts +24 -2
  48. package/src/tests/register-data-storage-parameter-tests.ts +519 -67
  49. package/src/tests/register-parameter-compacting-tests.ts +8 -9
  50. package/src/tests/register-report-tests.ts +22 -22
  51. package/src/tests/register-sync-tests.ts +74 -0
  52. package/src/tests/tests-index.ts +4 -4
  53. package/src/tests/util.ts +12 -9
  54. package/tsconfig.json +3 -0
  55. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,21 +1,107 @@
1
1
  # @powersync/service-core-tests
2
2
 
3
- ## 0.0.0-dev-20260313100403
3
+ ## 0.0.0-dev-20260601140105
4
+
5
+ ### Minor Changes
6
+
7
+ - e2bf1ad: [Internal] rework resolveTables to handle multiple SourceTables.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [6e2a57e]
12
+ - Updated dependencies [ec6df9f]
13
+ - Updated dependencies [99d33d5]
14
+ - Updated dependencies [cae92ce]
15
+ - Updated dependencies [5ac5345]
16
+ - Updated dependencies [15cb880]
17
+ - Updated dependencies [f2f5086]
18
+ - Updated dependencies [5b1b215]
19
+ - Updated dependencies [e2bf1ad]
20
+ - Updated dependencies [92cc83b]
21
+ - Updated dependencies [0aab0f9]
22
+ - Updated dependencies [15e2466]
23
+ - Updated dependencies [b116857]
24
+ - Updated dependencies [a94b6c3]
25
+ - @powersync/service-sync-rules@0.0.0-dev-20260601140105
26
+ - @powersync/service-core@0.0.0-dev-20260601140105
27
+ - @powersync/lib-services-framework@0.0.0-dev-20260601140105
28
+
29
+ ## 0.15.5
30
+
31
+ ### Patch Changes
32
+
33
+ - cdb8993: Add `config.storage_version` configuration option.
34
+ - 040fffd: Improve consistency of logs and error messages
35
+ - Updated dependencies [f20f318]
36
+ - Updated dependencies [9add445]
37
+ - Updated dependencies [17503d1]
38
+ - Updated dependencies [ad9ea06]
39
+ - Updated dependencies [01c29c3]
40
+ - Updated dependencies [8afe719]
41
+ - Updated dependencies [b8f0195]
42
+ - Updated dependencies [cdb8993]
43
+ - Updated dependencies [7c7b525]
44
+ - Updated dependencies [824e229]
45
+ - Updated dependencies [6304a21]
46
+ - Updated dependencies [040fffd]
47
+ - Updated dependencies [9e474d3]
48
+ - Updated dependencies [423822c]
49
+ - Updated dependencies [2b19fc3]
50
+ - @powersync/service-core@1.21.0
51
+ - @powersync/service-sync-rules@0.36.0
52
+ - @powersync/service-jsonbig@0.17.13
53
+
54
+ ## 0.15.4
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [41875f7]
59
+ - Updated dependencies [2b72c2a]
60
+ - Updated dependencies [4611a49]
61
+ - Updated dependencies [b6a7896]
62
+ - Updated dependencies [2b72c2a]
63
+ - Updated dependencies [756746c]
64
+ - @powersync/service-core@1.20.5
65
+ - @powersync/service-sync-rules@0.35.0
66
+
67
+ ## 0.15.3
68
+
69
+ ### Patch Changes
70
+
71
+ - df451c6: Node 24.14.0 and other dependency upgrades.
72
+ - Updated dependencies [df451c6]
73
+ - Updated dependencies [dea1e00]
74
+ - Updated dependencies [ada86f2]
75
+ - Updated dependencies [11b4deb]
76
+ - @powersync/service-core@1.20.4
77
+ - @powersync/service-sync-rules@0.34.1
78
+
79
+ ## 0.15.2
80
+
81
+ ### Patch Changes
82
+
83
+ - @powersync/service-core@1.20.3
84
+
85
+ ## 0.15.1
4
86
 
5
87
  ### Patch Changes
6
88
 
89
+ - 8d5d7ee: Added schema change detection and handling for the SQL Server adapter
7
90
  - 4c92c24: [Internal] Add a createWriter() API to replace startBatch().
8
- - 03b9a3b: Rename client connection reporting methods and top-level response keys to use clearer current connections, sessions, and summary naming, without changing the underlying storage schema.
91
+ - Updated dependencies [224c35e]
9
92
  - Updated dependencies [acf1486]
10
93
  - Updated dependencies [391c5ef]
94
+ - Updated dependencies [7ee87d4]
11
95
  - Updated dependencies [99de8be]
12
96
  - Updated dependencies [9daf965]
13
97
  - Updated dependencies [4c92c24]
98
+ - Updated dependencies [3d230c2]
99
+ - Updated dependencies [206633f]
14
100
  - Updated dependencies [3a0627e]
15
101
  - Updated dependencies [275fd5f]
16
- - Updated dependencies [03b9a3b]
17
- - @powersync/service-sync-rules@0.0.0-dev-20260313100403
18
- - @powersync/service-core@0.0.0-dev-20260313100403
102
+ - Updated dependencies [7ce1b8e]
103
+ - @powersync/service-sync-rules@0.34.0
104
+ - @powersync/service-core@1.20.2
19
105
 
20
106
  ## 0.15.0
21
107
 
@@ -0,0 +1,51 @@
1
+ import { BucketStorageFactory, InternalOpId, storage, SyncRulesBucketStorage } from '@powersync/service-core';
2
+ export declare abstract class AbstractStreamTestContext implements AsyncDisposable {
3
+ protected abortController: AbortController;
4
+ protected syncRulesContent?: storage.PersistedSyncRulesContent;
5
+ storage?: SyncRulesBucketStorage;
6
+ protected settledReplicationPromise?: Promise<PromiseSettledResult<void>>;
7
+ abstract get factory(): BucketStorageFactory;
8
+ protected abstract get storageVersion(): number;
9
+ [Symbol.asyncDispose](): Promise<void>;
10
+ protected abstract _dispose(): Promise<void>;
11
+ dispose(): Promise<void>;
12
+ updateSyncRules(content: string): Promise<storage.SyncRulesBucketStorage>;
13
+ loadNextSyncRules(): Promise<storage.SyncRulesBucketStorage>;
14
+ loadActiveSyncRules(): Promise<storage.SyncRulesBucketStorage>;
15
+ private getSyncRulesContent;
16
+ /**
17
+ * Replicate a snapshot, start streaming, and wait for a consistent checkpoint.
18
+ */
19
+ initializeReplication(): Promise<void>;
20
+ protected abstract triggerReplication(): Promise<void>;
21
+ protected abstract waitForInitialSnapshot(): Promise<void>;
22
+ /**
23
+ * Replicate the initial snapshot, and start streaming.
24
+ */
25
+ replicateSnapshot(): Promise<void>;
26
+ abstract getClientCheckpoint(options?: {
27
+ timeout?: number;
28
+ }): Promise<bigint>;
29
+ getCheckpoint(options?: {
30
+ timeout?: number;
31
+ }): Promise<bigint>;
32
+ getBucketsDataBatch(buckets: Record<string, InternalOpId>, options?: {
33
+ timeout?: number;
34
+ }): Promise<storage.SyncBucketDataChunk[]>;
35
+ /**
36
+ * This waits for a client checkpoint.
37
+ */
38
+ getBucketData(bucket: string, start?: InternalOpId | string | undefined, options?: {
39
+ timeout?: number;
40
+ }): Promise<import("@powersync/service-core").OplogEntry<import("@powersync/service-core").StoredOplogData>[]>;
41
+ getChecksums(buckets: string[], options?: {
42
+ timeout?: number;
43
+ }): Promise<Map<any, any>>;
44
+ getChecksum(bucket: string, options?: {
45
+ timeout?: number;
46
+ }): Promise<any>;
47
+ /**
48
+ * This does not wait for a client checkpoint.
49
+ */
50
+ getCurrentBucketData(bucket: string, start?: InternalOpId | string | undefined): Promise<import("@powersync/service-core").OplogEntry<import("@powersync/service-core").StoredOplogData>[]>;
51
+ }
@@ -0,0 +1,143 @@
1
+ import { ReplicationAbortedError } from '@powersync/lib-services-framework';
2
+ import { settledPromise, unsettledPromise, updateSyncRulesFromYaml } from '@powersync/service-core';
3
+ import { StorageDataHelpers } from './StorageDataHelpers.js';
4
+ import { bucketRequest } from './general-utils.js';
5
+ import { fromAsync } from './stream_utils.js';
6
+ export class AbstractStreamTestContext {
7
+ abortController = new AbortController();
8
+ syncRulesContent;
9
+ storage;
10
+ settledReplicationPromise;
11
+ async [Symbol.asyncDispose]() {
12
+ await this.dispose();
13
+ }
14
+ async dispose() {
15
+ this.abortController.abort();
16
+ try {
17
+ await this.settledReplicationPromise;
18
+ await this._dispose();
19
+ await this.factory?.[Symbol.asyncDispose]();
20
+ }
21
+ catch (e) {
22
+ // Throwing here may result in SuppressedError. The underlying errors often don't show up
23
+ // in the test output, so we log it here.
24
+ // If we could get vitest to log SuppressedError.error and SuppressedError.suppressed, we
25
+ // could remove this.
26
+ console.error('Error during ConvexStreamTestContext dispose', e);
27
+ throw e;
28
+ }
29
+ }
30
+ async updateSyncRules(content) {
31
+ const syncRules = await this.factory.updateSyncRules(updateSyncRulesFromYaml(content, { validate: true, storageVersion: this.storageVersion }));
32
+ this.syncRulesContent = syncRules;
33
+ this.storage = this.factory.getInstance(syncRules);
34
+ return this.storage;
35
+ }
36
+ async loadNextSyncRules() {
37
+ const syncRules = await this.factory.getNextSyncRulesContent();
38
+ if (syncRules == null) {
39
+ throw new Error(`Next sync rules not available`);
40
+ }
41
+ this.syncRulesContent = syncRules;
42
+ this.storage = this.factory.getInstance(syncRules);
43
+ return this.storage;
44
+ }
45
+ async loadActiveSyncRules() {
46
+ const syncRules = await this.factory.getActiveSyncRulesContent();
47
+ if (syncRules == null) {
48
+ throw new Error(`Active sync rules not available`);
49
+ }
50
+ this.syncRulesContent = syncRules;
51
+ this.storage = this.factory.getInstance(syncRules);
52
+ return this.storage;
53
+ }
54
+ getSyncRulesContent() {
55
+ if (this.syncRulesContent == null) {
56
+ throw new Error('Sync rules not configured - call updateSyncRules() first');
57
+ }
58
+ return this.syncRulesContent;
59
+ }
60
+ /**
61
+ * Replicate a snapshot, start streaming, and wait for a consistent checkpoint.
62
+ */
63
+ async initializeReplication() {
64
+ await this.replicateSnapshot();
65
+ // Make sure we're up to date
66
+ await this.getCheckpoint();
67
+ }
68
+ /**
69
+ * Replicate the initial snapshot, and start streaming.
70
+ */
71
+ async replicateSnapshot() {
72
+ // Use a settledPromise to avoid unhandled rejections
73
+ this.settledReplicationPromise = settledPromise(this.triggerReplication());
74
+ try {
75
+ await Promise.race([unsettledPromise(this.settledReplicationPromise), this.waitForInitialSnapshot()]);
76
+ }
77
+ catch (e) {
78
+ if (e instanceof ReplicationAbortedError && e.cause != null) {
79
+ // Edge case for tests: replicate() can throw an error, but we'd receive the ReplicationAbortedError from
80
+ // waitForInitialSnapshot() first. In that case, prioritize the cause, e.g. MissingReplicationSlotError.
81
+ // This is not a concern for production use, since we only use waitForInitialSnapshot() in tests.
82
+ throw e.cause;
83
+ }
84
+ throw e;
85
+ }
86
+ }
87
+ async getCheckpoint(options) {
88
+ let checkpoint = await Promise.race([
89
+ this.getClientCheckpoint(options),
90
+ unsettledPromise(this.settledReplicationPromise)
91
+ ]);
92
+ if (checkpoint == null) {
93
+ // This indicates an issue with the test setup - replicationPromise completed instead
94
+ // of getClientCheckpoint()
95
+ throw new Error('Test failure - replicationPromise completed');
96
+ }
97
+ return checkpoint;
98
+ }
99
+ async getBucketsDataBatch(buckets, options) {
100
+ const helpers = new StorageDataHelpers(this.storage, this.getSyncRulesContent());
101
+ const checkpoint = await this.getCheckpoint(options);
102
+ return helpers.getBucketsDataBatch(buckets, checkpoint);
103
+ }
104
+ /**
105
+ * This waits for a client checkpoint.
106
+ */
107
+ async getBucketData(bucket, start, options) {
108
+ const helpers = new StorageDataHelpers(this.storage, this.getSyncRulesContent());
109
+ const checkpoint = await this.getCheckpoint(options);
110
+ return helpers.getBucketData(bucket, checkpoint, start);
111
+ }
112
+ async getChecksums(buckets, options) {
113
+ const checkpoint = await this.getCheckpoint(options);
114
+ const syncRules = this.getSyncRulesContent();
115
+ const versionedBuckets = buckets.map((bucket) => bucketRequest(syncRules, bucket, 0n));
116
+ const checksums = await this.storage.getChecksums(checkpoint, versionedBuckets);
117
+ const unversioned = new Map();
118
+ for (let i = 0; i < buckets.length; i++) {
119
+ unversioned.set(buckets[i], checksums.get(versionedBuckets[i].bucket));
120
+ }
121
+ return unversioned;
122
+ }
123
+ async getChecksum(bucket, options) {
124
+ const checksums = await this.getChecksums([bucket], options);
125
+ return checksums.get(bucket);
126
+ }
127
+ /**
128
+ * This does not wait for a client checkpoint.
129
+ */
130
+ async getCurrentBucketData(bucket, start) {
131
+ start ??= 0n;
132
+ if (typeof start == 'string') {
133
+ start = BigInt(start);
134
+ }
135
+ const syncRules = this.getSyncRulesContent();
136
+ const { checkpoint } = await this.storage.getCheckpoint();
137
+ const map = [bucketRequest(syncRules, bucket, start)];
138
+ const batch = this.storage.getBucketDataBatch(checkpoint, map);
139
+ const batches = await fromAsync(batch);
140
+ return batches[0]?.chunkData.data ?? [];
141
+ }
142
+ }
143
+ //# sourceMappingURL=AbstractStreamTestContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractStreamTestContext.js","sourceRoot":"","sources":["../../src/test-utils/AbstractStreamTestContext.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { MetricsEngine, OpenTelemetryMetricsFactory } from '@powersync/service-core';
2
1
  import { AggregationTemporality, InMemoryMetricExporter, MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
2
+ import { MetricsEngine, OpenTelemetryMetricsFactory } from '@powersync/service-core';
3
3
  export class MetricsHelper {
4
4
  factory;
5
5
  metricsEngine;
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsHelper.js","sourceRoot":"","sources":["../../src/test-utils/MetricsHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,OAAO,aAAa;IACjB,OAAO,CAAiB;IACxB,aAAa,CAAgB;IAC5B,aAAa,CAAgB;IAC7B,QAAQ,CAAyB;IACjC,YAAY,CAAgC;IAEpD;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAsB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,CAAC,YAAY,GAAG,IAAI,6BAA6B,CAAC;YACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,oBAAoB,EAAE,GAAG,CAAC,2BAA2B;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;SAC7B,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,yBAAyB,EAAE,IAAI;SAChC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC3C,yCAAyC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QACxE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,cAAc,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACnG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,KAAK,EAAE,KAAe,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"MetricsHelper.js","sourceRoot":"","sources":["../../src/test-utils/MetricsHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAkB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAErG,MAAM,OAAO,aAAa;IACjB,OAAO,CAAiB;IACxB,aAAa,CAAgB;IAC5B,aAAa,CAAgB;IAC7B,QAAQ,CAAyB;IACjC,YAAY,CAAgC;IAEpD;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,sBAAsB,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE9E,IAAI,CAAC,YAAY,GAAG,IAAI,6BAA6B,CAAC;YACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,oBAAoB,EAAE,GAAG,CAAC,2BAA2B;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;SAC7B,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,yBAAyB,EAAE,IAAI;SAChC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC3C,yCAAyC;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QACxE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,cAAc,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACnG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,KAAK,EAAE,KAAe,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { InternalOpId, OplogEntry, PersistedSyncRules, PersistedSyncRulesContent, SyncRulesBucketStorage } from '@powersync/service-core';
2
+ export declare class StorageDataHelpers {
3
+ storage: SyncRulesBucketStorage;
4
+ syncRules: PersistedSyncRulesContent | PersistedSyncRules;
5
+ constructor(storage: SyncRulesBucketStorage, syncRules: PersistedSyncRulesContent | PersistedSyncRules);
6
+ getBucketData(bucket: string, checkpoint: InternalOpId, start?: InternalOpId | string | undefined): Promise<OplogEntry<import("@powersync/service-core").StoredOplogData>[]>;
7
+ getBucketsDataBatch(buckets: Record<string, InternalOpId>, checkpoint: InternalOpId): Promise<import("@powersync/service-core").SyncBucketDataChunk[]>;
8
+ }
@@ -0,0 +1,33 @@
1
+ import { bucketRequest } from './general-utils.js';
2
+ import { fromAsync } from './stream_utils.js';
3
+ export class StorageDataHelpers {
4
+ storage;
5
+ syncRules;
6
+ constructor(storage, syncRules) {
7
+ this.storage = storage;
8
+ this.syncRules = syncRules;
9
+ }
10
+ async getBucketData(bucket, checkpoint, start) {
11
+ start ??= 0n;
12
+ if (typeof start == 'string') {
13
+ start = BigInt(start);
14
+ }
15
+ let map = [bucketRequest(this.syncRules, bucket, start)];
16
+ let data = [];
17
+ while (true) {
18
+ const batch = this.storage.getBucketDataBatch(checkpoint, map);
19
+ const batches = await fromAsync(batch);
20
+ data = data.concat(batches[0]?.chunkData.data ?? []);
21
+ if (batches.length == 0 || !batches[0].chunkData.has_more) {
22
+ break;
23
+ }
24
+ map = [bucketRequest(this.syncRules, bucket, BigInt(batches[0].chunkData.next_after))];
25
+ }
26
+ return data;
27
+ }
28
+ async getBucketsDataBatch(buckets, checkpoint) {
29
+ const map = Object.entries(buckets).map(([bucket, start]) => bucketRequest(this.syncRules, bucket, start));
30
+ return fromAsync(this.storage.getBucketDataBatch(checkpoint, map));
31
+ }
32
+ }
33
+ //# sourceMappingURL=StorageDataHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageDataHelpers.js","sourceRoot":"","sources":["../../src/test-utils/StorageDataHelpers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,kBAAkB;IAC7B,OAAO,CAAyB;IAChC,SAAS,CAAiD;IAE1D,YAAY,OAA+B,EAAE,SAAyD;QACpG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,UAAwB,EAAE,KAAyC;QACrG,KAAK,KAAK,EAAE,CAAC;QACb,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,GAAiB,EAAE,CAAC;QAC5B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEhE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC3D,MAAM;YACR,CAAC;YACD,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAqC,EAAE,UAAwB;QACvF,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3G,OAAO,SAAS,CAAC,IAAI,CAAC,OAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -4,15 +4,10 @@ import * as bson from 'bson';
4
4
  export declare const ZERO_LSN = "0/0";
5
5
  export declare const PARSE_OPTIONS: storage.ParseSyncRulesOptions;
6
6
  export declare const BATCH_OPTIONS: storage.CreateWriterOptions;
7
- export declare function makeTestTable(name: string, replicaIdColumns?: string[] | undefined, options?: {
8
- tableIdStrings: boolean;
9
- }): storage.SourceTable;
10
7
  /**
11
- * With incremental reprocessing, we need actual test tables, resolved via the writer.
12
- *
13
- * This prepares for it.
8
+ * With newer storage versions, we need actual test tables, resolved via the writer.
14
9
  */
15
- export declare function resolveTestTable(_writer: storage.BucketStorageBatch, name: string, replicaIdColumns: string[] | undefined, options: {
10
+ export declare function resolveTestTable(writer: storage.BucketStorageBatch, name: string, replicaIdColumns: string[] | undefined, options: {
16
11
  tableIdStrings: boolean;
17
12
  }, idIndex?: number): Promise<storage.SourceTable>;
18
13
  export declare function getBatchData(batch: utils.SyncBucketData[] | storage.SyncBucketDataChunk[] | storage.SyncBucketDataChunk): {
@@ -22,7 +17,7 @@ export declare function getBatchData(batch: utils.SyncBucketData[] | storage.Syn
22
17
  checksum: number | bigint;
23
18
  }[];
24
19
  /**
25
- * Bucket names no longer purely depend on the sync rules.
20
+ * Bucket names no longer purely depend on the sync config.
26
21
  * This converts a bucket name like "global[]" into the actual bucket name, for use in tests.
27
22
  */
28
23
  export declare function bucketRequest(syncRules: storage.PersistedSyncRulesContent | storage.PersistedSyncRules, bucket: string, start?: InternalOpId | string | number): BucketDataRequest;
@@ -10,39 +10,41 @@ export const BATCH_OPTIONS = {
10
10
  zeroLSN: ZERO_LSN,
11
11
  storeCurrentData: true
12
12
  };
13
- export function makeTestTable(name, replicaIdColumns, options) {
14
- const relId = utils.hashData('table', name, (replicaIdColumns ?? ['id']).join(','));
15
- const id = options?.tableIdStrings == false ? new bson.ObjectId('6544e3899293153fa7b38331') : '6544e3899293153fa7b38331';
16
- return new storage.SourceTable({
17
- id: id,
18
- connectionTag: storage.SourceTable.DEFAULT_TAG,
19
- objectId: relId,
20
- schema: 'public',
21
- name: name,
22
- replicaIdColumns: (replicaIdColumns ?? ['id']).map((column) => ({ name: column, type: 'VARCHAR', typeId: 25 })),
23
- snapshotComplete: true
24
- });
25
- }
26
13
  /**
27
- * With incremental reprocessing, we need actual test tables, resolved via the writer.
28
- *
29
- * This prepares for it.
14
+ * With newer storage versions, we need actual test tables, resolved via the writer.
30
15
  */
31
- export async function resolveTestTable(_writer, name, replicaIdColumns, options, idIndex = 1) {
16
+ export async function resolveTestTable(writer, name, replicaIdColumns, options, idIndex = 1) {
17
+ void idIndex;
18
+ void options;
32
19
  const relId = utils.hashData('table', name, (replicaIdColumns ?? ['id']).join(','));
33
- // Generate unique ids per test table (if idIndex is specified), without completely
34
- // breaking all the existing tests.
20
+ // Semi-hardcoded id for tests, to get consistent output.
21
+ // If the same test uses multiple tables, pass idIndex to get different ids.
35
22
  const idString = '6544e3899293153fa7b383' + (30 + idIndex).toString().padStart(2, '0');
36
23
  const id = options.tableIdStrings == false ? new bson.ObjectId(idString) : idString;
37
- return new storage.SourceTable({
38
- id: id,
24
+ let didGenerateId = false;
25
+ const source = {
39
26
  connectionTag: storage.SourceTable.DEFAULT_TAG,
40
27
  objectId: relId,
41
28
  schema: 'public',
42
29
  name: name,
43
- replicaIdColumns: (replicaIdColumns ?? ['id']).map((column) => ({ name: column, type: 'VARCHAR', typeId: 25 })),
44
- snapshotComplete: true
30
+ replicaIdColumns: (replicaIdColumns ?? ['id']).map((column) => ({ name: column, type: 'VARCHAR', typeId: 25 }))
31
+ };
32
+ const resolved = await writer.resolveTables({
33
+ connection_id: 1,
34
+ source,
35
+ idGenerator: () => {
36
+ if (didGenerateId) {
37
+ throw new Error('idGenerator called multiple times - not supported in tests');
38
+ }
39
+ didGenerateId = true;
40
+ return id;
41
+ }
45
42
  });
43
+ const table = resolved.tables[0];
44
+ if (table == null) {
45
+ throw new Error(`Failed to resolve test table ${source.schema}.${source.name}`);
46
+ }
47
+ return table;
46
48
  }
47
49
  export function getBatchData(batch) {
48
50
  const first = getFirst(batch);
@@ -59,10 +61,10 @@ export function getBatchData(batch) {
59
61
  });
60
62
  }
61
63
  function isParsedSyncRules(syncRules) {
62
- return syncRules.sync_rules !== undefined;
64
+ return syncRules.syncConfigWithErrors !== undefined;
63
65
  }
64
66
  /**
65
- * Bucket names no longer purely depend on the sync rules.
67
+ * Bucket names no longer purely depend on the sync config.
66
68
  * This converts a bucket name like "global[]" into the actual bucket name, for use in tests.
67
69
  */
68
70
  export function bucketRequest(syncRules, bucket, start) {
@@ -71,7 +73,7 @@ export function bucketRequest(syncRules, bucket, start) {
71
73
  const parameterStart = bucket.indexOf('[');
72
74
  const definitionName = bucket.substring(0, parameterStart);
73
75
  const parameters = bucket.substring(parameterStart);
74
- const source = parsed.sync_rules.config.bucketDataSources.find((b) => b.uniqueName === definitionName);
76
+ const source = parsed.syncConfigWithErrors.config.bucketDataSources.find((b) => b.uniqueName === definitionName);
75
77
  if (source == null) {
76
78
  throw new Error(`Failed to find global bucket ${bucket}`);
77
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"general-utils.js","sourceRoot":"","sources":["../../src/test-utils/general-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general-utils.js","sourceRoot":"","sources":["../../src/test-utils/general-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAAqB,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAkC;IAC1D,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,GAAG,aAAa;IAChB,OAAO,EAAE,QAAQ;IACjB,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkC,EAClC,IAAY,EACZ,gBAAsC,EACtC,OAAoC,EACpC,UAAkB,CAAC;IAEnB,KAAK,OAAO,CAAC;IACb,KAAK,OAAO,CAAC;IAEb,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,yDAAyD;IACzD,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,wBAAwB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvF,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpF,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,MAAM,MAAM,GAAmC;QAC7C,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW;QAC9C,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;QACV,gBAAgB,EAAE,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;KAChH,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC;QAC1C,aAAa,EAAE,CAAC;QAChB,MAAM;QACN,WAAW,EAAE,GAAG,EAAE;YAChB,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;YAChF,CAAC;YACD,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAA2F;IAE3F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,OAAO;YACL,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,SAAyE;IAEzE,OAAQ,SAAwC,CAAC,oBAAoB,KAAK,SAAS,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAyE,EACzE,MAAc,EACd,KAAsC;IAEtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1F,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC;IAEjH,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,UAAU,GAAG,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC;IACzF,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,EAAE,MAAM;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAA2F;IAE3F,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CACf,KAA2F;IAE3F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,SAAS,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,IAAK,KAAqC,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7D,OAAQ,KAAqC,CAAC,SAAS,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,KAA6B,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,EAAU;IAC5B,OAAO,KAAK,CAAC,0BAA0B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,gBAAmC;IAChE,OAAO;QACL,gBAAgB;QAChB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAA+B,EAC/B,gBAAsC;IAEtC,OAAO,IAAI,iBAAiB,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,YAAY,CAA6B,GAAM;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -3,7 +3,7 @@ export function putOp(table, data) {
3
3
  return {
4
4
  op: 'PUT',
5
5
  object_type: table,
6
- object_id: data.id,
6
+ object_id: String(data.id), // Object ids are always converted to strings
7
7
  data: JSONBig.stringify(data)
8
8
  };
9
9
  }
@@ -11,7 +11,7 @@ export function removeOp(table, id) {
11
11
  return {
12
12
  op: 'REMOVE',
13
13
  object_type: table,
14
- object_id: id
14
+ object_id: String(id)
15
15
  };
16
16
  }
17
17
  export function compareIds(a, b) {
@@ -1 +1 @@
1
- {"version":3,"file":"stream_utils.js","sourceRoot":"","sources":["../../src/test-utils/stream_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,IAAyB;IAC5D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,IAAI,CAAC,EAAE;QAClB,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,EAAU;IAChD,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAmB,EAAE,CAAmB;IACjE,OAAO,CAAC,CAAC,SAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,MAAsC;IAC1E,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,MAAsC;IACvE,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"stream_utils.js","sourceRoot":"","sources":["../../src/test-utils/stream_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,IAAyB;IAC5D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,6CAA6C;QACzE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,EAAU;IAChD,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAmB,EAAE,CAAmB;IACjE,OAAO,CAAC,CAAC,SAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,MAAsC;IAC1E,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,MAAsC;IACvE,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,6 @@
1
+ export * from './AbstractStreamTestContext.js';
1
2
  export * from './bucket-validation.js';
2
3
  export * from './general-utils.js';
3
4
  export * from './MetricsHelper.js';
5
+ export * from './StorageDataHelpers.js';
4
6
  export * from './stream_utils.js';
@@ -1,5 +1,7 @@
1
+ export * from './AbstractStreamTestContext.js';
1
2
  export * from './bucket-validation.js';
2
3
  export * from './general-utils.js';
3
4
  export * from './MetricsHelper.js';
5
+ export * from './StorageDataHelpers.js';
4
6
  export * from './stream_utils.js';
5
7
  //# sourceMappingURL=test-utils-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils-index.js","sourceRoot":"","sources":["../../src/test-utils/test-utils-index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"test-utils-index.js","sourceRoot":"","sources":["../../src/test-utils/test-utils-index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}