@neo4j-cypher/query-tools 2.0.0-next.37 → 2.0.0-next.38

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 (158) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/index.cjs +1848 -0
  3. package/dist/cjs/index.cjs.map +7 -0
  4. package/dist/esm/package.json +9 -8
  5. package/dist/esm/src/connectionErrorHandler.d.ts +1 -0
  6. package/dist/esm/src/connectionErrorHandler.js.map +1 -1
  7. package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +1 -1
  8. package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +0 -4
  9. package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +1 -1
  10. package/dist/esm/src/cypher-execution/query-result.js +2 -9
  11. package/dist/esm/src/cypher-execution/query-result.js.map +1 -1
  12. package/dist/esm/src/data-transforms/record-to-string.js +1 -2
  13. package/dist/esm/src/data-transforms/record-to-string.js.map +1 -1
  14. package/dist/esm/src/integration-tests/pollingIntegrationTests.test.js.map +1 -1
  15. package/dist/esm/src/integration-tests/setupTestContainer.d.ts +1 -1
  16. package/dist/esm/src/integration-tests/setupTestContainer.js +1 -1
  17. package/dist/esm/src/integration-tests/setupTestContainer.js.map +1 -1
  18. package/dist/esm/src/metadataPoller.d.ts +4 -4
  19. package/dist/esm/src/metadataPoller.js +1 -1
  20. package/dist/esm/src/metadataPoller.js.map +1 -1
  21. package/dist/esm/src/neo4jConnection.d.ts +4 -4
  22. package/dist/esm/src/neo4jConnection.js +2 -2
  23. package/dist/esm/src/neo4jConnection.js.map +1 -1
  24. package/dist/esm/src/queries/dataSummary.d.ts +1 -1
  25. package/dist/esm/src/queries/dataSummary.js.map +1 -1
  26. package/dist/esm/src/queries/databases.d.ts +1 -1
  27. package/dist/esm/src/queries/databases.js +0 -3
  28. package/dist/esm/src/queries/databases.js.map +1 -1
  29. package/dist/esm/src/queries/functions.d.ts +1 -1
  30. package/dist/esm/src/queries/functions.js +1 -2
  31. package/dist/esm/src/queries/functions.js.map +1 -1
  32. package/dist/esm/src/queries/graphSchema.d.ts +1 -1
  33. package/dist/esm/src/queries/graphSchema.js +1 -1
  34. package/dist/esm/src/queries/graphSchema.js.map +1 -1
  35. package/dist/esm/src/queries/procedures.d.ts +1 -1
  36. package/dist/esm/src/queries/procedures.js +1 -2
  37. package/dist/esm/src/queries/procedures.js.map +1 -1
  38. package/dist/esm/src/queries/version.d.ts +1 -1
  39. package/dist/esm/src/result-transformers/graph-result-transformer.d.ts +2 -2
  40. package/dist/esm/src/result-transformers/graph-result-transformer.js +2 -2
  41. package/dist/esm/src/result-transformers/graph-result-transformer.js.map +1 -1
  42. package/dist/esm/src/schemaPoller.d.ts +3 -3
  43. package/dist/esm/src/schemaPoller.js.map +1 -1
  44. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  45. package/dist/types/src/connectionErrorHandler.d.ts +1 -0
  46. package/dist/types/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +1 -1
  47. package/dist/types/src/integration-tests/setupTestContainer.d.ts +1 -1
  48. package/dist/types/src/metadataPoller.d.ts +4 -4
  49. package/dist/types/src/neo4jConnection.d.ts +4 -4
  50. package/dist/types/src/queries/dataSummary.d.ts +1 -1
  51. package/dist/types/src/queries/databases.d.ts +1 -1
  52. package/dist/types/src/queries/functions.d.ts +1 -1
  53. package/dist/types/src/queries/graphSchema.d.ts +1 -1
  54. package/dist/types/src/queries/procedures.d.ts +1 -1
  55. package/dist/types/src/queries/version.d.ts +1 -1
  56. package/dist/types/src/result-transformers/graph-result-transformer.d.ts +2 -2
  57. package/dist/types/src/schemaPoller.d.ts +3 -3
  58. package/dist/types/tsconfig.tsbuildinfo +1 -1
  59. package/package.json +10 -9
  60. package/src/connectionErrorHandler.ts +5 -2
  61. package/src/cypher-execution/extract-unique-nodes-and-relationships.test.ts +0 -4
  62. package/src/cypher-execution/extract-unique-nodes-and-relationships.ts +1 -1
  63. package/src/cypher-execution/query-result.ts +1 -13
  64. package/src/data-transforms/record-to-string.ts +2 -3
  65. package/src/integration-tests/pollingIntegrationTests.test.ts +6 -5
  66. package/src/integration-tests/setupTestContainer.ts +3 -2
  67. package/src/metadataPoller.ts +14 -10
  68. package/src/neo4jConnection.ts +6 -6
  69. package/src/queries/dataSummary.ts +4 -4
  70. package/src/queries/databases.ts +2 -4
  71. package/src/queries/functions.ts +6 -3
  72. package/src/queries/graphSchema.ts +7 -6
  73. package/src/queries/procedures.ts +6 -3
  74. package/src/queries/version.ts +1 -1
  75. package/src/result-transformers/graph-result-transformer.ts +4 -10
  76. package/src/schemaPoller.ts +4 -3
  77. package/tsconfig.json +4 -4
  78. package/tsconfig.node.json +1 -2
  79. package/dist/cjs/package.json +0 -46
  80. package/dist/cjs/src/connectionErrorHandler.d.ts +0 -10
  81. package/dist/cjs/src/connectionErrorHandler.js +0 -40
  82. package/dist/cjs/src/connectionErrorHandler.js.map +0 -1
  83. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +0 -33
  84. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js +0 -93
  85. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js.map +0 -1
  86. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.d.ts +0 -1
  87. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +0 -129
  88. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +0 -1
  89. package/dist/cjs/src/cypher-execution/query-result.d.ts +0 -11
  90. package/dist/cjs/src/cypher-execution/query-result.js +0 -239
  91. package/dist/cjs/src/cypher-execution/query-result.js.map +0 -1
  92. package/dist/cjs/src/data-transforms/clean-type.d.ts +0 -6
  93. package/dist/cjs/src/data-transforms/clean-type.js +0 -16
  94. package/dist/cjs/src/data-transforms/clean-type.js.map +0 -1
  95. package/dist/cjs/src/data-transforms/cypher-type-names.d.ts +0 -6
  96. package/dist/cjs/src/data-transforms/cypher-type-names.js +0 -91
  97. package/dist/cjs/src/data-transforms/cypher-type-names.js.map +0 -1
  98. package/dist/cjs/src/data-transforms/format-float.d.ts +0 -1
  99. package/dist/cjs/src/data-transforms/format-float.js +0 -14
  100. package/dist/cjs/src/data-transforms/format-float.js.map +0 -1
  101. package/dist/cjs/src/data-transforms/record-to-string.d.ts +0 -8
  102. package/dist/cjs/src/data-transforms/record-to-string.js +0 -185
  103. package/dist/cjs/src/data-transforms/record-to-string.js.map +0 -1
  104. package/dist/cjs/src/index.d.ts +0 -17
  105. package/dist/cjs/src/index.js +0 -33
  106. package/dist/cjs/src/index.js.map +0 -1
  107. package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.d.ts +0 -1
  108. package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.js +0 -42
  109. package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.js.map +0 -1
  110. package/dist/cjs/src/integration-tests/setupTestContainer.d.ts +0 -10
  111. package/dist/cjs/src/integration-tests/setupTestContainer.js +0 -23
  112. package/dist/cjs/src/integration-tests/setupTestContainer.js.map +0 -1
  113. package/dist/cjs/src/metadataPoller.d.ts +0 -34
  114. package/dist/cjs/src/metadataPoller.js +0 -214
  115. package/dist/cjs/src/metadataPoller.js.map +0 -1
  116. package/dist/cjs/src/neo4jConnection.d.ts +0 -36
  117. package/dist/cjs/src/neo4jConnection.js +0 -128
  118. package/dist/cjs/src/neo4jConnection.js.map +0 -1
  119. package/dist/cjs/src/queries/dataSummary.d.ts +0 -7
  120. package/dist/cjs/src/queries/dataSummary.js +0 -33
  121. package/dist/cjs/src/queries/dataSummary.js.map +0 -1
  122. package/dist/cjs/src/queries/databases.d.ts +0 -28
  123. package/dist/cjs/src/queries/databases.js +0 -112
  124. package/dist/cjs/src/queries/databases.js.map +0 -1
  125. package/dist/cjs/src/queries/functions.d.ts +0 -14
  126. package/dist/cjs/src/queries/functions.js +0 -87
  127. package/dist/cjs/src/queries/functions.js.map +0 -1
  128. package/dist/cjs/src/queries/graphSchema.d.ts +0 -28
  129. package/dist/cjs/src/queries/graphSchema.js +0 -88
  130. package/dist/cjs/src/queries/graphSchema.js.map +0 -1
  131. package/dist/cjs/src/queries/procedures.d.ts +0 -14
  132. package/dist/cjs/src/queries/procedures.js +0 -105
  133. package/dist/cjs/src/queries/procedures.js.map +0 -1
  134. package/dist/cjs/src/queries/roles.d.ts +0 -11
  135. package/dist/cjs/src/queries/roles.js +0 -24
  136. package/dist/cjs/src/queries/roles.js.map +0 -1
  137. package/dist/cjs/src/queries/users.d.ts +0 -15
  138. package/dist/cjs/src/queries/users.js +0 -24
  139. package/dist/cjs/src/queries/users.js.map +0 -1
  140. package/dist/cjs/src/queries/version.d.ts +0 -7
  141. package/dist/cjs/src/queries/version.js +0 -32
  142. package/dist/cjs/src/queries/version.js.map +0 -1
  143. package/dist/cjs/src/result-transformers/graph-result-transformer.d.ts +0 -37
  144. package/dist/cjs/src/result-transformers/graph-result-transformer.js +0 -37
  145. package/dist/cjs/src/result-transformers/graph-result-transformer.js.map +0 -1
  146. package/dist/cjs/src/schemaPoller.d.ts +0 -45
  147. package/dist/cjs/src/schemaPoller.js +0 -199
  148. package/dist/cjs/src/schemaPoller.js.map +0 -1
  149. package/dist/cjs/src/types/cypher-data-types.d.ts +0 -41
  150. package/dist/cjs/src/types/cypher-data-types.js +0 -47
  151. package/dist/cjs/src/types/cypher-data-types.js.map +0 -1
  152. package/dist/cjs/src/types/sdkTypes.d.ts +0 -18
  153. package/dist/cjs/src/types/sdkTypes.js +0 -11
  154. package/dist/cjs/src/types/sdkTypes.js.map +0 -1
  155. package/dist/cjs/tsconfig.tsbuildinfo +0 -1
  156. package/dist/cjs/vitest.config.d.mts +0 -2
  157. package/dist/cjs/vitest.config.mjs +0 -10
  158. package/dist/cjs/vitest.config.mjs.map +0 -1
