@neo4j-cypher/query-tools 2.0.0-next.37 → 2.0.0-next.39
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.
- package/CHANGELOG.md +21 -0
- package/api-extractor/api-report.api.md +340 -0
- package/api-extractor.json +10 -0
- package/checkApiReport.ts +4 -0
- package/dist/cjs/index.cjs +1849 -0
- package/dist/cjs/index.cjs.map +7 -0
- package/dist/esm/package.json +12 -10
- package/dist/esm/src/connectionErrorHandler.d.ts +1 -0
- package/dist/esm/src/connectionErrorHandler.js.map +1 -1
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +3 -4
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.js +2 -3
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.js.map +1 -1
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +0 -4
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +1 -1
- package/dist/esm/src/cypher-execution/query-result.js +2 -9
- package/dist/esm/src/cypher-execution/query-result.js.map +1 -1
- package/dist/esm/src/data-transforms/cypher-type-names.d.ts +1 -2
- package/dist/esm/src/data-transforms/record-to-string.js +1 -2
- package/dist/esm/src/data-transforms/record-to-string.js.map +1 -1
- package/dist/esm/src/index.d.ts +5 -4
- package/dist/esm/src/index.js +1 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/metadataPoller.d.ts +4 -4
- package/dist/esm/src/metadataPoller.js +1 -1
- package/dist/esm/src/metadataPoller.js.map +1 -1
- package/dist/esm/src/neo4jConnection.d.ts +6 -7
- package/dist/esm/src/neo4jConnection.js +3 -2
- package/dist/esm/src/neo4jConnection.js.map +1 -1
- package/dist/esm/src/queries/dataSummary.d.ts +1 -1
- package/dist/esm/src/queries/dataSummary.js.map +1 -1
- package/dist/esm/src/queries/databases.d.ts +2 -3
- package/dist/esm/src/queries/databases.js +0 -3
- package/dist/esm/src/queries/databases.js.map +1 -1
- package/dist/esm/src/queries/functions.d.ts +1 -1
- package/dist/esm/src/queries/functions.js +1 -2
- package/dist/esm/src/queries/functions.js.map +1 -1
- package/dist/esm/src/queries/graphSchema.d.ts +1 -1
- package/dist/esm/src/queries/graphSchema.js +1 -1
- package/dist/esm/src/queries/graphSchema.js.map +1 -1
- package/dist/esm/src/queries/procedures.d.ts +1 -1
- package/dist/esm/src/queries/procedures.js +1 -2
- package/dist/esm/src/queries/procedures.js.map +1 -1
- package/dist/esm/src/queries/version.d.ts +1 -1
- package/dist/esm/src/result-transformers/graph-result-transformer.d.ts +4 -5
- package/dist/esm/src/result-transformers/graph-result-transformer.js +2 -2
- package/dist/esm/src/result-transformers/graph-result-transformer.js.map +1 -1
- package/dist/esm/src/schemaPoller.d.ts +3 -3
- package/dist/esm/src/schemaPoller.js.map +1 -1
- package/dist/esm/src/{integration-tests → tests/integration}/pollingIntegrationTests.test.js +1 -1
- package/dist/esm/src/tests/integration/pollingIntegrationTests.test.js.map +1 -0
- package/dist/{types/src/integration-tests → esm/src/tests/integration}/setupTestContainer.d.ts +1 -1
- package/dist/esm/src/{integration-tests → tests/integration}/setupTestContainer.js +1 -1
- package/dist/esm/src/tests/integration/setupTestContainer.js.map +1 -0
- package/dist/esm/src/types/cypher-data-types.d.ts +1 -2
- package/dist/esm/src/types/sdkTypes.d.ts +2 -3
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/vitest.config.d.mts +1 -1
- package/dist/esm/vitest.config.mjs +20 -4
- package/dist/esm/vitest.config.mjs.map +1 -1
- package/dist/types/src/connectionErrorHandler.d.ts +1 -0
- package/dist/types/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +3 -4
- package/dist/types/src/data-transforms/cypher-type-names.d.ts +1 -2
- package/dist/types/src/index.d.ts +5 -4
- package/dist/types/src/metadataPoller.d.ts +4 -4
- package/dist/types/src/neo4jConnection.d.ts +6 -7
- package/dist/types/src/queries/dataSummary.d.ts +1 -1
- package/dist/types/src/queries/databases.d.ts +2 -3
- package/dist/types/src/queries/functions.d.ts +1 -1
- package/dist/types/src/queries/graphSchema.d.ts +1 -1
- package/dist/types/src/queries/procedures.d.ts +1 -1
- package/dist/types/src/queries/version.d.ts +1 -1
- package/dist/types/src/result-transformers/graph-result-transformer.d.ts +4 -5
- package/dist/types/src/schemaPoller.d.ts +3 -3
- package/dist/{esm/src/integration-tests → types/src/tests/integration}/setupTestContainer.d.ts +1 -1
- package/dist/types/src/types/cypher-data-types.d.ts +1 -2
- package/dist/types/src/types/sdkTypes.d.ts +2 -3
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/vitest.config.d.mts +1 -1
- package/package.json +13 -11
- package/src/connectionErrorHandler.ts +5 -2
- package/src/cypher-execution/extract-unique-nodes-and-relationships.test.ts +5 -9
- package/src/cypher-execution/extract-unique-nodes-and-relationships.ts +3 -4
- package/src/cypher-execution/query-result.ts +2 -13
- package/src/data-transforms/cypher-type-names.ts +1 -1
- package/src/data-transforms/record-to-string.ts +2 -3
- package/src/index.ts +17 -3
- package/src/metadataPoller.ts +14 -10
- package/src/neo4jConnection.ts +9 -8
- package/src/queries/dataSummary.ts +4 -4
- package/src/queries/databases.ts +3 -5
- package/src/queries/functions.ts +6 -3
- package/src/queries/graphSchema.ts +7 -6
- package/src/queries/procedures.ts +6 -3
- package/src/queries/version.ts +1 -1
- package/src/result-transformers/graph-result-transformer.ts +7 -9
- package/src/schemaPoller.ts +4 -3
- package/src/{integration-tests → tests/integration}/pollingIntegrationTests.test.ts +7 -6
- package/src/{integration-tests → tests/integration}/setupTestContainer.ts +3 -2
- package/src/types/cypher-data-types.ts +1 -1
- package/src/types/sdkTypes.ts +2 -2
- package/tsconfig.json +4 -4
- package/tsconfig.node.json +1 -2
- package/vitest.config.mts +20 -4
- package/dist/cjs/package.json +0 -46
- package/dist/cjs/src/connectionErrorHandler.d.ts +0 -10
- package/dist/cjs/src/connectionErrorHandler.js +0 -40
- package/dist/cjs/src/connectionErrorHandler.js.map +0 -1
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +0 -33
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js +0 -93
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js.map +0 -1
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.d.ts +0 -1
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +0 -129
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +0 -1
- package/dist/cjs/src/cypher-execution/query-result.d.ts +0 -11
- package/dist/cjs/src/cypher-execution/query-result.js +0 -239
- package/dist/cjs/src/cypher-execution/query-result.js.map +0 -1
- package/dist/cjs/src/data-transforms/clean-type.d.ts +0 -6
- package/dist/cjs/src/data-transforms/clean-type.js +0 -16
- package/dist/cjs/src/data-transforms/clean-type.js.map +0 -1
- package/dist/cjs/src/data-transforms/cypher-type-names.d.ts +0 -6
- package/dist/cjs/src/data-transforms/cypher-type-names.js +0 -91
- package/dist/cjs/src/data-transforms/cypher-type-names.js.map +0 -1
- package/dist/cjs/src/data-transforms/format-float.d.ts +0 -1
- package/dist/cjs/src/data-transforms/format-float.js +0 -14
- package/dist/cjs/src/data-transforms/format-float.js.map +0 -1
- package/dist/cjs/src/data-transforms/record-to-string.d.ts +0 -8
- package/dist/cjs/src/data-transforms/record-to-string.js +0 -185
- package/dist/cjs/src/data-transforms/record-to-string.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -17
- package/dist/cjs/src/index.js +0 -33
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.js +0 -42
- package/dist/cjs/src/integration-tests/pollingIntegrationTests.test.js.map +0 -1
- package/dist/cjs/src/integration-tests/setupTestContainer.d.ts +0 -10
- package/dist/cjs/src/integration-tests/setupTestContainer.js +0 -23
- package/dist/cjs/src/integration-tests/setupTestContainer.js.map +0 -1
- package/dist/cjs/src/metadataPoller.d.ts +0 -34
- package/dist/cjs/src/metadataPoller.js +0 -214
- package/dist/cjs/src/metadataPoller.js.map +0 -1
- package/dist/cjs/src/neo4jConnection.d.ts +0 -36
- package/dist/cjs/src/neo4jConnection.js +0 -128
- package/dist/cjs/src/neo4jConnection.js.map +0 -1
- package/dist/cjs/src/queries/dataSummary.d.ts +0 -7
- package/dist/cjs/src/queries/dataSummary.js +0 -33
- package/dist/cjs/src/queries/dataSummary.js.map +0 -1
- package/dist/cjs/src/queries/databases.d.ts +0 -28
- package/dist/cjs/src/queries/databases.js +0 -112
- package/dist/cjs/src/queries/databases.js.map +0 -1
- package/dist/cjs/src/queries/functions.d.ts +0 -14
- package/dist/cjs/src/queries/functions.js +0 -87
- package/dist/cjs/src/queries/functions.js.map +0 -1
- package/dist/cjs/src/queries/graphSchema.d.ts +0 -28
- package/dist/cjs/src/queries/graphSchema.js +0 -88
- package/dist/cjs/src/queries/graphSchema.js.map +0 -1
- package/dist/cjs/src/queries/procedures.d.ts +0 -14
- package/dist/cjs/src/queries/procedures.js +0 -105
- package/dist/cjs/src/queries/procedures.js.map +0 -1
- package/dist/cjs/src/queries/roles.d.ts +0 -11
- package/dist/cjs/src/queries/roles.js +0 -24
- package/dist/cjs/src/queries/roles.js.map +0 -1
- package/dist/cjs/src/queries/users.d.ts +0 -15
- package/dist/cjs/src/queries/users.js +0 -24
- package/dist/cjs/src/queries/users.js.map +0 -1
- package/dist/cjs/src/queries/version.d.ts +0 -7
- package/dist/cjs/src/queries/version.js +0 -32
- package/dist/cjs/src/queries/version.js.map +0 -1
- package/dist/cjs/src/result-transformers/graph-result-transformer.d.ts +0 -37
- package/dist/cjs/src/result-transformers/graph-result-transformer.js +0 -37
- package/dist/cjs/src/result-transformers/graph-result-transformer.js.map +0 -1
- package/dist/cjs/src/schemaPoller.d.ts +0 -45
- package/dist/cjs/src/schemaPoller.js +0 -199
- package/dist/cjs/src/schemaPoller.js.map +0 -1
- package/dist/cjs/src/types/cypher-data-types.d.ts +0 -41
- package/dist/cjs/src/types/cypher-data-types.js +0 -47
- package/dist/cjs/src/types/cypher-data-types.js.map +0 -1
- package/dist/cjs/src/types/sdkTypes.d.ts +0 -18
- package/dist/cjs/src/types/sdkTypes.js +0 -11
- package/dist/cjs/src/types/sdkTypes.js.map +0 -1
- package/dist/cjs/tsconfig.tsbuildinfo +0 -1
- package/dist/cjs/vitest.config.d.mts +0 -2
- package/dist/cjs/vitest.config.mjs +0 -10
- package/dist/cjs/vitest.config.mjs.map +0 -1
- package/dist/esm/src/integration-tests/pollingIntegrationTests.test.js.map +0 -1
- package/dist/esm/src/integration-tests/setupTestContainer.js.map +0 -1
- package/dist/types/src/integration-tests/pollingIntegrationTests.test.d.ts +0 -1
- /package/dist/{cjs/src/integration-tests → esm/src/tests/integration}/pollingIntegrationTests.test.d.ts +0 -0
- /package/dist/{esm/src/integration-tests → types/src/tests/integration}/pollingIntegrationTests.test.d.ts +0 -0
package/tsconfig.node.json
CHANGED
package/vitest.config.mts
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineProject } from 'vitest/config';
|
|
2
2
|
|
|
3
|
-
export default
|
|
3
|
+
export default defineProject({
|
|
4
4
|
test: {
|
|
5
5
|
globals: true,
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
projects: [
|
|
7
|
+
{
|
|
8
|
+
extends: true,
|
|
9
|
+
test: {
|
|
10
|
+
name: 'unit',
|
|
11
|
+
include: ['src/**/*.test.ts'],
|
|
12
|
+
exclude: ['src/tests/integration/**'],
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
extends: true,
|
|
17
|
+
test: {
|
|
18
|
+
name: 'integration',
|
|
19
|
+
include: ['src/tests/integration/**/*.test.ts'],
|
|
20
|
+
hookTimeout: 90000,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
],
|
|
8
24
|
},
|
|
9
25
|
});
|
package/dist/cjs/package.json
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@neo4j-cypher/query-tools",
|
|
3
|
-
"version": "2.0.0-next.37",
|
|
4
|
-
"description": "",
|
|
5
|
-
"bugs": {
|
|
6
|
-
"url": "https://github.com/neo4j/cypher-language-support/issues"
|
|
7
|
-
},
|
|
8
|
-
"license": "Apache-2.0",
|
|
9
|
-
"author": "Neo4j Inc.",
|
|
10
|
-
"repository": {
|
|
11
|
-
"type": "git",
|
|
12
|
-
"url": "git://github.com/neo4j/cypher-language-support.git"
|
|
13
|
-
},
|
|
14
|
-
"main": "./dist/cjs/src/index.js",
|
|
15
|
-
"module": "./dist/esm/src/index.js",
|
|
16
|
-
"types": "./dist/types/src/index.d.ts",
|
|
17
|
-
"exports": {
|
|
18
|
-
".": {
|
|
19
|
-
"types": "./dist/esm/index.d.ts",
|
|
20
|
-
"require": "./dist/cjs/src/index.js",
|
|
21
|
-
"import": "./dist/esm/src/index.js",
|
|
22
|
-
"default": "./dist/cjs/src/index.js"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"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",
|
|
29
|
-
"build-types": "tsc --emitDeclarationOnly --outDir dist/types",
|
|
30
|
-
"dev": "concurrently 'npm:build-esm -- --watch' 'npm:build-commonjs -- --watch'",
|
|
31
|
-
"clean": "rm -rf {dist,tsconfig.tsbuildinfo}",
|
|
32
|
-
"test": "vitest run extract-unique-nodes-and-relationships",
|
|
33
|
-
"test:polling": "vitest run pollingIntegrationTests"
|
|
34
|
-
},
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"@neo4j-cypher/language-support": "workspace:*",
|
|
37
|
-
"ajv": "^8.12.0",
|
|
38
|
-
"neo4j-driver": "catalog:"
|
|
39
|
-
},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"@testcontainers/neo4j": "^11.5.1"
|
|
42
|
-
},
|
|
43
|
-
"engines": {
|
|
44
|
-
"node": ">=24.11.1"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare const FRIENDLY_ERROR_MESSAGES: {
|
|
2
|
-
[key: string]: string;
|
|
3
|
-
};
|
|
4
|
-
export type ConnectionError = {
|
|
5
|
-
message: string;
|
|
6
|
-
friendlyMessage: string;
|
|
7
|
-
code: string;
|
|
8
|
-
};
|
|
9
|
-
export declare function isRetriableNeo4jError(error: unknown): boolean;
|
|
10
|
-
export declare function getConnectionError(error: unknown): ConnectionError;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FRIENDLY_ERROR_MESSAGES = void 0;
|
|
4
|
-
exports.isRetriableNeo4jError = isRetriableNeo4jError;
|
|
5
|
-
exports.getConnectionError = getConnectionError;
|
|
6
|
-
exports.FRIENDLY_ERROR_MESSAGES = {
|
|
7
|
-
'Neo.ClientError.Security.AuthenticationRateLimit': 'Double check your username and password',
|
|
8
|
-
'Neo.ClientError.Security.CredentialsExpired': 'Double check your username and password',
|
|
9
|
-
'Neo.ClientError.Security.Unauthorized': 'Double check your username and password',
|
|
10
|
-
'Neo.ClientError.Security.TokenExpired': 'Double check your username and password',
|
|
11
|
-
'Neo.ClientError.Database.DatabaseNotFound': 'Double check that the database exists',
|
|
12
|
-
ServiceUnavailable: 'Double check the scheme, host and port are correct, make sure Neo4j is running and that you have a network connection if needed',
|
|
13
|
-
Default: 'An error occurred while connecting to Neo4j',
|
|
14
|
-
};
|
|
15
|
-
function isRetriableNeo4jError(error) {
|
|
16
|
-
return isNeo4jError(error) ? error.retriable : true;
|
|
17
|
-
}
|
|
18
|
-
function isNeo4jError(error) {
|
|
19
|
-
return (error instanceof Error &&
|
|
20
|
-
error.code !== undefined &&
|
|
21
|
-
error.message !== undefined);
|
|
22
|
-
}
|
|
23
|
-
function getConnectionError(error) {
|
|
24
|
-
if (isNeo4jError(error)) {
|
|
25
|
-
return {
|
|
26
|
-
message: stripTrailingPeriod(error.message),
|
|
27
|
-
code: error.code,
|
|
28
|
-
friendlyMessage: exports.FRIENDLY_ERROR_MESSAGES[error.code] ?? exports.FRIENDLY_ERROR_MESSAGES.Default,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
message: '',
|
|
33
|
-
code: '',
|
|
34
|
-
friendlyMessage: exports.FRIENDLY_ERROR_MESSAGES.Default,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function stripTrailingPeriod(message) {
|
|
38
|
-
return message.endsWith('.') ? message.slice(0, -1) : message;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=connectionErrorHandler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connectionErrorHandler.js","sourceRoot":"","sources":["../../../src/connectionErrorHandler.ts"],"names":[],"mappings":";;;AAwBA,sDAEC;AAUD,gDAeC;AAjDY,QAAA,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,SAAgB,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,SAAgB,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,+BAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,+BAAuB,CAAC,OAAO;SACzE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,EAAE;QACR,eAAe,EAAE,+BAAuB,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,33 +0,0 @@
|
|
|
1
|
-
import type { Integer, Node, Record, RecordShape, Relationship } from 'neo4j-driver';
|
|
2
|
-
import { CypherProperty } from '../types/cypher-data-types.js';
|
|
3
|
-
export type Properties = RecordShape<string, CypherProperty>;
|
|
4
|
-
/**
|
|
5
|
-
* Result type containing deduplicated nodes and relationships extracted from Neo4j records.
|
|
6
|
-
*/
|
|
7
|
-
export type DeduplicatedNodesAndRels = {
|
|
8
|
-
/** Array of unique nodes found in the records */
|
|
9
|
-
nodes: Node<Integer, Properties, string>[];
|
|
10
|
-
/** Array of unique relationships found in the records */
|
|
11
|
-
relationships: Relationship<Integer, Properties, string>[];
|
|
12
|
-
/** Whether the max node limit was reached during extraction */
|
|
13
|
-
limitHit: boolean;
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Extracts and deduplicates nodes and relationships from Neo4j query records.
|
|
17
|
-
*
|
|
18
|
-
* This function processes Neo4j records to find all nodes and relationships,
|
|
19
|
-
* removing duplicates based on their element IDs. It can handle various data
|
|
20
|
-
* structures including individual nodes/relationships, paths, arrays, and
|
|
21
|
-
* nested objects.
|
|
22
|
-
*
|
|
23
|
-
* @param records - Array of Neo4j records to process
|
|
24
|
-
* @param options - Configuration options for extraction
|
|
25
|
-
* @param options.nodeLimit - Maximum number of unique nodes to extract (optional)
|
|
26
|
-
* @param options.keepDanglingRels - Whether to keep relationships whose start/end nodes are missing (default: false)
|
|
27
|
-
*
|
|
28
|
-
* @returns The {@link DeduplicatedNodesAndRels} containing unique nodes and relationships
|
|
29
|
-
*/
|
|
30
|
-
export declare const extractUniqueNodesAndRels: (records: Record[], { nodeLimit, keepDanglingRels, }?: {
|
|
31
|
-
nodeLimit?: number;
|
|
32
|
-
keepDanglingRels?: boolean;
|
|
33
|
-
}) => DeduplicatedNodesAndRels;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extractUniqueNodesAndRels = void 0;
|
|
4
|
-
const neo4j_driver_1 = require("neo4j-driver");
|
|
5
|
-
/**
|
|
6
|
-
* Extracts and deduplicates nodes and relationships from Neo4j query records.
|
|
7
|
-
*
|
|
8
|
-
* This function processes Neo4j records to find all nodes and relationships,
|
|
9
|
-
* removing duplicates based on their element IDs. It can handle various data
|
|
10
|
-
* structures including individual nodes/relationships, paths, arrays, and
|
|
11
|
-
* nested objects.
|
|
12
|
-
*
|
|
13
|
-
* @param records - Array of Neo4j records to process
|
|
14
|
-
* @param options - Configuration options for extraction
|
|
15
|
-
* @param options.nodeLimit - Maximum number of unique nodes to extract (optional)
|
|
16
|
-
* @param options.keepDanglingRels - Whether to keep relationships whose start/end nodes are missing (default: false)
|
|
17
|
-
*
|
|
18
|
-
* @returns The {@link DeduplicatedNodesAndRels} containing unique nodes and relationships
|
|
19
|
-
*/
|
|
20
|
-
const extractUniqueNodesAndRels = (records, { nodeLimit, keepDanglingRels = false, } = {}) => {
|
|
21
|
-
let limitHit = false;
|
|
22
|
-
const items = new Set();
|
|
23
|
-
for (const record of records) {
|
|
24
|
-
for (const key of record.keys) {
|
|
25
|
-
items.add(record.get(key));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
const paths = [];
|
|
29
|
-
const nodeMap = new Map();
|
|
30
|
-
function addNode(n) {
|
|
31
|
-
if (!limitHit) {
|
|
32
|
-
const id = n.elementId.toString();
|
|
33
|
-
if (!nodeMap.has(id)) {
|
|
34
|
-
nodeMap.set(id, n);
|
|
35
|
-
}
|
|
36
|
-
if (typeof nodeLimit === 'number' && nodeMap.size === nodeLimit) {
|
|
37
|
-
limitHit = true;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
const relMap = new Map();
|
|
42
|
-
function addRel(r) {
|
|
43
|
-
const id = r.elementId.toString();
|
|
44
|
-
if (!relMap.has(id)) {
|
|
45
|
-
relMap.set(id, r);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
const findAllEntities = (item) => {
|
|
49
|
-
if (typeof item !== 'object' || !item) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
if ((0, neo4j_driver_1.isRelationship)(item)) {
|
|
53
|
-
addRel(item);
|
|
54
|
-
}
|
|
55
|
-
else if ((0, neo4j_driver_1.isNode)(item)) {
|
|
56
|
-
addNode(item);
|
|
57
|
-
}
|
|
58
|
-
else if ((0, neo4j_driver_1.isPath)(item)) {
|
|
59
|
-
paths.push(item);
|
|
60
|
-
}
|
|
61
|
-
else if (Array.isArray(item)) {
|
|
62
|
-
item.forEach(findAllEntities);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
Object.values(item).forEach(findAllEntities);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
findAllEntities(Array.from(items));
|
|
69
|
-
for (const path of paths) {
|
|
70
|
-
addNode(path.start);
|
|
71
|
-
addNode(path.end);
|
|
72
|
-
for (const segment of path.segments) {
|
|
73
|
-
addNode(segment.start);
|
|
74
|
-
addNode(segment.end);
|
|
75
|
-
addRel(segment.relationship);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
const nodes = Array.from(nodeMap.values());
|
|
79
|
-
const relationships = Array.from(relMap.values()).filter((item) => {
|
|
80
|
-
if (keepDanglingRels) {
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
// We'd get dangling relationships from
|
|
84
|
-
// match ()-[a:ACTED_IN]->() return a;
|
|
85
|
-
// or from hitting the node limit
|
|
86
|
-
const start = item.startNodeElementId.toString();
|
|
87
|
-
const end = item.endNodeElementId.toString();
|
|
88
|
-
return nodeMap.has(start) && nodeMap.has(end);
|
|
89
|
-
});
|
|
90
|
-
return { nodes, relationships, limitHit };
|
|
91
|
-
};
|
|
92
|
-
exports.extractUniqueNodesAndRels = extractUniqueNodesAndRels;
|
|
93
|
-
//# sourceMappingURL=extract-unique-nodes-and-relationships.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extract-unique-nodes-and-relationships.js","sourceRoot":"","sources":["../../../../src/cypher-execution/extract-unique-nodes-and-relationships.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const neo4j_driver_1 = require("neo4j-driver");
|
|
4
|
-
const vitest_1 = require("vitest");
|
|
5
|
-
const extract_unique_nodes_and_relationships_js_1 = require("./extract-unique-nodes-and-relationships.js");
|
|
6
|
-
(0, vitest_1.describe)('extractNodesAndRels', () => {
|
|
7
|
-
(0, vitest_1.test)('should map bolt records with a path to nodes and relationships', () => {
|
|
8
|
-
const startNode = new neo4j_driver_1.Node(1, ['Person'], {
|
|
9
|
-
prop1: 'prop1',
|
|
10
|
-
}, 'node1');
|
|
11
|
-
const endNode = new neo4j_driver_1.Node(2, ['Movie'], {
|
|
12
|
-
prop2: 'prop2',
|
|
13
|
-
}, 'node2');
|
|
14
|
-
const relationship = new neo4j_driver_1.Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
|
|
15
|
-
const pathSegment = new neo4j_driver_1.PathSegment(startNode, relationship, endNode);
|
|
16
|
-
const path = new neo4j_driver_1.Path(startNode, endNode, [pathSegment]);
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
18
|
-
const boltRecord = {
|
|
19
|
-
keys: ['p'],
|
|
20
|
-
get: () => path,
|
|
21
|
-
};
|
|
22
|
-
const { nodes, relationships } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([boltRecord]);
|
|
23
|
-
const [graphNodeStart] = nodes.filter((node) => node.elementId.toString() === 'node1');
|
|
24
|
-
const [graphNodeEnd] = nodes.filter((node) => node.elementId.toString() === 'node2');
|
|
25
|
-
const [firstRel] = relationships;
|
|
26
|
-
if (graphNodeStart === undefined ||
|
|
27
|
-
graphNodeEnd === undefined ||
|
|
28
|
-
firstRel === undefined) {
|
|
29
|
-
throw new Error('Error in test data, got undefined');
|
|
30
|
-
}
|
|
31
|
-
(0, vitest_1.expect)(nodes.length).toBe(2);
|
|
32
|
-
(0, vitest_1.expect)(graphNodeStart.labels).toEqual(['Person']);
|
|
33
|
-
(0, vitest_1.expect)(graphNodeStart.properties).toEqual({ prop1: 'prop1' });
|
|
34
|
-
(0, vitest_1.expect)(graphNodeEnd.labels).toEqual(['Movie']);
|
|
35
|
-
(0, vitest_1.expect)(graphNodeEnd.properties).toEqual({ prop2: 'prop2' });
|
|
36
|
-
(0, vitest_1.expect)(relationships.length).toBe(1);
|
|
37
|
-
(0, vitest_1.expect)(firstRel.elementId.toString()).toEqual('rel1');
|
|
38
|
-
(0, vitest_1.expect)(firstRel.startNodeElementId.toString()).toEqual('node1');
|
|
39
|
-
(0, vitest_1.expect)(firstRel.endNodeElementId.toString()).toEqual('node2');
|
|
40
|
-
(0, vitest_1.expect)(firstRel.type).toEqual('ACTED_IN');
|
|
41
|
-
(0, vitest_1.expect)(firstRel.properties).toEqual({});
|
|
42
|
-
});
|
|
43
|
-
(0, vitest_1.test)('should deduplicate bolt records based on node id and filter out dangling relationships', () => {
|
|
44
|
-
const node1 = new neo4j_driver_1.Node(1, ['Person'], {
|
|
45
|
-
prop1: 'prop1',
|
|
46
|
-
}, 'node1');
|
|
47
|
-
const node2 = new neo4j_driver_1.Node(1, ['Person'], {
|
|
48
|
-
prop1: 'prop1',
|
|
49
|
-
}, 'node1');
|
|
50
|
-
const relationship = new neo4j_driver_1.Relationship(2, 1, 34, 'ACTED_IN', {}, 'rel1', 'node1', 'node34');
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
52
|
-
const boltRecord = {
|
|
53
|
-
keys: ['n'],
|
|
54
|
-
get: () => [node1, node2, relationship],
|
|
55
|
-
};
|
|
56
|
-
const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([
|
|
57
|
-
boltRecord,
|
|
58
|
-
]);
|
|
59
|
-
(0, vitest_1.expect)(limitHit).toBe(false);
|
|
60
|
-
(0, vitest_1.expect)(nodes.length).toBe(1);
|
|
61
|
-
(0, vitest_1.expect)(relationships.length).toBe(0);
|
|
62
|
-
});
|
|
63
|
-
(0, vitest_1.test)('should respect the max nodes limit and filter out dangling relations', () => {
|
|
64
|
-
const startNode = new neo4j_driver_1.Node(1, ['Person'], {
|
|
65
|
-
prop1: 'prop1',
|
|
66
|
-
}, 'node1');
|
|
67
|
-
const endNode = new neo4j_driver_1.Node(2, ['Movie'], {
|
|
68
|
-
prop2: 'prop2',
|
|
69
|
-
}, 'node2');
|
|
70
|
-
const relationship = new neo4j_driver_1.Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
|
|
71
|
-
const pathSegment = new neo4j_driver_1.PathSegment(startNode, relationship, endNode);
|
|
72
|
-
const path = new neo4j_driver_1.Path(startNode, endNode, [pathSegment]);
|
|
73
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
74
|
-
const boltRecord = {
|
|
75
|
-
keys: ['p'],
|
|
76
|
-
get: () => path,
|
|
77
|
-
};
|
|
78
|
-
const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([boltRecord], {
|
|
79
|
-
nodeLimit: 1,
|
|
80
|
-
});
|
|
81
|
-
(0, vitest_1.expect)(limitHit).toBe(true);
|
|
82
|
-
(0, vitest_1.expect)(nodes.length).toBe(1);
|
|
83
|
-
const [graphNodeStart] = nodes;
|
|
84
|
-
(0, vitest_1.expect)(graphNodeStart).toBeDefined();
|
|
85
|
-
if (graphNodeStart === undefined) {
|
|
86
|
-
throw new Error('Error in test data, got undefined');
|
|
87
|
-
}
|
|
88
|
-
(0, vitest_1.expect)(graphNodeStart.labels).toEqual(['Person']);
|
|
89
|
-
(0, vitest_1.expect)(graphNodeStart.properties).toEqual({ prop1: 'prop1' });
|
|
90
|
-
(0, vitest_1.expect)(relationships.length).toBe(0);
|
|
91
|
-
});
|
|
92
|
-
(0, vitest_1.test)('should respect the max nodes limit and not filter out dangling relations when asked to keep them', () => {
|
|
93
|
-
const startNode = new neo4j_driver_1.Node(1, ['Person'], {
|
|
94
|
-
prop1: 'prop1',
|
|
95
|
-
}, 'node1');
|
|
96
|
-
const endNode = new neo4j_driver_1.Node(2, ['Movie'], {
|
|
97
|
-
prop2: 'prop2',
|
|
98
|
-
}, 'node2');
|
|
99
|
-
const relationship = new neo4j_driver_1.Relationship(3, 1, 2, 'ACTED_IN', {}, 'rel1', 'node1', 'node2');
|
|
100
|
-
const pathSegment = new neo4j_driver_1.PathSegment(startNode, relationship, endNode);
|
|
101
|
-
const path = new neo4j_driver_1.Path(startNode, endNode, [pathSegment]);
|
|
102
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
103
|
-
const boltRecord = {
|
|
104
|
-
keys: ['p'],
|
|
105
|
-
get: () => path,
|
|
106
|
-
};
|
|
107
|
-
const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([boltRecord], {
|
|
108
|
-
nodeLimit: 1,
|
|
109
|
-
keepDanglingRels: true,
|
|
110
|
-
});
|
|
111
|
-
(0, vitest_1.expect)(limitHit).toBe(true);
|
|
112
|
-
(0, vitest_1.expect)(nodes.length).toBe(1);
|
|
113
|
-
const [graphNodeStart] = nodes;
|
|
114
|
-
(0, vitest_1.expect)(graphNodeStart).toBeDefined();
|
|
115
|
-
if (graphNodeStart === undefined) {
|
|
116
|
-
throw new Error('Error in test data, got undefined');
|
|
117
|
-
}
|
|
118
|
-
(0, vitest_1.expect)(graphNodeStart.labels).toEqual(['Person']);
|
|
119
|
-
(0, vitest_1.expect)(graphNodeStart.properties).toEqual({ prop1: 'prop1' });
|
|
120
|
-
(0, vitest_1.expect)(relationships.length).toBe(1);
|
|
121
|
-
});
|
|
122
|
-
(0, vitest_1.test)('should handle empty results', () => {
|
|
123
|
-
const { nodes, relationships, limitHit } = (0, extract_unique_nodes_and_relationships_js_1.extractUniqueNodesAndRels)([]);
|
|
124
|
-
(0, vitest_1.expect)(limitHit).toBe(false);
|
|
125
|
-
(0, vitest_1.expect)(nodes.length).toBe(0);
|
|
126
|
-
(0, vitest_1.expect)(relationships.length).toBe(0);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
//# sourceMappingURL=extract-unique-nodes-and-relationships.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extract-unique-nodes-and-relationships.test.js","sourceRoot":"","sources":["../../../../src/cypher-execution/extract-unique-nodes-and-relationships.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { QueryResult, Record as Neo4jRecord } from 'neo4j-driver';
|
|
2
|
-
import { types } from 'neo4j-driver';
|
|
3
|
-
export declare const RESERVED_TYPE_PROPERTY_NAME = "transport-class";
|
|
4
|
-
export declare const ESCAPE_CHAR = "_";
|
|
5
|
-
export type Neo4jType = typeof types.Record | typeof types.Result | typeof types.ResultSummary | typeof types.Node | typeof types.PathSegment | typeof types.Path | typeof types.Relationship | typeof types.Point | typeof types.Date | typeof types.DateTime | typeof types.Duration | typeof types.LocalDateTime | typeof types.LocalTime | typeof types.Time | typeof types.Integer | typeof types.Vector | Record<string, unknown> | Neo4jType[] | undefined | null;
|
|
6
|
-
export declare function addAnnotationProp(obj: Record<string, unknown>, type: string | unknown, prop?: string): Record<string, unknown>;
|
|
7
|
-
export declare function deleteAnnotationProp(obj: Record<string, unknown>): void;
|
|
8
|
-
export declare function serializeTypeAnnotations(item: QueryResult | Neo4jRecord): Record<string, unknown>;
|
|
9
|
-
export declare function serializeTypeAnnotations(item: Neo4jType): Record<string, unknown> | null | undefined | unknown[];
|
|
10
|
-
export declare function deserializeTypeAnnotations(rawItem: Record<string, unknown>): QueryResult | Neo4jRecord;
|
|
11
|
-
export declare function deserializeTypeAnnotations(rawItem: any): any;
|