@powersync/service-sync-rules 0.41.0 → 0.43.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.
- package/README.md +49 -14
- package/dist/BucketSource.d.ts +2 -2
- package/dist/HydratedSyncConfig.js +3 -3
- package/dist/HydratedSyncConfig.js.map +1 -1
- package/dist/StorageVersion.d.ts +0 -1
- package/dist/StorageVersion.js +0 -1
- package/dist/StorageVersion.js.map +1 -1
- package/dist/compatibility.d.ts +2 -1
- package/dist/compatibility.js +4 -2
- package/dist/compatibility.js.map +1 -1
- package/dist/compiler/compiler.d.ts +4 -4
- package/dist/compiler/compiler.js +2 -2
- package/dist/compiler/equality.d.ts +2 -2
- package/dist/compiler/equality.js +2 -2
- package/dist/compiler/expression.d.ts +3 -3
- package/dist/compiler/expression.js +2 -2
- package/dist/compiler/parser.d.ts +1 -1
- package/dist/compiler/parser.js +2 -2
- package/dist/compiler/sqlite.js +1 -2
- package/dist/compiler/sqlite.js.map +1 -1
- package/dist/compiler/table.d.ts +2 -2
- package/dist/compiler/table.js +1 -1
- package/dist/from_yaml.js +5 -7
- package/dist/from_yaml.js.map +1 -1
- package/dist/json_schema.js +2 -3
- package/dist/json_schema.js.map +1 -1
- package/dist/legacy/BaseSqlDataQuery.d.ts +12 -0
- package/dist/legacy/BaseSqlDataQuery.js +3 -0
- package/dist/legacy/BaseSqlDataQuery.js.map +1 -1
- package/dist/legacy/SqlBucketDescriptor.d.ts +9 -0
- package/dist/legacy/SqlBucketDescriptor.js +6 -0
- package/dist/legacy/SqlBucketDescriptor.js.map +1 -1
- package/dist/legacy/SqlDataQuery.d.ts +6 -0
- package/dist/legacy/SqlDataQuery.js +3 -0
- package/dist/legacy/SqlDataQuery.js.map +1 -1
- package/dist/legacy/SqlParameterQuery.d.ts +4 -0
- package/dist/legacy/SqlParameterQuery.js +1 -0
- package/dist/legacy/SqlParameterQuery.js.map +1 -1
- package/dist/legacy/StaticSqlParameterQuery.d.ts +4 -0
- package/dist/legacy/StaticSqlParameterQuery.js +1 -0
- package/dist/legacy/StaticSqlParameterQuery.js.map +1 -1
- package/dist/legacy/TableQuerySchema.d.ts +1 -0
- package/dist/legacy/TableQuerySchema.js +1 -0
- package/dist/legacy/TableQuerySchema.js.map +1 -1
- package/dist/legacy/TableValuedFunctionSqlParameterQuery.d.ts +4 -0
- package/dist/legacy/TableValuedFunctionSqlParameterQuery.js +1 -0
- package/dist/legacy/TableValuedFunctionSqlParameterQuery.js.map +1 -1
- package/dist/legacy/sql_filters.d.ts +13 -0
- package/dist/legacy/sql_filters.js +10 -0
- package/dist/legacy/sql_filters.js.map +1 -1
- package/dist/legacy/sql_support.d.ts +33 -0
- package/dist/legacy/sql_support.js +33 -0
- package/dist/legacy/sql_support.js.map +1 -1
- package/dist/legacy/streams/filter.d.ts +22 -0
- package/dist/legacy/streams/filter.js +19 -0
- package/dist/legacy/streams/filter.js.map +1 -1
- package/dist/legacy/streams/from_sql.d.ts +3 -0
- package/dist/legacy/streams/from_sql.js +4 -1
- package/dist/legacy/streams/from_sql.js.map +1 -1
- package/dist/legacy/streams/functions.d.ts +3 -0
- package/dist/legacy/streams/functions.js +3 -0
- package/dist/legacy/streams/functions.js.map +1 -1
- package/dist/legacy/streams/parameter.d.ts +10 -0
- package/dist/legacy/streams/stream.d.ts +7 -1
- package/dist/legacy/streams/stream.js +7 -1
- package/dist/legacy/streams/stream.js.map +1 -1
- package/dist/legacy/streams/variant.d.ts +6 -0
- package/dist/legacy/streams/variant.js +1 -0
- package/dist/legacy/streams/variant.js.map +1 -1
- package/dist/legacy/validators.d.ts +1 -0
- package/dist/legacy/validators.js +1 -0
- package/dist/legacy/validators.js.map +1 -1
- package/dist/schema-generators/RustSchemaGenerator.d.ts +22 -0
- package/dist/schema-generators/RustSchemaGenerator.js +120 -0
- package/dist/schema-generators/RustSchemaGenerator.js.map +1 -0
- package/dist/schema-generators/generators.d.ts +2 -0
- package/dist/schema-generators/generators.js +2 -0
- package/dist/schema-generators/generators.js.map +1 -1
- package/dist/schema-generators/schema-generators.d.ts +1 -0
- package/dist/schema-generators/schema-generators.js +1 -0
- package/dist/schema-generators/schema-generators.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_source.js +1 -1
- package/dist/sync_plan/evaluator/parameter_evaluator.d.ts +1 -1
- package/dist/sync_plan/evaluator/parameter_evaluator.js +1 -1
- package/dist/sync_plan/plan.d.ts +1 -1
- package/dist/sync_plan/schema_inference.d.ts +1 -1
- package/dist/sync_plan/schema_inference.js +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +43 -12
- package/dist/utils.js.map +1 -1
- package/package.json +5 -2
- package/schema/{sync_rules.json → sync_config.json} +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/schema-generators/generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,IAAI,mBAAmB,EAAE;IAC/B,MAAM,EAAE,IAAI,qBAAqB,EAAE;IACnC,WAAW,EAAE,IAAI,0BAA0B,EAAE;IAC7C,EAAE,EAAE,IAAI,iBAAiB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC;IAC5D,QAAQ,EAAE,IAAI,uBAAuB,EAAE;IACvC,MAAM,EAAE,IAAI,qBAAqB,EAAE;IACnC,KAAK,EAAE,IAAI,oBAAoB,EAAE;IACjC,EAAE,EAAE,IAAI,iBAAiB,EAAE;CAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"generators.js","sourceRoot":"","sources":["../../src/schema-generators/generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,IAAI,mBAAmB,EAAE;IAC/B,MAAM,EAAE,IAAI,qBAAqB,EAAE;IACnC,WAAW,EAAE,IAAI,0BAA0B,EAAE;IAC7C,EAAE,EAAE,IAAI,iBAAiB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC;IAC5D,QAAQ,EAAE,IAAI,uBAAuB,EAAE;IACvC,MAAM,EAAE,IAAI,qBAAqB,EAAE;IACnC,IAAI,EAAE,IAAI,mBAAmB,EAAE;IAC/B,KAAK,EAAE,IAAI,oBAAoB,EAAE;IACjC,EAAE,EAAE,IAAI,iBAAiB,EAAE;CAC5B,CAAC"}
|
|
@@ -5,6 +5,7 @@ export * from './generators.js';
|
|
|
5
5
|
export * from './JsLegacySchemaGenerator.js';
|
|
6
6
|
export * from './KotlinSchemaGenerator.js';
|
|
7
7
|
export * from './RoomSchemaGenerator.js';
|
|
8
|
+
export * from './RustSchemaGenerator.js';
|
|
8
9
|
export * from './SchemaGenerator.js';
|
|
9
10
|
export * from './SwiftSchemaGenerator.js';
|
|
10
11
|
export * from './TsSchemaGenerator.js';
|
|
@@ -5,6 +5,7 @@ export * from './generators.js';
|
|
|
5
5
|
export * from './JsLegacySchemaGenerator.js';
|
|
6
6
|
export * from './KotlinSchemaGenerator.js';
|
|
7
7
|
export * from './RoomSchemaGenerator.js';
|
|
8
|
+
export * from './RustSchemaGenerator.js';
|
|
8
9
|
export * from './SchemaGenerator.js';
|
|
9
10
|
export * from './SwiftSchemaGenerator.js';
|
|
10
11
|
export * from './TsSchemaGenerator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generators.js","sourceRoot":"","sources":["../../src/schema-generators/schema-generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema-generators.js","sourceRoot":"","sources":["../../src/schema-generators/schema-generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -25,7 +25,7 @@ export class StreamBucketSource {
|
|
|
25
25
|
return BucketSourceType.SYNC_STREAM;
|
|
26
26
|
}
|
|
27
27
|
debugRepresentation() {
|
|
28
|
-
// TODO: Implement debugRepresentation for compiled
|
|
28
|
+
// TODO: Implement debugRepresentation for compiled Sync Streams
|
|
29
29
|
return `stream ${this.stream.stream.name}`;
|
|
30
30
|
}
|
|
31
31
|
hydrate(params) {
|
|
@@ -8,7 +8,7 @@ import { StreamInput } from './bucket_source.js';
|
|
|
8
8
|
/**
|
|
9
9
|
* Finds bucket parameters for a given request or subscription.
|
|
10
10
|
*
|
|
11
|
-
* In
|
|
11
|
+
* In Sync Streams, queriers are represented as a DAG structure describing how to get from connection data to bucket
|
|
12
12
|
* parameters.
|
|
13
13
|
*
|
|
14
14
|
* As an example, consider the following stream:
|
|
@@ -6,7 +6,7 @@ import { MapSourceVisitor, visitExpr } from '../expression_visitor.js';
|
|
|
6
6
|
/**
|
|
7
7
|
* Finds bucket parameters for a given request or subscription.
|
|
8
8
|
*
|
|
9
|
-
* In
|
|
9
|
+
* In Sync Streams, queriers are represented as a DAG structure describing how to get from connection data to bucket
|
|
10
10
|
* parameters.
|
|
11
11
|
*
|
|
12
12
|
* As an example, consider the following stream:
|
package/dist/sync_plan/plan.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { SqlExpression } from './expression.js';
|
|
|
9
9
|
* 2. how rows get filtered, mapped and put into parameter lookups.
|
|
10
10
|
* 3. how connections use parameter lookups to infer buckets.
|
|
11
11
|
*
|
|
12
|
-
* Sync plans can be compiled from
|
|
12
|
+
* Sync plans can be compiled from Sync Stream definitions. There is always a single plan for all stream definitions,
|
|
13
13
|
* which allows re-using parameter lookups if multiple streams have similar subpatterns.
|
|
14
14
|
*
|
|
15
15
|
* Additionally, sync plans can be serialized to (and restored from) a simple JSON representation. We store sync plans
|
|
@@ -2,7 +2,7 @@ import { ColumnDefinition, ColumnType } from '../ExpressionType.js';
|
|
|
2
2
|
import { SourceSchema } from '../types.js';
|
|
3
3
|
import { StreamDataSource, StreamQuerier } from './plan.js';
|
|
4
4
|
/**
|
|
5
|
-
* Infers the output schema of
|
|
5
|
+
* Infers the output schema of Sync Streams by resolving references against a statically-known source schema.
|
|
6
6
|
*/
|
|
7
7
|
export declare class SyncPlanSchemaAnalyzer {
|
|
8
8
|
private readonly defaultSchema;
|
|
@@ -3,7 +3,7 @@ import { ExpressionType } from '../ExpressionType.js';
|
|
|
3
3
|
import { generateSqlFunctions, getOperatorReturnType } from '../sql_functions.js';
|
|
4
4
|
import { RecursiveExpressionVisitor, visitExpr } from './expression_visitor.js';
|
|
5
5
|
/**
|
|
6
|
-
* Infers the output schema of
|
|
6
|
+
* Infers the output schema of Sync Streams by resolving references against a statically-known source schema.
|
|
7
7
|
*/
|
|
8
8
|
export class SyncPlanSchemaAnalyzer {
|
|
9
9
|
defaultSchema;
|
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
|
|
36
|
+
const pending = new Map();
|
|
37
|
+
const allBuckets = [];
|
|
36
38
|
for (const bucket of buckets) {
|
|
37
|
-
const existing =
|
|
39
|
+
const existing = pending.get(bucket.bucket);
|
|
40
|
+
let resolved;
|
|
38
41
|
if (existing != null) {
|
|
39
|
-
existing
|
|
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
|
-
|
|
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
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAY,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.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.
|
|
5
|
-
"exports":
|
|
4
|
+
"version": "0.43.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"
|
|
@@ -180,8 +180,7 @@
|
|
|
180
180
|
},
|
|
181
181
|
"storage_version": {
|
|
182
182
|
"type": "integer",
|
|
183
|
-
"description": "Storage version used by the storage database.
|
|
184
|
-
"default": 2,
|
|
183
|
+
"description": "Storage version used by the storage database.",
|
|
185
184
|
"enum": [
|
|
186
185
|
2,
|
|
187
186
|
3,
|
|
@@ -216,6 +215,10 @@
|
|
|
216
215
|
"unstable_sqlite_expression_engine": {
|
|
217
216
|
"type": "boolean",
|
|
218
217
|
"description": "Enabled by default starting from edition null: Experimental option to evaluate functions and operators in Sync Streams with SQLite instead of a JavaScript implementation."
|
|
218
|
+
},
|
|
219
|
+
"fixed_booleans_in_json": {
|
|
220
|
+
"type": "boolean",
|
|
221
|
+
"description": "Enabled by default starting from edition null: Consistently sync boolean values of a JSON object or array in source data as booleans (instead of integers 0/1)."
|
|
219
222
|
}
|
|
220
223
|
},
|
|
221
224
|
"additionalProperties": false
|