@ductape/sdk 0.0.4-v5 → 0.0.4-v51
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/README.md +1 -1
- package/dist/api/services/appApi.service.d.ts +48 -2
- package/dist/api/services/appApi.service.js +101 -2
- package/dist/api/services/appApi.service.js.map +1 -1
- package/dist/api/services/pricingApi.service.d.ts +10 -0
- package/dist/api/services/pricingApi.service.js +34 -0
- package/dist/api/services/pricingApi.service.js.map +1 -0
- package/dist/api/services/processorApi.service.d.ts +12 -2
- package/dist/api/services/processorApi.service.js +12 -2
- package/dist/api/services/processorApi.service.js.map +1 -1
- package/dist/api/services/productsApi.service.d.ts +40 -1
- package/dist/api/services/productsApi.service.js +105 -1
- package/dist/api/services/productsApi.service.js.map +1 -1
- package/dist/api/services/userApi.service.js +1 -0
- package/dist/api/services/userApi.service.js.map +1 -1
- package/dist/api/services/workspaceApi.service.js +1 -0
- package/dist/api/services/workspaceApi.service.js.map +1 -1
- package/dist/api/services/workspaceSecretsApi.service.d.ts +75 -0
- package/dist/api/services/workspaceSecretsApi.service.js +62 -0
- package/dist/api/services/workspaceSecretsApi.service.js.map +1 -0
- package/dist/api/urls.d.ts +6 -1
- package/dist/api/urls.js +12 -2
- package/dist/api/urls.js.map +1 -1
- package/dist/api/utils/cache.utils.d.ts +1 -1
- package/dist/api/utils/cache.utils.js +10 -4
- package/dist/api/utils/cache.utils.js.map +1 -1
- package/dist/api/utils/strings.utils.d.ts +2 -0
- package/dist/api/utils/strings.utils.js +14 -0
- package/dist/api/utils/strings.utils.js.map +1 -1
- package/dist/apps/services/app.service.d.ts +51 -33
- package/dist/apps/services/app.service.js +488 -244
- package/dist/apps/services/app.service.js.map +1 -1
- package/dist/apps/validators/joi-validators/create.appAction.validator.d.ts +1 -2
- package/dist/apps/validators/joi-validators/create.appAction.validator.js +21 -2
- package/dist/apps/validators/joi-validators/create.appAction.validator.js.map +1 -1
- package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +1 -2
- package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +2 -15
- package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
- package/dist/apps/validators/joi-validators/update.appAction.validator.js +11 -1
- package/dist/apps/validators/joi-validators/update.appAction.validator.js.map +1 -1
- package/dist/apps/validators/joi-validators/update.appActionResponse.validator.d.ts +1 -1
- package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js +34 -1
- package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js.map +1 -1
- package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +1 -2
- package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +2 -14
- package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
- package/dist/clients/pricing.client.d.ts +3 -0
- package/dist/clients/pricing.client.js +33 -0
- package/dist/clients/pricing.client.js.map +1 -0
- package/dist/database/adapters/base.adapter.d.ts +176 -0
- package/dist/database/adapters/base.adapter.js +31 -0
- package/dist/database/adapters/base.adapter.js.map +1 -0
- package/dist/database/adapters/dynamodb.adapter.d.ts +91 -0
- package/dist/database/adapters/dynamodb.adapter.js +1608 -0
- package/dist/database/adapters/dynamodb.adapter.js.map +1 -0
- package/dist/database/adapters/mongodb.adapter.d.ts +71 -0
- package/dist/database/adapters/mongodb.adapter.js +1072 -0
- package/dist/database/adapters/mongodb.adapter.js.map +1 -0
- package/dist/database/adapters/mysql.adapter.d.ts +146 -0
- package/dist/database/adapters/mysql.adapter.js +1492 -0
- package/dist/database/adapters/mysql.adapter.js.map +1 -0
- package/dist/database/adapters/postgresql.adapter.d.ts +147 -0
- package/dist/database/adapters/postgresql.adapter.js +1603 -0
- package/dist/database/adapters/postgresql.adapter.js.map +1 -0
- package/dist/database/database.service.d.ts +232 -0
- package/dist/database/database.service.js +802 -0
- package/dist/database/database.service.js.map +1 -0
- package/dist/database/index.d.ts +18 -0
- package/dist/database/index.js +98 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/types/aggregation.types.d.ts +261 -0
- package/dist/database/types/aggregation.types.js +21 -0
- package/dist/database/types/aggregation.types.js.map +1 -0
- package/dist/database/types/connection.types.d.ts +132 -0
- package/dist/database/types/connection.types.js +6 -0
- package/dist/database/types/connection.types.js.map +1 -0
- package/dist/database/types/database.types.d.ts +175 -0
- package/dist/database/types/database.types.js +75 -0
- package/dist/database/types/database.types.js.map +1 -0
- package/dist/database/types/index.d.ts +12 -0
- package/dist/database/types/index.js +37 -0
- package/dist/database/types/index.js.map +1 -0
- package/dist/database/types/index.types.d.ts +220 -0
- package/dist/database/types/index.types.js +27 -0
- package/dist/database/types/index.types.js.map +1 -0
- package/dist/database/types/migration.types.d.ts +205 -0
- package/dist/database/types/migration.types.js +44 -0
- package/dist/database/types/migration.types.js.map +1 -0
- package/dist/database/types/query.types.d.ts +305 -0
- package/dist/database/types/query.types.js +57 -0
- package/dist/database/types/query.types.js.map +1 -0
- package/dist/database/types/result.types.d.ts +220 -0
- package/dist/database/types/result.types.js +6 -0
- package/dist/database/types/result.types.js.map +1 -0
- package/dist/database/types/schema.types.d.ts +190 -0
- package/dist/database/types/schema.types.js +69 -0
- package/dist/database/types/schema.types.js.map +1 -0
- package/dist/database/utils/helpers.d.ts +66 -0
- package/dist/database/utils/helpers.js +501 -0
- package/dist/database/utils/helpers.js.map +1 -0
- package/dist/database/utils/migration.utils.d.ts +151 -0
- package/dist/database/utils/migration.utils.js +476 -0
- package/dist/database/utils/migration.utils.js.map +1 -0
- package/dist/database/utils/transaction.d.ts +64 -0
- package/dist/database/utils/transaction.js +130 -0
- package/dist/database/utils/transaction.js.map +1 -0
- package/dist/database/validators/connection.validator.d.ts +20 -0
- package/dist/database/validators/connection.validator.js +267 -0
- package/dist/database/validators/connection.validator.js.map +1 -0
- package/dist/database/validators/query.validator.d.ts +31 -0
- package/dist/database/validators/query.validator.js +305 -0
- package/dist/database/validators/query.validator.js.map +1 -0
- package/dist/database/validators/schema.validator.d.ts +31 -0
- package/dist/database/validators/schema.validator.js +334 -0
- package/dist/database/validators/schema.validator.js.map +1 -0
- package/dist/graph/adapters/arangodb.adapter.d.ts +80 -0
- package/dist/graph/adapters/arangodb.adapter.js +1393 -0
- package/dist/graph/adapters/arangodb.adapter.js.map +1 -0
- package/dist/graph/adapters/base.adapter.d.ts +228 -0
- package/dist/graph/adapters/base.adapter.js +38 -0
- package/dist/graph/adapters/base.adapter.js.map +1 -0
- package/dist/graph/adapters/index.d.ts +10 -0
- package/dist/graph/adapters/index.js +23 -0
- package/dist/graph/adapters/index.js.map +1 -0
- package/dist/graph/adapters/memgraph.adapter.d.ts +85 -0
- package/dist/graph/adapters/memgraph.adapter.js +1491 -0
- package/dist/graph/adapters/memgraph.adapter.js.map +1 -0
- package/dist/graph/adapters/neo4j.adapter.d.ts +88 -0
- package/dist/graph/adapters/neo4j.adapter.js +1861 -0
- package/dist/graph/adapters/neo4j.adapter.js.map +1 -0
- package/dist/graph/adapters/neptune.adapter.d.ts +87 -0
- package/dist/graph/adapters/neptune.adapter.js +1430 -0
- package/dist/graph/adapters/neptune.adapter.js.map +1 -0
- package/dist/graph/graph.service.d.ts +278 -0
- package/dist/graph/graph.service.js +687 -0
- package/dist/graph/graph.service.js.map +1 -0
- package/dist/graph/index.d.ts +11 -0
- package/dist/graph/index.js +42 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/types/connection.types.d.ts +158 -0
- package/dist/graph/types/connection.types.js +43 -0
- package/dist/graph/types/connection.types.js.map +1 -0
- package/dist/graph/types/graph.types.d.ts +144 -0
- package/dist/graph/types/graph.types.js +84 -0
- package/dist/graph/types/graph.types.js.map +1 -0
- package/dist/graph/types/index.d.ts +11 -0
- package/dist/graph/types/index.js +35 -0
- package/dist/graph/types/index.js.map +1 -0
- package/dist/graph/types/node.types.d.ts +193 -0
- package/dist/graph/types/node.types.js +49 -0
- package/dist/graph/types/node.types.js.map +1 -0
- package/dist/graph/types/path.types.d.ts +224 -0
- package/dist/graph/types/path.types.js +38 -0
- package/dist/graph/types/path.types.js.map +1 -0
- package/dist/graph/types/query.types.d.ts +247 -0
- package/dist/graph/types/query.types.js +23 -0
- package/dist/graph/types/query.types.js.map +1 -0
- package/dist/graph/types/relationship.types.d.ts +224 -0
- package/dist/graph/types/relationship.types.js +35 -0
- package/dist/graph/types/relationship.types.js.map +1 -0
- package/dist/graph/types/result.types.d.ts +237 -0
- package/dist/graph/types/result.types.js +7 -0
- package/dist/graph/types/result.types.js.map +1 -0
- package/dist/graph/validators/index.d.ts +81 -0
- package/dist/graph/validators/index.js +243 -0
- package/dist/graph/validators/index.js.map +1 -0
- package/dist/imports/imports.service.d.ts +3 -3
- package/dist/imports/imports.service.js +7 -7
- package/dist/imports/imports.service.js.map +1 -1
- package/dist/imports/imports.types.d.ts +8 -0
- package/dist/imports/repos/postmanV21.repo.d.ts +1 -1
- package/dist/imports/repos/postmanV21.repo.js +29 -2
- package/dist/imports/repos/postmanV21.repo.js.map +1 -1
- package/dist/index.d.ts +1244 -150
- package/dist/index.js +1309 -209
- package/dist/index.js.map +1 -1
- package/dist/inputs/inputs.service.js +2 -2
- package/dist/inputs/inputs.service.js.map +1 -1
- package/dist/inputs/utils/inputs.utils.create.js +1 -1
- package/dist/inputs/utils/inputs.utils.create.js.map +1 -1
- package/dist/logs/logs.types.d.ts +5 -0
- package/dist/logs/logs.types.js +1 -0
- package/dist/logs/logs.types.js.map +1 -1
- package/dist/parsers/index.d.ts +3 -0
- package/dist/parsers/index.js +27 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/pipelines/postman.pipelines.d.ts +15 -0
- package/dist/parsers/pipelines/postman.pipelines.js +103 -0
- package/dist/parsers/pipelines/postman.pipelines.js.map +1 -0
- package/dist/parsers/types/postman.types.d.ts +200 -0
- package/dist/parsers/types/postman.types.js +3 -0
- package/dist/parsers/types/postman.types.js.map +1 -0
- package/dist/parsers/utils/postman.utils.d.ts +12 -0
- package/dist/parsers/utils/postman.utils.js +116 -0
- package/dist/parsers/utils/postman.utils.js.map +1 -0
- package/dist/parsers/validators/postman-auth.validators.d.ts +10 -0
- package/dist/parsers/validators/postman-auth.validators.js +127 -0
- package/dist/parsers/validators/postman-auth.validators.js.map +1 -0
- package/dist/parsers/validators/postman-request.validators.d.ts +13 -0
- package/dist/parsers/validators/postman-request.validators.js +139 -0
- package/dist/parsers/validators/postman-request.validators.js.map +1 -0
- package/dist/parsers/validators/postman-response.validators.d.ts +13 -0
- package/dist/parsers/validators/postman-response.validators.js +150 -0
- package/dist/parsers/validators/postman-response.validators.js.map +1 -0
- package/dist/parsers/validators/postman-variable.validators.d.ts +14 -0
- package/dist/parsers/validators/postman-variable.validators.js +163 -0
- package/dist/parsers/validators/postman-variable.validators.js.map +1 -0
- package/dist/pricing/pricing.repo.d.ts +0 -0
- package/dist/pricing/pricing.repo.js +1 -0
- package/dist/pricing/pricing.repo.js.map +1 -0
- package/dist/pricing/pricing.service.d.ts +24 -0
- package/dist/pricing/pricing.service.js +51 -0
- package/dist/pricing/pricing.service.js.map +1 -0
- package/dist/pricing/pricing.types.d.ts +76 -0
- package/dist/pricing/pricing.types.js +21 -0
- package/dist/pricing/pricing.types.js.map +1 -0
- package/dist/pricing/utils/string.utils.d.ts +1 -0
- package/dist/pricing/utils/string.utils.js +9 -0
- package/dist/pricing/utils/string.utils.js.map +1 -0
- package/dist/processor/repos/sms.repo.d.ts +4 -4
- package/dist/processor/repos/sms.repo.js +23 -10
- package/dist/processor/repos/sms.repo.js.map +1 -1
- package/dist/processor/services/messagebrokers/kafka.service.js +0 -2
- package/dist/processor/services/messagebrokers/kafka.service.js.map +1 -1
- package/dist/processor/services/messagebrokers/rabbitmq.service.d.ts +9 -1
- package/dist/processor/services/messagebrokers/rabbitmq.service.js +40 -11
- package/dist/processor/services/messagebrokers/rabbitmq.service.js.map +1 -1
- package/dist/processor/services/processor.service.d.ts +38 -10
- package/dist/processor/services/processor.service.js +533 -248
- package/dist/processor/services/processor.service.js.map +1 -1
- package/dist/processor/services/request.service.d.ts +36 -0
- package/dist/processor/services/request.service.js +304 -0
- package/dist/processor/services/request.service.js.map +1 -0
- package/dist/processor/types/request.types.d.ts +14 -0
- package/dist/processor/types/request.types.js +3 -0
- package/dist/processor/types/request.types.js.map +1 -0
- package/dist/processor/utils/processor.utils.d.ts +3 -0
- package/dist/processor/utils/processor.utils.js +84 -22
- package/dist/processor/utils/processor.utils.js.map +1 -1
- package/dist/processor/utils/request.utils.d.ts +20 -0
- package/dist/processor/utils/request.utils.js +113 -0
- package/dist/processor/utils/request.utils.js.map +1 -0
- package/dist/products/services/products.service.d.ts +114 -77
- package/dist/products/services/products.service.js +805 -362
- package/dist/products/services/products.service.js.map +1 -1
- package/dist/products/services/utils/crypt.utils.d.ts +1 -0
- package/dist/products/services/utils/crypt.utils.js +17 -0
- package/dist/products/services/utils/crypt.utils.js.map +1 -0
- package/dist/products/services/utils/functions.utils.d.ts +13 -0
- package/dist/products/services/utils/functions.utils.js +289 -0
- package/dist/products/services/utils/functions.utils.js.map +1 -0
- package/dist/products/services/utils/objects.utils.d.ts +13 -0
- package/dist/products/services/utils/objects.utils.js +89 -0
- package/dist/products/services/utils/objects.utils.js.map +1 -0
- package/dist/products/services/utils/string.utils.d.ts +12 -0
- package/dist/products/services/utils/string.utils.js +168 -0
- package/dist/products/services/utils/string.utils.js.map +1 -0
- package/dist/products/utils/string.utils.d.ts +1 -1
- package/dist/products/utils/string.utils.js +14 -2
- package/dist/products/utils/string.utils.js.map +1 -1
- package/dist/products/validators/index.d.ts +4 -1
- package/dist/products/validators/index.js +7 -1
- package/dist/products/validators/index.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.d.ts +15 -4
- package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js +501 -109
- package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productEnv.validator.js +1 -0
- package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productGraph.validator.d.ts +3 -0
- package/dist/products/validators/joi-validators/create.productGraph.validator.js +82 -0
- package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/create.productGraphAction.validator.d.ts +14 -0
- package/dist/products/validators/joi-validators/create.productGraphAction.validator.js +696 -0
- package/dist/products/validators/joi-validators/create.productGraphAction.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
- package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
- package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +1 -0
- package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +9 -4
- package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.productNotification.validator.js +5 -2
- package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/create.userAuth.validator.js +1 -0
- package/dist/products/validators/joi-validators/create.userAuth.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.dataValue.validator.js +1 -0
- package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.d.ts +6 -0
- package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js +28 -26
- package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productEnv.validator.js +3 -0
- package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.productGraph.validator.d.ts +3 -0
- package/dist/products/validators/joi-validators/update.productGraph.validator.js +87 -0
- package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/update.productGraphAction.validator.d.ts +7 -0
- package/dist/products/validators/joi-validators/update.productGraphAction.validator.js +72 -0
- package/dist/products/validators/joi-validators/update.productGraphAction.validator.js.map +1 -0
- package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +1 -0
- package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -1
- package/dist/products/validators/joi-validators/update.userAuth.validator.js +1 -0
- package/dist/products/validators/joi-validators/update.userAuth.validator.js.map +1 -1
- package/dist/test/test.health.d.ts +1 -0
- package/dist/test/test.health.js +49 -0
- package/dist/test/test.health.js.map +1 -0
- package/dist/test/test.import.js +51 -4
- package/dist/test/test.import.js.map +1 -1
- package/dist/test/test.imports.js +22 -7
- package/dist/test/test.imports.js.map +1 -1
- package/dist/test/test.notifiers.d.ts +1 -0
- package/dist/test/test.notifiers.js +85 -0
- package/dist/test/test.notifiers.js.map +1 -0
- package/dist/test/test.processor.js +30 -115
- package/dist/test/test.processor.js.map +1 -1
- package/dist/test/test.products.d.ts +1 -0
- package/dist/test/test.products.js +49 -0
- package/dist/test/test.products.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/appBuilder.types.d.ts +5 -12
- package/dist/types/enums.d.ts +4 -1
- package/dist/types/enums.js +3 -0
- package/dist/types/enums.js.map +1 -1
- package/dist/types/index.types.d.ts +4 -0
- package/dist/types/pricing.types.d.ts +4 -0
- package/dist/types/pricing.types.js +3 -0
- package/dist/types/pricing.types.js.map +1 -0
- package/dist/types/processor.types.d.ts +67 -11
- package/dist/types/processor.types.js.map +1 -1
- package/dist/types/productsBuilder.types.d.ts +132 -14
- package/dist/types/productsBuilder.types.js +69 -4
- package/dist/types/productsBuilder.types.js.map +1 -1
- package/dist/types/request-tracker.interface.d.ts +0 -0
- package/dist/types/request-tracker.interface.js +1 -0
- package/dist/types/request-tracker.interface.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +5 -0
- package/dist/utils/constants.js.map +1 -0
- package/package.json +17 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arangodb.adapter.js","sourceRoot":"","sources":["../../../src/graph/adapters/arangodb.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Graph Database Adapter
|
|
3
|
+
* Abstract class defining the interface for all graph database adapters
|
|
4
|
+
*/
|
|
5
|
+
import { GraphDatabaseType, GraphQueryLanguage, IGraphConnection, IGraphTransaction, IGraphTransactionOptions, GraphError, GraphErrorType } from '../types/graph.types';
|
|
6
|
+
import { GraphConnectionConfig, IGraphConnectionTestResult } from '../types/connection.types';
|
|
7
|
+
import { INode, NodeProperties, ICreateNodeOptions, IFindNodesOptions, IUpdateNodeOptions, IDeleteNodeOptions, IMergeNodeOptions, INodeConstraint, INodeIndex } from '../types/node.types';
|
|
8
|
+
import { IRelationship, RelationshipProperties, ICreateRelationshipOptions, IFindRelationshipsOptions, IUpdateRelationshipOptions, IDeleteRelationshipOptions, IMergeRelationshipOptions, IRelationshipConstraint, IRelationshipIndex } from '../types/relationship.types';
|
|
9
|
+
import { IPath, ITraverseOptions, IShortestPathOptions, IAllPathsOptions, IMatchPatternOptions, ISubgraphOptions, INeighborhoodOptions, IConnectedComponentsOptions } from '../types/path.types';
|
|
10
|
+
import { IRawQueryOptions, IFullTextSearchOptions, IVectorSearchOptions } from '../types/query.types';
|
|
11
|
+
import { IGraphQueryResult, ICreateNodeResult, IFindNodesResult, IUpdateNodeResult, IDeleteNodeResult, IMergeNodeResult, ICreateRelationshipResult, IFindRelationshipsResult, IUpdateRelationshipResult, IDeleteRelationshipResult, IMergeRelationshipResult, ITraverseResult, IShortestPathResult, IAllPathsResult, IPatternMatchResult, ISubgraphResult, INeighborhoodResult, IConnectedComponentsResult, ICountResult, ICreateConstraintResult, IDropConstraintResult, IListConstraintsResult, ICreateIndexResult, IDropIndexResult, IListIndexesResult, IFullTextSearchResult, IVectorSearchResult, IGraphStatisticsResult } from '../types/result.types';
|
|
12
|
+
/**
|
|
13
|
+
* Abstract base class for graph database adapters
|
|
14
|
+
* All specific database adapters (Neo4j, Neptune, ArangoDB, Memgraph) extend this class
|
|
15
|
+
*/
|
|
16
|
+
export declare abstract class BaseGraphAdapter {
|
|
17
|
+
/**
|
|
18
|
+
* The type of graph database this adapter handles
|
|
19
|
+
*/
|
|
20
|
+
abstract readonly type: GraphDatabaseType;
|
|
21
|
+
/**
|
|
22
|
+
* The query language(s) supported by this adapter
|
|
23
|
+
*/
|
|
24
|
+
abstract readonly supportedLanguages: GraphQueryLanguage[];
|
|
25
|
+
/**
|
|
26
|
+
* Default query language for this adapter
|
|
27
|
+
*/
|
|
28
|
+
abstract readonly defaultLanguage: GraphQueryLanguage;
|
|
29
|
+
/**
|
|
30
|
+
* Establish a connection to the graph database
|
|
31
|
+
*/
|
|
32
|
+
abstract connect(config: GraphConnectionConfig): Promise<IGraphConnection>;
|
|
33
|
+
/**
|
|
34
|
+
* Disconnect from the graph database
|
|
35
|
+
*/
|
|
36
|
+
abstract disconnect(connection: IGraphConnection): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Test if connection is valid
|
|
39
|
+
*/
|
|
40
|
+
abstract testConnection(connection: IGraphConnection): Promise<IGraphConnectionTestResult>;
|
|
41
|
+
/**
|
|
42
|
+
* Get database version and info
|
|
43
|
+
*/
|
|
44
|
+
abstract getDatabaseInfo(connection: IGraphConnection): Promise<{
|
|
45
|
+
version: string;
|
|
46
|
+
edition?: string;
|
|
47
|
+
features?: string[];
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Begin a new transaction
|
|
51
|
+
*/
|
|
52
|
+
abstract beginTransaction(connection: IGraphConnection, options?: IGraphTransactionOptions): Promise<IGraphTransaction>;
|
|
53
|
+
/**
|
|
54
|
+
* Commit a transaction
|
|
55
|
+
*/
|
|
56
|
+
abstract commitTransaction(connection: IGraphConnection, transaction: IGraphTransaction): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Rollback a transaction
|
|
59
|
+
*/
|
|
60
|
+
abstract rollbackTransaction(connection: IGraphConnection, transaction: IGraphTransaction): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Execute a callback within a transaction (auto-commit on success, rollback on error)
|
|
63
|
+
*/
|
|
64
|
+
executeTransaction<T>(connection: IGraphConnection, callback: (transaction: IGraphTransaction) => Promise<T>, options?: IGraphTransactionOptions): Promise<T>;
|
|
65
|
+
/**
|
|
66
|
+
* Execute a raw query (Cypher, Gremlin, or AQL depending on database)
|
|
67
|
+
*/
|
|
68
|
+
abstract executeRaw<T = any>(connection: IGraphConnection, options: IRawQueryOptions, transaction?: IGraphTransaction): Promise<IGraphQueryResult<T>>;
|
|
69
|
+
/**
|
|
70
|
+
* Create a new node
|
|
71
|
+
*/
|
|
72
|
+
abstract createNode<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: ICreateNodeOptions<T>, transaction?: IGraphTransaction): Promise<ICreateNodeResult<T>>;
|
|
73
|
+
/**
|
|
74
|
+
* Find nodes matching criteria
|
|
75
|
+
*/
|
|
76
|
+
abstract findNodes<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IFindNodesOptions, transaction?: IGraphTransaction): Promise<IFindNodesResult<T>>;
|
|
77
|
+
/**
|
|
78
|
+
* Find a single node by ID
|
|
79
|
+
*/
|
|
80
|
+
abstract findNodeById<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, id: string | number, transaction?: IGraphTransaction): Promise<INode<T> | null>;
|
|
81
|
+
/**
|
|
82
|
+
* Update node(s)
|
|
83
|
+
*/
|
|
84
|
+
abstract updateNode<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IUpdateNodeOptions, transaction?: IGraphTransaction): Promise<IUpdateNodeResult<T>>;
|
|
85
|
+
/**
|
|
86
|
+
* Delete node(s)
|
|
87
|
+
*/
|
|
88
|
+
abstract deleteNode(connection: IGraphConnection, options: IDeleteNodeOptions, transaction?: IGraphTransaction): Promise<IDeleteNodeResult>;
|
|
89
|
+
/**
|
|
90
|
+
* Merge a node (create if not exists, update if exists)
|
|
91
|
+
*/
|
|
92
|
+
abstract mergeNode<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IMergeNodeOptions<T>, transaction?: IGraphTransaction): Promise<IMergeNodeResult<T>>;
|
|
93
|
+
/**
|
|
94
|
+
* Create a new relationship
|
|
95
|
+
*/
|
|
96
|
+
abstract createRelationship<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: ICreateRelationshipOptions<T>, transaction?: IGraphTransaction): Promise<ICreateRelationshipResult<T>>;
|
|
97
|
+
/**
|
|
98
|
+
* Find relationships matching criteria
|
|
99
|
+
*/
|
|
100
|
+
abstract findRelationships<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IFindRelationshipsOptions, transaction?: IGraphTransaction): Promise<IFindRelationshipsResult<T>>;
|
|
101
|
+
/**
|
|
102
|
+
* Find a single relationship by ID
|
|
103
|
+
*/
|
|
104
|
+
abstract findRelationshipById<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, id: string | number, transaction?: IGraphTransaction): Promise<IRelationship<T> | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Update relationship(s)
|
|
107
|
+
*/
|
|
108
|
+
abstract updateRelationship<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IUpdateRelationshipOptions, transaction?: IGraphTransaction): Promise<IUpdateRelationshipResult<T>>;
|
|
109
|
+
/**
|
|
110
|
+
* Delete relationship(s)
|
|
111
|
+
*/
|
|
112
|
+
abstract deleteRelationship(connection: IGraphConnection, options: IDeleteRelationshipOptions, transaction?: IGraphTransaction): Promise<IDeleteRelationshipResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Merge a relationship (create if not exists, update if exists)
|
|
115
|
+
*/
|
|
116
|
+
abstract mergeRelationship<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IMergeRelationshipOptions<T>, transaction?: IGraphTransaction): Promise<IMergeRelationshipResult<T>>;
|
|
117
|
+
/**
|
|
118
|
+
* Traverse the graph from a starting point
|
|
119
|
+
*/
|
|
120
|
+
abstract traverse<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: ITraverseOptions, transaction?: IGraphTransaction): Promise<ITraverseResult<N, R>>;
|
|
121
|
+
/**
|
|
122
|
+
* Find the shortest path between two nodes
|
|
123
|
+
*/
|
|
124
|
+
abstract shortestPath<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IShortestPathOptions, transaction?: IGraphTransaction): Promise<IShortestPathResult<N, R>>;
|
|
125
|
+
/**
|
|
126
|
+
* Find all paths between two nodes
|
|
127
|
+
*/
|
|
128
|
+
abstract allPaths<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IAllPathsOptions, transaction?: IGraphTransaction): Promise<IAllPathsResult<N, R>>;
|
|
129
|
+
/**
|
|
130
|
+
* Match a graph pattern
|
|
131
|
+
*/
|
|
132
|
+
abstract matchPattern(connection: IGraphConnection, options: IMatchPatternOptions, transaction?: IGraphTransaction): Promise<IPatternMatchResult>;
|
|
133
|
+
/**
|
|
134
|
+
* Extract a subgraph
|
|
135
|
+
*/
|
|
136
|
+
abstract extractSubgraph<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: ISubgraphOptions, transaction?: IGraphTransaction): Promise<ISubgraphResult<N, R>>;
|
|
137
|
+
/**
|
|
138
|
+
* Get neighborhood of a node
|
|
139
|
+
*/
|
|
140
|
+
abstract getNeighborhood<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: INeighborhoodOptions, transaction?: IGraphTransaction): Promise<INeighborhoodResult<N, R>>;
|
|
141
|
+
/**
|
|
142
|
+
* Find connected components
|
|
143
|
+
*/
|
|
144
|
+
abstract findConnectedComponents<N extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IConnectedComponentsOptions, transaction?: IGraphTransaction): Promise<IConnectedComponentsResult<N>>;
|
|
145
|
+
/**
|
|
146
|
+
* Count nodes matching criteria
|
|
147
|
+
*/
|
|
148
|
+
abstract countNodes(connection: IGraphConnection, labels?: string | string[], where?: Record<string, any>, transaction?: IGraphTransaction): Promise<ICountResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Count relationships matching criteria
|
|
151
|
+
*/
|
|
152
|
+
abstract countRelationships(connection: IGraphConnection, type?: string | string[], where?: Record<string, any>, transaction?: IGraphTransaction): Promise<ICountResult>;
|
|
153
|
+
/**
|
|
154
|
+
* Get graph statistics
|
|
155
|
+
*/
|
|
156
|
+
abstract getStatistics(connection: IGraphConnection, transaction?: IGraphTransaction): Promise<IGraphStatisticsResult>;
|
|
157
|
+
/**
|
|
158
|
+
* Full-text search on indexed properties
|
|
159
|
+
*/
|
|
160
|
+
abstract fullTextSearch<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IFullTextSearchOptions, transaction?: IGraphTransaction): Promise<IFullTextSearchResult<T>>;
|
|
161
|
+
/**
|
|
162
|
+
* Vector similarity search (if supported)
|
|
163
|
+
*/
|
|
164
|
+
abstract vectorSearch<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IVectorSearchOptions, transaction?: IGraphTransaction): Promise<IVectorSearchResult<T>>;
|
|
165
|
+
/**
|
|
166
|
+
* Create a constraint on nodes
|
|
167
|
+
*/
|
|
168
|
+
abstract createNodeConstraint(connection: IGraphConnection, constraint: INodeConstraint, transaction?: IGraphTransaction): Promise<ICreateConstraintResult>;
|
|
169
|
+
/**
|
|
170
|
+
* Create a constraint on relationships
|
|
171
|
+
*/
|
|
172
|
+
abstract createRelationshipConstraint(connection: IGraphConnection, constraint: IRelationshipConstraint, transaction?: IGraphTransaction): Promise<ICreateConstraintResult>;
|
|
173
|
+
/**
|
|
174
|
+
* Drop a constraint
|
|
175
|
+
*/
|
|
176
|
+
abstract dropConstraint(connection: IGraphConnection, name: string, transaction?: IGraphTransaction): Promise<IDropConstraintResult>;
|
|
177
|
+
/**
|
|
178
|
+
* List all constraints
|
|
179
|
+
*/
|
|
180
|
+
abstract listConstraints(connection: IGraphConnection, transaction?: IGraphTransaction): Promise<IListConstraintsResult>;
|
|
181
|
+
/**
|
|
182
|
+
* Create an index on nodes
|
|
183
|
+
*/
|
|
184
|
+
abstract createNodeIndex(connection: IGraphConnection, index: INodeIndex, transaction?: IGraphTransaction): Promise<ICreateIndexResult>;
|
|
185
|
+
/**
|
|
186
|
+
* Create an index on relationships
|
|
187
|
+
*/
|
|
188
|
+
abstract createRelationshipIndex(connection: IGraphConnection, index: IRelationshipIndex, transaction?: IGraphTransaction): Promise<ICreateIndexResult>;
|
|
189
|
+
/**
|
|
190
|
+
* Drop an index
|
|
191
|
+
*/
|
|
192
|
+
abstract dropIndex(connection: IGraphConnection, name: string, transaction?: IGraphTransaction): Promise<IDropIndexResult>;
|
|
193
|
+
/**
|
|
194
|
+
* List all indexes
|
|
195
|
+
*/
|
|
196
|
+
abstract listIndexes(connection: IGraphConnection, transaction?: IGraphTransaction): Promise<IListIndexesResult>;
|
|
197
|
+
/**
|
|
198
|
+
* Escape a label or relationship type name
|
|
199
|
+
*/
|
|
200
|
+
abstract escapeIdentifier(identifier: string): string;
|
|
201
|
+
/**
|
|
202
|
+
* Escape/quote a value for use in queries
|
|
203
|
+
*/
|
|
204
|
+
abstract escapeValue(value: any): string;
|
|
205
|
+
/**
|
|
206
|
+
* Build a where clause from filter object
|
|
207
|
+
*/
|
|
208
|
+
abstract buildWhereClause(where: Record<string, any>, variableName?: string): {
|
|
209
|
+
clause: string;
|
|
210
|
+
params: Record<string, any>;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Convert native result to INode
|
|
214
|
+
*/
|
|
215
|
+
protected abstract parseNode<T extends NodeProperties = NodeProperties>(nativeNode: any): INode<T>;
|
|
216
|
+
/**
|
|
217
|
+
* Convert native result to IRelationship
|
|
218
|
+
*/
|
|
219
|
+
protected abstract parseRelationship<T extends RelationshipProperties = RelationshipProperties>(nativeRelationship: any): IRelationship<T>;
|
|
220
|
+
/**
|
|
221
|
+
* Convert native result to IPath
|
|
222
|
+
*/
|
|
223
|
+
protected abstract parsePath<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(nativePath: any): IPath<N, R>;
|
|
224
|
+
/**
|
|
225
|
+
* Wrap database-specific errors in GraphError
|
|
226
|
+
*/
|
|
227
|
+
protected wrapError(error: any, type: GraphErrorType, message: string, query?: string, params?: Record<string, any>): GraphError;
|
|
228
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Base Graph Database Adapter
|
|
4
|
+
* Abstract class defining the interface for all graph database adapters
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BaseGraphAdapter = void 0;
|
|
8
|
+
const graph_types_1 = require("../types/graph.types");
|
|
9
|
+
/**
|
|
10
|
+
* Abstract base class for graph database adapters
|
|
11
|
+
* All specific database adapters (Neo4j, Neptune, ArangoDB, Memgraph) extend this class
|
|
12
|
+
*/
|
|
13
|
+
class BaseGraphAdapter {
|
|
14
|
+
/**
|
|
15
|
+
* Execute a callback within a transaction (auto-commit on success, rollback on error)
|
|
16
|
+
*/
|
|
17
|
+
async executeTransaction(connection, callback, options) {
|
|
18
|
+
const transaction = await this.beginTransaction(connection, options);
|
|
19
|
+
try {
|
|
20
|
+
const result = await callback(transaction);
|
|
21
|
+
await this.commitTransaction(connection, transaction);
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
await this.rollbackTransaction(connection, transaction);
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// ==================== ERROR HANDLING ====================
|
|
30
|
+
/**
|
|
31
|
+
* Wrap database-specific errors in GraphError
|
|
32
|
+
*/
|
|
33
|
+
wrapError(error, type, message, query, params) {
|
|
34
|
+
return new graph_types_1.GraphError(type, message, error, query, params);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.BaseGraphAdapter = BaseGraphAdapter;
|
|
38
|
+
//# sourceMappingURL=base.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.adapter.js","sourceRoot":"","sources":["../../../src/graph/adapters/base.adapter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,sDAQ8B;AAmF9B;;;GAGG;AACH,MAAsB,gBAAgB;IAoEpC;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,UAA4B,EAC5B,QAAwD,EACxD,OAAkC;QAElC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACxD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAmXD,2DAA2D;IAE3D;;OAEG;IACO,SAAS,CACjB,KAAU,EACV,IAAoB,EACpB,OAAe,EACf,KAAc,EACd,MAA4B;QAE5B,OAAO,IAAI,wBAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;CACF;AAvdD,4CAudC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Graph Adapters Index
|
|
3
|
+
* Re-exports all graph database adapters
|
|
4
|
+
*/
|
|
5
|
+
export { BaseGraphAdapter } from './base.adapter';
|
|
6
|
+
export { Neo4jAdapter } from './neo4j.adapter';
|
|
7
|
+
export { NeptuneAdapter } from './neptune.adapter';
|
|
8
|
+
export { ArangoDBAdapter } from './arangodb.adapter';
|
|
9
|
+
export { MemgraphAdapter } from './memgraph.adapter';
|
|
10
|
+
export { Neo4jAdapter as default } from './neo4j.adapter';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Graph Adapters Index
|
|
4
|
+
* Re-exports all graph database adapters
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.default = exports.MemgraphAdapter = exports.ArangoDBAdapter = exports.NeptuneAdapter = exports.Neo4jAdapter = exports.BaseGraphAdapter = void 0;
|
|
8
|
+
// Base adapter
|
|
9
|
+
var base_adapter_1 = require("./base.adapter");
|
|
10
|
+
Object.defineProperty(exports, "BaseGraphAdapter", { enumerable: true, get: function () { return base_adapter_1.BaseGraphAdapter; } });
|
|
11
|
+
// Database-specific adapters
|
|
12
|
+
var neo4j_adapter_1 = require("./neo4j.adapter");
|
|
13
|
+
Object.defineProperty(exports, "Neo4jAdapter", { enumerable: true, get: function () { return neo4j_adapter_1.Neo4jAdapter; } });
|
|
14
|
+
var neptune_adapter_1 = require("./neptune.adapter");
|
|
15
|
+
Object.defineProperty(exports, "NeptuneAdapter", { enumerable: true, get: function () { return neptune_adapter_1.NeptuneAdapter; } });
|
|
16
|
+
var arangodb_adapter_1 = require("./arangodb.adapter");
|
|
17
|
+
Object.defineProperty(exports, "ArangoDBAdapter", { enumerable: true, get: function () { return arangodb_adapter_1.ArangoDBAdapter; } });
|
|
18
|
+
var memgraph_adapter_1 = require("./memgraph.adapter");
|
|
19
|
+
Object.defineProperty(exports, "MemgraphAdapter", { enumerable: true, get: function () { return memgraph_adapter_1.MemgraphAdapter; } });
|
|
20
|
+
// Default exports for convenience
|
|
21
|
+
var neo4j_adapter_2 = require("./neo4j.adapter");
|
|
22
|
+
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return neo4j_adapter_2.Neo4jAdapter; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/adapters/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,eAAe;AACf,+CAAkD;AAAzC,gHAAA,gBAAgB,OAAA;AAEzB,6BAA6B;AAC7B,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,kCAAkC;AAClC,iDAA0D;AAAjD,wGAAA,YAAY,OAAW"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memgraph Graph Database Adapter
|
|
3
|
+
* Implements the BaseGraphAdapter for Memgraph using Cypher query language
|
|
4
|
+
* Memgraph is Cypher-compatible and uses the Bolt protocol similar to Neo4j
|
|
5
|
+
*/
|
|
6
|
+
import { BaseGraphAdapter } from './base.adapter';
|
|
7
|
+
import { GraphDatabaseType, GraphQueryLanguage, IGraphConnection, IGraphTransaction, IGraphTransactionOptions } from '../types/graph.types';
|
|
8
|
+
import { GraphConnectionConfig, IGraphConnectionTestResult } from '../types/connection.types';
|
|
9
|
+
import { INode, NodeProperties, ICreateNodeOptions, IFindNodesOptions, IUpdateNodeOptions, IDeleteNodeOptions, IMergeNodeOptions, INodeConstraint, INodeIndex } from '../types/node.types';
|
|
10
|
+
import { IRelationship, RelationshipProperties, ICreateRelationshipOptions, IFindRelationshipsOptions, IUpdateRelationshipOptions, IDeleteRelationshipOptions, IMergeRelationshipOptions, IRelationshipConstraint, IRelationshipIndex } from '../types/relationship.types';
|
|
11
|
+
import { IPath, ITraverseOptions, IShortestPathOptions, IAllPathsOptions, IMatchPatternOptions, ISubgraphOptions, INeighborhoodOptions, IConnectedComponentsOptions } from '../types/path.types';
|
|
12
|
+
import { IRawQueryOptions, IFullTextSearchOptions, IVectorSearchOptions } from '../types/query.types';
|
|
13
|
+
import { IGraphQueryResult, ICreateNodeResult, IFindNodesResult, IUpdateNodeResult, IDeleteNodeResult, IMergeNodeResult, ICreateRelationshipResult, IFindRelationshipsResult, IUpdateRelationshipResult, IDeleteRelationshipResult, IMergeRelationshipResult, ITraverseResult, IShortestPathResult, IAllPathsResult, IPatternMatchResult, ISubgraphResult, INeighborhoodResult, IConnectedComponentsResult, ICountResult, ICreateConstraintResult, IDropConstraintResult, IListConstraintsResult, ICreateIndexResult, IDropIndexResult, IListIndexesResult, IFullTextSearchResult, IVectorSearchResult, IGraphStatisticsResult } from '../types/result.types';
|
|
14
|
+
/**
|
|
15
|
+
* Memgraph Graph Database Adapter
|
|
16
|
+
*/
|
|
17
|
+
export declare class MemgraphAdapter extends BaseGraphAdapter {
|
|
18
|
+
readonly type = GraphDatabaseType.MEMGRAPH;
|
|
19
|
+
readonly supportedLanguages: GraphQueryLanguage[];
|
|
20
|
+
readonly defaultLanguage = GraphQueryLanguage.CYPHER;
|
|
21
|
+
connect(config: GraphConnectionConfig): Promise<IGraphConnection>;
|
|
22
|
+
disconnect(connection: IGraphConnection): Promise<void>;
|
|
23
|
+
testConnection(connection: IGraphConnection): Promise<IGraphConnectionTestResult>;
|
|
24
|
+
getDatabaseInfo(connection: IGraphConnection): Promise<{
|
|
25
|
+
version: string;
|
|
26
|
+
edition?: string;
|
|
27
|
+
features?: string[];
|
|
28
|
+
}>;
|
|
29
|
+
beginTransaction(connection: IGraphConnection, options?: IGraphTransactionOptions): Promise<IGraphTransaction>;
|
|
30
|
+
commitTransaction(connection: IGraphConnection, transaction: IGraphTransaction): Promise<void>;
|
|
31
|
+
rollbackTransaction(connection: IGraphConnection, transaction: IGraphTransaction): Promise<void>;
|
|
32
|
+
executeRaw<T = any>(connection: IGraphConnection, options: IRawQueryOptions, transaction?: IGraphTransaction): Promise<IGraphQueryResult<T>>;
|
|
33
|
+
createNode<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: ICreateNodeOptions<T>, transaction?: IGraphTransaction): Promise<ICreateNodeResult<T>>;
|
|
34
|
+
findNodes<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IFindNodesOptions, transaction?: IGraphTransaction): Promise<IFindNodesResult<T>>;
|
|
35
|
+
findNodeById<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, id: string | number, transaction?: IGraphTransaction): Promise<INode<T> | null>;
|
|
36
|
+
updateNode<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IUpdateNodeOptions, transaction?: IGraphTransaction): Promise<IUpdateNodeResult<T>>;
|
|
37
|
+
deleteNode(connection: IGraphConnection, options: IDeleteNodeOptions, transaction?: IGraphTransaction): Promise<IDeleteNodeResult>;
|
|
38
|
+
mergeNode<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IMergeNodeOptions<T>, transaction?: IGraphTransaction): Promise<IMergeNodeResult<T>>;
|
|
39
|
+
createRelationship<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: ICreateRelationshipOptions<T>, transaction?: IGraphTransaction): Promise<ICreateRelationshipResult<T>>;
|
|
40
|
+
findRelationships<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IFindRelationshipsOptions, transaction?: IGraphTransaction): Promise<IFindRelationshipsResult<T>>;
|
|
41
|
+
findRelationshipById<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, id: string | number, transaction?: IGraphTransaction): Promise<IRelationship<T> | null>;
|
|
42
|
+
updateRelationship<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IUpdateRelationshipOptions, transaction?: IGraphTransaction): Promise<IUpdateRelationshipResult<T>>;
|
|
43
|
+
deleteRelationship(connection: IGraphConnection, options: IDeleteRelationshipOptions, transaction?: IGraphTransaction): Promise<IDeleteRelationshipResult>;
|
|
44
|
+
mergeRelationship<T extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IMergeRelationshipOptions<T>, transaction?: IGraphTransaction): Promise<IMergeRelationshipResult<T>>;
|
|
45
|
+
traverse<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: ITraverseOptions, transaction?: IGraphTransaction): Promise<ITraverseResult<N, R>>;
|
|
46
|
+
shortestPath<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IShortestPathOptions, transaction?: IGraphTransaction): Promise<IShortestPathResult<N, R>>;
|
|
47
|
+
allPaths<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: IAllPathsOptions, transaction?: IGraphTransaction): Promise<IAllPathsResult<N, R>>;
|
|
48
|
+
matchPattern(connection: IGraphConnection, options: IMatchPatternOptions, transaction?: IGraphTransaction): Promise<IPatternMatchResult>;
|
|
49
|
+
extractSubgraph<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: ISubgraphOptions, transaction?: IGraphTransaction): Promise<ISubgraphResult<N, R>>;
|
|
50
|
+
getNeighborhood<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(connection: IGraphConnection, options: INeighborhoodOptions, transaction?: IGraphTransaction): Promise<INeighborhoodResult<N, R>>;
|
|
51
|
+
findConnectedComponents<N extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IConnectedComponentsOptions, transaction?: IGraphTransaction): Promise<IConnectedComponentsResult<N>>;
|
|
52
|
+
countNodes(connection: IGraphConnection, labels?: string | string[], where?: Record<string, any>, transaction?: IGraphTransaction): Promise<ICountResult>;
|
|
53
|
+
countRelationships(connection: IGraphConnection, type?: string | string[], where?: Record<string, any>, transaction?: IGraphTransaction): Promise<ICountResult>;
|
|
54
|
+
getStatistics(connection: IGraphConnection, transaction?: IGraphTransaction): Promise<IGraphStatisticsResult>;
|
|
55
|
+
fullTextSearch<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IFullTextSearchOptions, transaction?: IGraphTransaction): Promise<IFullTextSearchResult<T>>;
|
|
56
|
+
vectorSearch<T extends NodeProperties = NodeProperties>(connection: IGraphConnection, options: IVectorSearchOptions, transaction?: IGraphTransaction): Promise<IVectorSearchResult<T>>;
|
|
57
|
+
createNodeConstraint(connection: IGraphConnection, constraint: INodeConstraint, transaction?: IGraphTransaction): Promise<ICreateConstraintResult>;
|
|
58
|
+
createRelationshipConstraint(connection: IGraphConnection, constraint: IRelationshipConstraint, transaction?: IGraphTransaction): Promise<ICreateConstraintResult>;
|
|
59
|
+
dropConstraint(connection: IGraphConnection, name: string, transaction?: IGraphTransaction): Promise<IDropConstraintResult>;
|
|
60
|
+
listConstraints(connection: IGraphConnection, transaction?: IGraphTransaction): Promise<IListConstraintsResult>;
|
|
61
|
+
createNodeIndex(connection: IGraphConnection, index: INodeIndex, transaction?: IGraphTransaction): Promise<ICreateIndexResult>;
|
|
62
|
+
createRelationshipIndex(connection: IGraphConnection, index: IRelationshipIndex, transaction?: IGraphTransaction): Promise<ICreateIndexResult>;
|
|
63
|
+
dropIndex(connection: IGraphConnection, name: string, transaction?: IGraphTransaction): Promise<IDropIndexResult>;
|
|
64
|
+
listIndexes(connection: IGraphConnection, transaction?: IGraphTransaction): Promise<IListIndexesResult>;
|
|
65
|
+
escapeIdentifier(identifier: string): string;
|
|
66
|
+
escapeValue(value: any): string;
|
|
67
|
+
buildWhereClause(where: Record<string, any>, variableName?: string): {
|
|
68
|
+
clause: string;
|
|
69
|
+
params: Record<string, any>;
|
|
70
|
+
};
|
|
71
|
+
protected parseNode<T extends NodeProperties = NodeProperties>(nativeNode: any): INode<T>;
|
|
72
|
+
protected parseRelationship<T extends RelationshipProperties = RelationshipProperties>(nativeRelationship: any): IRelationship<T>;
|
|
73
|
+
protected parsePath<N extends NodeProperties = NodeProperties, R extends RelationshipProperties = RelationshipProperties>(nativePath: any): IPath<N, R>;
|
|
74
|
+
private convertValue;
|
|
75
|
+
private convertProperties;
|
|
76
|
+
private toNumber;
|
|
77
|
+
private normalizeLabels;
|
|
78
|
+
private buildPropertiesClause;
|
|
79
|
+
private buildNodeReference;
|
|
80
|
+
private buildWhereFromClause;
|
|
81
|
+
private buildWhereCondition;
|
|
82
|
+
private buildNodeSelectorMatch;
|
|
83
|
+
private parseStatistics;
|
|
84
|
+
}
|
|
85
|
+
export default MemgraphAdapter;
|