@powersync/service-sync-rules 0.42.0 → 0.44.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 (130) hide show
  1. package/README.md +49 -14
  2. package/dist/BucketSource.d.ts +2 -2
  3. package/dist/HydratedSyncConfig.d.ts +2 -0
  4. package/dist/HydratedSyncConfig.js +9 -3
  5. package/dist/HydratedSyncConfig.js.map +1 -1
  6. package/dist/SourceTableConfig.d.ts +42 -0
  7. package/dist/SourceTableConfig.js +152 -0
  8. package/dist/SourceTableConfig.js.map +1 -0
  9. package/dist/SqlSyncRules.d.ts +14 -0
  10. package/dist/SqlSyncRules.js +2 -1
  11. package/dist/SqlSyncRules.js.map +1 -1
  12. package/dist/StorageVersion.d.ts +0 -1
  13. package/dist/StorageVersion.js +0 -1
  14. package/dist/StorageVersion.js.map +1 -1
  15. package/dist/SyncConfig.d.ts +3 -1
  16. package/dist/SyncConfig.js +3 -1
  17. package/dist/SyncConfig.js.map +1 -1
  18. package/dist/SyncConfigDiagnostics.d.ts +12 -0
  19. package/dist/SyncConfigDiagnostics.js +2 -0
  20. package/dist/SyncConfigDiagnostics.js.map +1 -0
  21. package/dist/TablePattern.d.ts +2 -2
  22. package/dist/TablePattern.js +17 -7
  23. package/dist/TablePattern.js.map +1 -1
  24. package/dist/compatibility.d.ts +2 -1
  25. package/dist/compatibility.js +4 -2
  26. package/dist/compatibility.js.map +1 -1
  27. package/dist/compiler/compiler.d.ts +4 -4
  28. package/dist/compiler/compiler.js +2 -2
  29. package/dist/compiler/equality.d.ts +2 -2
  30. package/dist/compiler/equality.js +2 -2
  31. package/dist/compiler/expression.d.ts +3 -3
  32. package/dist/compiler/expression.js +2 -2
  33. package/dist/compiler/parser.d.ts +1 -1
  34. package/dist/compiler/parser.js +2 -2
  35. package/dist/compiler/sqlite.js +1 -2
  36. package/dist/compiler/sqlite.js.map +1 -1
  37. package/dist/compiler/table.d.ts +2 -2
  38. package/dist/compiler/table.js +1 -1
  39. package/dist/from_yaml.d.ts +3 -1
  40. package/dist/from_yaml.js +121 -26
  41. package/dist/from_yaml.js.map +1 -1
  42. package/dist/index.d.ts +5 -0
  43. package/dist/index.js +5 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/json.d.ts +7 -0
  46. package/dist/json.js +2 -0
  47. package/dist/json.js.map +1 -0
  48. package/dist/json_schema.d.ts +10 -0
  49. package/dist/json_schema.js +26 -7
  50. package/dist/json_schema.js.map +1 -1
  51. package/dist/legacy/BaseSqlDataQuery.d.ts +12 -0
  52. package/dist/legacy/BaseSqlDataQuery.js +3 -0
  53. package/dist/legacy/BaseSqlDataQuery.js.map +1 -1
  54. package/dist/legacy/SqlBucketDescriptor.d.ts +9 -0
  55. package/dist/legacy/SqlBucketDescriptor.js +6 -0
  56. package/dist/legacy/SqlBucketDescriptor.js.map +1 -1
  57. package/dist/legacy/SqlDataQuery.d.ts +6 -0
  58. package/dist/legacy/SqlDataQuery.js +3 -0
  59. package/dist/legacy/SqlDataQuery.js.map +1 -1
  60. package/dist/legacy/SqlParameterQuery.d.ts +4 -0
  61. package/dist/legacy/SqlParameterQuery.js +1 -0
  62. package/dist/legacy/SqlParameterQuery.js.map +1 -1
  63. package/dist/legacy/StaticSqlParameterQuery.d.ts +4 -0
  64. package/dist/legacy/StaticSqlParameterQuery.js +1 -0
  65. package/dist/legacy/StaticSqlParameterQuery.js.map +1 -1
  66. package/dist/legacy/TableQuerySchema.d.ts +1 -0
  67. package/dist/legacy/TableQuerySchema.js +1 -0
  68. package/dist/legacy/TableQuerySchema.js.map +1 -1
  69. package/dist/legacy/TableValuedFunctionSqlParameterQuery.d.ts +4 -0
  70. package/dist/legacy/TableValuedFunctionSqlParameterQuery.js +1 -0
  71. package/dist/legacy/TableValuedFunctionSqlParameterQuery.js.map +1 -1
  72. package/dist/legacy/sql_filters.d.ts +13 -0
  73. package/dist/legacy/sql_filters.js +10 -0
  74. package/dist/legacy/sql_filters.js.map +1 -1
  75. package/dist/legacy/sql_support.d.ts +33 -0
  76. package/dist/legacy/sql_support.js +33 -0
  77. package/dist/legacy/sql_support.js.map +1 -1
  78. package/dist/legacy/streams/filter.d.ts +22 -0
  79. package/dist/legacy/streams/filter.js +19 -0
  80. package/dist/legacy/streams/filter.js.map +1 -1
  81. package/dist/legacy/streams/from_sql.d.ts +3 -0
  82. package/dist/legacy/streams/from_sql.js +5 -2
  83. package/dist/legacy/streams/from_sql.js.map +1 -1
  84. package/dist/legacy/streams/functions.d.ts +3 -0
  85. package/dist/legacy/streams/functions.js +3 -0
  86. package/dist/legacy/streams/functions.js.map +1 -1
  87. package/dist/legacy/streams/parameter.d.ts +10 -0
  88. package/dist/legacy/streams/stream.d.ts +7 -1
  89. package/dist/legacy/streams/stream.js +7 -1
  90. package/dist/legacy/streams/stream.js.map +1 -1
  91. package/dist/legacy/streams/variant.d.ts +6 -0
  92. package/dist/legacy/streams/variant.js +1 -0
  93. package/dist/legacy/streams/variant.js.map +1 -1
  94. package/dist/legacy/validators.d.ts +1 -0
  95. package/dist/legacy/validators.js +1 -0
  96. package/dist/legacy/validators.js.map +1 -1
  97. package/dist/mongo/MongoBsonValidators.d.ts +78 -0
  98. package/dist/mongo/MongoBsonValidators.js +129 -0
  99. package/dist/mongo/MongoBsonValidators.js.map +1 -0
  100. package/dist/mongo/MongoFilterExpression.d.ts +65 -0
  101. package/dist/mongo/MongoFilterExpression.js +183 -0
  102. package/dist/mongo/MongoFilterExpression.js.map +1 -0
  103. package/dist/mongo/MongoFilterValidation.d.ts +28 -0
  104. package/dist/mongo/MongoFilterValidation.js +47 -0
  105. package/dist/mongo/MongoFilterValidation.js.map +1 -0
  106. package/dist/schema-generators/TsSchemaGenerator.d.ts +1 -0
  107. package/dist/schema-generators/TsSchemaGenerator.js +15 -9
  108. package/dist/schema-generators/TsSchemaGenerator.js.map +1 -1
  109. package/dist/sync_plan/evaluator/bucket_source.js +1 -1
  110. package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +1 -1
  111. package/dist/sync_plan/evaluator/parameter_evaluator.js +1 -1
  112. package/dist/sync_plan/plan.d.ts +3 -1
  113. package/dist/sync_plan/schema_inference.d.ts +1 -1
  114. package/dist/sync_plan/schema_inference.js +1 -1
  115. package/dist/sync_plan/serialize.d.ts +13 -2
  116. package/dist/sync_plan/serialize.js +17 -8
  117. package/dist/sync_plan/serialize.js.map +1 -1
  118. package/dist/types.d.ts +1 -8
  119. package/dist/types.js +8 -13
  120. package/dist/types.js.map +1 -1
  121. package/dist/utils.d.ts +1 -0
  122. package/dist/utils.js +43 -12
  123. package/dist/utils.js.map +1 -1
  124. package/dist/yaml_source_locations.d.ts +14 -0
  125. package/dist/yaml_source_locations.js +112 -0
  126. package/dist/yaml_source_locations.js.map +1 -0
  127. package/dist/yaml_validation.js.map +1 -1
  128. package/package.json +9 -3
  129. package/schema/sync_config.json +620 -0
  130. package/schema/sync_rules.json +387 -4
