@neo4j-cypher/query-tools 2.0.0-next.19

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 (149) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/LICENSE.md +201 -0
  3. package/README.md +7 -0
  4. package/dist/cjs/package.json +41 -0
  5. package/dist/cjs/src/connectionErrorHandler.d.ts +12 -0
  6. package/dist/cjs/src/connectionErrorHandler.js +41 -0
  7. package/dist/cjs/src/connectionErrorHandler.js.map +1 -0
  8. package/dist/cjs/src/cypher-execution/query-result.d.ts +11 -0
  9. package/dist/cjs/src/cypher-execution/query-result.js +195 -0
  10. package/dist/cjs/src/cypher-execution/query-result.js.map +1 -0
  11. package/dist/cjs/src/data-transforms/clean-type.d.ts +6 -0
  12. package/dist/cjs/src/data-transforms/clean-type.js +16 -0
  13. package/dist/cjs/src/data-transforms/clean-type.js.map +1 -0
  14. package/dist/cjs/src/data-transforms/cypher-type-names.d.ts +6 -0
  15. package/dist/cjs/src/data-transforms/cypher-type-names.js +85 -0
  16. package/dist/cjs/src/data-transforms/cypher-type-names.js.map +1 -0
  17. package/dist/cjs/src/data-transforms/format-float.d.ts +1 -0
  18. package/dist/cjs/src/data-transforms/format-float.js +14 -0
  19. package/dist/cjs/src/data-transforms/format-float.js.map +1 -0
  20. package/dist/cjs/src/data-transforms/record-to-string.d.ts +5 -0
  21. package/dist/cjs/src/data-transforms/record-to-string.js +174 -0
  22. package/dist/cjs/src/data-transforms/record-to-string.js.map +1 -0
  23. package/dist/cjs/src/data-types/cypher-data-types.d.ts +29 -0
  24. package/dist/cjs/src/data-types/cypher-data-types.js +3 -0
  25. package/dist/cjs/src/data-types/cypher-data-types.js.map +1 -0
  26. package/dist/cjs/src/index.d.ts +14 -0
  27. package/dist/cjs/src/index.js +15 -0
  28. package/dist/cjs/src/index.js.map +1 -0
  29. package/dist/cjs/src/metadataPoller.d.ts +31 -0
  30. package/dist/cjs/src/metadataPoller.js +197 -0
  31. package/dist/cjs/src/metadataPoller.js.map +1 -0
  32. package/dist/cjs/src/neo4jConnection.d.ts +29 -0
  33. package/dist/cjs/src/neo4jConnection.js +107 -0
  34. package/dist/cjs/src/neo4jConnection.js.map +1 -0
  35. package/dist/cjs/src/queries/dataSummary.d.ts +7 -0
  36. package/dist/cjs/src/queries/dataSummary.js +33 -0
  37. package/dist/cjs/src/queries/dataSummary.js.map +1 -0
  38. package/dist/cjs/src/queries/databases.d.ts +27 -0
  39. package/dist/cjs/src/queries/databases.js +28 -0
  40. package/dist/cjs/src/queries/databases.js.map +1 -0
  41. package/dist/cjs/src/queries/functions.d.ts +16 -0
  42. package/dist/cjs/src/queries/functions.js +88 -0
  43. package/dist/cjs/src/queries/functions.js.map +1 -0
  44. package/dist/cjs/src/queries/procedures.d.ts +16 -0
  45. package/dist/cjs/src/queries/procedures.js +106 -0
  46. package/dist/cjs/src/queries/procedures.js.map +1 -0
  47. package/dist/cjs/src/queries/roles.d.ts +11 -0
  48. package/dist/cjs/src/queries/roles.js +24 -0
  49. package/dist/cjs/src/queries/roles.js.map +1 -0
  50. package/dist/cjs/src/queries/users.d.ts +15 -0
  51. package/dist/cjs/src/queries/users.js +24 -0
  52. package/dist/cjs/src/queries/users.js.map +1 -0
  53. package/dist/cjs/src/queries/version.d.ts +7 -0
  54. package/dist/cjs/src/queries/version.js +26 -0
  55. package/dist/cjs/src/queries/version.js.map +1 -0
  56. package/dist/cjs/src/schemaPoller.d.ts +44 -0
  57. package/dist/cjs/src/schemaPoller.js +167 -0
  58. package/dist/cjs/src/schemaPoller.js.map +1 -0
  59. package/dist/cjs/src/types/cypher-data-types.d.ts +41 -0
  60. package/dist/cjs/src/types/cypher-data-types.js +46 -0
  61. package/dist/cjs/src/types/cypher-data-types.js.map +1 -0
  62. package/dist/cjs/src/types/sdkTypes.d.ts +17 -0
  63. package/dist/cjs/src/types/sdkTypes.js +3 -0
  64. package/dist/cjs/src/types/sdkTypes.js.map +1 -0
  65. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  66. package/dist/esm/package.json +41 -0
  67. package/dist/esm/src/connectionErrorHandler.d.ts +12 -0
  68. package/dist/esm/src/connectionErrorHandler.js +35 -0
  69. package/dist/esm/src/connectionErrorHandler.js.map +1 -0
  70. package/dist/esm/src/cypher-execution/query-result.d.ts +11 -0
  71. package/dist/esm/src/cypher-execution/query-result.js +188 -0
  72. package/dist/esm/src/cypher-execution/query-result.js.map +1 -0
  73. package/dist/esm/src/data-transforms/clean-type.d.ts +6 -0
  74. package/dist/esm/src/data-transforms/clean-type.js +12 -0
  75. package/dist/esm/src/data-transforms/clean-type.js.map +1 -0
  76. package/dist/esm/src/data-transforms/cypher-type-names.d.ts +6 -0
  77. package/dist/esm/src/data-transforms/cypher-type-names.js +80 -0
  78. package/dist/esm/src/data-transforms/cypher-type-names.js.map +1 -0
  79. package/dist/esm/src/data-transforms/format-float.d.ts +1 -0
  80. package/dist/esm/src/data-transforms/format-float.js +10 -0
  81. package/dist/esm/src/data-transforms/format-float.js.map +1 -0
  82. package/dist/esm/src/data-transforms/record-to-string.d.ts +5 -0
  83. package/dist/esm/src/data-transforms/record-to-string.js +169 -0
  84. package/dist/esm/src/data-transforms/record-to-string.js.map +1 -0
  85. package/dist/esm/src/data-types/cypher-data-types.d.ts +29 -0
  86. package/dist/esm/src/data-types/cypher-data-types.js +2 -0
  87. package/dist/esm/src/data-types/cypher-data-types.js.map +1 -0
  88. package/dist/esm/src/index.d.ts +14 -0
  89. package/dist/esm/src/index.js +6 -0
  90. package/dist/esm/src/index.js.map +1 -0
  91. package/dist/esm/src/metadataPoller.d.ts +31 -0
  92. package/dist/esm/src/metadataPoller.js +191 -0
  93. package/dist/esm/src/metadataPoller.js.map +1 -0
  94. package/dist/esm/src/neo4jConnection.d.ts +29 -0
  95. package/dist/esm/src/neo4jConnection.js +103 -0
  96. package/dist/esm/src/neo4jConnection.js.map +1 -0
  97. package/dist/esm/src/queries/dataSummary.d.ts +7 -0
  98. package/dist/esm/src/queries/dataSummary.js +30 -0
  99. package/dist/esm/src/queries/dataSummary.js.map +1 -0
  100. package/dist/esm/src/queries/databases.d.ts +27 -0
  101. package/dist/esm/src/queries/databases.js +25 -0
  102. package/dist/esm/src/queries/databases.js.map +1 -0
  103. package/dist/esm/src/queries/functions.d.ts +16 -0
  104. package/dist/esm/src/queries/functions.js +81 -0
  105. package/dist/esm/src/queries/functions.js.map +1 -0
  106. package/dist/esm/src/queries/procedures.d.ts +16 -0
  107. package/dist/esm/src/queries/procedures.js +99 -0
  108. package/dist/esm/src/queries/procedures.js.map +1 -0
  109. package/dist/esm/src/queries/roles.d.ts +11 -0
  110. package/dist/esm/src/queries/roles.js +21 -0
  111. package/dist/esm/src/queries/roles.js.map +1 -0
  112. package/dist/esm/src/queries/users.d.ts +15 -0
  113. package/dist/esm/src/queries/users.js +21 -0
  114. package/dist/esm/src/queries/users.js.map +1 -0
  115. package/dist/esm/src/queries/version.d.ts +7 -0
  116. package/dist/esm/src/queries/version.js +23 -0
  117. package/dist/esm/src/queries/version.js.map +1 -0
  118. package/dist/esm/src/schemaPoller.d.ts +44 -0
  119. package/dist/esm/src/schemaPoller.js +160 -0
  120. package/dist/esm/src/schemaPoller.js.map +1 -0
  121. package/dist/esm/src/types/cypher-data-types.d.ts +41 -0
  122. package/dist/esm/src/types/cypher-data-types.js +39 -0
  123. package/dist/esm/src/types/cypher-data-types.js.map +1 -0
  124. package/dist/esm/src/types/sdkTypes.d.ts +17 -0
  125. package/dist/esm/src/types/sdkTypes.js +2 -0
  126. package/dist/esm/src/types/sdkTypes.js.map +1 -0
  127. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  128. package/package.json +41 -0
  129. package/src/connectionErrorHandler.ts +56 -0
  130. package/src/cypher-execution/query-result.ts +348 -0
  131. package/src/data-transforms/clean-type.ts +13 -0
  132. package/src/data-transforms/cypher-type-names.ts +146 -0
  133. package/src/data-transforms/format-float.ts +9 -0
  134. package/src/data-transforms/record-to-string.ts +248 -0
  135. package/src/data-types/cypher-data-types.ts +60 -0
  136. package/src/index.ts +21 -0
  137. package/src/metadataPoller.ts +261 -0
  138. package/src/neo4jConnection.ts +149 -0
  139. package/src/queries/dataSummary.ts +42 -0
  140. package/src/queries/databases.ts +63 -0
  141. package/src/queries/functions.ts +97 -0
  142. package/src/queries/procedures.ts +117 -0
  143. package/src/queries/roles.ts +30 -0
  144. package/src/queries/users.ts +35 -0
  145. package/src/queries/version.ts +28 -0
  146. package/src/schemaPoller.ts +301 -0
  147. package/src/types/cypher-data-types.ts +153 -0
  148. package/src/types/sdkTypes.ts +29 -0
  149. package/tsconfig.json +8 -0
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ESCAPE_CHAR = exports.RESERVED_TYPE_PROPERTY_NAME = void 0;
4
+ exports.addAnnotationProp = addAnnotationProp;
5
+ exports.deleteAnnotationProp = deleteAnnotationProp;
6
+ exports.serializeTypeAnnotations = serializeTypeAnnotations;
7
+ exports.deserializeTypeAnnotations = deserializeTypeAnnotations;
8
+ const neo4j_driver_1 = require("neo4j-driver");
9
+ exports.RESERVED_TYPE_PROPERTY_NAME = 'transport-class';
10
+ exports.ESCAPE_CHAR = '_';
11
+ function addAnnotationProp(obj,
12
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
13
+ type, prop = exports.RESERVED_TYPE_PROPERTY_NAME) {
14
+ // The shallow copy is needed because the object type returned by the driver is not extensible.
15
+ let objShallowCopy = Object.entries(obj).reduce((newObj, [key, value]) => {
16
+ newObj[key] = value;
17
+ return newObj;
18
+ }, {});
19
+ // Recursively escape the reserved property if it already exists.
20
+ if (Object.prototype.hasOwnProperty.call(objShallowCopy, prop)) {
21
+ objShallowCopy = addAnnotationProp(objShallowCopy, objShallowCopy[prop], exports.ESCAPE_CHAR + prop);
22
+ delete objShallowCopy[prop];
23
+ }
24
+ objShallowCopy[prop] = type;
25
+ return objShallowCopy;
26
+ }
27
+ function deleteAnnotationProp(obj) {
28
+ let escapedProp = exports.RESERVED_TYPE_PROPERTY_NAME;
29
+ while (Object.prototype.hasOwnProperty.call(obj, escapedProp)) {
30
+ // On the first loop since `escapedProp` is not actually escaped, this
31
+ // line does nothing. In the next loops we only want to replace the
32
+ // first instance of the escape char.
33
+ obj[escapedProp.replace(exports.ESCAPE_CHAR, '')] = obj[escapedProp];
34
+ delete obj[escapedProp];
35
+ escapedProp = exports.ESCAPE_CHAR + escapedProp;
36
+ }
37
+ }
38
+ function copyAndAnnotate(obj) {
39
+ return Object.keys(obj).reduce((newObj, key) => {
40
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
41
+ // @ts-ignore TypeScript complains about not being able to use `key` to
42
+ // index `obj`, but we know that `key` exists in `obj` since it's coming
43
+ // from Object.keys.
44
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
45
+ const value = obj[key];
46
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
47
+ newObj[key] = serializeTypeAnnotations(value);
48
+ return newObj;
49
+ }, {});
50
+ }
51
+ function serializeTypeAnnotations(item) {
52
+ if (Array.isArray(item)) {
53
+ return item.map((i) => serializeTypeAnnotations(i));
54
+ }
55
+ if (item === null || item === undefined) {
56
+ return item;
57
+ }
58
+ if (item instanceof neo4j_driver_1.types.Record) {
59
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
60
+ // @ts-ignore There are two versions of the type for Record coming from the
61
+ // driver.
62
+ const tmp = copyAndAnnotate(item);
63
+ return addAnnotationProp(tmp, 'Record');
64
+ }
65
+ if (item instanceof neo4j_driver_1.types.ResultSummary) {
66
+ const tmp = copyAndAnnotate(item);
67
+ return addAnnotationProp(tmp, 'ResultSummary');
68
+ }
69
+ if (item instanceof neo4j_driver_1.types.Node) {
70
+ const tmp = copyAndAnnotate(item);
71
+ return addAnnotationProp(tmp, 'Node');
72
+ }
73
+ if (item instanceof neo4j_driver_1.types.PathSegment) {
74
+ const tmp = copyAndAnnotate(item);
75
+ return addAnnotationProp(tmp, 'PathSegment');
76
+ }
77
+ if (item instanceof neo4j_driver_1.types.Path) {
78
+ const tmp = copyAndAnnotate(item);
79
+ return addAnnotationProp(tmp, 'Path');
80
+ }
81
+ if (item instanceof neo4j_driver_1.types.Relationship) {
82
+ const tmp = copyAndAnnotate(item);
83
+ return addAnnotationProp(tmp, 'Relationship');
84
+ }
85
+ if (item instanceof neo4j_driver_1.types.Point) {
86
+ const tmp = copyAndAnnotate(item);
87
+ return addAnnotationProp(tmp, 'Point');
88
+ }
89
+ if (item instanceof neo4j_driver_1.types.Date) {
90
+ const tmp = copyAndAnnotate(item);
91
+ return addAnnotationProp(tmp, 'Date');
92
+ }
93
+ if (item instanceof neo4j_driver_1.types.DateTime) {
94
+ const tmp = copyAndAnnotate(item);
95
+ return addAnnotationProp(tmp, 'DateTime');
96
+ }
97
+ if (item instanceof neo4j_driver_1.types.Duration) {
98
+ const tmp = copyAndAnnotate(item);
99
+ return addAnnotationProp(tmp, 'Duration');
100
+ }
101
+ if (item instanceof neo4j_driver_1.types.LocalDateTime) {
102
+ const tmp = copyAndAnnotate(item);
103
+ return addAnnotationProp(tmp, 'LocalDateTime');
104
+ }
105
+ if (item instanceof neo4j_driver_1.types.LocalTime) {
106
+ const tmp = copyAndAnnotate(item);
107
+ return addAnnotationProp(tmp, 'LocalTime');
108
+ }
109
+ if (item instanceof neo4j_driver_1.types.Time) {
110
+ const tmp = copyAndAnnotate(item);
111
+ return addAnnotationProp(tmp, 'Time');
112
+ }
113
+ if ((0, neo4j_driver_1.isInt)(item)) {
114
+ const tmp = { ...item };
115
+ return addAnnotationProp(tmp, 'Integer');
116
+ }
117
+ if (typeof item === 'object') {
118
+ const tmp = copyAndAnnotate(item);
119
+ return addAnnotationProp(tmp, 'Object');
120
+ }
121
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
122
+ // @ts-ignore this type isn't inferred correctly
123
+ return item;
124
+ }
125
+ function deserializeTypeAnnotations(rawItem) {
126
+ if (Array.isArray(rawItem)) {
127
+ const mapped = rawItem.map((i) => deserializeTypeAnnotations(i));
128
+ return mapped;
129
+ }
130
+ if (rawItem === null ||
131
+ rawItem === undefined ||
132
+ typeof rawItem === 'boolean' ||
133
+ typeof rawItem === 'string' ||
134
+ !Object.prototype.hasOwnProperty.call(rawItem, exports.RESERVED_TYPE_PROPERTY_NAME)) {
135
+ return rawItem;
136
+ }
137
+ const item = { ...rawItem };
138
+ const className = item[exports.RESERVED_TYPE_PROPERTY_NAME];
139
+ deleteAnnotationProp(item);
140
+ switch (className) {
141
+ case 'Record':
142
+ return new neo4j_driver_1.types.Record(deserializeTypeAnnotations(item.keys), deserializeTypeAnnotations(item._fields), deserializeTypeAnnotations(item._fieldLookup));
143
+ case 'ResultSummary': {
144
+ const metadata = {
145
+ ...item,
146
+ type: item.queryType,
147
+ db: item.database.name,
148
+ result_available_after: deserializeTypeAnnotations(item.resultAvailableAfter),
149
+ result_consumed_after: deserializeTypeAnnotations(item.resultConsumedAfter),
150
+ profile: item.profile === false ? null : item.profile,
151
+ plan: item.plan === false ? null : item.plan,
152
+ stream_summary: { have_records_streamed: true },
153
+ server: {
154
+ ...item.server,
155
+ version: item.server.agent,
156
+ },
157
+ };
158
+ return new neo4j_driver_1.types.ResultSummary(deserializeTypeAnnotations(item.query.text), deserializeTypeAnnotations(item.query.parameters), deserializeTypeAnnotations(metadata), deserializeTypeAnnotations(item.server.protocolVersion));
159
+ }
160
+ case 'Node':
161
+ return new neo4j_driver_1.types.Node(deserializeTypeAnnotations(item.identity), item.labels, deserializeTypeAnnotations(item.properties), item.elementId);
162
+ case 'Relationship':
163
+ return new neo4j_driver_1.types.Relationship(deserializeTypeAnnotations(item.identity), deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.end), item.type, deserializeTypeAnnotations(item.properties), item.elementId, item.startNodeElementId, item.endNodeElementId);
164
+ case 'PathSegment':
165
+ return new neo4j_driver_1.types.PathSegment(deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.relationship), deserializeTypeAnnotations(item.end));
166
+ case 'Path': {
167
+ const { segments } = item;
168
+ return new neo4j_driver_1.types.Path(deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.end), (Array.isArray(segments) ? segments : []).map((x) => deserializeTypeAnnotations(x)));
169
+ }
170
+ case 'Point':
171
+ return new neo4j_driver_1.types.Point(deserializeTypeAnnotations(item.srid), deserializeTypeAnnotations(item.x), deserializeTypeAnnotations(item.y), deserializeTypeAnnotations(item.z));
172
+ case 'Date':
173
+ return new neo4j_driver_1.types.Date(deserializeTypeAnnotations(item.year), deserializeTypeAnnotations(item.month), deserializeTypeAnnotations(item.day));
174
+ case 'DateTime':
175
+ return new neo4j_driver_1.types.DateTime(deserializeTypeAnnotations(item.year), deserializeTypeAnnotations(item.month), deserializeTypeAnnotations(item.day), deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond), deserializeTypeAnnotations(item.timeZoneOffsetSeconds), deserializeTypeAnnotations(item.timeZoneId));
176
+ case 'Duration':
177
+ return new neo4j_driver_1.types.Duration(deserializeTypeAnnotations(item.months), deserializeTypeAnnotations(item.days), deserializeTypeAnnotations(item.seconds), deserializeTypeAnnotations(item.nanoseconds));
178
+ case 'LocalDateTime':
179
+ return new neo4j_driver_1.types.LocalDateTime(deserializeTypeAnnotations(item.year), deserializeTypeAnnotations(item.month), deserializeTypeAnnotations(item.day), deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond));
180
+ case 'LocalTime':
181
+ return new neo4j_driver_1.types.LocalTime(deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond));
182
+ case 'Time':
183
+ return new neo4j_driver_1.types.Time(deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond), deserializeTypeAnnotations(item.timeZoneOffsetSeconds));
184
+ case 'Integer':
185
+ return (0, neo4j_driver_1.int)(item);
186
+ case 'Object':
187
+ return Object.keys(item).reduce((newObj, key) => {
188
+ newObj[key] = deserializeTypeAnnotations(item[key]);
189
+ return newObj;
190
+ }, {});
191
+ default:
192
+ return item;
193
+ }
194
+ }
195
+ //# sourceMappingURL=query-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-result.js","sourceRoot":"","sources":["../../../../src/cypher-execution/query-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function cleanType(type: string): string;
2
+ export declare function cleanTypeDescription<T extends {
3
+ type: string;
4
+ }>(arg: T): T & {
5
+ type: string;
6
+ };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanType = cleanType;
4
+ exports.cleanTypeDescription = cleanTypeDescription;
5
+ function cleanType(type) {
6
+ let resultType = type;
7
+ if (resultType.startsWith('LIST? OF ')) {
8
+ resultType = resultType.replace('LIST? OF ', 'LIST<');
9
+ resultType += '>';
10
+ }
11
+ return resultType.replace(/\?/g, '');
12
+ }
13
+ function cleanTypeDescription(arg) {
14
+ return { ...arg, type: cleanType(arg.type) };
15
+ }
16
+ //# sourceMappingURL=clean-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean-type.js","sourceRoot":"","sources":["../../../../src/data-transforms/clean-type.ts"],"names":[],"mappings":";;AAAA,8BAQC;AAED,oDAEC;AAZD,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,UAAU,GAAG,IAAI,CAAC;IAEtB,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,UAAU,IAAI,GAAG,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,oBAAoB,CAA6B,GAAM;IACrE,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { CypherDataType, CypherProperty } from '../types/cypher-data-types';
2
+ type CypherPropertyName = 'Float' | 'null' | 'String' | 'Bigint' | 'Boolean' | `List${string}` | 'LocalTime' | 'Time' | 'Date' | 'LocalDateTime' | 'DateTime' | 'Integer' | 'Duration' | 'Point' | 'ByteArray' | 'Unknown';
3
+ export declare const getPropertyTypeDisplayName: (val?: CypherProperty) => CypherPropertyName;
4
+ export type CypherDataTypeName = CypherPropertyName | 'Node' | 'Relationship' | 'Path' | 'Map';
5
+ export declare function getCypherTypeName(val?: CypherDataType): CypherDataTypeName;
6
+ export {};
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPropertyTypeDisplayName = void 0;
4
+ exports.getCypherTypeName = getCypherTypeName;
5
+ const neo4j_driver_1 = require("neo4j-driver");
6
+ const cypher_data_types_1 = require("../types/cypher-data-types");
7
+ const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
8
+ const getPropertyTypeDisplayName = (val) => {
9
+ const jsType = typeof val;
10
+ if (jsType === 'number') {
11
+ return 'Float';
12
+ }
13
+ if (val === null || val === undefined) {
14
+ /* There's no concept of undefined in cypher, null serves both purposes */
15
+ return 'null';
16
+ }
17
+ // Need to duplicate this `typeof` for typescripts type inference to understand
18
+ if (typeof val !== 'object') {
19
+ const capitalized = capitalize(jsType);
20
+ switch (capitalized) {
21
+ case 'String':
22
+ case 'Bigint':
23
+ case 'Boolean':
24
+ return capitalized;
25
+ default:
26
+ return 'Unknown';
27
+ }
28
+ }
29
+ if (val instanceof Array) {
30
+ const [firstVal] = val;
31
+ if (firstVal !== undefined) {
32
+ // Lists in properties are only allowed to contain a single type so all items are the same type
33
+ return `List<${(0, exports.getPropertyTypeDisplayName)(firstVal)}>(${val.length})`;
34
+ }
35
+ return `List(${val.length})`;
36
+ }
37
+ if ((0, neo4j_driver_1.isLocalTime)(val)) {
38
+ return 'LocalTime';
39
+ }
40
+ if ((0, neo4j_driver_1.isTime)(val)) {
41
+ return 'Time';
42
+ }
43
+ if ((0, neo4j_driver_1.isDate)(val)) {
44
+ return 'Date';
45
+ }
46
+ if ((0, neo4j_driver_1.isLocalDateTime)(val)) {
47
+ return 'LocalDateTime';
48
+ }
49
+ if ((0, neo4j_driver_1.isDateTime)(val)) {
50
+ return 'DateTime';
51
+ }
52
+ if ((0, neo4j_driver_1.isInt)(val)) {
53
+ return 'Integer';
54
+ }
55
+ if ((0, neo4j_driver_1.isDuration)(val)) {
56
+ return 'Duration';
57
+ }
58
+ if ((0, neo4j_driver_1.isPoint)(val)) {
59
+ return 'Point';
60
+ }
61
+ if ((0, cypher_data_types_1.isInt8Array)(val)) {
62
+ return 'ByteArray';
63
+ }
64
+ return 'Unknown';
65
+ };
66
+ exports.getPropertyTypeDisplayName = getPropertyTypeDisplayName;
67
+ function getCypherTypeName(val) {
68
+ if (Array.isArray(val)) {
69
+ return 'List';
70
+ }
71
+ if ((0, cypher_data_types_1.isCypherBasicPropertyType)(val)) {
72
+ return (0, exports.getPropertyTypeDisplayName)(val);
73
+ }
74
+ if ((0, neo4j_driver_1.isNode)(val)) {
75
+ return 'Node';
76
+ }
77
+ if ((0, neo4j_driver_1.isRelationship)(val)) {
78
+ return 'Relationship';
79
+ }
80
+ if ((0, neo4j_driver_1.isPath)(val)) {
81
+ return 'Path';
82
+ }
83
+ return 'Map';
84
+ }
85
+ //# sourceMappingURL=cypher-type-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cypher-type-names.js","sourceRoot":"","sources":["../../../../src/data-transforms/cypher-type-names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const formatFloat: (anything: number) => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatFloat = void 0;
4
+ const formatFloat = (anything) => {
5
+ if ([Infinity, -Infinity, NaN].includes(anything)) {
6
+ return `${anything}`;
7
+ }
8
+ if (Math.floor(anything) === anything) {
9
+ return `${anything}.0`;
10
+ }
11
+ return anything.toString();
12
+ };
13
+ exports.formatFloat = formatFloat;
14
+ //# sourceMappingURL=format-float.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-float.js","sourceRoot":"","sources":["../../../../src/data-transforms/format-float.ts"],"names":[],"mappings":";;;AAAO,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClD,OAAO,GAAG,QAAQ,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,GAAG,QAAQ,IAAI,CAAC;IACzB,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC7B,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB"}
@@ -0,0 +1,5 @@
1
+ import type { CypherDataType, CypherProperty } from '../types/cypher-data-types';
2
+ export declare function propertyToString(property: CypherProperty, quoteStrings?: boolean): string;
3
+ export type CypherStringStyle = 'cypher' | 'cypher-with-ids';
4
+ export type StringStyle = 'json' | CypherStringStyle;
5
+ export declare const cypherDataToString: (map: CypherDataType, stringStyle?: StringStyle, quoteStrings?: boolean) => string;
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cypherDataToString = void 0;
4
+ exports.propertyToString = propertyToString;
5
+ const neo4j_driver_1 = require("neo4j-driver");
6
+ const cypher_data_types_1 = require("../types/cypher-data-types");
7
+ const format_float_1 = require("./format-float");
8
+ const spacialFormat = (p) => {
9
+ const zString = p.z !== undefined ? `, z:${p.z}` : '';
10
+ return `point({srid:${p.srid.toString()}, x:${p.x}, y:${p.y}${zString}})`;
11
+ };
12
+ function propertyToString(property, quoteStrings = true) {
13
+ if (Array.isArray(property)) {
14
+ return `[${property
15
+ .map((p) => propertyToString(p, quoteStrings))
16
+ .join(', ')}]`;
17
+ }
18
+ if (property === null) {
19
+ return 'null';
20
+ }
21
+ if (typeof property === 'boolean') {
22
+ return property.toString();
23
+ }
24
+ if ((0, neo4j_driver_1.isInt)(property)) {
25
+ return property.toString();
26
+ }
27
+ if (typeof property === 'bigint') {
28
+ return property.toString();
29
+ }
30
+ if (typeof property === 'number') {
31
+ return (0, format_float_1.formatFloat)(property);
32
+ }
33
+ if (typeof property === 'string') {
34
+ if (quoteStrings) {
35
+ return `"${property}"`;
36
+ }
37
+ return property;
38
+ }
39
+ if ((0, cypher_data_types_1.isInt8Array)(property)) {
40
+ return 'ByteArray';
41
+ }
42
+ if ((0, cypher_data_types_1.isCypherTemporalType)(property)) {
43
+ return property.toString();
44
+ }
45
+ if ((0, neo4j_driver_1.isPoint)(property)) {
46
+ return spacialFormat(property);
47
+ }
48
+ // This case shouldn't be used, but added as a fallback
49
+ return String(property);
50
+ }
51
+ const cypherShellStyleStringify = (value, { stringStyle, quoteStrings = true, }) => {
52
+ const includeIds = stringStyle === 'cypher-with-ids';
53
+ if ((0, neo4j_driver_1.isNode)(value)) {
54
+ const labels = value.labels.length > 0 ? `:${value.labels.join(':')}` : '';
55
+ const properties = Object.entries(value.properties)
56
+ .map(([key, val]) => {
57
+ return `${key}: ${propertyToString(val, quoteStrings)}`;
58
+ })
59
+ .concat(includeIds
60
+ ? [
61
+ `<elementId>: "${value.elementId.toString()}", <id>: ${value.identity.toString()}`,
62
+ ]
63
+ : [])
64
+ .join(', ');
65
+ const propertiesString = properties.length > 0 ? `{${properties}}` : '';
66
+ const space = labels.length > 0 && propertiesString.length > 0 ? ' ' : '';
67
+ return `(${labels}${space}${propertiesString})`;
68
+ }
69
+ else if ((0, neo4j_driver_1.isRelationship)(value)) {
70
+ const type = value.type ? `:${value.type}` : '';
71
+ const properties = Object.entries(value.properties)
72
+ .map(([key, val]) => {
73
+ return `${key}: ${propertyToString(val, quoteStrings)}`;
74
+ })
75
+ .concat(includeIds
76
+ ? [
77
+ `<elementId>: ${quoteStrings
78
+ ? `"${value.elementId.toString()}"`
79
+ : value.elementId.toString()}, <id>: ${value.identity.toString()}`,
80
+ ]
81
+ : [])
82
+ .join(', ');
83
+ const propertiesString = properties.length > 0 ? ` {${properties}}` : '';
84
+ return `[${type}${propertiesString}]`;
85
+ }
86
+ else if ((0, neo4j_driver_1.isPath)(value)) {
87
+ if (value.segments.length === 0) {
88
+ return cypherShellStyleStringify(value.start, {
89
+ stringStyle,
90
+ quoteStrings,
91
+ });
92
+ }
93
+ return value.segments
94
+ .map((segment, index) => {
95
+ const result = [];
96
+ if (index === 0) {
97
+ result.push(cypherShellStyleStringify(segment.start, {
98
+ stringStyle,
99
+ quoteStrings,
100
+ }));
101
+ }
102
+ if (segment.start.elementId === segment.relationship.startNodeElementId) {
103
+ result.push('-');
104
+ result.push(cypherShellStyleStringify(segment.relationship, {
105
+ stringStyle,
106
+ quoteStrings,
107
+ }));
108
+ result.push('->');
109
+ result.push(cypherShellStyleStringify(segment.end, {
110
+ stringStyle,
111
+ quoteStrings,
112
+ }));
113
+ }
114
+ else {
115
+ result.push('<-');
116
+ result.push(cypherShellStyleStringify(segment.relationship, {
117
+ stringStyle,
118
+ quoteStrings,
119
+ }));
120
+ result.push('-');
121
+ result.push(cypherShellStyleStringify(segment.end, {
122
+ stringStyle,
123
+ quoteStrings,
124
+ }));
125
+ }
126
+ return result.join('');
127
+ })
128
+ .join('');
129
+ }
130
+ return '';
131
+ };
132
+ const recursiveStringify = (value, { indentationLevel = 0, quoteStrings = true, stringStyle = 'json', } = {}) => {
133
+ const indentation = ' '.repeat(indentationLevel);
134
+ const nextIndentationLevel = indentationLevel + 1;
135
+ const nextIdentation = ' '.repeat(nextIndentationLevel);
136
+ if ((0, cypher_data_types_1.isCypherPropertyType)(value)) {
137
+ return propertyToString(value, quoteStrings);
138
+ }
139
+ if (Array.isArray(value)) {
140
+ return `[
141
+ ${value
142
+ .map((v) => `${nextIdentation}${recursiveStringify(v, {
143
+ indentationLevel: nextIndentationLevel,
144
+ quoteStrings,
145
+ })}`)
146
+ .join(',\n')}\n${indentation}]`;
147
+ }
148
+ // Now we have nodes, relationships, paths and cypher maps left.
149
+ // No special care for them stringify them as we would normal objects
150
+ // unless we are in cypher-shell style
151
+ if (stringStyle !== 'json' &&
152
+ ((0, neo4j_driver_1.isNode)(value) || (0, neo4j_driver_1.isRelationship)(value) || (0, neo4j_driver_1.isPath)(value))) {
153
+ return cypherShellStyleStringify(value, { stringStyle, quoteStrings });
154
+ }
155
+ const entries = Object.entries(value);
156
+ if (entries.length === 0) {
157
+ return '{}';
158
+ }
159
+ return `{
160
+ ${entries
161
+ .map(([key, val]) => {
162
+ return `${nextIdentation}${key}: ${recursiveStringify(val, {
163
+ indentationLevel: nextIndentationLevel,
164
+ quoteStrings,
165
+ })}`;
166
+ })
167
+ .join(',\n')}
168
+ ${indentation}}`;
169
+ };
170
+ const cypherDataToString = (map, stringStyle = 'json', quoteStrings = true) => {
171
+ return recursiveStringify(map, { quoteStrings, stringStyle });
172
+ };
173
+ exports.cypherDataToString = cypherDataToString;
174
+ //# sourceMappingURL=record-to-string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-to-string.js","sourceRoot":"","sources":["../../../../src/data-transforms/record-to-string.ts"],"names":[],"mappings":";;;AAmBA,4CA8CC;AAhED,+CAA8E;AAM9E,kEAIoC;AACpC,iDAA6C;AAE7C,MAAM,aAAa,GAAG,CAAC,CAAQ,EAAU,EAAE;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,OAAO,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC;AAC5E,CAAC,CAAC;AAEF,SAAgB,gBAAgB,CAC9B,QAAwB,EACxB,YAAY,GAAG,IAAI;IAEnB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,QAAQ;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;aAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,IAAA,oBAAK,EAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAA,0BAAW,EAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,QAAQ,GAAG,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,IAAA,+BAAW,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,IAAA,wCAAoB,EAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,IAAA,sBAAO,EAAC,QAAQ,CAAC,EAAE,CAAC;QACtB,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,uDAAuD;IACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,yBAAyB,GAAG,CAChC,KAAiC,EACjC,EACE,WAAW,EACX,YAAY,GAAG,IAAI,GACuC,EACpD,EAAE;IACV,MAAM,UAAU,GAAG,WAAW,KAAK,iBAAiB,CAAC;IACrD,IAAI,IAAA,qBAAM,EAAC,KAAK,CAAC,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAA2B,EAAE,EAAE;YAC5C,OAAO,GAAG,GAAG,KAAK,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC;aACD,MAAM,CACL,UAAU;YACR,CAAC,CAAC;gBACE,iBAAiB,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;aACnF;YACH,CAAC,CAAC,EAAE,CACP;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,OAAO,IAAI,MAAM,GAAG,KAAK,GAAG,gBAAgB,GAAG,CAAC;IAClD,CAAC;SAAM,IAAI,IAAA,6BAAc,EAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEhD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAA2B,EAAE,EAAE;YAC5C,OAAO,GAAG,GAAG,KAAK,gBAAgB,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC;aACD,MAAM,CACL,UAAU;YACR,CAAC,CAAC;gBACE,gBACE,YAAY;oBACV,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG;oBACnC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAC9B,WAAW,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;aACvC;YACH,CAAC,CAAC,EAAE,CACP;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzE,OAAO,IAAI,IAAI,GAAG,gBAAgB,GAAG,CAAC;IACxC,CAAC;SAAM,IAAI,IAAA,qBAAM,EAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,yBAAyB,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC5C,WAAW;gBACX,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ;aAClB,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,EAAE,CAAC;YAElB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE;oBACvC,WAAW;oBACX,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;YAED,IACE,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,YAAY,CAAC,kBAAkB,EACnE,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC9C,WAAW;oBACX,YAAY;iBACb,CAAC,CACH,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,CAAC,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE;oBACrC,WAAW;oBACX,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM,CAAC,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC9C,WAAW;oBACX,YAAY;iBACb,CAAC,CACH,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,MAAM,CAAC,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE;oBACrC,WAAW;oBACX,YAAY;iBACb,CAAC,CACH,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AASF,MAAM,kBAAkB,GAAG,CACzB,KAAqB,EACrB,EACE,gBAAgB,GAAG,CAAC,EACpB,YAAY,GAAG,IAAI,EACnB,WAAW,GAAG,MAAM,MACS,EAAE,EACzB,EAAE;IACV,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAElD,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEzD,IAAI,IAAA,wCAAoB,EAAC,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;EACT,KAAK;aACJ,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,cAAc,GAAG,kBAAkB,CAAC,CAAC,EAAE;YACxC,gBAAgB,EAAE,oBAAoB;YACtC,YAAY;SACb,CAAC,EAAE,CACP;aACA,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,GAAG,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,qEAAqE;IACrE,sCAAsC;IACtC,IACE,WAAW,KAAK,MAAM;QACtB,CAAC,IAAA,qBAAM,EAAC,KAAK,CAAC,IAAI,IAAA,6BAAc,EAAC,KAAK,CAAC,IAAI,IAAA,qBAAM,EAAC,KAAK,CAAC,CAAC,EACzD,CAAC;QACD,OAAO,yBAAyB,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;EACP,OAAO;SACN,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAA2B,EAAE,EAAE;QAC5C,OAAO,GAAG,cAAc,GAAG,GAAG,KAAK,kBAAkB,CAAC,GAAG,EAAE;YACzD,gBAAgB,EAAE,oBAAoB;YACtC,YAAY;SACb,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;SACD,IAAI,CAAC,KAAK,CAAC;EACZ,WAAW,GAAG,CAAC;AACjB,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAChC,GAAmB,EACnB,cAA2B,MAAM,EACjC,YAAY,GAAG,IAAI,EACX,EAAE;IACV,OAAO,kBAAkB,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC;AANW,QAAA,kBAAkB,sBAM7B"}
@@ -0,0 +1,29 @@
1
+ import type { Date, DateTime, Duration, Integer, LocalDateTime, LocalTime, Point, Time } from 'neo4j-driver';
2
+ /**
3
+ The neo4j driver type mapping - https://neo4j.com/docs/javascript-manual/current/cypher-workflow/#js-driver-type-mapping
4
+
5
+ Star denotes custom driver class.
6
+
7
+ Cypher(neo4j) - Driver type(js)
8
+ null - null
9
+ List - array
10
+ Map - Object
11
+ Boolean - boolean
12
+ Integer - Integer*
13
+ Float - number
14
+ String - string
15
+ ByteArray - Int8Array
16
+ Date - Date*
17
+ Time - Time*
18
+ LocalTime - LocalTime*
19
+ DateTime - DateTime*
20
+ LocalDateTime - LocalDateTime*
21
+ Duration - Duration*
22
+ Point - Point*
23
+ Node - Node*
24
+ Relationship - Relationship*
25
+ Path - Path*
26
+ */
27
+ export type CypherBasicPropertyType = null | boolean | number | string | Integer | bigint | Int8Array | CypherTemporalType | Point;
28
+ export type CypherTemporalType = Date | Time | DateTime | LocalTime | LocalDateTime | Duration;
29
+ export type CypherProperty = CypherBasicPropertyType | CypherBasicPropertyType[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cypher-data-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cypher-data-types.js","sourceRoot":"","sources":["../../../../src/data-types/cypher-data-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export { FRIENDLY_ERROR_MESSAGES } from './connectionErrorHandler';
2
+ export type { ConnectionError } from './connectionErrorHandler';
3
+ export { deserializeTypeAnnotations, serializeTypeAnnotations, } from './cypher-execution/query-result';
4
+ export type { Neo4jType } from './cypher-execution/query-result';
5
+ export { getCypherTypeName } from './data-transforms/cypher-type-names';
6
+ export type { CypherDataTypeName } from './data-transforms/cypher-type-names';
7
+ export { cypherDataToString } from './data-transforms/record-to-string';
8
+ export type { CypherProperty } from './data-types/cypher-data-types';
9
+ export type { ConnectedMetadataPoller as CypherMetadataPoller, DisconnectedMetadataPoller as EmptyMetadataPoller, MetadataPoller, } from './metadataPoller';
10
+ export type { Neo4jConnection, QueryResultWithLimit } from './neo4jConnection';
11
+ export type { Database } from './queries/databases';
12
+ export { Neo4jSchemaPoller } from './schemaPoller';
13
+ export type { ConnnectionResult } from './schemaPoller';
14
+ export type { CypherDataType } from './types/cypher-data-types';
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Neo4jSchemaPoller = exports.cypherDataToString = exports.getCypherTypeName = exports.serializeTypeAnnotations = exports.deserializeTypeAnnotations = exports.FRIENDLY_ERROR_MESSAGES = void 0;
4
+ var connectionErrorHandler_1 = require("./connectionErrorHandler");
5
+ Object.defineProperty(exports, "FRIENDLY_ERROR_MESSAGES", { enumerable: true, get: function () { return connectionErrorHandler_1.FRIENDLY_ERROR_MESSAGES; } });
6
+ var query_result_1 = require("./cypher-execution/query-result");
7
+ Object.defineProperty(exports, "deserializeTypeAnnotations", { enumerable: true, get: function () { return query_result_1.deserializeTypeAnnotations; } });
8
+ Object.defineProperty(exports, "serializeTypeAnnotations", { enumerable: true, get: function () { return query_result_1.serializeTypeAnnotations; } });
9
+ var cypher_type_names_1 = require("./data-transforms/cypher-type-names");
10
+ Object.defineProperty(exports, "getCypherTypeName", { enumerable: true, get: function () { return cypher_type_names_1.getCypherTypeName; } });
11
+ var record_to_string_1 = require("./data-transforms/record-to-string");
12
+ Object.defineProperty(exports, "cypherDataToString", { enumerable: true, get: function () { return record_to_string_1.cypherDataToString; } });
13
+ var schemaPoller_1 = require("./schemaPoller");
14
+ Object.defineProperty(exports, "Neo4jSchemaPoller", { enumerable: true, get: function () { return schemaPoller_1.Neo4jSchemaPoller; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAAmE;AAA1D,iIAAA,uBAAuB,OAAA;AAEhC,gEAGyC;AAFvC,0HAAA,0BAA0B,OAAA;AAC1B,wHAAA,wBAAwB,OAAA;AAG1B,yEAAwE;AAA/D,sHAAA,iBAAiB,OAAA;AAE1B,uEAAwE;AAA/D,sHAAA,kBAAkB,OAAA;AAS3B,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA"}