@neo4j-cypher/query-tools 2.0.0-next.36 → 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 (162) hide show
  1. package/CHANGELOG.md +21 -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 -2
  6. package/dist/esm/src/connectionErrorHandler.js +1 -1
  7. package/dist/esm/src/connectionErrorHandler.js.map +1 -1
  8. package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +1 -1
  9. package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +0 -4
  10. package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +1 -1
  11. package/dist/esm/src/cypher-execution/query-result.js +2 -9
  12. package/dist/esm/src/cypher-execution/query-result.js.map +1 -1
  13. package/dist/esm/src/data-transforms/record-to-string.js +1 -2
  14. package/dist/esm/src/data-transforms/record-to-string.js.map +1 -1
  15. package/dist/esm/src/integration-tests/pollingIntegrationTests.test.js.map +1 -1
  16. package/dist/esm/src/integration-tests/setupTestContainer.d.ts +1 -1
  17. package/dist/esm/src/integration-tests/setupTestContainer.js +1 -1
  18. package/dist/esm/src/integration-tests/setupTestContainer.js.map +1 -1
  19. package/dist/esm/src/metadataPoller.d.ts +4 -4
  20. package/dist/esm/src/metadataPoller.js +1 -1
  21. package/dist/esm/src/metadataPoller.js.map +1 -1
  22. package/dist/esm/src/neo4jConnection.d.ts +4 -4
  23. package/dist/esm/src/neo4jConnection.js +2 -2
  24. package/dist/esm/src/neo4jConnection.js.map +1 -1
  25. package/dist/esm/src/queries/dataSummary.d.ts +1 -1
  26. package/dist/esm/src/queries/dataSummary.js.map +1 -1
  27. package/dist/esm/src/queries/databases.d.ts +3 -13
  28. package/dist/esm/src/queries/databases.js +2 -5
  29. package/dist/esm/src/queries/databases.js.map +1 -1
  30. package/dist/esm/src/queries/functions.d.ts +1 -3
  31. package/dist/esm/src/queries/functions.js +2 -3
  32. package/dist/esm/src/queries/functions.js.map +1 -1
  33. package/dist/esm/src/queries/graphSchema.d.ts +2 -2
  34. package/dist/esm/src/queries/graphSchema.js +1 -1
  35. package/dist/esm/src/queries/graphSchema.js.map +1 -1
  36. package/dist/esm/src/queries/procedures.d.ts +1 -3
  37. package/dist/esm/src/queries/procedures.js +2 -3
  38. package/dist/esm/src/queries/procedures.js.map +1 -1
  39. package/dist/esm/src/queries/version.d.ts +1 -1
  40. package/dist/esm/src/result-transformers/graph-result-transformer.d.ts +4 -3
  41. package/dist/esm/src/result-transformers/graph-result-transformer.js +2 -2
  42. package/dist/esm/src/result-transformers/graph-result-transformer.js.map +1 -1
  43. package/dist/esm/src/schemaPoller.d.ts +3 -3
  44. package/dist/esm/src/schemaPoller.js.map +1 -1
  45. package/dist/esm/src/types/sdkTypes.d.ts +1 -6
  46. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  47. package/dist/types/src/connectionErrorHandler.d.ts +1 -2
  48. package/dist/types/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +1 -1
  49. package/dist/types/src/integration-tests/setupTestContainer.d.ts +1 -1
  50. package/dist/types/src/metadataPoller.d.ts +4 -4
  51. package/dist/types/src/neo4jConnection.d.ts +4 -4
  52. package/dist/types/src/queries/dataSummary.d.ts +1 -1
  53. package/dist/types/src/queries/databases.d.ts +3 -13
  54. package/dist/types/src/queries/functions.d.ts +1 -3
  55. package/dist/types/src/queries/graphSchema.d.ts +2 -2
  56. package/dist/types/src/queries/procedures.d.ts +1 -3
  57. package/dist/types/src/queries/version.d.ts +1 -1
  58. package/dist/types/src/result-transformers/graph-result-transformer.d.ts +4 -3
  59. package/dist/types/src/schemaPoller.d.ts +3 -3
  60. package/dist/types/src/types/sdkTypes.d.ts +1 -6
  61. package/dist/types/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +10 -9
  63. package/src/connectionErrorHandler.ts +6 -3
  64. package/src/cypher-execution/extract-unique-nodes-and-relationships.test.ts +0 -4
  65. package/src/cypher-execution/extract-unique-nodes-and-relationships.ts +1 -1
  66. package/src/cypher-execution/query-result.ts +1 -13
  67. package/src/data-transforms/record-to-string.ts +2 -3
  68. package/src/integration-tests/pollingIntegrationTests.test.ts +6 -5
  69. package/src/integration-tests/setupTestContainer.ts +3 -2
  70. package/src/metadataPoller.ts +14 -10
  71. package/src/neo4jConnection.ts +6 -6
  72. package/src/queries/dataSummary.ts +4 -4
  73. package/src/queries/databases.ts +5 -7
  74. package/src/queries/functions.ts +7 -4
  75. package/src/queries/graphSchema.ts +8 -7
  76. package/src/queries/procedures.ts +7 -4
  77. package/src/queries/version.ts +1 -1
  78. package/src/result-transformers/graph-result-transformer.ts +5 -11
  79. package/src/schemaPoller.ts +4 -3
  80. package/src/types/sdkTypes.ts +1 -7
  81. package/tsconfig.json +4 -4
  82. package/tsconfig.node.json +1 -2
  83. package/dist/cjs/package.json +0 -46
  84. package/dist/cjs/src/connectionErrorHandler.d.ts +0 -12
  85. package/dist/cjs/src/connectionErrorHandler.js +0 -41
  86. package/dist/cjs/src/connectionErrorHandler.js.map +0 -1
  87. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +0 -33
  88. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js +0 -93
  89. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js.map +0 -1
  90. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.d.ts +0 -1
  91. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +0 -129
  92. package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +0 -1
  93. package/dist/cjs/src/cypher-execution/query-result.d.ts +0 -11
  94. package/dist/cjs/src/cypher-execution/query-result.js +0 -239
  95. package/dist/cjs/src/cypher-execution/query-result.js.map +0 -1
  96. package/dist/cjs/src/data-transforms/clean-type.d.ts +0 -6
  97. package/dist/cjs/src/data-transforms/clean-type.js +0 -16
  98. package/dist/cjs/src/data-transforms/clean-type.js.map +0 -1
  99. package/dist/cjs/src/data-transforms/cypher-type-names.d.ts +0 -6
  100. package/dist/cjs/src/data-transforms/cypher-type-names.js +0 -91
  101. package/dist/cjs/src/data-transforms/cypher-type-names.js.map +0 -1
  102. package/dist/cjs/src/data-transforms/format-float.d.ts +0 -1
  103. package/dist/cjs/src/data-transforms/format-float.js +0 -14
  104. package/dist/cjs/src/data-transforms/format-float.js.map +0 -1
  105. package/dist/cjs/src/data-transforms/record-to-string.d.ts +0 -8
  106. package/dist/cjs/src/data-transforms/record-to-string.js +0 -185
  107. package/dist/cjs/src/data-transforms/record-to-string.js.map +0 -1
  108. package/dist/cjs/src/index.d.ts +0 -17
  109. package/dist/cjs/src/index.js +0 -33
  110. package/dist/cjs/src/index.js.map +0 -1
  111. package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.d.ts +0 -1
  112. package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.js +0 -42
  113. package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.js.map +0 -1
  114. package/dist/cjs/src/integration-tests/setupTestContainer.d.ts +0 -10
  115. package/dist/cjs/src/integration-tests/setupTestContainer.js +0 -23
  116. package/dist/cjs/src/integration-tests/setupTestContainer.js.map +0 -1
  117. package/dist/cjs/src/metadataPoller.d.ts +0 -34
  118. package/dist/cjs/src/metadataPoller.js +0 -214
  119. package/dist/cjs/src/metadataPoller.js.map +0 -1
  120. package/dist/cjs/src/neo4jConnection.d.ts +0 -36
  121. package/dist/cjs/src/neo4jConnection.js +0 -128
  122. package/dist/cjs/src/neo4jConnection.js.map +0 -1
  123. package/dist/cjs/src/queries/dataSummary.d.ts +0 -7
  124. package/dist/cjs/src/queries/dataSummary.js +0 -33
  125. package/dist/cjs/src/queries/dataSummary.js.map +0 -1
  126. package/dist/cjs/src/queries/databases.d.ts +0 -38
  127. package/dist/cjs/src/queries/databases.js +0 -114
  128. package/dist/cjs/src/queries/databases.js.map +0 -1
  129. package/dist/cjs/src/queries/functions.d.ts +0 -16
  130. package/dist/cjs/src/queries/functions.js +0 -88
  131. package/dist/cjs/src/queries/functions.js.map +0 -1
  132. package/dist/cjs/src/queries/graphSchema.d.ts +0 -28
  133. package/dist/cjs/src/queries/graphSchema.js +0 -88
  134. package/dist/cjs/src/queries/graphSchema.js.map +0 -1
  135. package/dist/cjs/src/queries/procedures.d.ts +0 -16
  136. package/dist/cjs/src/queries/procedures.js +0 -106
  137. package/dist/cjs/src/queries/procedures.js.map +0 -1
  138. package/dist/cjs/src/queries/roles.d.ts +0 -11
  139. package/dist/cjs/src/queries/roles.js +0 -24
  140. package/dist/cjs/src/queries/roles.js.map +0 -1
  141. package/dist/cjs/src/queries/users.d.ts +0 -15
  142. package/dist/cjs/src/queries/users.js +0 -24
  143. package/dist/cjs/src/queries/users.js.map +0 -1
  144. package/dist/cjs/src/queries/version.d.ts +0 -7
  145. package/dist/cjs/src/queries/version.js +0 -32
  146. package/dist/cjs/src/queries/version.js.map +0 -1
  147. package/dist/cjs/src/result-transformers/graph-result-transformer.d.ts +0 -36
  148. package/dist/cjs/src/result-transformers/graph-result-transformer.js +0 -37
  149. package/dist/cjs/src/result-transformers/graph-result-transformer.js.map +0 -1
  150. package/dist/cjs/src/schemaPoller.d.ts +0 -45
  151. package/dist/cjs/src/schemaPoller.js +0 -199
  152. package/dist/cjs/src/schemaPoller.js.map +0 -1
  153. package/dist/cjs/src/types/cypher-data-types.d.ts +0 -41
  154. package/dist/cjs/src/types/cypher-data-types.js +0 -47
  155. package/dist/cjs/src/types/cypher-data-types.js.map +0 -1
  156. package/dist/cjs/src/types/sdkTypes.d.ts +0 -23
  157. package/dist/cjs/src/types/sdkTypes.js +0 -11
  158. package/dist/cjs/src/types/sdkTypes.js.map +0 -1
  159. package/dist/cjs/tsconfig.tsbuildinfo +0 -1
  160. package/dist/cjs/vitest.config.d.mts +0 -2
  161. package/dist/cjs/vitest.config.mjs +0 -10
  162. package/dist/cjs/vitest.config.mjs.map +0 -1
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts", "../../src/connectionErrorHandler.ts", "../../src/cypher-execution/extract-unique-nodes-and-relationships.ts", "../../src/cypher-execution/query-result.ts", "../../src/data-transforms/cypher-type-names.ts", "../../src/types/cypher-data-types.ts", "../../src/data-transforms/record-to-string.ts", "../../src/data-transforms/format-float.ts", "../../src/result-transformers/graph-result-transformer.ts", "../../src/schemaPoller.ts", "../../src/metadataPoller.ts", "../../src/queries/databases.ts", "../../src/types/sdkTypes.ts", "../../src/queries/dataSummary.ts", "../../src/queries/functions.ts", "../../src/data-transforms/clean-type.ts", "../../src/queries/procedures.ts", "../../src/queries/roles.ts", "../../src/queries/users.ts", "../../src/queries/graphSchema.ts", "../../package.json", "../../src/neo4jConnection.ts", "../../src/queries/version.ts"],
4
+ "sourcesContent": ["export { FRIENDLY_ERROR_MESSAGES } from './connectionErrorHandler.js';\nexport type { ConnectionError } from './connectionErrorHandler.js';\nexport * from './cypher-execution/extract-unique-nodes-and-relationships.js';\nexport * from './cypher-execution/query-result.js';\nexport type { Neo4jType } from './cypher-execution/query-result.js';\nexport {\n getCypherTypeName,\n getPropertyTypeDisplayName,\n} from './data-transforms/cypher-type-names.js';\nexport type { CypherDataTypeName } from './data-transforms/cypher-type-names.js';\nexport * from './data-transforms/record-to-string.js';\nexport * from './types/cypher-data-types.js';\nexport type {\n ConnectedMetadataPoller as CypherMetadataPoller,\n DisconnectedMetadataPoller as EmptyMetadataPoller,\n MetadataPoller,\n} from './metadataPoller.js';\nexport type {\n Neo4jConnection,\n QueryResultWithLimit,\n} from './neo4jConnection.js';\nexport type { Database } from './queries/databases.js';\nexport { graphResultTransformer } from './result-transformers/graph-result-transformer.js';\nexport { Neo4jSchemaPoller } from './schemaPoller.js';\nexport type { ConnnectionResult } from './schemaPoller.js';\nexport type { CypherDataType } from './types/cypher-data-types.js';\nexport { getVersion } from './queries/version.js';\n", "import type { Neo4jError } from 'neo4j-driver';\n\nexport const FRIENDLY_ERROR_MESSAGES: {\n Default: string;\n [key: string]: string;\n} = {\n 'Neo.ClientError.Security.AuthenticationRateLimit':\n 'Double check your username and password',\n 'Neo.ClientError.Security.CredentialsExpired':\n 'Double check your username and password',\n 'Neo.ClientError.Security.Unauthorized':\n 'Double check your username and password',\n 'Neo.ClientError.Security.TokenExpired':\n 'Double check your username and password',\n 'Neo.ClientError.Database.DatabaseNotFound':\n 'Double check that the database exists',\n ServiceUnavailable:\n 'Double check the scheme, host and port are correct, make sure Neo4j is running and that you have a network connection if needed',\n Default: 'An error occurred while connecting to Neo4j',\n};\n\nexport type ConnectionError = {\n message: string;\n friendlyMessage: string;\n code: string;\n};\n\nexport function isRetriableNeo4jError(error: unknown): boolean {\n return isNeo4jError(error) ? error.retriable : true;\n}\n\nfunction isNeo4jError(error: unknown): error is Neo4jError {\n return (\n error instanceof Error &&\n (error as Neo4jError).code !== undefined &&\n (error as Neo4jError).message !== undefined\n );\n}\n\nexport function getConnectionError(error: unknown): ConnectionError {\n if (isNeo4jError(error)) {\n return {\n message: stripTrailingPeriod(error.message),\n code: error.code,\n friendlyMessage:\n FRIENDLY_ERROR_MESSAGES[error.code] ?? FRIENDLY_ERROR_MESSAGES.Default,\n };\n }\n\n return {\n message: '',\n code: '',\n friendlyMessage: FRIENDLY_ERROR_MESSAGES.Default,\n };\n}\n\nfunction stripTrailingPeriod(message: string): string {\n return message.endsWith('.') ? message.slice(0, -1) : message;\n}\n", "import type {\n Integer,\n Node,\n Path,\n Record,\n RecordShape,\n Relationship,\n} from 'neo4j-driver';\nimport { isNode, isPath, isRelationship } from 'neo4j-driver';\nimport type { CypherProperty } from '../types/cypher-data-types.js';\n\nexport type Properties = RecordShape<string, CypherProperty>;\n\n/**\n * Result type containing deduplicated nodes and relationships extracted from Neo4j records.\n */\nexport type DeduplicatedNodesAndRels = {\n /** Array of unique nodes found in the records */\n nodes: Node<Integer, Properties, string>[];\n /** Array of unique relationships found in the records */\n relationships: Relationship<Integer, Properties, string>[];\n /** Whether the max node limit was reached during extraction */\n limitHit: boolean;\n};\n\n/**\n * Extracts and deduplicates nodes and relationships from Neo4j query records.\n *\n * This function processes Neo4j records to find all nodes and relationships,\n * removing duplicates based on their element IDs. It can handle various data\n * structures including individual nodes/relationships, paths, arrays, and\n * nested objects.\n *\n * @param records - Array of Neo4j records to process\n * @param options - Configuration options for extraction\n * @param options.nodeLimit - Maximum number of unique nodes to extract (optional)\n * @param options.keepDanglingRels - Whether to keep relationships whose start/end nodes are missing (default: false)\n *\n * @returns The {@link DeduplicatedNodesAndRels} containing unique nodes and relationships\n */\nexport const extractUniqueNodesAndRels = (\n records: Record[],\n {\n nodeLimit,\n keepDanglingRels = false,\n }: { nodeLimit?: number; keepDanglingRels?: boolean } = {},\n): DeduplicatedNodesAndRels => {\n let limitHit = false;\n\n const items = new Set<unknown>();\n\n for (const record of records) {\n for (const key of record.keys) {\n items.add(record.get(key));\n }\n }\n\n const paths: Path[] = [];\n\n const nodeMap = new Map<string, Node>();\n function addNode(n: Node) {\n if (!limitHit) {\n const id = n.elementId.toString();\n if (!nodeMap.has(id)) {\n nodeMap.set(id, n);\n }\n if (typeof nodeLimit === 'number' && nodeMap.size === nodeLimit) {\n limitHit = true;\n }\n }\n }\n\n const relMap = new Map<string, Relationship>();\n function addRel(r: Relationship) {\n const id = r.elementId.toString();\n if (!relMap.has(id)) {\n relMap.set(id, r);\n }\n }\n\n const findAllEntities = (item: unknown) => {\n if (typeof item !== 'object' || !item) {\n return;\n }\n\n if (isRelationship(item)) {\n addRel(item);\n } else if (isNode(item)) {\n addNode(item);\n } else if (isPath(item)) {\n paths.push(item);\n } else if (Array.isArray(item)) {\n item.forEach(findAllEntities);\n } else {\n Object.values(item).forEach(findAllEntities);\n }\n };\n\n findAllEntities(Array.from(items));\n\n for (const path of paths) {\n addNode(path.start);\n addNode(path.end);\n for (const segment of path.segments) {\n addNode(segment.start);\n addNode(segment.end);\n addRel(segment.relationship);\n }\n }\n\n const nodes = Array.from(nodeMap.values());\n\n const relationships = Array.from(relMap.values()).filter((item) => {\n if (keepDanglingRels) {\n return true;\n }\n\n // We'd get dangling relationships from\n // match ()-[a:ACTED_IN]->() return a;\n // or from hitting the node limit\n const start = item.startNodeElementId.toString();\n const end = item.endNodeElementId.toString();\n return nodeMap.has(start) && nodeMap.has(end);\n });\n\n return { nodes, relationships, limitHit };\n};\n", "import type { QueryResult, Record as Neo4jRecord } from 'neo4j-driver';\nimport { int, isInt, isVector, types, Vector } from 'neo4j-driver';\n\nexport const RESERVED_TYPE_PROPERTY_NAME = 'transport-class';\nexport const ESCAPE_CHAR = '_';\n\nexport type Neo4jType =\n | typeof types.Record\n | typeof types.Result\n | typeof types.ResultSummary\n | typeof types.Node\n | typeof types.PathSegment\n | typeof types.Path\n | typeof types.Relationship\n | typeof types.Point\n | typeof types.Date\n | typeof types.DateTime\n | typeof types.Duration\n | typeof types.LocalDateTime\n | typeof types.LocalTime\n | typeof types.Time\n | typeof types.Integer\n | typeof types.Vector\n | Record<string, unknown>\n | Neo4jType[]\n | undefined\n | null;\n\nexport function addAnnotationProp(\n obj: Record<string, unknown>,\n type: string | unknown,\n prop: string = RESERVED_TYPE_PROPERTY_NAME,\n): Record<string, unknown> {\n // The shallow copy is needed because the object type returned by the driver is not extensible.\n let objShallowCopy = Object.entries(obj).reduce<Record<string, unknown>>(\n (newObj, [key, value]) => {\n newObj[key] = value;\n return newObj;\n },\n {},\n );\n\n // Recursively escape the reserved property if it already exists.\n if (Object.prototype.hasOwnProperty.call(objShallowCopy, prop)) {\n objShallowCopy = addAnnotationProp(\n objShallowCopy,\n objShallowCopy[prop],\n ESCAPE_CHAR + prop,\n );\n delete objShallowCopy[prop];\n }\n\n objShallowCopy[prop] = type;\n return objShallowCopy;\n}\n\nexport function deleteAnnotationProp(obj: Record<string, unknown>): void {\n let escapedProp = RESERVED_TYPE_PROPERTY_NAME;\n\n while (Object.prototype.hasOwnProperty.call(obj, escapedProp)) {\n // On the first loop since `escapedProp` is not actually escaped, this\n // line does nothing. In the next loops we only want to replace the\n // first instance of the escape char.\n obj[escapedProp.replace(ESCAPE_CHAR, '')] = obj[escapedProp];\n\n delete obj[escapedProp];\n escapedProp = ESCAPE_CHAR + escapedProp;\n }\n}\n\nfunction copyAndAnnotate(\n obj: Exclude<Neo4jType | QueryResult, undefined | null | Neo4jType[]>,\n): Record<string, unknown> {\n return Object.keys(obj).reduce<Record<string, unknown>>((newObj, key) => {\n // @ts-ignore TypeScript complains about not being able to use `key` to\n // index `obj`, but we know that `key` exists in `obj` since it's coming\n // from Object.keys.\n const value = obj[key] as unknown as Neo4jType;\n\n newObj[key] = serializeTypeAnnotations(value);\n return newObj;\n }, {});\n}\n\nexport function serializeTypeAnnotations(\n item: QueryResult | Neo4jRecord,\n): Record<string, unknown>;\nexport function serializeTypeAnnotations(\n item: Neo4jType,\n): Record<string, unknown> | null | undefined | unknown[];\nexport function serializeTypeAnnotations(\n item: Neo4jType | QueryResult | Neo4jRecord,\n): Record<string, unknown> | null | undefined | unknown[] {\n if (Array.isArray(item)) {\n return item.map((i) => serializeTypeAnnotations(i));\n }\n if (item === null || item === undefined) {\n // This is needed due to the method overloading types\n return item;\n }\n\n if (item instanceof types.Record) {\n // @ts-ignore There are two versions of the type for Record coming from the\n // driver.\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Record');\n }\n if (item instanceof types.ResultSummary) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'ResultSummary');\n }\n if (item instanceof types.Node) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Node');\n }\n if (item instanceof types.PathSegment) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'PathSegment');\n }\n if (item instanceof types.Path) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Path');\n }\n if (item instanceof types.Relationship) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Relationship');\n }\n if (item instanceof types.Point) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Point');\n }\n if (item instanceof types.Date) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Date');\n }\n if (item instanceof types.DateTime) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'DateTime');\n }\n if (item instanceof types.Duration) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Duration');\n }\n if (item instanceof types.LocalDateTime) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'LocalDateTime');\n }\n if (item instanceof types.LocalTime) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'LocalTime');\n }\n if (item instanceof types.Time) {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Time');\n }\n if (isInt(item)) {\n const tmp = { ...item };\n return addAnnotationProp(tmp, 'Integer');\n }\n if (isVector(item)) {\n const typedArray = item.asTypedArray();\n const values =\n typedArray instanceof BigInt64Array\n ? Array.from(typedArray, (v) => v.toString())\n : Array.from(typedArray);\n\n return addAnnotationProp(\n {\n _type: item.getType(),\n _values: values,\n },\n 'Vector',\n );\n }\n if (typeof item === 'object') {\n const tmp = copyAndAnnotate(item);\n return addAnnotationProp(tmp, 'Object');\n }\n\n // @ts-ignore this type isn't inferred correctly\n return item;\n}\n\nexport function deserializeTypeAnnotations(\n rawItem: Record<string, unknown>,\n): QueryResult | Neo4jRecord;\nexport function deserializeTypeAnnotations(rawItem: any): any;\nexport function deserializeTypeAnnotations(\n rawItem: Record<string, unknown> | any,\n): QueryResult | any {\n if (Array.isArray(rawItem)) {\n const mapped = rawItem.map((i) => deserializeTypeAnnotations(i));\n return mapped;\n }\n\n if (\n rawItem === null ||\n rawItem === undefined ||\n typeof rawItem === 'boolean' ||\n typeof rawItem === 'string' ||\n !Object.prototype.hasOwnProperty.call(rawItem, RESERVED_TYPE_PROPERTY_NAME)\n ) {\n return rawItem;\n }\n\n const item = { ...rawItem };\n const className = item[RESERVED_TYPE_PROPERTY_NAME];\n deleteAnnotationProp(item);\n\n switch (className) {\n case 'Record':\n return new types.Record(\n deserializeTypeAnnotations(item.keys),\n deserializeTypeAnnotations(item._fields),\n deserializeTypeAnnotations(item._fieldLookup),\n );\n case 'ResultSummary': {\n const metadata = {\n ...item,\n type: item.queryType,\n db: item.database.name,\n\n result_available_after: deserializeTypeAnnotations(\n item.resultAvailableAfter,\n ),\n result_consumed_after: deserializeTypeAnnotations(\n item.resultConsumedAfter,\n ),\n\n profile: item.profile === false ? null : item.profile,\n plan: item.plan === false ? null : item.plan,\n\n stream_summary: { have_records_streamed: true },\n\n server: {\n ...item.server,\n version: item.server.agent,\n },\n };\n\n return new types.ResultSummary(\n deserializeTypeAnnotations(item.query.text),\n deserializeTypeAnnotations(item.query.parameters),\n deserializeTypeAnnotations(metadata),\n deserializeTypeAnnotations(item.server.protocolVersion),\n );\n }\n case 'Node':\n return new types.Node(\n deserializeTypeAnnotations(item.identity),\n item.labels,\n deserializeTypeAnnotations(item.properties),\n item.elementId,\n );\n case 'Relationship':\n return new types.Relationship(\n deserializeTypeAnnotations(item.identity),\n deserializeTypeAnnotations(item.start),\n deserializeTypeAnnotations(item.end),\n item.type,\n deserializeTypeAnnotations(item.properties),\n item.elementId,\n item.startNodeElementId,\n item.endNodeElementId,\n );\n case 'PathSegment':\n return new types.PathSegment(\n deserializeTypeAnnotations(item.start),\n deserializeTypeAnnotations(item.relationship),\n deserializeTypeAnnotations(item.end),\n );\n case 'Path': {\n const { segments } = item;\n\n return new types.Path(\n deserializeTypeAnnotations(item.start),\n deserializeTypeAnnotations(item.end),\n (Array.isArray(segments) ? segments : []).map((x: any) =>\n deserializeTypeAnnotations(x),\n ),\n );\n }\n case 'Point':\n return new types.Point(\n deserializeTypeAnnotations(item.srid),\n deserializeTypeAnnotations(item.x),\n deserializeTypeAnnotations(item.y),\n deserializeTypeAnnotations(item.z),\n );\n case 'Date':\n return new types.Date(\n deserializeTypeAnnotations(item.year),\n deserializeTypeAnnotations(item.month),\n deserializeTypeAnnotations(item.day),\n );\n case 'DateTime':\n return new types.DateTime(\n deserializeTypeAnnotations(item.year),\n deserializeTypeAnnotations(item.month),\n deserializeTypeAnnotations(item.day),\n deserializeTypeAnnotations(item.hour),\n deserializeTypeAnnotations(item.minute),\n deserializeTypeAnnotations(item.second),\n deserializeTypeAnnotations(item.nanosecond),\n deserializeTypeAnnotations(item.timeZoneOffsetSeconds),\n deserializeTypeAnnotations(item.timeZoneId),\n );\n case 'Duration':\n return new types.Duration(\n deserializeTypeAnnotations(item.months),\n deserializeTypeAnnotations(item.days),\n deserializeTypeAnnotations(item.seconds),\n deserializeTypeAnnotations(item.nanoseconds),\n );\n case 'LocalDateTime':\n return new types.LocalDateTime(\n deserializeTypeAnnotations(item.year),\n deserializeTypeAnnotations(item.month),\n deserializeTypeAnnotations(item.day),\n deserializeTypeAnnotations(item.hour),\n deserializeTypeAnnotations(item.minute),\n deserializeTypeAnnotations(item.second),\n deserializeTypeAnnotations(item.nanosecond),\n );\n case 'LocalTime':\n return new types.LocalTime(\n deserializeTypeAnnotations(item.hour),\n deserializeTypeAnnotations(item.minute),\n deserializeTypeAnnotations(item.second),\n deserializeTypeAnnotations(item.nanosecond),\n );\n case 'Time':\n return new types.Time(\n deserializeTypeAnnotations(item.hour),\n deserializeTypeAnnotations(item.minute),\n deserializeTypeAnnotations(item.second),\n deserializeTypeAnnotations(item.nanosecond),\n deserializeTypeAnnotations(item.timeZoneOffsetSeconds),\n );\n case 'Integer':\n return int(item);\n\n case 'Vector': {\n // Reconstruct the appropriate TypedArray from serialized values\n const type = item._type;\n const values = item._values;\n let typedArray;\n\n switch (type) {\n case 'INT8':\n typedArray = new Int8Array(values);\n break;\n case 'INT16':\n typedArray = new Int16Array(values);\n break;\n case 'INT32':\n typedArray = new Int32Array(values);\n break;\n case 'INT64':\n // For INT64, values are stored as strings to avoid BigInt serialization issues\n typedArray = new BigInt64Array(values.map((v: any) => BigInt(v)));\n break;\n case 'FLOAT32':\n typedArray = new Float32Array(values);\n break;\n case 'FLOAT64':\n typedArray = new Float64Array(values);\n break;\n default:\n // TODO test and veriy\n // fallback to plain object handling to avoid crashing\n // if someone were to add a new vector type, we don't want to crash the entire application\n return item;\n }\n\n return new Vector(typedArray);\n }\n case 'Object':\n return Object.keys(item).reduce<Record<string, unknown>>(\n (newObj, key) => {\n newObj[key] = deserializeTypeAnnotations(item[key]);\n return newObj;\n },\n {},\n );\n default:\n return item;\n }\n}\n", "import {\n isDate,\n isDateTime,\n isDuration,\n isInt,\n isLocalDateTime,\n isLocalTime,\n isNode,\n isPath,\n isPoint,\n isRelationship,\n isTime,\n isVector,\n} from 'neo4j-driver';\n\nimport type {\n CypherDataType,\n CypherProperty,\n} from '../types/cypher-data-types.js';\nimport {\n isCypherBasicPropertyType,\n isInt8Array,\n} from '../types/cypher-data-types.js';\n\ntype CypherPropertyName =\n | 'Float'\n | 'null'\n | 'String'\n | 'Bigint'\n | 'Boolean'\n | `List${string}`\n | 'LocalTime'\n | 'Time'\n | 'Date'\n | 'LocalDateTime'\n | 'DateTime'\n | 'Integer'\n | 'Duration'\n | 'Point'\n | 'ByteArray'\n | 'Vector'\n | 'Unknown';\n\nconst capitalize = (s: string) => s.charAt(0).toUpperCase() + s.slice(1);\n\nexport const getPropertyTypeDisplayName = (\n val?: CypherProperty,\n): CypherPropertyName => {\n const jsType = typeof val;\n if (jsType === 'number') {\n return 'Float';\n }\n\n if (val === null || val === undefined) {\n /* There's no concept of undefined in cypher, null serves both purposes */\n return 'null';\n }\n\n // Need to duplicate this `typeof` for typescripts type inference to understand\n if (typeof val !== 'object') {\n const capitalized = capitalize(jsType);\n\n switch (capitalized) {\n case 'String':\n case 'Bigint':\n case 'Boolean':\n return capitalized;\n default:\n return 'Unknown';\n }\n }\n\n if (val instanceof Array) {\n const [firstVal] = val;\n if (firstVal !== undefined) {\n // Lists in properties are only allowed to contain a single type so all items are the same type\n return `List<${getPropertyTypeDisplayName(firstVal)}>(${val.length})`;\n }\n return `List(${val.length})`;\n }\n\n if (isLocalTime(val)) {\n return 'LocalTime';\n }\n\n if (isTime(val)) {\n return 'Time';\n }\n\n if (isDate(val)) {\n return 'Date';\n }\n\n if (isLocalDateTime(val)) {\n return 'LocalDateTime';\n }\n\n if (isDateTime(val)) {\n return 'DateTime';\n }\n\n if (isInt(val)) {\n return 'Integer';\n }\n\n if (isDuration(val)) {\n return 'Duration';\n }\n\n if (isPoint(val)) {\n return 'Point';\n }\n\n if (isInt8Array(val)) {\n return 'ByteArray';\n }\n\n if (isVector(val)) {\n return 'Vector';\n }\n\n return 'Unknown';\n};\n\nexport type CypherDataTypeName =\n | CypherPropertyName\n | 'Node'\n | 'Relationship'\n | 'Path'\n | 'Map'\n | 'Vector';\nexport function getCypherTypeName(val?: CypherDataType): CypherDataTypeName {\n if (Array.isArray(val)) {\n return 'List';\n }\n\n if (isCypherBasicPropertyType(val)) {\n return getPropertyTypeDisplayName(val);\n }\n if (isNode(val)) {\n return 'Node';\n }\n\n if (isRelationship(val)) {\n return 'Relationship';\n }\n\n if (isPath(val)) {\n return 'Path';\n }\n\n if (isVector(val)) {\n return 'Vector';\n }\n\n return 'Map';\n}\n", "import type {\n Date,\n DateTime,\n Duration,\n Integer,\n LocalDateTime,\n LocalTime,\n Node,\n Path,\n Point,\n Relationship,\n Time,\n Vector,\n} from 'neo4j-driver';\nimport {\n isDate,\n isDateTime,\n isDuration,\n isInt,\n isLocalDateTime,\n isLocalTime,\n isPoint,\n isTime,\n isVector,\n} from 'neo4j-driver';\ntype NumberOrInteger = number | Integer | bigint;\n\n/**\n The neo4j driver type mapping - https://neo4j.com/docs/javascript-manual/current/cypher-workflow/#js-driver-type-mapping\n \n Star denotes custom driver class.\n \n Cypher(neo4j) - Driver type(js)\n null - null\n List - array\n Map - Object\n Boolean - boolean\n Integer - Integer*\n Float - number\n String - string\n ByteArray - Int8Array\n Date - Date*\n Time - Time*\n LocalTime - LocalTime*\n DateTime - DateTime*\n LocalDateTime - LocalDateTime*\n Duration - Duration*\n Point - Point*\n Node - Node*\n Relationship - Relationship*\n Path - Path*\n */\n\nexport type CypherBasicPropertyType =\n | null\n | boolean\n | number\n | string\n | Integer\n | bigint\n | Int8Array\n | CypherTemporalType\n | Point\n | Vector<\n | BigInt64Array\n | Float32Array\n | Float64Array\n | Int8Array\n | Int16Array\n | Int32Array\n >;\n\nexport type CypherTemporalType =\n | Date<NumberOrInteger>\n | Time<NumberOrInteger>\n | DateTime\n | LocalTime<NumberOrInteger>\n | LocalDateTime\n | Duration<NumberOrInteger>;\n\n// Lists are also allowed as property types, as long as all items are the same basic type\nexport type CypherProperty =\n | CypherBasicPropertyType\n | CypherBasicPropertyType[];\n\n// CypherStructuralType can NOT be used as property or parameter\nexport type CypherStructuralType = Node | Relationship | Path;\n\n// Maps & lists CAN be used as parameters but not as properties\n// with the exception that list if all it's items are the same CypherBasicPropertyType\nexport type CypherList = (\n | CypherBasicPropertyType\n | CypherStructuralType\n | CypherMap\n | CypherList\n)[];\n\nexport interface CypherMap {\n [key: string]:\n | CypherBasicPropertyType\n | CypherStructuralType\n | CypherMap\n | CypherList;\n}\n\nexport type CypherDataType =\n | CypherBasicPropertyType\n | CypherStructuralType\n | CypherMap\n | CypherList;\n\nexport const isCypherTemporalType = (\n anything: unknown,\n): anything is CypherTemporalType => {\n if (typeof anything === 'object' && anything !== null) {\n return [\n isDate,\n isTime,\n isDateTime,\n isLocalTime,\n isLocalDateTime,\n isDuration,\n ].some((tester) => tester(anything));\n }\n return false;\n};\n\nexport const isCypherBasicPropertyType = (\n value: unknown,\n): value is CypherBasicPropertyType => {\n const valType = typeof value;\n\n return (\n value === null ||\n valType === 'boolean' ||\n valType === 'string' ||\n valType === 'number' ||\n valType === 'bigint' ||\n value?.constructor === Int8Array ||\n isInt(value) ||\n isCypherTemporalType(value) ||\n isPoint(value) ||\n isVector(value)\n );\n};\n\nexport const isCypherPropertyType = (\n value: unknown,\n): value is CypherProperty => {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return true;\n }\n\n return isCypherBasicPropertyType(value[0]);\n }\n return isCypherBasicPropertyType(value);\n};\n\nexport function isInt8Array(val: unknown): val is Int8Array {\n return (\n typeof val === 'object' && val !== null && val.constructor === Int8Array\n );\n}\n", "import type { Node, Path, Point, Relationship } from 'neo4j-driver';\nimport {\n isDate,\n isInt,\n isLocalDateTime,\n isNode,\n isPath,\n isPoint,\n isRelationship,\n isVector,\n} from 'neo4j-driver';\n\nimport type {\n CypherDataType,\n CypherProperty,\n} from '../types/cypher-data-types.js';\nimport {\n isCypherPropertyType,\n isCypherTemporalType,\n isInt8Array,\n} from '../types/cypher-data-types.js';\nimport { formatFloat } from './format-float.js';\n\nexport const spacialFormat = (p: Point): string => {\n const zString = p.z !== undefined ? `, z:${formatFloat(p.z)}` : '';\n return `point({srid:${p.srid.toString()}, x:${formatFloat(\n p.x,\n )}, y:${formatFloat(p.y)}${zString}})`;\n};\n\nexport function propertyToString(\n property: CypherProperty,\n quoteStrings = true,\n localeFormattedDates = false,\n): string {\n if (Array.isArray(property)) {\n return `[${property.map((p) => propertyToString(p, quoteStrings)).join(', ')}]`;\n }\n\n if (property === null) {\n return 'null';\n }\n\n if (isCypherTemporalType(property)) {\n if (isDate(property) && localeFormattedDates) {\n return property.toStandardDate().toLocaleDateString();\n }\n if (isLocalDateTime(property) && localeFormattedDates) {\n return property.toStandardDate().toLocaleString();\n }\n return property.toString();\n }\n\n if (\n typeof property === 'boolean' ||\n isInt(property) ||\n typeof property === 'bigint' ||\n isVector(property)\n ) {\n return property.toString();\n }\n\n if (isPoint(property)) {\n return spacialFormat(property);\n }\n\n if (typeof property === 'number') {\n return formatFloat(property);\n }\n\n if (typeof property === 'string') {\n if (quoteStrings) {\n return `\"${property}\"`;\n }\n return property;\n }\n\n if (isInt8Array(property)) {\n return 'ByteArray';\n }\n\n // This case shouldn't be used, but added as a fallback\n return String(property);\n}\n\nconst cypherShellStyleStringify = (\n value: Node | Relationship | Path,\n {\n stringStyle,\n quoteStrings,\n }: { stringStyle: CypherStringStyle; quoteStrings: boolean },\n): string => {\n const includeIds = stringStyle === 'cypher-with-ids';\n if (isNode(value)) {\n const labels = value.labels.length > 0 ? `:${value.labels.join(':')}` : '';\n const properties = Object.entries(value.properties)\n .map(([key, val]: [string, CypherProperty]) => {\n return `${key}: ${propertyToString(val, quoteStrings)}`;\n })\n .concat(\n includeIds\n ? [\n `<elementId>: \"${value.elementId.toString()}\", <id>: ${value.identity.toString()}`,\n ]\n : [],\n )\n .join(', ');\n const propertiesString = properties.length > 0 ? `{${properties}}` : '';\n\n const space = labels.length > 0 && propertiesString.length > 0 ? ' ' : '';\n return `(${labels}${space}${propertiesString})`;\n } else if (isRelationship(value)) {\n const type = value.type ? `:${value.type}` : '';\n\n const properties = Object.entries(value.properties)\n .map(([key, val]: [string, CypherProperty]) => {\n return `${key}: ${propertyToString(val, quoteStrings)}`;\n })\n .concat(\n includeIds\n ? [\n `<elementId>: ${\n quoteStrings\n ? `\"${value.elementId.toString()}\"`\n : value.elementId.toString()\n }, <id>: ${value.identity.toString()}`,\n ]\n : [],\n )\n .join(', ');\n const propertiesString = properties.length > 0 ? ` {${properties}}` : '';\n\n return `[${type}${propertiesString}]`;\n } else if (isPath(value)) {\n if (value.segments.length === 0) {\n return cypherShellStyleStringify(value.start, {\n stringStyle,\n quoteStrings,\n });\n }\n\n return value.segments\n .map((segment, index) => {\n const result: string[] = [];\n\n if (index === 0) {\n result.push(\n cypherShellStyleStringify(segment.start, {\n stringStyle,\n quoteStrings,\n }),\n );\n }\n\n if (\n segment.start.elementId === segment.relationship.startNodeElementId\n ) {\n result.push('-');\n result.push(\n cypherShellStyleStringify(segment.relationship, {\n stringStyle,\n quoteStrings,\n }),\n );\n result.push('->');\n result.push(\n cypherShellStyleStringify(segment.end, {\n stringStyle,\n quoteStrings,\n }),\n );\n } else {\n result.push('<-');\n result.push(\n cypherShellStyleStringify(segment.relationship, {\n stringStyle,\n quoteStrings,\n }),\n );\n result.push('-');\n result.push(\n cypherShellStyleStringify(segment.end, {\n stringStyle,\n quoteStrings,\n }),\n );\n }\n\n return result.join('');\n })\n .join('');\n }\n return '';\n};\n\nexport type CypherStringStyle = 'cypher' | 'cypher-with-ids';\nexport type StringStyle = 'json' | CypherStringStyle;\ntype RecursiveStringifyOptions = {\n indentationLevel?: number;\n quoteStrings?: boolean;\n stringStyle?: StringStyle;\n};\nconst recursiveStringify = (\n value: CypherDataType | undefined,\n {\n indentationLevel = 0,\n quoteStrings = true,\n stringStyle = 'json',\n }: RecursiveStringifyOptions = {},\n): string => {\n if (value === undefined) {\n return '';\n }\n\n const indentation = ' '.repeat(indentationLevel);\n\n const nextIndentationLevel = indentationLevel + 1;\n const nextIdentation = ' '.repeat(nextIndentationLevel);\n\n if (isCypherPropertyType(value)) {\n return propertyToString(value, quoteStrings);\n }\n\n if (Array.isArray(value)) {\n return `[\n${value\n .map(\n (v) =>\n `${nextIdentation}${recursiveStringify(v, {\n indentationLevel: nextIndentationLevel,\n quoteStrings,\n })}`,\n )\n .join(',\\n')}\\n${indentation}]`;\n }\n\n // Now we have nodes, relationships, paths and cypher maps left.\n // No special care for them stringify them as we would normal objects\n // unless we are in cypher-shell style\n if (\n stringStyle !== 'json' &&\n (isNode(value) || isRelationship(value) || isPath(value))\n ) {\n return cypherShellStyleStringify(value, { stringStyle, quoteStrings });\n }\n\n const entries = Object.entries(value);\n if (entries.length === 0) {\n return '{}';\n }\n\n return `{\n${entries\n .map(([key, val]: [string, CypherProperty]) => {\n return `${nextIdentation}${key}: ${recursiveStringify(val, {\n indentationLevel: nextIndentationLevel,\n quoteStrings,\n })}`;\n })\n .join(',\\n')}\n${indentation}}`;\n};\n\nexport const cypherDataToString = (\n map: CypherDataType | undefined,\n stringStyle: StringStyle = 'json',\n quoteStrings = true,\n): string => {\n return recursiveStringify(map, { quoteStrings, stringStyle });\n};\n\nexport const cypherDataToCypherCSVString = (\n map: CypherDataType | undefined,\n stringStyle: StringStyle,\n): string => {\n // For CSV export we don't need quoted strings\n return recursiveStringify(map, { quoteStrings: false, stringStyle });\n};\n", "export const formatFloat = (anything: number) => {\n if ([Infinity, -Infinity, NaN].includes(anything)) {\n return `${anything}`;\n }\n if (Math.floor(anything) === anything) {\n return `${anything}.0`;\n }\n return anything.toString();\n};\n", "import type { Integer, Record, ResultSummary } from 'neo4j-driver';\nimport { resultTransformers } from 'neo4j-driver';\n\nimport type { DeduplicatedNodesAndRels } from '../cypher-execution/extract-unique-nodes-and-relationships.js';\nimport { extractUniqueNodesAndRels } from '../cypher-execution/extract-unique-nodes-and-relationships.js';\n\n/**\n * Result type for graph queries that includes deduplicated nodes and relationships\n * along with the original records and query summary.\n *\n * See {@link DeduplicatedNodesAndRels} for the type of the nodes and relationships.\n */\ntype GraphResult = DeduplicatedNodesAndRels & {\n /** Original Neo4j records returned by the query */\n records: Record[];\n summary: ResultSummary<Integer>;\n};\n\n/**\n * A result transformer that processes Neo4j query results into a graph format\n * with deduplicated nodes and relationships.\n *\n * This transformer extracts unique nodes and relationships from query records\n * while preserving the original records and summary information. It's particularly\n * useful for graph visualization and analysis where duplicate entities need to be\n * consolidated.\n *\n * @example\n * ```typescript\n * const result: GraphResult = await driver.executeQuery(\n * 'MATCH p=(name: $name)-[]->() RETURN p',\n * { name: 'John' },\n * { resultTransformer: graphResultTransformer },\n * );\n *\n * console.log(result.nodes, result.relationships);\n * ```\n *\n * @returns ResultTransformer producing {@link GraphResult}\n */\nexport const graphResultTransformer = resultTransformers.mapped({\n map(record) {\n return record;\n },\n collect(records, summary): GraphResult {\n const { nodes, relationships, limitHit } =\n extractUniqueNodesAndRels(records);\n return { nodes, relationships, limitHit, records, summary };\n },\n});\n", "import { EventEmitter } from 'events';\nimport type { Config, Driver } from 'neo4j-driver';\nimport neo4j from 'neo4j-driver';\nimport type { ConnectionError } from './connectionErrorHandler.js';\nimport {\n FRIENDLY_ERROR_MESSAGES,\n getConnectionError,\n isRetriableNeo4jError,\n} from './connectionErrorHandler.js';\nimport type { MetadataPoller } from './metadataPoller.js';\nimport {\n ConnectedMetadataPoller,\n DisconnectedMetadataPoller,\n} from './metadataPoller.js';\nimport { Neo4jConnection } from './neo4jConnection.js';\nimport { listDatabases } from './queries/databases.js';\nimport { getVersion } from './queries/version.js';\n\nexport type ConnnectionResult = {\n success: boolean;\n retriable?: boolean;\n error?: ConnectionError;\n};\n\nconst MAX_RETRY_ATTEMPTS = 5;\nconst RETRY_INTERVAL_MS = 30000;\n\nexport class Neo4jSchemaPoller {\n public connection?: Neo4jConnection;\n public metadata?: MetadataPoller;\n public events: EventEmitter = new EventEmitter();\n private driver?: Driver;\n private reconnectionTimeout?: ReturnType<typeof setTimeout>;\n private retries = MAX_RETRY_ATTEMPTS;\n private lastError?: ConnectionError;\n private parameters: Record<string, unknown> = {};\n\n setParameters(parameters: Record<string, unknown>) {\n this.parameters = parameters;\n\n if (this.metadata) {\n this.metadata.dbSchema.parameters = parameters;\n } else {\n this.metadata = new DisconnectedMetadataPoller(parameters);\n }\n }\n\n async connect(\n url: string,\n credentials: { username: string; password: string },\n config: { driverConfig?: Config; appName: string },\n database?: string,\n ): Promise<ConnnectionResult> {\n try {\n this.driver = await this.initializeDriver(\n url,\n credentials,\n config,\n database,\n );\n } catch (error: unknown) {\n console.error('Error connecting to Neo4j.', error);\n return {\n success: false,\n retriable: isRetriableNeo4jError(error),\n error: getConnectionError(error),\n };\n }\n\n return { success: true };\n }\n\n async persistentConnect(\n url: string,\n credentials: { username: string; password: string },\n config: { driverConfig?: Config; appName: string },\n database?: string,\n ): Promise<ConnnectionResult> {\n const shouldHaveConnection = this.connection !== undefined;\n const connectionAlive = await this.connection?.healthcheck();\n const shouldUpdateConnection =\n this.connection && database && this.connection?.currentDb !== database;\n\n if (!connectionAlive || shouldUpdateConnection) {\n if (shouldHaveConnection && !shouldUpdateConnection) {\n console.error('Connection to Neo4j dropped');\n this.disconnect();\n } else if (shouldUpdateConnection) {\n this.disconnect();\n }\n\n try {\n await this.connectAndStartMetadataPoller(\n url,\n credentials,\n config,\n database,\n );\n\n this.reconnectionTimeout = this.setReconnectionTimeout(\n url,\n credentials,\n config,\n database,\n );\n\n return this.handleSuccessfulConnection();\n } catch (error) {\n console.error('Error connecting to Neo4j.', error);\n this.retries -= 1;\n this.lastError = getConnectionError(error);\n\n if (!isRetriableNeo4jError(error)) {\n return this.handlePermanentlyFailingConnection();\n }\n\n if (this.retries > 0) {\n this.reconnectionTimeout = this.setReconnectionTimeout(\n url,\n credentials,\n config,\n database,\n );\n\n return this.handleNonSuccessfulConnection();\n }\n\n return this.handlePermanentlyFailingConnection();\n }\n }\n\n this.reconnectionTimeout = this.setReconnectionTimeout(\n url,\n credentials,\n config,\n database,\n );\n\n return { success: true };\n }\n\n disconnect() {\n if (this.connection) {\n // eslint-disable-next-line no-console\n console.log('Disconnected from Neo4j');\n }\n this.connection?.dispose();\n this.metadata?.stopBackgroundPolling();\n this.connection = undefined;\n const parameters = this.metadata?.dbSchema?.parameters ?? {};\n this.metadata = new DisconnectedMetadataPoller(parameters);\n this.driver = undefined;\n clearTimeout(this.reconnectionTimeout);\n }\n\n private async getAvailableCypherVersions(): Promise<string[]> {\n // We need to use a query we can fire against the system database\n // because we might not have no information on what user database\n // we could use to try a simpler CYPHER 25 RETURN true query\n const { query: cypherVersionQuery, queryConfig: cypherVersionQueryConfig } =\n getVersion();\n\n try {\n if (this.driver) {\n await this.driver.executeQuery(\n 'CYPHER 25' + ' ' + cypherVersionQuery,\n {},\n cypherVersionQueryConfig,\n );\n return ['5', '25'];\n }\n } catch {\n return ['5'];\n }\n\n return ['5'];\n }\n\n private async connectAndStartMetadataPoller(\n url: string,\n credentials: { username: string; password: string },\n config: { driverConfig?: Config; appName: string },\n database?: string,\n ) {\n this.driver =\n this.driver ??\n (await this.initializeDriver(url, credentials, config, database));\n\n const { query: dbQuery, queryConfig: dbQueryConfig } = listDatabases();\n const { databases, summary } = await this.driver.executeQuery(\n dbQuery,\n {},\n dbQueryConfig,\n );\n\n const protocolVersion =\n summary.server.protocolVersion?.toString() ?? 'unknown';\n\n this.connection = new Neo4jConnection(\n credentials.username,\n protocolVersion,\n databases,\n this.driver,\n database,\n );\n\n const serverCypherVersions = await this.getAvailableCypherVersions();\n\n const { query: serverVersionQuery, queryConfig: serverVersionQueryConfig } =\n getVersion();\n let { serverVersion } = await this.driver.executeQuery(\n serverVersionQuery,\n {},\n serverVersionQueryConfig,\n );\n\n // If the server version is 5.27.0 we have to use the agent to\n // really know whether we are in 2025.01, 2025.02 or 2025.03\n if (serverVersion?.startsWith('5.27.0')) {\n const agent = summary.server.agent;\n if (agent) {\n const matchedVersion = agent.match(/\\d+\\.\\d+\\.\\d+/);\n if (matchedVersion) {\n serverVersion = matchedVersion[0];\n }\n }\n }\n\n this.connection.serverVersion = serverVersion;\n\n this.metadata = new ConnectedMetadataPoller(\n databases,\n this.parameters,\n serverCypherVersions,\n this.connection,\n this.events,\n );\n\n this.metadata.startBackgroundPolling();\n }\n\n private async initializeDriver(\n url: string,\n credentials: { username: string; password: string },\n config: { driverConfig?: Config; appName: string },\n database?: string,\n ): Promise<Driver> {\n const driver = neo4j.driver(\n url,\n neo4j.auth.basic(credentials.username, credentials.password),\n {\n userAgent: config.appName,\n ...config.driverConfig,\n },\n );\n\n await driver.verifyConnectivity({ database: database });\n\n if (await driver.supportsSessionAuth()) {\n if (!(await driver.verifyAuthentication())) {\n throw new Error('Invalid credentials');\n }\n }\n\n return driver;\n }\n\n private setReconnectionTimeout(\n url: string,\n credentials: { username: string; password: string },\n config: { driverConfig?: Config; appName: string },\n database?: string,\n ): NodeJS.Timeout {\n return setTimeout(() => {\n void this.persistentConnect(url, credentials, config, database);\n }, RETRY_INTERVAL_MS);\n }\n\n private handleSuccessfulConnection(): ConnnectionResult {\n this.resetRetries();\n\n // eslint-disable-next-line no-console\n console.log('Established connection to Neo4j');\n this.events.emit('connectionConnected');\n\n return { success: true };\n }\n\n private handleNonSuccessfulConnection(): ConnnectionResult {\n const connectionError = this.formatConnectionErrorFriendlyMessage(\n this.lastError,\n true,\n );\n\n this.events.emit('connectionErrored', connectionError);\n\n return {\n success: false,\n retriable: true,\n error: connectionError,\n };\n }\n\n private handlePermanentlyFailingConnection(): ConnnectionResult {\n this.resetRetries();\n\n const connectionError = this.formatConnectionErrorFriendlyMessage(\n this.lastError,\n false,\n );\n\n this.events.emit('connectionFailed', connectionError);\n\n return {\n success: false,\n retriable: false,\n error: connectionError,\n };\n }\n\n private formatConnectionErrorFriendlyMessage(\n connectionError: ConnectionError = {\n message: '',\n friendlyMessage: FRIENDLY_ERROR_MESSAGES.Default,\n code: '',\n },\n retriable: boolean,\n ): ConnectionError {\n const friendlyMessage = retriable\n ? `${connectionError.friendlyMessage}. Retrying in ${RETRY_INTERVAL_MS / 1000} seconds`\n : connectionError.friendlyMessage;\n\n return {\n ...connectionError,\n friendlyMessage: friendlyMessage,\n };\n }\n\n private resetRetries(): void {\n this.retries = MAX_RETRY_ATTEMPTS;\n }\n}\n", "import type {\n CypherVersion,\n DbSchema,\n Neo4jFunction,\n Neo4jProcedure,\n} from '@neo4j-cypher/language-support';\nimport { allCypherVersions } from '@neo4j-cypher/language-support';\nimport type { EventEmitter } from 'events';\nimport type { Neo4jConnection } from './neo4jConnection.js';\nimport type { Database } from './queries/databases.js';\nimport { listDatabases } from './queries/databases.js';\nimport type { DataSummary } from './queries/dataSummary.js';\nimport { getDataSummary } from './queries/dataSummary.js';\nimport { listFunctions } from './queries/functions.js';\nimport { listProcedures } from './queries/procedures.js';\nimport type { Neo4jRole } from './queries/roles.js';\nimport { listRoles } from './queries/roles.js';\nimport type { Neo4jUser } from './queries/users.js';\nimport { listUsers } from './queries/users.js';\nimport type { ExecuteQueryArgs } from './types/sdkTypes.js';\nimport { listGraphSchema } from './queries/graphSchema.js';\n\ntype PollingStatus = 'not-started' | 'fetching' | 'fetched' | 'error';\n\ntype FetchCallback<T> = (\n result: { success: true; data: T } | { success: false; errorMessage: string },\n) => void;\n\ntype PollerConfig<T> = {\n queryArgs: ExecuteQueryArgs<T>;\n connection: Neo4jConnection;\n prefetchedData?: T;\n onRefetchDone?: FetchCallback<T>;\n database?: string;\n};\n\nclass QueryPoller<T> {\n public status: PollingStatus = 'not-started';\n public data?: T;\n public lastFetchStart?: number;\n public errorMessage?: string;\n private connection: Neo4jConnection;\n private onRefetchDone?: FetchCallback<T>;\n private queryArgs: ExecuteQueryArgs<T>;\n\n constructor({\n prefetchedData,\n queryArgs,\n connection,\n onRefetchDone,\n }: PollerConfig<T>) {\n this.connection = connection;\n this.queryArgs = queryArgs;\n this.onRefetchDone = onRefetchDone;\n\n if (prefetchedData) {\n this.data = prefetchedData;\n this.lastFetchStart = Date.now();\n this.status = 'fetched';\n }\n }\n\n async refetch() {\n if (this.status === 'fetching') return;\n\n this.status = 'fetching';\n this.lastFetchStart = Date.now();\n delete this.errorMessage;\n\n try {\n const data = await this.connection.runSdkQuery(this.queryArgs, {\n queryType: 'system',\n });\n this.data = data;\n this.status = 'fetched';\n this.onRefetchDone?.({ success: true, data });\n } catch (e) {\n const errorMessage = String(e);\n this.errorMessage = errorMessage;\n this.status = 'error';\n console.error(e);\n this.onRefetchDone?.({ success: false, errorMessage });\n }\n }\n}\n\nexport abstract class MetadataPoller {\n public dbSchema: DbSchema = {};\n abstract stopBackgroundPolling(): void;\n abstract startBackgroundPolling(intervalSeconds?: number): void;\n abstract fetchDbSchema(): void;\n}\n\nexport class DisconnectedMetadataPoller extends MetadataPoller {\n public dbSchema: DbSchema = {};\n constructor(parameters: Record<string, unknown>) {\n super();\n this.dbSchema.parameters = parameters;\n }\n stopBackgroundPolling() {}\n startBackgroundPolling() {}\n fetchDbSchema(): void {}\n}\n\nexport class ConnectedMetadataPoller extends MetadataPoller {\n private databases: QueryPoller<{ databases: Database[] }>;\n private dataSummary: QueryPoller<DataSummary>;\n private functions: Partial<\n Record<CypherVersion, QueryPoller<{ functions: Neo4jFunction[] }>>\n > = {};\n private procedures: Partial<\n Record<CypherVersion, QueryPoller<{ procedures: Neo4jProcedure[] }>>\n > = {};\n private users: QueryPoller<{ users: Neo4jUser[] }>;\n private roles: QueryPoller<{ roles: Neo4jRole[] }>;\n private graphSchema: QueryPoller<{\n graphSchema: { from: string; to: string; relType: string }[];\n }>;\n private dbPollingInterval: NodeJS.Timeout | undefined;\n\n public dbSchema: DbSchema = {};\n\n constructor(\n databases: Database[],\n parameters: Record<string, unknown>,\n serverCypherVersions: string[] | undefined,\n private readonly connection: Neo4jConnection,\n private readonly events: EventEmitter,\n ) {\n super();\n\n this.dbSchema.parameters = parameters;\n\n this.databases = new QueryPoller({\n connection,\n queryArgs: listDatabases(),\n prefetchedData: { databases },\n onRefetchDone: (result) => {\n if (result.success) {\n this.dbSchema.databaseNames = result.data.databases.flatMap(\n (db) => db.name,\n );\n this.dbSchema.aliasNames = result.data.databases.flatMap(\n (db) => db.aliases ?? [],\n );\n const dbs = result.data.databases;\n const currentDb = dbs.find(\n (db) => db.name === this.connection.currentDb,\n );\n if (currentDb) {\n this.dbSchema.defaultLanguage = currentDb.defaultLanguage;\n }\n }\n },\n });\n\n this.users = new QueryPoller({\n connection,\n queryArgs: listUsers(),\n onRefetchDone: (result) => {\n if (result.success) {\n this.dbSchema.userNames = result.data.users.map((user) => user.user);\n }\n },\n });\n\n this.roles = new QueryPoller({\n connection,\n queryArgs: listRoles(),\n onRefetchDone: (result) => {\n if (result.success) {\n this.dbSchema.roleNames = result.data.roles.map((role) => role.role);\n }\n },\n });\n\n this.graphSchema = new QueryPoller({\n connection,\n queryArgs: listGraphSchema(connection.currentDb),\n onRefetchDone: (result) => {\n if (result.success) {\n const { graphSchema } = result.data;\n this.dbSchema.graphSchema = graphSchema;\n }\n },\n });\n\n this.dataSummary = new QueryPoller({\n connection,\n queryArgs: getDataSummary(connection.currentDb),\n onRefetchDone: (result) => {\n if (result.success) {\n const { labels, propertyKeys, relationshipTypes } = result.data;\n this.dbSchema.labels = labels;\n this.dbSchema.propertyKeys = propertyKeys;\n this.dbSchema.relationshipTypes = relationshipTypes;\n }\n },\n });\n\n const versions: (CypherVersion | undefined)[] =\n serverCypherVersions?.includes('25') ? allCypherVersions : [undefined];\n\n versions.forEach((cypherVersion) => {\n const effectiveCypherVersion: CypherVersion = cypherVersion ?? 'CYPHER 5';\n this.procedures[effectiveCypherVersion] = new QueryPoller({\n connection,\n queryArgs: listProcedures({\n executableByMe: true,\n cypherVersion: cypherVersion,\n }),\n onRefetchDone: (result) => {\n if (result.success) {\n const procedures = result.data.procedures.reduce<\n Record<string, Neo4jProcedure>\n >((acc, curr) => {\n const { name } = curr;\n acc[name] = curr;\n return acc;\n }, {});\n if (!this.dbSchema.procedures) {\n this.dbSchema.procedures = {};\n }\n this.dbSchema.procedures[effectiveCypherVersion] = procedures;\n }\n },\n });\n this.functions[effectiveCypherVersion] = new QueryPoller({\n connection,\n queryArgs: listFunctions({\n executableByMe: true,\n cypherVersion: cypherVersion,\n }),\n onRefetchDone: (result) => {\n if (result.success) {\n const functions = result.data.functions.reduce<\n Record<string, Neo4jFunction>\n >((acc, curr) => {\n const { name } = curr;\n acc[name] = curr;\n return acc;\n }, {});\n if (!this.dbSchema.functions) {\n this.dbSchema.functions = {};\n }\n this.dbSchema.functions[effectiveCypherVersion] = functions;\n }\n },\n });\n });\n }\n\n public async fetchDbSchema(): Promise<void> {\n await Promise.allSettled([\n this.databases.refetch(),\n this.dataSummary.refetch(),\n ...Object.values(this.procedures).map((version) => version?.refetch()),\n ...Object.values(this.functions).map((version) => version?.refetch()),\n ]);\n if (\n this.dbSchema.labels &&\n this.dbSchema.relationshipTypes &&\n this.dbSchema.labels.length + this.dbSchema.relationshipTypes.length < 200\n ) {\n await this.graphSchema.refetch();\n } else {\n this.dbSchema.graphSchema = undefined;\n }\n this.events.emit('schemaFetched');\n }\n\n stopBackgroundPolling() {\n clearInterval(this.dbPollingInterval);\n this.dbPollingInterval = undefined;\n }\n\n startBackgroundPolling(intervalSeconds = 30) {\n this.stopBackgroundPolling();\n void this.fetchDbSchema();\n this.dbPollingInterval = setInterval(\n () => void this.fetchDbSchema(),\n intervalSeconds * 1000,\n );\n }\n}\n", "import type { CypherVersion } from '@neo4j-cypher/language-support';\nimport { resultTransformers } from 'neo4j-driver';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\nimport { DbType } from '../types/sdkTypes.js';\n\ntype DatabaseStatus =\n | 'online'\n | 'offline'\n | 'starting'\n | 'stopping'\n | 'store copying'\n | 'initial'\n | 'dirty'\n | 'quarantined'\n | 'unknown'\n | 'dropped'\n | 'deallocating';\n\nexport type Database = {\n name: string;\n address: string;\n role: string;\n requestedStatus: DatabaseStatus;\n currentStatus: DatabaseStatus;\n statusMessage?: string;\n error: string;\n default: boolean;\n home: boolean;\n aliases?: string[]; // introduced in neo4j 4.4\n type?: 'system' | 'composite' | 'standard' | 'graph shard' | 'property shard'; // introduced in neo4j 5\n // \"new keys\", not sure which version introduced\n writer?: boolean;\n access?: string;\n constituents?: string[];\n defaultLanguage?: CypherVersion;\n};\n\nconst findComposite = (databases: Database[], alias: string) => {\n const compositeDatabases = databases.filter((db) => db.type === 'composite');\n return compositeDatabases.find((db) => db.constituents?.includes(alias));\n};\n\nconst isCompositeAlias = (databases: Database[], alias: string) =>\n findComposite(databases, alias) !== undefined;\n\nconst removeCompositeAliases = (databases: Database[]): Database[] => {\n return databases.map(({ aliases, ...db }) => ({\n ...db,\n aliases: aliases?.filter((alias) => !isCompositeAlias(databases, alias)),\n }));\n};\n\nconst removeSPDShards = (databases: Database[]): Database[] => {\n return databases.filter((db) => {\n return !(\n db.type !== undefined &&\n (db.type === DbType.GRAPH_SHARD || db.type === DbType.PROPERTY_SHARD)\n );\n });\n};\n\n/**\n * List available databases in your dbms\n * https://neo4j.com/docs/cypher-manual/current/administration/databases/#administration-databases-show-databases\n */\nexport function listDatabases(): ExecuteQueryArgs<{\n databases: Database[];\n}> {\n const query = 'SHOW DATABASES YIELD *';\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n const obj = record.toObject();\n if (obj.defaultLanguage) {\n obj.defaultLanguage = (obj.defaultLanguage as string).toUpperCase();\n }\n return obj as Database;\n },\n collect(databases, summary) {\n const instancesRecord: Record<string, Database> = databases.reduce<\n Record<string, Database>\n >((acc, db) => {\n const instanceId: string = `${db.name}@${db.address}`;\n acc[instanceId] = db;\n return acc;\n }, {});\n const logicalDatabases: Record<string, Database> =\n getLogicalDatabases(instancesRecord);\n const uiDatabases = removeSPDShards(\n removeCompositeAliases(Object.values(logicalDatabases)),\n );\n\n return {\n databases: sortDatabases(uiDatabases),\n summary,\n };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database: 'system' },\n };\n}\n\n/**\n * In clustered environments a single logical database can be backed by multiple physical database instances\n * running on a different servers.\n * This function returns a record of logical databases.\n * A database instance is uniquely identified by its name and address.\n * A logical database is uniquely identified by its name.\n * @input instances - a record of database instances\n * @output a record of logical databases\n */\nfunction getLogicalDatabases(\n instances: Record<string, Database>,\n): Record<string, Database> {\n // Two databases with the same name but different properties will be merged into one\n // merging rules:\n // - if writer (leader) is present, use it, otherwise use the first one\n\n // Merge db2 into db1\n const mergeDatabases = (db1: Database, db2: Database): Database => {\n let mergedDatabase = { ...db1 };\n if (db2.role === 'leader' || db2.writer === true) {\n mergedDatabase = { ...db2 };\n }\n\n return mergedDatabase;\n };\n\n return Object.values(instances).reduce<Record<string, Database>>(\n (databases, instance) => {\n const key = instance.name;\n const existingDatabase = databases[key];\n const mergedDatabase = existingDatabase\n ? mergeDatabases(existingDatabase, instance)\n : instance;\n\n return {\n ...databases,\n [key]: mergedDatabase,\n };\n },\n {},\n );\n}\n\nfunction sortDatabases(databases: Database[]) {\n function databaseComparator(a: Database, b: Database) {\n // home is greater than default\n if (a.default && b.home) return 1;\n\n // otherwiser default is greater than anything else\n if (a.default) return -1;\n if (b.default) return 1;\n\n // system is less than anything else\n if (a.name === 'system') return 1;\n if (b.name === 'system') return -1;\n\n // else sort alphabetically\n return a.name.localeCompare(b.name);\n }\n\n return databases.sort(databaseComparator);\n}\n", "import type { QueryConfig, ResultSummary } from 'neo4j-driver';\n\nexport const DbType = {\n SYSTEM: 'system',\n STANDARD: 'standard',\n COMPOSITE: 'composite',\n GRAPH_SHARD: 'graph shard',\n PROPERTY_SHARD: 'property shard',\n};\n\nexport type QueryType =\n // Query automatically run by the app.\n | 'system'\n // Query the user directly submitted to/through the app.\n | 'user-direct'\n // Query resulting from an action the user performed.\n | 'user-action'\n // Query that has been derived from the user input.\n | 'user-transpiled';\n\ntype ExtendedQueryConfig<T> = QueryConfig<T> &\n Required<Pick<QueryConfig<T>, 'routing' | 'resultTransformer'>>;\n\ntype Result<T> = T & { summary: ResultSummary };\n\nexport type ExecuteQueryArgs<T> = {\n query: string;\n queryConfig: ExtendedQueryConfig<Result<T>>;\n};\n", "import { resultTransformers } from 'neo4j-driver';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\n\nexport type DataSummary = {\n labels: string[];\n relationshipTypes: string[];\n propertyKeys: string[];\n};\n\nconst ITEM_LIMIT = 1000;\n\nexport function getDataSummary(\n database?: string,\n): ExecuteQueryArgs<DataSummary> {\n const query = `CALL db.labels() YIELD label\nRETURN COLLECT(label)[..${ITEM_LIMIT}] AS result\nUNION ALL\nCALL db.relationshipTypes() YIELD relationshipType\nRETURN COLLECT(relationshipType)[..${ITEM_LIMIT}] AS result\nUNION ALL\nCALL db.propertyKeys() YIELD propertyKey\nRETURN COLLECT(propertyKey)[..${ITEM_LIMIT}] AS result`;\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n return record.toObject().result as string[];\n },\n collect(results, summary) {\n return {\n labels: results[0]!,\n relationshipTypes: results[1]!,\n propertyKeys: results[2]!,\n summary,\n };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database: database },\n };\n}\n", "import type {\n CypherVersion,\n Neo4jFunction,\n} from '@neo4j-cypher/language-support';\nimport type { JSONSchemaType } from 'ajv';\nimport { Ajv } from 'ajv';\nimport { resultTransformers } from 'neo4j-driver';\nimport {\n cleanType,\n cleanTypeDescription,\n} from '../data-transforms/clean-type.js';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\n\ntype ListFunctionArgs = {\n executableByMe: boolean;\n cypherVersion?: CypherVersion;\n};\n\nfunction cleanTypes(result: Neo4jFunction): Neo4jFunction {\n return {\n ...result,\n argumentDescription: result.argumentDescription.map(cleanTypeDescription),\n returnDescription: cleanType(result.returnDescription),\n };\n}\n\nconst functionSchema: JSONSchemaType<Neo4jFunction> = {\n type: 'object',\n properties: {\n aggregating: { type: 'boolean' },\n argumentDescription: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n description: { type: 'string' },\n type: { type: 'string' },\n default: { type: 'string', nullable: true },\n isDeprecated: { type: 'boolean', default: false },\n },\n required: ['name', 'description', 'type', 'isDeprecated'],\n },\n },\n category: { type: 'string' },\n description: { type: 'string' },\n isBuiltIn: { type: 'boolean' },\n name: { type: 'string' },\n returnDescription: { type: 'string' },\n signature: { type: 'string' },\n isDeprecated: { type: 'boolean', default: false },\n deprecatedBy: { type: 'string', nullable: true },\n },\n required: [\n 'aggregating',\n 'argumentDescription',\n 'category',\n 'description',\n 'isBuiltIn',\n 'isDeprecated',\n 'name',\n 'returnDescription',\n 'signature',\n ],\n additionalProperties: true,\n};\n\nconst validateFunction = new Ajv({ useDefaults: true }).compile(functionSchema);\n\n/**\n * Gets available functions in your database\n * https://neo4j.com/docs/cypher-manual/current/clauses/listing-functions/\n */\nexport function listFunctions(\n { executableByMe, cypherVersion }: ListFunctionArgs = {\n executableByMe: false,\n cypherVersion: undefined,\n },\n): ExecuteQueryArgs<{\n functions: Neo4jFunction[];\n}> {\n const query = `${cypherVersion ? cypherVersion + ' ' : ''}\n SHOW FUNCTIONS \n ${executableByMe ? 'EXECUTABLE BY CURRENT USER' : ''}\n YIELD *`;\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n const objResult = record.toObject();\n validateFunction(objResult);\n const result = cleanTypes(objResult as Neo4jFunction);\n return result;\n },\n collect(functions, summary) {\n return { functions, summary };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database: 'system' },\n };\n}\n", "export function cleanType(type: string): string {\n let resultType = type;\n\n if (resultType.startsWith('LIST? OF ')) {\n resultType = resultType.replace('LIST? OF ', 'LIST<');\n resultType += '>';\n }\n return resultType.replace(/\\?/g, '');\n}\n\nexport function cleanTypeDescription<T extends { type: string }>(arg: T) {\n return { ...arg, type: cleanType(arg.type) };\n}\n", "import type {\n CypherVersion,\n Neo4jProcedure,\n} from '@neo4j-cypher/language-support';\nimport type { JSONSchemaType } from 'ajv';\nimport { Ajv } from 'ajv';\nimport { resultTransformers } from 'neo4j-driver';\nimport { cleanTypeDescription } from '../data-transforms/clean-type.js';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\n\ntype ListProcedureArgs = {\n executableByMe: boolean;\n cypherVersion?: CypherVersion;\n};\n\nconst procedureSchema: JSONSchemaType<Neo4jProcedure> = {\n type: 'object',\n properties: {\n admin: { type: 'boolean' },\n argumentDescription: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n description: { type: 'string' },\n type: { type: 'string' },\n default: { type: 'string', nullable: true },\n isDeprecated: { type: 'boolean', default: false },\n },\n required: ['name', 'description', 'type', 'isDeprecated'],\n },\n },\n description: { type: 'string' },\n mode: { type: 'string' },\n name: { type: 'string' },\n option: { type: 'object' },\n returnDescription: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n description: { type: 'string' },\n type: { type: 'string' },\n isDeprecated: { type: 'boolean', default: false },\n },\n required: ['name', 'description', 'type', 'isDeprecated'],\n },\n },\n signature: { type: 'string' },\n worksOnSystem: { type: 'boolean' },\n deprecatedBy: { type: 'string', nullable: true },\n },\n required: [\n 'admin',\n 'argumentDescription',\n 'description',\n 'mode',\n 'name',\n 'option',\n 'returnDescription',\n 'signature',\n 'worksOnSystem',\n ],\n additionalProperties: true,\n};\n\nconst validateProcedure = new Ajv({ useDefaults: true }).compile(\n procedureSchema,\n);\n\nfunction cleanTypes(result: Neo4jProcedure): Neo4jProcedure {\n return {\n ...result,\n argumentDescription: result.argumentDescription.map(cleanTypeDescription),\n returnDescription: result.returnDescription.map(cleanTypeDescription),\n };\n}\n\n/**\n * Gets available procedures on your database\n * https://neo4j.com/docs/cypher-manual/current/clauses/listing-procedures/\n */\nexport function listProcedures(\n { executableByMe, cypherVersion }: ListProcedureArgs = {\n executableByMe: false,\n cypherVersion: undefined,\n },\n): ExecuteQueryArgs<{\n procedures: Neo4jProcedure[];\n}> {\n const query = `${cypherVersion ? cypherVersion + ' ' : ''}\n SHOW PROCEDURES \n ${executableByMe ? 'EXECUTABLE BY CURRENT USER' : ''}\n YIELD *`;\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n // Assign default values (e.g. isDeprecated) in case they are not present\n const objResult = record.toObject();\n validateProcedure(objResult);\n // Type is verified in integration tests\n const result = cleanTypes(objResult as Neo4jProcedure);\n return result;\n },\n collect(procedures, summary) {\n return { procedures, summary };\n },\n });\n\n return {\n query,\n queryConfig: {\n routing: 'READ',\n database: 'system',\n resultTransformer,\n },\n };\n}\n", "import { resultTransformers } from 'neo4j-driver';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\n\nexport type Neo4jRole = {\n role: string;\n};\n\n/**\n * Gets available roles in your database\n * https://neo4j.com/docs/operations-manual/current/authentication-authorization/manage-roles/#access-control-list-roles\n */\nexport function listRoles(): ExecuteQueryArgs<{\n roles: Neo4jRole[];\n}> {\n const query = `SHOW ROLES`;\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n return record.toObject() as Neo4jRole;\n },\n collect(roles, summary) {\n return { roles, summary };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database: 'system' },\n };\n}\n", "import { resultTransformers } from 'neo4j-driver';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\n\nexport type Neo4jUser = {\n user: string;\n roles: string[];\n // below are enterprise only\n passwordChangeRequired: string;\n suspended?: boolean;\n home?: string;\n};\n\n/**\n * Gets available users in your database\n * https://neo4j.com/docs/cypher-manual/current/administration/access-control/manage-users/#access-control-list-users\n */\nexport function listUsers(): ExecuteQueryArgs<{\n users: Neo4jUser[];\n}> {\n const query = `SHOW USERS`;\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n return record.toObject() as Neo4jUser;\n },\n collect(users, summary) {\n return { users, summary };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database: 'system' },\n };\n}\n", "import { resultTransformers } from 'neo4j-driver';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\nimport type { JSONSchemaType } from 'ajv';\nimport { Ajv } from 'ajv';\n\ntype NeoNode = {\n labels: string[];\n elementId: string;\n};\ntype NeoRel = {\n type: string;\n endNodeElementId: string;\n startNodeElementId: string;\n};\n\n//exported for testing\nexport type GraphSchema = {\n nodes: NeoNode[];\n relationships: NeoRel[];\n};\n\nconst graphSchemaSchema: JSONSchemaType<GraphSchema> = {\n type: 'object',\n properties: {\n nodes: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n labels: {\n type: 'array',\n items: { type: 'string' },\n },\n elementId: { type: 'string' },\n },\n required: ['labels', 'elementId'],\n additionalProperties: true,\n },\n },\n relationships: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n type: { type: 'string' },\n endNodeElementId: { type: 'string' },\n startNodeElementId: { type: 'string' },\n },\n required: ['type', 'endNodeElementId', 'startNodeElementId'],\n additionalProperties: true,\n },\n },\n },\n required: ['nodes', 'relationships'],\n additionalProperties: true,\n};\n\n//exported for testing\nexport const validateGraphSchema = new Ajv({ useDefaults: true }).compile(\n graphSchemaSchema,\n);\n\nexport function listGraphSchema(\n database: string | undefined,\n): ExecuteQueryArgs<{\n graphSchema: { from: string; to: string; relType: string }[];\n}> {\n const query = `CALL db.schema.visualization() YIELD *`;\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n const objResult = record.toObject();\n validateGraphSchema(objResult);\n return objResult as GraphSchema;\n },\n collect(records, summary) {\n return {\n summary,\n graphSchema: extractRelationshipsWithNamedNodes(records),\n };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database },\n };\n}\n\n//exported for testing\nexport function extractRelationshipsWithNamedNodes(\n graphSchemas: GraphSchema[],\n): { from: string; to: string; relType: string }[] {\n const items: { from: string; to: string; relType: string }[] = [];\n\n if (graphSchemas.length !== 1) {\n return items;\n }\n const graphSchema = graphSchemas[0]!;\n const nodes: Record<string, string> = {};\n\n for (const node of graphSchema.nodes) {\n //Query should only return 1 label\n nodes[node.elementId] = node.labels[0]!;\n }\n for (const rel of graphSchema.relationships) {\n const from = nodes[rel.startNodeElementId]!;\n const to = nodes[rel.endNodeElementId]!;\n const relType = rel.type;\n items.push({ from, to, relType });\n }\n\n return items;\n}\n", "{\n \"name\": \"@neo4j-cypher/query-tools\",\n \"version\": \"2.0.0-next.38\",\n \"description\": \"\",\n \"bugs\": {\n \"url\": \"https://github.com/neo4j/cypher-language-support/issues\"\n },\n \"license\": \"Apache-2.0\",\n \"author\": \"Neo4j Inc.\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/neo4j/cypher-language-support.git\"\n },\n \"type\": \"module\",\n \"main\": \"./dist/cjs/index.cjs\",\n \"module\": \"./dist/esm/src/index.js\",\n \"types\": \"./dist/types/src/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/types/src/index.d.ts\",\n \"require\": \"./dist/cjs/index.cjs\",\n \"import\": \"./dist/esm/src/index.js\",\n \"default\": \"./dist/cjs/index.cjs\"\n }\n },\n \"scripts\": {\n \"build\": \"concurrently 'npm:build-esm' 'npm:build-commonjs' 'npm:build-types'\",\n \"build-esm\": \"tsc --outDir dist/esm\",\n \"build-commonjs\": \"esbuild ./src/index.ts --bundle --format=cjs --sourcemap --packages=external --outfile=dist/cjs/index.cjs\",\n \"build-types\": \"tsc --emitDeclarationOnly --outDir dist/types\",\n \"dev\": \"concurrently 'npm:build-esm -- --watch' 'npm:build-commonjs -- --watch'\",\n \"clean\": \"rm -rf dist tsconfig*.tsbuildinfo\",\n \"test\": \"vitest run extract-unique-nodes-and-relationships\",\n \"test:polling\": \"vitest run pollingIntegrationTests\"\n },\n \"dependencies\": {\n \"@neo4j-cypher/language-support\": \"workspace:*\",\n \"ajv\": \"^8.12.0\",\n \"neo4j-driver\": \"catalog:\"\n },\n \"devDependencies\": {\n \"@testcontainers/neo4j\": \"^11.5.1\"\n },\n \"engines\": {\n \"node\": \">=24.11.1\"\n }\n}\n", "import type {\n Driver,\n ManagedTransaction,\n QueryResult,\n RecordShape,\n Result,\n Session,\n} from 'neo4j-driver';\nimport packageJson from '../package.json' with { type: 'json' };\nimport type { Database } from './queries/databases.js';\nimport type { ExecuteQueryArgs, QueryType } from './types/sdkTypes.js';\n\nconst METADATA_BASE = {\n app: 'neo4j-sdk',\n version: packageJson.version,\n};\nconst RECORD_LIMIT = 5000;\n\nfunction resolveInitialDatabase(\n databases: Database[],\n database?: string,\n): string | undefined {\n if (database) {\n return databases.find(\n (d) => d.name === database || d?.aliases?.includes(database),\n )?.name;\n }\n\n const home = databases.find((d) => d.home);\n const def = databases.find((d) => d.default);\n const system = databases.find((d) => d.name === 'system');\n\n return home?.name ?? def?.name ?? system?.name ?? databases[0]?.name;\n}\n\ntype SdkQueryArgs = {\n queryType: QueryType;\n abortSignal?: AbortSignal;\n};\n\ntype RunCypherQueryArgs = {\n query: string;\n parameters: Record<string, unknown>;\n database?: string;\n abortSignal?: AbortSignal;\n implicitTransaction?: boolean;\n};\n\nexport type QueryResultWithLimit = QueryResult & { recordLimitHit: boolean };\nexport class Neo4jConnection {\n public currentDb: string | undefined;\n public serverVersion: string | undefined;\n\n constructor(\n public connectedUser: string,\n public protocolVersion: string,\n public databases: Database[],\n public driver: Driver,\n database?: string,\n ) {\n this.currentDb = resolveInitialDatabase(databases, database);\n this.serverVersion = undefined;\n }\n\n async evalQuery(\n session: Session,\n query: string,\n parameters: Record<string, unknown>,\n metadata: object,\n tx?: ManagedTransaction,\n ) {\n let result: Result<RecordShape>;\n if (!tx) {\n result = session.run(query, parameters, {\n metadata,\n });\n } else {\n result = tx.run(query, parameters);\n }\n const records: Array<any> = [];\n let recordLimitHit = false;\n\n for await (const record of result) {\n if (records.length < RECORD_LIMIT) {\n records.push(record);\n } else {\n recordLimitHit = true;\n break;\n }\n }\n const summary = await result.summary();\n\n return { records, summary, recordLimitHit };\n }\n\n async runCypherQuery({\n query,\n parameters,\n database,\n abortSignal,\n implicitTransaction = false,\n }: RunCypherQueryArgs): Promise<QueryResultWithLimit> {\n // we'd like to use the drivers `executeQuery` method, but it doesn't support transaction metadata or cancelations yet\n const session = this.driver.session({\n database: database ?? this.currentDb,\n });\n\n if (abortSignal !== undefined) {\n abortSignal.addEventListener('abort', () => {\n void session.close();\n });\n }\n const metadata = {\n ...METADATA_BASE,\n type: 'user-direct' satisfies QueryType,\n };\n try {\n let result: Promise<QueryResultWithLimit>;\n if (implicitTransaction) {\n result = this.evalQuery(session, query, parameters, metadata);\n } else {\n result = session.executeWrite(\n async (tx) => {\n const result = this.evalQuery(\n session,\n query,\n parameters,\n metadata,\n tx,\n );\n return result;\n },\n {\n metadata,\n },\n );\n }\n return await result;\n } finally {\n await session.close();\n }\n }\n\n async runSdkQuery<T>(\n { query, queryConfig }: ExecuteQueryArgs<T>,\n { queryType, abortSignal }: SdkQueryArgs,\n ): Promise<T> {\n // we'd like to use the drivers `executeQuery` method, but it doesn't support transaction metadata or cancelations yet\n const session = this.driver.session({\n database: queryConfig?.database ?? this.currentDb,\n });\n\n if (abortSignal !== undefined) {\n abortSignal.addEventListener('abort', () => {\n void session.close();\n });\n }\n\n try {\n const executeInTransaction =\n queryConfig.routing === 'READ'\n ? session.executeRead.bind(session)\n : session.executeWrite.bind(session);\n\n return await executeInTransaction(\n async (tx) => {\n const result = tx.run(query, {});\n return await queryConfig.resultTransformer(result);\n },\n { timeout: 500, metadata: { ...METADATA_BASE, type: queryType } },\n );\n } finally {\n await session.close();\n }\n }\n\n async healthcheck() {\n try {\n await this.driver.verifyConnectivity({ database: this.currentDb });\n return true;\n } catch {\n return false;\n }\n }\n\n dispose() {\n void this.driver?.close();\n }\n}\n", "import { resultTransformers } from 'neo4j-driver';\nimport type { ExecuteQueryArgs } from '../types/sdkTypes.js';\n\n/**\n * Get dbms version\n */\nexport function getVersion(): ExecuteQueryArgs<{\n serverVersion: string | undefined;\n}> {\n const query = 'CALL dbms.components() YIELD name, versions';\n\n const resultTransformer = resultTransformers.mapped({\n map(record) {\n const obj = record.toObject();\n const name = obj.name as string;\n const versions = obj.versions as string[];\n return { name, versions };\n },\n collect(rows, summary) {\n for (const row of rows) {\n if (row.name === 'Neo4j Kernel') {\n return { serverVersion: row.versions[0], summary };\n }\n }\n\n //We should not reach this unless the \"name\" field changes\n return { serverVersion: undefined, summary };\n },\n });\n\n return {\n query,\n queryConfig: { resultTransformer, routing: 'READ', database: 'system' },\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_ajv", "import_neo4j_driver", "cleanTypes", "import_neo4j_driver", "import_neo4j_driver", "import_neo4j_driver", "import_ajv", "result", "import_neo4j_driver", "neo4j"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neo4j-cypher/query-tools",
3
- "version": "2.0.0-next.36",
3
+ "version": "2.0.0-next.38",
4
4
  "description": "",
5
5
  "bugs": {
6
6
  "url": "https://github.com/neo4j/cypher-language-support/issues"
@@ -11,24 +11,25 @@
11
11
  "type": "git",
12
12
  "url": "git://github.com/neo4j/cypher-language-support.git"
13
13
  },
14
- "main": "./dist/cjs/src/index.js",
14
+ "type": "module",
15
+ "main": "./dist/cjs/index.cjs",
15
16
  "module": "./dist/esm/src/index.js",
16
17
  "types": "./dist/types/src/index.d.ts",
17
18
  "exports": {
18
19
  ".": {
19
- "types": "./dist/esm/index.d.ts",
20
- "require": "./dist/cjs/src/index.js",
20
+ "types": "./dist/types/src/index.d.ts",
21
+ "require": "./dist/cjs/index.cjs",
21
22
  "import": "./dist/esm/src/index.js",
22
- "default": "./dist/cjs/src/index.js"
23
+ "default": "./dist/cjs/index.cjs"
23
24
  }
24
25
  },
25
26
  "scripts": {
26
27
  "build": "concurrently 'npm:build-esm' 'npm:build-commonjs' 'npm:build-types'",
27
- "build-esm": "tsc --module esnext --outDir dist/esm",
28
- "build-commonjs": "tsc --module commonjs --moduleResolution node --outDir dist/cjs",
28
+ "build-esm": "tsc --outDir dist/esm",
29
+ "build-commonjs": "esbuild ./src/index.ts --bundle --format=cjs --sourcemap --packages=external --outfile=dist/cjs/index.cjs",
29
30
  "build-types": "tsc --emitDeclarationOnly --outDir dist/types",
30
31
  "dev": "concurrently 'npm:build-esm -- --watch' 'npm:build-commonjs -- --watch'",
31
- "clean": "rm -rf {dist,tsconfig.tsbuildinfo}",
32
+ "clean": "rm -rf dist tsconfig*.tsbuildinfo",
32
33
  "test": "vitest run extract-unique-nodes-and-relationships",
33
34
  "test:polling": "vitest run pollingIntegrationTests"
34
35
  },
@@ -1,5 +1,5 @@
1
- import { Neo4jError } from 'neo4j-driver';
2
1
  export declare const FRIENDLY_ERROR_MESSAGES: {
2
+ Default: string;
3
3
  [key: string]: string;
4
4
  };
5
5
  export type ConnectionError = {
@@ -8,5 +8,4 @@ export type ConnectionError = {
8
8
  code: string;
9
9
  };
10
10
  export declare function isRetriableNeo4jError(error: unknown): boolean;
11
- export declare function isNeo4jError(error: unknown): error is Neo4jError;
12
11
  export declare function getConnectionError(error: unknown): ConnectionError;
@@ -10,7 +10,7 @@ export const FRIENDLY_ERROR_MESSAGES = {
10
10
  export function isRetriableNeo4jError(error) {
11
11
  return isNeo4jError(error) ? error.retriable : true;
12
12
  }
13
- export function isNeo4jError(error) {
13
+ function isNeo4jError(error) {
14
14
  return (error instanceof Error &&
15
15
  error.code !== undefined &&
16
16
  error.message !== undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"connectionErrorHandler.js","sourceRoot":"","sources":["../../../src/connectionErrorHandler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAA8B;IAChE,kDAAkD,EAChD,yCAAyC;IAC3C,6CAA6C,EAC3C,yCAAyC;IAC3C,uCAAuC,EACrC,yCAAyC;IAC3C,uCAAuC,EACrC,yCAAyC;IAC3C,2CAA2C,EACzC,uCAAuC;IACzC,kBAAkB,EAChB,iIAAiI;IACnI,OAAO,EAAE,6CAA6C;CACvD,CAAC;AAQF,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,CACL,KAAK,YAAY,KAAK;QACrB,KAAoB,CAAC,IAAI,KAAK,SAAS;QACvC,KAAoB,CAAC,OAAO,KAAK,SAAS,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EACb,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,OAAO;SACzE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,eAAe,EAAE,uBAAuB,CAAC,OAAO;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"connectionErrorHandler.js","sourceRoot":"","sources":["../../../src/connectionErrorHandler.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAGhC;IACF,kDAAkD,EAChD,yCAAyC;IAC3C,6CAA6C,EAC3C,yCAAyC;IAC3C,uCAAuC,EACrC,yCAAyC;IAC3C,uCAAuC,EACrC,yCAAyC;IAC3C,2CAA2C,EACzC,uCAAuC;IACzC,kBAAkB,EAChB,iIAAiI;IACnI,OAAO,EAAE,6CAA6C;CACvD,CAAC;AAQF,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,KAAK,YAAY,KAAK;QACrB,KAAoB,CAAC,IAAI,KAAK,SAAS;QACvC,KAAoB,CAAC,OAAO,KAAK,SAAS,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,eAAe,EACb,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,OAAO;SACzE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,eAAe,EAAE,uBAAuB,CAAC,OAAO;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAChE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { Integer, Node, Record, RecordShape, Relationship } from 'neo4j-driver';
2
- import { CypherProperty } from '../types/cypher-data-types.js';
2
+ import type { CypherProperty } from '../types/cypher-data-types.js';
3
3
  export type Properties = RecordShape<string, CypherProperty>;
4
4
  /**
5
5
  * Result type containing deduplicated nodes and relationships extracted from Neo4j records.
@@ -12,7 +12,6 @@ describe('extractNodesAndRels', () => {
12
12
  const relationship = new Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
13
13
  const pathSegment = new PathSegment(startNode, relationship, endNode);
14
14
  const path = new Path(startNode, endNode, [pathSegment]);
15
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
16
15
  const boltRecord = {
17
16
  keys: ['p'],
18
17
  get: () => path,
@@ -46,7 +45,6 @@ describe('extractNodesAndRels', () => {
46
45
  prop1: 'prop1',
47
46
  }, 'node1');
48
47
  const relationship = new Relationship(2, 1, 34, 'ACTED_IN', {}, 'rel1', 'node1', 'node34');
49
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
50
48
  const boltRecord = {
51
49
  keys: ['n'],
52
50
  get: () => [node1, node2, relationship],
@@ -68,7 +66,6 @@ describe('extractNodesAndRels', () => {
68
66
  const relationship = new Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
69
67
  const pathSegment = new PathSegment(startNode, relationship, endNode);
70
68
  const path = new Path(startNode, endNode, [pathSegment]);
71
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
72
69
  const boltRecord = {
73
70
  keys: ['p'],
74
71
  get: () => path,
@@ -97,7 +94,6 @@ describe('extractNodesAndRels', () => {
97
94
  const relationship = new Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
98
95
  const pathSegment = new PathSegment(startNode, relationship, endNode);
99
96
  const path = new Path(startNode, endNode, [pathSegment]);
100
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
101
97
  const boltRecord = {
102
98
  keys: ['p'],
103
99
  get: () => path,
@@ -1 +1 @@
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
+ {"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,9 +1,7 @@
1
1
  import { int, isInt, isVector, types, Vector } from 'neo4j-driver';
2
2
  export const RESERVED_TYPE_PROPERTY_NAME = 'transport-class';
3
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) {
4
+ export function addAnnotationProp(obj, type, prop = RESERVED_TYPE_PROPERTY_NAME) {
7
5
  // The shallow copy is needed because the object type returned by the driver is not extensible.
8
6
  let objShallowCopy = Object.entries(obj).reduce((newObj, [key, value]) => {
9
7
  newObj[key] = value;
@@ -30,13 +28,10 @@ export function deleteAnnotationProp(obj) {
30
28
  }
31
29
  function copyAndAnnotate(obj) {
32
30
  return Object.keys(obj).reduce((newObj, key) => {
33
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
34
31
  // @ts-ignore TypeScript complains about not being able to use `key` to
35
32
  // index `obj`, but we know that `key` exists in `obj` since it's coming
36
33
  // from Object.keys.
37
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
38
34
  const value = obj[key];
39
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
40
35
  newObj[key] = serializeTypeAnnotations(value);
41
36
  return newObj;
42
37
  }, {});
@@ -46,10 +41,10 @@ export function serializeTypeAnnotations(item) {
46
41
  return item.map((i) => serializeTypeAnnotations(i));
47
42
  }
48
43
  if (item === null || item === undefined) {
44
+ // This is needed due to the method overloading types
49
45
  return item;
50
46
  }
51
47
  if (item instanceof types.Record) {
52
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
53
48
  // @ts-ignore There are two versions of the type for Record coming from the
54
49
  // driver.
55
50
  const tmp = copyAndAnnotate(item);
@@ -121,7 +116,6 @@ export function serializeTypeAnnotations(item) {
121
116
  const tmp = copyAndAnnotate(item);
122
117
  return addAnnotationProp(tmp, 'Object');
123
118
  }
124
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
125
119
  // @ts-ignore this type isn't inferred correctly
126
120
  return item;
127
121
  }
@@ -203,7 +197,6 @@ export function deserializeTypeAnnotations(rawItem) {
203
197
  break;
204
198
  case 'INT64':
205
199
  // For INT64, values are stored as strings to avoid BigInt serialization issues
206
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
207
200
  typedArray = new BigInt64Array(values.map((v) => BigInt(v)));
208
201
  break;
209
202
  case 'FLOAT32':
@@ -1 +1 @@
1
- {"version":3,"file":"query-result.js","sourceRoot":"","sources":["../../../../src/cypher-execution/query-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-result.js","sourceRoot":"","sources":["../../../../src/cypher-execution/query-result.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,6 @@ export function propertyToString(property, quoteStrings = true, localeFormattedD
35
35
  }
36
36
  if (typeof property === 'string') {
37
37
  if (quoteStrings) {
38
- // oxlint-disable-next-line typescript-eslint/restrict-template-expressions
39
38
  return `"${property}"`;
40
39
  }
41
40
  return property;
@@ -46,7 +45,7 @@ export function propertyToString(property, quoteStrings = true, localeFormattedD
46
45
  // This case shouldn't be used, but added as a fallback
47
46
  return String(property);
48
47
  }
49
- const cypherShellStyleStringify = (value, { stringStyle, quoteStrings = true, }) => {
48
+ const cypherShellStyleStringify = (value, { stringStyle, quoteStrings, }) => {
50
49
  const includeIds = stringStyle === 'cypher-with-ids';
51
50
  if (isNode(value)) {
52
51
  const labels = value.labels.length > 0 ? `:${value.labels.join(':')}` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"record-to-string.js","sourceRoot":"","sources":["../../../../src/data-transforms/record-to-string.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-to-string.js","sourceRoot":"","sources":["../../../../src/data-transforms/record-to-string.ts"],"names":[],"mappings":"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"}