grafeo-ogm 2.4.7 → 2.4.8
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/CHANGELOG.md +68 -0
- package/README.md +77 -31
- package/dist/cjs/cli/commands/db-push.d.ts.map +1 -1
- package/dist/cjs/cli/commands/db-push.js +74 -8
- package/dist/cjs/cli/commands/db-push.js.map +1 -1
- package/dist/cjs/cli/commands/db-seed.d.ts.map +1 -1
- package/dist/cjs/cli/commands/db-seed.js +10 -1
- package/dist/cjs/cli/commands/db-seed.js.map +1 -1
- package/dist/cjs/cli/introspect.d.ts +2 -2
- package/dist/cjs/cli/introspect.d.ts.map +1 -1
- package/dist/cjs/cli/introspect.js +44 -2
- package/dist/cjs/cli/introspect.js.map +1 -1
- package/dist/cjs/cli/push-planner.d.ts +57 -2
- package/dist/cjs/cli/push-planner.d.ts.map +1 -1
- package/dist/cjs/cli/push-planner.js +161 -3
- package/dist/cjs/cli/push-planner.js.map +1 -1
- package/dist/cjs/compilers/fulltext.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/fulltext.compiler.js +5 -1
- package/dist/cjs/compilers/fulltext.compiler.js.map +1 -1
- package/dist/cjs/compilers/mutation.compiler.d.ts +107 -1
- package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/mutation.compiler.js +647 -380
- package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
- package/dist/cjs/compilers/select-normalizer.d.ts.map +1 -1
- package/dist/cjs/compilers/select-normalizer.js +12 -1
- package/dist/cjs/compilers/select-normalizer.js.map +1 -1
- package/dist/cjs/compilers/selection.compiler.d.ts +40 -0
- package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/selection.compiler.js +123 -21
- package/dist/cjs/compilers/selection.compiler.js.map +1 -1
- package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
- package/dist/cjs/compilers/where.compiler.js +36 -15
- package/dist/cjs/compilers/where.compiler.js.map +1 -1
- package/dist/cjs/execution/executor.d.ts +34 -9
- package/dist/cjs/execution/executor.d.ts.map +1 -1
- package/dist/cjs/execution/executor.js +42 -5
- package/dist/cjs/execution/executor.js.map +1 -1
- package/dist/cjs/execution/result-mapper.d.ts.map +1 -1
- package/dist/cjs/execution/result-mapper.js +4 -2
- package/dist/cjs/execution/result-mapper.js.map +1 -1
- package/dist/cjs/generator/generate-types.d.ts.map +1 -1
- package/dist/cjs/generator/generate-types.js +76 -0
- package/dist/cjs/generator/generate-types.js.map +1 -1
- package/dist/cjs/generator/type-emitters/aggregation-emitter.d.ts.map +1 -1
- package/dist/cjs/generator/type-emitters/aggregation-emitter.js +19 -7
- package/dist/cjs/generator/type-emitters/aggregation-emitter.js.map +1 -1
- package/dist/cjs/generator/type-emitters/input-emitter.js +13 -4
- package/dist/cjs/generator/type-emitters/input-emitter.js.map +1 -1
- package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts +1 -0
- package/dist/cjs/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
- package/dist/cjs/generator/type-emitters/model-map-emitter.js +5 -20
- package/dist/cjs/generator/type-emitters/model-map-emitter.js.map +1 -1
- package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts +3 -0
- package/dist/cjs/generator/type-emitters/node-type-emitter.d.ts.map +1 -1
- package/dist/cjs/generator/type-emitters/node-type-emitter.js +6 -11
- package/dist/cjs/generator/type-emitters/node-type-emitter.js.map +1 -1
- package/dist/cjs/generator/type-emitters/select-fields-emitter.js +21 -2
- package/dist/cjs/generator/type-emitters/select-fields-emitter.js.map +1 -1
- package/dist/cjs/generator/type-emitters/where-emitter.js +3 -3
- package/dist/cjs/generator/type-emitters/where-emitter.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/interface-model.d.ts.map +1 -1
- package/dist/cjs/interface-model.js +6 -0
- package/dist/cjs/interface-model.js.map +1 -1
- package/dist/cjs/model.d.ts.map +1 -1
- package/dist/cjs/model.js +6 -0
- package/dist/cjs/model.js.map +1 -1
- package/dist/cjs/ogm.d.ts +22 -2
- package/dist/cjs/ogm.d.ts.map +1 -1
- package/dist/cjs/ogm.js +42 -5
- package/dist/cjs/ogm.js.map +1 -1
- package/dist/cjs/policy/nested-writes.d.ts.map +1 -1
- package/dist/cjs/policy/nested-writes.js +40 -20
- package/dist/cjs/policy/nested-writes.js.map +1 -1
- package/dist/cjs/schema/parser.d.ts.map +1 -1
- package/dist/cjs/schema/parser.js +94 -16
- package/dist/cjs/schema/parser.js.map +1 -1
- package/dist/cjs/schema/types.d.ts +1 -1
- package/dist/cjs/schema/types.d.ts.map +1 -1
- package/dist/cjs/testing/cypher-assert.d.ts.map +1 -1
- package/dist/cjs/testing/cypher-assert.js +25 -2
- package/dist/cjs/testing/cypher-assert.js.map +1 -1
- package/dist/cjs/testing/neo4j-record-factory.d.ts +25 -2
- package/dist/cjs/testing/neo4j-record-factory.d.ts.map +1 -1
- package/dist/cjs/testing/neo4j-record-factory.js +82 -3
- package/dist/cjs/testing/neo4j-record-factory.js.map +1 -1
- package/dist/cjs/utils/cypher-field-projection.d.ts +31 -3
- package/dist/cjs/utils/cypher-field-projection.d.ts.map +1 -1
- package/dist/cjs/utils/cypher-field-projection.js +59 -7
- package/dist/cjs/utils/cypher-field-projection.js.map +1 -1
- package/dist/cjs/utils/write-coercion.d.ts +18 -0
- package/dist/cjs/utils/write-coercion.d.ts.map +1 -1
- package/dist/cjs/utils/write-coercion.js +74 -1
- package/dist/cjs/utils/write-coercion.js.map +1 -1
- package/dist/esm/cli/commands/db-push.d.ts.map +1 -1
- package/dist/esm/cli/commands/db-push.js +74 -8
- package/dist/esm/cli/commands/db-push.js.map +1 -1
- package/dist/esm/cli/commands/db-seed.d.ts.map +1 -1
- package/dist/esm/cli/commands/db-seed.js +10 -1
- package/dist/esm/cli/commands/db-seed.js.map +1 -1
- package/dist/esm/cli/introspect.d.ts +2 -2
- package/dist/esm/cli/introspect.d.ts.map +1 -1
- package/dist/esm/cli/introspect.js +44 -2
- package/dist/esm/cli/introspect.js.map +1 -1
- package/dist/esm/cli/push-planner.d.ts +57 -2
- package/dist/esm/cli/push-planner.d.ts.map +1 -1
- package/dist/esm/cli/push-planner.js +162 -4
- package/dist/esm/cli/push-planner.js.map +1 -1
- package/dist/esm/compilers/fulltext.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/fulltext.compiler.js +5 -1
- package/dist/esm/compilers/fulltext.compiler.js.map +1 -1
- package/dist/esm/compilers/mutation.compiler.d.ts +107 -1
- package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/mutation.compiler.js +644 -380
- package/dist/esm/compilers/mutation.compiler.js.map +1 -1
- package/dist/esm/compilers/select-normalizer.d.ts.map +1 -1
- package/dist/esm/compilers/select-normalizer.js +12 -1
- package/dist/esm/compilers/select-normalizer.js.map +1 -1
- package/dist/esm/compilers/selection.compiler.d.ts +40 -0
- package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/selection.compiler.js +123 -21
- package/dist/esm/compilers/selection.compiler.js.map +1 -1
- package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
- package/dist/esm/compilers/where.compiler.js +37 -16
- package/dist/esm/compilers/where.compiler.js.map +1 -1
- package/dist/esm/execution/executor.d.ts +34 -9
- package/dist/esm/execution/executor.d.ts.map +1 -1
- package/dist/esm/execution/executor.js +41 -5
- package/dist/esm/execution/executor.js.map +1 -1
- package/dist/esm/execution/result-mapper.d.ts.map +1 -1
- package/dist/esm/execution/result-mapper.js +4 -2
- package/dist/esm/execution/result-mapper.js.map +1 -1
- package/dist/esm/generator/generate-types.d.ts.map +1 -1
- package/dist/esm/generator/generate-types.js +76 -0
- package/dist/esm/generator/generate-types.js.map +1 -1
- package/dist/esm/generator/type-emitters/aggregation-emitter.d.ts.map +1 -1
- package/dist/esm/generator/type-emitters/aggregation-emitter.js +19 -7
- package/dist/esm/generator/type-emitters/aggregation-emitter.js.map +1 -1
- package/dist/esm/generator/type-emitters/input-emitter.js +13 -4
- package/dist/esm/generator/type-emitters/input-emitter.js.map +1 -1
- package/dist/esm/generator/type-emitters/model-map-emitter.d.ts +1 -0
- package/dist/esm/generator/type-emitters/model-map-emitter.d.ts.map +1 -1
- package/dist/esm/generator/type-emitters/model-map-emitter.js +5 -20
- package/dist/esm/generator/type-emitters/model-map-emitter.js.map +1 -1
- package/dist/esm/generator/type-emitters/node-type-emitter.d.ts +3 -0
- package/dist/esm/generator/type-emitters/node-type-emitter.d.ts.map +1 -1
- package/dist/esm/generator/type-emitters/node-type-emitter.js +6 -11
- package/dist/esm/generator/type-emitters/node-type-emitter.js.map +1 -1
- package/dist/esm/generator/type-emitters/select-fields-emitter.js +21 -2
- package/dist/esm/generator/type-emitters/select-fields-emitter.js.map +1 -1
- package/dist/esm/generator/type-emitters/where-emitter.js +3 -3
- package/dist/esm/generator/type-emitters/where-emitter.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/interface-model.d.ts.map +1 -1
- package/dist/esm/interface-model.js +6 -0
- package/dist/esm/interface-model.js.map +1 -1
- package/dist/esm/model.d.ts.map +1 -1
- package/dist/esm/model.js +6 -0
- package/dist/esm/model.js.map +1 -1
- package/dist/esm/ogm.d.ts +22 -2
- package/dist/esm/ogm.d.ts.map +1 -1
- package/dist/esm/ogm.js +43 -6
- package/dist/esm/ogm.js.map +1 -1
- package/dist/esm/policy/nested-writes.d.ts.map +1 -1
- package/dist/esm/policy/nested-writes.js +40 -20
- package/dist/esm/policy/nested-writes.js.map +1 -1
- package/dist/esm/schema/parser.d.ts.map +1 -1
- package/dist/esm/schema/parser.js +94 -16
- package/dist/esm/schema/parser.js.map +1 -1
- package/dist/esm/schema/types.d.ts +1 -1
- package/dist/esm/schema/types.d.ts.map +1 -1
- package/dist/esm/testing/cypher-assert.d.ts.map +1 -1
- package/dist/esm/testing/cypher-assert.js +25 -2
- package/dist/esm/testing/cypher-assert.js.map +1 -1
- package/dist/esm/testing/neo4j-record-factory.d.ts +25 -2
- package/dist/esm/testing/neo4j-record-factory.d.ts.map +1 -1
- package/dist/esm/testing/neo4j-record-factory.js +82 -3
- package/dist/esm/testing/neo4j-record-factory.js.map +1 -1
- package/dist/esm/utils/cypher-field-projection.d.ts +31 -3
- package/dist/esm/utils/cypher-field-projection.d.ts.map +1 -1
- package/dist/esm/utils/cypher-field-projection.js +58 -7
- package/dist/esm/utils/cypher-field-projection.js.map +1 -1
- package/dist/esm/utils/write-coercion.d.ts +18 -0
- package/dist/esm/utils/write-coercion.d.ts.map +1 -1
- package/dist/esm/utils/write-coercion.js +73 -1
- package/dist/esm/utils/write-coercion.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-writes.d.ts","sourceRoot":"","sources":["../../../src/policy/nested-writes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nested-writes.d.ts","sourceRoot":"","sources":["../../../src/policy/nested-writes.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AAKjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC7C,IAAI,CAkBN;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,IAAI,CAcN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC9C,MAAM,EAAE,mBAAmB,GAAG,IAAI,GACjC,IAAI,CAIN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,MAAM,EAAE,mBAAmB,GAAG,IAAI,GACjC,IAAI,CAGN"}
|
|
@@ -26,10 +26,14 @@ exports.assertNestedUpdatesAllowed = assertNestedUpdatesAllowed;
|
|
|
26
26
|
* relationship → `{ create, update, … }` (single item or array), union
|
|
27
27
|
* targets keyed by member name, `create` items as `{ node, edge }` or a
|
|
28
28
|
* bare node, `update` as `{ node, edge }` or a bare node. Interface
|
|
29
|
-
* targets are
|
|
30
|
-
* create
|
|
29
|
+
* targets are walked like unions when keyed by implementer, and in the
|
|
30
|
+
* flat shape a create checks the implementer it names while an update
|
|
31
|
+
* checks EVERY implementer it may reach (v2.4.8 — pre-2.4.8 interface
|
|
32
|
+
* targets were skipped, as the compiler then emitted no write for them).
|
|
31
33
|
*/
|
|
34
|
+
const mutation_compiler_1 = require("../compilers/mutation.compiler");
|
|
32
35
|
const errors_1 = require("../errors");
|
|
36
|
+
const utils_1 = require("../schema/utils");
|
|
33
37
|
const validation_1 = require("../utils/validation");
|
|
34
38
|
const errors_2 = require("./errors");
|
|
35
39
|
const types_1 = require("./types");
|
|
@@ -139,7 +143,10 @@ function walkUpdate(schema, nodeDef, update, bundle, depth) {
|
|
|
139
143
|
// Same node-spec resolution as the compiler's nested update.
|
|
140
144
|
const spec = item.update;
|
|
141
145
|
const nodeUpdate = (spec.node ?? (spec.edge ? {} : spec));
|
|
142
|
-
|
|
146
|
+
// A flat interface update may write any implementer: each one's
|
|
147
|
+
// write restrictives must accept it.
|
|
148
|
+
for (const typeName of concreteTypes(schema, targetDef))
|
|
149
|
+
evaluateWriteRestrictives(targetBundle(bundle, typeName, 'update'), typeName, 'update', nodeUpdate);
|
|
143
150
|
if ((0, validation_1.isPlainObject)(nodeUpdate))
|
|
144
151
|
walkUpdate(schema, targetDef, nodeUpdate, bundle, depth + 1);
|
|
145
152
|
}
|
|
@@ -147,37 +154,50 @@ function walkUpdate(schema, nodeDef, update, bundle, depth) {
|
|
|
147
154
|
}
|
|
148
155
|
}
|
|
149
156
|
function checkCreates(schema, targetDef, creates, bundle, depth) {
|
|
157
|
+
const abstract = (0, mutation_compiler_1.abstractTarget)(targetDef.typeName, schema);
|
|
150
158
|
for (const item of asArray(creates)) {
|
|
151
159
|
if (!(0, validation_1.isPlainObject)(item))
|
|
152
160
|
continue;
|
|
153
161
|
// Same node-spec resolution as the compiler's nested create.
|
|
154
|
-
|
|
155
|
-
|
|
162
|
+
let nodeSpec = (item.node ?? item);
|
|
163
|
+
let createDef = targetDef;
|
|
164
|
+
if (abstract) {
|
|
165
|
+
// A flat interface create names its implementer: check THAT type.
|
|
166
|
+
const [member, memberSpec] = (0, mutation_compiler_1.unwrapAbstractCreateNode)(nodeSpec, abstract, targetDef.typeName);
|
|
167
|
+
createDef = schema.nodes.get(member);
|
|
168
|
+
nodeSpec = memberSpec;
|
|
169
|
+
}
|
|
170
|
+
evaluateCreatePolicies(targetBundle(bundle, createDef.typeName, 'create'), createDef.typeName, [nodeSpec]);
|
|
156
171
|
if ((0, validation_1.isPlainObject)(nodeSpec))
|
|
157
|
-
walkCreate(schema,
|
|
172
|
+
walkCreate(schema, createDef, nodeSpec, bundle, depth + 1);
|
|
158
173
|
}
|
|
159
174
|
}
|
|
160
175
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
176
|
+
* Targets of a relationship paired with their slice of the input: the
|
|
177
|
+
* whole value for a node target, one entry per member key for a union or
|
|
178
|
+
* interface target keyed by member, and the interface itself for a flat
|
|
179
|
+
* interface input (its creates name their implementer; see checkCreates).
|
|
180
|
+
* The shape rules are the compiler's (`perMemberEntries`).
|
|
164
181
|
*/
|
|
165
182
|
function relationshipTargets(schema, relDef, value) {
|
|
166
183
|
const nodeDef = schema.nodes.get(relDef.target);
|
|
167
184
|
if (nodeDef)
|
|
168
185
|
return [[nodeDef, value]];
|
|
169
|
-
const
|
|
170
|
-
if (!
|
|
186
|
+
const abstract = (0, mutation_compiler_1.abstractTarget)(relDef.target, schema);
|
|
187
|
+
if (!abstract)
|
|
171
188
|
return [];
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
189
|
+
const entries = (0, mutation_compiler_1.perMemberEntries)(value, abstract, relDef.fieldName);
|
|
190
|
+
if (entries)
|
|
191
|
+
return entries.map(([member, memberValue]) => [
|
|
192
|
+
schema.nodes.get(member),
|
|
193
|
+
memberValue,
|
|
194
|
+
]);
|
|
195
|
+
const ifaceDef = (0, utils_1.resolveTargetDef)(relDef.target, schema);
|
|
196
|
+
return ifaceDef ? [[ifaceDef, value]] : [];
|
|
197
|
+
}
|
|
198
|
+
/** The concrete type(s) a write on `targetDef` can reach. */
|
|
199
|
+
function concreteTypes(schema, targetDef) {
|
|
200
|
+
return ((0, mutation_compiler_1.abstractTarget)(targetDef.typeName, schema)?.members ?? [targetDef.typeName]);
|
|
181
201
|
}
|
|
182
202
|
/** The target type's bundle for `op`; a type without policies is open. */
|
|
183
203
|
function targetBundle(bundle, typeName, op) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-writes.js","sourceRoot":"","sources":["../../../src/policy/nested-writes.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"nested-writes.js","sourceRoot":"","sources":["../../../src/policy/nested-writes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/schema/parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/schema/parser.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,cAAc,EAOf,MAAM,SAAS,CAAC;AAKjB;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAiXD;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAgJhE"}
|
|
@@ -82,8 +82,26 @@ function getDirectiveArgValue(directive, argName) {
|
|
|
82
82
|
return undefined;
|
|
83
83
|
return arg.value;
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* String encoding of a scalar `@default` value (`'true'`, `'5'`, `'RED'`),
|
|
87
|
+
* or `undefined` for kinds that have no scalar encoding (lists, objects,
|
|
88
|
+
* null, variables).
|
|
89
|
+
*/
|
|
90
|
+
function scalarDefaultString(val) {
|
|
91
|
+
switch (val.kind) {
|
|
92
|
+
case graphql_1.Kind.STRING:
|
|
93
|
+
case graphql_1.Kind.ENUM:
|
|
94
|
+
case graphql_1.Kind.INT:
|
|
95
|
+
case graphql_1.Kind.FLOAT:
|
|
96
|
+
return val.value;
|
|
97
|
+
case graphql_1.Kind.BOOLEAN:
|
|
98
|
+
return String(val.value);
|
|
99
|
+
default:
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
85
103
|
/** Parse a field definition into either a PropertyDefinition or RelationshipDefinition */
|
|
86
|
-
function parseField(field, enumNames) {
|
|
104
|
+
function parseField(field, enumNames, ownerName) {
|
|
87
105
|
const { typeName, isArray, isRequired, isListItemRequired } = unwrapType(field.type);
|
|
88
106
|
const relationshipDirective = getDirective(field, 'relationship');
|
|
89
107
|
const declareRelDirective = getDirective(field, 'declareRelationship');
|
|
@@ -95,10 +113,17 @@ function parseField(field, enumNames) {
|
|
|
95
113
|
if (!relType || !direction)
|
|
96
114
|
// Malformed directive, skip
|
|
97
115
|
return {};
|
|
116
|
+
// Through v2.4.7 any value was cast to 'IN' | 'OUT' unchecked. Reads
|
|
117
|
+
// treat anything but 'IN' as OUT while writes treat anything but 'OUT'
|
|
118
|
+
// as IN, so e.g. `direction: "out"` wrote every edge reversed and the
|
|
119
|
+
// reads then could not see them. Reject at parse time instead.
|
|
120
|
+
if (direction !== 'IN' && direction !== 'OUT')
|
|
121
|
+
throw new errors_1.OGMError(`Invalid @relationship direction "${direction}" on ${ownerName}.${field.name.value}: ` +
|
|
122
|
+
`direction must be exactly "IN" or "OUT" (case-sensitive).`);
|
|
98
123
|
const rel = {
|
|
99
124
|
fieldName: field.name.value,
|
|
100
125
|
type: relType,
|
|
101
|
-
direction
|
|
126
|
+
direction,
|
|
102
127
|
target: typeName,
|
|
103
128
|
isArray,
|
|
104
129
|
isRequired,
|
|
@@ -128,17 +153,24 @@ function parseField(field, enumNames) {
|
|
|
128
153
|
let defaultValue;
|
|
129
154
|
if (defaultDirective) {
|
|
130
155
|
const val = getDirectiveArgValue(defaultDirective, 'value');
|
|
131
|
-
if (val)
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
156
|
+
if (val && val.kind === graphql_1.Kind.LIST) {
|
|
157
|
+
// Through v2.4.7 there was no LIST branch: a list default parsed as
|
|
158
|
+
// `undefined` and creates silently wrote nothing. Elements use the
|
|
159
|
+
// same string encoding as scalar defaults (converted by type at
|
|
160
|
+
// write time, see resolveDefaultWriteValue).
|
|
161
|
+
const where = `${ownerName}.${field.name.value}`;
|
|
162
|
+
if (!isArray)
|
|
163
|
+
throw new errors_1.OGMError(`Invalid @default on ${where}: a list @default was given but the field is not a list type.`);
|
|
164
|
+
defaultValue = val.values.map((el) => {
|
|
165
|
+
const scalar = scalarDefaultString(el);
|
|
166
|
+
if (scalar === undefined)
|
|
167
|
+
throw new errors_1.OGMError(`Invalid @default on ${where}: list defaults may ` +
|
|
168
|
+
`only contain String, Int, Float, Boolean or enum values.`);
|
|
169
|
+
return scalar;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
else if (val)
|
|
173
|
+
defaultValue = scalarDefaultString(val);
|
|
142
174
|
}
|
|
143
175
|
// Determine if this is truly a scalar property
|
|
144
176
|
// A non-scalar, non-enum type without @relationship is unusual but we treat it as a property
|
|
@@ -299,7 +331,7 @@ function parseSchema(schemaSource) {
|
|
|
299
331
|
const properties = new Map();
|
|
300
332
|
const relationships = new Map();
|
|
301
333
|
for (const field of intDef.fields ?? []) {
|
|
302
|
-
const parsed = parseField(field, enumNames);
|
|
334
|
+
const parsed = parseField(field, enumNames, intDef.name.value);
|
|
303
335
|
if (parsed.property)
|
|
304
336
|
properties.set(parsed.property.name, parsed.property);
|
|
305
337
|
if (parsed.relationship)
|
|
@@ -324,7 +356,7 @@ function parseSchema(schemaSource) {
|
|
|
324
356
|
if (relPropsTypeNames.has(typeName)) {
|
|
325
357
|
const properties = new Map();
|
|
326
358
|
for (const field of objDef.fields ?? []) {
|
|
327
|
-
const parsed = parseField(field, enumNames);
|
|
359
|
+
const parsed = parseField(field, enumNames, typeName);
|
|
328
360
|
if (parsed.property)
|
|
329
361
|
properties.set(parsed.property.name, parsed.property);
|
|
330
362
|
}
|
|
@@ -340,7 +372,7 @@ function parseSchema(schemaSource) {
|
|
|
340
372
|
const properties = new Map();
|
|
341
373
|
const relationships = new Map();
|
|
342
374
|
for (const field of objDef.fields ?? []) {
|
|
343
|
-
const parsed = parseField(field, enumNames);
|
|
375
|
+
const parsed = parseField(field, enumNames, typeName);
|
|
344
376
|
if (parsed.property)
|
|
345
377
|
properties.set(parsed.property.name, parsed.property);
|
|
346
378
|
if (parsed.relationship)
|
|
@@ -382,6 +414,52 @@ function parseSchema(schemaSource) {
|
|
|
382
414
|
};
|
|
383
415
|
metadata.nodes.set(typeName, nodeDef);
|
|
384
416
|
}
|
|
417
|
+
resolveDeclaredRelationships(metadata);
|
|
385
418
|
return metadata;
|
|
386
419
|
}
|
|
420
|
+
/**
|
|
421
|
+
* Fill in `@declareRelationship` interface relationships from the
|
|
422
|
+
* implementors' `@relationship` directives. Through v2.4.7 they kept
|
|
423
|
+
* `type: ''`, so every InterfaceModel operator on them (`actors_SOME`,
|
|
424
|
+
* `actorsConnection`, selecting `actors { ... }`) threw
|
|
425
|
+
* `Invalid identifier ""`. The InterfaceModel matches the shared interface
|
|
426
|
+
* label, so one type/direction/properties must hold for every implementor;
|
|
427
|
+
* if they disagree there is no single correct pattern and the schema is
|
|
428
|
+
* rejected. Interfaces with no implementors are left as declared.
|
|
429
|
+
*/
|
|
430
|
+
function resolveDeclaredRelationships(metadata) {
|
|
431
|
+
for (const iface of metadata.interfaces.values())
|
|
432
|
+
for (const rel of iface.relationships.values()) {
|
|
433
|
+
if (rel.type !== '')
|
|
434
|
+
continue;
|
|
435
|
+
const where = `${iface.name}.${rel.fieldName}`;
|
|
436
|
+
let first;
|
|
437
|
+
for (const implName of iface.implementedBy) {
|
|
438
|
+
const implRel = metadata.nodes
|
|
439
|
+
.get(implName)
|
|
440
|
+
?.relationships.get(rel.fieldName);
|
|
441
|
+
if (!implRel)
|
|
442
|
+
throw new errors_1.OGMError(`Cannot resolve @declareRelationship ${where}: implementor ` +
|
|
443
|
+
`${implName}.${rel.fieldName} has no @relationship directive.`);
|
|
444
|
+
if (!first) {
|
|
445
|
+
first = { owner: implName, rel: implRel };
|
|
446
|
+
continue;
|
|
447
|
+
}
|
|
448
|
+
const fields = ['type', 'direction', 'properties'];
|
|
449
|
+
for (const key of fields)
|
|
450
|
+
if (implRel[key] !== first.rel[key])
|
|
451
|
+
throw new errors_1.OGMError(`Cannot resolve @declareRelationship ${where}: ` +
|
|
452
|
+
`${first.owner}.${rel.fieldName} and ${implName}.${rel.fieldName} ` +
|
|
453
|
+
`declare a different ${key} (${JSON.stringify(first.rel[key] ?? null)} vs ` +
|
|
454
|
+
`${JSON.stringify(implRel[key] ?? null)}). Every implementor must use ` +
|
|
455
|
+
`the same type, direction and properties.`);
|
|
456
|
+
}
|
|
457
|
+
if (!first)
|
|
458
|
+
continue;
|
|
459
|
+
rel.type = first.rel.type;
|
|
460
|
+
rel.direction = first.rel.direction;
|
|
461
|
+
if (first.rel.properties !== undefined)
|
|
462
|
+
rel.properties = first.rel.properties;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
387
465
|
//# sourceMappingURL=parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/schema/parser.ts"],"names":[],"mappings":";;;;;AAuCA,8BAGC;AAwUD,kCA8IC;AAhgBD,qCAiBiB;AAEjB,0DAAqC;AAYrC,oDAA2D;AAC3D,sCAAqC;AAErC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,QAAkB;IAMpC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,OAAO,GAAa,QAAQ,CAAC;IAEjC,uDAAuD;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa,EAAE,CAAC;QACxC,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,SAAS,EAAE,CAAC;QACpC,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACvB,6CAA6C;QAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa,EAAE,CAAC;YACxC,kBAAkB,GAAG,IAAI,CAAC;YAC1B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,UAAU;QAClC,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;YAC5B,OAAO;YACP,UAAU;YACV,kBAAkB;SACnB,CAAC;IAEJ,iDAAiD;IACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;AAC1E,CAAC;AAED,uFAAuF;AACvF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,eAAe;IACf,UAAU;IACV,OAAO;IACP,gBAAgB;CACjB,CAAC,CAAC;AAEH,SAAS,YAAY,CACnB,IAA+C,EAC/C,IAAY;IAEZ,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,0BAA0B,CACjC,SAAwB,EACxB,OAAe;IAEf,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACvE,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;QACvC,OAAQ,GAAG,CAAC,KAAyB,CAAC,KAAK,CAAC;IAE9C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QACrC,OAAQ,GAAG,CAAC,KAAuB,CAAC,KAAK,CAAC;IAE5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAwB,EACxB,OAAe;IAUf,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,GAAG,CAAC,KAOO,CAAC;AACrB,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CACjB,KAA0B,EAC1B,SAAsB;IAEtB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,UAAU,CACtE,KAAK,CAAC,IAAI,CACX,CAAC;IAEF,MAAM,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAEvE,yDAAyD;IACzD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,0BAA0B,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,0BAA0B,CAC1C,qBAAqB,EACrB,WAAW,CACZ,CAAC;QACF,MAAM,UAAU,GAAG,0BAA0B,CAC3C,qBAAqB,EACrB,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YACxB,4BAA4B;YAC5B,OAAO,EAAE,CAAC;QAEZ,MAAM,GAAG,GAA2B;YAClC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YAC3B,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,SAAyB;YACpC,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,UAAU;SACX,CAAC;QACF,IAAI,UAAU;YAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;QAE5C,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,sEAAsE;IACtE,8EAA8E;IAC9E,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,GAAG,GAA2B;YAClC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YAC3B,IAAI,EAAE,EAAE,EAAE,6BAA6B;YACvC,SAAS,EAAE,KAAK,EAAE,mDAAmD;YACrE,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,UAAU;SACX,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAC9E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAExD,IAAI,YAAgC,CAAC;IACrC,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,GAAG;YACL,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBAAE,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;iBAClD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,OAAO;gBAAE,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBAChE,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;gBAAE,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;iBACrD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,GAAG;gBAAE,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;iBACpD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,KAAK;gBAAE,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC;IAC/D,CAAC;IAED,+CAA+C;IAC/C,6FAA6F;IAC7F,iCAAiC;IACjC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,yEAAyE;QACzE,2EAA2E;QAC3E,oCAAoC;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEpE,MAAM,IAAI,GAAuB;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,OAAO;QACP,kBAAkB;QAClB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,eAAe;QAC3B,QAAQ,EAAE,CAAC,CAAC,eAAe;QAC3B,UAAU;QACV,YAAY;KACb,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,0BAA0B,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAChD,MAAM,UAAU,GAAG,0BAA0B,CAC3C,eAAe,EACf,YAAY,CACb,CAAC;QACF,IAAI,UAAU;YAAE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,qDAAqD;AACrD,SAAS,oBAAoB,CAC3B,IAA4D;IAE5D,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAK,UAA4B,CAAC,MAAM,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAuB,CAAC;QAEpC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACjE,IAAI,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAEhD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;gBACjE,KAAK,MAAM,CAAC,IAAK,KAAK,CAAC,KAAuB,CAAC,MAAM;oBACnD,IAAI,CAAC,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;wBAAE,MAAM,CAAC,IAAI,CAAE,CAAqB,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2DAA2D;AAC3D,SAAS,kBAAkB,CACzB,IAA8B,EAC9B,UAA2C,EAC3C,QAAgB;IAEhB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAK,UAA4B,CAAC,MAAM,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAuB,CAAC;QAEpC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,QAA4B,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACtE,SAAS,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAErD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACtE,SAAS,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAErD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,mBAAmB;gBACxC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBAEhC,iBAAiB,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAE7D,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACrE,QAAQ,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB;YAAE,SAAS;QAE7D,IAAA,iCAAoB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACrD,IAAA,iCAAoB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACrD,IAAA,iCAAoB,EAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACrE,IAAI,QAAQ,KAAK,SAAS;YACxB,IAAA,iCAAoB,EAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACpC,MAAM,IAAI,iBAAQ,CAChB,kBAAkB,SAAS,2CAA2C,iBAAiB,cAAc,QAAQ,GAAG,CACjH,CAAC;QAEJ,MAAM,KAAK,GAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEtD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mCAAmC;AACnC,SAAS,eAAe,CAAC,IAA8B;IACrD,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAEjE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAK,SAA2B,CAAC,MAAM;QACnD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAE,GAAuB,CAAC,KAAK,CAAC,CAAC;IAE5E,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,YAAoB;IAC9C,MAAM,QAAQ,GAAiB,IAAA,eAAK,EAAC,YAAY,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAmB;QAC/B,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,MAAM,EAAE,IAAI,GAAG,EAAE;KAClB,CAAC;IAEF,wEAAwE;IACxE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEjD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,GAA6B,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9D,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,GAA+B,CAAC;YAC/C,IAAI,YAAY,CAAC,MAAM,EAAE,wBAAwB,CAAC;gBAChD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1D,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,yBAAyB,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,GAAkC,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;YACzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;YAEhE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC5C,IAAI,MAAM,CAAC,QAAQ;oBACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAExD,IAAI,MAAM,CAAC,YAAY;oBACrB,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,YAAY,GAAwB;gBACxC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACvB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACxB,UAAU;gBACV,aAAa;gBACb,aAAa,EAAE,EAAE,EAAE,0BAA0B;aAC9C,CAAC;YAEF,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;IAEH,qEAAqE;IACrE,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB;YAAE,SAAS;QACvD,MAAM,MAAM,GAAG,GAA+B,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAEnC,uCAAuC;QACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC5C,IAAI,MAAM,CAAC,QAAQ;oBACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACrD,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC5C,QAAQ;gBACR,UAAU;gBACV,eAAe;aAChB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;QAEhE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,QAAQ;gBACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,YAAY;gBACrB,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,oBAAoB,GACxB,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEpD,2BAA2B;QAC3B,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,KAAK;gBAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,yDAAyD;QACzD,kDAAkD;QAClD,IAAI,MAAgB,CAAC;QACrB,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,UAAU,CAAC;YACpB,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAmB;YAC9B,QAAQ;YACR,KAAK;YACL,MAAM;YACN,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC/B,UAAU;YACV,aAAa;YACb,eAAe;YACf,aAAa;YACb,oBAAoB;SACrB,CAAC;QAEF,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/schema/parser.ts"],"names":[],"mappings":";;;;;AAwCA,8BAGC;AAoXD,kCAgJC;AA/iBD,qCAkBiB;AAEjB,0DAAqC;AAYrC,oDAA2D;AAC3D,sCAAqC;AAErC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CAAC,QAAkB;IAMpC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,OAAO,GAAa,QAAQ,CAAC;IAEjC,uDAAuD;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa,EAAE,CAAC;QACxC,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,SAAS,EAAE,CAAC;QACpC,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACvB,6CAA6C;QAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,aAAa,EAAE,CAAC;YACxC,kBAAkB,GAAG,IAAI,CAAC;YAC1B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,cAAI,CAAC,UAAU;QAClC,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;YAC5B,OAAO;YACP,UAAU;YACV,kBAAkB;SACnB,CAAC;IAEJ,iDAAiD;IACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;AAC1E,CAAC;AAED,uFAAuF;AACvF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;IACT,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;IACX,eAAe;IACf,UAAU;IACV,OAAO;IACP,gBAAgB;CACjB,CAAC,CAAC;AAEH,SAAS,YAAY,CACnB,IAA+C,EAC/C,IAAY;IAEZ,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,0BAA0B,CACjC,SAAwB,EACxB,OAAe;IAEf,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACvE,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;QACvC,OAAQ,GAAG,CAAC,KAAyB,CAAC,KAAK,CAAC;IAE9C,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QACrC,OAAQ,GAAG,CAAC,KAAuB,CAAC,KAAK,CAAC;IAE5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAAwB,EACxB,OAAe;IAUf,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,GAAG,CAAC,KAOO,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,GAAc;IACzC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,cAAI,CAAC,MAAM,CAAC;QACjB,KAAK,cAAI,CAAC,IAAI,CAAC;QACf,KAAK,cAAI,CAAC,GAAG,CAAC;QACd,KAAK,cAAI,CAAC,KAAK;YACb,OAAO,GAAG,CAAC,KAAK,CAAC;QACnB,KAAK,cAAI,CAAC,OAAO;YACf,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CACjB,KAA0B,EAC1B,SAAsB,EACtB,SAAiB;IAEjB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,UAAU,CACtE,KAAK,CAAC,IAAI,CACX,CAAC;IAEF,MAAM,qBAAqB,GAAG,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAEvE,yDAAyD;IACzD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,0BAA0B,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,0BAA0B,CAC1C,qBAAqB,EACrB,WAAW,CACZ,CAAC;QACF,MAAM,UAAU,GAAG,0BAA0B,CAC3C,qBAAqB,EACrB,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS;YACxB,4BAA4B;YAC5B,OAAO,EAAE,CAAC;QAEZ,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,+DAA+D;QAC/D,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK;YAC3C,MAAM,IAAI,iBAAQ,CAChB,oCAAoC,SAAS,QAAQ,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;gBACpF,2DAA2D,CAC9D,CAAC;QAEJ,MAAM,GAAG,GAA2B;YAClC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YAC3B,IAAI,EAAE,OAAO;YACb,SAAS;YACT,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,UAAU;SACX,CAAC;QACF,IAAI,UAAU;YAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;QAE5C,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,sEAAsE;IACtE,8EAA8E;IAC9E,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,GAAG,GAA2B;YAClC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YAC3B,IAAI,EAAE,EAAE,EAAE,6BAA6B;YACvC,SAAS,EAAE,KAAK,EAAE,mDAAmD;YACrE,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,UAAU;SACX,CAAC;QACF,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAC9E,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAExD,IAAI,YAA2C,CAAC;IAChD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI,EAAE,CAAC;YAClC,oEAAoE;YACpE,mEAAmE;YACnE,gEAAgE;YAChE,6CAA6C;YAC7C,MAAM,KAAK,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO;gBACV,MAAM,IAAI,iBAAQ,CAChB,uBAAuB,KAAK,+DAA+D,CAC5F,CAAC;YACJ,YAAY,GAAI,GAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACvC,IAAI,MAAM,KAAK,SAAS;oBACtB,MAAM,IAAI,iBAAQ,CAChB,uBAAuB,KAAK,sBAAsB;wBAChD,0DAA0D,CAC7D,CAAC;gBACJ,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,GAAG;YAAE,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,+CAA+C;IAC/C,6FAA6F;IAC7F,iCAAiC;IACjC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,yEAAyE;QACzE,2EAA2E;QAC3E,oCAAoC;IACtC,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEpE,MAAM,IAAI,GAAuB;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,OAAO;QACP,kBAAkB;QAClB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,CAAC,CAAC,eAAe;QAC3B,QAAQ,EAAE,CAAC,CAAC,eAAe;QAC3B,UAAU;QACV,YAAY;KACb,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,0BAA0B,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAChD,MAAM,UAAU,GAAG,0BAA0B,CAC3C,eAAe,EACf,YAAY,CACb,CAAC;QACF,IAAI,UAAU;YAAE,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,qDAAqD;AACrD,SAAS,oBAAoB,CAC3B,IAA4D;IAE5D,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAE5B,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAK,UAA4B,CAAC,MAAM,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAuB,CAAC;QAEpC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACjE,IAAI,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAEhD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;gBACjE,KAAK,MAAM,CAAC,IAAK,KAAK,CAAC,KAAuB,CAAC,MAAM;oBACnD,IAAI,CAAC,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;wBAAE,MAAM,CAAC,IAAI,CAAE,CAAqB,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2DAA2D;AAC3D,SAAS,kBAAkB,CACzB,IAA8B,EAC9B,UAA2C,EAC3C,QAAgB;IAEhB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAK,UAA4B,CAAC,MAAM,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;YAAE,SAAS;QACxC,MAAM,GAAG,GAAG,IAAuB,CAAC;QAEpC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,QAA4B,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACtE,SAAS,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAErD,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACtE,SAAS,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAErD,IACE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,mBAAmB;gBACxC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBAEhC,iBAAiB,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;YAE7D,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;gBACrE,QAAQ,GAAI,KAAK,CAAC,KAAyB,CAAC,KAAK,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB;YAAE,SAAS;QAE7D,IAAA,iCAAoB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACrD,IAAA,iCAAoB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACrD,IAAA,iCAAoB,EAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACrE,IAAI,QAAQ,KAAK,SAAS;YACxB,IAAA,iCAAoB,EAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACpC,MAAM,IAAI,iBAAQ,CAChB,kBAAkB,SAAS,2CAA2C,iBAAiB,cAAc,QAAQ,GAAG,CACjH,CAAC;QAEJ,MAAM,KAAK,GAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEtD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mCAAmC;AACnC,SAAS,eAAe,CAAC,IAA8B;IACrD,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,MAAM,SAAS,GAAG,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,cAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAEjE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAK,SAA2B,CAAC,MAAM;QACnD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAE,GAAuB,CAAC,KAAK,CAAC,CAAC;IAE5E,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,YAAoB;IAC9C,MAAM,QAAQ,GAAiB,IAAA,eAAK,EAAC,YAAY,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAmB;QAC/B,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,UAAU,EAAE,IAAI,GAAG,EAAE;QACrB,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,MAAM,EAAE,IAAI,GAAG,EAAE;KAClB,CAAC;IAEF,wEAAwE;IACxE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEjD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,GAA6B,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9D,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,GAA+B,CAAC;YAC/C,IAAI,YAAY,CAAC,MAAM,EAAE,wBAAwB,CAAC;gBAChD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,qBAAqB,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1D,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,yBAAyB,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,GAAkC,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;YACzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;YAEhE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/D,IAAI,MAAM,CAAC,QAAQ;oBACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAExD,IAAI,MAAM,CAAC,YAAY;oBACrB,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,YAAY,GAAwB;gBACxC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACvB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;gBACxB,UAAU;gBACV,aAAa;gBACb,aAAa,EAAE,EAAE,EAAE,0BAA0B;aAC9C,CAAC;YAEF,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;IAEH,qEAAqE;IACrE,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,IAAI,KAAK,cAAI,CAAC,sBAAsB;YAAE,SAAS;QACvD,MAAM,MAAM,GAAG,GAA+B,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAEnC,uCAAuC;QACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACtD,IAAI,MAAM,CAAC,QAAQ;oBACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACrD,QAAQ,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC5C,QAAQ;gBACR,UAAU;gBACV,eAAe;aAChB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkC,CAAC;QAEhE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,QAAQ;gBACjB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,YAAY;gBACrB,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,oBAAoB,GACxB,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEpD,2BAA2B;QAC3B,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,KAAK;gBAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,yDAAyD;QACzD,kDAAkD;QAClD,IAAI,MAAgB,CAAC;QACrB,IAAI,KAAa,CAAC;QAClB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,GAAG,UAAU,CAAC;YACpB,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAmB;YAC9B,QAAQ;YACR,KAAK;YACL,MAAM;YACN,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC;YAC/B,UAAU;YACV,aAAa;YACb,eAAe;YACf,aAAa;YACb,oBAAoB;SACrB,CAAC;QAEF,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAEvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,4BAA4B,CAAC,QAAwB;IAC5D,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;QAC9C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE;gBAAE,SAAS;YAC9B,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,KAAiE,CAAC;YAEtE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK;qBAC3B,GAAG,CAAC,QAAQ,CAAC;oBACd,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO;oBACV,MAAM,IAAI,iBAAQ,CAChB,uCAAuC,KAAK,gBAAgB;wBAC1D,GAAG,QAAQ,IAAI,GAAG,CAAC,SAAS,kCAAkC,CACjE,CAAC;gBACJ,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;gBAC5D,KAAK,MAAM,GAAG,IAAI,MAAM;oBACtB,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;wBACjC,MAAM,IAAI,iBAAQ,CAChB,uCAAuC,KAAK,IAAI;4BAC9C,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,SAAS,QAAQ,QAAQ,IAAI,GAAG,CAAC,SAAS,GAAG;4BACnE,uBAAuB,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;4BAC3E,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,gCAAgC;4BACvE,0CAA0C,CAC7C,CAAC;YACR,CAAC;YAED,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;YACpC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS;gBACpC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAC1C,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/schema/types.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,UAAU,EAAE,GACZ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AAElC,6BAA6B;AAC7B,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC;CACvD;AACD,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypher-assert.d.ts","sourceRoot":"","sources":["../../../src/testing/cypher-assert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cypher-assert.d.ts","sourceRoot":"","sources":["../../../src/testing/cypher-assert.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,qBAAa,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkBxC;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAStE;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,IAAI;IAYP;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAC5B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAQP;;;OAGG;IACH,MAAM,CAAC,YAAY,CACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI;CAeR"}
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CypherAssert = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* JSON with object keys sorted at every depth and bigints written as
|
|
6
|
+
* `{"$bigint":"<digits>"}`, so two values compare equal regardless of key
|
|
7
|
+
* order and a bigint never equals the number or string with its digits.
|
|
8
|
+
*
|
|
9
|
+
* Every pair that JSON.stringify called equal before v2.4.8 is still equal:
|
|
10
|
+
* this only sorts keys and gives bigint (which used to throw a TypeError)
|
|
11
|
+
* an encoding. A neo4j Integer stays `{"high":…,"low":…}`, so it equals an
|
|
12
|
+
* Integer of the same value and not a plain number.
|
|
13
|
+
*/
|
|
14
|
+
function canonicalJson(value) {
|
|
15
|
+
return JSON.stringify(value, (_key, v) => {
|
|
16
|
+
if (typeof v === 'bigint')
|
|
17
|
+
return { $bigint: v.toString() };
|
|
18
|
+
if (v && typeof v === 'object' && !Array.isArray(v)) {
|
|
19
|
+
const sorted = {};
|
|
20
|
+
for (const k of Object.keys(v).sort())
|
|
21
|
+
sorted[k] = v[k];
|
|
22
|
+
return sorted;
|
|
23
|
+
}
|
|
24
|
+
return v;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
4
27
|
/**
|
|
5
28
|
* Structural Cypher comparison utility that normalizes whitespace
|
|
6
29
|
* and parameter names for deterministic test assertions.
|
|
@@ -61,8 +84,8 @@ class CypherAssert {
|
|
|
61
84
|
for (const key of Object.keys(expected)) {
|
|
62
85
|
if (!(key in actual))
|
|
63
86
|
throw new Error(`Missing param key '${key}' in actual params: ${JSON.stringify(actual)}`);
|
|
64
|
-
const actualVal =
|
|
65
|
-
const expectedVal =
|
|
87
|
+
const actualVal = canonicalJson(actual[key]);
|
|
88
|
+
const expectedVal = canonicalJson(expected[key]);
|
|
66
89
|
if (actualVal !== expectedVal)
|
|
67
90
|
throw new Error(`Param '${key}' mismatch:\n Actual: ${actualVal}\n Expected: ${expectedVal}`);
|
|
68
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypher-assert.js","sourceRoot":"","sources":["../../../src/testing/cypher-assert.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAc;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAErD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAClC,2BAA2B,EAC3B,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QAC1B,CAAC,CACF,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAc,EAAE,QAAgB;QAC7D,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,gBAAgB,KAAK,kBAAkB;YACzC,MAAM,IAAI,KAAK,CACb,iCAAiC,gBAAgB,iBAAiB,kBAAkB,EAAE,CACvF,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CACzB,MAAc,EACd,UAAkB,EAClB,OAAe;QAEf,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,mCAAmC,UAAU,SAAS,MAAM,EAAE,CAC/D,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,oCAAoC,OAAO,SAAS,MAAM,EAAE,CAC7D,CAAC;IACN,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAC5B,MAAc,EACd,mBAA2B,EAC3B,OAAgB;QAEhB,MAAM,gBAAgB,GAAG,OAAO,IAAI,mBAAmB,CAAC;QACxD,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,yCAAyC,gBAAgB,SAAS,MAAM,EAAE,CAC3E,CAAC;IACN,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY,CACjB,MAA+B,EAC/B,QAAiC;QAEjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,uBAAuB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACzE,CAAC;YAEJ,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"cypher-assert.js","sourceRoot":"","sources":["../../../src/testing/cypher-assert.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,12 +14,35 @@ export declare class Neo4jRecordFactory {
|
|
|
14
14
|
*/
|
|
15
15
|
static integer(value: number): Integer;
|
|
16
16
|
/**
|
|
17
|
-
* Create a Neo4j DateTime value from an ISO string
|
|
17
|
+
* Create a Neo4j DateTime value from an ISO string, as the driver would
|
|
18
|
+
* return `datetime(isoString)`: the wall-clock fields and the offset are
|
|
19
|
+
* kept as written (`10:00+02:00` stays `10:00+02:00`), all nine fractional
|
|
20
|
+
* digits are kept, and a `[Area/City]` zone id is carried over.
|
|
21
|
+
*
|
|
22
|
+
* Field values are plain numbers (what the driver returns with
|
|
23
|
+
* `disableLosslessIntegers`), so `toString()` matches the driver's.
|
|
24
|
+
*
|
|
25
|
+
* Before v2.4.8 the value was converted to UTC with the offset dropped,
|
|
26
|
+
* and the fraction was cut to milliseconds.
|
|
18
27
|
*/
|
|
19
28
|
static dateTime(isoString: string): unknown;
|
|
29
|
+
/** The pre-v2.4.8 parse: through `Date`, in UTC, millisecond precision. */
|
|
30
|
+
private static legacyDateTime;
|
|
20
31
|
/**
|
|
21
32
|
* Create a mock Neo4j Node.
|
|
33
|
+
*
|
|
34
|
+
* `properties` are stored as given. The driver returns an Int property as
|
|
35
|
+
* an Integer, so pass `Neo4jRecordFactory.integer(n)` where a test needs
|
|
36
|
+
* that; a JS number is never converted, because it may stand for a Float.
|
|
37
|
+
*
|
|
38
|
+
* `options.identity` and `options.elementId` (v2.4.8) give mock nodes
|
|
39
|
+
* distinct ids; without them every node has identity 0 and elementId "0".
|
|
40
|
+
* A given identity alone yields elementId `String(identity)`, as the
|
|
41
|
+
* driver does for a 4.x server.
|
|
22
42
|
*/
|
|
23
|
-
static node(labels: string[], properties: Record<string, unknown
|
|
43
|
+
static node(labels: string[], properties: Record<string, unknown>, options?: {
|
|
44
|
+
identity?: number | Integer;
|
|
45
|
+
elementId?: string;
|
|
46
|
+
}): unknown;
|
|
24
47
|
}
|
|
25
48
|
//# sourceMappingURL=neo4j-record-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neo4j-record-factory.d.ts","sourceRoot":"","sources":["../../../src/testing/neo4j-record-factory.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"neo4j-record-factory.d.ts","sourceRoot":"","sources":["../../../src/testing/neo4j-record-factory.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAoDrE;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAMzD;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAItC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAoC3C,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,cAAc;IAc7B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAChE,OAAO;CASX"}
|
|
@@ -5,6 +5,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Neo4jRecordFactory = void 0;
|
|
7
7
|
const neo4j_driver_1 = __importDefault(require("neo4j-driver"));
|
|
8
|
+
/**
|
|
9
|
+
* ISO-8601 date-time as Neo4j's `datetime()` accepts it: a date, an
|
|
10
|
+
* optional time with up to nine fractional digits, an optional offset
|
|
11
|
+
* (`Z`, `±HH`, `±HHMM`, `±HH:MM`) and an optional `[Area/City]` zone id.
|
|
12
|
+
*/
|
|
13
|
+
const ISO_DATE_TIME = /^([+-]?\d{4,})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:[.,](\d{1,9}))?)?)?(Z|[+-]\d{2}(?::?\d{2})?)?(?:\[([^\]]+)\])?$/i;
|
|
14
|
+
function parseOffsetSeconds(offset) {
|
|
15
|
+
if (offset.toUpperCase() === 'Z')
|
|
16
|
+
return 0;
|
|
17
|
+
const sign = offset[0] === '-' ? -1 : 1;
|
|
18
|
+
const digits = offset.slice(1).replace(':', '');
|
|
19
|
+
const hours = Number(digits.slice(0, 2));
|
|
20
|
+
const minutes = digits.length > 2 ? Number(digits.slice(2, 4)) : 0;
|
|
21
|
+
return sign * (hours * 3600 + minutes * 60);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Offset of `timeZone` at the given wall-clock time, in seconds. Two passes
|
|
25
|
+
* so a wall time near a DST transition lands on the offset in force then.
|
|
26
|
+
*/
|
|
27
|
+
function zoneOffsetSeconds(timeZone, wallClockAsUtcMs) {
|
|
28
|
+
const fmt = new Intl.DateTimeFormat('en-US', {
|
|
29
|
+
timeZone,
|
|
30
|
+
hourCycle: 'h23',
|
|
31
|
+
year: 'numeric',
|
|
32
|
+
month: '2-digit',
|
|
33
|
+
day: '2-digit',
|
|
34
|
+
hour: '2-digit',
|
|
35
|
+
minute: '2-digit',
|
|
36
|
+
second: '2-digit',
|
|
37
|
+
});
|
|
38
|
+
const offsetAt = (instantMs) => {
|
|
39
|
+
const p = {};
|
|
40
|
+
for (const part of fmt.formatToParts(new Date(instantMs)))
|
|
41
|
+
if (part.type !== 'literal')
|
|
42
|
+
p[part.type] = Number(part.value);
|
|
43
|
+
const asUtc = Date.UTC(p.year, p.month - 1, p.day, p.hour, p.minute, p.second);
|
|
44
|
+
return Math.round((asUtc - Math.floor(instantMs / 1000) * 1000) / 1000);
|
|
45
|
+
};
|
|
46
|
+
const first = offsetAt(wallClockAsUtcMs);
|
|
47
|
+
return offsetAt(wallClockAsUtcMs - first * 1000);
|
|
48
|
+
}
|
|
8
49
|
/**
|
|
9
50
|
* Factory for creating mock Neo4j Record objects for testing.
|
|
10
51
|
*/
|
|
@@ -26,17 +67,55 @@ class Neo4jRecordFactory {
|
|
|
26
67
|
return neo4j_driver_1.default.int(value);
|
|
27
68
|
}
|
|
28
69
|
/**
|
|
29
|
-
* Create a Neo4j DateTime value from an ISO string
|
|
70
|
+
* Create a Neo4j DateTime value from an ISO string, as the driver would
|
|
71
|
+
* return `datetime(isoString)`: the wall-clock fields and the offset are
|
|
72
|
+
* kept as written (`10:00+02:00` stays `10:00+02:00`), all nine fractional
|
|
73
|
+
* digits are kept, and a `[Area/City]` zone id is carried over.
|
|
74
|
+
*
|
|
75
|
+
* Field values are plain numbers (what the driver returns with
|
|
76
|
+
* `disableLosslessIntegers`), so `toString()` matches the driver's.
|
|
77
|
+
*
|
|
78
|
+
* Before v2.4.8 the value was converted to UTC with the offset dropped,
|
|
79
|
+
* and the fraction was cut to milliseconds.
|
|
30
80
|
*/
|
|
31
81
|
static dateTime(isoString) {
|
|
82
|
+
const m = ISO_DATE_TIME.exec(isoString.trim());
|
|
83
|
+
// Strings without an offset or zone id keep the pre-v2.4.8 parse.
|
|
84
|
+
if (!m || (m[8] === undefined && m[9] === undefined))
|
|
85
|
+
return Neo4jRecordFactory.legacyDateTime(isoString);
|
|
86
|
+
const [, y, mo, d, h, mi, s, frac, offset, zoneId] = m;
|
|
87
|
+
const year = Number(y);
|
|
88
|
+
const month = Number(mo);
|
|
89
|
+
const day = Number(d);
|
|
90
|
+
const hour = Number(h ?? 0);
|
|
91
|
+
const minute = Number(mi ?? 0);
|
|
92
|
+
const second = Number(s ?? 0);
|
|
93
|
+
const nanosecond = frac ? Number(frac.padEnd(9, '0')) : 0;
|
|
94
|
+
const offsetSeconds = offset !== undefined
|
|
95
|
+
? parseOffsetSeconds(offset)
|
|
96
|
+
: zoneOffsetSeconds(zoneId, Date.UTC(year, month - 1, day, hour, minute, second));
|
|
97
|
+
return new neo4j_driver_1.default.types.DateTime(year, month, day, hour, minute, second, nanosecond, offsetSeconds, zoneId);
|
|
98
|
+
}
|
|
99
|
+
/** The pre-v2.4.8 parse: through `Date`, in UTC, millisecond precision. */
|
|
100
|
+
static legacyDateTime(isoString) {
|
|
32
101
|
const d = new Date(isoString);
|
|
33
102
|
return new neo4j_driver_1.default.types.DateTime(d.getUTCFullYear(), d.getUTCMonth() + 1, d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds() * 1000000, 0);
|
|
34
103
|
}
|
|
35
104
|
/**
|
|
36
105
|
* Create a mock Neo4j Node.
|
|
106
|
+
*
|
|
107
|
+
* `properties` are stored as given. The driver returns an Int property as
|
|
108
|
+
* an Integer, so pass `Neo4jRecordFactory.integer(n)` where a test needs
|
|
109
|
+
* that; a JS number is never converted, because it may stand for a Float.
|
|
110
|
+
*
|
|
111
|
+
* `options.identity` and `options.elementId` (v2.4.8) give mock nodes
|
|
112
|
+
* distinct ids; without them every node has identity 0 and elementId "0".
|
|
113
|
+
* A given identity alone yields elementId `String(identity)`, as the
|
|
114
|
+
* driver does for a 4.x server.
|
|
37
115
|
*/
|
|
38
|
-
static node(labels, properties) {
|
|
39
|
-
|
|
116
|
+
static node(labels, properties, options = {}) {
|
|
117
|
+
const identity = neo4j_driver_1.default.int(options.identity ?? 0);
|
|
118
|
+
return new neo4j_driver_1.default.types.Node(identity, labels, properties, options.elementId ?? identity.toString());
|
|
40
119
|
}
|
|
41
120
|
}
|
|
42
121
|
exports.Neo4jRecordFactory = Neo4jRecordFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neo4j-record-factory.js","sourceRoot":"","sources":["../../../src/testing/neo4j-record-factory.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqE;AAErE;;GAEG;AACH,MAAa,kBAAkB;IAC7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,IAA6B;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,IAAI,sBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAA2B,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,sBAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"neo4j-record-factory.js","sourceRoot":"","sources":["../../../src/testing/neo4j-record-factory.ts"],"names":[],"mappings":"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"}
|