@neo4j-cypher/query-tools 2.0.0-next.21 → 2.0.0-next.23
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 +23 -0
- package/dist/cjs/package.json +3 -2
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +33 -0
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js +93 -0
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.js.map +1 -0
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.d.ts +1 -0
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +127 -0
- package/dist/cjs/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +1 -0
- package/dist/cjs/src/index.d.ts +4 -1
- package/dist/cjs/src/index.js +21 -1
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/metadataPoller.js +1 -4
- package/dist/cjs/src/metadataPoller.js.map +1 -1
- package/dist/cjs/src/neo4jConnection.d.ts +9 -2
- package/dist/cjs/src/neo4jConnection.js +44 -23
- package/dist/cjs/src/neo4jConnection.js.map +1 -1
- package/dist/cjs/src/queries/version.d.ts +0 -3
- package/dist/cjs/src/queries/version.js +4 -28
- package/dist/cjs/src/queries/version.js.map +1 -1
- package/dist/cjs/src/result-transformers/graph-result-transformer.d.ts +36 -0
- package/dist/cjs/src/result-transformers/graph-result-transformer.js +37 -0
- package/dist/cjs/src/result-transformers/graph-result-transformer.js.map +1 -0
- package/dist/cjs/src/schemaPoller.d.ts +1 -0
- package/dist/cjs/src/schemaPoller.js +31 -2
- package/dist/cjs/src/schemaPoller.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/package.json +3 -2
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.d.ts +33 -0
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.js +89 -0
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.js.map +1 -0
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.d.ts +1 -0
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js +125 -0
- package/dist/esm/src/cypher-execution/extract-unique-nodes-and-relationships.test.js.map +1 -0
- package/dist/esm/src/index.d.ts +4 -1
- package/dist/esm/src/index.js +4 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/metadataPoller.js +2 -5
- package/dist/esm/src/metadataPoller.js.map +1 -1
- package/dist/esm/src/neo4jConnection.d.ts +9 -2
- package/dist/esm/src/neo4jConnection.js +44 -23
- package/dist/esm/src/neo4jConnection.js.map +1 -1
- package/dist/esm/src/queries/version.d.ts +0 -3
- package/dist/esm/src/queries/version.js +4 -27
- package/dist/esm/src/queries/version.js.map +1 -1
- package/dist/esm/src/result-transformers/graph-result-transformer.d.ts +36 -0
- package/dist/esm/src/result-transformers/graph-result-transformer.js +34 -0
- package/dist/esm/src/result-transformers/graph-result-transformer.js.map +1 -0
- package/dist/esm/src/schemaPoller.d.ts +1 -0
- package/dist/esm/src/schemaPoller.js +32 -3
- package/dist/esm/src/schemaPoller.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/src/cypher-execution/extract-unique-nodes-and-relationships.test.ts +235 -0
- package/src/cypher-execution/extract-unique-nodes-and-relationships.ts +127 -0
- package/src/index.ts +7 -1
- package/src/metadataPoller.ts +2 -6
- package/src/neo4jConnection.ts +67 -29
- package/src/queries/version.ts +5 -32
- package/src/result-transformers/graph-result-transformer.ts +57 -0
- package/src/schemaPoller.ts +45 -6
package/src/schemaPoller.ts
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from './metadataPoller';
|
|
14
14
|
import { Neo4jConnection } from './neo4jConnection';
|
|
15
15
|
import { listDatabases } from './queries/databases.js';
|
|
16
|
-
import {
|
|
16
|
+
import { getVersion } from './queries/version';
|
|
17
17
|
|
|
18
18
|
export type ConnnectionResult = {
|
|
19
19
|
success: boolean;
|
|
@@ -152,6 +152,29 @@ export class Neo4jSchemaPoller {
|
|
|
152
152
|
clearTimeout(this.reconnectionTimeout);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
+
private async getAvailableCypherVersions(): Promise<string[]> {
|
|
156
|
+
// We need to use a query we can fire against the system database
|
|
157
|
+
// because we might not have no information on what user database
|
|
158
|
+
// we could use to try a simpler CYPHER 25 RETURN true query
|
|
159
|
+
const { query: cypherVersionQuery, queryConfig: cypherVersionQueryConfig } =
|
|
160
|
+
getVersion();
|
|
161
|
+
|
|
162
|
+
try {
|
|
163
|
+
if (this.driver) {
|
|
164
|
+
await this.driver.executeQuery(
|
|
165
|
+
'CYPHER 25' + ' ' + cypherVersionQuery,
|
|
166
|
+
{},
|
|
167
|
+
cypherVersionQueryConfig,
|
|
168
|
+
);
|
|
169
|
+
return ['5', '25'];
|
|
170
|
+
}
|
|
171
|
+
} catch (e) {
|
|
172
|
+
return ['5'];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return ['5'];
|
|
176
|
+
}
|
|
177
|
+
|
|
155
178
|
private async connectAndStartMetadataPoller(
|
|
156
179
|
url: string,
|
|
157
180
|
credentials: { username: string; password: string },
|
|
@@ -180,14 +203,30 @@ export class Neo4jSchemaPoller {
|
|
|
180
203
|
database,
|
|
181
204
|
);
|
|
182
205
|
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
const {
|
|
186
|
-
|
|
206
|
+
const serverCypherVersions = await this.getAvailableCypherVersions();
|
|
207
|
+
|
|
208
|
+
const { query: serverVersionQuery, queryConfig: serverVersionQueryConfig } =
|
|
209
|
+
getVersion();
|
|
210
|
+
let { serverVersion } = await this.driver.executeQuery(
|
|
211
|
+
serverVersionQuery,
|
|
187
212
|
{},
|
|
188
|
-
|
|
213
|
+
serverVersionQueryConfig,
|
|
189
214
|
);
|
|
190
215
|
|
|
216
|
+
// If the server version is 5.27.0 we have to use the agent to
|
|
217
|
+
// really know whether we are in 2025.01, 2025.02 or 2025.03
|
|
218
|
+
if (serverVersion?.startsWith('5.27.0')) {
|
|
219
|
+
const agent = summary.server.agent;
|
|
220
|
+
if (agent) {
|
|
221
|
+
const matchedVersion = agent.match(/\d+\.\d+\.\d+/);
|
|
222
|
+
if (matchedVersion) {
|
|
223
|
+
serverVersion = matchedVersion[0];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
this.connection.serverVersion = serverVersion;
|
|
229
|
+
|
|
191
230
|
this.metadata = new ConnectedMetadataPoller(
|
|
192
231
|
databases,
|
|
193
232
|
this.parameters,
|