@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
@@ -0,0 +1,102 @@
1
+ import { PrimitivePropertyType, } from "../../model/index.js";
2
+ export function toTomaz(schema) {
3
+ let out = [`Node properties are the following:`].concat(schema.nodeObjectTypes.map(nodeObjectTypes).filter(Boolean), [`Relationship properties are the following:`], schema.relationshipObjectTypes.map(relationshipObjectTypes).filter(Boolean), [`The relationships are the following:`], JSON.stringify(schema.relationshipObjectTypes.map(paths)));
4
+ function nodeObjectTypes(nodeObjectType) {
5
+ const out = [];
6
+ const properties = nodeObjectType.getProperties().map((property) => {
7
+ const base = {
8
+ property: property.token,
9
+ type: formatPropertyType(property.type),
10
+ };
11
+ if (property.nullable) {
12
+ base.nullable = true;
13
+ }
14
+ return base;
15
+ });
16
+ if (!properties.length) {
17
+ return "";
18
+ }
19
+ out.push({
20
+ properties: properties,
21
+ labels: nodeObjectType.labels.map((label) => label.token),
22
+ });
23
+ return JSON.stringify(out);
24
+ }
25
+ function relationshipObjectTypes(relationshipObjectType) {
26
+ const out = [];
27
+ const properties = relationshipObjectType
28
+ .getProperties()
29
+ .map((property) => {
30
+ const base = {
31
+ property: property.token,
32
+ type: formatPropertyType(property.type),
33
+ };
34
+ if (property.nullable) {
35
+ base.nullable = true;
36
+ }
37
+ return base;
38
+ });
39
+ if (!properties.length) {
40
+ return "";
41
+ }
42
+ out.push({
43
+ labels: [relationshipObjectType.type.token],
44
+ properties: properties,
45
+ });
46
+ return JSON.stringify(out);
47
+ }
48
+ function paths(relationshipObjectType) {
49
+ return `(:${relationshipObjectType.from.labels
50
+ .map((label) => label.token)
51
+ .join(":")})-[:${relationshipObjectType.type.token}]->(:${relationshipObjectType.to.labels
52
+ .map((label) => label.token)
53
+ .join(":")})`;
54
+ }
55
+ return out.join("\n");
56
+ }
57
+ export function toOskars(schema) {
58
+ let out = [`Node types with their properties + types`].concat(schema.nodeObjectTypes.map(nodeObjectTypes), [`Relationship types with properties + types`], schema.relationshipObjectTypes.map(relationshipObjectTypes).filter(Boolean), [
59
+ `Paths (all combinations of node types and relationship types and the direction of the relationship)`,
60
+ ], schema.relationshipObjectTypes.map(paths));
61
+ function nodeObjectTypes(nodeObjectType) {
62
+ const out = [];
63
+ const properties = nodeObjectType.getProperties().map((property) => {
64
+ return `${property.token}: ${formatPropertyType(property.type)}${property.nullable ? " (nullable)" : ""}`;
65
+ });
66
+ out.push(` (:${nodeObjectType.labels.map((label) => label.token).join(":")}${properties.length > 0 ? ` {${properties.join(", ")}}` : ""})`);
67
+ return out.join("\n");
68
+ }
69
+ function relationshipObjectTypes(relationshipObjectType) {
70
+ const out = [];
71
+ const properties = relationshipObjectType
72
+ .getProperties()
73
+ .map((property) => {
74
+ return `${property.token}: ${formatPropertyType(property.type)}${property.nullable ? " (nullable)" : ""}`;
75
+ });
76
+ if (!properties.length) {
77
+ return "";
78
+ }
79
+ out.push(` [:${relationshipObjectType.type.token}${properties.length > 0 ? ` {${properties.join(", ")}}` : ""}]`);
80
+ return out.join("\n");
81
+ }
82
+ function paths(relationshipObjectType) {
83
+ const out = [];
84
+ out.push(` (:${relationshipObjectType.from.labels
85
+ .map((label) => label.token)
86
+ .join(":")})-[:${relationshipObjectType.type.token}]->(:${relationshipObjectType.to.labels
87
+ .map((label) => label.token)
88
+ .join(":")})`);
89
+ return out.join("\n");
90
+ }
91
+ return out.join("\n");
92
+ }
93
+ function formatPropertyType(type) {
94
+ if (Array.isArray(type)) {
95
+ return type.map(formatPropertyType).join("|");
96
+ }
97
+ if (type instanceof PrimitivePropertyType) {
98
+ return type.type;
99
+ }
100
+ return `${type.items.type}[]`;
101
+ }
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatters/llm-prompt/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/formatters/llm-prompt/types.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,4 +1,7 @@
1
+ export { PACKAGE_VERSION, LAST_BUILD_TIME } from "./version.js";
1
2
  export { validateSchema, SchemaValidationError } from "./validation.js";
