@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,188 @@
1
+ import { int, isInt, types } from 'neo4j-driver';
2
+ export const RESERVED_TYPE_PROPERTY_NAME = 'transport-class';
3
+ export const ESCAPE_CHAR = '_';
4
+ export function addAnnotationProp(obj,
5
+ // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
6
+ type, prop = RESERVED_TYPE_PROPERTY_NAME) {
7
+ // The shallow copy is needed because the object type returned by the driver is not extensible.
8
+ let objShallowCopy = Object.entries(obj).reduce((newObj, [key, value]) => {
9
+ newObj[key] = value;
10
+ return newObj;
11
+ }, {});
12
+ // Recursively escape the reserved property if it already exists.
13
+ if (Object.prototype.hasOwnProperty.call(objShallowCopy, prop)) {
14
+ objShallowCopy = addAnnotationProp(objShallowCopy, objShallowCopy[prop], ESCAPE_CHAR + prop);
15
+ delete objShallowCopy[prop];
16
+ }
17
+ objShallowCopy[prop] = type;
18
+ return objShallowCopy;
19
+ }
20
+ export function deleteAnnotationProp(obj) {
21
+ let escapedProp = RESERVED_TYPE_PROPERTY_NAME;
22
+ while (Object.prototype.hasOwnProperty.call(obj, escapedProp)) {
23
+ // On the first loop since `escapedProp` is not actually escaped, this
24
+ // line does nothing. In the next loops we only want to replace the
25
+ // first instance of the escape char.
26
+ obj[escapedProp.replace(ESCAPE_CHAR, '')] = obj[escapedProp];
27
+ delete obj[escapedProp];
28
+ escapedProp = ESCAPE_CHAR + escapedProp;
29
+ }
30
+ }
31
+ function copyAndAnnotate(obj) {
32
+ return Object.keys(obj).reduce((newObj, key) => {
33
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
34
+ // @ts-ignore TypeScript complains about not being able to use `key` to
35
+ // index `obj`, but we know that `key` exists in `obj` since it's coming
36
+ // from Object.keys.
37
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
38
+ const value = obj[key];
39
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
40
+ newObj[key] = serializeTypeAnnotations(value);
41
+ return newObj;
42
+ }, {});
43
+ }
44
+ export function serializeTypeAnnotations(item) {
45
+ if (Array.isArray(item)) {
46
+ return item.map((i) => serializeTypeAnnotations(i));
47
+ }
48
+ if (item === null || item === undefined) {
49
+ return item;
50
+ }
51
+ if (item instanceof types.Record) {
52
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
53
+ // @ts-ignore There are two versions of the type for Record coming from the
54
+ // driver.
55
+ const tmp = copyAndAnnotate(item);
56
+ return addAnnotationProp(tmp, 'Record');
57
+ }
58
+ if (item instanceof types.ResultSummary) {
59
+ const tmp = copyAndAnnotate(item);
60
+ return addAnnotationProp(tmp, 'ResultSummary');
61
+ }
62
+ if (item instanceof types.Node) {
63
+ const tmp = copyAndAnnotate(item);
64
+ return addAnnotationProp(tmp, 'Node');
65
+ }
66
+ if (item instanceof types.PathSegment) {
67
+ const tmp = copyAndAnnotate(item);
68
+ return addAnnotationProp(tmp, 'PathSegment');
69
+ }
70
+ if (item instanceof types.Path) {
71
+ const tmp = copyAndAnnotate(item);
72
+ return addAnnotationProp(tmp, 'Path');
73
+ }
74
+ if (item instanceof types.Relationship) {
75
+ const tmp = copyAndAnnotate(item);
76
+ return addAnnotationProp(tmp, 'Relationship');
77
+ }
78
+ if (item instanceof types.Point) {
79
+ const tmp = copyAndAnnotate(item);
80
+ return addAnnotationProp(tmp, 'Point');
81
+ }
82
+ if (item instanceof types.Date) {
83
+ const tmp = copyAndAnnotate(item);
84
+ return addAnnotationProp(tmp, 'Date');
85
+ }
86
+ if (item instanceof types.DateTime) {
87
+ const tmp = copyAndAnnotate(item);
88
+ return addAnnotationProp(tmp, 'DateTime');
89
+ }
90
+ if (item instanceof types.Duration) {
91
+ const tmp = copyAndAnnotate(item);
92
+ return addAnnotationProp(tmp, 'Duration');
93
+ }
94
+ if (item instanceof types.LocalDateTime) {
95
+ const tmp = copyAndAnnotate(item);
96
+ return addAnnotationProp(tmp, 'LocalDateTime');
97
+ }
98
+ if (item instanceof types.LocalTime) {
99
+ const tmp = copyAndAnnotate(item);
100
+ return addAnnotationProp(tmp, 'LocalTime');
101
+ }
102
+ if (item instanceof types.Time) {
103
+ const tmp = copyAndAnnotate(item);
104
+ return addAnnotationProp(tmp, 'Time');
105
+ }
106
+ if (isInt(item)) {
107
+ const tmp = { ...item };
108
+ return addAnnotationProp(tmp, 'Integer');
109
+ }
110
+ if (typeof item === 'object') {
111
+ const tmp = copyAndAnnotate(item);
112
+ return addAnnotationProp(tmp, 'Object');
113
+ }
114
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
115
+ // @ts-ignore this type isn't inferred correctly
116
+ return item;
117
+ }
118
+ export function deserializeTypeAnnotations(rawItem) {
119
+ if (Array.isArray(rawItem)) {
120
+ const mapped = rawItem.map((i) => deserializeTypeAnnotations(i));
121
+ return mapped;
122
+ }
123
+ if (rawItem === null ||
124
+ rawItem === undefined ||
125
+ typeof rawItem === 'boolean' ||
126
+ typeof rawItem === 'string' ||
127
+ !Object.prototype.hasOwnProperty.call(rawItem, RESERVED_TYPE_PROPERTY_NAME)) {
128
+ return rawItem;
129
+ }
130
+ const item = { ...rawItem };
131
+ const className = item[RESERVED_TYPE_PROPERTY_NAME];
132
+ deleteAnnotationProp(item);
133
+ switch (className) {
134
+ case 'Record':
135
+ return new types.Record(deserializeTypeAnnotations(item.keys), deserializeTypeAnnotations(item._fields), deserializeTypeAnnotations(item._fieldLookup));
136
+ case 'ResultSummary': {
137
+ const metadata = {
138
+ ...item,
139
+ type: item.queryType,
140
+ db: item.database.name,
141
+ result_available_after: deserializeTypeAnnotations(item.resultAvailableAfter),
142
+ result_consumed_after: deserializeTypeAnnotations(item.resultConsumedAfter),
143
+ profile: item.profile === false ? null : item.profile,
144
+ plan: item.plan === false ? null : item.plan,
145
+ stream_summary: { have_records_streamed: true },
146
+ server: {
147
+ ...item.server,
148
+ version: item.server.agent,
149
+ },
150
+ };
151
+ return new types.ResultSummary(deserializeTypeAnnotations(item.query.text), deserializeTypeAnnotations(item.query.parameters), deserializeTypeAnnotations(metadata), deserializeTypeAnnotations(item.server.protocolVersion));
152
+ }
153
+ case 'Node':
154
+ return new types.Node(deserializeTypeAnnotations(item.identity), item.labels, deserializeTypeAnnotations(item.properties), item.elementId);
155
+ case 'Relationship':
156
+ return new types.Relationship(deserializeTypeAnnotations(item.identity), deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.end), item.type, deserializeTypeAnnotations(item.properties), item.elementId, item.startNodeElementId, item.endNodeElementId);
157
+ case 'PathSegment':
158
+ return new types.PathSegment(deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.relationship), deserializeTypeAnnotations(item.end));
159
+ case 'Path': {
160
+ const { segments } = item;
161
+ return new types.Path(deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.end), (Array.isArray(segments) ? segments : []).map((x) => deserializeTypeAnnotations(x)));
162
+ }
163
+ case 'Point':
164
+ return new types.Point(deserializeTypeAnnotations(item.srid), deserializeTypeAnnotations(item.x), deserializeTypeAnnotations(item.y), deserializeTypeAnnotations(item.z));
165
+ case 'Date':
166
+ return new types.Date(deserializeTypeAnnotations(item.year), deserializeTypeAnnotations(item.month), deserializeTypeAnnotations(item.day));
167
+ case 'DateTime':
168
+ return new 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));
169
+ case 'Duration':
170
+ return new types.Duration(deserializeTypeAnnotations(item.months), deserializeTypeAnnotations(item.days), deserializeTypeAnnotations(item.seconds), deserializeTypeAnnotations(item.nanoseconds));
171
+ case 'LocalDateTime':
172
+ return new types.LocalDateTime(deserializeTypeAnnotations(item.year), deserializeTypeAnnotations(item.month), deserializeTypeAnnotations(item.day), deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond));
173
+ case 'LocalTime':
174
+ return new types.LocalTime(deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond));
175
+ case 'Time':
176
+ return new types.Time(deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond), deserializeTypeAnnotations(item.timeZoneOffsetSeconds));
177
+ case 'Integer':
178
+ return int(item);
179
+ case 'Object':
180
+ return Object.keys(item).reduce((newObj, key) => {
181
+ newObj[key] = deserializeTypeAnnotations(item[key]);
182
+ return newObj;
183
+ }, {});
184
+ default:
185
+ return item;
186
+ }
187
+ }
188
+ //# 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,12 @@
1
+ export function cleanType(type) {
2
+ let resultType = type;
3
+ if (resultType.startsWith('LIST? OF ')) {
4
+ resultType = resultType.replace('LIST? OF ', 'LIST<');
5
+ resultType += '>';
6
+ }
7
+ return resultType.replace(/\?/g, '');
8
+ }
9
+ export function cleanTypeDescription(arg) {
10
+ return { ...arg, type: cleanType(arg.type) };
11
+ }
12
+ //# 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,MAAM,UAAU,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,MAAM,UAAU,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,80 @@
1
+ import { isDate, isDateTime, isDuration, isInt, isLocalDateTime, isLocalTime, isNode, isPath, isPoint, isRelationship, isTime, } from 'neo4j-driver';
2
+ import { isCypherBasicPropertyType, isInt8Array, } from '../types/cypher-data-types';
3
+ const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
4
+ export const getPropertyTypeDisplayName = (val) => {
5
+ const jsType = typeof val;
6
+ if (jsType === 'number') {
7
+ return 'Float';
8
+ }
9
+ if (val === null || val === undefined) {
10
+ /* There's no concept of undefined in cypher, null serves both purposes */
11
+ return 'null';
12
+ }
13
+ // Need to duplicate this `typeof` for typescripts type inference to understand
14
+ if (typeof val !== 'object') {
15
+ const capitalized = capitalize(jsType);
16
+ switch (capitalized) {
17
+ case 'String':
18
+ case 'Bigint':
19
+ case 'Boolean':
20
+ return capitalized;
21
+ default:
22
+ return 'Unknown';
23
+ }
24
+ }
25
+ if (val instanceof Array) {
26
+ const [firstVal] = val;
27
+ if (firstVal !== undefined) {
28
+ // Lists in properties are only allowed to contain a single type so all items are the same type
29
+ return `List<${getPropertyTypeDisplayName(firstVal)}>(${val.length})`;
30
+ }
31
+ return `List(${val.length})`;
32
+ }
33
+ if (isLocalTime(val)) {
34
+ return 'LocalTime';
35
+ }
36
+ if (isTime(val)) {
37
+ return 'Time';
38
+ }
39
+ if (isDate(val)) {
40
+ return 'Date';
41
+ }
42
+ if (isLocalDateTime(val)) {
43
+ return 'LocalDateTime';
44
+ }
45
+ if (isDateTime(val)) {
46
+ return 'DateTime';
47
+ }
48
+ if (isInt(val)) {
49
+ return 'Integer';
50
+ }
51
+ if (isDuration(val)) {
52
+ return 'Duration';
53
+ }
54
+ if (isPoint(val)) {
55
+ return 'Point';
56
+ }
57
+ if (isInt8Array(val)) {
58
+ return 'ByteArray';
59
+ }
60
+ return 'Unknown';
61
+ };
62
+ export function getCypherTypeName(val) {
63
+ if (Array.isArray(val)) {
64
+ return 'List';
65
+ }
66
+ if (isCypherBasicPropertyType(val)) {
67
+ return getPropertyTypeDisplayName(val);
68
+ }
69
+ if (isNode(val)) {
70
+ return 'Node';
71
+ }
72
+ if (isRelationship(val)) {
73
+ return 'Relationship';
74
+ }
75
+ if (isPath(val)) {
76
+ return 'Path';
77
+ }
78
+ return 'Map';
79
+ }
80
+ //# 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":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,UAAU,EACV,KAAK,EACL,eAAe,EACf,WAAW,EACX,MAAM,EACN,MAAM,EACN,OAAO,EACP,cAAc,EACd,MAAM,GACP,MAAM,cAAc,CAAC;AAMtB,OAAO,EACL,yBAAyB,EACzB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAoBpC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,GAAoB,EACA,EAAE;IACtB,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;IAC1B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,0EAA0E;QAC1E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+EAA+E;IAC/E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAEvC,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,WAAW,CAAC;YACrB;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;QACvB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,+FAA+F;YAC/F,OAAO,QAAQ,0BAA0B,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC;QACxE,CAAC;QACD,OAAO,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC;IAC/B,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAQF,MAAM,UAAU,iBAAiB,CAAC,GAAoB;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const formatFloat: (anything: number) => string;
@@ -0,0 +1,10 @@
1
+ export const formatFloat = (anything) => {
2
+ if ([Infinity, -Infinity, NaN].includes(anything)) {
3
+ return `${anything}`;
4
+ }
5
+ if (Math.floor(anything) === anything) {
6
+ return `${anything}.0`;
7
+ }
8
+ return anything.toString();
9
+ };
10
+ //# 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":"AAAA,MAAM,CAAC,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"}
@@ -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,169 @@
1
+ import { isInt, isNode, isPath, isPoint, isRelationship } from 'neo4j-driver';
2
+ import { isCypherPropertyType, isCypherTemporalType, isInt8Array, } from '../types/cypher-data-types';
3
+ import { formatFloat } from './format-float';
4
+ const spacialFormat = (p) => {
5
+ const zString = p.z !== undefined ? `, z:${p.z}` : '';
6
+ return `point({srid:${p.srid.toString()}, x:${p.x}, y:${p.y}${zString}})`;
7
+ };
8
+ export function propertyToString(property, quoteStrings = true) {
9
+ if (Array.isArray(property)) {
10
+ return `[${property
11
+ .map((p) => propertyToString(p, quoteStrings))
12
+ .join(', ')}]`;
13
+ }
14
+ if (property === null) {
15
+ return 'null';
16
+ }
17
+ if (typeof property === 'boolean') {
18
+ return property.toString();
19
+ }
20
+ if (isInt(property)) {
21
+ return property.toString();
22
+ }
23
+ if (typeof property === 'bigint') {
24
+ return property.toString();
25
+ }
26
+ if (typeof property === 'number') {
27
+ return formatFloat(property);
28
+ }
29
+ if (typeof property === 'string') {
30
+ if (quoteStrings) {
31
+ return `"${property}"`;
32
+ }
33
+ return property;
34
+ }
35
+ if (isInt8Array(property)) {
36
+ return 'ByteArray';
37
+ }
38
+ if (isCypherTemporalType(property)) {
39
+ return property.toString();
40
+ }
41
+ if (isPoint(property)) {
42
+ return spacialFormat(property);
43
+ }
44
+ // This case shouldn't be used, but added as a fallback
45
+ return String(property);
46
+ }
47
+ const cypherShellStyleStringify = (value, { stringStyle, quoteStrings = true, }) => {
48
+ const includeIds = stringStyle === 'cypher-with-ids';
49
+ if (isNode(value)) {
50
+ const labels = value.labels.length > 0 ? `:${value.labels.join(':')}` : '';
51
+ const properties = Object.entries(value.properties)
52
+ .map(([key, val]) => {
53
+ return `${key}: ${propertyToString(val, quoteStrings)}`;
54
+ })
55
+ .concat(includeIds
56
+ ? [
57
+ `<elementId>: "${value.elementId.toString()}", <id>: ${value.identity.toString()}`,
58
+ ]
59
+ : [])
60
+ .join(', ');
61
+ const propertiesString = properties.length > 0 ? `{${properties}}` : '';
62
+ const space = labels.length > 0 && propertiesString.length > 0 ? ' ' : '';
63
+ return `(${labels}${space}${propertiesString})`;
64
+ }
65
+ else if (isRelationship(value)) {
66
+ const type = value.type ? `:${value.type}` : '';
67
+ const properties = Object.entries(value.properties)
68
+ .map(([key, val]) => {
69
+ return `${key}: ${propertyToString(val, quoteStrings)}`;
70
+ })
71
+ .concat(includeIds
72
+ ? [
73
+ `<elementId>: ${quoteStrings
74
+ ? `"${value.elementId.toString()}"`
75
+ : value.elementId.toString()}, <id>: ${value.identity.toString()}`,
76
+ ]
77
+ : [])
78
+ .join(', ');
79
+ const propertiesString = properties.length > 0 ? ` {${properties}}` : '';
80
+ return `[${type}${propertiesString}]`;
81
+ }
82
+ else if (isPath(value)) {
83
+ if (value.segments.length === 0) {
84
+ return cypherShellStyleStringify(value.start, {
85
+ stringStyle,
86
+ quoteStrings,
87
+ });
88
+ }
89
+ return value.segments
90
+ .map((segment, index) => {
91
+ const result = [];
92
+ if (index === 0) {
93
+ result.push(cypherShellStyleStringify(segment.start, {
94
+ stringStyle,
95
+ quoteStrings,
96
+ }));
97
+ }
98
+ if (segment.start.elementId === segment.relationship.startNodeElementId) {
99
+ result.push('-');
100
+ result.push(cypherShellStyleStringify(segment.relationship, {
101
+ stringStyle,
102
+ quoteStrings,
103
+ }));
104
+ result.push('->');
105
+ result.push(cypherShellStyleStringify(segment.end, {
106
+ stringStyle,
107
+ quoteStrings,
108
+ }));
109
+ }
110
+ else {
111
+ result.push('<-');
112
+ result.push(cypherShellStyleStringify(segment.relationship, {
113
+ stringStyle,
114
+ quoteStrings,
115
+ }));
116
+ result.push('-');
117
+ result.push(cypherShellStyleStringify(segment.end, {
118
+ stringStyle,
119
+ quoteStrings,
120
+ }));
121
+ }
122
+ return result.join('');
123
+ })
124
+ .join('');
125
+ }
126
+ return '';
127
+ };
128
+ const recursiveStringify = (value, { indentationLevel = 0, quoteStrings = true, stringStyle = 'json', } = {}) => {
129
+ const indentation = ' '.repeat(indentationLevel);
130
+ const nextIndentationLevel = indentationLevel + 1;
131
+ const nextIdentation = ' '.repeat(nextIndentationLevel);
132
+ if (isCypherPropertyType(value)) {
133
+ return propertyToString(value, quoteStrings);
134
+ }
135
+ if (Array.isArray(value)) {
136
+ return `[
137
+ ${value
138
+ .map((v) => `${nextIdentation}${recursiveStringify(v, {
139
+ indentationLevel: nextIndentationLevel,
140
+ quoteStrings,
141
+ })}`)
142
+ .join(',\n')}\n${indentation}]`;
143
+ }
144
+ // Now we have nodes, relationships, paths and cypher maps left.
145
+ // No special care for them stringify them as we would normal objects
146
+ // unless we are in cypher-shell style
147
+ if (stringStyle !== 'json' &&
148
+ (isNode(value) || isRelationship(value) || isPath(value))) {
149
+ return cypherShellStyleStringify(value, { stringStyle, quoteStrings });
150
+ }
151
+ const entries = Object.entries(value);
152
+ if (entries.length === 0) {
153
+ return '{}';
154
+ }
155
+ return `{
156
+ ${entries
157
+ .map(([key, val]) => {
158
+ return `${nextIdentation}${key}: ${recursiveStringify(val, {
159
+ indentationLevel: nextIndentationLevel,
160
+ quoteStrings,
161
+ })}`;
162
+ })
163
+ .join(',\n')}
164
+ ${indentation}}`;
165
+ };
166
+ export const cypherDataToString = (map, stringStyle = 'json', quoteStrings = true) => {
167
+ return recursiveStringify(map, { quoteStrings, stringStyle });
168
+ };
169
+ //# 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":"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"}
@@ -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,2 @@
1
+ export {};
2
+ //# 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,6 @@
1
+ export { FRIENDLY_ERROR_MESSAGES } from './connectionErrorHandler';
2
+ export { deserializeTypeAnnotations, serializeTypeAnnotations, } from './cypher-execution/query-result';
3
+ export { getCypherTypeName } from './data-transforms/cypher-type-names';
4
+ export { cypherDataToString } from './data-transforms/record-to-string';
5
+ export { Neo4jSchemaPoller } from './schemaPoller';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AASxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { DbSchema } from '@neo4j-cypher/language-support';
2
+ import { EventEmitter } from 'events';
3
+ import { Neo4jConnection } from './neo4jConnection.js';
4
+ import { Database } from './queries/databases.js';
5
+ export declare abstract class MetadataPoller {
6
+ dbSchema: DbSchema;
7
+ abstract stopBackgroundPolling(): void;
8
+ abstract startBackgroundPolling(intervalSeconds?: number): void;
9
+ }
10
+ export declare class DisconnectedMetadataPoller extends MetadataPoller {
11
+ dbSchema: DbSchema;
12
+ constructor(parameters: Record<string, unknown>);
13
+ stopBackgroundPolling(): void;
14
+ startBackgroundPolling(): void;
15
+ }
16
+ export declare class ConnectedMetadataPoller extends MetadataPoller {
17
+ private readonly connection;
18
+ private readonly events;
19
+ private databases;
20
+ private dataSummary;
21
+ private functions;
22
+ private procedures;
23
+ private users;
24
+ private roles;
25
+ private dbPollingInterval;
26
+ dbSchema: DbSchema;
27
+ constructor(databases: Database[], parameters: Record<string, unknown>, serverVersion: string | undefined, connection: Neo4jConnection, events: EventEmitter);
28
+ private fetchDbSchema;
29
+ stopBackgroundPolling(): void;
30
+ startBackgroundPolling(intervalSeconds?: number): void;
31
+ }