@ductape/sdk 0.0.4-v9 → 0.0.4-v91

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 (998) hide show
  1. package/dist/agents/agent-context.d.ts +98 -0
  2. package/dist/agents/agent-context.js +588 -0
  3. package/dist/agents/agent-context.js.map +1 -0
  4. package/dist/agents/agent-executor.d.ts +180 -0
  5. package/dist/agents/agent-executor.js +715 -0
  6. package/dist/agents/agent-executor.js.map +1 -0
  7. package/dist/agents/agents.service.d.ts +310 -0
  8. package/dist/agents/agents.service.js +1249 -0
  9. package/dist/agents/agents.service.js.map +1 -0
  10. package/dist/agents/index.d.ts +55 -0
  11. package/dist/agents/index.js +110 -0
  12. package/dist/agents/index.js.map +1 -0
  13. package/dist/agents/memory-manager.d.ts +182 -0
  14. package/dist/agents/memory-manager.js +383 -0
  15. package/dist/agents/memory-manager.js.map +1 -0
  16. package/dist/agents/tool-registry.d.ts +141 -0
  17. package/dist/agents/tool-registry.js +355 -0
  18. package/dist/agents/tool-registry.js.map +1 -0
  19. package/dist/agents/types/agents.types.d.ts +1227 -0
  20. package/dist/agents/types/agents.types.js +12 -0
  21. package/dist/agents/types/agents.types.js.map +1 -0
  22. package/dist/agents/types/index.d.ts +6 -0
  23. package/dist/agents/types/index.js +23 -0
  24. package/dist/agents/types/index.js.map +1 -0
  25. package/dist/agents/vector-store-adapter.d.ts +108 -0
  26. package/dist/agents/vector-store-adapter.js +213 -0
  27. package/dist/agents/vector-store-adapter.js.map +1 -0
  28. package/dist/api/services/appApi.service.d.ts +51 -5
  29. package/dist/api/services/appApi.service.js +101 -3
  30. package/dist/api/services/appApi.service.js.map +1 -1
  31. package/dist/api/services/pricingApi.service.d.ts +10 -0
  32. package/dist/api/services/pricingApi.service.js +34 -0
  33. package/dist/api/services/pricingApi.service.js.map +1 -0
  34. package/dist/api/services/processorApi.service.d.ts +322 -0
  35. package/dist/api/services/processorApi.service.js +252 -0
  36. package/dist/api/services/processorApi.service.js.map +1 -1
  37. package/dist/api/services/productsApi.service.d.ts +105 -0
  38. package/dist/api/services/productsApi.service.js +139 -3
  39. package/dist/api/services/productsApi.service.js.map +1 -1
  40. package/dist/api/services/resilienceApi.service.d.ts +106 -0
  41. package/dist/api/services/resilienceApi.service.js +224 -0
  42. package/dist/api/services/resilienceApi.service.js.map +1 -0
  43. package/dist/api/services/secretsApi.service.d.ts +50 -0
  44. package/dist/api/services/secretsApi.service.js +124 -0
  45. package/dist/api/services/secretsApi.service.js.map +1 -0
  46. package/dist/api/services/workflowApi.service.d.ts +199 -0
  47. package/dist/api/services/workflowApi.service.js +183 -0
  48. package/dist/api/services/workflowApi.service.js.map +1 -0
  49. package/dist/api/services/workspaceApi.service.d.ts +8 -0
  50. package/dist/api/services/workspaceApi.service.js +20 -0
  51. package/dist/api/services/workspaceApi.service.js.map +1 -1
  52. package/dist/api/urls.d.ts +62 -0
  53. package/dist/api/urls.js +87 -17
  54. package/dist/api/urls.js.map +1 -1
  55. package/dist/api/utils/auth.utils.d.ts +1 -3
  56. package/dist/api/utils/auth.utils.js.map +1 -1
  57. package/dist/api/utils/cache.utils.d.ts +1 -1
  58. package/dist/api/utils/cache.utils.js +2 -2
  59. package/dist/api/utils/cache.utils.js.map +1 -1
  60. package/dist/api/utils/strings.utils.d.ts +2 -0
  61. package/dist/api/utils/strings.utils.js +14 -0
  62. package/dist/api/utils/strings.utils.js.map +1 -1
  63. package/dist/apps/services/app.service.d.ts +41 -33
  64. package/dist/apps/services/app.service.js +472 -184
  65. package/dist/apps/services/app.service.js.map +1 -1
  66. package/dist/apps/utils/auth-context-manager.d.ts +137 -0
  67. package/dist/apps/utils/auth-context-manager.js +248 -0
  68. package/dist/apps/utils/auth-context-manager.js.map +1 -0
  69. package/dist/apps/utils/credential-manager.d.ts +128 -0
  70. package/dist/apps/utils/credential-manager.js +199 -0
  71. package/dist/apps/utils/credential-manager.js.map +1 -0
  72. package/dist/apps/utils/index.d.ts +10 -0
  73. package/dist/apps/utils/index.js +54 -0
  74. package/dist/apps/utils/index.js.map +1 -0
  75. package/dist/apps/utils/input-helpers.d.ts +67 -0
  76. package/dist/apps/utils/input-helpers.js +185 -0
  77. package/dist/apps/utils/input-helpers.js.map +1 -0
  78. package/dist/apps/utils/input-resolver.d.ts +165 -0
  79. package/dist/apps/utils/input-resolver.js +477 -0
  80. package/dist/apps/utils/input-resolver.js.map +1 -0
  81. package/dist/apps/utils/oauth-manager.d.ts +196 -0
  82. package/dist/apps/utils/oauth-manager.js +429 -0
  83. package/dist/apps/utils/oauth-manager.js.map +1 -0
  84. package/dist/apps/validators/joi-validators/create.appAction.validator.d.ts +1 -2
  85. package/dist/apps/validators/joi-validators/create.appAction.validator.js +21 -2
  86. package/dist/apps/validators/joi-validators/create.appAction.validator.js.map +1 -1
  87. package/dist/apps/validators/joi-validators/update.appAction.validator.js +11 -1
  88. package/dist/apps/validators/joi-validators/update.appAction.validator.js.map +1 -1
  89. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.d.ts +1 -1
  90. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js +34 -1
  91. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js.map +1 -1
  92. package/dist/bin.d.ts +26 -0
  93. package/dist/bin.js +28 -0
  94. package/dist/bin.js.map +1 -0
  95. package/dist/brokers/brokers.service.d.ts +297 -0
  96. package/dist/brokers/brokers.service.js +797 -0
  97. package/dist/brokers/brokers.service.js.map +1 -0
  98. package/dist/brokers/index.d.ts +46 -0
  99. package/dist/brokers/index.js +83 -0
  100. package/dist/brokers/index.js.map +1 -0
  101. package/dist/brokers/types/index.d.ts +316 -0
  102. package/dist/brokers/types/index.js +8 -0
  103. package/dist/brokers/types/index.js.map +1 -0
  104. package/dist/brokers/utils/broker.util.d.ts +33 -0
  105. package/dist/brokers/utils/broker.util.js +125 -0
  106. package/dist/brokers/utils/broker.util.js.map +1 -0
  107. package/dist/brokers/utils/providers/aws-sqs.service.d.ts +16 -0
  108. package/dist/brokers/utils/providers/aws-sqs.service.js +71 -0
  109. package/dist/brokers/utils/providers/aws-sqs.service.js.map +1 -0
  110. package/dist/brokers/utils/providers/google-pubsub.service.d.ts +16 -0
  111. package/dist/brokers/utils/providers/google-pubsub.service.js +43 -0
  112. package/dist/brokers/utils/providers/google-pubsub.service.js.map +1 -0
  113. package/dist/brokers/utils/providers/index.d.ts +6 -0
  114. package/dist/brokers/utils/providers/index.js +16 -0
  115. package/dist/brokers/utils/providers/index.js.map +1 -0
  116. package/dist/brokers/utils/providers/kafka.service.d.ts +23 -0
  117. package/dist/brokers/utils/providers/kafka.service.js +131 -0
  118. package/dist/brokers/utils/providers/kafka.service.js.map +1 -0
  119. package/dist/brokers/utils/providers/nats.service.d.ts +18 -0
  120. package/dist/brokers/utils/providers/nats.service.js +63 -0
  121. package/dist/brokers/utils/providers/nats.service.js.map +1 -0
  122. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +15 -0
  123. package/dist/brokers/utils/providers/rabbitmq.service.js +151 -0
  124. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -0
  125. package/dist/brokers/utils/providers/redis.service.d.ts +18 -0
  126. package/dist/brokers/utils/providers/redis.service.js +93 -0
  127. package/dist/brokers/utils/providers/redis.service.js.map +1 -0
  128. package/dist/cache/cache.manager.d.ts +229 -0
  129. package/dist/cache/cache.manager.js +460 -0
  130. package/dist/cache/cache.manager.js.map +1 -0
  131. package/dist/cache/cache.service.d.ts +186 -0
  132. package/dist/cache/cache.service.js +437 -0
  133. package/dist/cache/cache.service.js.map +1 -0
  134. package/dist/cache/index.d.ts +52 -0
  135. package/dist/cache/index.js +79 -0
  136. package/dist/cache/index.js.map +1 -0
  137. package/dist/cache/types/index.d.ts +106 -0
  138. package/dist/cache/types/index.js +6 -0
  139. package/dist/cache/types/index.js.map +1 -0
  140. package/dist/clients/pricing.client.d.ts +3 -0
  141. package/dist/clients/pricing.client.js +33 -0
  142. package/dist/clients/pricing.client.js.map +1 -0
  143. package/dist/database/actions/action-manager.d.ts +170 -0
  144. package/dist/database/actions/action-manager.js +465 -0
  145. package/dist/database/actions/action-manager.js.map +1 -0
  146. package/dist/database/actions/index.d.ts +6 -0
  147. package/dist/database/actions/index.js +13 -0
  148. package/dist/database/actions/index.js.map +1 -0
  149. package/dist/database/adapters/adapter.factory.d.ts +62 -0
  150. package/dist/database/adapters/adapter.factory.js +97 -0
  151. package/dist/database/adapters/adapter.factory.js.map +1 -0
  152. package/dist/database/adapters/base.adapter.d.ts +423 -0
  153. package/dist/database/adapters/base.adapter.js +260 -0
  154. package/dist/database/adapters/base.adapter.js.map +1 -0
  155. package/dist/database/adapters/cassandra.adapter.d.ts +92 -0
  156. package/dist/database/adapters/cassandra.adapter.js +1091 -0
  157. package/dist/database/adapters/cassandra.adapter.js.map +1 -0
  158. package/dist/database/adapters/dynamodb.adapter.d.ts +110 -0
  159. package/dist/database/adapters/dynamodb.adapter.js +1564 -0
  160. package/dist/database/adapters/dynamodb.adapter.js.map +1 -0
  161. package/dist/database/adapters/index.d.ts +11 -0
  162. package/dist/database/adapters/index.js +27 -0
  163. package/dist/database/adapters/index.js.map +1 -0
  164. package/dist/database/adapters/mariadb.adapter.d.ts +100 -0
  165. package/dist/database/adapters/mariadb.adapter.js +247 -0
  166. package/dist/database/adapters/mariadb.adapter.js.map +1 -0
  167. package/dist/database/adapters/mongodb.adapter.d.ts +121 -0
  168. package/dist/database/adapters/mongodb.adapter.js +1284 -0
  169. package/dist/database/adapters/mongodb.adapter.js.map +1 -0
  170. package/dist/database/adapters/mysql.adapter.d.ts +86 -0
  171. package/dist/database/adapters/mysql.adapter.js +1371 -0
  172. package/dist/database/adapters/mysql.adapter.js.map +1 -0
  173. package/dist/database/adapters/postgresql.adapter.d.ts +90 -0
  174. package/dist/database/adapters/postgresql.adapter.js +1487 -0
  175. package/dist/database/adapters/postgresql.adapter.js.map +1 -0
  176. package/dist/database/databases.service.d.ts +1408 -0
  177. package/dist/database/databases.service.js +2953 -0
  178. package/dist/database/databases.service.js.map +1 -0
  179. package/dist/database/index.d.ts +46 -0
  180. package/dist/database/index.js +109 -0
  181. package/dist/database/index.js.map +1 -0
  182. package/dist/database/migrations/index.d.ts +6 -0
  183. package/dist/database/migrations/index.js +12 -0
  184. package/dist/database/migrations/index.js.map +1 -0
  185. package/dist/database/migrations/migration-engine.d.ts +136 -0
  186. package/dist/database/migrations/migration-engine.js +1421 -0
  187. package/dist/database/migrations/migration-engine.js.map +1 -0
  188. package/dist/database/operators/aggregation-builder.d.ts +67 -0
  189. package/dist/database/operators/aggregation-builder.js +841 -0
  190. package/dist/database/operators/aggregation-builder.js.map +1 -0
  191. package/dist/database/operators/index.d.ts +7 -0
  192. package/dist/database/operators/index.js +15 -0
  193. package/dist/database/operators/index.js.map +1 -0
  194. package/dist/database/operators/query-builder.d.ts +69 -0
  195. package/dist/database/operators/query-builder.js +447 -0
  196. package/dist/database/operators/query-builder.js.map +1 -0
  197. package/dist/database/presave/decrypt.d.ts +25 -0
  198. package/dist/database/presave/decrypt.js +146 -0
  199. package/dist/database/presave/decrypt.js.map +1 -0
  200. package/dist/database/presave/index.d.ts +9 -0
  201. package/dist/database/presave/index.js +18 -0
  202. package/dist/database/presave/index.js.map +1 -0
  203. package/dist/database/presave/presave-processor.d.ts +148 -0
  204. package/dist/database/presave/presave-processor.js +702 -0
  205. package/dist/database/presave/presave-processor.js.map +1 -0
  206. package/dist/database/schema/index.d.ts +7 -0
  207. package/dist/database/schema/index.js +13 -0
  208. package/dist/database/schema/index.js.map +1 -0
  209. package/dist/database/schema/schema-manager.d.ts +258 -0
  210. package/dist/database/schema/schema-manager.js +638 -0
  211. package/dist/database/schema/schema-manager.js.map +1 -0
  212. package/dist/database/transactions/index.d.ts +6 -0
  213. package/dist/database/transactions/index.js +13 -0
  214. package/dist/database/transactions/index.js.map +1 -0
  215. package/dist/database/transactions/transaction-manager.d.ts +113 -0
  216. package/dist/database/transactions/transaction-manager.js +344 -0
  217. package/dist/database/transactions/transaction-manager.js.map +1 -0
  218. package/dist/database/triggers/index.d.ts +7 -0
  219. package/dist/database/triggers/index.js +14 -0
  220. package/dist/database/triggers/index.js.map +1 -0
  221. package/dist/database/triggers/trigger-processor.d.ts +239 -0
  222. package/dist/database/triggers/trigger-processor.js +1034 -0
  223. package/dist/database/triggers/trigger-processor.js.map +1 -0
  224. package/dist/database/types/action.interface.d.ts +148 -0
  225. package/dist/database/types/action.interface.js +6 -0
  226. package/dist/database/types/action.interface.js.map +1 -0
  227. package/dist/database/types/aggregation.interface.d.ts +185 -0
  228. package/dist/database/types/aggregation.interface.js +6 -0
  229. package/dist/database/types/aggregation.interface.js.map +1 -0
  230. package/dist/database/types/connection.interface.d.ts +137 -0
  231. package/dist/database/types/connection.interface.js +6 -0
  232. package/dist/database/types/connection.interface.js.map +1 -0
  233. package/dist/database/types/enums.d.ts +195 -0
  234. package/dist/database/types/enums.js +244 -0
  235. package/dist/database/types/enums.js.map +1 -0
  236. package/dist/database/types/index.d.ts +14 -0
  237. package/dist/database/types/index.js +31 -0
  238. package/dist/database/types/index.js.map +1 -0
  239. package/dist/database/types/migration.interface.d.ts +686 -0
  240. package/dist/database/types/migration.interface.js +9 -0
  241. package/dist/database/types/migration.interface.js.map +1 -0
  242. package/dist/database/types/presave.interface.d.ts +292 -0
  243. package/dist/database/types/presave.interface.js +60 -0
  244. package/dist/database/types/presave.interface.js.map +1 -0
  245. package/dist/database/types/query.interface.d.ts +205 -0
  246. package/dist/database/types/query.interface.js +6 -0
  247. package/dist/database/types/query.interface.js.map +1 -0
  248. package/dist/database/types/schema.interface.d.ts +412 -0
  249. package/dist/database/types/schema.interface.js +6 -0
  250. package/dist/database/types/schema.interface.js.map +1 -0
  251. package/dist/database/types/transaction.interface.d.ts +84 -0
  252. package/dist/database/types/transaction.interface.js +6 -0
  253. package/dist/database/types/transaction.interface.js.map +1 -0
  254. package/dist/database/types/trigger.interface.d.ts +612 -0
  255. package/dist/database/types/trigger.interface.js +121 -0
  256. package/dist/database/types/trigger.interface.js.map +1 -0
  257. package/dist/database/types/write.interface.d.ts +216 -0
  258. package/dist/database/types/write.interface.js +6 -0
  259. package/dist/database/types/write.interface.js.map +1 -0
  260. package/dist/database/utils/database-error.d.ts +96 -0
  261. package/dist/database/utils/database-error.js +221 -0
  262. package/dist/database/utils/database-error.js.map +1 -0
  263. package/dist/database/utils/index.d.ts +6 -0
  264. package/dist/database/utils/index.js +11 -0
  265. package/dist/database/utils/index.js.map +1 -0
  266. package/dist/graph/adapters/adapter.factory.d.ts +47 -0
  267. package/dist/graph/adapters/adapter.factory.js +77 -0
  268. package/dist/graph/adapters/adapter.factory.js.map +1 -0
  269. package/dist/graph/adapters/arangodb.adapter.d.ts +86 -0
  270. package/dist/graph/adapters/arangodb.adapter.js +1588 -0
  271. package/dist/graph/adapters/arangodb.adapter.js.map +1 -0
  272. package/dist/graph/adapters/base.adapter.d.ts +264 -0
  273. package/dist/graph/adapters/base.adapter.js +156 -0
  274. package/dist/graph/adapters/base.adapter.js.map +1 -0
  275. package/dist/graph/adapters/index.d.ts +11 -0
  276. package/dist/graph/adapters/index.js +21 -0
  277. package/dist/graph/adapters/index.js.map +1 -0
  278. package/dist/graph/adapters/memgraph.adapter.d.ts +110 -0
  279. package/dist/graph/adapters/memgraph.adapter.js +1452 -0
  280. package/dist/graph/adapters/memgraph.adapter.js.map +1 -0
  281. package/dist/graph/adapters/neo4j.adapter.d.ts +81 -0
  282. package/dist/graph/adapters/neo4j.adapter.js +1317 -0
  283. package/dist/graph/adapters/neo4j.adapter.js.map +1 -0
  284. package/dist/graph/adapters/neptune.adapter.d.ts +82 -0
  285. package/dist/graph/adapters/neptune.adapter.js +1369 -0
  286. package/dist/graph/adapters/neptune.adapter.js.map +1 -0
  287. package/dist/graph/graphs.service.d.ts +568 -0
  288. package/dist/graph/graphs.service.js +1948 -0
  289. package/dist/graph/graphs.service.js.map +1 -0
  290. package/dist/graph/index.d.ts +57 -0
  291. package/dist/graph/index.js +77 -0
  292. package/dist/graph/index.js.map +1 -0
  293. package/dist/graph/transactions/index.d.ts +4 -0
  294. package/dist/graph/transactions/index.js +9 -0
  295. package/dist/graph/transactions/index.js.map +1 -0
  296. package/dist/graph/transactions/transaction-manager.d.ts +61 -0
  297. package/dist/graph/transactions/transaction-manager.js +126 -0
  298. package/dist/graph/transactions/transaction-manager.js.map +1 -0
  299. package/dist/graph/types/connection.interface.d.ts +149 -0
  300. package/dist/graph/types/connection.interface.js +9 -0
  301. package/dist/graph/types/connection.interface.js.map +1 -0
  302. package/dist/graph/types/enums.d.ts +101 -0
  303. package/dist/graph/types/enums.js +114 -0
  304. package/dist/graph/types/enums.js.map +1 -0
  305. package/dist/graph/types/index.d.ts +13 -0
  306. package/dist/graph/types/index.js +20 -0
  307. package/dist/graph/types/index.js.map +1 -0
  308. package/dist/graph/types/node.interface.d.ts +248 -0
  309. package/dist/graph/types/node.interface.js +9 -0
  310. package/dist/graph/types/node.interface.js.map +1 -0
  311. package/dist/graph/types/query.interface.d.ts +175 -0
  312. package/dist/graph/types/query.interface.js +9 -0
  313. package/dist/graph/types/query.interface.js.map +1 -0
  314. package/dist/graph/types/relationship.interface.d.ts +207 -0
  315. package/dist/graph/types/relationship.interface.js +9 -0
  316. package/dist/graph/types/relationship.interface.js.map +1 -0
  317. package/dist/graph/types/schema.interface.d.ts +295 -0
  318. package/dist/graph/types/schema.interface.js +9 -0
  319. package/dist/graph/types/schema.interface.js.map +1 -0
  320. package/dist/graph/types/transaction.interface.d.ts +55 -0
  321. package/dist/graph/types/transaction.interface.js +9 -0
  322. package/dist/graph/types/transaction.interface.js.map +1 -0
  323. package/dist/graph/types/traversal.interface.d.ts +181 -0
  324. package/dist/graph/types/traversal.interface.js +9 -0
  325. package/dist/graph/types/traversal.interface.js.map +1 -0
  326. package/dist/graph/utils/graph-error.d.ts +71 -0
  327. package/dist/graph/utils/graph-error.js +142 -0
  328. package/dist/graph/utils/graph-error.js.map +1 -0
  329. package/dist/graph/utils/index.d.ts +4 -0
  330. package/dist/graph/utils/index.js +9 -0
  331. package/dist/graph/utils/index.js.map +1 -0
  332. package/dist/imports/imports.service.d.ts +3 -3
  333. package/dist/imports/imports.service.js +8 -7
  334. package/dist/imports/imports.service.js.map +1 -1
  335. package/dist/imports/imports.types.d.ts +8 -0
  336. package/dist/imports/repos/openApi.repo.d.ts +1 -1
  337. package/dist/imports/repos/openApi.repo.js +414 -47
  338. package/dist/imports/repos/openApi.repo.js.map +1 -1
  339. package/dist/imports/repos/postmanV21.repo.d.ts +1 -1
  340. package/dist/imports/repos/postmanV21.repo.js +126 -83
  341. package/dist/imports/repos/postmanV21.repo.js.map +1 -1
  342. package/dist/index.d.ts +3654 -289
  343. package/dist/index.js +5066 -669
  344. package/dist/index.js.map +1 -1
  345. package/dist/init.interface.d.ts +407 -0
  346. package/dist/init.interface.js +3 -0
  347. package/dist/init.interface.js.map +1 -0
  348. package/dist/inputs/inputs.service.d.ts +1 -1
  349. package/dist/inputs/utils/inputs.utils.create.js +1 -1
  350. package/dist/inputs/utils/inputs.utils.create.js.map +1 -1
  351. package/dist/jobs/index.d.ts +38 -0
  352. package/dist/jobs/index.js +50 -0
  353. package/dist/jobs/index.js.map +1 -0
  354. package/dist/jobs/jobs.service.d.ts +154 -0
  355. package/dist/jobs/jobs.service.js +491 -0
  356. package/dist/jobs/jobs.service.js.map +1 -0
  357. package/dist/jobs/jobs.state.d.ts +113 -0
  358. package/dist/jobs/jobs.state.js +447 -0
  359. package/dist/jobs/jobs.state.js.map +1 -0
  360. package/dist/jobs/types.d.ts +449 -0
  361. package/dist/jobs/types.js +74 -0
  362. package/dist/jobs/types.js.map +1 -0
  363. package/dist/logs/logs.service.js +6 -2
  364. package/dist/logs/logs.service.js.map +1 -1
  365. package/dist/logs/logs.types.d.ts +19 -1
  366. package/dist/logs/logs.types.js +6 -0
  367. package/dist/logs/logs.types.js.map +1 -1
  368. package/dist/models/index.d.ts +6 -0
  369. package/dist/models/index.js +11 -0
  370. package/dist/models/index.js.map +1 -0
  371. package/dist/models/models.service.d.ts +137 -0
  372. package/dist/models/models.service.js +195 -0
  373. package/dist/models/models.service.js.map +1 -0
  374. package/dist/notifications/index.d.ts +13 -0
  375. package/dist/notifications/index.js +26 -0
  376. package/dist/notifications/index.js.map +1 -0
  377. package/dist/notifications/notifications.service.d.ts +265 -0
  378. package/dist/notifications/notifications.service.js +862 -0
  379. package/dist/notifications/notifications.service.js.map +1 -0
  380. package/dist/notifications/types/index.d.ts +4 -0
  381. package/dist/notifications/types/index.js +21 -0
  382. package/dist/notifications/types/index.js.map +1 -0
  383. package/dist/notifications/types/notifications.types.d.ts +402 -0
  384. package/dist/notifications/types/notifications.types.js +49 -0
  385. package/dist/notifications/types/notifications.types.js.map +1 -0
  386. package/dist/parsers/index.d.ts +3 -0
  387. package/dist/parsers/index.js +27 -0
  388. package/dist/parsers/index.js.map +1 -0
  389. package/dist/parsers/pipelines/postman.pipelines.d.ts +15 -0
  390. package/dist/parsers/pipelines/postman.pipelines.js +103 -0
  391. package/dist/parsers/pipelines/postman.pipelines.js.map +1 -0
  392. package/dist/parsers/types/postman.types.d.ts +200 -0
  393. package/dist/parsers/types/postman.types.js +3 -0
  394. package/dist/parsers/types/postman.types.js.map +1 -0
  395. package/dist/parsers/utils/postman.utils.d.ts +12 -0
  396. package/dist/parsers/utils/postman.utils.js +116 -0
  397. package/dist/parsers/utils/postman.utils.js.map +1 -0
  398. package/dist/parsers/validators/postman-auth.validators.d.ts +10 -0
  399. package/dist/parsers/validators/postman-auth.validators.js +127 -0
  400. package/dist/parsers/validators/postman-auth.validators.js.map +1 -0
  401. package/dist/parsers/validators/postman-request.validators.d.ts +13 -0
  402. package/dist/parsers/validators/postman-request.validators.js +139 -0
  403. package/dist/parsers/validators/postman-request.validators.js.map +1 -0
  404. package/dist/parsers/validators/postman-response.validators.d.ts +13 -0
  405. package/dist/parsers/validators/postman-response.validators.js +150 -0
  406. package/dist/parsers/validators/postman-response.validators.js.map +1 -0
  407. package/dist/parsers/validators/postman-variable.validators.d.ts +14 -0
  408. package/dist/parsers/validators/postman-variable.validators.js +163 -0
  409. package/dist/parsers/validators/postman-variable.validators.js.map +1 -0
  410. package/dist/pricing/pricing.repo.js +1 -0
  411. package/dist/pricing/pricing.repo.js.map +1 -0
  412. package/dist/pricing/pricing.service.d.ts +24 -0
  413. package/dist/pricing/pricing.service.js +51 -0
  414. package/dist/pricing/pricing.service.js.map +1 -0
  415. package/dist/pricing/pricing.types.d.ts +76 -0
  416. package/dist/pricing/pricing.types.js +21 -0
  417. package/dist/pricing/pricing.types.js.map +1 -0
  418. package/dist/pricing/utils/string.utils.d.ts +1 -0
  419. package/dist/pricing/utils/string.utils.js +9 -0
  420. package/dist/pricing/utils/string.utils.js.map +1 -0
  421. package/dist/processor/services/processor.service.d.ts +117 -73
  422. package/dist/processor/services/processor.service.js +1557 -1276
  423. package/dist/processor/services/processor.service.js.map +1 -1
  424. package/dist/processor/services/request.service.d.ts +36 -0
  425. package/dist/processor/services/request.service.js +304 -0
  426. package/dist/processor/services/request.service.js.map +1 -0
  427. package/dist/processor/types/request.types.d.ts +14 -0
  428. package/dist/processor/types/request.types.js +3 -0
  429. package/dist/processor/types/request.types.js.map +1 -0
  430. package/dist/processor/utils/processor.utils.js +32 -20
  431. package/dist/processor/utils/processor.utils.js.map +1 -1
  432. package/dist/processor/utils/request.utils.d.ts +20 -0
  433. package/dist/processor/utils/request.utils.js +113 -0
  434. package/dist/processor/utils/request.utils.js.map +1 -0
  435. package/dist/products/services/products.service.d.ts +365 -75
  436. package/dist/products/services/products.service.js +2809 -414
  437. package/dist/products/services/products.service.js.map +1 -1
  438. package/dist/products/utils/string.utils.d.ts +1 -1
  439. package/dist/products/utils/string.utils.js +14 -2
  440. package/dist/products/utils/string.utils.js.map +1 -1
  441. package/dist/products/validators/index.d.ts +7 -1
  442. package/dist/products/validators/index.js +16 -1
  443. package/dist/products/validators/index.js.map +1 -1
  444. package/dist/products/validators/joi-validators/create.productAgent.validator.d.ts +3 -0
  445. package/dist/products/validators/joi-validators/create.productAgent.validator.js +266 -0
  446. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -0
  447. package/dist/products/validators/joi-validators/create.productDatabase.validator.js +5 -0
  448. package/dist/products/validators/joi-validators/create.productDatabase.validator.js.map +1 -1
  449. package/dist/products/validators/joi-validators/create.productEnv.validator.js +1 -0
  450. package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -1
  451. package/dist/products/validators/joi-validators/create.productGraph.validator.js +89 -0
  452. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -0
  453. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
  454. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
  455. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
  456. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +81 -25
  457. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  458. package/dist/products/validators/joi-validators/create.productModel.validator.d.ts +3 -0
  459. package/dist/products/validators/joi-validators/create.productModel.validator.js +132 -0
  460. package/dist/products/validators/joi-validators/create.productModel.validator.js.map +1 -0
  461. package/dist/products/validators/joi-validators/create.productNotification.validator.js +133 -45
  462. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  463. package/dist/products/validators/joi-validators/create.productStorage.validator.js +77 -18
  464. package/dist/products/validators/joi-validators/create.productStorage.validator.js.map +1 -1
  465. package/dist/products/validators/joi-validators/create.productVector.validator.d.ts +3 -0
  466. package/dist/products/validators/joi-validators/create.productVector.validator.js +135 -0
  467. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -0
  468. package/dist/products/validators/joi-validators/update.dataValue.validator.js +1 -0
  469. package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -1
  470. package/dist/products/validators/joi-validators/update.productDatabase.validator.js +5 -0
  471. package/dist/products/validators/joi-validators/update.productDatabase.validator.js.map +1 -1
  472. package/dist/products/validators/joi-validators/update.productEnv.validator.js +3 -0
  473. package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -1
  474. package/dist/products/validators/joi-validators/update.productGraph.validator.js +88 -0
  475. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -0
  476. package/dist/resilience/fallback.service.d.ts +140 -0
  477. package/dist/resilience/fallback.service.js +764 -0
  478. package/dist/resilience/fallback.service.js.map +1 -0
  479. package/dist/resilience/healthcheck.service.d.ts +159 -0
  480. package/dist/resilience/healthcheck.service.js +943 -0
  481. package/dist/resilience/healthcheck.service.js.map +1 -0
  482. package/dist/resilience/index.d.ts +104 -0
  483. package/dist/resilience/index.js +140 -0
  484. package/dist/resilience/index.js.map +1 -0
  485. package/dist/resilience/quota.service.d.ts +82 -0
  486. package/dist/resilience/quota.service.js +516 -0
  487. package/dist/resilience/quota.service.js.map +1 -0
  488. package/dist/resilience/resilience.service.d.ts +98 -0
  489. package/dist/resilience/resilience.service.js +560 -0
  490. package/dist/resilience/resilience.service.js.map +1 -0
  491. package/dist/resilience/types/index.d.ts +513 -0
  492. package/dist/resilience/types/index.js +29 -0
  493. package/dist/resilience/types/index.js.map +1 -0
  494. package/dist/secrets/index.d.ts +10 -0
  495. package/dist/secrets/index.js +33 -0
  496. package/dist/secrets/index.js.map +1 -0
  497. package/dist/secrets/secrets.resolver.d.ts +52 -0
  498. package/dist/secrets/secrets.resolver.js +233 -0
  499. package/dist/secrets/secrets.resolver.js.map +1 -0
  500. package/dist/secrets/secrets.service.d.ts +93 -0
  501. package/dist/secrets/secrets.service.js +258 -0
  502. package/dist/secrets/secrets.service.js.map +1 -0
  503. package/dist/secrets/secrets.types.d.ts +188 -0
  504. package/dist/secrets/secrets.types.js +87 -0
  505. package/dist/secrets/secrets.types.js.map +1 -0
  506. package/dist/sessions/index.d.ts +50 -0
  507. package/dist/sessions/index.js +93 -0
  508. package/dist/sessions/index.js.map +1 -0
  509. package/dist/sessions/sessions.helper.d.ts +68 -0
  510. package/dist/sessions/sessions.helper.js +116 -0
  511. package/dist/sessions/sessions.helper.js.map +1 -0
  512. package/dist/sessions/sessions.resolver.d.ts +157 -0
  513. package/dist/sessions/sessions.resolver.js +374 -0
  514. package/dist/sessions/sessions.resolver.js.map +1 -0
  515. package/dist/sessions/sessions.service.d.ts +178 -0
  516. package/dist/sessions/sessions.service.js +923 -0
  517. package/dist/sessions/sessions.service.js.map +1 -0
  518. package/dist/sessions/types/index.d.ts +298 -0
  519. package/dist/sessions/types/index.js +6 -0
  520. package/dist/sessions/types/index.js.map +1 -0
  521. package/dist/storage/index.d.ts +66 -0
  522. package/dist/storage/index.js +99 -0
  523. package/dist/storage/index.js.map +1 -0
  524. package/dist/storage/storage.service.d.ts +174 -0
  525. package/dist/storage/storage.service.js +757 -0
  526. package/dist/storage/storage.service.js.map +1 -0
  527. package/dist/storage/types/index.d.ts +267 -0
  528. package/dist/storage/types/index.js +6 -0
  529. package/dist/storage/types/index.js.map +1 -0
  530. package/dist/storage/utils/storage.util.d.ts +62 -0
  531. package/dist/storage/utils/storage.util.js +593 -0
  532. package/dist/storage/utils/storage.util.js.map +1 -0
  533. package/dist/test/index.d.ts +3 -0
  534. package/dist/test/index.js +11 -0
  535. package/dist/test/index.js.map +1 -0
  536. package/dist/test/test.appBuilder.d.ts +0 -1
  537. package/dist/test/test.appBuilder.js +0 -15
  538. package/dist/test/test.appBuilder.js.map +1 -1
  539. package/dist/test/test.broker.kafka.js +172 -0
  540. package/dist/test/test.broker.kafka.js.map +1 -0
  541. package/dist/test/test.broker.nats.js +193 -0
  542. package/dist/test/test.broker.nats.js.map +1 -0
  543. package/dist/test/test.broker.pubsub.js +171 -0
  544. package/dist/test/test.broker.pubsub.js.map +1 -0
  545. package/dist/test/test.broker.rabbitmq.js +164 -0
  546. package/dist/test/test.broker.rabbitmq.js.map +1 -0
  547. package/dist/test/test.broker.redis.js +168 -0
  548. package/dist/test/test.broker.redis.js.map +1 -0
  549. package/dist/test/test.broker.sqs.d.ts +1 -0
  550. package/dist/test/test.broker.sqs.js +158 -0
  551. package/dist/test/test.broker.sqs.js.map +1 -0
  552. package/dist/test/test.caches.d.ts +1 -0
  553. package/dist/test/test.caches.js +231 -0
  554. package/dist/test/test.caches.js.map +1 -0
  555. package/dist/test/test.database.d.ts +1 -0
  556. package/dist/test/test.database.dynamo.d.ts +1 -0
  557. package/dist/test/test.database.dynamo.js +265 -0
  558. package/dist/test/test.database.dynamo.js.map +1 -0
  559. package/dist/test/test.database.js +140 -0
  560. package/dist/test/test.database.js.map +1 -0
  561. package/dist/test/test.database.mongo.d.ts +1 -0
  562. package/dist/test/test.database.mongo.js +371 -0
  563. package/dist/test/test.database.mongo.js.map +1 -0
  564. package/dist/test/test.database.mysql.d.ts +1 -0
  565. package/dist/test/test.database.mysql.js +415 -0
  566. package/dist/test/test.database.mysql.js.map +1 -0
  567. package/dist/test/test.database.postgres.d.ts +1 -0
  568. package/dist/test/test.database.postgres.js +412 -0
  569. package/dist/test/test.database.postgres.js.map +1 -0
  570. package/dist/test/test.email.brevo.d.ts +1 -0
  571. package/dist/test/test.email.brevo.js +326 -0
  572. package/dist/test/test.email.brevo.js.map +1 -0
  573. package/dist/test/test.email.mailgun.d.ts +1 -0
  574. package/dist/test/test.email.mailgun.js +352 -0
  575. package/dist/test/test.email.mailgun.js.map +1 -0
  576. package/dist/test/test.email.postmark.d.ts +1 -0
  577. package/dist/test/test.email.postmark.js +316 -0
  578. package/dist/test/test.email.postmark.js.map +1 -0
  579. package/dist/test/test.email.sendgrid.d.ts +1 -0
  580. package/dist/test/test.email.sendgrid.js +365 -0
  581. package/dist/test/test.email.sendgrid.js.map +1 -0
  582. package/dist/test/test.email.smtp.d.ts +1 -0
  583. package/dist/test/test.email.smtp.js +323 -0
  584. package/dist/test/test.email.smtp.js.map +1 -0
  585. package/dist/test/test.graph.arangodb.d.ts +1 -0
  586. package/dist/test/test.graph.arangodb.js +358 -0
  587. package/dist/test/test.graph.arangodb.js.map +1 -0
  588. package/dist/test/test.graph.memgraph.d.ts +1 -0
  589. package/dist/test/test.graph.memgraph.js +320 -0
  590. package/dist/test/test.graph.memgraph.js.map +1 -0
  591. package/dist/test/test.graph.neo4j.d.ts +1 -0
  592. package/dist/test/test.graph.neo4j.js +218 -0
  593. package/dist/test/test.graph.neo4j.js.map +1 -0
  594. package/dist/test/test.graph.neptune.d.ts +1 -0
  595. package/dist/test/test.graph.neptune.js +331 -0
  596. package/dist/test/test.graph.neptune.js.map +1 -0
  597. package/dist/test/test.health.js +1 -0
  598. package/dist/test/test.health.js.map +1 -0
  599. package/dist/test/test.import.d.ts +0 -1
  600. package/dist/test/test.import.js +0 -1459
  601. package/dist/test/test.import.js.map +1 -1
  602. package/dist/test/test.import.openapi.d.ts +0 -1
  603. package/dist/test/test.import.openapi.js +0 -75
  604. package/dist/test/test.import.openapi.js.map +1 -1
  605. package/dist/test/test.imports.js +14 -55
  606. package/dist/test/test.imports.js.map +1 -1
  607. package/dist/test/test.logs.d.ts +0 -1
  608. package/dist/test/test.logs.js +0 -17
  609. package/dist/test/test.logs.js.map +1 -1
  610. package/dist/test/test.notifications.d.ts +1 -0
  611. package/dist/test/test.notifications.js +198 -0
  612. package/dist/test/test.notifications.js.map +1 -0
  613. package/dist/test/test.notifiers.js +1 -0
  614. package/dist/test/test.notifiers.js.map +1 -0
  615. package/dist/test/test.processor.d.ts +0 -1
  616. package/dist/test/test.processor.js +0 -122
  617. package/dist/test/test.processor.js.map +1 -1
  618. package/dist/test/test.productBuilder.d.ts +0 -1
  619. package/dist/test/test.productBuilder.js +0 -660
  620. package/dist/test/test.productBuilder.js.map +1 -1
  621. package/dist/test/test.products.js +1 -0
  622. package/dist/test/test.products.js.map +1 -0
  623. package/dist/test/test.push.expo.d.ts +1 -0
  624. package/dist/test/test.push.expo.js +442 -0
  625. package/dist/test/test.push.expo.js.map +1 -0
  626. package/dist/test/test.push.firebase.d.ts +1 -0
  627. package/dist/test/test.push.firebase.js +409 -0
  628. package/dist/test/test.push.firebase.js.map +1 -0
  629. package/dist/test/test.session.d.ts +1 -0
  630. package/dist/test/test.session.js +299 -0
  631. package/dist/test/test.session.js.map +1 -0
  632. package/dist/test/test.sms.nexmo.d.ts +1 -0
  633. package/dist/test/test.sms.nexmo.js +278 -0
  634. package/dist/test/test.sms.nexmo.js.map +1 -0
  635. package/dist/test/test.sms.twilio.d.ts +1 -0
  636. package/dist/test/test.sms.twilio.js +275 -0
  637. package/dist/test/test.sms.twilio.js.map +1 -0
  638. package/dist/test/test.storage.d.ts +1 -0
  639. package/dist/test/test.storage.js +202 -0
  640. package/dist/test/test.storage.js.map +1 -0
  641. package/dist/test/test.triggers.d.ts +1 -0
  642. package/dist/test/test.triggers.js +314 -0
  643. package/dist/test/test.triggers.js.map +1 -0
  644. package/dist/test/test.vector.pinecone.d.ts +1 -0
  645. package/dist/test/test.vector.pinecone.js +238 -0
  646. package/dist/test/test.vector.pinecone.js.map +1 -0
  647. package/dist/test/test.vector.qdrant.d.ts +1 -0
  648. package/dist/test/test.vector.qdrant.js +307 -0
  649. package/dist/test/test.vector.qdrant.js.map +1 -0
  650. package/dist/test/test.vector.weaviate.d.ts +1 -0
  651. package/dist/test/test.vector.weaviate.js +325 -0
  652. package/dist/test/test.vector.weaviate.js.map +1 -0
  653. package/dist/types/appBuilder.types.d.ts +9 -2
  654. package/dist/types/enums.d.ts +11 -1
  655. package/dist/types/enums.js +10 -0
  656. package/dist/types/enums.js.map +1 -1
  657. package/dist/types/index.types.d.ts +4 -7
  658. package/dist/types/index.types.js +0 -1
  659. package/dist/types/index.types.js.map +1 -1
  660. package/dist/types/inputs.types.js +1 -1
  661. package/dist/types/inputs.types.js.map +1 -1
  662. package/dist/types/pricing.types.d.ts +4 -0
  663. package/dist/types/pricing.types.js +3 -0
  664. package/dist/types/pricing.types.js.map +1 -0
  665. package/dist/types/processor.types.d.ts +214 -33
  666. package/dist/types/processor.types.js +9 -1
  667. package/dist/types/processor.types.js.map +1 -1
  668. package/dist/types/productsBuilder.types.d.ts +978 -23
  669. package/dist/types/productsBuilder.types.js +210 -3
  670. package/dist/types/productsBuilder.types.js.map +1 -1
  671. package/dist/types/request-tracker.interface.js +1 -0
  672. package/dist/types/request-tracker.interface.js.map +1 -0
  673. package/dist/types/requests.types.d.ts +2 -0
  674. package/dist/utils/constants.d.ts +1 -0
  675. package/dist/utils/constants.js +5 -0
  676. package/dist/utils/constants.js.map +1 -0
  677. package/dist/utils/index.d.ts +0 -2
  678. package/dist/utils/index.js +24 -52
  679. package/dist/utils/index.js.map +1 -1
  680. package/dist/vector/actions/action-manager.d.ts +140 -0
  681. package/dist/vector/actions/action-manager.js +356 -0
  682. package/dist/vector/actions/action-manager.js.map +1 -0
  683. package/dist/vector/adapters/base.adapter.d.ts +169 -0
  684. package/dist/vector/adapters/base.adapter.js +218 -0
  685. package/dist/vector/adapters/base.adapter.js.map +1 -0
  686. package/dist/vector/adapters/index.d.ts +10 -0
  687. package/dist/vector/adapters/index.js +19 -0
  688. package/dist/vector/adapters/index.js.map +1 -0
  689. package/dist/vector/adapters/memory.adapter.d.ts +85 -0
  690. package/dist/vector/adapters/memory.adapter.js +505 -0
  691. package/dist/vector/adapters/memory.adapter.js.map +1 -0
  692. package/dist/vector/adapters/pinecone.adapter.d.ts +52 -0
  693. package/dist/vector/adapters/pinecone.adapter.js +433 -0
  694. package/dist/vector/adapters/pinecone.adapter.js.map +1 -0
  695. package/dist/vector/adapters/qdrant.adapter.d.ts +56 -0
  696. package/dist/vector/adapters/qdrant.adapter.js +442 -0
  697. package/dist/vector/adapters/qdrant.adapter.js.map +1 -0
  698. package/dist/vector/adapters/weaviate.adapter.d.ts +68 -0
  699. package/dist/vector/adapters/weaviate.adapter.js +645 -0
  700. package/dist/vector/adapters/weaviate.adapter.js.map +1 -0
  701. package/dist/vector/index.d.ts +36 -0
  702. package/dist/vector/index.js +70 -0
  703. package/dist/vector/index.js.map +1 -0
  704. package/dist/vector/types/action.interface.d.ts +195 -0
  705. package/dist/vector/types/action.interface.js +100 -0
  706. package/dist/vector/types/action.interface.js.map +1 -0
  707. package/dist/vector/types/connection.interface.d.ts +151 -0
  708. package/dist/vector/types/connection.interface.js +8 -0
  709. package/dist/vector/types/connection.interface.js.map +1 -0
  710. package/dist/vector/types/embedding.interface.d.ts +144 -0
  711. package/dist/vector/types/embedding.interface.js +8 -0
  712. package/dist/vector/types/embedding.interface.js.map +1 -0
  713. package/dist/vector/types/enums.d.ts +104 -0
  714. package/dist/vector/types/enums.js +113 -0
  715. package/dist/vector/types/enums.js.map +1 -0
  716. package/dist/vector/types/index.d.ts +11 -0
  717. package/dist/vector/types/index.js +23 -0
  718. package/dist/vector/types/index.js.map +1 -0
  719. package/dist/vector/types/vector.interface.d.ts +315 -0
  720. package/dist/vector/types/vector.interface.js +8 -0
  721. package/dist/vector/types/vector.interface.js.map +1 -0
  722. package/dist/vector/utils/index.d.ts +6 -0
  723. package/dist/vector/utils/index.js +11 -0
  724. package/dist/vector/utils/index.js.map +1 -0
  725. package/dist/vector/utils/vector-error.d.ts +69 -0
  726. package/dist/vector/utils/vector-error.js +116 -0
  727. package/dist/vector/utils/vector-error.js.map +1 -0
  728. package/dist/vector/vector-database.service.d.ts +474 -0
  729. package/dist/vector/vector-database.service.js +850 -0
  730. package/dist/vector/vector-database.service.js.map +1 -0
  731. package/dist/vector/vector.service.d.ts +283 -0
  732. package/dist/vector/vector.service.js +544 -0
  733. package/dist/vector/vector.service.js.map +1 -0
  734. package/dist/warehouse/executor/index.d.ts +5 -0
  735. package/dist/warehouse/executor/index.js +12 -0
  736. package/dist/warehouse/executor/index.js.map +1 -0
  737. package/dist/warehouse/executor/joins/index.d.ts +5 -0
  738. package/dist/warehouse/executor/joins/index.js +11 -0
  739. package/dist/warehouse/executor/joins/index.js.map +1 -0
  740. package/dist/warehouse/executor/joins/join-executor.d.ts +101 -0
  741. package/dist/warehouse/executor/joins/join-executor.js +493 -0
  742. package/dist/warehouse/executor/joins/join-executor.js.map +1 -0
  743. package/dist/warehouse/executor/joins/semantic-join.d.ts +64 -0
  744. package/dist/warehouse/executor/joins/semantic-join.js +241 -0
  745. package/dist/warehouse/executor/joins/semantic-join.js.map +1 -0
  746. package/dist/warehouse/executor/single-source-executor.d.ts +155 -0
  747. package/dist/warehouse/executor/single-source-executor.js +573 -0
  748. package/dist/warehouse/executor/single-source-executor.js.map +1 -0
  749. package/dist/warehouse/index.d.ts +79 -0
  750. package/dist/warehouse/index.js +111 -0
  751. package/dist/warehouse/index.js.map +1 -0
  752. package/dist/warehouse/parser/index.d.ts +4 -0
  753. package/dist/warehouse/parser/index.js +10 -0
  754. package/dist/warehouse/parser/index.js.map +1 -0
  755. package/dist/warehouse/parser/query-parser.d.ts +181 -0
  756. package/dist/warehouse/parser/query-parser.js +415 -0
  757. package/dist/warehouse/parser/query-parser.js.map +1 -0
  758. package/dist/warehouse/registry/data-source-registry.d.ts +207 -0
  759. package/dist/warehouse/registry/data-source-registry.js +396 -0
  760. package/dist/warehouse/registry/data-source-registry.js.map +1 -0
  761. package/dist/warehouse/registry/index.d.ts +4 -0
  762. package/dist/warehouse/registry/index.js +9 -0
  763. package/dist/warehouse/registry/index.js.map +1 -0
  764. package/dist/warehouse/transactions/index.d.ts +4 -0
  765. package/dist/warehouse/transactions/index.js +9 -0
  766. package/dist/warehouse/transactions/index.js.map +1 -0
  767. package/dist/warehouse/transactions/saga-orchestrator.d.ts +92 -0
  768. package/dist/warehouse/transactions/saga-orchestrator.js +383 -0
  769. package/dist/warehouse/transactions/saga-orchestrator.js.map +1 -0
  770. package/dist/warehouse/types/index.d.ts +9 -0
  771. package/dist/warehouse/types/index.js +33 -0
  772. package/dist/warehouse/types/index.js.map +1 -0
  773. package/dist/warehouse/types/join.interface.d.ts +225 -0
  774. package/dist/warehouse/types/join.interface.js +87 -0
  775. package/dist/warehouse/types/join.interface.js.map +1 -0
  776. package/dist/warehouse/types/query.interface.d.ts +232 -0
  777. package/dist/warehouse/types/query.interface.js +9 -0
  778. package/dist/warehouse/types/query.interface.js.map +1 -0
  779. package/dist/warehouse/types/transaction.interface.d.ts +236 -0
  780. package/dist/warehouse/types/transaction.interface.js +74 -0
  781. package/dist/warehouse/types/transaction.interface.js.map +1 -0
  782. package/dist/warehouse/types/where.interface.d.ts +208 -0
  783. package/dist/warehouse/types/where.interface.js +89 -0
  784. package/dist/warehouse/types/where.interface.js.map +1 -0
  785. package/dist/warehouse/warehouse.service.d.ts +200 -0
  786. package/dist/warehouse/warehouse.service.js +470 -0
  787. package/dist/warehouse/warehouse.service.js.map +1 -0
  788. package/dist/workflows/index.d.ts +30 -0
  789. package/dist/workflows/index.js +64 -0
  790. package/dist/workflows/index.js.map +1 -0
  791. package/dist/workflows/types/index.d.ts +6 -0
  792. package/dist/workflows/types/index.js +23 -0
  793. package/dist/workflows/types/index.js.map +1 -0
  794. package/dist/workflows/types/workflows.types.d.ts +1037 -0
  795. package/dist/workflows/types/workflows.types.js +13 -0
  796. package/dist/workflows/types/workflows.types.js.map +1 -0
  797. package/dist/workflows/workflow-builder.d.ts +70 -0
  798. package/dist/workflows/workflow-builder.js +338 -0
  799. package/dist/workflows/workflow-builder.js.map +1 -0
  800. package/dist/workflows/workflow-executor.d.ts +208 -0
  801. package/dist/workflows/workflow-executor.js +1194 -0
  802. package/dist/workflows/workflow-executor.js.map +1 -0
  803. package/dist/workflows/workflows.service.d.ts +410 -0
  804. package/dist/workflows/workflows.service.js +1724 -0
  805. package/dist/workflows/workflows.service.js.map +1 -0
  806. package/package.json +65 -12
  807. package/dist/actions/actions.repo.js +0 -13
  808. package/dist/actions/actions.repo.js.map +0 -1
  809. package/dist/actions/actions.service.js +0 -24
  810. package/dist/actions/actions.service.js.map +0 -1
  811. package/dist/actions/utils/actions.util.read.js +0 -427
  812. package/dist/actions/utils/actions.util.read.js.map +0 -1
  813. package/dist/api/services/integrationsApi.service.d.ts +0 -18
  814. package/dist/api/services/integrationsApi.service.js +0 -80
  815. package/dist/api/services/integrationsApi.service.js.map +0 -1
  816. package/dist/appBuilder/services/app.service.d.ts +0 -111
  817. package/dist/appBuilder/services/app.service.js +0 -737
  818. package/dist/appBuilder/services/app.service.js.map +0 -1
  819. package/dist/appBuilder/services/appBuilder.service.d.ts +0 -111
  820. package/dist/appBuilder/services/appBuilder.service.js +0 -662
  821. package/dist/appBuilder/services/appBuilder.service.js.map +0 -1
  822. package/dist/appBuilder/utils/objects.utils.d.ts +0 -3
  823. package/dist/appBuilder/utils/objects.utils.js +0 -9
  824. package/dist/appBuilder/utils/objects.utils.js.map +0 -1
  825. package/dist/appBuilder/utils/string.utils.d.ts +0 -2
  826. package/dist/appBuilder/utils/string.utils.js +0 -57
  827. package/dist/appBuilder/utils/string.utils.js.map +0 -1
  828. package/dist/appBuilder/validators/index.d.ts +0 -19
  829. package/dist/appBuilder/validators/index.js +0 -40
  830. package/dist/appBuilder/validators/index.js.map +0 -1
  831. package/dist/appBuilder/validators/joi-validators/create.app.validator.js +0 -10
  832. package/dist/appBuilder/validators/joi-validators/create.app.validator.js.map +0 -1
  833. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.d.ts +0 -4
  834. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js +0 -20
  835. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js.map +0 -1
  836. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.d.ts +0 -7
  837. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js +0 -44
  838. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js.map +0 -1
  839. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.d.ts +0 -3
  840. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js +0 -31
  841. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js.map +0 -1
  842. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.d.ts +0 -4
  843. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js +0 -11
  844. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js.map +0 -1
  845. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.d.ts +0 -4
  846. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js +0 -12
  847. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js.map +0 -1
  848. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.d.ts +0 -4
  849. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js +0 -17
  850. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js.map +0 -1
  851. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  852. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js +0 -30
  853. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  854. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.d.ts +0 -4
  855. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js +0 -14
  856. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js.map +0 -1
  857. package/dist/appBuilder/validators/joi-validators/sample.validator.d.ts +0 -5
  858. package/dist/appBuilder/validators/joi-validators/sample.validator.js +0 -26
  859. package/dist/appBuilder/validators/joi-validators/sample.validator.js.map +0 -1
  860. package/dist/appBuilder/validators/joi-validators/update.app.validator.d.ts +0 -4
  861. package/dist/appBuilder/validators/joi-validators/update.app.validator.js +0 -34
  862. package/dist/appBuilder/validators/joi-validators/update.app.validator.js.map +0 -1
  863. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.d.ts +0 -4
  864. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js +0 -23
  865. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js.map +0 -1
  866. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.d.ts +0 -3
  867. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js +0 -21
  868. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js.map +0 -1
  869. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.d.ts +0 -4
  870. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js +0 -19
  871. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js.map +0 -1
  872. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.d.ts +0 -4
  873. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js +0 -12
  874. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js.map +0 -1
  875. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.d.ts +0 -4
  876. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js +0 -17
  877. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js.map +0 -1
  878. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  879. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js +0 -16
  880. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  881. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.d.ts +0 -4
  882. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js +0 -14
  883. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js.map +0 -1
  884. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js +0 -27
  885. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js.map +0 -1
  886. package/dist/apps/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  887. package/dist/apps/validators/joi-validators/create.appEvent.validator.js +0 -30
  888. package/dist/apps/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  889. package/dist/apps/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  890. package/dist/apps/validators/joi-validators/update.appEvent.validator.js +0 -16
  891. package/dist/apps/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  892. package/dist/clients/integrations.client.d.ts +0 -2
  893. package/dist/clients/integrations.client.js +0 -26
  894. package/dist/clients/integrations.client.js.map +0 -1
  895. package/dist/integrationsBuilder/services/integration.service.d.ts +0 -138
  896. package/dist/integrationsBuilder/services/integration.service.js +0 -1148
  897. package/dist/integrationsBuilder/services/integration.service.js.map +0 -1
  898. package/dist/integrationsBuilder/services/integrationBuilder.service.d.ts +0 -130
  899. package/dist/integrationsBuilder/services/integrationBuilder.service.js +0 -1017
  900. package/dist/integrationsBuilder/services/integrationBuilder.service.js.map +0 -1
  901. package/dist/integrationsBuilder/utils/objects.utils.d.ts +0 -2
  902. package/dist/integrationsBuilder/utils/objects.utils.js +0 -48
  903. package/dist/integrationsBuilder/utils/objects.utils.js.map +0 -1
  904. package/dist/integrationsBuilder/utils/string.utils.d.ts +0 -1
  905. package/dist/integrationsBuilder/utils/string.utils.js +0 -9
  906. package/dist/integrationsBuilder/utils/string.utils.js.map +0 -1
  907. package/dist/integrationsBuilder/validators/index.d.ts +0 -18
  908. package/dist/integrationsBuilder/validators/index.js +0 -38
  909. package/dist/integrationsBuilder/validators/index.js.map +0 -1
  910. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.d.ts +0 -3
  911. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js +0 -10
  912. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js.map +0 -1
  913. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.d.ts +0 -4
  914. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js +0 -26
  915. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js.map +0 -1
  916. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.d.ts +0 -3
  917. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js +0 -8
  918. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js.map +0 -1
  919. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.d.ts +0 -3
  920. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js +0 -8
  921. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js.map +0 -1
  922. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.d.ts +0 -3
  923. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js +0 -10
  924. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js.map +0 -1
  925. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.d.ts +0 -3
  926. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js +0 -60
  927. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js.map +0 -1
  928. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.d.ts +0 -3
  929. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js +0 -8
  930. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js.map +0 -1
  931. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.d.ts +0 -3
  932. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js +0 -8
  933. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js.map +0 -1
  934. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.d.ts +0 -3
  935. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js +0 -8
  936. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js.map +0 -1
  937. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.d.ts +0 -3
  938. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js +0 -9
  939. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js.map +0 -1
  940. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.d.ts +0 -3
  941. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js +0 -8
  942. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js.map +0 -1
  943. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.d.ts +0 -3
  944. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js +0 -8
  945. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js.map +0 -1
  946. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.d.ts +0 -3
  947. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js +0 -8
  948. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js.map +0 -1
  949. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.d.ts +0 -3
  950. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js +0 -8
  951. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js.map +0 -1
  952. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.d.ts +0 -3
  953. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js +0 -8
  954. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js.map +0 -1
  955. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.d.ts +0 -3
  956. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js +0 -8
  957. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js.map +0 -1
  958. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.d.ts +0 -3
  959. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js +0 -8
  960. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js.map +0 -1
  961. package/dist/postman.d.ts +0 -1
  962. package/dist/postman.js +0 -21674
  963. package/dist/postman.js.map +0 -1
  964. package/dist/processor/utils/mongo.util.js +0 -152
  965. package/dist/processor/utils/mongo.util.js.map +0 -1
  966. package/dist/processor/utils/postgres.util.d.ts +0 -14
  967. package/dist/processor/utils/postgres.util.js +0 -83
  968. package/dist/processor/utils/postgres.util.js.map +0 -1
  969. package/dist/products/validators/joi-validators/create.product.validator.d.ts +0 -3
  970. package/dist/products/validators/joi-validators/create.product.validator.js +0 -10
  971. package/dist/products/validators/joi-validators/create.product.validator.js.map +0 -1
  972. package/dist/test.appBuilder.js +0 -14
  973. package/dist/test.appBuilder.js.map +0 -1
  974. package/dist/test.import.js +0 -24
  975. package/dist/test.import.js.map +0 -1
  976. package/dist/test.imports.js +0 -28
  977. package/dist/test.imports.js.map +0 -1
  978. package/dist/test.integrationBuilder.js +0 -276
  979. package/dist/test.integrationBuilder.js.map +0 -1
  980. package/dist/test.processor.js +0 -23
  981. package/dist/test.processor.js.map +0 -1
  982. package/dist/test.utils.js +0 -25
  983. package/dist/test.utils.js.map +0 -1
  984. package/dist/types/integrationsBuilder.types.d.ts +0 -276
  985. package/dist/types/integrationsBuilder.types.js +0 -51
  986. package/dist/types/integrationsBuilder.types.js.map +0 -1
  987. /package/dist/{actions/actions.repo.d.ts → pricing/pricing.repo.d.ts} +0 -0
  988. /package/dist/{appBuilder/validators/joi-validators/create.app.validator.d.ts → products/validators/joi-validators/create.productGraph.validator.d.ts} +0 -0
  989. /package/dist/{appBuilder/validators/joi-validators/update.validation.entityData.validator.d.ts → products/validators/joi-validators/update.productGraph.validator.d.ts} +0 -0
  990. /package/dist/{test.appBuilder.d.ts → test/test.broker.kafka.d.ts} +0 -0
  991. /package/dist/{test.imports.d.ts → test/test.broker.nats.d.ts} +0 -0
  992. /package/dist/{test.integrationBuilder.d.ts → test/test.broker.pubsub.d.ts} +0 -0
  993. /package/dist/{test.processor.d.ts → test/test.broker.rabbitmq.d.ts} +0 -0
  994. /package/dist/{test.utils.d.ts → test/test.broker.redis.d.ts} +0 -0
  995. /package/dist/{actions/actions.service.d.ts → test/test.health.d.ts} +0 -0
  996. /package/dist/{actions/utils/actions.util.read.d.ts → test/test.notifiers.d.ts} +0 -0
  997. /package/dist/{processor/utils/mongo.util.d.ts → test/test.products.d.ts} +0 -0
  998. /package/dist/{test.import.d.ts → types/request-tracker.interface.d.ts} +0 -0