2
3
  import * as model from "./model/index.js";
3
- export { model };
4
+ import * as formatters from "./formatters/index.js";
5
+ export { model, formatters };
6
+ export { VECTOR_TYPE_OPTIONS, VectorElementType } from "./model/index.js";
4
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,200 +1,217 @@
1
- export class GraphSchemaRepresentation {
2
- constructor(version, graphSchema) {
3
- this.version = version;
4
- this.graphSchema = graphSchema;
5
- }
6
- toJson() {
7
- return JSON.stringify({
8
- graphSchemaRepresentation: {
9
- version: this.version,
10
- graphSchema: this.graphSchema.toJsonStruct(),
11
- },
12
- });
13
- }
14
- static parseJson(jsonString) {
15
- const json = JSON.parse(jsonString);
16
- const version = json.graphSchemaRepresentation.version;
17
- const graphSchema = GraphSchema.fromJsonStruct(json.graphSchemaRepresentation.graphSchema);
18
- return new GraphSchemaRepresentation(version, graphSchema);
19
- }
20
- }
21
1
  export class GraphSchema {
22
- constructor(nodeLabels, relationshipTypes, nodeObjectTypes, relationshipObjectTypes) {
23
- this.nodeLabels = nodeLabels;
24
- this.relationshipTypes = relationshipTypes;
2
+ constructor(nodeObjectTypes, relationshipObjectTypes, constraints = [], indexes = []) {
3
+ this.nodeLabels = [];
4
+ this.relationshipTypes = [];
25
5
  this.nodeObjectTypes = nodeObjectTypes;
26
6
  this.relationshipObjectTypes = relationshipObjectTypes;
7
+ this.constraints = constraints;
8
+ this.indexes = indexes;
9
+ this.extractNodeLabels();
10
+ this.extractRelationshipTypes();
11
+ }
12
+ extractNodeLabels() {
13
+ const nodeLabels = this.nodeObjectTypes.flatMap((nodeObjectType) => nodeObjectType.labels);
14
+ this.nodeLabels = [...new Set(nodeLabels)];
15
+ }
16
+ extractRelationshipTypes() {
17
+ const relationshipTypes = this.relationshipObjectTypes.flatMap((relationshipObjectType) => relationshipObjectType.type);
18
+ this.relationshipTypes = [...new Set(relationshipTypes)];
19
+ }
20
+ getAllNodeLabelTokens() {
21
+ return this.nodeLabels.map((nodeLabel) => nodeLabel.token);
27
22
  }
28
- toJsonStruct() {
29
- return {
30
- nodeLabels: this.nodeLabels.map((nodeLabel) => nodeLabel.toJsonStruct()),
31
- relationshipTypes: this.relationshipTypes.map((relationshipType) => relationshipType.toJsonStruct()),
32
- nodeObjectTypes: this.nodeObjectTypes.map((nodeObjectType) => nodeObjectType.toJsonStruct()),
33
- relationshipObjectTypes: this.relationshipObjectTypes.map((relationshipObjectType) => relationshipObjectType.toJsonStruct()),
34
- };
35
- }
36
- static fromJsonStruct(json) {
37
- const nodeLabels = json.nodeLabels.map((nodeLabel) => new NodeLabel(nodeLabel.$id, nodeLabel.token));
38
- const relationshipTypes = json.relationshipTypes.map((relationshipType) => new RelationshipType(relationshipType.$id, relationshipType.token));
39
- const nodeObjectTypes = json.nodeObjectTypes.map((nodeObjectType) => {
40
- const labels = nodeObjectType.labels
41
- .map((label) => nodeLabels.find((nodeLabel) => nodeLabel.$id === label.$ref.slice(1)))
42
- .filter((label) => label);
43
- if (labels.length !== nodeObjectType.labels.length) {
44
- throw new Error("Not all label references are defined");
45
- }
46
- return new NodeObjectType(nodeObjectType.$id, labels, nodeObjectType.properties.map((property) => new Property(property.token, PropertyType.fromJsonStruct(property.type), property.mandatory)));
47
- });
48
- const relationshipObjectTypes = json.relationshipObjectTypes.map((relationshipObjectType) => {
49
- const type = relationshipTypes.find((relationshipType) => relationshipType.$id === relationshipObjectType.type.$ref.slice(1));
50
- if (!type) {
51
- throw new Error("Not all relationship type references are defined");
52
- }
53
- const from = nodeObjectTypes.find((nodeObjectType) => nodeObjectType.$id === relationshipObjectType.from.$ref.slice(1));
54
- if (!from) {
55
- throw new Error("Not all node object type references in from are defined");
56
- }
57
- const to = nodeObjectTypes.find((nodeObjectType) => nodeObjectType.$id === relationshipObjectType.to.$ref.slice(1));
58
- if (!to) {
59
- throw new Error("Not all node object type references in to are defined");
60
- }
61
- return new RelationshipObjectType(relationshipObjectType.$id, type, from, to, relationshipObjectType.properties.map((property) => new Property(property.token, PropertyType.fromJsonStruct(property.type), property.mandatory)));
62
- });
63
- return new GraphSchema(nodeLabels, relationshipTypes, nodeObjectTypes, relationshipObjectTypes);
23
+ getAllRelationshipTypeTokens() {
24
+ return this.relationshipTypes.map((relationshipType) => relationshipType.token);
25
+ }
26
+ getAllPropertyTokens() {
27
+ const nodeProperties = this.nodeObjectTypes.flatMap((nodeObjectType) => nodeObjectType.getPropertyTokens());
28
+ const relationshipProperties = this.relationshipObjectTypes.flatMap((relationshipObjectType) => relationshipObjectType.getPropertyTokens());
29
+ // return all tokens without duplicates
30
+ return [...new Set([...nodeProperties, ...relationshipProperties])];
64
31
  }
65
32
  }
66
33
  export class NodeLabel {
67
- constructor(id, token) {
34
+ constructor(id, token, properties = []) {
68
35
  this.$id = id;
69
36
  this.token = token;
37
+ this.properties = properties;
70
38
  }
71
- toJsonStruct() {
72
- return {
73
- $id: this.$id,
74
- token: this.token,
75
- };
76
- }
77
- toRef() {
78
- return {
79
- $ref: `#${this.$id}`,
80
- };
39
+ getPropertyTokens() {
40
+ return this.properties.map((property) => property.token);
81
41
  }
82
42
  }
83
43
  export class RelationshipType {
84
- constructor(id, token) {
44
+ constructor(id, token, properties = []) {
85
45
  this.$id = id;
86
46
  this.token = token;
47
+ this.properties = properties;
87
48
  }
88
- toJsonStruct() {
89
- return {
90
- $id: this.$id,
91
- token: this.token,
92
- };
93
- }
94
- toRef() {
95
- return {
96
- $ref: `#${this.$id}`,
97
- };
49
+ getPropertyTokens() {
50
+ return this.properties.map((property) => property.token);
98
51
  }
99
52
  }
100
53
  export class NodeObjectType {
101
- constructor(id, labels, properties) {
54
+ constructor(id, labels) {
102
55
  this.$id = id;
103
56
  this.labels = labels;
104
- this.properties = properties;
105
57
  }
106
- toJsonStruct() {
107
- const brokenLabels = this.labels.filter((label) => !label);
108
- if (brokenLabels.length > 0) {
109
- throw new Error("Not all labels are defined");
110
- }
111
- return {
112
- $id: this.$id,
113
- labels: this.labels.map((label) => label.toRef()),
114
- properties: this.properties.map((property) => property.toJsonStruct()),
115
- };
58
+ getProperties() {
59
+ return this.labels.flatMap((l) => l.properties);
116
60
  }
117
- toRef() {
118
- return {
119
- $ref: `#${this.$id}`,
120
- };
61
+ getPropertyTokens() {
62
+ // return all tokens without duplicates
63
+ return [...new Set(this.getProperties().map((property) => property.token))];
121
64
  }
122
65
  }
123
66
  export class RelationshipObjectType {
124
- constructor(id, type, from, to, properties) {
67
+ constructor(id, type, from, to) {
125
68
  this.$id = id;
126
69
  this.type = type;
127
70
  this.from = from;
128
71
  this.to = to;
72
+ }
73
+ getProperties() {
74
+ return this.type.properties;
75
+ }
76
+ getPropertyTokens() {
77
+ // return all tokens without duplicates
78
+ return [...new Set(this.getProperties().map((property) => property.token))];
79
+ }
80
+ }
81
+ export const isNodeLabelConstraint = (constraint) => {
82
+ return constraint.entityType === "node" && "nodeLabel" in constraint;
83
+ };
84
+ export const isRelationshipTypeConstraint = (constraint) => {
85
+ return (constraint.entityType === "relationship" && "relationshipType" in constraint);
86
+ };
87
+ export const isNodeLabelIndex = (index) => {
88
+ return (index.entityType === "node" &&
89
+ index.indexType !== "lookup" &&
90
+ "nodeLabel" in index);
91
+ };
92
+ export const isRelationshipTypeIndex = (index) => {
93
+ return (index.entityType === "relationship" &&
94
+ index.indexType !== "lookup" &&
95
+ "relationshipType" in index);
96
+ };
97
+ export const isLookupIndex = (index) => {
98
+ return index.indexType === "lookup";
99
+ };
100
+ export class NodeLabelConstraint {
101
+ constructor($id, name, constraintType, nodeLabel, properties) {
102
+ this.$id = $id;
103
+ this.name = name;
104
+ this.constraintType = constraintType;
105
+ this.nodeLabel = nodeLabel;
129
106
  this.properties = properties;
107
+ this.entityType = "node";
130
108
  }
131
- toJsonStruct() {
132
- if (!this.type) {
133
- throw new Error("RelationshipObjectType.type is not defined");
134
- }
135
- if (!this.from) {
136
- throw new Error("RelationshipObjectType.from is not defined");
137
- }
138
- if (!this.to) {
139
- throw new Error("RelationshipObjectType.to is not defined");
140
- }
141
- return {
142
- $id: this.$id,
143
- type: this.type.toRef(),
144
- from: this.from.toRef(),
145
- to: this.to.toRef(),
146
- properties: this.properties.map((property) => property.toJsonStruct()),
147
- };
109
+ }
110
+ export class RelationshipTypeConstraint {
111
+ constructor($id, name, constraintType, relationshipType, properties) {
112
+ this.$id = $id;
113
+ this.name = name;
114
+ this.constraintType = constraintType;
115
+ this.relationshipType = relationshipType;
116
+ this.properties = properties;
117
+ this.entityType = "relationship";
118
+ }
119
+ }
120
+ export class NodeLabelIndex {
121
+ constructor($id, name, indexType, nodeLabel, properties) {
122
+ this.$id = $id;
123
+ this.name = name;
124
+ this.nodeLabel = nodeLabel;
125
+ this.indexType = indexType;
126
+ this.properties = properties;
127
+ this.entityType = "node";
128
+ }
129
+ }
130
+ export class RelationshipTypeIndex {
131
+ constructor($id, name, indexType, relationshipType, properties) {
132
+ this.$id = $id;
133
+ this.name = name;
134
+ this.indexType = indexType;
135
+ this.entityType = "relationship";
136
+ this.relationshipType = relationshipType;
137
+ this.properties = properties;
138
+ }
139
+ }
140
+ export class LookupIndex {
141
+ constructor($id, name, entityType) {
142
+ this.$id = $id;
143
+ this.name = name;
144
+ this.indexType = "lookup";
145
+ this.entityType = entityType;
148
146
  }
149
147
  }
148
+ export const isPrimitiveArrayPropertyType = (property) => {
149
+ return (property instanceof Object &&
150
+ property.type === "array" &&
151
+ property.items !== undefined);
152
+ };
153
+ export const isPrimitivePropertyType = (property) => {
154
+ return (property instanceof Object &&
155
+ "type" in property &&
156
+ PRIMITIVE_TYPE_OPTIONS.some((p) => property.type === p));
157
+ };
150
158
  export class Property {
151
- constructor(token, type, mandatory) {
159
+ constructor($id, token, type, nullable) {
160
+ this.$id = $id;
152
161
  this.token = token;
153
162
  this.type = type;
154
- this.mandatory = mandatory;
155
- }
156
- toJsonStruct() {
157
- const typeVal = Array.isArray(this.type)
158
- ? this.type.map((t) => t.toJsonStruct())
159
- : this.type.toJsonStruct();
160
- return {
161
- type: typeVal,
162
- token: this.token,
163
- mandatory: this.mandatory,
164
- };
163
+ this.nullable = nullable;
165
164
  }
166
165
  }
167
- export class PropertyBaseType {
166
+ export class PrimitivePropertyType {
168
167
  constructor(type) {
169
168
  this.type = type;
170
169
  }
171
- toJsonStruct() {
172
- return {
173
- type: this.type,
174
- };
175
- }
176
170
  }
177
- export class PropertyArrayType {
171
+ export class PrimitiveArrayPropertyType {
178
172
  constructor(items) {
179
173
  this.type = "array";
180
174
  this.items = items;
181
175
  }
182
- toJsonStruct() {
183
- return {
184
- type: this.type,
185
- items: this.items,
186
- };
187
- }
188
176
  }
189
- export class PropertyType {
190
- static fromJsonStruct(json) {
191
- if (Array.isArray(json)) {
192
- return json.map((item) => PropertyType.fromJsonStruct(item));
193
- }
194
- if (json.type === "array") {
195
- return new PropertyArrayType(json.items);
177
+ export class VectorPropertyType {
178
+ constructor(items, dimension) {
179
+ this.type = "vector";
180
+ this.items = items;
181
+ if (typeof dimension === "number") {
182
+ this.dimension = dimension;
196
183
  }
197
- return new PropertyBaseType(json.type);
198
184
  }
199
185
  }
186
+ export const PRIMITIVE_TYPE_OPTIONS = [
187
+ "integer",
188
+ "string",
189
+ "float",
190
+ "boolean",
191
+ "point",
192
+ "date",
193
+ "datetime",
194
+ "time",
195
+ "localtime",
196
+ "localdatetime",
197
+ "duration",
198
+ ];
199
+ export const isVectorPropertyType = (property) => {
200
+ return (property.type === "vector" &&
201
+ property.items !== undefined &&
202
+ (property.dimension === undefined || typeof property.dimension === "number"));
203
+ };
204
+ export class VectorElementType {
205
+ constructor(type) {
206
+ this.type = type;
207
+ }
208
+ }
209
+ export const VECTOR_TYPE_OPTIONS = [
210
+ "integer",
211
+ "integer8",
212
+ "integer16",
213
+ "integer32",
214
+ "float",
215
+ "float32",
216
+ ];
200
217
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * as json from "./json/index.js";
@@ -0,0 +1,9 @@
1
+ import { GraphSchema } from "../../model/index.js";
2
+ import { GraphSchemaJsonStruct, RootSchemaJsonStruct } from "./types.js";
3
+ export declare const VERSION = "0.0.1";
4
+ export declare function toJson(schema: GraphSchema, space?: string | number | undefined): string;
5
+ export declare function toJsonStruct(schema: GraphSchema): RootSchemaJsonStruct;
6
+ export declare function fromJson(schema: string): GraphSchema;
7
+ export declare function hasDuplicateNodeLabelIds(schema: GraphSchemaJsonStruct): boolean;
8
+ export declare function hasDuplicateNodeObjectTypeIds(schema: GraphSchemaJsonStruct): boolean;
9
+ export declare function fromJsonStruct(schemaJson: RootSchemaJsonStruct): GraphSchema;
@@ -0,0 +1,3 @@
1
+ import * as types from "./types.js";
2
+ export { toJson, fromJson, fromJsonStruct, toJsonStruct, VERSION, } from "./extensions.js";
3
+ export { types };