@neo4j/graph-schema-utils 1.0.0-next.2 → 1.0.0-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +52 -1
  2. package/dist/formatters/index.js +2 -0
  3. package/dist/formatters/index.js.map +1 -0
  4. package/dist/formatters/json/extensions.js +439 -0
  5. package/dist/formatters/json/extensions.js.map +1 -0
  6. package/dist/formatters/json/index.js +4 -0
  7. package/dist/formatters/json/index.js.map +1 -0
  8. package/dist/formatters/json/types.js +37 -0
  9. package/dist/formatters/json/types.js.map +1 -0
  10. package/dist/formatters/llm-prompt/index.js +102 -0
  11. package/dist/formatters/llm-prompt/index.js.map +1 -0
  12. package/dist/formatters/llm-prompt/types.js.map +1 -0
  13. package/dist/index.js +4 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/model/index.js +165 -148
  16. package/dist/model/index.js.map +1 -1
  17. package/dist/types/formatters/index.d.ts +1 -0
  18. package/dist/types/formatters/json/extensions.d.ts +9 -0
  19. package/dist/types/formatters/json/index.d.ts +3 -0
  20. package/dist/types/formatters/json/types.d.ts +150 -0
  21. package/dist/types/formatters/llm-prompt/index.d.ts +3 -0
  22. package/dist/types/formatters/llm-prompt/types.d.ts +5 -0
  23. package/dist/types/index.d.ts +6 -0
  24. package/dist/types/model/index.d.ts +131 -0
  25. package/dist/types/version.d.ts +2 -0
  26. package/dist/validation.js +3 -1
  27. package/dist/validation.js.map +1 -1
  28. package/dist/version.js +6 -0
  29. package/dist/version.js.map +1 -0
  30. package/package.json +14 -7
  31. package/dist/index.d.ts +0 -3
  32. package/dist/model/index.d.ts +0 -179
  33. package/dist/types.js.map +0 -1
  34. /package/dist/{types.js → formatters/llm-prompt/types.js} +0 -0
  35. /package/dist/{validation.d.ts → types/validation.d.ts} +0 -0
package/README.md CHANGED
@@ -8,10 +8,61 @@ npm install @neo4j/graph-schema-utils
8
8
 
9
9
  ## Use
10
10
 
11
+ ### Validate
12
+
13
+ This function is needed to perform a validation on a graph schema. The validateSchema function compares the output against the JSON schema.
14
+
11
15
  ```js
12
16
  import { validateSchema } from "@neo4j/graph-schema-utils";
13
17
 
14
- validateSchema(theSchema);
18
+ validateSchema(jsonSchema, graphSchema);
19
+ ```
20
+
21
+ ### Model
22
+
23
+ You can also create a schema model programatically.
24
+ Example:
25
+
26
+ ```js
27
+ import { model } from "@neo4j/graph-schema-utils";
28
+
29
+ const labels = [
30
+ new model.NodeLabel("l1", "Person"),
31
+ new model.NodeLabel("l1", "Movie"),
32
+ ];
33
+
34
+ const relationshipTypes = [new model.RelationshipType("rt1", "ACTED_IN")];
35
+
36
+ const properties = [
37
+ new model.Property("name", new model.PropertyBaseType("string"), true),
38
+ new model.Property("title", new model.PropertyBaseType("string"), true),
39
+ new model.Property(
40
+ "roles",
41
+ new model.PropertyArrayType(new model.PropertyBaseType("string")),
42
+ false
43
+ ),
44
+ ];
45
+
46
+ const nodeObjectTypes = [
47
+ new model.NodeObjectType("n1", [labels[0]], [properties[0]]), // (:Person {name}) node type
48
+ new model.NodeObjectType("n2", [labels[1]], [properties[1]]), // (:Movie {title}) node type
49
+ ];
50
+
51
+ const relationshipObjectTypes = [
52
+ // (:Person {name})-[:ACTED_IN {roles}]->(:Movie {title})
53
+ new model.RelationshipObjectType(
54
+ "r1",
55
+ relationshipTypes[0],
56
+ nodeObjectTypes[0],
57
+ nodeObjectTypes[1],
58
+ [properties[2]]
59
+ ),
60
+ ];
61
+
62
+ const graphSchema = new model.GraphSchema(
63
+ nodeObjectTypes,
64
+ relationshipObjectTypes
65
+ );
15
66
  ```