@@ -1,93 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractUniqueNodesAndRels = void 0;
4
- const neo4j_driver_1 = require("neo4j-driver");
5
- /**
6
- * Extracts and deduplicates nodes and relationships from Neo4j query records.
7
- *
8
- * This function processes Neo4j records to find all nodes and relationships,
9
- * removing duplicates based on their element IDs. It can handle various data
10
- * structures including individual nodes/relationships, paths, arrays, and
11
- * nested objects.
12
- *
13
- * @param records - Array of Neo4j records to process
14
- * @param options - Configuration options for extraction
15
- * @param options.nodeLimit - Maximum number of unique nodes to extract (optional)
16
- * @param options.keepDanglingRels - Whether to keep relationships whose start/end nodes are missing (default: false)
17
- *
18
- * @returns The {@link DeduplicatedNodesAndRels} containing unique nodes and relationships
19
- */
20
- const extractUniqueNodesAndRels = (records, { nodeLimit, keepDanglingRels = false, } = {}) => {
21
- let limitHit = false;
22
- const items = new Set();
23
- for (const record of records) {
24
- for (const key of record.keys) {
25
- items.add(record.get(key));
26
- }
27
- }
28
- const paths = [];
29
- const nodeMap = new Map();
30
- function addNode(n) {
31
- if (!limitHit) {
32
- const id = n.elementId.toString();
33
- if (!nodeMap.has(id)) {
34
- nodeMap.set(id, n);
35
- }
36
- if (typeof nodeLimit === 'number' && nodeMap.size === nodeLimit) {
37
- limitHit = true;
38
- }
39
- }
40
- }
41
- const relMap = new Map();
42
- function addRel(r) {
43
- const id = r.elementId.toString();
44
- if (!relMap.has(id)) {
45
- relMap.set(id, r);
46
- }
47
- }
48
- const findAllEntities = (item) => {
49
- if (typeof item !== 'object' || !item) {
50
- return;
51
- }
52
- if ((0, neo4j_driver_1.isRelationship)(item)) {
53
- addRel(item);
54
- }
55
- else if ((0, neo4j_driver_1.isNode)(item)) {
56
- addNode(item);
57
- }
58
- else if ((0, neo4j_driver_1.isPath)(item)) {
59
- paths.push(item);
60
- }
61
- else if (Array.isArray(item)) {
62
- item.forEach(findAllEntities);
63
- }
64
- else {
65
- Object.values(item).forEach(findAllEntities);
66
- }
67
- };
68
- findAllEntities(Array.from(items));
69
- for (const path of paths) {
70
- addNode(path.start);
71
- addNode(path.end);
72
- for (const segment of path.segments) {
73
- addNode(segment.start);
74
- addNode(segment.end);
75
- addRel(segment.relationship);
76
- }
77
- }
78
- const nodes = Array.from(nodeMap.values());
79
- const relationships = Array.from(relMap.values()).filter((item) => {
80
- if (keepDanglingRels) {
81
- return true;
82
- }
83
- // We'd get dangling relationships from
84
- // match ()-[a:ACTED_IN]->() return a;
85
- // or from hitting the node limit
86
- const start = item.startNodeElementId.toString();
87
- const end = item.endNodeElementId.toString();
88
- return nodeMap.has(start) && nodeMap.has(end);
89
- });
90
- return { nodes, relationships, limitHit };
91
- };
92
- exports.extractUniqueNodesAndRels = extractUniqueNodesAndRels;
93
- //# sourceMappingURL=extract-unique-nodes-and-relationships.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-unique-nodes-and-relationships.js","sourceRoot":"","sources":["../../../../src/cypher-execution/extract-unique-nodes-and-relationships.ts"],"names":[],"mappings":";;;AAQA,+CAA8D;AAiB9D;;;;;;;;;;;;;;GAcG;AACI,MAAM,yBAAyB,GAAG,CACvC,OAAiB,EACjB,EACE,SAAS,EACT,gBAAgB,GAAG,KAAK,MAC8B,EAAE,EAChC,EAAE;IAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAW,CAAC;IAEjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;IACxC,SAAS,OAAO,CAAC,CAAO;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChE,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC/C,SAAS,MAAM,CAAC,CAAe;QAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,IAAa,EAAE,EAAE;QACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,IAAA,6BAAc,EAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,IAAA,qBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,IAAA,qBAAM,EAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uCAAuC;QACvC,sCAAsC;QACtC,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC5C,CAAC,CAAC;AAtFW,QAAA,yBAAyB,6BAsFpC"}
@@ -1,129 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const neo4j_driver_1 = require("neo4j-driver");
4
- const vitest_1 = require("vitest");
5
- const extract_unique_nodes_and_relationships_js_1 = require("./extract-unique-nodes-and-relationships.js");
6
- (0, vitest_1.describe)('extractNodesAndRels', () => {
7
- (0, vitest_1.test)('should map bolt records with a path to nodes and relationships', () => {
8
- const startNode = new neo4j_driver_1.Node(1, ['Person'], {
9
- prop1: 'prop1',
10
- }, 'node1');
11
- const endNode = new neo4j_driver_1.Node(2, ['Movie'], {
12
- prop2: 'prop2',
13
- }, 'node2');
14
- const relationship = new neo4j_driver_1.Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
15
- const pathSegment = new neo4j_driver_1.PathSegment(startNode, relationship, endNode);
16
- const path = new neo4j_driver_1.Path(startNode, endNode, [pathSegment]);
17
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
18
- const boltRecord = {
19
- keys: ['p'],
20
- get: () => path,
21
- };
22
- const { nodes, relationships } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([boltRecord]);
23
- const [graphNodeStart] = nodes.filter((node) => node.elementId.toString() === 'node1');
24
- const [graphNodeEnd] = nodes.filter((node) => node.elementId.toString() === 'node2');
25
- const [firstRel] = relationships;
26
- if (graphNodeStart === undefined ||
27
- graphNodeEnd === undefined ||
28
- firstRel === undefined) {
29
- throw new Error('Error in test data, got undefined');
30
- }
31
- (0, vitest_1.expect)(nodes.length).toBe(2);
32
- (0, vitest_1.expect)(graphNodeStart.labels).toEqual(['Person']);
33
- (0, vitest_1.expect)(graphNodeStart.properties).toEqual({ prop1: 'prop1' });
34
- (0, vitest_1.expect)(graphNodeEnd.labels).toEqual(['Movie']);
35
- (0, vitest_1.expect)(graphNodeEnd.properties).toEqual({ prop2: 'prop2' });
36
- (0, vitest_1.expect)(relationships.length).toBe(1);
37
- (0, vitest_1.expect)(firstRel.elementId.toString()).toEqual('rel1');
38
- (0, vitest_1.expect)(firstRel.startNodeElementId.toString()).toEqual('node1');
39
- (0, vitest_1.expect)(firstRel.endNodeElementId.toString()).toEqual('node2');
40
- (0, vitest_1.expect)(firstRel.type).toEqual('ACTED_IN');
41
- (0, vitest_1.expect)(firstRel.properties).toEqual({});
42
- });
43
- (0, vitest_1.test)('should deduplicate bolt records based on node id and filter out dangling relationships', () => {
44
- const node1 = new neo4j_driver_1.Node(1, ['Person'], {
45
- prop1: 'prop1',
46
- }, 'node1');
47
- const node2 = new neo4j_driver_1.Node(1, ['Person'], {
48
- prop1: 'prop1',
49
- }, 'node1');
50
- const relationship = new neo4j_driver_1.Relationship(2, 1, 34, 'ACTED_IN', {}, 'rel1', 'node1', 'node34');
51
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
52
- const boltRecord = {
53
- keys: ['n'],
54
- get: () => [node1, node2, relationship],
55
- };
56
- const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([
57
- boltRecord,
58
- ]);
59
- (0, vitest_1.expect)(limitHit).toBe(false);
60
- (0, vitest_1.expect)(nodes.length).toBe(1);
61
- (0, vitest_1.expect)(relationships.length).toBe(0);
62
- });
63
- (0, vitest_1.test)('should respect the max nodes limit and filter out dangling relations', () => {
64
- const startNode = new neo4j_driver_1.Node(1, ['Person'], {
65
- prop1: 'prop1',
66
- }, 'node1');
67
- const endNode = new neo4j_driver_1.Node(2, ['Movie'], {
68
- prop2: 'prop2',
69
- }, 'node2');
70
- const relationship = new neo4j_driver_1.Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
71
- const pathSegment = new neo4j_driver_1.PathSegment(startNode, relationship, endNode);
72
- const path = new neo4j_driver_1.Path(startNode, endNode, [pathSegment]);
73
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
74
- const boltRecord = {
75
- keys: ['p'],
76
- get: () => path,
77
- };
78
- const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([boltRecord], {
79
- nodeLimit: 1,
80
- });
81
- (0, vitest_1.expect)(limitHit).toBe(true);
82
- (0, vitest_1.expect)(nodes.length).toBe(1);
83
- const [graphNodeStart] = nodes;
84
- (0, vitest_1.expect)(graphNodeStart).toBeDefined();
85
- if (graphNodeStart === undefined) {
86
- throw new Error('Error in test data, got undefined');
87
- }
88
- (0, vitest_1.expect)(graphNodeStart.labels).toEqual(['Person']);
89
- (0, vitest_1.expect)(graphNodeStart.properties).toEqual({ prop1: 'prop1' });
90
- (0, vitest_1.expect)(relationships.length).toBe(0);
91
- });
92
- (0, vitest_1.test)('should respect the max nodes limit and not filter out dangling relations when asked to keep them', () => {
93
- const startNode = new neo4j_driver_1.Node(1, ['Person'], {
94
- prop1: 'prop1',
95
- }, 'node1');
96
- const endNode = new neo4j_driver_1.Node(2, ['Movie'], {
97
- prop2: 'prop2',
98
- }, 'node2');
99
- const relationship = new neo4j_driver_1.Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
100
- const pathSegment = new neo4j_driver_1.PathSegment(startNode, relationship, endNode);
101
- const path = new neo4j_driver_1.Path(startNode, endNode, [pathSegment]);
102
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
103
- const boltRecord = {
104
- keys: ['p'],
105
- get: () => path,
106
- };
107
- const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([boltRecord], {
108
- nodeLimit: 1,
109
- keepDanglingRels: true,
110
- });
111
- (0, vitest_1.expect)(limitHit).toBe(true);
112
- (0, vitest_1.expect)(nodes.length).toBe(1);
113
- const [graphNodeStart] = nodes;
114
- (0, vitest_1.expect)(graphNodeStart).toBeDefined();
115
- if (graphNodeStart === undefined) {
116
- throw new Error('Error in test data, got undefined');
117
- }
118
- (0, vitest_1.expect)(graphNodeStart.labels).toEqual(['Person']);
119
- (0, vitest_1.expect)(graphNodeStart.properties).toEqual({ prop1: 'prop1' });
120
- (0, vitest_1.expect)(relationships.length).toBe(1);
121
- });
122
- (0, vitest_1.test)('should handle empty results', () => {
123
- const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([]);
124
- (0, vitest_1.expect)(limitHit).toBe(false);
125
- (0, vitest_1.expect)(nodes.length).toBe(0);
126
- (0, vitest_1.expect)(relationships.length).toBe(0);
127
- });
128
- });
129
- //# sourceMappingURL=extract-unique-nodes-and-relationships.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-unique-nodes-and-relationships.test.js","sourceRoot":"","sources":["../../../../src/cypher-execution/extract-unique-nodes-and-relationships.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import type { QueryResult, Record as Neo4jRecord } from 'neo4j-driver';
2
- import { types } from 'neo4j-driver';
3
- export declare const RESERVED_TYPE_PROPERTY_NAME = "transport-class";
4
- export declare const ESCAPE_CHAR = "_";
5
- export type Neo4jType = typeof types.Record | typeof types.Result | typeof types.ResultSummary | typeof types.Node | typeof types.PathSegment | typeof types.Path | typeof types.Relationship | typeof types.Point | typeof types.Date | typeof types.DateTime | typeof types.Duration | typeof types.LocalDateTime | typeof types.LocalTime | typeof types.Time | typeof types.Integer | typeof types.Vector | Record<string, unknown> | Neo4jType[] | undefined | null;
6
- export declare function addAnnotationProp(obj: Record<string, unknown>, type: string | unknown, prop?: string): Record<string, unknown>;
7
- export declare function deleteAnnotationProp(obj: Record<string, unknown>): void;
8
- export declare function serializeTypeAnnotations(item: QueryResult | Neo4jRecord): Record<string, unknown>;
9
- export declare function serializeTypeAnnotations(item: Neo4jType): Record<string, unknown> | null | undefined | unknown[];
10
- export declare function deserializeTypeAnnotations(rawItem: Record<string, unknown>): QueryResult | Neo4jRecord;
11
- export declare function deserializeTypeAnnotations(rawItem: any): any;
@@ -1,239 +0,0 @@
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 ((0, neo4j_driver_1.isVector)(item)) {
118
- const typedArray = item.asTypedArray();
119
- const values = typedArray instanceof BigInt64Array
120
- ? Array.from(typedArray, (v) => v.toString())
121
- : Array.from(typedArray);
122
- return addAnnotationProp({
123
- _type: item.getType(),
124
- _values: values,
125
- }, 'Vector');
126
- }
127
- if (typeof item === 'object') {
128
- const tmp = copyAndAnnotate(item);
129
- return addAnnotationProp(tmp, 'Object');
130
- }
131
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
132
- // @ts-ignore this type isn't inferred correctly
133
- return item;
134
- }
135
- function deserializeTypeAnnotations(rawItem) {
136
- if (Array.isArray(rawItem)) {
137
- const mapped = rawItem.map((i) => deserializeTypeAnnotations(i));
138
- return mapped;
139
- }
140
- if (rawItem === null ||
141
- rawItem === undefined ||
142
- typeof rawItem === 'boolean' ||
143
- typeof rawItem === 'string' ||
144
- !Object.prototype.hasOwnProperty.call(rawItem, exports.RESERVED_TYPE_PROPERTY_NAME)) {
145
- return rawItem;
146
- }
147
- const item = { ...rawItem };
148
- const className = item[exports.RESERVED_TYPE_PROPERTY_NAME];
149
- deleteAnnotationProp(item);
150
- switch (className) {
151
- case 'Record':
152
- return new neo4j_driver_1.types.Record(deserializeTypeAnnotations(item.keys), deserializeTypeAnnotations(item._fields), deserializeTypeAnnotations(item._fieldLookup));
153
- case 'ResultSummary': {
154
- const metadata = {
155
- ...item,
156
- type: item.queryType,
157
- db: item.database.name,
158
- result_available_after: deserializeTypeAnnotations(item.resultAvailableAfter),
159
- result_consumed_after: deserializeTypeAnnotations(item.resultConsumedAfter),
160
- profile: item.profile === false ? null : item.profile,
161
- plan: item.plan === false ? null : item.plan,
162
- stream_summary: { have_records_streamed: true },
163
- server: {
164
- ...item.server,
165
- version: item.server.agent,
166
- },
167
- };
168
- return new neo4j_driver_1.types.ResultSummary(deserializeTypeAnnotations(item.query.text), deserializeTypeAnnotations(item.query.parameters), deserializeTypeAnnotations(metadata), deserializeTypeAnnotations(item.server.protocolVersion));
169
- }
170
- case 'Node':
171
- return new neo4j_driver_1.types.Node(deserializeTypeAnnotations(item.identity), item.labels, deserializeTypeAnnotations(item.properties), item.elementId);
172
- case 'Relationship':
173
- 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);
174
- case 'PathSegment':
175
- return new neo4j_driver_1.types.PathSegment(deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.relationship), deserializeTypeAnnotations(item.end));
176
- case 'Path': {
177
- const { segments } = item;
178
- return new neo4j_driver_1.types.Path(deserializeTypeAnnotations(item.start), deserializeTypeAnnotations(item.end), (Array.isArray(segments) ? segments : []).map((x) => deserializeTypeAnnotations(x)));
179
- }
180
- case 'Point':
181
- return new neo4j_driver_1.types.Point(deserializeTypeAnnotations(item.srid), deserializeTypeAnnotations(item.x), deserializeTypeAnnotations(item.y), deserializeTypeAnnotations(item.z));
182
- case 'Date':
183
- return new neo4j_driver_1.types.Date(deserializeTypeAnnotations(item.year), deserializeTypeAnnotations(item.month), deserializeTypeAnnotations(item.day));
184
- case 'DateTime':
185
- 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));
186
- case 'Duration':
187
- return new neo4j_driver_1.types.Duration(deserializeTypeAnnotations(item.months), deserializeTypeAnnotations(item.days), deserializeTypeAnnotations(item.seconds), deserializeTypeAnnotations(item.nanoseconds));
188
- case 'LocalDateTime':
189
- 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));
190
- case 'LocalTime':
191
- return new neo4j_driver_1.types.LocalTime(deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond));
192
- case 'Time':
193
- return new neo4j_driver_1.types.Time(deserializeTypeAnnotations(item.hour), deserializeTypeAnnotations(item.minute), deserializeTypeAnnotations(item.second), deserializeTypeAnnotations(item.nanosecond), deserializeTypeAnnotations(item.timeZoneOffsetSeconds));
194
- case 'Integer':
195
- return (0, neo4j_driver_1.int)(item);
196
- case 'Vector': {
197
- // Reconstruct the appropriate TypedArray from serialized values
198
- const type = item._type;
199
- const values = item._values;
200
- let typedArray;
201
- switch (type) {
202
- case 'INT8':
203
- typedArray = new Int8Array(values);
204
- break;
205
- case 'INT16':
206
- typedArray = new Int16Array(values);
207
- break;
208
- case 'INT32':
209
- typedArray = new Int32Array(values);
210
- break;
211
- case 'INT64':
212
- // For INT64, values are stored as strings to avoid BigInt serialization issues
213
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
214
- typedArray = new BigInt64Array(values.map((v) => BigInt(v)));
215
- break;
216
- case 'FLOAT32':
217
- typedArray = new Float32Array(values);
218
- break;
219
- case 'FLOAT64':
220
- typedArray = new Float64Array(values);
221
- break;
222
- default:
223
- // TODO test and veriy
224
- // fallback to plain object handling to avoid crashing
225
- // if someone were to add a new vector type, we don't want to crash the entire application
226
- return item;
227
- }
228
- return new neo4j_driver_1.Vector(typedArray);
229
- }
230
- case 'Object':
231
- return Object.keys(item).reduce((newObj, key) => {
232
- newObj[key] = deserializeTypeAnnotations(item[key]);
233
- return newObj;
234
- }, {});
235
- default:
236
- return item;
237
- }
238
- }
239
- //# sourceMappingURL=query-result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-result.js","sourceRoot":"","sources":["../../../../src/cypher-execution/query-result.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
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
- };
@@ -1,16 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,6 +0,0 @@
1
- import type { CypherDataType, CypherProperty } from '../types/cypher-data-types.js';
2
- type CypherPropertyName = 'Float' | 'null' | 'String' | 'Bigint' | 'Boolean' | `List${string}` | 'LocalTime' | 'Time' | 'Date' | 'LocalDateTime' | 'DateTime' | 'Integer' | 'Duration' | 'Point' | 'ByteArray' | 'Vector' | 'Unknown';
3
- export declare const getPropertyTypeDisplayName: (val?: CypherProperty) => CypherPropertyName;
4
- export type CypherDataTypeName = CypherPropertyName | 'Node' | 'Relationship' | 'Path' | 'Map' | 'Vector';
5
- export declare function getCypherTypeName(val?: CypherDataType): CypherDataTypeName;
6
- export {};
@@ -1,91 +0,0 @@
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_js_1 = require("../types/cypher-data-types.js");
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_js_1.isInt8Array)(val)) {
62
- return 'ByteArray';
63
- }
64
- if ((0, neo4j_driver_1.isVector)(val)) {
65
- return 'Vector';
66
- }
67
- return 'Unknown';
68
- };
69
- exports.getPropertyTypeDisplayName = getPropertyTypeDisplayName;
70
- function getCypherTypeName(val) {
71
- if (Array.isArray(val)) {
72
- return 'List';
73
- }
74
- if ((0, cypher_data_types_js_1.isCypherBasicPropertyType)(val)) {
75
- return (0, exports.getPropertyTypeDisplayName)(val);
76
- }
77
- if ((0, neo4j_driver_1.isNode)(val)) {
78
- return 'Node';
79
- }
80
- if ((0, neo4j_driver_1.isRelationship)(val)) {
81
- return 'Relationship';
82
- }
83
- if ((0, neo4j_driver_1.isPath)(val)) {
84
- return 'Path';
85
- }
86
- if ((0, neo4j_driver_1.isVector)(val)) {
87
- return 'Vector';
88
- }
89
- return 'Map';
90
- }
91
- //# sourceMappingURL=cypher-type-names.js.map