@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
@@ -1,214 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectedMetadataPoller = exports.DisconnectedMetadataPoller = exports.MetadataPoller = void 0;
4
- const language_support_1 = require("@neo4j-cypher/language-support");
5
- const databases_js_1 = require("./queries/databases.js");
6
- const dataSummary_js_1 = require("./queries/dataSummary.js");
7
- const functions_js_1 = require("./queries/functions.js");
8
- const procedures_js_1 = require("./queries/procedures.js");
9
- const roles_js_1 = require("./queries/roles.js");
10
- const users_js_1 = require("./queries/users.js");
11
- const graphSchema_js_1 = require("./queries/graphSchema.js");
12
- class QueryPoller {
13
- status = 'not-started';
14
- data;
15
- lastFetchStart;
16
- errorMessage;
17
- connection;
18
- onRefetchDone;
19
- queryArgs;
20
- constructor({ prefetchedData, queryArgs, connection, onRefetchDone, }) {
21
- this.connection = connection;
22
- this.queryArgs = queryArgs;
23
- this.onRefetchDone = onRefetchDone;
24
- if (prefetchedData) {
25
- this.data = prefetchedData;
26
- this.lastFetchStart = Date.now();
27
- this.status = 'fetched';
28
- }
29
- }
30
- async refetch() {
31
- if (this.status === 'fetching')
32
- return;
33
- this.status = 'fetching';
34
- this.lastFetchStart = Date.now();
35
- delete this.errorMessage;
36
- try {
37
- const data = await this.connection.runSdkQuery(this.queryArgs, {
38
- queryType: 'system',
39
- });
40
- this.data = data;
41
- this.status = 'fetched';
42
- this.onRefetchDone?.({ success: true, data });
43
- }
44
- catch (e) {
45
- const errorMessage = String(e);
46
- this.errorMessage = errorMessage;
47
- this.status = 'error';
48
- console.error(e);
49
- this.onRefetchDone?.({ success: false, errorMessage });
50
- }
51
- }
52
- }
53
- class MetadataPoller {
54
- dbSchema = {};
55
- }
56
- exports.MetadataPoller = MetadataPoller;
57
- class DisconnectedMetadataPoller extends MetadataPoller {
58
- dbSchema = {};
59
- constructor(parameters) {
60
- super();
61
- this.dbSchema.parameters = parameters;
62
- }
63
- stopBackgroundPolling() { }
64
- startBackgroundPolling() { }
65
- fetchDbSchema() { }
66
- }
67
- exports.DisconnectedMetadataPoller = DisconnectedMetadataPoller;
68
- class ConnectedMetadataPoller extends MetadataPoller {
69
- connection;
70
- events;
71
- databases;
72
- dataSummary;
73
- functions = {};
74
- procedures = {};
75
- users;
76
- roles;
77
- graphSchema;
78
- dbPollingInterval;
79
- dbSchema = {};
80
- constructor(databases, parameters, serverCypherVersions, connection, events) {
81
- super();
82
- this.connection = connection;
83
- this.events = events;
84
- this.dbSchema.parameters = parameters;
85
- this.databases = new QueryPoller({
86
- connection,
87
- queryArgs: (0, databases_js_1.listDatabases)(),
88
- prefetchedData: { databases },
89
- onRefetchDone: (result) => {
90
- if (result.success) {
91
- this.dbSchema.databaseNames = result.data.databases.flatMap((db) => db.name);
92
- this.dbSchema.aliasNames = result.data.databases.flatMap((db) => db.aliases ?? []);
93
- const dbs = result.data.databases;
94
- const currentDb = dbs.find((db) => db.name === this.connection.currentDb);
95
- if (currentDb) {
96
- this.dbSchema.defaultLanguage = currentDb.defaultLanguage;
97
- }
98
- }
99
- },
100
- });
101
- this.users = new QueryPoller({
102
- connection,
103
- queryArgs: (0, users_js_1.listUsers)(),
104
- onRefetchDone: (result) => {
105
- if (result.success) {
106
- this.dbSchema.userNames = result.data.users.map((user) => user.user);
107
- }
108
- },
109
- });
110
- this.roles = new QueryPoller({
111
- connection,
112
- queryArgs: (0, roles_js_1.listRoles)(),
113
- onRefetchDone: (result) => {
114
- if (result.success) {
115
- this.dbSchema.roleNames = result.data.roles.map((role) => role.role);
116
- }
117
- },
118
- });
119
- this.graphSchema = new QueryPoller({
120
- connection,
121
- queryArgs: (0, graphSchema_js_1.listGraphSchema)(connection.currentDb),
122
- onRefetchDone: (result) => {
123
- if (result.success) {
124
- const { graphSchema } = result.data;
125
- this.dbSchema.graphSchema = graphSchema;
126
- }
127
- },
128
- });
129
- this.dataSummary = new QueryPoller({
130
- connection,
131
- queryArgs: (0, dataSummary_js_1.getDataSummary)(connection.currentDb),
132
- onRefetchDone: (result) => {
133
- if (result.success) {
134
- const { labels, propertyKeys, relationshipTypes } = result.data;
135
- this.dbSchema.labels = labels;
136
- this.dbSchema.propertyKeys = propertyKeys;
137
- this.dbSchema.relationshipTypes = relationshipTypes;
138
- }
139
- },
140
- });
141
- const versions = serverCypherVersions?.includes('25') ? language_support_1.allCypherVersions : [undefined];
142
- versions.forEach((cypherVersion) => {
143
- const effectiveCypherVersion = cypherVersion ?? 'CYPHER 5';
144
- this.procedures[effectiveCypherVersion] = new QueryPoller({
145
- connection,
146
- queryArgs: (0, procedures_js_1.listProcedures)({
147
- executableByMe: true,
148
- cypherVersion: cypherVersion,
149
- }),
150
- onRefetchDone: (result) => {
151
- if (result.success) {
152
- const procedures = result.data.procedures.reduce((acc, curr) => {
153
- const { name } = curr;
154
- acc[name] = curr;
155
- return acc;
156
- }, {});
157
- if (!this.dbSchema.procedures) {
158
- this.dbSchema.procedures = {};
159
- }
160
- this.dbSchema.procedures[effectiveCypherVersion] = procedures;
161
- }
162
- },
163
- });
164
- this.functions[effectiveCypherVersion] = new QueryPoller({
165
- connection,
166
- queryArgs: (0, functions_js_1.listFunctions)({
167
- executableByMe: true,
168
- cypherVersion: cypherVersion,
169
- }),
170
- onRefetchDone: (result) => {
171
- if (result.success) {
172
- const functions = result.data.functions.reduce((acc, curr) => {
173
- const { name } = curr;
174
- acc[name] = curr;
175
- return acc;
176
- }, {});
177
- if (!this.dbSchema.functions) {
178
- this.dbSchema.functions = {};
179
- }
180
- this.dbSchema.functions[effectiveCypherVersion] = functions;
181
- }
182
- },
183
- });
184
- });
185
- }
186
- async fetchDbSchema() {
187
- await Promise.allSettled([
188
- this.databases.refetch(),
189
- this.dataSummary.refetch(),
190
- ...Object.values(this.procedures).map((version) => version?.refetch()),
191
- ...Object.values(this.functions).map((version) => version?.refetch()),
192
- ]);
193
- if (this.dbSchema.labels &&
194
- this.dbSchema.relationshipTypes &&
195
- this.dbSchema.labels.length + this.dbSchema.relationshipTypes.length < 200) {
196
- await this.graphSchema.refetch();
197
- }
198
- else {
199
- this.dbSchema.graphSchema = undefined;
200
- }
201
- this.events.emit('schemaFetched');
202
- }
203
- stopBackgroundPolling() {
204
- clearInterval(this.dbPollingInterval);
205
- this.dbPollingInterval = undefined;
206
- }
207
- startBackgroundPolling(intervalSeconds = 30) {
208
- this.stopBackgroundPolling();
209
- void this.fetchDbSchema();
210
- this.dbPollingInterval = setInterval(() => void this.fetchDbSchema(), intervalSeconds * 1000);
211
- }
212
- }
213
- exports.ConnectedMetadataPoller = ConnectedMetadataPoller;
214
- //# sourceMappingURL=metadataPoller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadataPoller.js","sourceRoot":"","sources":["../../../src/metadataPoller.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- import { Driver, ManagedTransaction, QueryResult, RecordShape, Session } from 'neo4j-driver';
2
- import { Database } from './queries/databases.js';
3
- import { ExecuteQueryArgs, QueryType } from './types/sdkTypes.js';
4
- type SdkQueryArgs = {
5
- queryType: QueryType;
6
- abortSignal?: AbortSignal;
7
- };
8
- type RunCypherQueryArgs = {
9
- query: string;
10
- parameters: Record<string, unknown>;
11
- database?: string;
12
- abortSignal?: AbortSignal;
13
- implicitTransaction?: boolean;
14
- };
15
- export type QueryResultWithLimit = QueryResult & {
16
- recordLimitHit: boolean;
17
- };
18
- export declare class Neo4jConnection {
19
- connectedUser: string;
20
- protocolVersion: string;
21
- databases: Database[];
22
- driver: Driver;
23
- currentDb: string | undefined;
24
- serverVersion: string | undefined;
25
- constructor(connectedUser: string, protocolVersion: string, databases: Database[], driver: Driver, database?: string);
26
- evalQuery(session: Session, query: string, parameters: Record<string, unknown>, metadata: object, tx?: ManagedTransaction): Promise<{
27
- records: import("neo4j-driver").Record<RecordShape, PropertyKey, RecordShape<PropertyKey, number>>[];
28
- summary: import("neo4j-driver").ResultSummary<import("neo4j-driver").Integer>;
29
- recordLimitHit: boolean;
30
- }>;
31
- runCypherQuery({ query, parameters, database, abortSignal, implicitTransaction, }: RunCypherQueryArgs): Promise<QueryResultWithLimit>;
32
- runSdkQuery<T>({ query, queryConfig }: ExecuteQueryArgs<T>, { queryType, abortSignal }: SdkQueryArgs): Promise<T>;
33
- healthcheck(): Promise<boolean>;
34
- dispose(): void;
35
- }
36
- export {};
@@ -1,128 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Neo4jConnection = void 0;
4
- const package_json_1 = require("../package.json");
5
- const METADATA_BASE = {
6
- app: 'neo4j-sdk',
7
- version: package_json_1.version,
8
- };
9
- const RECORD_LIMIT = 5000;
10
- function resolveInitialDatabase(databases, database) {
11
- if (database) {
12
- return databases.find((d) => d.name === database || d?.aliases?.includes(database))?.name;
13
- }
14
- const home = databases.find((d) => d.home);
15
- const def = databases.find((d) => d.default);
16
- const system = databases.find((d) => d.name === 'system');
17
- return home?.name ?? def?.name ?? system?.name ?? databases[0]?.name;
18
- }
19
- class Neo4jConnection {
20
- connectedUser;
21
- protocolVersion;
22
- databases;
23
- driver;
24
- currentDb;
25
- serverVersion;
26
- constructor(connectedUser, protocolVersion, databases, driver, database) {
27
- this.connectedUser = connectedUser;
28
- this.protocolVersion = protocolVersion;
29
- this.databases = databases;
30
- this.driver = driver;
31
- this.currentDb = resolveInitialDatabase(databases, database);
32
- this.serverVersion = undefined;
33
- }
34
- async evalQuery(session, query, parameters, metadata, tx) {
35
- let result;
36
- if (!tx) {
37
- result = session.run(query, parameters, {
38
- metadata,
39
- });
40
- }
41
- else {
42
- result = tx.run(query, parameters);
43
- }
44
- const records = [];
45
- let recordLimitHit = false;
46
- for await (const record of result) {
47
- if (records.length < RECORD_LIMIT) {
48
- records.push(record);
49
- }
50
- else {
51
- recordLimitHit = true;
52
- break;
53
- }
54
- }
55
- const summary = await result.summary();
56
- return { records, summary, recordLimitHit };
57
- }
58
- async runCypherQuery({ query, parameters, database, abortSignal, implicitTransaction = false, }) {
59
- // we'd like to use the drivers `executeQuery` method, but it doesn't support transaction metadata or cancelations yet
60
- const session = this.driver.session({
61
- database: database ?? this.currentDb,
62
- });
63
- if (abortSignal !== undefined) {
64
- abortSignal.addEventListener('abort', () => {
65
- void session.close();
66
- });
67
- }
68
- const metadata = {
69
- ...METADATA_BASE,
70
- type: 'user-direct',
71
- };
72
- try {
73
- let result;
74
- if (implicitTransaction) {
75
- result = this.evalQuery(session, query, parameters, metadata);
76
- }
77
- else {
78
- result = session.executeWrite(async (tx) => {
79
- const result = this.evalQuery(session, query, parameters, metadata, tx);
80
- return result;
81
- }, {
82
- metadata,
83
- });
84
- }
85
- return await result;
86
- }
87
- finally {
88
- await session.close();
89
- }
90
- }
91
- async runSdkQuery({ query, queryConfig }, { queryType, abortSignal }) {
92
- // we'd like to use the drivers `executeQuery` method, but it doesn't support transaction metadata or cancelations yet
93
- const session = this.driver.session({
94
- database: queryConfig?.database ?? this.currentDb,
95
- });
96
- if (abortSignal !== undefined) {
97
- abortSignal.addEventListener('abort', () => {
98
- void session.close();
99
- });
100
- }
101
- try {
102
- const executeInTransaction = queryConfig.routing === 'READ'
103
- ? session.executeRead.bind(session)
104
- : session.executeWrite.bind(session);
105
- return await executeInTransaction(async (tx) => {
106
- const result = tx.run(query, {});
107
- return await queryConfig.resultTransformer(result);
108
- }, { timeout: 500, metadata: { ...METADATA_BASE, type: queryType } });
109
- }
110
- finally {
111
- await session.close();
112
- }
113
- }
114
- async healthcheck() {
115
- try {
116
- await this.driver.verifyConnectivity({ database: this.currentDb });
117
- return true;
118
- }
119
- catch {
120
- return false;
121
- }
122
- }
123
- dispose() {
124
- void this.driver?.close();
125
- }
126
- }
127
- exports.Neo4jConnection = Neo4jConnection;
128
- //# sourceMappingURL=neo4jConnection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"neo4jConnection.js","sourceRoot":"","sources":["../../../src/neo4jConnection.ts"],"names":[],"mappings":";;;AAQA,kDAA0C;AAI1C,MAAM,aAAa,GAAG;IACpB,GAAG,EAAE,WAAW;IAChB,OAAO,EAAE,sBAAO;CACjB,CAAC;AACF,MAAM,YAAY,GAAG,IAAI,CAAC;AAE1B,SAAS,sBAAsB,CAC7B,SAAqB,EACrB,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAC7D,EAAE,IAAI,CAAC;IACV,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAE1D,OAAO,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACvE,CAAC;AAgBD,MAAa,eAAe;IAKjB;IACA;IACA;IACA;IAPF,SAAS,CAAqB;IAC9B,aAAa,CAAqB;IAEzC,YACS,aAAqB,EACrB,eAAuB,EACvB,SAAqB,EACrB,MAAc,EACrB,QAAiB;QAJV,kBAAa,GAAb,aAAa,CAAQ;QACrB,oBAAe,GAAf,eAAe,CAAQ;QACvB,cAAS,GAAT,SAAS,CAAY;QACrB,WAAM,GAAN,MAAM,CAAQ;QAGrB,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,OAAgB,EAChB,KAAa,EACb,UAAmC,EACnC,QAAgB,EAChB,EAAuB;QAEvB,IAAI,MAA2B,CAAC;QAChC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE;gBACtC,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAEvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EACnB,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,mBAAmB,GAAG,KAAK,GACR;QACnB,sHAAsH;QACtH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,SAAS;SACrC,CAAC,CAAC;QAEH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACzC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG;YACf,GAAG,aAAa;YAChB,IAAI,EAAE,aAAiC;SACxC,CAAC;QACF,IAAI,CAAC;YACH,IAAI,MAAqC,CAAC;YAC1C,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,OAAO,CAAC,YAAY,CAC3B,KAAK,EAAE,EAAE,EAAE,EAAE;oBACX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,EAAE,CACH,CAAC;oBACF,OAAO,MAAM,CAAC;gBAChB,CAAC,EACD;oBACE,QAAQ;iBACT,CACF,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,MAAM,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CACf,EAAE,KAAK,EAAE,WAAW,EAAuB,EAC3C,EAAE,SAAS,EAAE,WAAW,EAAgB;QAExC,sHAAsH;QACtH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,QAAQ,EAAE,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC,SAAS;SAClD,CAAC,CAAC;QAEH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACzC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,oBAAoB,GACxB,WAAW,CAAC,OAAO,KAAK,MAAM;gBAC5B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;gBACnC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEzC,OAAO,MAAM,oBAAoB,CAC/B,KAAK,EAAE,EAAE,EAAE,EAAE;gBACX,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO,MAAM,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAClE,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF;AA3ID,0CA2IC"}
@@ -1,7 +0,0 @@
1
- import { ExecuteQueryArgs } from '../types/sdkTypes.js';
2
- export type DataSummary = {
3
- labels: string[];
4
- relationshipTypes: string[];
5
- propertyKeys: string[];
6
- };
7
- export declare function getDataSummary(database?: string): ExecuteQueryArgs<DataSummary>;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDataSummary = getDataSummary;
4
- const neo4j_driver_1 = require("neo4j-driver");
5
- const ITEM_LIMIT = 1000;
6
- function getDataSummary(database) {
7
- const query = `CALL db.labels() YIELD label
8
- RETURN COLLECT(label)[..${ITEM_LIMIT}] AS result
9
- UNION ALL
10
- CALL db.relationshipTypes() YIELD relationshipType
11
- RETURN COLLECT(relationshipType)[..${ITEM_LIMIT}] AS result
12
- UNION ALL
13
- CALL db.propertyKeys() YIELD propertyKey
14
- RETURN COLLECT(propertyKey)[..${ITEM_LIMIT}] AS result`;
15
- const resultTransformer = neo4j_driver_1.resultTransformers.mapped({
16
- map(record) {
17
- return record.toObject().result;
18
- },
19
- collect(results, summary) {
20
- return {
21
- labels: results[0],
22
- relationshipTypes: results[1],
23
- propertyKeys: results[2],
24
- summary,
25
- };
26
- },
27
- });
28
- return {
29
- query,
30
- queryConfig: { resultTransformer, routing: 'READ', database: database },
31
- };
32
- }
33
- //# sourceMappingURL=dataSummary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataSummary.js","sourceRoot":"","sources":["../../../../src/queries/dataSummary.ts"],"names":[],"mappings":";;AAWA,wCA8BC;AAzCD,+CAAkD;AASlD,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,SAAgB,cAAc,CAC5B,QAAiB;IAEjB,MAAM,KAAK,GAAG;0BACU,UAAU;;;qCAGC,UAAU;;;gCAGf,UAAU,aAAa,CAAC;IAEtD,MAAM,iBAAiB,GAAG,iCAAkB,CAAC,MAAM,CAAC;QAClD,GAAG,CAAC,MAAM;YACR,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAkB,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,OAAO;YACtB,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClB,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7B,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxB,OAAO;aACR,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,WAAW,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;KACxE,CAAC;AACJ,CAAC"}
@@ -1,38 +0,0 @@
1
- import type { CypherVersion } from '@neo4j-cypher/language-support';
2
- import { ExecuteQueryArgs } from '../types/sdkTypes.js';
3
- export type DatabaseStatus = 'online' | 'offline' | 'starting' | 'stopping' | 'store copying' | 'initial' | 'dirty' | 'quarantined' | 'unknown' | 'dropped' | 'deallocating';
4
- export type Database = {
5
- name: string;
6
- address: string;
7
- role: string;
8
- requestedStatus: DatabaseStatus;
9
- currentStatus: DatabaseStatus;
10
- statusMessage?: string;
11
- error: string;
12
- default: boolean;
13
- home: boolean;
14
- aliases?: string[];
15
- type?: 'system' | 'composite' | 'standard' | 'graph shard' | 'property shard';
16
- writer?: boolean;
17
- access?: string;
18
- constituents?: string[];
19
- defaultLanguage?: CypherVersion;
20
- };
21
- /**
22
- * List available databases in your dbms
23
- * https://neo4j.com/docs/cypher-manual/current/administration/databases/#administration-databases-show-databases
24
- */
25
- export declare function listDatabases(): ExecuteQueryArgs<{
26
- databases: Database[];
27
- }>;
28
- /**
29
- * In clustered environments a single logical database can be backed by multiple physical database instances
30
- * running on a different servers.
31
- * This function returns a record of logical databases.
32
- * A database instance is uniquely identified by its name and address.
33
- * A logical database is uniquely identified by its name.
34
- * @input instances - a record of database instances
35
- * @output a record of logical databases
36
- */
37
- export declare function getLogicalDatabases(instances: Record<string, Database>): Record<string, Database>;
38
- export declare function sortDatabases(databases: Database[]): Database[];
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listDatabases = listDatabases;
4
- exports.getLogicalDatabases = getLogicalDatabases;
5
- exports.sortDatabases = sortDatabases;
6
- const neo4j_driver_1 = require("neo4j-driver");
7
- const sdkTypes_js_1 = require("../types/sdkTypes.js");
8
- const findComposite = (databases, alias) => {
9
- const compositeDatabases = databases.filter((db) => db.type === 'composite');
10
- return compositeDatabases.find((db) => db.constituents?.includes(alias));
11
- };
12
- const isCompositeAlias = (databases, alias) => findComposite(databases, alias) !== undefined;
13
- const removeCompositeAliases = (databases) => {
14
- return databases.map(({ aliases, ...db }) => ({
15
- ...db,
16
- aliases: aliases?.filter((alias) => !isCompositeAlias(databases, alias)),
17
- }));
18
- };
19
- const removeSPDShards = (databases) => {
20
- return databases.filter((db) => {
21
- return !(db.type !== undefined &&
22
- (db.type === sdkTypes_js_1.DbType.GRAPH_SHARD || db.type === sdkTypes_js_1.DbType.PROPERTY_SHARD));
23
- });
24
- };
25
- /**
26
- * List available databases in your dbms
27
- * https://neo4j.com/docs/cypher-manual/current/administration/databases/#administration-databases-show-databases
28
- */
29
- function listDatabases() {
30
- const query = 'SHOW DATABASES YIELD *';
31
- const resultTransformer = neo4j_driver_1.resultTransformers.mapped({
32
- map(record) {
33
- const obj = record.toObject();
34
- if (obj.defaultLanguage) {
35
- obj.defaultLanguage = obj.defaultLanguage.toUpperCase();
36
- }
37
- return obj;
38
- },
39
- collect(databases, summary) {
40
- const instancesRecord = databases.reduce((acc, db) => {
41
- const instanceId = `${db.name}@${db.address}`;
42
- acc[instanceId] = db;
43
- return acc;
44
- }, {});
45
- const logicalDatabases = getLogicalDatabases(instancesRecord);
46
- const uiDatabases = removeSPDShards(removeCompositeAliases(Object.values(logicalDatabases)));
47
- return {
48
- databases: sortDatabases(uiDatabases),
49
- summary,
50
- };
51
- },
52
- });
53
- return {
54
- query,
55
- queryConfig: { resultTransformer, routing: 'READ', database: 'system' },
56
- };
57
- }
58
- /**
59
- * In clustered environments a single logical database can be backed by multiple physical database instances
60
- * running on a different servers.
61
- * This function returns a record of logical databases.
62
- * A database instance is uniquely identified by its name and address.
63
- * A logical database is uniquely identified by its name.
64
- * @input instances - a record of database instances
65
- * @output a record of logical databases
66
- */
67
- function getLogicalDatabases(instances) {
68
- // Two databases with the same name but different properties will be merged into one
69
- // merging rules:
70
- // - if writer (leader) is present, use it, otherwise use the first one
71
- // Merge db2 into db1
72
- const mergeDatabases = (db1, db2) => {
73
- let mergedDatabase = { ...db1 };
74
- if (db2.role === 'leader' || db2.writer === true) {
75
- mergedDatabase = { ...db2 };
76
- }
77
- return mergedDatabase;
78
- };
79
- return Object.values(instances).reduce((databases, instance) => {
80
- const key = instance.name;
81
- const existingDatabase = databases[key];
82
- const mergedDatabase = existingDatabase
83
- ? mergeDatabases(existingDatabase, instance)
84
- : instance;
85
- return {
86
- ...databases,
87
- [key]: mergedDatabase,
88
- };
89
- }, {});
90
- }
91
- function sortDatabases(databases) {
92
- function databaseComparator(a, b) {
93
- // disable eslint to make code more readable
94
- /* eslint-disable curly */
95
- // home is greater than default
96
- if (a.default && b.home)
97
- return 1;
98
- // otherwiser default is greater than anything else
99
- if (a.default)
100
- return -1;
101
- if (b.default)
102
- return 1;
103
- // system is less than anything else
104
- if (a.name === 'system')
105
- return 1;
106
- if (b.name === 'system')
107
- return -1;
108
- /* eslint-enable curly */
109
- // else sort alphabetically
110
- return a.name.localeCompare(b.name);
111
- }
112
- return databases.sort(databaseComparator);
113
- }
114
- //# sourceMappingURL=databases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"databases.js","sourceRoot":"","sources":["../../../../src/queries/databases.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { CypherVersion, Neo4jFunction } from '@neo4j-cypher/language-support';
2
- import { JSONSchemaType } from 'ajv';
3
- import type { ExecuteQueryArgs } from '../types/sdkTypes.js';
4
- type ListFunctionArgs = {
5
- executableByMe: boolean;
6
- cypherVersion?: CypherVersion;
7
- };
8
- export declare const functionSchema: JSONSchemaType<Neo4jFunction>;
9
- /**
10
- * Gets available functions in your database
11
- * https://neo4j.com/docs/cypher-manual/current/clauses/listing-functions/
12
- */
13
- export declare function listFunctions({ executableByMe, cypherVersion }?: ListFunctionArgs): ExecuteQueryArgs<{
14
- functions: Neo4jFunction[];
15
- }>;
16
- export {};