16
67
 
17
68
  # Develop / Contribute
@@ -0,0 +1,2 @@
1
+ export * as json from "./json/index.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,439 @@
1
+ import { GraphSchema, LookupIndex, NodeLabel, NodeLabelConstraint, NodeLabelIndex, NodeObjectType, Property, PrimitiveArrayPropertyType, PrimitivePropertyType, RelationshipObjectType, RelationshipType, RelationshipTypeConstraint, RelationshipTypeIndex, isLookupIndex, isNodeLabelConstraint, isNodeLabelIndex, isRelationshipTypeConstraint, isRelationshipTypeIndex, isPrimitivePropertyType, isPrimitiveArrayPropertyType, isVectorPropertyType, VectorElementType, VectorPropertyType, } from "../../model/index.js";
2
+ import { isLookupIndexJsonStruct, isNodeLabelConstraintJsonStruct, isNodeLabelIndexJsonStruct, isPrimitiveArrayPropertyTypeJsonStruct, isPrimitivePropertyTypeJsonStruct, isRelationshipTypeConstraintJsonStruct, isRelationshipTypeIndexJsonStruct, isVectorPropertyTypeJsonStruct, } from "./types.js";
3
+ export const VERSION = "0.0.1";
4
+ export function toJson(schema, space = undefined) {
5
+ const out = toJsonStruct(schema);
6
+ return JSON.stringify(out, null, space);
7
+ }
8
+ export function toJsonStruct(schema) {
9
+ const labels = schema.nodeLabels
10
+ .sort((a, b) => (a.$id < b.$id ? -1 : 1))
11
+ .map(nodeLabel.extract);
12
+ const relationshipTypes = schema.relationshipTypes
13
+ .sort((a, b) => (a.$id < b.$id ? -1 : 1))
14
+ .map(relationshipType.extract);
15
+ const nodeObjectTypes = schema.nodeObjectTypes.map(nodeObjectType.extract);
16
+ const relationshipObjectTypes = schema.relationshipObjectTypes.map(relationshipObjectType.extract);
17
+ const constraints = schema.constraints.map((constraint) => {
18
+ if (isNodeLabelConstraint(constraint)) {
19
+ return nodeLabelConstraint.extract(constraint);
20
+ }
21
+ else if (isRelationshipTypeConstraint(constraint)) {
22
+ return relationshipConstraint.extract(constraint);
23
+ }
24
+ throw new Error(`Unknown constraint type ${constraint}`);
25
+ });
26
+ const indexes = schema.indexes.map((index) => {
27
+ if (isNodeLabelIndex(index)) {
28
+ return nodeLabelIndex.extract(index);
29
+ }
30
+ else if (isRelationshipTypeIndex(index)) {
31
+ return relationshipTypeIndex.extract(index);
32
+ }
33
+ else if (isLookupIndex(index)) {
34
+ return lookupIndex.extract(index);
35
+ }
36
+ throw new Error(`Unknown index type ${index}`);
37
+ });
38
+ const out = {
39
+ graphSchemaRepresentation: {
40
+ version: VERSION,
41
+ graphSchema: {
42
+ nodeLabels: labels,
43
+ relationshipTypes,
44
+ nodeObjectTypes,
45
+ relationshipObjectTypes,
46
+ constraints,
47
+ indexes,
48
+ },
49
+ },
50
+ };
51
+ return out;
52
+ }
53
+ export function fromJson(schema) {
54
+ const schemaJson = JSON.parse(schema);
55
+ return fromJsonStruct(schemaJson);
56
+ }
57
+ export function hasDuplicateNodeLabelIds(schema) {
58
+ const ids = new Set();
59
+ for (const nodeLabel of schema.nodeLabels) {
60
+ if (ids.has(nodeLabel.$id)) {
61
+ return true;
62
+ }
63
+ ids.add(nodeLabel.$id);
64
+ }
65
+ return false;
66
+ }
67
+ export function hasDuplicateNodeObjectTypeIds(schema) {
68
+ const ids = new Set();
69
+ for (const nodeObjectType of schema.nodeObjectTypes) {
70
+ if (ids.has(nodeObjectType.$id)) {
71
+ return true;
72
+ }
73
+ ids.add(nodeObjectType.$id);
74
+ }
75
+ return false;
76
+ }
77
+ export function fromJsonStruct(schemaJson) {
78
+ const { graphSchema } = schemaJson.graphSchemaRepresentation;
79
+ if (hasDuplicateNodeLabelIds(graphSchema)) {
80
+ throw new Error("Duplicate node label IDs found in schema");
81
+ }
82
+ const labels = graphSchema.nodeLabels.map(nodeLabel.create);
83
+ const relationshipTypes = graphSchema.relationshipTypes.map(relationshipType.create);
84
+ if (hasDuplicateNodeObjectTypeIds(graphSchema)) {
85
+ throw new Error("Duplicate node object type IDs found in schema");
86
+ }
87
+ const nodeObjectTypes = graphSchema.nodeObjectTypes.map((nodeObjectTypeJson) => nodeObjectType.create(nodeObjectTypeJson, (ref) => {
88
+ const found = labels.find((label) => label.$id === ref.slice(1));
89
+ if (!found) {
90
+ throw new Error(`Not all label references are defined`);
91
+ }
92
+ return found;
93
+ }));
94
+ const relationshipObjectTypes = graphSchema.relationshipObjectTypes.map((relationshipObjectTypeJson) => relationshipObjectType.create(relationshipObjectTypeJson, (ref) => {
95
+ const found = relationshipTypes.find((relType) => relType.$id === ref.slice(1));
96
+ if (!found) {
97
+ throw new Error(`Not all relationship type references are defined`);
98
+ }
99
+ return found;
100
+ }, (ref, fieldName) => {
101
+ const found = nodeObjectTypes.find((nodeObjectType) => nodeObjectType.$id === ref.slice(1));
102
+ if (!found) {
103
+ throw new Error(`Not all node object type references in ${fieldName} are defined`);
104
+ }
105
+ return found;
106
+ }));
107
+ const constraints = graphSchema.constraints.map((constraintJson) => {
108
+ if (isNodeLabelConstraintJsonStruct(constraintJson)) {
109
+ return nodeLabelConstraint.create(constraintJson, (ref) => {
110
+ const found = labels.find((label) => label.$id === ref.slice(1));
111
+ if (!found) {
112
+ throw new Error(`Not all label references are defined`);
113
+ }
114
+ return found;
115
+ }, (propertyRef, labelRef) => {
116
+ const label = labels.find((label) => label.$id === labelRef.slice(1));
117
+ const labelProperties = label ? label.properties : [];
118
+ const found = labelProperties.find((p) => p.$id === propertyRef.slice(1));
119
+ if (!found) {
120
+ throw new Error(`Not all constraint property references are defined`);
121
+ }
122
+ return found;
123
+ });
124
+ }
125
+ else if (isRelationshipTypeConstraintJsonStruct(constraintJson)) {
126
+ return relationshipConstraint.create(constraintJson, (ref) => {
127
+ const found = relationshipTypes.find((relType) => relType.$id === ref.slice(1));
128
+ if (!found) {
129
+ throw new Error(`Not all relationship type references are defined`);
130
+ }
131
+ return found;
132
+ }, (propertyRef, relationshipTypeRef) => {
133
+ const relType = relationshipTypes.find((relType) => relType.$id === relationshipTypeRef.slice(1));
134
+ const relTypeProperties = relType ? relType.properties : [];
135
+ const found = relTypeProperties.find((p) => p.$id === propertyRef.slice(1));
136
+ if (!found) {
137
+ throw new Error(`Not all constraint property references are defined`);
138
+ }
139
+ return found;
140
+ });
141
+ }
142
+ throw new Error(`Unknown constraint type ${constraintJson}`);
143
+ });
144
+ const indexes = graphSchema.indexes.map((indexJson) => {
145
+ if (isNodeLabelIndexJsonStruct(indexJson)) {
146
+ return nodeLabelIndex.create(indexJson, (ref) => {
147
+ const found = labels.find((label) => label.$id === ref.slice(1));
148
+ if (!found) {
149
+ throw new Error(`Not all label references are defined`);
150
+ }
151
+ return found;
152
+ }, (propertyRef, labelRef) => {
153
+ const label = labels.find((label) => label.$id === labelRef.slice(1));
154
+ const labelProperties = label ? label.properties : [];
155
+ const found = labelProperties.find((p) => p.$id === propertyRef.slice(1));
156
+ if (!found) {
157
+ throw new Error(`Not all index property references are defined`);
158
+ }
159
+ return found;
160
+ });
161
+ }
162
+ else if (isRelationshipTypeIndexJsonStruct(indexJson)) {
163
+ return relationshipTypeIndex.create(indexJson, (ref) => {
164
+ const found = relationshipTypes.find((relType) => relType.$id === ref.slice(1));
165
+ if (!found) {
166
+ throw new Error(`Not all relationship type references are defined`);
167
+ }
168
+ return found;
169
+ }, (propertyRef, relTypeRef) => {
170
+ const relType = relationshipTypes.find((relType) => relType.$id === relTypeRef.slice(1));
171
+ const relTypeProperties = relType ? relType.properties : [];
172
+ const found = relTypeProperties.find((p) => p.$id === propertyRef.slice(1));
173
+ if (!found) {
174
+ throw new Error(`Not all index property references are defined`);
175
+ }
176
+ return found;
177
+ });
178
+ }
179
+ else if (isLookupIndexJsonStruct(indexJson)) {
180
+ return lookupIndex.create(indexJson);
181
+ }
182
+ else {
183
+ throw new Error(`Unknown index type ${indexJson}`);
184
+ }
185
+ });
186
+ return new GraphSchema(nodeObjectTypes, relationshipObjectTypes, constraints, indexes);
187
+ }
188
+ const nodeLabel = {
189
+ extract: (node) => ({
190
+ $id: node.$id,
191
+ token: node.token,
192
+ properties: node.properties.map(property.extract),
193
+ }),
194
+ create: (node) => new NodeLabel(node.$id, node.token, node.properties.map(property.create)),
195
+ toRef: (node) => {
196
+ if (!node || !node.$id) {
197
+ throw new Error(`Not all labels are defined`);
198
+ }
199
+ return { $ref: `#${node.$id}` };
200
+ },
201
+ };
202
+ const relationshipType = {
203
+ extract: (relType) => ({
204
+ $id: relType.$id,
205
+ token: relType.token,
206
+ properties: relType.properties.map(property.extract),
207
+ }),
208
+ create: (relType) => new RelationshipType(relType.$id, relType.token, relType.properties.map(property.create)),
209
+ toRef: (relType) => {
210
+ if (!relType || !relType.$id) {
211
+ throw new Error(`RelationshipObjectType.type is not defined`);
212
+ }
213
+ return { $ref: `#${relType.$id}` };
214
+ },
215
+ };
216
+ const nodeLabelConstraint = {
217
+ extract: (constraint) => ({
218
+ $id: constraint.$id,
219
+ name: constraint.name,
220
+ constraintType: constraint.constraintType,
221
+ entityType: constraint.entityType,
222
+ nodeLabel: nodeLabel.toRef(constraint.nodeLabel),
223
+ properties: constraint.properties.map(property.toRef),
224
+ }),
225
+ create: (constraint, nodeLabelLookup, propertyLookup) => {
226
+ return new NodeLabelConstraint(constraint.$id, constraint.name, constraint.constraintType, nodeLabelLookup(constraint.nodeLabel.$ref), constraint.properties.map((p) => propertyLookup(p.$ref, constraint.nodeLabel.$ref)));
227
+ },
228
+ toRef: (constraint) => {
229
+ if (!constraint || !constraint.$id) {
230
+ throw new Error(`Constraint is not defined`);
231
+ }
232
+ return { $ref: `#${constraint.$id}` };
233
+ },
234
+ };
235
+ const relationshipConstraint = {
236
+ extract: (constraint) => ({
237
+ $id: constraint.$id,
238
+ name: constraint.name,
239
+ constraintType: constraint.constraintType,
240
+ entityType: constraint.entityType,
241
+ relationshipType: relationshipType.toRef(constraint.relationshipType),
242
+ properties: constraint.properties.map(property.toRef),
243
+ }),
244
+ create: (constraint, relationshipTypeLookup, propertyLookup) => {
245
+ return new RelationshipTypeConstraint(constraint.$id, constraint.name, constraint.constraintType, relationshipTypeLookup(constraint.relationshipType.$ref), constraint.properties.map((p) => propertyLookup(p.$ref, constraint.relationshipType.$ref)));
246
+ },
247
+ toRef: (constraint) => {
248
+ if (!constraint || !constraint.$id) {
249
+ throw new Error(`Constraint is not defined`);
250
+ }
251
+ return { $ref: `#${constraint.$id}` };
252
+ },
253
+ };
254
+ const lookupIndex = {
255
+ extract: (index) => ({
256
+ $id: index.$id,
257
+ name: index.name,
258
+ indexType: index.indexType,
259
+ entityType: index.entityType,
260
+ }),
261
+ create: (index) => {
262
+ return new LookupIndex(index.$id, index.name, index.entityType);
263
+ },
264
+ toRef: (index) => {
265
+ if (!index || !index.$id) {
266
+ throw new Error(`Index is not defined`);
267
+ }
268
+ return { $ref: `#${index.$id}` };
269
+ },
270
+ };
271
+ const nodeLabelIndex = {
272
+ extract: (index) => ({
273
+ $id: index.$id,
274
+ name: index.name,
275
+ indexType: index.indexType,
276
+ entityType: index.entityType,
277
+ nodeLabel: nodeLabel.toRef(index.nodeLabel),
278
+ properties: index.properties.map(property.toRef),
279
+ }),
280
+ create: (index, nodeLabelLookup, propertyLookup) => {
281
+ return new NodeLabelIndex(index.$id, index.name, index.indexType, nodeLabelLookup(index.nodeLabel.$ref), index.properties.map((p) => propertyLookup(p.$ref, index.nodeLabel.$ref)));
282
+ },
283
+ toRef: (index) => {
284
+ if (!index || !index.$id) {
285
+ throw new Error(`Index is not defined`);
286
+ }
287
+ return { $ref: `#${index.$id}` };
288
+ },
289
+ };
290
+ const relationshipTypeIndex = {
291
+ extract: (index) => ({
292
+ $id: index.$id,
293
+ name: index.name,
294
+ indexType: index.indexType,
295
+ entityType: index.entityType,
296
+ relationshipType: relationshipType.toRef(index.relationshipType),
297
+ properties: index.properties.map(property.toRef),
298
+ }),
299
+ create: (index, relationshipTypeLookup, propertyLookup) => {
300
+ return new RelationshipTypeIndex(index.$id, index.name, index.indexType, relationshipTypeLookup(index.relationshipType.$ref), index.properties.map((p) => propertyLookup(p.$ref, index.relationshipType.$ref)));
301
+ },
302
+ toRef: (index) => {
303
+ if (!index || !index.$id) {
304
+ throw new Error(`Index is not defined`);
305
+ }
306
+ return { $ref: `#${index.$id}` };
307
+ },
308
+ };
309
+ const property = {
310
+ extract: (property) => ({
311
+ $id: property.$id,
312
+ token: property.token,
313
+ type: propertyType.extract(property.type),
314
+ nullable: property.nullable,
315
+ }),
316
+ create: (property) => new Property(property.$id, property.token, propertyType.create(property.type), property.nullable),
317
+ toRef: (property) => {
318
+ if (!property || !property.$id) {
319
+ throw new Error(`Property is not defined`);
320
+ }
321
+ return {
322
+ $ref: `#${property.$id}`,
323
+ };
324
+ },
325
+ };
326
+ const propertyType = {
327
+ extract: (pt) => {
328
+ if (Array.isArray(pt)) {
329
+ return pt.map((p) => {
330
+ if (isPrimitivePropertyType(p)) {
331
+ return propertyBaseType.extract(p);
332
+ }
333
+ else if (isPrimitiveArrayPropertyType(p)) {
334
+ return propertyArrayType.extract(p);
335
+ }
336
+ else if (isVectorPropertyType(p)) {
337
+ return propertyVectorType.extract(p);
338
+ }
339
+ throw Error(`Unknown property type in list ${p}`);
340
+ });
341
+ }
342
+ if (isPrimitivePropertyType(pt)) {
343
+ return propertyBaseType.extract(pt);
344
+ }
345
+ else if (isPrimitiveArrayPropertyType(pt)) {
346
+ return propertyArrayType.extract(pt);
347
+ }
348
+ else if (isVectorPropertyType(pt)) {
349
+ return propertyVectorType.extract(pt);
350
+ }
351
+ throw new Error(`Unknown property type ${pt}`);
352
+ },
353
+ create: (propertyTypeJson) => {
354
+ if (Array.isArray(propertyTypeJson)) {
355
+ return propertyTypeJson.map((pt) => {
356
+ if (isPrimitivePropertyTypeJsonStruct(pt)) {
357
+ return propertyBaseType.create(pt);
358
+ }
359
+ else if (isPrimitiveArrayPropertyTypeJsonStruct(pt)) {
360
+ return propertyArrayType.create(pt.items.type);
361
+ }
362
+ throw new Error(`Unknown property type in list ${pt}`);
363
+ });
364
+ }
365
+ if (isPrimitiveArrayPropertyTypeJsonStruct(propertyTypeJson)) {
366
+ return propertyArrayType.create(propertyTypeJson.items.type);
367
+ }
368
+ if (isVectorPropertyTypeJsonStruct(propertyTypeJson)) {
369
+ return propertyVectorType.create(propertyTypeJson.items.type, propertyTypeJson.dimension);
370
+ }
371
+ return propertyBaseType.create(propertyTypeJson);
372
+ },
373
+ };
374
+ const propertyBaseType = {
375
+ extract: (propertyBaseType) => ({
376
+ type: propertyBaseType.type,
377
+ }),
378
+ create: (btype) => new PrimitivePropertyType(btype.type),
379
+ };
380
+ const propertyArrayType = {
381
+ extract: (propertyArrayType) => ({
382
+ type: "array",
383
+ items: propertyBaseType.extract(propertyArrayType.items),
384
+ }),
385
+ create: (type) => new PrimitiveArrayPropertyType(propertyBaseType.create({ type })),
386
+ };
387
+ const propertyVectorElementType = {
388
+ extract: (propertyVectorElementType) => ({
389
+ type: propertyVectorElementType.type,
390
+ }),
391
+ create: (btype) => new VectorElementType(btype.type),
392
+ };
393
+ const propertyVectorType = {
394
+ extract: (propertyVectorType) => {
395
+ const result = {
396
+ type: "vector",
397
+ items: propertyVectorElementType.extract(propertyVectorType.items),
398
+ };
399
+ if (typeof propertyVectorType.dimension === "number") {
400
+ result.dimension = propertyVectorType.dimension;
401
+ }
402
+ return result;
403
+ },
404
+ create: (type, dimension) => {
405
+ return new VectorPropertyType(propertyVectorElementType.create({ type }), dimension);
406
+ },
407
+ };
408
+ const nodeObjectType = {
409
+ extract: (nodeObjectType) => ({
410
+ $id: nodeObjectType.$id,
411
+ labels: nodeObjectType.labels.map(nodeLabel.toRef),
412
+ }),
413
+ create: (nodeObjectType, labelLookup) => {
414
+ return new NodeObjectType(nodeObjectType.$id, nodeObjectType.labels.map(({ $ref }) => labelLookup($ref)));
415
+ },
416
+ toRef: (nodeObjectType) => {
417
+ if (!nodeObjectType || !nodeObjectType.$id) {
418
+ throw new Error(`NodeObjectType is not defined`);
419
+ }
420
+ return {
421
+ $ref: `#${nodeObjectType.$id}`,
422
+ };
423
+ },
424
+ };
425
+ const relationshipObjectType = {
426
+ extract: (relationshipObjectType) => ({
427
+ $id: relationshipObjectType.$id,
428
+ type: relationshipType.toRef(relationshipObjectType.type),
429
+ from: nodeObjectType.toRef(relationshipObjectType.from),
430
+ to: nodeObjectType.toRef(relationshipObjectType.to),
431
+ }),
432
+ create: (relationshipObjectType, relTypeLookup, nodeObjectTypeLookup) => {
433
+ return new RelationshipObjectType(relationshipObjectType.$id, relTypeLookup(relationshipObjectType.type.$ref), nodeObjectTypeLookup(relationshipObjectType.from.$ref, "from"), nodeObjectTypeLookup(relationshipObjectType.to.$ref, "to"));
434
+ },
435
+ toRef: (relationshipObjectType) => ({
436
+ $ref: `#${relationshipObjectType.$id}`,
437
+ }),
438
+ };
439
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../src/formatters/json/extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import * as types from "./types.js";
2
+ export { toJson, fromJson, fromJsonStruct, toJsonStruct, VERSION, } from "./extensions.js";
3
+ export { types };
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatters/json/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,OAAO,GACR,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { PRIMITIVE_TYPE_OPTIONS, VECTOR_TYPE_OPTIONS, } from "../../model/index.js";
2
+ export const isPrimitivePropertyTypeJsonStruct = (propertyType) => {
3
+ return (typeof propertyType === "object" &&
4
+ "type" in propertyType &&
5
+ PRIMITIVE_TYPE_OPTIONS.some((p) => propertyType.type === p));
6
+ };
7
+ export const isPrimitiveArrayPropertyTypeJsonStruct = (propertyType) => {
8
+ return (typeof propertyType === "object" &&
9
+ "type" in propertyType &&
10
+ propertyType.type === "array" &&
11
+ propertyType.items !== undefined);
12
+ };
13
+ export const isVectorPropertyTypeJsonStruct = (propertyType) => {
14
+ return (typeof propertyType === "object" &&
15
+ propertyType.type === "vector" &&
16
+ propertyType.items !== undefined &&
17
+ typeof propertyType.items.type === "string" &&
18
+ VECTOR_TYPE_OPTIONS.some((p) => propertyType.items.type === p) &&
19
+ (propertyType.dimension === undefined || typeof propertyType.dimension === "number"));
20
+ };
21
+ export const isNodeLabelConstraintJsonStruct = (constraint) => {
22
+ return constraint.entityType === "node" && constraint.nodeLabel !== undefined;
23
+ };
24
+ export const isRelationshipTypeConstraintJsonStruct = (constraint) => {
25
+ return (constraint.entityType === "relationship" &&
26
+ constraint.relationshipType !== undefined);
27
+ };
28
+ export const isNodeLabelIndexJsonStruct = (index) => {
29
+ return index.nodeLabel !== undefined && index.indexType !== "lookup";
30
+ };
31
+ export const isRelationshipTypeIndexJsonStruct = (index) => {
32
+ return index.relationshipType !== undefined && index.indexType !== "lookup";
33
+ };
34
+ export const isLookupIndexJsonStruct = (index) => {
35
+ return index.indexType === "lookup";
36
+ };
37
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/formatters/json/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,sBAAsB,EACE,mBAAmB,GAC5C,MAAM,sBAAsB,CAAC;AA2H9B,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,YAAoC,EACa,EAAE;IACnD,OAAO,CACL,OAAO,YAAY,KAAK,QAAQ;QAChC,MAAM,IAAI,YAAY;QACtB,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,YAAoC,EACkB,EAAE;IACxD,OAAO,CACL,OAAO,YAAY,KAAK,QAAQ;QAChC,MAAM,IAAI,YAAY;QACtB,YAAY,CAAC,IAAI,KAAK,OAAO;QAC7B,YAAY,CAAC,KAAK,KAAK,SAAS,CACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,YAAoC,EACU,EAAE;IAChD,OAAO,CACL,OAAO,YAAY,KAAK,QAAQ;QAChC,YAAY,CAAC,IAAI,KAAK,QAAQ;QAC9B,YAAY,CAAC,KAAK,KAAK,SAAS;QAChC,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC3C,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;QAC9D,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,YAAY,CAAC,SAAS,KAAK,QAAQ,CAAC,CACrF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC7C,UAAgC,EACa,EAAE;IAC/C,OAAO,UAAU,CAAC,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,UAAgC,EACoB,EAAE;IACtD,OAAO,CACL,UAAU,CAAC,UAAU,KAAK,cAAc;QACxC,UAAU,CAAC,gBAAgB,KAAK,SAAS,CAC1C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,KAAsB,EACa,EAAE;IACrC,OAAO,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,KAAsB,EACoB,EAAE;IAC5C,OAAO,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAsB,EACU,EAAE;IAClC,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;AACtC,CAAC,CAAC"}