package/dist/types.js CHANGED
@@ -13,7 +13,7 @@ export function isSourceEvaluatedRow(e) {
13
13
  export function isEvaluatedParameters(e) {
14
14
  return 'lookup' in e;
15
15
  }
16
- export class BaseJwtPayload {
16
+ export class RequestJwtPayload {
17
17
  /**
18
18
  * Raw payload from JSON.parse.
19
19
  *
@@ -30,10 +30,6 @@ export class BaseJwtPayload {
30
30
  this.parsedPayload = parsedPayload;
31
31
  this.userIdJson = jsonValueToSqlite(true, parsedPayload.sub);
32
32
  }
33
- get parameters() {
34
- // Verified to be either undefined or an object when parsing the token.
35
- return this.parsedPayload.parameters;
36
- }
37
33
  }
38
34
  export class RequestParameters {
39
35
  parsedTokenPayload;
@@ -62,17 +58,16 @@ export class RequestParameters {
62
58
  this.userId = tokenPayload.userId;
63
59
  return;
64
60
  }
65
- // This type is verified when we verify the token
66
- const legacyParameters = tokenPayload.parameters;
67
- const tokenParameters = {
68
- ...legacyParameters,
69
- // sub takes presedence over any embedded parameters
70
- user_id: tokenPayload.userIdJson
71
- };
61
+ // If the token has a non-null `parameters` key, the service verifies it to be an object (in KeyStore.verifyJwt).
62
+ const legacyParameters = tokenPayload.parsedPayload.parameters;
72
63
  // Client and token parameters don't contain DateTime values or other custom types, so we don't need to consider
73
64
  // compatibility.
74
65
  this.parsedTokenPayload = tokenPayload.parsedPayload;
75
- this.legacyTokenParameters = toSyncRulesParameters(tokenParameters, CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY);
66
+ this.legacyTokenParameters = toSyncRulesParameters({
67
+ ...legacyParameters,
68
+ // sub takes presedence over any embedded parameters
69
+ user_id: tokenPayload.userIdJson
70
+ }, CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY);
76
71
  this.userId = tokenPayload.userIdJson;
77
72
  this.rawTokenPayload = JSONBig.stringify(tokenPayload.parsedPayload);
78
73
  this.rawUserParameters = JSONBig.stringify(clientParameters);
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -49,6 +49,7 @@ export declare function filterJsonRow(data: SqliteRow): SqliteJsonRow;
49
49
  export declare function jsonValueToSqlite(fixedJsonBehavior: boolean, value: null | undefined | string | number | bigint | boolean | any): SqliteJsonValue;
50
50
  export declare function isJsonValue(value: SqliteValue): value is SqliteJsonValue;
51
51
  export declare function isValidParameterValue(value: SqliteValue): value is SqliteParameterValue;
52
+ export declare function filterJsonData(data: any, context: CompatibilityContext, depth?: number): any;
52
53
  /**
53
54
  * Map database row to SqliteRow for use in sync config.
54
55
  */
package/dist/utils.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { JSONBig, JsonContainer, stringifyRaw } from '@powersync/service-jsonbig';
2
+ import { CompatibilityOption } from './compatibility.js';
2
3
  import { SyncRuleProcessingError as SyncRulesProcessingError } from './errors.js';
3
4
  import { SQLITE_FALSE, SQLITE_TRUE } from './sqliteBool.js';
4
5
  import { CustomArray, CustomObject, CustomSqliteValue } from './types/custom_sqlite_value.js';
@@ -32,19 +33,51 @@ export function resolvedBucket(description, options) {
32
33
  * bucket.
33
34
  */
34
35
  export function mergeBuckets(buckets) {
35
- const byBucketId = {};
36
+ const pending = new Map();
37
+ const allBuckets = [];
36
38
  for (const bucket of buckets) {
37
- const existing = byBucketId[bucket.bucket];
39
+ const existing = pending.get(bucket.bucket);
40
+ let resolved;
38
41
  if (existing != null) {
39
- existing.inclusion_reasons.push(...bucket.inclusion_reasons);
40
- existing.priority = Math.min(existing.priority, bucket.priority);
42
+ resolved = existing;
43
+ existing.resolved.priority = Math.min(existing.resolved.priority, bucket.priority);
41
44
  }
42
45
  else {
43
46
  // Clone so that we can modify the merged value without affecting the input value
44
- byBucketId[bucket.bucket] = cloneResolvedBucket(bucket);
47
+ const clone = withBucketSource({
48
+ definition: bucket.definition,
49
+ bucket: bucket.bucket,
50
+ priority: bucket.priority,
51
+ inclusion_reasons: [] // Set while iterating over all sources
52
+ }, bucket.source);
53
+ resolved = {
54
+ resolved: clone,
55
+ coveredByDefaultSubscription: false,
56
+ explicitSubscriptionReasons: []
57
+ };
58
+ allBuckets.push(clone);
59
+ pending.set(bucket.bucket, resolved);
60
+ }
61
+ // A stream can reach the same bucket through more than one branch (e.g. overlapping
62
+ // subscriptions, or both a static and a dynamic parameter query) with the same inclusion
63
+ // reason each time, so de-duplicate as we merge.
64
+ for (const reason of bucket.inclusion_reasons) {
65
+ if (reason === 'default') {
66
+ if (!resolved.coveredByDefaultSubscription) {
67
+ resolved.coveredByDefaultSubscription = true;
68
+ resolved.resolved.inclusion_reasons.push(reason);
69
+ }
70
+ }
71
+ else {
72
+ // explicitSubscriptionReasons is a small array in practice, use a linear scan instead of a set
73
+ if (!resolved.explicitSubscriptionReasons.includes(reason.subscription)) {
74
+ resolved.explicitSubscriptionReasons.push(reason.subscription);
75
+ resolved.resolved.inclusion_reasons.push(reason);
76
+ }
77
+ }
45
78
  }
46
79
  }
47
- return Object.values(byBucketId);
80
+ return allBuckets;
48
81
  }
49
82
  export function uniqueBy(values, key) {
50
83
  const result = [];
@@ -59,11 +92,6 @@ export function uniqueBy(values, key) {
59
92
  }
60
93
  return result;
61
94
  }
62
- function cloneResolvedBucket(bucket) {
63
- let clone = structuredClone(bucket);
64
- // The structured clone does not include the non-enumerable source - set it directly.
65
- return withBucketSource(clone, bucket.source);
66
- }
67
95
  export function withBucketSource(value, source) {
68
96
  Object.defineProperty(value, 'source', {
69
97
  value: source,
@@ -128,7 +156,7 @@ export function isJsonValue(value) {
128
156
  export function isValidParameterValue(value) {
129
157
  return value != null && isJsonValue(value);
130
158
  }
131
- function filterJsonData(data, context, depth = 0) {
159
+ export function filterJsonData(data, context, depth = 0) {
132
160
  if (depth > DEPTH_LIMIT) {
133
161
  // This is primarily to prevent infinite recursion
134
162
  // TODO: Proper error class
@@ -143,6 +171,9 @@ function filterJsonData(data, context, depth = 0) {
143
171
  return data;
144
172
  }
145
173
  else if (typeof data == 'boolean') {
174
+ if (context.isEnabled(CompatibilityOption.fixedBooleanInJson)) {
175
+ return data;
176
+ }
146
177
  return data ? SQLITE_TRUE : SQLITE_FALSE;
147
178
  }
148
179
  else if (typeof data == 'bigint') {
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { ErrorObject } from 'ajv';
2
+ import { Document } from 'yaml';
3
+ import { YamlError } from './errors.js';
4
+ import type { SyncConfigSourceLocationResolver } from './SyncConfigDiagnostics.js';
5
+ /**
6
+ * Creates a path-based source-location resolver over a parsed YAML document.
7
+ * For `config: { edition: 3 }`, resolving `['config', 'edition']` locates `3` by default or `edition` with target `'key'`.
8
+ */
9
+ export declare function createYamlSourceLocationResolver(document: Document): SyncConfigSourceLocationResolver;
10
+ /**
11
+ * Maps AJV validation errors to sync config errors positioned in the original source.
12
+ * For example, a type error at `/config/edition` highlights that field's value and retains AJV's message.
13
+ */
14
+ export declare function mapAjvErrorsToYamlErrors(sourceLocationResolver: SyncConfigSourceLocationResolver, errors: readonly ErrorObject[]): YamlError[];
@@ -0,0 +1,112 @@
1
+ import { isMap, isNode, isScalar } from 'yaml';
2
+ import { YamlError } from './errors.js';
3
+ /**
4
+ * Creates a path-based source-location resolver over a parsed YAML document.
5
+ * For `config: { edition: 3 }`, resolving `['config', 'edition']` locates `3` by default or `edition` with target `'key'`.
6
+ */
7
+ export function createYamlSourceLocationResolver(document) {
8
+ return {
9
+ getLocation(path, target = 'value') {
10
+ return getYamlPathLocation(document, path, target);
11
+ }
12
+ };
13
+ }
14
+ /**
15
+ * Maps AJV validation errors to sync config errors positioned in the original source.
16
+ * For example, a type error at `/config/edition` highlights that field's value and retains AJV's message.
17
+ */
18
+ export function mapAjvErrorsToYamlErrors(sourceLocationResolver, errors) {
19
+ return errors.map((error) => {
20
+ const { path, target } = getAjvErrorSourcePath(error);
21
+ const location = sourceLocationResolver.getLocation(path, target);
22
+ const message = error.message ?? 'The sync config does not match its JSON Schema.';
23
+ return new YamlError(new Error(message), location);
24
+ });
25
+ }
26
+ /**
27
+ * Converts an AJV error into a config path and chooses whether to highlight its key or value.
28
+ * An extra property `unknown` at `/config` targets the key at `['config', 'unknown']`.
29
+ * Missing properties target their containing map because the missing field has no source node.
30
+ */
31
+ function getAjvErrorSourcePath(error) {
32
+ const path = parseJsonPointer(error.instancePath);
33
+ if (error.keyword == 'additionalProperties') {
34
+ const additionalProperty = error.params.additionalProperty;
35
+ if (typeof additionalProperty == 'string') {
36
+ path.push(additionalProperty);
37
+ }
38
+ return { path, target: 'key' };
39
+ }
40
+ else if (error.keyword == 'propertyNames' && typeof error.propertyName == 'string') {
41
+ path.push(error.propertyName);
42
+ return { path, target: 'key' };
43
+ }
44
+ else if (error.keyword == 'required' || error.keyword == 'minProperties') {
45
+ // A missing property has no node of its own. Highlight the containing map's key, such as the table definition.
46
+ return { path, target: path.length == 0 ? 'value' : 'key' };
47
+ }
48
+ return { path, target: 'value' };
49
+ }
50
+ /**
51
+ * Finds a key or value's source offsets, trying parent paths when the requested node does not exist.
52
+ * For example, `['config', 'missing']` falls back to `['config']` if `missing` is absent.
53
+ */
54
+ function getYamlPathLocation(document, path, target) {
55
+ const resolvedPath = [...path];
56
+ while (true) {
57
+ const node = getYamlPathNode(document, resolvedPath, target);
58
+ if (node != null) {
59
+ return getNodeLocation(node);
60
+ }
61
+ if (resolvedPath.length == 0) {
62
+ return undefined;
63
+ }
64
+ resolvedPath.pop();
65
+ }
66
+ }
67
+ /**
68
+ * Looks up the YAML node at an exact path, returning undefined if no matching node exists.
69
+ * For `edition: 3`, `['edition']` selects the `edition` key node or the `3` value node according to the target.
70
+ * An empty path selects the document's root node.
71
+ */
72
+ function getYamlPathNode(document, path, target) {
73
+ if (target == 'value' || path.length == 0) {
74
+ const value = document.getIn(path, true);
75
+ return isNode(value) ? value : undefined;
76
+ }
77
+ const parent = document.getIn(path.slice(0, -1), true);
78
+ if (!isMap(parent)) {
79
+ return undefined;
80
+ }
81
+ const key = path[path.length - 1];
82
+ const pair = parent.items.find((candidate) => isScalar(candidate.key) && String(candidate.key.value) == String(key));
83
+ return pair != null && isNode(pair.key) ? pair.key : undefined;
84
+ }
85
+ /**
86
+ * Converts a YAML node's range into source offsets, including any trailing comment or newline in the node range.
87
+ * A range `[4, 7, 8]` becomes `{ start: 4, end: 8 }`; a node without a range has no location.
88
+ */
89
+ function getNodeLocation(node) {
90
+ if (node?.range == null) {
91
+ return undefined;
92
+ }
93
+ return {
94
+ start: node.range[0],
95
+ end: node.range[2]
96
+ };
97
+ }
98
+ /**
99
+ * Splits a JSON pointer into path segments and decodes escaped slashes (`~1`) and tildes (`~0`).
100
+ * For example, `/tables/a~1b/~0name` becomes `['tables', 'a/b', '~name']`; an empty pointer becomes `[]`.
101
+ * Numeric segments remain strings, so `/items/0` becomes `['items', '0']`.
102
+ */
103
+ function parseJsonPointer(pointer) {
104
+ if (pointer.length == 0) {
105
+ return [];
106
+ }
107
+ return pointer
108
+ .split('/')
109
+ .slice(1)
110
+ .map((segment) => segment.replaceAll('~1', '/').replaceAll('~0', '~'));
111
+ }
112
+ //# sourceMappingURL=yaml_source_locations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml_source_locations.js","sourceRoot":"","sources":["../src/yaml_source_locations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"yaml_validation.js","sourceRoot":"","sources":["../src/yaml_validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yaml_validation.js","sourceRoot":"","sources":["../src/yaml_validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@powersync/service-sync-rules",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.42.0",
5
- "exports": "./dist/index.js",
4
+ "version": "0.44.0",
5
+ "exports": {
6
+ ".": "./dist/index.js",
7
+ "./schema/sync_config.json": "./schema/sync_config.json"
8
+ },
6
9
  "license": "FSL-1.1-ALv2",
7
10
  "publishConfig": {
8
11
  "access": "public"
@@ -16,15 +19,18 @@
16
19
  "@syncpoint/wkx": "^0.5.0",
17
20
  "ajv": "^8.18.0",
18
21
  "pgsql-ast-parser": "^11.1.0",
22
+ "ts-codec": "^1.3.0",
19
23
  "uuid": "^14.0.0",
20
24
  "yaml": "^2.8.3",
25
+ "zod": "^4.6.5",
26
+ "bson": "^6.10.4",
21
27
  "@powersync/service-jsonbig": "^0.17.13"
22
28
  },
23
29
  "devDependencies": {
24
30
  "@types/node": "^22.16.2",
25
31
  "ebnf": "^1.9.1",
26
32
  "railroad-diagrams": "^1.0.0",
27
- "vitest": "^4.1.5"
33
+ "vitest": "^4.1.11"
28
34
  },
29
35
  "scripts": {
30
36
  "clean": "rm -r ./dist && tsc -b --clean",