@@ -0,0 +1,1452 @@
1
+ "use strict";
2
+ /**
3
+ * Memgraph Graph Database Adapter
4
+ *
5
+ * Implements the BaseGraphAdapter for Memgraph.
6
+ * Memgraph is a high-performance, in-memory graph database
7
+ * that is fully compatible with Neo4j's Bolt protocol and Cypher query language.
8
+ *
9
+ * Key features:
10
+ * - Cypher query language compatibility
11
+ * - Bolt protocol support
12
+ * - In-memory performance
13
+ * - Triggers and streams support
14
+ * - MAGE graph algorithms library
15
+ */
16
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ var desc = Object.getOwnPropertyDescriptor(m, k);
19
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
20
+ desc = { enumerable: true, get: function() { return m[k]; } };
21
+ }
22
+ Object.defineProperty(o, k2, desc);
23
+ }) : (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ o[k2] = m[k];
26
+ }));
27
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
28
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29
+ }) : function(o, v) {
30
+ o["default"] = v;
31
+ });
32
+ var __importStar = (this && this.__importStar) || (function () {
33
+ var ownKeys = function(o) {
34
+ ownKeys = Object.getOwnPropertyNames || function (o) {
35
+ var ar = [];
36
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
37
+ return ar;
38
+ };
39
+ return ownKeys(o);
40
+ };
41
+ return function (mod) {
42
+ if (mod && mod.__esModule) return mod;
43
+ var result = {};
44
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
45
+ __setModuleDefault(result, mod);
46
+ return result;
47
+ };
48
+ })();
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.MemgraphAdapter = void 0;
51
+ const base_adapter_1 = require("./base.adapter");
52
+ const enums_1 = require("../types/enums");
53
+ const graph_error_1 = require("../utils/graph-error");
54
+ /**
55
+ * Memgraph adapter - Cypher-compatible graph database
56
+ * Uses the neo4j-driver package as Memgraph supports the Bolt protocol
57
+ */
58
+ class MemgraphAdapter extends base_adapter_1.BaseGraphAdapter {
59
+ constructor() {
60
+ super(...arguments);
61
+ this.graphType = enums_1.GraphType.MEMGRAPH;
62
+ this.supportedFeatures = new Set([
63
+ enums_1.GraphFeature.TRANSACTIONS,
64
+ enums_1.GraphFeature.SCHEMA_INDEXES,
65
+ enums_1.GraphFeature.TRIGGERS,
66
+ enums_1.GraphFeature.CHANGE_STREAMS,
67
+ enums_1.GraphFeature.GRAPH_ALGORITHMS,
68
+ ]);
69
+ this.driver = null;
70
+ this.session = null;
71
+ }
72
+ // ==================== CONNECTION MANAGEMENT ====================
73
+ async connect(options) {
74
+ var _a, _b;
75
+ try {
76
+ // Store connection options for reconnection
77
+ this.connectionOptions = options;
78
+ // Memgraph uses the Bolt protocol, compatible with neo4j-driver
79
+ const neo4j = await Promise.resolve().then(() => __importStar(require('neo4j-driver')));
80
+ const auth = options.auth
81
+ ? neo4j.auth.basic(options.auth.username, options.auth.password)
82
+ : neo4j.auth.basic('', ''); // Memgraph can run without auth
83
+ // Check if encryption is already specified in the URL scheme
84
+ // bolt+s:// and bolt+ssc:// indicate encryption is configured via URL
85
+ const urlHasEncryption = options.connectionUrl.startsWith('bolt+s://') ||
86
+ options.connectionUrl.startsWith('bolt+ssc://') ||
87
+ options.connectionUrl.startsWith('neo4j+s://') ||
88
+ options.connectionUrl.startsWith('neo4j+ssc://');
89
+ // Build driver config - only set encrypted if URL doesn't already specify it
90
+ const driverConfig = Object.assign({}, options.options);
91
+ if (!urlHasEncryption) {
92
+ // Only set encrypted option when URL doesn't already configure it
93
+ driverConfig.encrypted = (_b = (_a = options.options) === null || _a === void 0 ? void 0 : _a.encrypted) !== null && _b !== void 0 ? _b : false;
94
+ }
95
+ else {
96
+ // Remove any conflicting encryption settings when URL specifies encryption
97
+ delete driverConfig.encrypted;
98
+ delete driverConfig.trust;
99
+ }
100
+ this.driver = neo4j.driver(options.connectionUrl, auth, driverConfig);
101
+ // Verify connection
102
+ await this.driver.verifyConnectivity();
103
+ this.connected = true;
104
+ this.connectionUrl = options.connectionUrl;
105
+ return {
106
+ connected: true,
107
+ type: enums_1.GraphType.MEMGRAPH,
108
+ latency: 0,
109
+ };
110
+ }
111
+ catch (error) {
112
+ this.connected = false;
113
+ throw graph_error_1.GraphError.connectionError(`Failed to connect to Memgraph: ${error.message}`, error);
114
+ }
115
+ }
116
+ async testConnection(options) {
117
+ try {
118
+ const neo4j = await Promise.resolve().then(() => __importStar(require('neo4j-driver')));
119
+ const startTime = Date.now();
120
+ const auth = options.auth
121
+ ? neo4j.auth.basic(options.auth.username, options.auth.password)
122
+ : neo4j.auth.basic('', '');
123
+ // Check if encryption is already specified in the URL scheme
124
+ const urlHasEncryption = options.connectionUrl.startsWith('bolt+s://') ||
125
+ options.connectionUrl.startsWith('bolt+ssc://') ||
126
+ options.connectionUrl.startsWith('neo4j+s://') ||
127
+ options.connectionUrl.startsWith('neo4j+ssc://');
128
+ // Build driver config - avoid conflicting encryption settings
129
+ const driverConfig = Object.assign(Object.assign({}, options.options), { connectionTimeout: 5000 });
130
+ if (urlHasEncryption) {
131
+ delete driverConfig.encrypted;
132
+ delete driverConfig.trust;
133
+ }
134
+ const testDriver = neo4j.driver(options.connectionUrl, auth, driverConfig);
135
+ await testDriver.verifyConnectivity();
136
+ // Get Memgraph version
137
+ const session = testDriver.session();
138
+ const result = await session.run('CALL mg.info() YIELD key, value WHERE key = "version" RETURN value');
139
+ const version = result.records.length > 0 ? result.records[0].get('value') : 'unknown';
140
+ await session.close();
141
+ await testDriver.close();
142
+ return {
143
+ connected: true,
144
+ type: enums_1.GraphType.MEMGRAPH,
145
+ version,
146
+ latency: Date.now() - startTime,
147
+ };
148
+ }
149
+ catch (error) {
150
+ return {
151
+ connected: false,
152
+ type: enums_1.GraphType.MEMGRAPH,
153
+ error: error.message,
154
+ };
155
+ }
156
+ }
157
+ async disconnect() {
158
+ if (this.session) {
159
+ await this.session.close();
160
+ this.session = null;
161
+ }
162
+ if (this.driver) {
163
+ await this.driver.close();
164
+ this.driver = null;
165
+ }
166
+ this.connected = false;
167
+ }
168
+ getSession(transaction) {
169
+ if (transaction === null || transaction === void 0 ? void 0 : transaction.client) {
170
+ return transaction.client;
171
+ }
172
+ if (!this.session) {
173
+ this.ensureConnected();
174
+ this.session = this.driver.session();
175
+ }
176
+ return this.session;
177
+ }
178
+ // ==================== NODE OPERATIONS ====================
179
+ async createNode(options, transaction) {
180
+ this.ensureConnected();
181
+ return this.executeWithRetry(async () => {
182
+ const labels = options.labels.join(':');
183
+ const query = `CREATE (n:${labels} $props) RETURN n, id(n) as nodeId`;
184
+ const session = this.getSession(transaction);
185
+ const result = await session.run(query, { props: options.properties });
186
+ const record = result.records[0];
187
+ const node = record.get('n');
188
+ const nodeId = record.get('nodeId');
189
+ return {
190
+ node: this.mapMemgraphNode(node, nodeId),
191
+ created: true,
192
+ };
193
+ });
194
+ }
195
+ async findNodes(options, transaction) {
196
+ this.ensureConnected();
197
+ return this.executeWithRetry(async () => {
198
+ var _a, _b;
199
+ const labels = ((_a = options.labels) === null || _a === void 0 ? void 0 : _a.join(':')) || '';
200
+ const labelClause = labels ? `:${labels}` : '';
201
+ let query = `MATCH (n${labelClause})`;
202
+ const params = {};
203
+ if (options.where) {
204
+ const { clause, params: whereParams } = this.buildWhereClause(options.where, 'n');
205
+ query += ` WHERE ${clause}`;
206
+ Object.assign(params, whereParams);
207
+ }
208
+ query += ' RETURN n, id(n) as nodeId';
209
+ if ((_b = options.orderBy) === null || _b === void 0 ? void 0 : _b.length) {
210
+ const orderClauses = options.orderBy.map(o => `n.${o.property} ${o.direction.toUpperCase()}`);
211
+ query += ` ORDER BY ${orderClauses.join(', ')}`;
212
+ }
213
+ if (options.skip) {
214
+ query += ` SKIP ${options.skip}`;
215
+ }
216
+ if (options.limit) {
217
+ query += ` LIMIT ${options.limit}`;
218
+ }
219
+ const session = this.getSession(transaction);
220
+ const result = await session.run(query, params);
221
+ const nodes = result.records.map((record) => this.mapMemgraphNode(record.get('n'), record.get('nodeId')));
222
+ return {
223
+ nodes,
224
+ count: nodes.length,
225
+ };
226
+ });
227
+ }
228
+ async findNodeById(id, transaction) {
229
+ this.ensureConnected();
230
+ return this.executeWithRetry(async () => {
231
+ // Memgraph uses internal id() function
232
+ const query = `MATCH (n) WHERE id(n) = $id RETURN n, id(n) as nodeId`;
233
+ const session = this.getSession(transaction);
234
+ const result = await session.run(query, {
235
+ id: typeof id === 'number' ? id : parseInt(id, 10),
236
+ });
237
+ if (result.records.length === 0) {
238
+ return null;
239
+ }
240
+ return this.mapMemgraphNode(result.records[0].get('n'), result.records[0].get('nodeId'));
241
+ });
242
+ }
243
+ async updateNode(options, transaction) {
244
+ this.ensureConnected();
245
+ return this.executeWithRetry(async () => {
246
+ var _a;
247
+ let query;
248
+ const params = { props: options.properties };
249
+ if (options.id) {
250
+ query = `MATCH (n) WHERE id(n) = $id SET n += $props RETURN n, id(n) as nodeId`;
251
+ params.id = typeof options.id === 'number' ? options.id : parseInt(options.id, 10);
252
+ }
253
+ else {
254
+ const labels = ((_a = options.labels) === null || _a === void 0 ? void 0 : _a.join(':')) || '';
255
+ const labelClause = labels ? `:${labels}` : '';
256
+ query = `MATCH (n${labelClause})`;
257
+ if (options.where) {
258
+ const { clause, params: whereParams } = this.buildWhereClause(options.where, 'n');
259
+ query += ` WHERE ${clause}`;
260
+ Object.assign(params, whereParams);
261
+ }
262
+ query += ' SET n += $props RETURN n, id(n) as nodeId';
263
+ }
264
+ const session = this.getSession(transaction);
265
+ const result = await session.run(query, params);
266
+ const nodes = result.records.map((record) => this.mapMemgraphNode(record.get('n'), record.get('nodeId')));
267
+ return {
268
+ node: nodes.length === 1 ? nodes[0] : undefined,
269
+ nodes: nodes.length > 1 ? nodes : undefined,
270
+ updatedCount: nodes.length,
271
+ updated: nodes.length > 0,
272
+ };
273
+ });
274
+ }
275
+ async deleteNode(options, transaction) {
276
+ this.ensureConnected();
277
+ return this.executeWithRetry(async () => {
278
+ var _a;
279
+ let query;
280
+ const params = {};
281
+ const detach = options.detach ? 'DETACH ' : '';
282
+ if (options.id) {
283
+ query = `MATCH (n) WHERE id(n) = $id ${detach}DELETE n`;
284
+ params.id = typeof options.id === 'number' ? options.id : parseInt(options.id, 10);
285
+ }
286
+ else {
287
+ const labels = ((_a = options.labels) === null || _a === void 0 ? void 0 : _a.join(':')) || '';
288
+ const labelClause = labels ? `:${labels}` : '';
289
+ query = `MATCH (n${labelClause})`;
290
+ if (options.where) {
291
+ const { clause, params: whereParams } = this.buildWhereClause(options.where, 'n');
292
+ query += ` WHERE ${clause}`;
293
+ Object.assign(params, whereParams);
294
+ }
295
+ query += ` ${detach}DELETE n`;
296
+ }
297
+ const session = this.getSession(transaction);
298
+ await session.run(query, params);
299
+ return {
300
+ deleted: true,
301
+ deletedCount: 1,
302
+ };
303
+ });
304
+ }
305
+ async mergeNode(options, transaction) {
306
+ this.ensureConnected();
307
+ return this.executeWithRetry(async () => {
308
+ const labels = options.labels.join(':');
309
+ const matchProps = Object.entries(options.matchProperties)
310
+ .map(([key]) => `${key}: $match_${key}`)
311
+ .join(', ');
312
+ let query = `MERGE (n:${labels} {${matchProps}})`;
313
+ const params = {};
314
+ // Add match properties to params
315
+ Object.entries(options.matchProperties).forEach(([key, value]) => {
316
+ params[`match_${key}`] = value;
317
+ });
318
+ if (options.onCreate) {
319
+ query += ' ON CREATE SET n += $onCreateProps';
320
+ params.onCreateProps = options.onCreate;
321
+ }
322
+ if (options.onMatch) {
323
+ query += ' ON MATCH SET n += $onMatchProps';
324
+ params.onMatchProps = options.onMatch;
325
+ }
326
+ query += ' RETURN n, id(n) as nodeId';
327
+ const session = this.getSession(transaction);
328
+ const result = await session.run(query, params);
329
+ const record = result.records[0];
330
+ const node = this.mapMemgraphNode(record.get('n'), record.get('nodeId'));
331
+ return {
332
+ node,
333
+ created: true, // Memgraph doesn't easily tell us if it was created or matched
334
+ merged: true,
335
+ };
336
+ });
337
+ }
338
+ // ==================== LABEL MANAGEMENT ====================
339
+ async addLabels(options, transaction) {
340
+ this.ensureConnected();
341
+ return this.executeWithRetry(async () => {
342
+ const labels = options.labels.map(l => `:\`${l}\``).join('');
343
+ const query = `
344
+ MATCH (n)
345
+ WHERE id(n) = $id
346
+ SET n${labels}
347
+ RETURN n, id(n) as nodeId
348
+ `;
349
+ const params = {
350
+ id: typeof options.id === 'number' ? options.id : parseInt(options.id, 10),
351
+ };
352
+ const session = this.getSession(transaction);
353
+ const result = await session.run(query, params);
354
+ if (result.records.length === 0) {
355
+ throw graph_error_1.GraphError.notFoundError(`Node with ID ${options.id} not found`);
356
+ }
357
+ const record = result.records[0];
358
+ const node = this.mapMemgraphNode(record.get('n'), record.get('nodeId'));
359
+ return {
360
+ node,
361
+ addedLabels: options.labels,
362
+ };
363
+ });
364
+ }
365
+ async removeLabels(options, transaction) {
366
+ this.ensureConnected();
367
+ return this.executeWithRetry(async () => {
368
+ const labels = options.labels.map(l => `:\`${l}\``).join('');
369
+ const query = `
370
+ MATCH (n)
371
+ WHERE id(n) = $id
372
+ REMOVE n${labels}
373
+ RETURN n, id(n) as nodeId
374
+ `;
375
+ const params = {
376
+ id: typeof options.id === 'number' ? options.id : parseInt(options.id, 10),
377
+ };
378
+ const session = this.getSession(transaction);
379
+ const result = await session.run(query, params);
380
+ if (result.records.length === 0) {
381
+ throw graph_error_1.GraphError.notFoundError(`Node with ID ${options.id} not found`);
382
+ }
383
+ const record = result.records[0];
384
+ const node = this.mapMemgraphNode(record.get('n'), record.get('nodeId'));
385
+ return {
386
+ node,
387
+ removedLabels: options.labels,
388
+ };
389
+ });
390
+ }
391
+ async setLabels(options, transaction) {
392
+ this.ensureConnected();
393
+ return this.executeWithRetry(async () => {
394
+ // First get current labels
395
+ const getQuery = `
396
+ MATCH (n)
397
+ WHERE id(n) = $id
398
+ RETURN labels(n) as currentLabels
399
+ `;
400
+ const params = {
401
+ id: typeof options.id === 'number' ? options.id : parseInt(options.id, 10),
402
+ };
403
+ const session = this.getSession(transaction);
404
+ const getResult = await session.run(getQuery, params);
405
+ if (getResult.records.length === 0) {
406
+ throw graph_error_1.GraphError.notFoundError(`Node with ID ${options.id} not found`);
407
+ }
408
+ const previousLabels = getResult.records[0].get('currentLabels');
409
+ // Remove all existing labels and add new ones
410
+ const removeLabels = previousLabels.map(l => `:\`${l}\``).join('');
411
+ const addLabels = options.labels.map(l => `:\`${l}\``).join('');
412
+ const setQuery = `
413
+ MATCH (n)
414
+ WHERE id(n) = $id
415
+ REMOVE n${removeLabels}
416
+ SET n${addLabels}
417
+ RETURN n, id(n) as nodeId
418
+ `;
419
+ const result = await session.run(setQuery, params);
420
+ const node = this.mapMemgraphNode(result.records[0].get('n'), result.records[0].get('nodeId'));
421
+ return {
422
+ node,
423
+ previousLabels,
424
+ newLabels: options.labels,
425
+ };
426
+ });
427
+ }
428
+ // ==================== RELATIONSHIP OPERATIONS ====================
429
+ async createRelationship(options, transaction) {
430
+ this.ensureConnected();
431
+ return this.executeWithRetry(async () => {
432
+ const query = `
433
+ MATCH (a), (b)
434
+ WHERE id(a) = $startId AND id(b) = $endId
435
+ CREATE (a)-[r:${options.type} $props]->(b)
436
+ RETURN r, id(r) as relId, id(a) as startId, id(b) as endId
437
+ `;
438
+ const params = {
439
+ startId: typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10),
440
+ endId: typeof options.endNodeId === 'number' ? options.endNodeId : parseInt(options.endNodeId, 10),
441
+ props: options.properties || {},
442
+ };
443
+ const session = this.getSession(transaction);
444
+ const result = await session.run(query, params);
445
+ const record = result.records[0];
446
+ const rel = record.get('r');
447
+ return {
448
+ relationship: this.mapMemgraphRelationship(rel, record.get('relId'), record.get('startId'), record.get('endId')),
449
+ created: true,
450
+ };
451
+ });
452
+ }
453
+ async findRelationships(options, transaction) {
454
+ this.ensureConnected();
455
+ return this.executeWithRetry(async () => {
456
+ const types = options.type
457
+ ? (Array.isArray(options.type) ? options.type.join('|') : options.type)
458
+ : (options.types ? options.types.join('|') : '');
459
+ const typeClause = types ? `:${types}` : '';
460
+ let query = `MATCH (a)-[r${typeClause}]->(b)`;
461
+ const params = {};
462
+ const conditions = [];
463
+ if (options.startNodeId) {
464
+ conditions.push('id(a) = $startId');
465
+ params.startId = typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10);
466
+ }
467
+ if (options.endNodeId) {
468
+ conditions.push('id(b) = $endId');
469
+ params.endId = typeof options.endNodeId === 'number' ? options.endNodeId : parseInt(options.endNodeId, 10);
470
+ }
471
+ if (options.where) {
472
+ const { clause, params: whereParams } = this.buildWhereClause(options.where, 'r');
473
+ conditions.push(clause);
474
+ Object.assign(params, whereParams);
475
+ }
476
+ if (conditions.length > 0) {
477
+ query += ` WHERE ${conditions.join(' AND ')}`;
478
+ }
479
+ query += ' RETURN r, id(r) as relId, id(a) as startId, id(b) as endId';
480
+ if (options.skip) {
481
+ query += ` SKIP ${options.skip}`;
482
+ }
483
+ if (options.limit) {
484
+ query += ` LIMIT ${options.limit}`;
485
+ }
486
+ const session = this.getSession(transaction);
487
+ const result = await session.run(query, params);
488
+ const relationships = result.records.map((record) => this.mapMemgraphRelationship(record.get('r'), record.get('relId'), record.get('startId'), record.get('endId')));
489
+ return {
490
+ relationships,
491
+ count: relationships.length,
492
+ };
493
+ });
494
+ }
495
+ async findRelationshipById(id, transaction) {
496
+ this.ensureConnected();
497
+ return this.executeWithRetry(async () => {
498
+ const query = `
499
+ MATCH (a)-[r]->(b)
500
+ WHERE id(r) = $id
501
+ RETURN r, id(r) as relId, id(a) as startId, id(b) as endId
502
+ `;
503
+ const session = this.getSession(transaction);
504
+ const result = await session.run(query, {
505
+ id: typeof id === 'number' ? id : parseInt(id, 10),
506
+ });
507
+ if (result.records.length === 0) {
508
+ return null;
509
+ }
510
+ const record = result.records[0];
511
+ return this.mapMemgraphRelationship(record.get('r'), record.get('relId'), record.get('startId'), record.get('endId'));
512
+ });
513
+ }
514
+ async updateRelationship(options, transaction) {
515
+ this.ensureConnected();
516
+ return this.executeWithRetry(async () => {
517
+ let query;
518
+ const params = { props: options.properties };
519
+ if (options.id) {
520
+ query = `
521
+ MATCH (a)-[r]->(b)
522
+ WHERE id(r) = $id
523
+ SET r += $props
524
+ RETURN r, id(r) as relId, id(a) as startId, id(b) as endId
525
+ `;
526
+ params.id = typeof options.id === 'number' ? options.id : parseInt(options.id, 10);
527
+ }
528
+ else {
529
+ const typeClause = options.type ? `:${options.type}` : '';
530
+ query = `MATCH (a)-[r${typeClause}]->(b)`;
531
+ if (options.where) {
532
+ const { clause, params: whereParams } = this.buildWhereClause(options.where, 'r');
533
+ query += ` WHERE ${clause}`;
534
+ Object.assign(params, whereParams);
535
+ }
536
+ query += ' SET r += $props RETURN r, id(r) as relId, id(a) as startId, id(b) as endId';
537
+ }
538
+ const session = this.getSession(transaction);
539
+ const result = await session.run(query, params);
540
+ const relationships = result.records.map((record) => this.mapMemgraphRelationship(record.get('r'), record.get('relId'), record.get('startId'), record.get('endId')));
541
+ return {
542
+ relationship: relationships.length === 1 ? relationships[0] : undefined,
543
+ relationships: relationships.length > 1 ? relationships : undefined,
544
+ updatedCount: relationships.length,
545
+ updated: relationships.length > 0,
546
+ };
547
+ });
548
+ }
549
+ async deleteRelationship(options, transaction) {
550
+ this.ensureConnected();
551
+ return this.executeWithRetry(async () => {
552
+ var _a;
553
+ let query;
554
+ const params = {};
555
+ if (options.id) {
556
+ query = `MATCH ()-[r]->() WHERE id(r) = $id DELETE r RETURN count(r) as count`;
557
+ params.id = typeof options.id === 'number' ? options.id : parseInt(options.id, 10);
558
+ }
559
+ else {
560
+ const typeClause = options.type ? `:${options.type}` : '';
561
+ query = `MATCH (a)-[r${typeClause}]->(b)`;
562
+ const conditions = [];
563
+ if (options.startNodeId) {
564
+ conditions.push('id(a) = $startId');
565
+ params.startId = typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10);
566
+ }
567
+ if (options.endNodeId) {
568
+ conditions.push('id(b) = $endId');
569
+ params.endId = typeof options.endNodeId === 'number' ? options.endNodeId : parseInt(options.endNodeId, 10);
570
+ }
571
+ if (options.where) {
572
+ const { clause, params: whereParams } = this.buildWhereClause(options.where, 'r');
573
+ conditions.push(clause);
574
+ Object.assign(params, whereParams);
575
+ }
576
+ if (conditions.length > 0) {
577
+ query += ` WHERE ${conditions.join(' AND ')}`;
578
+ }
579
+ query += ' DELETE r RETURN count(r) as count';
580
+ }
581
+ const session = this.getSession(transaction);
582
+ const result = await session.run(query, params);
583
+ const count = this.toNumber((_a = result.records[0]) === null || _a === void 0 ? void 0 : _a.get('count')) || 0;
584
+ return {
585
+ deleted: count > 0,
586
+ deletedCount: count,
587
+ };
588
+ });
589
+ }
590
+ async mergeRelationship(options, transaction) {
591
+ this.ensureConnected();
592
+ return this.executeWithRetry(async () => {
593
+ let matchPropsClause = '';
594
+ const params = {
595
+ startId: typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10),
596
+ endId: typeof options.endNodeId === 'number' ? options.endNodeId : parseInt(options.endNodeId, 10),
597
+ };
598
+ if (options.matchProperties) {
599
+ const matchProps = Object.entries(options.matchProperties)
600
+ .map(([key]) => `${key}: $match_${key}`)
601
+ .join(', ');
602
+ matchPropsClause = ` {${matchProps}}`;
603
+ Object.entries(options.matchProperties).forEach(([key, value]) => {
604
+ params[`match_${key}`] = value;
605
+ });
606
+ }
607
+ let query = `
608
+ MATCH (a), (b)
609
+ WHERE id(a) = $startId AND id(b) = $endId
610
+ MERGE (a)-[r:${options.type}${matchPropsClause}]->(b)
611
+ `;
612
+ if (options.onCreate) {
613
+ query += ' ON CREATE SET r += $onCreateProps';
614
+ params.onCreateProps = options.onCreate;
615
+ }
616
+ if (options.onMatch) {
617
+ query += ' ON MATCH SET r += $onMatchProps';
618
+ params.onMatchProps = options.onMatch;
619
+ }
620
+ query += ' RETURN r, id(r) as relId, id(a) as startId, id(b) as endId';
621
+ const session = this.getSession(transaction);
622
+ const result = await session.run(query, params);
623
+ const record = result.records[0];
624
+ const relationship = this.mapMemgraphRelationship(record.get('r'), record.get('relId'), record.get('startId'), record.get('endId'));
625
+ return {
626
+ relationship,
627
+ created: true,
628
+ merged: true,
629
+ };
630
+ });
631
+ }
632
+ // ==================== TRAVERSAL OPERATIONS ====================
633
+ async traverse(options, transaction) {
634
+ this.ensureConnected();
635
+ return this.executeWithRetry(async () => {
636
+ var _a;
637
+ const direction = this.getDirectionArrow(options.direction);
638
+ const relTypes = ((_a = options.relationshipTypes) === null || _a === void 0 ? void 0 : _a.join('|')) || '';
639
+ const relClause = relTypes ? `:${relTypes}` : '';
640
+ const minDepth = options.minDepth || 1;
641
+ const maxDepth = options.maxDepth || 3;
642
+ const query = `
643
+ MATCH path = (start)${direction.left}[${relClause}*${minDepth}..${maxDepth}]${direction.right}(end)
644
+ WHERE id(start) = $startId
645
+ RETURN path
646
+ ${options.limit ? `LIMIT ${options.limit}` : ''}
647
+ `;
648
+ const params = {
649
+ startId: typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10),
650
+ };
651
+ const session = this.getSession(transaction);
652
+ const result = await session.run(query, params);
653
+ const paths = result.records.map((record) => this.mapMemgraphPath(record.get('path')));
654
+ // Collect unique nodes and relationships
655
+ const nodesMap = new Map();
656
+ const relsMap = new Map();
657
+ paths.forEach(path => {
658
+ path.nodes.forEach(node => nodesMap.set(String(node.id), node));
659
+ path.relationships.forEach(rel => relsMap.set(String(rel.id), rel));
660
+ });
661
+ return {
662
+ paths,
663
+ nodes: Array.from(nodesMap.values()),
664
+ relationships: Array.from(relsMap.values()),
665
+ count: paths.length,
666
+ };
667
+ });
668
+ }
669
+ async shortestPath(options, transaction) {
670
+ this.ensureConnected();
671
+ return this.executeWithRetry(async () => {
672
+ var _a;
673
+ const relTypes = ((_a = options.relationshipTypes) === null || _a === void 0 ? void 0 : _a.join('|')) || '';
674
+ const relClause = relTypes ? `:${relTypes}` : '';
675
+ const maxDepth = options.maxDepth || 15;
676
+ // Use BFS for shortest path in Memgraph
677
+ const query = `
678
+ MATCH (start), (end)
679
+ WHERE id(start) = $startId AND id(end) = $endId
680
+ MATCH path = shortestPath((start)-[${relClause}*..${maxDepth}]-(end))
681
+ RETURN path
682
+ `;
683
+ const params = {
684
+ startId: typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10),
685
+ endId: typeof options.endNodeId === 'number' ? options.endNodeId : parseInt(options.endNodeId, 10),
686
+ };
687
+ const session = this.getSession(transaction);
688
+ const result = await session.run(query, params);
689
+ if (result.records.length === 0) {
690
+ return { path: null, found: false };
691
+ }
692
+ const path = this.mapMemgraphPath(result.records[0].get('path'));
693
+ return {
694
+ path,
695
+ length: path.length,
696
+ found: true,
697
+ totalWeight: options.weightProperty
698
+ ? path.relationships.reduce((sum, r) => sum + (r.properties[options.weightProperty] || 0), 0)
699
+ : undefined,
700
+ };
701
+ });
702
+ }
703
+ async allPaths(options, transaction) {
704
+ this.ensureConnected();
705
+ return this.executeWithRetry(async () => {
706
+ var _a;
707
+ const relTypes = ((_a = options.relationshipTypes) === null || _a === void 0 ? void 0 : _a.join('|')) || '';
708
+ const relClause = relTypes ? `:${relTypes}` : '';
709
+ const minDepth = options.minDepth || 1;
710
+ const maxDepth = options.maxDepth || 5;
711
+ const limit = options.limit || options.maxPaths;
712
+ const query = `
713
+ MATCH (start), (end)
714
+ WHERE id(start) = $startId AND id(end) = $endId
715
+ MATCH path = (start)-[${relClause}*${minDepth}..${maxDepth}]-(end)
716
+ RETURN path
717
+ ${limit ? `LIMIT ${limit}` : ''}
718
+ `;
719
+ const params = {
720
+ startId: typeof options.startNodeId === 'number' ? options.startNodeId : parseInt(options.startNodeId, 10),
721
+ endId: typeof options.endNodeId === 'number' ? options.endNodeId : parseInt(options.endNodeId, 10),
722
+ };
723
+ const session = this.getSession(transaction);
724
+ const result = await session.run(query, params);
725
+ const paths = result.records.map((record) => this.mapMemgraphPath(record.get('path')));
726
+ return {
727
+ paths,
728
+ count: paths.length,
729
+ total: paths.length,
730
+ };
731
+ });
732
+ }
733
+ async getNeighborhood(options, transaction) {
734
+ this.ensureConnected();
735
+ return this.executeWithRetry(async () => {
736
+ var _a;
737
+ const direction = this.getDirectionArrow(options.direction);
738
+ const relTypes = ((_a = options.relationshipTypes) === null || _a === void 0 ? void 0 : _a.join('|')) || '';
739
+ const relClause = relTypes ? `:${relTypes}` : '';
740
+ const depth = options.depth || 1;
741
+ const limit = options.limit;
742
+ const query = `
743
+ MATCH (start)
744
+ WHERE id(start) = $nodeId
745
+ MATCH path = (start)${direction.left}[r${relClause}*1..${depth}]${direction.right}(neighbor)
746
+ RETURN DISTINCT neighbor, id(neighbor) as neighborId, r
747
+ ${limit ? `LIMIT ${limit}` : ''}
748
+ `;
749
+ const params = {
750
+ nodeId: typeof options.nodeId === 'number' ? options.nodeId : parseInt(options.nodeId, 10),
751
+ };
752
+ const session = this.getSession(transaction);
753
+ const result = await session.run(query, params);
754
+ const nodesMap = new Map();
755
+ const relationshipsSet = [];
756
+ result.records.forEach((record) => {
757
+ const neighbor = record.get('neighbor');
758
+ const neighborId = record.get('neighborId');
759
+ const nodeKey = String(this.toNumber(neighborId));
760
+ if (!nodesMap.has(nodeKey)) {
761
+ nodesMap.set(nodeKey, this.mapMemgraphNode(neighbor, neighborId));
762
+ }
763
+ const rels = record.get('r');
764
+ if (Array.isArray(rels)) {
765
+ rels.forEach((rel) => {
766
+ relationshipsSet.push(this.mapMemgraphRelationship(rel, rel.identity, rel.start, rel.end));
767
+ });
768
+ }
769
+ });
770
+ return {
771
+ nodes: Array.from(nodesMap.values()),
772
+ relationships: relationshipsSet,
773
+ depth,
774
+ };
775
+ });
776
+ }
777
+ async findConnectedComponents(options, transaction) {
778
+ this.ensureConnected();
779
+ return this.executeWithRetry(async () => {
780
+ var _a;
781
+ // Memgraph has MAGE library for graph algorithms
782
+ // Use weakly connected components algorithm
783
+ const labels = ((_a = options.labels) === null || _a === void 0 ? void 0 : _a.join(':')) || '';
784
+ const labelClause = labels ? `:${labels}` : '';
785
+ try {
786
+ // Try using MAGE library first (if installed)
787
+ const query = `
788
+ CALL weakly_connected_components.get()
789
+ YIELD node, component_id
790
+ WITH component_id, collect(node) as nodes
791
+ RETURN nodes, size(nodes) as size, component_id
792
+ ORDER BY size DESC
793
+ `;
794
+ const session = this.getSession(transaction);
795
+ const result = await session.run(query, {});
796
+ const components = result.records.map((record) => ({
797
+ nodes: record.get('nodes').map((n) => this.mapMemgraphNode(n, n.identity)),
798
+ size: this.toNumber(record.get('size')),
799
+ }));
800
+ return {
801
+ components,
802
+ count: components.length,
803
+ };
804
+ }
805
+ catch (_b) {
806
+ // Fallback to basic Cypher implementation
807
+ const query = `
808
+ MATCH (n${labelClause})
809
+ WITH collect(n) as allNodes
810
+ UNWIND allNodes as node
811
+ MATCH path = (node)-[*]-(connected)
812
+ WITH node, collect(DISTINCT connected) + [node] as component
813
+ WITH collect(DISTINCT component) as allComponents
814
+ UNWIND allComponents as comp
815
+ WITH comp, size(comp) as compSize
816
+ RETURN comp as nodes, compSize as size
817
+ ORDER BY size DESC
818
+ `;
819
+ const session = this.getSession(transaction);
820
+ const result = await session.run(query, {});
821
+ const components = result.records.map((record) => ({
822
+ nodes: record.get('nodes').map((n) => this.mapMemgraphNode(n, n.identity)),
823
+ size: this.toNumber(record.get('size')),
824
+ }));
825
+ return {
826
+ components,
827
+ count: components.length,
828
+ };
829
+ }
830
+ });
831
+ }
832
+ // ==================== AGGREGATION OPERATIONS ====================
833
+ async countNodes(labels, where, transaction) {
834
+ this.ensureConnected();
835
+ return this.executeWithRetry(async () => {
836
+ var _a;
837
+ const labelClause = (labels === null || labels === void 0 ? void 0 : labels.length) ? `:${labels.join(':')}` : '';
838
+ let query = `MATCH (n${labelClause})`;
839
+ const params = {};
840
+ if (where) {
841
+ const { clause, params: whereParams } = this.buildWhereClause(where, 'n');
842
+ query += ` WHERE ${clause}`;
843
+ Object.assign(params, whereParams);
844
+ }
845
+ query += ' RETURN count(n) as count';
846
+ const session = this.getSession(transaction);
847
+ const result = await session.run(query, params);
848
+ return {
849
+ count: this.toNumber((_a = result.records[0]) === null || _a === void 0 ? void 0 : _a.get('count')) || 0,
850
+ };
851
+ });
852
+ }
853
+ async countRelationships(types, where, transaction) {
854
+ this.ensureConnected();
855
+ return this.executeWithRetry(async () => {
856
+ var _a;
857
+ const typeClause = (types === null || types === void 0 ? void 0 : types.length) ? `:${types.join('|')}` : '';
858
+ let query = `MATCH ()-[r${typeClause}]->()`;
859
+ const params = {};
860
+ if (where) {
861
+ const { clause, params: whereParams } = this.buildWhereClause(where, 'r');
862
+ query += ` WHERE ${clause}`;
863
+ Object.assign(params, whereParams);
864
+ }
865
+ query += ' RETURN count(r) as count';
866
+ const session = this.getSession(transaction);
867
+ const result = await session.run(query, params);
868
+ return {
869
+ count: this.toNumber((_a = result.records[0]) === null || _a === void 0 ? void 0 : _a.get('count')) || 0,
870
+ };
871
+ });
872
+ }
873
+ async getStatistics(transaction) {
874
+ this.ensureConnected();
875
+ return this.executeWithRetry(async () => {
876
+ var _a, _b;
877
+ const session = this.getSession(transaction);
878
+ const nodeCountResult = await session.run('MATCH (n) RETURN count(n) as count');
879
+ const relCountResult = await session.run('MATCH ()-[r]->() RETURN count(r) as count');
880
+ return {
881
+ nodeCount: this.toNumber((_a = nodeCountResult.records[0]) === null || _a === void 0 ? void 0 : _a.get('count')) || 0,
882
+ relationshipCount: this.toNumber((_b = relCountResult.records[0]) === null || _b === void 0 ? void 0 : _b.get('count')) || 0,
883
+ };
884
+ });
885
+ }
886
+ // ==================== SEARCH OPERATIONS ====================
887
+ async fullTextSearch(options, transaction) {
888
+ this.ensureConnected();
889
+ return this.executeWithRetry(async () => {
890
+ // Memgraph supports text search through MAGE text_search module
891
+ // Use the index name to search
892
+ const query = `
893
+ CALL text_search.search($indexName, $searchQuery, $limit)
894
+ YIELD node, score
895
+ RETURN node, id(node) as nodeId, score
896
+ `;
897
+ const session = this.getSession(transaction);
898
+ const result = await session.run(query, {
899
+ indexName: options.indexName,
900
+ searchQuery: options.query,
901
+ limit: options.limit || 100,
902
+ });
903
+ const nodes = result.records.map((r) => this.mapMemgraphNode(r.get('node'), r.get('nodeId')));
904
+ const scores = result.records.map((r) => r.get('score') || 1.0);
905
+ return {
906
+ nodes,
907
+ scores,
908
+ };
909
+ });
910
+ }
911
+ async vectorSearch(_options, _transaction) {
912
+ // Memgraph doesn't natively support vector search yet
913
+ // This would require a custom implementation or external service
914
+ throw graph_error_1.GraphError.unsupportedOperationError('Vector search is not natively supported in Memgraph. Consider using an external vector database.', this.graphType);
915
+ }
916
+ // ==================== RAW QUERY ====================
917
+ async query(options, transaction) {
918
+ this.ensureConnected();
919
+ return this.executeWithRetry(async () => {
920
+ var _a, _b;
921
+ const session = this.getSession(transaction);
922
+ const result = await session.run(options.query, options.params || {});
923
+ return {
924
+ records: result.records.map((r) => r.toObject()),
925
+ summary: {
926
+ resultAvailableAfter: this.toNumber((_a = result.summary) === null || _a === void 0 ? void 0 : _a.resultAvailableAfter),
927
+ resultConsumedAfter: this.toNumber((_b = result.summary) === null || _b === void 0 ? void 0 : _b.resultConsumedAfter),
928
+ },
929
+ };
930
+ });
931
+ }
932
+ // ==================== SCHEMA OPERATIONS ====================
933
+ async createNodeIndex(options) {
934
+ this.ensureConnected();
935
+ return this.executeWithRetry(async () => {
936
+ // Memgraph uses CREATE INDEX ON :Label(property)
937
+ const query = `CREATE INDEX ON :${options.label}(${options.properties.join(', ')})`;
938
+ const session = this.getSession();
939
+ await session.run(query);
940
+ return { created: true, name: options.name };
941
+ });
942
+ }
943
+ async createNodeConstraint(options) {
944
+ this.ensureConnected();
945
+ return this.executeWithRetry(async () => {
946
+ let query;
947
+ const property = options.property || (options.properties && options.properties[0]);
948
+ switch (options.type) {
949
+ case 'UNIQUE':
950
+ // Memgraph uses CREATE CONSTRAINT ON (n:Label) ASSERT n.property IS UNIQUE
951
+ query = `CREATE CONSTRAINT ON (n:${options.label}) ASSERT n.${property} IS UNIQUE`;
952
+ break;
953
+ case 'EXISTS':
954
+ query = `CREATE CONSTRAINT ON (n:${options.label}) ASSERT EXISTS (n.${property})`;
955
+ break;
956
+ default:
957
+ throw graph_error_1.GraphError.validationError(`Unsupported constraint type: ${options.type}`);
958
+ }
959
+ const session = this.getSession();
960
+ await session.run(query);
961
+ return { created: true, name: options.name };
962
+ });
963
+ }
964
+ async createRelationshipIndex(options) {
965
+ this.ensureConnected();
966
+ return this.executeWithRetry(async () => {
967
+ // Memgraph relationship indexes
968
+ const query = `CREATE INDEX ON :${options.type}(${options.properties.join(', ')})`;
969
+ const session = this.getSession();
970
+ await session.run(query);
971
+ return { created: true, name: options.name };
972
+ });
973
+ }
974
+ async listIndexes() {
975
+ this.ensureConnected();
976
+ return this.executeWithRetry(async () => {
977
+ const query = 'SHOW INDEX INFO';
978
+ const session = this.getSession();
979
+ const result = await session.run(query);
980
+ const indexes = result.records.map((r) => ({
981
+ name: r.get('index name') || '',
982
+ labelOrType: r.get('label') || '',
983
+ properties: [r.get('property') || ''],
984
+ unique: false, // Memgraph doesn't distinguish in SHOW INDEX INFO
985
+ type: r.get('index type') || 'BTREE',
986
+ state: 'ONLINE',
987
+ }));
988
+ return { indexes };
989
+ });
990
+ }
991
+ async listConstraints() {
992
+ this.ensureConnected();
993
+ return this.executeWithRetry(async () => {
994
+ const query = 'SHOW CONSTRAINT INFO';
995
+ const session = this.getSession();
996
+ const result = await session.run(query);
997
+ const constraints = result.records.map((r) => ({
998
+ name: `constraint_${r.get('label')}_${r.get('property')}`,
999
+ label: r.get('label') || '',
1000
+ property: r.get('property') || '',
1001
+ type: r.get('constraint type') || 'UNIQUE',
1002
+ }));
1003
+ return { constraints };
1004
+ });
1005
+ }
1006
+ async dropIndex(name) {
1007
+ this.ensureConnected();
1008
+ return this.executeWithRetry(async () => {
1009
+ // In Memgraph, we need label and property to drop index
1010
+ // This is a simplified version
1011
+ const query = `DROP INDEX ON :${name}`;
1012
+ const session = this.getSession();
1013
+ try {
1014
+ await session.run(query);
1015
+ return { dropped: true };
1016
+ }
1017
+ catch (_a) {
1018
+ return { dropped: false };
1019
+ }
1020
+ });
1021
+ }
1022
+ async dropConstraint(name) {
1023
+ this.ensureConnected();
1024
+ return this.executeWithRetry(async () => {
1025
+ // Memgraph requires the full constraint definition to drop
1026
+ // This is a simplified version that might need adjustment
1027
+ const query = `DROP CONSTRAINT ON (n:${name}) ASSERT n.id IS UNIQUE`;
1028
+ const session = this.getSession();
1029
+ try {
1030
+ await session.run(query);
1031
+ return { dropped: true };
1032
+ }
1033
+ catch (_a) {
1034
+ return { dropped: false };
1035
+ }
1036
+ });
1037
+ }
1038
+ // ==================== SCHEMA INTROSPECTION ====================
1039
+ async listLabels() {
1040
+ this.ensureConnected();
1041
+ return this.executeWithRetry(async () => {
1042
+ var _a, _b, _c, _d;
1043
+ const session = this.getSession();
1044
+ // Get all labels using Memgraph's CALL mg.labels()
1045
+ const labelsResult = await session.run('CALL mg.labels() YIELD label RETURN label');
1046
+ const labelNames = labelsResult.records.map((r) => r.get('label'));
1047
+ const labels = [];
1048
+ for (const labelName of labelNames) {
1049
+ // Get count for each label
1050
+ const countResult = await session.run(`MATCH (n:\`${labelName}\`) RETURN count(n) as count`);
1051
+ const count = ((_c = (_b = (_a = countResult.records[0]) === null || _a === void 0 ? void 0 : _a.get('count')) === null || _b === void 0 ? void 0 : _b.toNumber) === null || _c === void 0 ? void 0 : _c.call(_b)) ||
1052
+ ((_d = countResult.records[0]) === null || _d === void 0 ? void 0 : _d.get('count')) || 0;
1053
+ // Get properties for a sample of nodes with this label
1054
+ const propsResult = await session.run(`MATCH (n:\`${labelName}\`) WITH n LIMIT 100
1055
+ UNWIND keys(n) as key
1056
+ RETURN DISTINCT key`);
1057
+ const properties = propsResult.records.map((r) => ({
1058
+ name: r.get('key'),
1059
+ type: 'unknown',
1060
+ }));
1061
+ labels.push({
1062
+ name: labelName,
1063
+ count: typeof count === 'number' ? count : Number(count),
1064
+ properties,
1065
+ });
1066
+ }
1067
+ return { labels };
1068
+ });
1069
+ }
1070
+ async listRelationshipTypes() {
1071
+ this.ensureConnected();
1072
+ return this.executeWithRetry(async () => {
1073
+ var _a, _b, _c, _d;
1074
+ const session = this.getSession();
1075
+ // Get all relationship types using Memgraph's CALL mg.relationship_types()
1076
+ const typesResult = await session.run('CALL mg.relationship_types() YIELD relationshipType RETURN relationshipType');
1077
+ const typeNames = typesResult.records.map((r) => r.get('relationshipType'));
1078
+ const types = [];
1079
+ for (const typeName of typeNames) {
1080
+ // Get count for each type
1081
+ const countResult = await session.run(`MATCH ()-[r:\`${typeName}\`]->() RETURN count(r) as count`);
1082
+ const count = ((_c = (_b = (_a = countResult.records[0]) === null || _a === void 0 ? void 0 : _a.get('count')) === null || _b === void 0 ? void 0 : _b.toNumber) === null || _c === void 0 ? void 0 : _c.call(_b)) ||
1083
+ ((_d = countResult.records[0]) === null || _d === void 0 ? void 0 : _d.get('count')) || 0;
1084
+ // Get source and target label information
1085
+ const endpointsResult = await session.run(`MATCH (a)-[r:\`${typeName}\`]->(b)
1086
+ WITH labels(a) as fromLabels, labels(b) as toLabels
1087
+ RETURN DISTINCT fromLabels[0] as fromLabel, toLabels[0] as toLabel
1088
+ LIMIT 10`);
1089
+ const fromLabelsArray = endpointsResult.records
1090
+ .map((r) => r.get('fromLabel'))
1091
+ .filter((l) => Boolean(l));
1092
+ const fromLabels = [...new Set(fromLabelsArray)];
1093
+ const toLabelsArray = endpointsResult.records
1094
+ .map((r) => r.get('toLabel'))
1095
+ .filter((l) => Boolean(l));
1096
+ const toLabels = [...new Set(toLabelsArray)];
1097
+ // Get properties for relationships of this type
1098
+ const propsResult = await session.run(`MATCH ()-[r:\`${typeName}\`]->() WITH r LIMIT 100
1099
+ UNWIND keys(r) as key
1100
+ RETURN DISTINCT key`);
1101
+ const properties = propsResult.records.map((r) => ({
1102
+ name: r.get('key'),
1103
+ type: 'unknown',
1104
+ }));
1105
+ types.push({
1106
+ type: typeName,
1107
+ count: typeof count === 'number' ? count : Number(count),
1108
+ fromLabels,
1109
+ toLabels,
1110
+ properties: properties.length > 0 ? properties : undefined,
1111
+ });
1112
+ }
1113
+ return { types };
1114
+ });
1115
+ }
1116
+ // ==================== TRANSACTION OPERATIONS ====================
1117
+ async beginTransaction(_options) {
1118
+ this.ensureConnected();
1119
+ return this.executeWithRetry(async () => {
1120
+ const session = this.driver.session();
1121
+ const tx = session.beginTransaction();
1122
+ return {
1123
+ id: `tx_${Date.now()}`,
1124
+ status: enums_1.GraphTransactionStatus.ACTIVE,
1125
+ client: tx,
1126
+ nativeTransaction: tx,
1127
+ startTime: new Date(),
1128
+ commit: async () => {
1129
+ await tx.commit();
1130
+ await session.close();
1131
+ },
1132
+ rollback: async () => {
1133
+ await tx.rollback();
1134
+ await session.close();
1135
+ },
1136
+ };
1137
+ });
1138
+ }
1139
+ async commitTransaction(transaction) {
1140
+ if (transaction.commit) {
1141
+ await transaction.commit();
1142
+ }
1143
+ }
1144
+ async rollbackTransaction(transaction) {
1145
+ if (transaction.rollback) {
1146
+ await transaction.rollback();
1147
+ }
1148
+ }
1149
+ // ==================== MEMGRAPH-SPECIFIC FEATURES ====================
1150
+ /**
1151
+ * Create a trigger in Memgraph
1152
+ */
1153
+ async createTrigger(name, event, target, procedure) {
1154
+ this.ensureConnected();
1155
+ return this.executeWithRetry(async () => {
1156
+ const eventClause = `${event === 'CREATE' ? 'CREATED' : event === 'UPDATE' ? 'UPDATED' : 'DELETED'}`;
1157
+ const targetClause = target === 'NODE' ? 'VERTEX' : 'EDGE';
1158
+ const query = `
1159
+ CREATE TRIGGER ${name}
1160
+ ON ${eventClause} ${targetClause}
1161
+ EXECUTE ${procedure}
1162
+ `;
1163
+ const session = this.getSession();
1164
+ await session.run(query);
1165
+ });
1166
+ }
1167
+ /**
1168
+ * Drop a trigger in Memgraph
1169
+ */
1170
+ async dropTrigger(name) {
1171
+ this.ensureConnected();
1172
+ return this.executeWithRetry(async () => {
1173
+ const query = `DROP TRIGGER ${name}`;
1174
+ const session = this.getSession();
1175
+ await session.run(query);
1176
+ });
1177
+ }
1178
+ /**
1179
+ * List all triggers in Memgraph
1180
+ */
1181
+ async listTriggers() {
1182
+ this.ensureConnected();
1183
+ return this.executeWithRetry(async () => {
1184
+ const query = 'SHOW TRIGGERS';
1185
+ const session = this.getSession();
1186
+ const result = await session.run(query);
1187
+ return result.records.map((r) => ({
1188
+ name: r.get('trigger name'),
1189
+ statement: r.get('statement'),
1190
+ }));
1191
+ });
1192
+ }
1193
+ /**
1194
+ * Create a stream consumer in Memgraph
1195
+ */
1196
+ async createStream(name, type, topics, transformationProcedure, config) {
1197
+ this.ensureConnected();
1198
+ return this.executeWithRetry(async () => {
1199
+ const configStr = Object.entries(config)
1200
+ .map(([k, v]) => `${k} = '${v}'`)
1201
+ .join(', ');
1202
+ const query = `
1203
+ CREATE ${type} STREAM ${name}
1204
+ TOPICS ${topics.join(', ')}
1205
+ TRANSFORM ${transformationProcedure}
1206
+ ${configStr ? `CONFIGS { ${configStr} }` : ''}
1207
+ `;
1208
+ const session = this.getSession();
1209
+ await session.run(query);
1210
+ });
1211
+ }
1212
+ /**
1213
+ * Run a MAGE algorithm (if installed)
1214
+ */
1215
+ async runMageAlgorithm(algorithm, params = {}) {
1216
+ this.ensureConnected();
1217
+ return this.executeWithRetry(async () => {
1218
+ const paramsList = Object.entries(params)
1219
+ .map(([k]) => `${k}: $${k}`)
1220
+ .join(', ');
1221
+ const query = `CALL ${algorithm}(${paramsList ? `{${paramsList}}` : ''}) YIELD *`;
1222
+ const session = this.getSession();
1223
+ const result = await session.run(query, params);
1224
+ return result.records.map((r) => r.toObject());
1225
+ });
1226
+ }
1227
+ // ==================== UTILITY METHODS ====================
1228
+ buildWhereClause(where, alias = 'n') {
1229
+ const conditions = [];
1230
+ const params = {};
1231
+ let paramIndex = 0;
1232
+ const processCondition = (key, value, prefix = '') => {
1233
+ const fullKey = prefix ? `${prefix}_${key}` : key;
1234
+ const paramName = `param_${paramIndex++}`;
1235
+ // Normalize key to lowercase for comparison
1236
+ const normalizedKey = key.toLowerCase();
1237
+ if (normalizedKey === '$and') {
1238
+ const subConditions = [];
1239
+ if (Array.isArray(value)) {
1240
+ value.forEach((v) => {
1241
+ Object.entries(v).forEach(([k, val]) => {
1242
+ processCondition(k, val, fullKey);
1243
+ subConditions.push(conditions.pop());
1244
+ });
1245
+ });
1246
+ }
1247
+ else {
1248
+ Object.entries(value).forEach(([k, v]) => {
1249
+ processCondition(k, v, fullKey);
1250
+ subConditions.push(conditions.pop());
1251
+ });
1252
+ }
1253
+ conditions.push(`(${subConditions.join(' AND ')})`);
1254
+ return;
1255
+ }
1256
+ if (normalizedKey === '$or') {
1257
+ const subConditions = [];
1258
+ if (Array.isArray(value)) {
1259
+ value.forEach((v) => {
1260
+ Object.entries(v).forEach(([k, val]) => {
1261
+ processCondition(k, val, fullKey);
1262
+ subConditions.push(conditions.pop());
1263
+ });
1264
+ });
1265
+ }
1266
+ else {
1267
+ Object.entries(value).forEach(([k, v]) => {
1268
+ processCondition(k, v, fullKey);
1269
+ subConditions.push(conditions.pop());
1270
+ });
1271
+ }
1272
+ conditions.push(`(${subConditions.join(' OR ')})`);
1273
+ return;
1274
+ }
1275
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
1276
+ Object.entries(value).forEach(([op, opValue]) => {
1277
+ const normalizedOp = op.toLowerCase();
1278
+ const opParamName = `${paramName}_${normalizedOp}`;
1279
+ switch (normalizedOp) {
1280
+ case '$gt':
1281
+ conditions.push(`${alias}.${key} > $${opParamName}`);
1282
+ params[opParamName] = opValue;
1283
+ break;
1284
+ case '$gte':
1285
+ conditions.push(`${alias}.${key} >= $${opParamName}`);
1286
+ params[opParamName] = opValue;
1287
+ break;
1288
+ case '$lt':
1289
+ conditions.push(`${alias}.${key} < $${opParamName}`);
1290
+ params[opParamName] = opValue;
1291
+ break;
1292
+ case '$lte':
1293
+ conditions.push(`${alias}.${key} <= $${opParamName}`);
1294
+ params[opParamName] = opValue;
1295
+ break;
1296
+ case '$ne':
1297
+ conditions.push(`${alias}.${key} <> $${opParamName}`);
1298
+ params[opParamName] = opValue;
1299
+ break;
1300
+ case '$in':
1301
+ conditions.push(`${alias}.${key} IN $${opParamName}`);
1302
+ params[opParamName] = opValue;
1303
+ break;
1304
+ case '$nin':
1305
+ case '$not_in':
1306
+ conditions.push(`NOT ${alias}.${key} IN $${opParamName}`);
1307
+ params[opParamName] = opValue;
1308
+ break;
1309
+ case '$contains':
1310
+ conditions.push(`${alias}.${key} CONTAINS $${opParamName}`);
1311
+ params[opParamName] = opValue;
1312
+ break;
1313
+ case '$startswith':
1314
+ case '$starts_with':
1315
+ conditions.push(`${alias}.${key} STARTS WITH $${opParamName}`);
1316
+ params[opParamName] = opValue;
1317
+ break;
1318
+ case '$endswith':
1319
+ case '$ends_with':
1320
+ conditions.push(`${alias}.${key} ENDS WITH $${opParamName}`);
1321
+ params[opParamName] = opValue;
1322
+ break;
1323
+ case '$exists':
1324
+ if (opValue) {
1325
+ conditions.push(`${alias}.${key} IS NOT NULL`);
1326
+ }
1327
+ else {
1328
+ conditions.push(`${alias}.${key} IS NULL`);
1329
+ }
1330
+ break;
1331
+ case '$regex':
1332
+ conditions.push(`${alias}.${key} =~ $${opParamName}`);
1333
+ params[opParamName] = opValue;
1334
+ break;
1335
+ }
1336
+ });
1337
+ }
1338
+ else {
1339
+ conditions.push(`${alias}.${key} = $${paramName}`);
1340
+ params[paramName] = value;
1341
+ }
1342
+ };
1343
+ Object.entries(where).forEach(([key, value]) => {
1344
+ processCondition(key, value);
1345
+ });
1346
+ return {
1347
+ clause: conditions.join(' AND ') || 'true',
1348
+ params,
1349
+ };
1350
+ }
1351
+ parseError(error) {
1352
+ if (error instanceof graph_error_1.GraphError) {
1353
+ return error;
1354
+ }
1355
+ return graph_error_1.GraphError.queryError(String(error));
1356
+ }
1357
+ // ==================== PRIVATE HELPER METHODS ====================
1358
+ mapMemgraphNode(node, nodeId) {
1359
+ const id = nodeId !== undefined ? this.toNumber(nodeId) : this.toNumber(node.identity);
1360
+ return {
1361
+ id: String(id),
1362
+ labels: node.labels || [],
1363
+ properties: this.convertProperties(node.properties || {}),
1364
+ };
1365
+ }
1366
+ mapMemgraphRelationship(rel, relId, startId, endId) {
1367
+ const id = relId !== undefined ? this.toNumber(relId) : this.toNumber(rel.identity);
1368
+ const start = startId !== undefined ? this.toNumber(startId) : this.toNumber(rel.start);
1369
+ const end = endId !== undefined ? this.toNumber(endId) : this.toNumber(rel.end);
1370
+ return {
1371
+ id: String(id),
1372
+ type: rel.type,
1373
+ startNodeId: String(start),
1374
+ endNodeId: String(end),
1375
+ properties: this.convertProperties(rel.properties || {}),
1376
+ };
1377
+ }
1378
+ mapMemgraphPath(path) {
1379
+ const nodes = [];
1380
+ const relationships = [];
1381
+ if (path.segments) {
1382
+ path.segments.forEach((segment, index) => {
1383
+ if (index === 0) {
1384
+ nodes.push(this.mapMemgraphNode(segment.start, segment.start.identity));
1385
+ }
1386
+ nodes.push(this.mapMemgraphNode(segment.end, segment.end.identity));
1387
+ relationships.push(this.mapMemgraphRelationship(segment.relationship, segment.relationship.identity, segment.start.identity, segment.end.identity));
1388
+ });
1389
+ }
1390
+ return {
1391
+ nodes,
1392
+ relationships,
1393
+ length: relationships.length,
1394
+ };
1395
+ }
1396
+ convertProperties(props) {
1397
+ const result = {};
1398
+ for (const [key, value] of Object.entries(props)) {
1399
+ result[key] = this.convertValue(value);
1400
+ }
1401
+ return result;
1402
+ }
1403
+ convertValue(value) {
1404
+ var _a, _b, _c;
1405
+ if (value === null || value === undefined) {
1406
+ return value;
1407
+ }
1408
+ // Handle Integer type (from neo4j-driver)
1409
+ if (typeof value === 'object' && ((_a = value.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'Integer') {
1410
+ return this.toNumber(value);
1411
+ }
1412
+ // Handle Date types
1413
+ if (typeof value === 'object' && (((_b = value.constructor) === null || _b === void 0 ? void 0 : _b.name) === 'Date' || ((_c = value.constructor) === null || _c === void 0 ? void 0 : _c.name) === 'DateTime')) {
1414
+ return new Date(value.toString());
1415
+ }
1416
+ if (Array.isArray(value)) {
1417
+ return value.map(v => this.convertValue(v));
1418
+ }
1419
+ return value;
1420
+ }
1421
+ toNumber(value) {
1422
+ if (value === null || value === undefined) {
1423
+ return 0;
1424
+ }
1425
+ if (typeof value === 'number') {
1426
+ return value;
1427
+ }
1428
+ if (typeof value === 'object' && typeof value.toNumber === 'function') {
1429
+ return value.toNumber();
1430
+ }
1431
+ if (typeof value === 'object' && typeof value.toInt === 'function') {
1432
+ return value.toInt();
1433
+ }
1434
+ return parseInt(String(value), 10) || 0;
1435
+ }
1436
+ getDirectionArrow(direction) {
1437
+ switch (direction) {
1438
+ case enums_1.TraversalDirection.OUTGOING:
1439
+ case 'OUTGOING':
1440
+ return { left: '-', right: '->' };
1441
+ case enums_1.TraversalDirection.INCOMING:
1442
+ case 'INCOMING':
1443
+ return { left: '<-', right: '-' };
1444
+ case enums_1.TraversalDirection.BOTH:
1445
+ case 'BOTH':
1446
+ default:
1447
+ return { left: '-', right: '-' };
1448
+ }
1449
+ }
1450
+ }
1451
+ exports.MemgraphAdapter = MemgraphAdapter;
1452
+ //# sourceMappingURL=memgraph.adapter.js.map