@powersync/service-sync-rules 0.39.0 → 0.40.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/dist/TablePattern.d.ts +2 -0
- package/dist/TablePattern.js +18 -1
- package/dist/TablePattern.js.map +1 -1
- package/dist/compiler/expression.d.ts +23 -2
- package/dist/compiler/expression.js +30 -3
- package/dist/compiler/expression.js.map +1 -1
- package/dist/compiler/filter.js +2 -2
- package/dist/compiler/filter.js.map +1 -1
- package/dist/compiler/ir_to_sync_plan.js +7 -1
- package/dist/compiler/ir_to_sync_plan.js.map +1 -1
- package/dist/compiler/parser.js +3 -3
- package/dist/compiler/parser.js.map +1 -1
- package/dist/compiler/querier_graph.js +2 -2
- package/dist/compiler/querier_graph.js.map +1 -1
- package/dist/compiler/sqlite.d.ts +3 -2
- package/dist/compiler/sqlite.js +33 -3
- package/dist/compiler/sqlite.js.map +1 -1
- package/dist/compiler/table.js +4 -1
- package/dist/compiler/table.js.map +1 -1
- package/dist/from_yaml.js +137 -173
- package/dist/from_yaml.js.map +1 -1
- package/dist/sync_plan/engine/scalar_expression_engine.js +7 -0
- package/dist/sync_plan/engine/scalar_expression_engine.js.map +1 -1
- package/dist/sync_plan/evaluator/bucket_data_source.js +3 -2
- package/dist/sync_plan/evaluator/bucket_data_source.js.map +1 -1
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js +2 -2
- package/dist/sync_plan/evaluator/parameter_index_lookup_creator.js.map +1 -1
- package/dist/sync_plan/evaluator/table_processor_to_sql.d.ts +5 -2
- package/dist/sync_plan/evaluator/table_processor_to_sql.js +10 -0
- package/dist/sync_plan/evaluator/table_processor_to_sql.js.map +1 -1
- package/dist/sync_plan/plan.d.ts +13 -4
- package/dist/sync_plan/serialize.d.ts +23 -5
- package/dist/sync_plan/serialize.js +17 -4
- package/dist/sync_plan/serialize.js.map +1 -1
- package/dist/yaml_validation.d.ts +73 -0
- package/dist/yaml_validation.js +140 -0
- package/dist/yaml_validation.js.map +1 -0
- package/package.json +1 -1
package/dist/from_yaml.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LineCounter, parseDocument, Scalar } from 'yaml';
|
|
2
2
|
import { DEFAULT_BUCKET_PRIORITY, isValidPriority } from './BucketDescription.js';
|
|
3
3
|
import { CompatibilityContext, CompatibilityEdition, CompatibilityOption, TimeValuePrecision } from './compatibility.js';
|
|
4
4
|
import { SyncStreamsCompiler } from './compiler/compiler.js';
|
|
@@ -12,6 +12,7 @@ import { validateStorageVersion } from './StorageVersion.js';
|
|
|
12
12
|
import { PrecompiledSyncConfig } from './sync_plan/evaluator/index.js';
|
|
13
13
|
import { TablePattern } from './TablePattern.js';
|
|
14
14
|
import { buildParsedToSourceValueMap, isBlockScalar, isQuotedScalar } from './yaml_scalar_map.js';
|
|
15
|
+
import { documentState } from './yaml_validation.js';
|
|
15
16
|
const ACCEPT_POTENTIALLY_DANGEROUS_QUERIES = Symbol('ACCEPT_POTENTIALLY_DANGEROUS_QUERIES');
|
|
16
17
|
/**
|
|
17
18
|
* Reads `sync_rules.yaml` files containing a sync configuration.
|
|
@@ -47,26 +48,44 @@ export class SyncConfigFromYaml {
|
|
|
47
48
|
}
|
|
48
49
|
]
|
|
49
50
|
});
|
|
50
|
-
|
|
51
|
+
const config = this.#parseConfig(parsed);
|
|
52
|
+
// #parseConfig() should have found all errors in the YAML source. As an additional check, and to ensure our sync
|
|
53
|
+
// rules schema is up-to-date, also validate with ajv. We do this last because errors found here don't have line
|
|
54
|
+
// numbers on them.
|
|
55
|
+
if (!this.#hasFatalError) {
|
|
56
|
+
const valid = validateSyncRulesSchema(parsed.toJSON());
|
|
57
|
+
if (!valid) {
|
|
58
|
+
this.#errors.push(...validateSyncRulesSchema.errors.map((e) => {
|
|
59
|
+
return new YamlError(e);
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.#throwOnErrorIfRequested();
|
|
64
|
+
return config;
|
|
65
|
+
}
|
|
66
|
+
#parseConfig(parsed) {
|
|
67
|
+
const root = documentState(parsed, (e) => this.#errors.push(e)).requireMap('Sync Config must be a YAML map.');
|
|
68
|
+
if (parsed.errors.length > 0 || root == null) {
|
|
51
69
|
this.#errors.push(...parsed.errors.map((e) => new YamlError(e)));
|
|
52
70
|
this.#throwOnErrorIfRequested();
|
|
53
71
|
// Return an empty sync config instance if we couldn't parse YAML, it doesn't make sense to try parsing the broken
|
|
54
72
|
// structure further.
|
|
55
73
|
return new SqlSyncRules(this.yaml);
|
|
56
74
|
}
|
|
75
|
+
using rootState = root;
|
|
76
|
+
using declaredOptions = rootState.get('config')?.requireMap();
|
|
57
77
|
let compatibility;
|
|
58
78
|
let storageVersion;
|
|
59
|
-
if (
|
|
60
|
-
const declaredOptions = parsed.get('config');
|
|
79
|
+
if (declaredOptions) {
|
|
61
80
|
compatibility = this.#parseCompatibilityOptions(declaredOptions);
|
|
62
81
|
storageVersion = this.#validateStorageVersion(declaredOptions);
|
|
63
82
|
if (compatibility.isEnabled(CompatibilityOption.sqliteExpressionEngine)) {
|
|
64
83
|
// Evaluating expressions with SQLite requires edition: 3, older systems always use JavaScript.
|
|
65
|
-
if (compatibility.edition < CompatibilityEdition.
|
|
66
|
-
|
|
84
|
+
if (compatibility.edition < CompatibilityEdition.COMPILED_STREAMS) {
|
|
85
|
+
declaredOptions.reportError('Enabling unstable_sqlite_expression_engine requires edition: 3');
|
|
67
86
|
}
|
|
68
87
|
else if (!compatibility.isEnabled(CompatibilityOption.fixedJsonExtract)) {
|
|
69
|
-
|
|
88
|
+
declaredOptions.reportError('Enabling unstable_sqlite_expression_engine requires fixed_json_extract');
|
|
70
89
|
}
|
|
71
90
|
}
|
|
72
91
|
}
|
|
@@ -74,35 +93,22 @@ export class SyncConfigFromYaml {
|
|
|
74
93
|
compatibility = CompatibilityContext.FULL_BACKWARDS_COMPATIBILITY;
|
|
75
94
|
}
|
|
76
95
|
// Bucket definitions using explicit parameter and data queries.
|
|
77
|
-
const bucketMap =
|
|
78
|
-
const streamMap =
|
|
79
|
-
const globalCtes =
|
|
96
|
+
const bucketMap = rootState.get('bucket_definitions')?.requireMap();
|
|
97
|
+
const streamMap = rootState.get('streams')?.requireMap();
|
|
98
|
+
const globalCtes = rootState.get('with')?.requireMap();
|
|
80
99
|
let result;
|
|
81
100
|
if (compatibility.edition >= CompatibilityEdition.COMPILED_STREAMS) {
|
|
82
101
|
result = this.#compileSyncPlan(bucketMap, streamMap, globalCtes, compatibility);
|
|
83
102
|
this.#warnOnUnusedCtes();
|
|
84
103
|
}
|
|
85
104
|
else {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
this.#errors.push(this.#yamlError(globalCtes, 'Common table expressions are not supported without the `sync_config_compiler` option.'));
|
|
89
|
-
}
|
|
105
|
+
// We don't support CTEs at all in this compiler implementation.
|
|
106
|
+
globalCtes?.reportError('Common table expressions require edition 3.');
|
|
90
107
|
result = this.#legacyParseBucketDefinitionsAndStreams(bucketMap, streamMap, compatibility);
|
|
91
108
|
}
|
|
92
109
|
result.storageVersion = storageVersion;
|
|
93
|
-
const eventDefinitions = this.#parseEventDefinitions(
|
|
110
|
+
const eventDefinitions = this.#parseEventDefinitions(rootState, compatibility);
|
|
94
111
|
result.eventDescriptors.push(...eventDefinitions);
|
|
95
|
-
// Validate that there are no additional properties.
|
|
96
|
-
// Since these errors don't contain line numbers, do this last.
|
|
97
|
-
if (!this.#hasFatalError) {
|
|
98
|
-
const valid = validateSyncRulesSchema(parsed.toJSON());
|
|
99
|
-
if (!valid) {
|
|
100
|
-
this.#errors.push(...validateSyncRulesSchema.errors.map((e) => {
|
|
101
|
-
return new YamlError(e);
|
|
102
|
-
}));
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
this.#throwOnErrorIfRequested();
|
|
106
112
|
return result;
|
|
107
113
|
}
|
|
108
114
|
get #hasFatalError() {
|
|
@@ -119,59 +125,58 @@ export class SyncConfigFromYaml {
|
|
|
119
125
|
* @see https://docs.powersync.com/sync/advanced/compatibility
|
|
120
126
|
*/
|
|
121
127
|
#parseCompatibilityOptions(declaredOptions) {
|
|
122
|
-
const edition = (declaredOptions.get('edition') ??
|
|
128
|
+
const edition = (declaredOptions.get('edition')?.requireScalar()?.requireNumeric() ??
|
|
129
|
+
CompatibilityEdition.LEGACY);
|
|
123
130
|
const options = new Map();
|
|
124
131
|
let maxTimeValuePrecision = undefined;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
maxTimeValuePrecision = TimeValuePrecision.byName[value];
|
|
132
|
+
for (const [key, option] of Object.entries(CompatibilityOption.byName)) {
|
|
133
|
+
const isEnabled = declaredOptions.get(key)?.requireScalar()?.requireBoolean();
|
|
134
|
+
if (isEnabled != null) {
|
|
135
|
+
options.set(option, isEnabled);
|
|
130
136
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
137
|
+
}
|
|
138
|
+
const rawMaxTimestampPrecision = declaredOptions.get('timestamp_max_precision')?.requireScalar();
|
|
139
|
+
if (rawMaxTimestampPrecision != null) {
|
|
140
|
+
const stringValue = rawMaxTimestampPrecision?.requireString();
|
|
141
|
+
if (stringValue) {
|
|
142
|
+
maxTimeValuePrecision = TimeValuePrecision.byName[stringValue];
|
|
143
|
+
if (!maxTimeValuePrecision) {
|
|
144
|
+
const allowed = Object.keys(TimeValuePrecision.byName).join(', ');
|
|
145
|
+
rawMaxTimestampPrecision.reportError(`Unknown time precision, allowed are ${allowed}`);
|
|
146
|
+
}
|
|
138
147
|
}
|
|
139
148
|
}
|
|
140
149
|
const compatibility = new CompatibilityContext({ edition, overrides: options, maxTimeValuePrecision });
|
|
141
150
|
if (maxTimeValuePrecision && !compatibility.isEnabled(CompatibilityOption.timestampsIso8601)) {
|
|
142
|
-
|
|
151
|
+
declaredOptions.reportError(`'timestamp_max_precision' requires 'timestamps_iso8601' to be enabled.`);
|
|
143
152
|
}
|
|
144
153
|
return compatibility;
|
|
145
154
|
}
|
|
146
155
|
#compileSyncPlan(bucketMap, streamMap, globalCtes, compatibility) {
|
|
147
|
-
|
|
148
|
-
this.#errors.push(this.#yamlError(bucketMap, `'bucket_definitions' are not supported by the new compiler. Consider using https://powersync-community.github.io/bucket-definitions-to-sync-streams/ to translate them to streams.`));
|
|
149
|
-
}
|
|
156
|
+
bucketMap?.reportError(`'bucket_definitions' are not supported by the new compiler. Consider using https://powersync-community.github.io/bucket-definitions-to-sync-streams/ to translate them to streams.`);
|
|
150
157
|
if (streamMap == null) {
|
|
151
158
|
this.#errors.push(new YamlError(new Error(`'streams' are required.`)));
|
|
152
159
|
}
|
|
153
160
|
const compiler = new SyncStreamsCompiler(this.options);
|
|
154
161
|
const parseCommonTableExpressions = (from) => {
|
|
155
162
|
const map = new Map();
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const
|
|
163
|
+
const fromMap = from?.requireMap();
|
|
164
|
+
if (fromMap != null) {
|
|
165
|
+
for (const { key: cteName, keyScalar, value } of fromMap.stringKeyedItems()) {
|
|
166
|
+
const cteQuery = value.requireScalar();
|
|
160
167
|
if (this.options.schema) {
|
|
161
168
|
// Emit a warning if the CTE shadows a name from the schema.
|
|
162
169
|
const pattern = new TablePattern(this.options.defaultSchema, cteName);
|
|
163
170
|
if (this.options.schema.getTables(pattern)?.length > 0) {
|
|
164
|
-
|
|
165
|
-
error.type = 'warning';
|
|
166
|
-
this.#errors.push(error);
|
|
171
|
+
keyScalar.reportError('This common table expression shadows the name of a table in the source schema.', 'warning');
|
|
167
172
|
}
|
|
168
173
|
}
|
|
169
|
-
if (
|
|
170
|
-
const [sql, errorListener] = this.#scalarErrorListener(cteQuery);
|
|
174
|
+
if (cteQuery) {
|
|
175
|
+
const [sql, errorListener] = this.#scalarErrorListener(cteQuery.node);
|
|
171
176
|
const parsed = compiler.commonTableExpression(sql, errorListener);
|
|
172
177
|
if (parsed) {
|
|
173
178
|
const cte = { subquery: parsed, used: false };
|
|
174
|
-
this.#definedCtes.push({ cte, name:
|
|
179
|
+
this.#definedCtes.push({ cte, name: keyScalar });
|
|
175
180
|
map.set(cteName, cte);
|
|
176
181
|
}
|
|
177
182
|
}
|
|
@@ -180,19 +185,16 @@ export class SyncConfigFromYaml {
|
|
|
180
185
|
return map;
|
|
181
186
|
};
|
|
182
187
|
const parsedGlobalCommonTableExpressions = parseCommonTableExpressions(globalCtes);
|
|
183
|
-
for (const
|
|
184
|
-
const { key: keyScalar, value } = entry;
|
|
185
|
-
if (!(value instanceof YAMLMap)) {
|
|
186
|
-
// The json schema validator will flag this later.
|
|
187
|
-
continue;
|
|
188
|
-
}
|
|
189
|
-
const key = keyScalar.toString();
|
|
188
|
+
for (const { key, keyScalar, value: maybeMap } of streamMap?.stringKeyedItems() ?? []) {
|
|
190
189
|
if (!this.#checkUniqueName(key, keyScalar)) {
|
|
191
190
|
continue;
|
|
192
191
|
}
|
|
192
|
+
using value = maybeMap.requireMap();
|
|
193
|
+
if (value == null)
|
|
194
|
+
continue;
|
|
193
195
|
const streamCompiler = compiler.stream({
|
|
194
196
|
name: key,
|
|
195
|
-
isSubscribedByDefault: value.get('auto_subscribe'
|
|
197
|
+
isSubscribedByDefault: value.get('auto_subscribe')?.requireScalar()?.requireBoolean() == true,
|
|
196
198
|
priority: this.#parsePriority(value) ?? DEFAULT_BUCKET_PRIORITY,
|
|
197
199
|
warnOnDangerousParameter: !this.#acceptPotentiallyUnsafeQueries(value)
|
|
198
200
|
});
|
|
@@ -200,21 +202,22 @@ export class SyncConfigFromYaml {
|
|
|
200
202
|
// Add stream-local CTEs, which shadow global definitions.
|
|
201
203
|
parseCommonTableExpressions(value.get('with')).forEach((query, name) => streamCompiler.registerCommonTableExpression(name, query));
|
|
202
204
|
const addQuery = (query) => {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
+
const scalar = query.requireScalar();
|
|
206
|
+
if (scalar) {
|
|
207
|
+
const [sql, errorListener] = this.#scalarErrorListener(scalar.node);
|
|
205
208
|
streamCompiler.addQuery(sql, errorListener);
|
|
206
209
|
}
|
|
207
210
|
};
|
|
208
211
|
const queries = value.get('queries');
|
|
209
|
-
const query = value.get('query'
|
|
212
|
+
const query = value.get('query');
|
|
210
213
|
if ((queries == null) == (query == null)) {
|
|
211
|
-
|
|
214
|
+
value.reportError('One of `queries` or `query` must be given.');
|
|
212
215
|
}
|
|
213
216
|
if (query) {
|
|
214
217
|
addQuery(query);
|
|
215
218
|
}
|
|
216
219
|
if (queries) {
|
|
217
|
-
for (const queryEntry of queries
|
|
220
|
+
for (const queryEntry of queries?.requireSequence()?.items ?? []) {
|
|
218
221
|
addQuery(queryEntry);
|
|
219
222
|
}
|
|
220
223
|
}
|
|
@@ -227,11 +230,9 @@ export class SyncConfigFromYaml {
|
|
|
227
230
|
});
|
|
228
231
|
}
|
|
229
232
|
#warnOnUnusedCtes() {
|
|
230
|
-
for (const cte of this.#definedCtes) {
|
|
231
|
-
if (!cte.
|
|
232
|
-
|
|
233
|
-
error.type = 'warning';
|
|
234
|
-
this.#errors.push(error);
|
|
233
|
+
for (const { cte, name } of this.#definedCtes) {
|
|
234
|
+
if (!cte.used) {
|
|
235
|
+
name.reportError(`This common table expression isn't referenced.`, 'warning');
|
|
235
236
|
}
|
|
236
237
|
}
|
|
237
238
|
}
|
|
@@ -242,23 +243,16 @@ export class SyncConfigFromYaml {
|
|
|
242
243
|
this.#errors.push(new YamlError(new Error(`'bucket_definitions' or 'streams' is required`)));
|
|
243
244
|
this.#throwOnErrorIfRequested();
|
|
244
245
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
error.type = 'warning';
|
|
250
|
-
this.#errors.push(error);
|
|
251
|
-
}
|
|
252
|
-
for (let entry of bucketMap?.items ?? []) {
|
|
253
|
-
const { key: keyScalar, value } = entry;
|
|
254
|
-
const key = keyScalar.toString();
|
|
246
|
+
// This is with config.edition <= 2, we want to encourage users with streams to migrate to version 3 to use
|
|
247
|
+
// compiled sync plans.
|
|
248
|
+
streamMap?.reportError('This is using an alpha version of Sync Streams. We recommend upgrading `config.edition` to version 3 to support the latest features.', 'warning');
|
|
249
|
+
for (const { key, keyScalar, value: maybeMap } of bucketMap?.stringKeyedItems() ?? []) {
|
|
255
250
|
if (!this.#checkUniqueName(key, keyScalar)) {
|
|
256
251
|
continue;
|
|
257
252
|
}
|
|
258
|
-
|
|
259
|
-
|
|
253
|
+
using value = maybeMap.requireMap(`'${key}' bucket definition must be an object`);
|
|
254
|
+
if (value == null)
|
|
260
255
|
continue;
|
|
261
|
-
}
|
|
262
256
|
const accept_potentially_dangerous_queries = this.#acceptPotentiallyUnsafeQueries(value);
|
|
263
257
|
const parseOptionPriority = this.#parsePriority(value);
|
|
264
258
|
const queryOptions = {
|
|
@@ -267,26 +261,28 @@ export class SyncConfigFromYaml {
|
|
|
267
261
|
priority: parseOptionPriority,
|
|
268
262
|
compatibility
|
|
269
263
|
};
|
|
270
|
-
const parameters = value.get('parameters'
|
|
271
|
-
const dataQueries = value.
|
|
264
|
+
const parameters = value.get('parameters');
|
|
265
|
+
const dataQueries = value.require('data')?.requireSequence();
|
|
272
266
|
const descriptor = new SqlBucketDescriptor(key);
|
|
273
|
-
if (parameters
|
|
267
|
+
if (parameters == null) {
|
|
268
|
+
descriptor.addParameterQuery('SELECT', queryOptions);
|
|
269
|
+
}
|
|
270
|
+
else if (parameters.node instanceof Scalar) {
|
|
274
271
|
this.#withScalar(parameters, (q) => {
|
|
275
272
|
return descriptor.addParameterQuery(q, queryOptions);
|
|
276
273
|
});
|
|
277
274
|
}
|
|
278
|
-
else if (parameters instanceof YAMLSeq) {
|
|
279
|
-
for (let item of parameters.items) {
|
|
280
|
-
this.#withScalar(item, (q) => {
|
|
281
|
-
return descriptor.addParameterQuery(q, queryOptions);
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
275
|
else {
|
|
286
|
-
|
|
276
|
+
const seq = parameters.requireSequence('Parameters must be a string or array of strings');
|
|
277
|
+
if (seq != null) {
|
|
278
|
+
for (let item of seq.items) {
|
|
279
|
+
this.#withScalar(item, (q) => {
|
|
280
|
+
return descriptor.addParameterQuery(q, queryOptions);
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
287
284
|
}
|
|
288
|
-
if (
|
|
289
|
-
this.#errors.push(this.#tokenError((dataQueries ?? value), `'data' must be an array`));
|
|
285
|
+
if (dataQueries == null) {
|
|
290
286
|
continue;
|
|
291
287
|
}
|
|
292
288
|
for (let query of dataQueries.items) {
|
|
@@ -298,31 +294,28 @@ export class SyncConfigFromYaml {
|
|
|
298
294
|
rules.bucketDataSources.push(...descriptor.dataSources);
|
|
299
295
|
rules.bucketParameterLookupSources.push(...descriptor.parameterIndexLookupCreators);
|
|
300
296
|
}
|
|
301
|
-
for (const
|
|
302
|
-
const { key: keyScalar, value } = entry;
|
|
303
|
-
const key = keyScalar.toString();
|
|
297
|
+
for (const { key, keyScalar, value } of streamMap?.stringKeyedItems() ?? []) {
|
|
304
298
|
if (!this.#checkUniqueName(key, keyScalar)) {
|
|
305
299
|
continue;
|
|
306
300
|
}
|
|
301
|
+
using map = value.requireMap();
|
|
302
|
+
if (map == null)
|
|
303
|
+
continue;
|
|
307
304
|
// We don't support with or multiple queries in streams, those are only supported by the new compiler.
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
const
|
|
313
|
-
if (queries != null) {
|
|
314
|
-
this.#errors.push(this.#yamlError(queries, 'Multiple queries not supported without the `sync_config_compiler` option.'));
|
|
315
|
-
}
|
|
316
|
-
const accept_potentially_dangerous_queries = value.get('accept_potentially_dangerous_queries', true)?.value == true;
|
|
305
|
+
map
|
|
306
|
+
.get('with')
|
|
307
|
+
?.reportError('Common table expressions are not supported without the `sync_config_compiler` option.');
|
|
308
|
+
map.get('queries')?.reportError('Multiple queries not supported without the `sync_config_compiler` option.');
|
|
309
|
+
const accept_potentially_dangerous_queries = map.get('accept_potentially_dangerous_queries')?.requireScalar()?.requireBoolean() == true;
|
|
317
310
|
const queryOptions = {
|
|
318
311
|
...this.options,
|
|
319
312
|
accept_potentially_dangerous_queries,
|
|
320
|
-
priority: this.#parsePriority(
|
|
321
|
-
auto_subscribe:
|
|
313
|
+
priority: this.#parsePriority(map),
|
|
314
|
+
auto_subscribe: map.get('auto_subscribe')?.requireScalar()?.requireBoolean() == true,
|
|
322
315
|
compatibility
|
|
323
316
|
};
|
|
324
|
-
const data =
|
|
325
|
-
if (data
|
|
317
|
+
const data = map.get('query')?.requireScalar('Must be a string');
|
|
318
|
+
if (data != null) {
|
|
326
319
|
this.#withScalar(data, (q) => {
|
|
327
320
|
const [parsed, errors] = syncStreamFromSql(key, q, queryOptions);
|
|
328
321
|
rules.bucketSources.push(parsed);
|
|
@@ -334,56 +327,41 @@ export class SyncConfigFromYaml {
|
|
|
334
327
|
};
|
|
335
328
|
});
|
|
336
329
|
}
|
|
337
|
-
else {
|
|
338
|
-
this.#errors.push(this.#tokenError(data, 'Must be a string.'));
|
|
339
|
-
continue;
|
|
340
|
-
}
|
|
341
330
|
}
|
|
342
331
|
return rules;
|
|
343
332
|
}
|
|
344
333
|
#validateStorageVersion(config) {
|
|
345
|
-
const storageScalar = config.get('storage_version'
|
|
334
|
+
const storageScalar = config.get('storage_version')?.requireScalar();
|
|
346
335
|
if (storageScalar != null) {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
const version = validateStorageVersion(
|
|
336
|
+
const rawVersion = storageScalar.requireNumeric('Storage version must be numeric');
|
|
337
|
+
if (rawVersion != null) {
|
|
338
|
+
const version = validateStorageVersion(rawVersion);
|
|
350
339
|
if (version == null) {
|
|
351
|
-
|
|
340
|
+
storageScalar.reportError(`Storage version ${rawVersion} is not supported`);
|
|
352
341
|
}
|
|
353
342
|
else if (!version.stable) {
|
|
354
|
-
|
|
355
|
-
error.type = 'warning';
|
|
356
|
-
this.#errors.push(error);
|
|
343
|
+
storageScalar.reportError(`Storage version ${version.version} is unstable, and may cause unexpected behavior or stop functioning in any release`, 'warning');
|
|
357
344
|
}
|
|
358
345
|
return version?.version;
|
|
359
346
|
}
|
|
360
|
-
else {
|
|
361
|
-
this.#errors.push(this.#yamlError(storageScalar, 'Storage version must be numeric'));
|
|
362
|
-
return undefined;
|
|
363
|
-
}
|
|
364
347
|
}
|
|
365
348
|
return undefined;
|
|
366
349
|
}
|
|
367
350
|
#parseEventDefinitions(parsed, compatibility) {
|
|
368
|
-
const eventMap = parsed.get('event_definitions');
|
|
351
|
+
const eventMap = parsed.get('event_definitions')?.requireMap();
|
|
369
352
|
const eventDescriptors = [];
|
|
370
|
-
for (const
|
|
371
|
-
|
|
372
|
-
if (
|
|
373
|
-
this.#errors.push(new YamlError(new Error(`Event definitions must be objects.`)));
|
|
353
|
+
for (const { key: name, keyScalar, value: maybeMap } of eventMap?.stringKeyedItems() ?? []) {
|
|
354
|
+
using value = maybeMap.requireMap(`Event definitions must be objects.`);
|
|
355
|
+
if (value == null)
|
|
374
356
|
continue;
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
if (false == payloads instanceof YAMLSeq) {
|
|
378
|
-
this.#errors.push(new YamlError(new Error(`Event definition payloads must be an array.`)));
|
|
357
|
+
const payloads = value.get('payloads')?.requireSequence(`Event definition payloads must be an array.`);
|
|
358
|
+
if (payloads == null)
|
|
379
359
|
continue;
|
|
380
|
-
|
|
381
|
-
const eventDescriptor = new SqlEventDescriptor(key.toString(), compatibility);
|
|
360
|
+
const eventDescriptor = new SqlEventDescriptor(name, compatibility);
|
|
382
361
|
for (let item of payloads.items) {
|
|
383
|
-
|
|
384
|
-
|
|
362
|
+
const itemScalar = item.requireScalar(`Payload queries for events must be scalar.`);
|
|
363
|
+
if (itemScalar == null)
|
|
385
364
|
continue;
|
|
386
|
-
}
|
|
387
365
|
this.#withScalar(item, (q) => {
|
|
388
366
|
return eventDescriptor.addSourceQuery(q, this.options);
|
|
389
367
|
});
|
|
@@ -394,52 +372,38 @@ export class SyncConfigFromYaml {
|
|
|
394
372
|
}
|
|
395
373
|
#checkUniqueName(name, literal) {
|
|
396
374
|
if (this.#definitionNames.has(name)) {
|
|
397
|
-
|
|
375
|
+
literal.reportError('Duplicate stream or bucket definition.');
|
|
398
376
|
return false;
|
|
399
377
|
}
|
|
400
378
|
this.#definitionNames.add(name);
|
|
401
379
|
return true;
|
|
402
380
|
}
|
|
403
381
|
#parsePriority(value) {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
382
|
+
const message = 'Invalid priority, expected a number between 0 and 3 (inclusive).';
|
|
383
|
+
const priorityScalar = value.get('priority')?.requireScalar();
|
|
384
|
+
const rawPriority = priorityScalar?.requireNumeric(message);
|
|
385
|
+
if (priorityScalar == null || rawPriority == null)
|
|
386
|
+
return;
|
|
387
|
+
if (!isValidPriority(rawPriority)) {
|
|
388
|
+
priorityScalar.reportError(message);
|
|
389
|
+
return;
|
|
412
390
|
}
|
|
391
|
+
return rawPriority;
|
|
413
392
|
}
|
|
414
393
|
#acceptPotentiallyUnsafeQueries(definition) {
|
|
415
|
-
return definition.get('accept_potentially_dangerous_queries'
|
|
416
|
-
}
|
|
417
|
-
#yamlError(node, message) {
|
|
418
|
-
if (node.range != null) {
|
|
419
|
-
const [start, _, end] = node.range;
|
|
420
|
-
return new YamlError(new Error(message), { start, end });
|
|
421
|
-
}
|
|
422
|
-
else {
|
|
423
|
-
return new YamlError(new Error(message));
|
|
424
|
-
}
|
|
394
|
+
return definition.get('accept_potentially_dangerous_queries')?.requireScalar()?.requireBoolean() ?? false;
|
|
425
395
|
}
|
|
426
396
|
#tokenError(token, message) {
|
|
427
397
|
const start = token?.srcToken?.offset ?? 0;
|
|
428
398
|
const end = start + 1;
|
|
429
399
|
return new YamlError(new Error(message), { start, end });
|
|
430
400
|
}
|
|
431
|
-
#
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
return false;
|
|
435
|
-
}
|
|
436
|
-
return true;
|
|
437
|
-
}
|
|
438
|
-
#withScalar(scalar, cb) {
|
|
439
|
-
if (!this.#expectScalar(scalar)) {
|
|
401
|
+
#withScalar(state, cb) {
|
|
402
|
+
const scalar = state.requireScalar();
|
|
403
|
+
if (scalar == null) {
|
|
440
404
|
return;
|
|
441
405
|
}
|
|
442
|
-
const value = scalar.toString();
|
|
406
|
+
const value = scalar.node.toString();
|
|
443
407
|
const wrapped = (value) => {
|
|
444
408
|
try {
|
|
445
409
|
return cb(value);
|
|
@@ -453,7 +417,7 @@ export class SyncConfigFromYaml {
|
|
|
453
417
|
};
|
|
454
418
|
const result = wrapped(value);
|
|
455
419
|
for (let err of result.errors) {
|
|
456
|
-
this.#addErrorFromScalar(scalar, value, err);
|
|
420
|
+
this.#addErrorFromScalar(scalar.node, value, err);
|
|
457
421
|
}
|
|
458
422
|
return;
|
|
459
423
|
}
|
package/dist/from_yaml.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from_yaml.js","sourceRoot":"","sources":["../src/from_yaml.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"from_yaml.js","sourceRoot":"","sources":["../src/from_yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAwB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAoB,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,aAAa,EAA4C,MAAM,sBAAsB,CAAC;AAE/F,MAAM,oCAAoC,GAAG,MAAM,CAAC,sCAAsC,CAAC,CAAC;AAE5F;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAUV;IACA;IAVV,OAAO,GAAgB,EAAE,CAAC;IAC1B,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;IAE1C,uEAAuE;IAC9D,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,YAAY,GAAoC,EAAE,CAAC;IAE5D,YACmB,OAAkC,EAClC,IAAY;QADZ,YAAO,GAAP,OAAO,CAA2B;QAClC,SAAI,GAAJ,IAAI,CAAQ;IAC5B,CAAC;IAEJ,IAAI;QACF,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACxD,CAAC;IAED,KAAK;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,UAAU,EAAE;gBACV;oBACE,GAAG,EAAE,uCAAuC;oBAC5C,OAAO,CAAC,KAAa,EAAE,QAAiC;wBACtD,OAAO,oCAAoC,CAAC;oBAC9C,CAAC;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,iHAAiH;QACjH,gHAAgH;QAChH,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,GAAG,uBAAuB,CAAC,MAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;oBAChD,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,MAAgB;QAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,iCAAiC,CAAC,CAAC;QAE9G,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAEhC,kHAAkH;YAClH,qBAAqB;YACrB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;QAC9D,IAAI,aAAmC,CAAC;QACxC,IAAI,cAAkC,CAAC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;YACjE,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;YAE/D,IAAI,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACxE,+FAA+F;gBAC/F,IAAI,aAAa,CAAC,OAAO,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;oBAClE,eAAe,CAAC,WAAW,CAAC,gEAAgE,CAAC,CAAC;gBAChG,CAAC;qBAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC1E,eAAe,CAAC,WAAW,CAAC,wEAAwE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,oBAAoB,CAAC,4BAA4B,CAAC;QACpE,CAAC;QAED,gEAAgE;QAChE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;QAEvD,IAAI,MAAkB,CAAC;QACvB,IAAI,aAAa,CAAC,OAAO,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;YACnE,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YAChF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,UAAU,EAAE,WAAW,CAAC,6CAA6C,CAAC,CAAC;YAEvE,MAAM,GAAG,IAAI,CAAC,uCAAuC,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAEvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC/E,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAElD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,wBAAwB;QACtB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACrD,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,0BAA0B,CAAC,eAA6B;QACtD,MAAM,OAAO,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE;YAChF,oBAAoB,CAAC,MAAM,CAAyB,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgC,CAAC;QACxD,IAAI,qBAAqB,GAAmC,SAAS,CAAC;QAEtE,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,CAAC;YAC9E,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,wBAAwB,GAAG,eAAe,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,aAAa,EAAE,CAAC;QACjG,IAAI,wBAAwB,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,wBAAwB,EAAE,aAAa,EAAE,CAAC;YAC9D,IAAI,WAAW,EAAE,CAAC;gBAChB,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC/D,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClE,wBAAwB,CAAC,WAAW,CAAC,uCAAuC,OAAO,EAAE,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACvG,IAAI,qBAAqB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC7F,eAAe,CAAC,WAAW,CAAC,wEAAwE,CAAC,CAAC;QACxG,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,gBAAgB,CACd,SAAmC,EACnC,SAAmC,EACnC,UAAoC,EACpC,aAAmC;QAEnC,SAAS,EAAE,WAAW,CACpB,oLAAoL,CACrL,CAAC;QAEF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvD,MAAM,2BAA2B,GAAG,CAAC,IAAkC,EAAsC,EAAE;YAC7G,MAAM,GAAG,GAAG,IAAI,GAAG,EAAiC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC;YACnC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;oBAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;oBACvC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;wBACxB,4DAA4D;wBAC5D,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;wBACtE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvD,SAAS,CAAC,WAAW,CACnB,gFAAgF,EAChF,SAAS,CACV,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAED,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;wBAClE,IAAI,MAAM,EAAE,CAAC;4BACX,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;4BAC9C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;4BACjD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBACxB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,kCAAkC,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAEnF,KAAK,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAE5B,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;gBACrC,IAAI,EAAE,GAAG;gBACT,qBAAqB,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,IAAI;gBAC7F,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,uBAAuB;gBAC/D,wBAAwB,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC;aACvE,CAAC,CAAC;YACH,kCAAkC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACzD,cAAc,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAC1D,CAAC;YAEF,0DAA0D;YAE1D,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACrE,cAAc,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAC1D,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAE,EAAE;gBACpC,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBACrC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpE,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEjC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;gBACzC,KAAK,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,eAAe,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;oBACjE,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAED,4GAA4G;QAC5G,OAAO,IAAI,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;YAChF,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;YACzC,UAAU,EAAE,IAAI,CAAC,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;QACf,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,WAAW,CAAC,gDAAgD,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC,CACrC,SAAmC,EACnC,SAAmC,EACnC,aAAmC;QAEnC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QAEpC,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;QAED,2GAA2G;QAC3G,uBAAuB;QACvB,SAAS,EAAE,WAAW,CACpB,sIAAsI,EACtI,SAAS,CACV,CAAC;QAEF,KAAK,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,uCAAuC,CAAC,CAAC;YAClF,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAE5B,MAAM,oCAAoC,GAAG,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;YACzF,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEvD,MAAM,YAAY,GAAsB;gBACtC,GAAG,IAAI,CAAC,OAAO;gBACf,oCAAoC;gBACpC,QAAQ,EAAE,mBAAmB;gBAC7B,aAAa;aACd,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;YAE7D,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAEhD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACvB,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACvD,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,YAAY,MAAM,EAAE,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;oBACjC,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC,iDAAiD,CAAC,CAAC;gBAC1F,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChB,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;wBAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;4BAC3B,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;wBACvD,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,KAAK,IAAI,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC5B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACxD,KAAK,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;QACtF,CAAC;QAED,KAAK,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,GAAG,IAAI,IAAI;gBAAE,SAAS;YAE1B,sGAAsG;YACtG,GAAG;iBACA,GAAG,CAAC,MAAM,CAAC;gBACZ,EAAE,WAAW,CAAC,uFAAuF,CAAC,CAAC;YACzG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,2EAA2E,CAAC,CAAC;YAE7G,MAAM,oCAAoC,GACxC,GAAG,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC;YAE7F,MAAM,YAAY,GAAuB;gBACvC,GAAG,IAAI,CAAC,OAAO;gBACf,oCAAoC;gBACpC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;gBAClC,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,IAAI;gBACpF,aAAa;aACd,CAAC;YAEF,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;YACjE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;oBACjE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;oBACpD,KAAK,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;oBAChF,OAAO;wBACL,MAAM,EAAE,IAAI;wBACZ,MAAM;qBACP,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB,CAAC,MAAoB;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,aAAa,EAAE,CAAC;QACrE,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;YAEnF,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBACnD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,aAAa,CAAC,WAAW,CAAC,mBAAmB,UAAU,mBAAmB,CAAC,CAAC;gBAC9E,CAAC;qBAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC3B,aAAa,CAAC,WAAW,CACvB,mBAAmB,OAAO,CAAC,OAAO,oFAAoF,EACtH,SAAS,CACV,CAAC;gBACJ,CAAC;gBACD,OAAO,OAAO,EAAE,OAAO,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,sBAAsB,CAAC,MAAoB,EAAE,aAAmC;QAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,CAAC;QAC/D,MAAM,gBAAgB,GAAyB,EAAE,CAAC;QAElD,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3F,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC,CAAC;YACxE,IAAI,KAAK,IAAI,IAAI;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,6CAA6C,CAAC,CAAC;YACvG,IAAI,QAAQ,IAAI,IAAI;gBAAE,SAAS;YAE/B,MAAM,eAAe,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACpE,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,4CAA4C,CAAC,CAAC;gBACpF,IAAI,UAAU,IAAI,IAAI;oBAAE,SAAS;gBAEjC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC3B,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,gBAAgB,CAAC,IAAY,EAAE,OAAkB;QAC/C,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,WAAW,CAAC,wCAAwC,CAAC,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,KAAmB;QAChC,MAAM,OAAO,GAAG,kEAAkE,CAAC;QACnF,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QAC9D,MAAM,WAAW,GAAG,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,cAAc,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;YAAE,OAAO;QAC1D,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,+BAA+B,CAAC,UAAwB;QACtD,OAAO,UAAU,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,KAAK,CAAC;IAC5G,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,OAAe;QACxC,MAAM,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QACtB,OAAO,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW,CAAC,KAAgB,EAAE,EAAuC;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAErC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAoB,EAAE;YAClD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,CAAC,CAAC,CAAC;iBACZ,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,OAAO;IACT,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAc;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAyB;YACrC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAQ,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACzD,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;oBACvB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;gBACzB,CAAC;gBAED,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;SACF,CAAC;QAEF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAc,EAAE,KAAa,EAAE,GAAiB;QAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAS,CAAC;QAClC,mGAAmG;QACnG,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,MAAc,CAAC;QACnB,IAAI,GAAW,CAAC;QAEhB,wFAAwF;QACxF,gFAAgF;QAChF,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,KAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,2BAA2B,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAExE,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,GAAG,UAAU,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5E,GAAG,GAAG,UAAU,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;aAAM,IAAI,OAAQ,GAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,QAAQ,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAI,GAAW,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,MAAM,MAAM,GAAI,GAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;YAChD,MAAM,GAAG,UAAU,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC;YACxD,GAAG,GAAG,UAAU,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,UAAU,CAAC;YACpB,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -71,6 +71,7 @@ class StatementToSqlite extends ExpressionToSqlite {
|
|
|
71
71
|
export function mapExternalDataToInstantiation() {
|
|
72
72
|
const instantiation = [];
|
|
73
73
|
const columnsToIndex = new Map();
|
|
74
|
+
const metadataToIndex = new Map();
|
|
74
75
|
const requestToIndex = new Map();
|
|
75
76
|
// Map from table-valued functions on the plan to table-valued functions on the scalar statement
|
|
76
77
|
const tableValuedFunctions = new Map();
|
|
@@ -82,6 +83,12 @@ export function mapExternalDataToInstantiation() {
|
|
|
82
83
|
}
|
|
83
84
|
columnsToIndex.set(data, indexIfAdded);
|
|
84
85
|
}
|
|
86
|
+
else if ('metadata' in data) {
|
|
87
|
+
if (metadataToIndex.has(data)) {
|
|
88
|
+
return metadataToIndex.get(data);
|
|
89
|
+
}
|
|
90
|
+
metadataToIndex.set(data, indexIfAdded);
|
|
91
|
+
}
|
|
85
92
|
else if ('function' in data) {
|
|
86
93
|
const fn = tableValuedFunctions.get(data.function);
|
|
87
94
|
if (fn == null) {
|