@ductape/sdk 0.0.4-v51 → 0.0.4-v52

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 (868) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/agent-context.d.ts +98 -0
  3. package/dist/agents/agent-context.js +588 -0
  4. package/dist/agents/agent-context.js.map +1 -0
  5. package/dist/agents/agent-executor.d.ts +180 -0
  6. package/dist/agents/agent-executor.js +715 -0
  7. package/dist/agents/agent-executor.js.map +1 -0
  8. package/dist/agents/agents.service.d.ts +304 -0
  9. package/dist/agents/agents.service.js +1244 -0
  10. package/dist/agents/agents.service.js.map +1 -0
  11. package/dist/agents/index.d.ts +55 -0
  12. package/dist/agents/index.js +110 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/memory-manager.d.ts +182 -0
  15. package/dist/agents/memory-manager.js +383 -0
  16. package/dist/agents/memory-manager.js.map +1 -0
  17. package/dist/agents/tool-registry.d.ts +141 -0
  18. package/dist/agents/tool-registry.js +355 -0
  19. package/dist/agents/tool-registry.js.map +1 -0
  20. package/dist/agents/types/agents.types.d.ts +1225 -0
  21. package/dist/agents/types/agents.types.js +12 -0
  22. package/dist/agents/types/agents.types.js.map +1 -0
  23. package/dist/agents/types/index.d.ts +6 -0
  24. package/dist/agents/types/index.js +23 -0
  25. package/dist/agents/types/index.js.map +1 -0
  26. package/dist/agents/vector-store-adapter.d.ts +108 -0
  27. package/dist/agents/vector-store-adapter.js +213 -0
  28. package/dist/agents/vector-store-adapter.js.map +1 -0
  29. package/dist/api/services/appApi.service.js +4 -5
  30. package/dist/api/services/appApi.service.js.map +1 -1
  31. package/dist/api/services/processorApi.service.d.ts +322 -0
  32. package/dist/api/services/processorApi.service.js +252 -0
  33. package/dist/api/services/processorApi.service.js.map +1 -1
  34. package/dist/api/services/productsApi.service.d.ts +69 -1
  35. package/dist/api/services/productsApi.service.js +67 -31
  36. package/dist/api/services/productsApi.service.js.map +1 -1
  37. package/dist/api/services/resilienceApi.service.d.ts +106 -0
  38. package/dist/api/services/resilienceApi.service.js +224 -0
  39. package/dist/api/services/resilienceApi.service.js.map +1 -0
  40. package/dist/api/services/secretsApi.service.d.ts +38 -0
  41. package/dist/api/services/secretsApi.service.js +96 -0
  42. package/dist/api/services/secretsApi.service.js.map +1 -0
  43. package/dist/api/services/userApi.service.js +0 -1
  44. package/dist/api/services/userApi.service.js.map +1 -1
  45. package/dist/api/services/workflowApi.service.d.ts +199 -0
  46. package/dist/api/services/workflowApi.service.js +183 -0
  47. package/dist/api/services/workflowApi.service.js.map +1 -0
  48. package/dist/api/services/workspaceApi.service.js +0 -1
  49. package/dist/api/services/workspaceApi.service.js.map +1 -1
  50. package/dist/api/urls.d.ts +57 -0
  51. package/dist/api/urls.js +68 -1
  52. package/dist/api/urls.js.map +1 -1
  53. package/dist/api/utils/cache.utils.js +4 -10
  54. package/dist/api/utils/cache.utils.js.map +1 -1
  55. package/dist/apps/services/app.service.d.ts +0 -10
  56. package/dist/apps/services/app.service.js +74 -30
  57. package/dist/apps/services/app.service.js.map +1 -1
  58. package/dist/apps/utils/auth-context-manager.d.ts +137 -0
  59. package/dist/apps/utils/auth-context-manager.js +248 -0
  60. package/dist/apps/utils/auth-context-manager.js.map +1 -0
  61. package/dist/apps/utils/credential-manager.d.ts +128 -0
  62. package/dist/apps/utils/credential-manager.js +199 -0
  63. package/dist/apps/utils/credential-manager.js.map +1 -0
  64. package/dist/apps/utils/index.d.ts +10 -0
  65. package/dist/apps/utils/index.js +54 -0
  66. package/dist/apps/utils/index.js.map +1 -0
  67. package/dist/apps/utils/input-helpers.d.ts +67 -0
  68. package/dist/apps/utils/input-helpers.js +185 -0
  69. package/dist/apps/utils/input-helpers.js.map +1 -0
  70. package/dist/apps/utils/input-resolver.d.ts +165 -0
  71. package/dist/apps/utils/input-resolver.js +477 -0
  72. package/dist/apps/utils/input-resolver.js.map +1 -0
  73. package/dist/apps/utils/oauth-manager.d.ts +196 -0
  74. package/dist/apps/utils/oauth-manager.js +405 -0
  75. package/dist/apps/utils/oauth-manager.js.map +1 -0
  76. package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +2 -1
  77. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +15 -2
  78. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
  79. package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +2 -1
  80. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +14 -2
  81. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
  82. package/dist/bin.d.ts +26 -0
  83. package/dist/bin.js +28 -0
  84. package/dist/bin.js.map +1 -0
  85. package/dist/brokers/brokers.service.d.ts +257 -0
  86. package/dist/brokers/brokers.service.js +604 -0
  87. package/dist/brokers/brokers.service.js.map +1 -0
  88. package/dist/brokers/index.d.ts +46 -0
  89. package/dist/brokers/index.js +83 -0
  90. package/dist/brokers/index.js.map +1 -0
  91. package/dist/brokers/types/index.d.ts +288 -0
  92. package/dist/brokers/types/index.js +8 -0
  93. package/dist/brokers/types/index.js.map +1 -0
  94. package/dist/brokers/utils/broker.util.d.ts +33 -0
  95. package/dist/brokers/utils/broker.util.js +125 -0
  96. package/dist/brokers/utils/broker.util.js.map +1 -0
  97. package/dist/brokers/utils/providers/aws-sqs.service.d.ts +16 -0
  98. package/dist/brokers/utils/providers/aws-sqs.service.js +71 -0
  99. package/dist/brokers/utils/providers/aws-sqs.service.js.map +1 -0
  100. package/dist/brokers/utils/providers/google-pubsub.service.d.ts +16 -0
  101. package/dist/brokers/utils/providers/google-pubsub.service.js +43 -0
  102. package/dist/brokers/utils/providers/google-pubsub.service.js.map +1 -0
  103. package/dist/brokers/utils/providers/index.d.ts +6 -0
  104. package/dist/brokers/utils/providers/index.js +16 -0
  105. package/dist/brokers/utils/providers/index.js.map +1 -0
  106. package/dist/brokers/utils/providers/kafka.service.d.ts +16 -0
  107. package/dist/brokers/utils/providers/kafka.service.js +52 -0
  108. package/dist/brokers/utils/providers/kafka.service.js.map +1 -0
  109. package/dist/brokers/utils/providers/nats.service.d.ts +18 -0
  110. package/dist/brokers/utils/providers/nats.service.js +63 -0
  111. package/dist/brokers/utils/providers/nats.service.js.map +1 -0
  112. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +14 -0
  113. package/dist/brokers/utils/providers/rabbitmq.service.js +67 -0
  114. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -0
  115. package/dist/brokers/utils/providers/redis.service.d.ts +18 -0
  116. package/dist/brokers/utils/providers/redis.service.js +93 -0
  117. package/dist/brokers/utils/providers/redis.service.js.map +1 -0
  118. package/dist/cache/cache.manager.d.ts +159 -0
  119. package/dist/cache/cache.manager.js +265 -0
  120. package/dist/cache/cache.manager.js.map +1 -0
  121. package/dist/cache/cache.service.d.ts +186 -0
  122. package/dist/cache/cache.service.js +437 -0
  123. package/dist/cache/cache.service.js.map +1 -0
  124. package/dist/cache/index.d.ts +52 -0
  125. package/dist/cache/index.js +79 -0
  126. package/dist/cache/index.js.map +1 -0
  127. package/dist/cache/types/index.d.ts +106 -0
  128. package/dist/cache/types/index.js +6 -0
  129. package/dist/cache/types/index.js.map +1 -0
  130. package/dist/database/actions/action-manager.d.ts +170 -0
  131. package/dist/database/actions/action-manager.js +465 -0
  132. package/dist/database/actions/action-manager.js.map +1 -0
  133. package/dist/database/actions/index.d.ts +6 -0
  134. package/dist/database/actions/index.js +13 -0
  135. package/dist/database/actions/index.js.map +1 -0
  136. package/dist/database/adapters/adapter.factory.d.ts +62 -0
  137. package/dist/database/adapters/adapter.factory.js +97 -0
  138. package/dist/database/adapters/adapter.factory.js.map +1 -0
  139. package/dist/database/adapters/base.adapter.d.ts +307 -90
  140. package/dist/database/adapters/base.adapter.js +139 -20
  141. package/dist/database/adapters/base.adapter.js.map +1 -1
  142. package/dist/database/adapters/cassandra.adapter.d.ts +90 -0
  143. package/dist/database/adapters/cassandra.adapter.js +1019 -0
  144. package/dist/database/adapters/cassandra.adapter.js.map +1 -0
  145. package/dist/database/adapters/dynamodb.adapter.d.ts +94 -77
  146. package/dist/database/adapters/dynamodb.adapter.js +1162 -1305
  147. package/dist/database/adapters/dynamodb.adapter.js.map +1 -1
  148. package/dist/database/adapters/index.d.ts +11 -0
  149. package/dist/database/adapters/index.js +27 -0
  150. package/dist/database/adapters/index.js.map +1 -0
  151. package/dist/database/adapters/mariadb.adapter.d.ts +100 -0
  152. package/dist/database/adapters/mariadb.adapter.js +247 -0
  153. package/dist/database/adapters/mariadb.adapter.js.map +1 -0
  154. package/dist/database/adapters/mongodb.adapter.d.ts +105 -57
  155. package/dist/database/adapters/mongodb.adapter.js +941 -838
  156. package/dist/database/adapters/mongodb.adapter.js.map +1 -1
  157. package/dist/database/adapters/mysql.adapter.d.ts +76 -138
  158. package/dist/database/adapters/mysql.adapter.js +990 -1246
  159. package/dist/database/adapters/mysql.adapter.js.map +1 -1
  160. package/dist/database/adapters/postgresql.adapter.d.ts +75 -139
  161. package/dist/database/adapters/postgresql.adapter.js +1076 -1346
  162. package/dist/database/adapters/postgresql.adapter.js.map +1 -1
  163. package/dist/database/databases.service.d.ts +1374 -0
  164. package/dist/database/databases.service.js +2680 -0
  165. package/dist/database/databases.service.js.map +1 -0
  166. package/dist/database/index.d.ts +41 -13
  167. package/dist/database/index.js +97 -86
  168. package/dist/database/index.js.map +1 -1
  169. package/dist/database/migrations/index.d.ts +6 -0
  170. package/dist/database/migrations/index.js +12 -0
  171. package/dist/database/migrations/index.js.map +1 -0
  172. package/dist/database/migrations/migration-engine.d.ts +132 -0
  173. package/dist/database/migrations/migration-engine.js +1356 -0
  174. package/dist/database/migrations/migration-engine.js.map +1 -0
  175. package/dist/database/operators/aggregation-builder.d.ts +64 -0
  176. package/dist/database/operators/aggregation-builder.js +746 -0
  177. package/dist/database/operators/aggregation-builder.js.map +1 -0
  178. package/dist/database/operators/index.d.ts +7 -0
  179. package/dist/database/operators/index.js +15 -0
  180. package/dist/database/operators/index.js.map +1 -0
  181. package/dist/database/operators/query-builder.d.ts +55 -0
  182. package/dist/database/operators/query-builder.js +365 -0
  183. package/dist/database/operators/query-builder.js.map +1 -0
  184. package/dist/database/presave/decrypt.d.ts +25 -0
  185. package/dist/database/presave/decrypt.js +146 -0
  186. package/dist/database/presave/decrypt.js.map +1 -0
  187. package/dist/database/presave/index.d.ts +9 -0
  188. package/dist/database/presave/index.js +18 -0
  189. package/dist/database/presave/index.js.map +1 -0
  190. package/dist/database/presave/presave-processor.d.ts +148 -0
  191. package/dist/database/presave/presave-processor.js +702 -0
  192. package/dist/database/presave/presave-processor.js.map +1 -0
  193. package/dist/database/schema/index.d.ts +7 -0
  194. package/dist/database/schema/index.js +13 -0
  195. package/dist/database/schema/index.js.map +1 -0
  196. package/dist/database/schema/schema-manager.d.ts +258 -0
  197. package/dist/database/schema/schema-manager.js +637 -0
  198. package/dist/database/schema/schema-manager.js.map +1 -0
  199. package/dist/database/transactions/index.d.ts +6 -0
  200. package/dist/database/transactions/index.js +13 -0
  201. package/dist/database/transactions/index.js.map +1 -0
  202. package/dist/database/transactions/transaction-manager.d.ts +113 -0
  203. package/dist/database/transactions/transaction-manager.js +344 -0
  204. package/dist/database/transactions/transaction-manager.js.map +1 -0
  205. package/dist/database/triggers/index.d.ts +7 -0
  206. package/dist/database/triggers/index.js +14 -0
  207. package/dist/database/triggers/index.js.map +1 -0
  208. package/dist/database/triggers/trigger-processor.d.ts +239 -0
  209. package/dist/database/triggers/trigger-processor.js +1034 -0
  210. package/dist/database/triggers/trigger-processor.js.map +1 -0
  211. package/dist/database/types/action.interface.d.ts +148 -0
  212. package/dist/database/types/action.interface.js +6 -0
  213. package/dist/database/types/action.interface.js.map +1 -0
  214. package/dist/database/types/aggregation.interface.d.ts +179 -0
  215. package/dist/database/types/aggregation.interface.js +6 -0
  216. package/dist/database/types/aggregation.interface.js.map +1 -0
  217. package/dist/database/types/connection.interface.d.ts +137 -0
  218. package/dist/database/types/connection.interface.js +6 -0
  219. package/dist/database/types/connection.interface.js.map +1 -0
  220. package/dist/database/types/enums.d.ts +195 -0
  221. package/dist/database/types/enums.js +244 -0
  222. package/dist/database/types/enums.js.map +1 -0
  223. package/dist/database/types/index.d.ts +12 -10
  224. package/dist/database/types/index.js +26 -32
  225. package/dist/database/types/index.js.map +1 -1
  226. package/dist/database/types/migration.interface.d.ts +686 -0
  227. package/dist/database/types/migration.interface.js +9 -0
  228. package/dist/database/types/migration.interface.js.map +1 -0
  229. package/dist/database/types/presave.interface.d.ts +292 -0
  230. package/dist/database/types/presave.interface.js +60 -0
  231. package/dist/database/types/presave.interface.js.map +1 -0
  232. package/dist/database/types/query.interface.d.ts +199 -0
  233. package/dist/database/types/query.interface.js +6 -0
  234. package/dist/database/types/query.interface.js.map +1 -0
  235. package/dist/database/types/schema.interface.d.ts +398 -0
  236. package/dist/database/types/schema.interface.js +6 -0
  237. package/dist/database/types/schema.interface.js.map +1 -0
  238. package/dist/database/types/transaction.interface.d.ts +84 -0
  239. package/dist/database/types/transaction.interface.js +6 -0
  240. package/dist/database/types/transaction.interface.js.map +1 -0
  241. package/dist/database/types/trigger.interface.d.ts +612 -0
  242. package/dist/database/types/trigger.interface.js +121 -0
  243. package/dist/database/types/trigger.interface.js.map +1 -0
  244. package/dist/database/types/write.interface.d.ts +208 -0
  245. package/dist/database/types/write.interface.js +6 -0
  246. package/dist/database/types/write.interface.js.map +1 -0
  247. package/dist/database/utils/database-error.d.ts +96 -0
  248. package/dist/database/utils/database-error.js +221 -0
  249. package/dist/database/utils/database-error.js.map +1 -0
  250. package/dist/database/utils/index.d.ts +6 -0
  251. package/dist/database/utils/index.js +11 -0
  252. package/dist/database/utils/index.js.map +1 -0
  253. package/dist/graph/adapters/adapter.factory.d.ts +47 -0
  254. package/dist/graph/adapters/adapter.factory.js +77 -0
  255. package/dist/graph/adapters/adapter.factory.js.map +1 -0
  256. package/dist/graph/adapters/arangodb.adapter.d.ts +78 -72
  257. package/dist/graph/adapters/arangodb.adapter.js +1310 -1220
  258. package/dist/graph/adapters/arangodb.adapter.js.map +1 -1
  259. package/dist/graph/adapters/base.adapter.d.ts +135 -118
  260. package/dist/graph/adapters/base.adapter.js +46 -20
  261. package/dist/graph/adapters/base.adapter.js.map +1 -1
  262. package/dist/graph/adapters/index.d.ts +5 -4
  263. package/dist/graph/adapters/index.js +6 -8
  264. package/dist/graph/adapters/index.js.map +1 -1
  265. package/dist/graph/adapters/memgraph.adapter.d.ts +98 -73
  266. package/dist/graph/adapters/memgraph.adapter.js +1050 -1202
  267. package/dist/graph/adapters/memgraph.adapter.js.map +1 -1
  268. package/dist/graph/adapters/neo4j.adapter.d.ts +71 -78
  269. package/dist/graph/adapters/neo4j.adapter.js +912 -1605
  270. package/dist/graph/adapters/neo4j.adapter.js.map +1 -1
  271. package/dist/graph/adapters/neptune.adapter.d.ts +76 -81
  272. package/dist/graph/adapters/neptune.adapter.js +1095 -1228
  273. package/dist/graph/adapters/neptune.adapter.js.map +1 -1
  274. package/dist/graph/graphs.service.d.ts +524 -0
  275. package/dist/graph/graphs.service.js +1683 -0
  276. package/dist/graph/graphs.service.js.map +1 -0
  277. package/dist/graph/index.d.ts +54 -8
  278. package/dist/graph/index.js +67 -32
  279. package/dist/graph/index.js.map +1 -1
  280. package/dist/graph/transactions/index.d.ts +4 -0
  281. package/dist/graph/transactions/index.js +9 -0
  282. package/dist/graph/transactions/index.js.map +1 -0
  283. package/dist/graph/transactions/transaction-manager.d.ts +61 -0
  284. package/dist/graph/transactions/transaction-manager.js +126 -0
  285. package/dist/graph/transactions/transaction-manager.js.map +1 -0
  286. package/dist/graph/types/connection.interface.d.ts +141 -0
  287. package/dist/graph/types/connection.interface.js +9 -0
  288. package/dist/graph/types/connection.interface.js.map +1 -0
  289. package/dist/graph/types/enums.d.ts +101 -0
  290. package/dist/graph/types/enums.js +114 -0
  291. package/dist/graph/types/enums.js.map +1 -0
  292. package/dist/graph/types/index.d.ts +11 -9
  293. package/dist/graph/types/index.js +15 -30
  294. package/dist/graph/types/index.js.map +1 -1
  295. package/dist/graph/types/node.interface.d.ts +248 -0
  296. package/dist/graph/types/node.interface.js +9 -0
  297. package/dist/graph/types/node.interface.js.map +1 -0
  298. package/dist/graph/types/query.interface.d.ts +168 -0
  299. package/dist/graph/types/query.interface.js +9 -0
  300. package/dist/graph/types/query.interface.js.map +1 -0
  301. package/dist/graph/types/relationship.interface.d.ts +207 -0
  302. package/dist/graph/types/relationship.interface.js +9 -0
  303. package/dist/graph/types/relationship.interface.js.map +1 -0
  304. package/dist/graph/types/schema.interface.d.ts +295 -0
  305. package/dist/graph/types/schema.interface.js +9 -0
  306. package/dist/graph/types/schema.interface.js.map +1 -0
  307. package/dist/graph/types/transaction.interface.d.ts +55 -0
  308. package/dist/graph/types/transaction.interface.js +9 -0
  309. package/dist/graph/types/transaction.interface.js.map +1 -0
  310. package/dist/graph/types/traversal.interface.d.ts +181 -0
  311. package/dist/graph/types/traversal.interface.js +9 -0
  312. package/dist/graph/types/traversal.interface.js.map +1 -0
  313. package/dist/graph/utils/graph-error.d.ts +71 -0
  314. package/dist/graph/utils/graph-error.js +142 -0
  315. package/dist/graph/utils/graph-error.js.map +1 -0
  316. package/dist/graph/utils/index.d.ts +4 -0
  317. package/dist/graph/utils/index.js +9 -0
  318. package/dist/graph/utils/index.js.map +1 -0
  319. package/dist/index.d.ts +1905 -875
  320. package/dist/index.js +3063 -1282
  321. package/dist/index.js.map +1 -1
  322. package/dist/init.interface.d.ts +407 -0
  323. package/dist/init.interface.js +3 -0
  324. package/dist/init.interface.js.map +1 -0
  325. package/dist/jobs/index.d.ts +38 -0
  326. package/dist/jobs/index.js +50 -0
  327. package/dist/jobs/index.js.map +1 -0
  328. package/dist/jobs/jobs.service.d.ts +154 -0
  329. package/dist/jobs/jobs.service.js +491 -0
  330. package/dist/jobs/jobs.service.js.map +1 -0
  331. package/dist/jobs/jobs.state.d.ts +113 -0
  332. package/dist/jobs/jobs.state.js +447 -0
  333. package/dist/jobs/jobs.state.js.map +1 -0
  334. package/dist/jobs/types.d.ts +449 -0
  335. package/dist/jobs/types.js +74 -0
  336. package/dist/jobs/types.js.map +1 -0
  337. package/dist/logs/logs.types.d.ts +12 -2
  338. package/dist/logs/logs.types.js +5 -1
  339. package/dist/logs/logs.types.js.map +1 -1
  340. package/dist/models/index.d.ts +6 -0
  341. package/dist/models/index.js +11 -0
  342. package/dist/models/index.js.map +1 -0
  343. package/dist/models/models.service.d.ts +137 -0
  344. package/dist/models/models.service.js +195 -0
  345. package/dist/models/models.service.js.map +1 -0
  346. package/dist/notifications/index.d.ts +13 -0
  347. package/dist/notifications/index.js +26 -0
  348. package/dist/notifications/index.js.map +1 -0
  349. package/dist/notifications/notifications.service.d.ts +252 -0
  350. package/dist/notifications/notifications.service.js +654 -0
  351. package/dist/notifications/notifications.service.js.map +1 -0
  352. package/dist/notifications/types/index.d.ts +4 -0
  353. package/dist/notifications/types/index.js +21 -0
  354. package/dist/notifications/types/index.js.map +1 -0
  355. package/dist/notifications/types/notifications.types.d.ts +400 -0
  356. package/dist/notifications/types/notifications.types.js +49 -0
  357. package/dist/notifications/types/notifications.types.js.map +1 -0
  358. package/dist/processor/services/messagebrokers/kafka.service.js +2 -0
  359. package/dist/processor/services/messagebrokers/kafka.service.js.map +1 -1
  360. package/dist/processor/services/messagebrokers/rabbitmq.service.d.ts +1 -9
  361. package/dist/processor/services/messagebrokers/rabbitmq.service.js +11 -40
  362. package/dist/processor/services/messagebrokers/rabbitmq.service.js.map +1 -1
  363. package/dist/processor/services/processor.service.d.ts +86 -70
  364. package/dist/processor/services/processor.service.js +1353 -1259
  365. package/dist/processor/services/processor.service.js.map +1 -1
  366. package/dist/processor/utils/processor.utils.js +5 -1
  367. package/dist/processor/utils/processor.utils.js.map +1 -1
  368. package/dist/products/services/products.service.d.ts +167 -25
  369. package/dist/products/services/products.service.js +1248 -412
  370. package/dist/products/services/products.service.js.map +1 -1
  371. package/dist/products/validators/index.d.ts +6 -3
  372. package/dist/products/validators/index.js +14 -5
  373. package/dist/products/validators/index.js.map +1 -1
  374. package/dist/products/validators/joi-validators/create.productAgent.validator.d.ts +3 -0
  375. package/dist/products/validators/joi-validators/create.productAgent.validator.js +218 -0
  376. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -0
  377. package/dist/products/validators/joi-validators/create.productDatabase.validator.js +5 -0
  378. package/dist/products/validators/joi-validators/create.productDatabase.validator.js.map +1 -1
  379. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.d.ts +4 -15
  380. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js +109 -501
  381. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js.map +1 -1
  382. package/dist/products/validators/joi-validators/create.productGraph.validator.js +14 -9
  383. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
  384. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +0 -1
  385. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -1
  386. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +87 -30
  387. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  388. package/dist/products/validators/joi-validators/create.productModel.validator.d.ts +3 -0
  389. package/dist/products/validators/joi-validators/create.productModel.validator.js +132 -0
  390. package/dist/products/validators/joi-validators/create.productModel.validator.js.map +1 -0
  391. package/dist/products/validators/joi-validators/create.productNotification.validator.js +135 -50
  392. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  393. package/dist/products/validators/joi-validators/create.productStorage.validator.js +77 -18
  394. package/dist/products/validators/joi-validators/create.productStorage.validator.js.map +1 -1
  395. package/dist/products/validators/joi-validators/create.productVector.validator.d.ts +3 -0
  396. package/dist/products/validators/joi-validators/create.productVector.validator.js +135 -0
  397. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -0
  398. package/dist/products/validators/joi-validators/update.productDatabase.validator.js +5 -0
  399. package/dist/products/validators/joi-validators/update.productDatabase.validator.js.map +1 -1
  400. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.d.ts +0 -6
  401. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js +26 -28
  402. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js.map +1 -1
  403. package/dist/products/validators/joi-validators/update.productGraph.validator.js +11 -12
  404. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -1
  405. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +0 -1
  406. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -1
  407. package/dist/resilience/fallback.service.d.ts +88 -0
  408. package/dist/resilience/fallback.service.js +511 -0
  409. package/dist/resilience/fallback.service.js.map +1 -0
  410. package/dist/resilience/healthcheck.service.d.ts +106 -0
  411. package/dist/resilience/healthcheck.service.js +379 -0
  412. package/dist/resilience/healthcheck.service.js.map +1 -0
  413. package/dist/resilience/index.d.ts +104 -0
  414. package/dist/resilience/index.js +140 -0
  415. package/dist/resilience/index.js.map +1 -0
  416. package/dist/resilience/quota.service.d.ts +90 -0
  417. package/dist/resilience/quota.service.js +519 -0
  418. package/dist/resilience/quota.service.js.map +1 -0
  419. package/dist/resilience/resilience.service.d.ts +95 -0
  420. package/dist/resilience/resilience.service.js +525 -0
  421. package/dist/resilience/resilience.service.js.map +1 -0
  422. package/dist/resilience/types/index.d.ts +479 -0
  423. package/dist/resilience/types/index.js +26 -0
  424. package/dist/resilience/types/index.js.map +1 -0
  425. package/dist/secrets/index.d.ts +10 -0
  426. package/dist/secrets/index.js +33 -0
  427. package/dist/secrets/index.js.map +1 -0
  428. package/dist/secrets/secrets.resolver.d.ts +52 -0
  429. package/dist/secrets/secrets.resolver.js +233 -0
  430. package/dist/secrets/secrets.resolver.js.map +1 -0
  431. package/dist/secrets/secrets.service.d.ts +83 -0
  432. package/dist/secrets/secrets.service.js +159 -0
  433. package/dist/secrets/secrets.service.js.map +1 -0
  434. package/dist/secrets/secrets.types.d.ts +188 -0
  435. package/dist/secrets/secrets.types.js +87 -0
  436. package/dist/secrets/secrets.types.js.map +1 -0
  437. package/dist/sessions/index.d.ts +50 -0
  438. package/dist/sessions/index.js +93 -0
  439. package/dist/sessions/index.js.map +1 -0
  440. package/dist/sessions/sessions.helper.d.ts +68 -0
  441. package/dist/sessions/sessions.helper.js +116 -0
  442. package/dist/sessions/sessions.helper.js.map +1 -0
  443. package/dist/sessions/sessions.resolver.d.ts +150 -0
  444. package/dist/sessions/sessions.resolver.js +356 -0
  445. package/dist/sessions/sessions.resolver.js.map +1 -0
  446. package/dist/sessions/sessions.service.d.ts +170 -0
  447. package/dist/sessions/sessions.service.js +736 -0
  448. package/dist/sessions/sessions.service.js.map +1 -0
  449. package/dist/sessions/types/index.d.ts +290 -0
  450. package/dist/sessions/types/index.js +6 -0
  451. package/dist/sessions/types/index.js.map +1 -0
  452. package/dist/storage/index.d.ts +66 -0
  453. package/dist/storage/index.js +98 -0
  454. package/dist/storage/index.js.map +1 -0
  455. package/dist/storage/storage.service.d.ts +123 -0
  456. package/dist/storage/storage.service.js +478 -0
  457. package/dist/storage/storage.service.js.map +1 -0
  458. package/dist/storage/types/index.d.ts +207 -0
  459. package/dist/storage/types/index.js +6 -0
  460. package/dist/storage/types/index.js.map +1 -0
  461. package/dist/storage/utils/storage.util.d.ts +51 -0
  462. package/dist/storage/utils/storage.util.js +402 -0
  463. package/dist/storage/utils/storage.util.js.map +1 -0
  464. package/dist/test/index.d.ts +3 -0
  465. package/dist/test/index.js +13 -0
  466. package/dist/test/index.js.map +1 -0
  467. package/dist/test/test.appBuilder.d.ts +0 -1
  468. package/dist/test/test.appBuilder.js +0 -15
  469. package/dist/test/test.appBuilder.js.map +1 -1
  470. package/dist/test/test.database.js +140 -0
  471. package/dist/test/test.database.js.map +1 -0
  472. package/dist/test/test.health.d.ts +0 -1
  473. package/dist/test/test.health.js +0 -48
  474. package/dist/test/test.health.js.map +1 -1
  475. package/dist/test/test.import.d.ts +0 -1
  476. package/dist/test/test.import.js +0 -1506
  477. package/dist/test/test.import.js.map +1 -1
  478. package/dist/test/test.import.openapi.d.ts +0 -1
  479. package/dist/test/test.import.openapi.js +0 -75
  480. package/dist/test/test.import.openapi.js.map +1 -1
  481. package/dist/test/test.imports.d.ts +0 -1
  482. package/dist/test/test.imports.js +0 -76
  483. package/dist/test/test.imports.js.map +1 -1
  484. package/dist/test/test.logs.d.ts +0 -1
  485. package/dist/test/test.logs.js +0 -17
  486. package/dist/test/test.logs.js.map +1 -1
  487. package/dist/test/test.notifiers.d.ts +0 -1
  488. package/dist/test/test.notifiers.js +0 -84
  489. package/dist/test/test.notifiers.js.map +1 -1
  490. package/dist/test/test.processor.d.ts +0 -1
  491. package/dist/test/test.processor.js +0 -37
  492. package/dist/test/test.processor.js.map +1 -1
  493. package/dist/test/test.productBuilder.d.ts +0 -1
  494. package/dist/test/test.productBuilder.js +0 -660
  495. package/dist/test/test.productBuilder.js.map +1 -1
  496. package/dist/test/test.products.d.ts +0 -1
  497. package/dist/test/test.products.js +0 -48
  498. package/dist/test/test.products.js.map +1 -1
  499. package/dist/test/test.storage.js +332 -0
  500. package/dist/test/test.storage.js.map +1 -0
  501. package/dist/test/test.triggers.js +314 -0
  502. package/dist/test/test.triggers.js.map +1 -0
  503. package/dist/types/appBuilder.types.d.ts +1 -1
  504. package/dist/types/enums.d.ts +6 -1
  505. package/dist/types/enums.js +5 -0
  506. package/dist/types/enums.js.map +1 -1
  507. package/dist/types/processor.types.d.ts +197 -35
  508. package/dist/types/processor.types.js +9 -1
  509. package/dist/types/processor.types.js.map +1 -1
  510. package/dist/types/productsBuilder.types.d.ts +837 -75
  511. package/dist/types/productsBuilder.types.js +168 -62
  512. package/dist/types/productsBuilder.types.js.map +1 -1
  513. package/dist/utils/index.d.ts +0 -2
  514. package/dist/utils/index.js +2 -49
  515. package/dist/utils/index.js.map +1 -1
  516. package/dist/vector/adapters/base.adapter.d.ts +152 -0
  517. package/dist/vector/adapters/base.adapter.js +137 -0
  518. package/dist/vector/adapters/base.adapter.js.map +1 -0
  519. package/dist/vector/adapters/index.d.ts +10 -0
  520. package/dist/vector/adapters/index.js +19 -0
  521. package/dist/vector/adapters/index.js.map +1 -0
  522. package/dist/vector/adapters/memory.adapter.d.ts +85 -0
  523. package/dist/vector/adapters/memory.adapter.js +505 -0
  524. package/dist/vector/adapters/memory.adapter.js.map +1 -0
  525. package/dist/vector/adapters/pinecone.adapter.d.ts +52 -0
  526. package/dist/vector/adapters/pinecone.adapter.js +400 -0
  527. package/dist/vector/adapters/pinecone.adapter.js.map +1 -0
  528. package/dist/vector/adapters/qdrant.adapter.d.ts +56 -0
  529. package/dist/vector/adapters/qdrant.adapter.js +392 -0
  530. package/dist/vector/adapters/qdrant.adapter.js.map +1 -0
  531. package/dist/vector/adapters/weaviate.adapter.d.ts +64 -0
  532. package/dist/vector/adapters/weaviate.adapter.js +478 -0
  533. package/dist/vector/adapters/weaviate.adapter.js.map +1 -0
  534. package/dist/vector/index.d.ts +47 -0
  535. package/dist/vector/index.js +72 -0
  536. package/dist/vector/index.js.map +1 -0
  537. package/dist/vector/types/connection.interface.d.ts +151 -0
  538. package/dist/vector/types/connection.interface.js +8 -0
  539. package/dist/vector/types/connection.interface.js.map +1 -0
  540. package/dist/vector/types/embedding.interface.d.ts +144 -0
  541. package/dist/vector/types/embedding.interface.js +8 -0
  542. package/dist/vector/types/embedding.interface.js.map +1 -0
  543. package/dist/vector/types/enums.d.ts +104 -0
  544. package/dist/vector/types/enums.js +113 -0
  545. package/dist/vector/types/enums.js.map +1 -0
  546. package/dist/vector/types/index.d.ts +9 -0
  547. package/dist/vector/types/index.js +16 -0
  548. package/dist/vector/types/index.js.map +1 -0
  549. package/dist/vector/types/vector.interface.d.ts +315 -0
  550. package/dist/vector/types/vector.interface.js +8 -0
  551. package/dist/vector/types/vector.interface.js.map +1 -0
  552. package/dist/vector/utils/index.d.ts +6 -0
  553. package/dist/vector/utils/index.js +11 -0
  554. package/dist/vector/utils/index.js.map +1 -0
  555. package/dist/vector/utils/vector-error.d.ts +69 -0
  556. package/dist/vector/utils/vector-error.js +117 -0
  557. package/dist/vector/utils/vector-error.js.map +1 -0
  558. package/dist/vector/vector-database.service.d.ts +405 -0
  559. package/dist/vector/vector-database.service.js +544 -0
  560. package/dist/vector/vector-database.service.js.map +1 -0
  561. package/dist/vector/vector.service.d.ts +245 -0
  562. package/dist/vector/vector.service.js +381 -0
  563. package/dist/vector/vector.service.js.map +1 -0
  564. package/dist/workflows/index.d.ts +30 -0
  565. package/dist/workflows/index.js +64 -0
  566. package/dist/workflows/index.js.map +1 -0
  567. package/dist/workflows/types/index.d.ts +6 -0
  568. package/dist/workflows/types/index.js +23 -0
  569. package/dist/workflows/types/index.js.map +1 -0
  570. package/dist/workflows/types/workflows.types.d.ts +1035 -0
  571. package/dist/workflows/types/workflows.types.js +13 -0
  572. package/dist/workflows/types/workflows.types.js.map +1 -0
  573. package/dist/workflows/workflow-builder.d.ts +70 -0
  574. package/dist/workflows/workflow-builder.js +338 -0
  575. package/dist/workflows/workflow-builder.js.map +1 -0
  576. package/dist/workflows/workflow-executor.d.ts +205 -0
  577. package/dist/workflows/workflow-executor.js +1186 -0
  578. package/dist/workflows/workflow-executor.js.map +1 -0
  579. package/dist/workflows/workflows.service.d.ts +398 -0
  580. package/dist/workflows/workflows.service.js +1595 -0
  581. package/dist/workflows/workflows.service.js.map +1 -0
  582. package/package.json +16 -13
  583. package/dist/actions/actions.repo.d.ts +0 -0
  584. package/dist/actions/actions.repo.js +0 -13
  585. package/dist/actions/actions.repo.js.map +0 -1
  586. package/dist/actions/actions.service.d.ts +0 -0
  587. package/dist/actions/actions.service.js +0 -24
  588. package/dist/actions/actions.service.js.map +0 -1
  589. package/dist/actions/utils/actions.util.read.d.ts +0 -0
  590. package/dist/actions/utils/actions.util.read.js +0 -427
  591. package/dist/actions/utils/actions.util.read.js.map +0 -1
  592. package/dist/api/services/integrationsApi.service.d.ts +0 -18
  593. package/dist/api/services/integrationsApi.service.js +0 -80
  594. package/dist/api/services/integrationsApi.service.js.map +0 -1
  595. package/dist/api/services/workspaceSecretsApi.service.d.ts +0 -75
  596. package/dist/api/services/workspaceSecretsApi.service.js +0 -62
  597. package/dist/api/services/workspaceSecretsApi.service.js.map +0 -1
  598. package/dist/appBuilder/services/app.service.d.ts +0 -111
  599. package/dist/appBuilder/services/app.service.js +0 -737
  600. package/dist/appBuilder/services/app.service.js.map +0 -1
  601. package/dist/appBuilder/services/appBuilder.service.d.ts +0 -111
  602. package/dist/appBuilder/services/appBuilder.service.js +0 -662
  603. package/dist/appBuilder/services/appBuilder.service.js.map +0 -1
  604. package/dist/appBuilder/utils/objects.utils.d.ts +0 -3
  605. package/dist/appBuilder/utils/objects.utils.js +0 -9
  606. package/dist/appBuilder/utils/objects.utils.js.map +0 -1
  607. package/dist/appBuilder/utils/string.utils.d.ts +0 -2
  608. package/dist/appBuilder/utils/string.utils.js +0 -57
  609. package/dist/appBuilder/utils/string.utils.js.map +0 -1
  610. package/dist/appBuilder/validators/index.d.ts +0 -19
  611. package/dist/appBuilder/validators/index.js +0 -40
  612. package/dist/appBuilder/validators/index.js.map +0 -1
  613. package/dist/appBuilder/validators/joi-validators/create.app.validator.d.ts +0 -3
  614. package/dist/appBuilder/validators/joi-validators/create.app.validator.js +0 -10
  615. package/dist/appBuilder/validators/joi-validators/create.app.validator.js.map +0 -1
  616. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.d.ts +0 -4
  617. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js +0 -20
  618. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js.map +0 -1
  619. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.d.ts +0 -7
  620. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js +0 -44
  621. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js.map +0 -1
  622. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.d.ts +0 -3
  623. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js +0 -31
  624. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js.map +0 -1
  625. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.d.ts +0 -4
  626. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js +0 -11
  627. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js.map +0 -1
  628. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.d.ts +0 -4
  629. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js +0 -12
  630. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js.map +0 -1
  631. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.d.ts +0 -4
  632. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js +0 -17
  633. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js.map +0 -1
  634. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  635. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js +0 -30
  636. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  637. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.d.ts +0 -4
  638. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js +0 -14
  639. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js.map +0 -1
  640. package/dist/appBuilder/validators/joi-validators/sample.validator.d.ts +0 -5
  641. package/dist/appBuilder/validators/joi-validators/sample.validator.js +0 -26
  642. package/dist/appBuilder/validators/joi-validators/sample.validator.js.map +0 -1
  643. package/dist/appBuilder/validators/joi-validators/update.app.validator.d.ts +0 -4
  644. package/dist/appBuilder/validators/joi-validators/update.app.validator.js +0 -34
  645. package/dist/appBuilder/validators/joi-validators/update.app.validator.js.map +0 -1
  646. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.d.ts +0 -4
  647. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js +0 -23
  648. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js.map +0 -1
  649. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.d.ts +0 -3
  650. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js +0 -21
  651. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js.map +0 -1
  652. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.d.ts +0 -4
  653. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js +0 -19
  654. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js.map +0 -1
  655. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.d.ts +0 -4
  656. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js +0 -12
  657. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js.map +0 -1
  658. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.d.ts +0 -4
  659. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js +0 -17
  660. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js.map +0 -1
  661. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  662. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js +0 -16
  663. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  664. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.d.ts +0 -4
  665. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js +0 -14
  666. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js.map +0 -1
  667. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.d.ts +0 -3
  668. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js +0 -27
  669. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js.map +0 -1
  670. package/dist/apps/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  671. package/dist/apps/validators/joi-validators/create.appEvent.validator.js +0 -30
  672. package/dist/apps/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  673. package/dist/apps/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  674. package/dist/apps/validators/joi-validators/update.appEvent.validator.js +0 -16
  675. package/dist/apps/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  676. package/dist/clients/integrations.client.d.ts +0 -2
  677. package/dist/clients/integrations.client.js +0 -26
  678. package/dist/clients/integrations.client.js.map +0 -1
  679. package/dist/database/database.service.d.ts +0 -232
  680. package/dist/database/database.service.js +0 -802
  681. package/dist/database/database.service.js.map +0 -1
  682. package/dist/database/types/aggregation.types.d.ts +0 -261
  683. package/dist/database/types/aggregation.types.js +0 -21
  684. package/dist/database/types/aggregation.types.js.map +0 -1
  685. package/dist/database/types/connection.types.d.ts +0 -132
  686. package/dist/database/types/connection.types.js +0 -6
  687. package/dist/database/types/connection.types.js.map +0 -1
  688. package/dist/database/types/database.types.d.ts +0 -175
  689. package/dist/database/types/database.types.js +0 -75
  690. package/dist/database/types/database.types.js.map +0 -1
  691. package/dist/database/types/index.types.d.ts +0 -220
  692. package/dist/database/types/index.types.js +0 -27
  693. package/dist/database/types/index.types.js.map +0 -1
  694. package/dist/database/types/migration.types.d.ts +0 -205
  695. package/dist/database/types/migration.types.js +0 -44
  696. package/dist/database/types/migration.types.js.map +0 -1
  697. package/dist/database/types/query.types.d.ts +0 -305
  698. package/dist/database/types/query.types.js +0 -57
  699. package/dist/database/types/query.types.js.map +0 -1
  700. package/dist/database/types/result.types.d.ts +0 -220
  701. package/dist/database/types/result.types.js +0 -6
  702. package/dist/database/types/result.types.js.map +0 -1
  703. package/dist/database/types/schema.types.d.ts +0 -190
  704. package/dist/database/types/schema.types.js +0 -69
  705. package/dist/database/types/schema.types.js.map +0 -1
  706. package/dist/database/utils/helpers.d.ts +0 -66
  707. package/dist/database/utils/helpers.js +0 -501
  708. package/dist/database/utils/helpers.js.map +0 -1
  709. package/dist/database/utils/migration.utils.d.ts +0 -151
  710. package/dist/database/utils/migration.utils.js +0 -476
  711. package/dist/database/utils/migration.utils.js.map +0 -1
  712. package/dist/database/utils/transaction.d.ts +0 -64
  713. package/dist/database/utils/transaction.js +0 -130
  714. package/dist/database/utils/transaction.js.map +0 -1
  715. package/dist/database/validators/connection.validator.d.ts +0 -20
  716. package/dist/database/validators/connection.validator.js +0 -267
  717. package/dist/database/validators/connection.validator.js.map +0 -1
  718. package/dist/database/validators/query.validator.d.ts +0 -31
  719. package/dist/database/validators/query.validator.js +0 -305
  720. package/dist/database/validators/query.validator.js.map +0 -1
  721. package/dist/database/validators/schema.validator.d.ts +0 -31
  722. package/dist/database/validators/schema.validator.js +0 -334
  723. package/dist/database/validators/schema.validator.js.map +0 -1
  724. package/dist/graph/graph.service.d.ts +0 -278
  725. package/dist/graph/graph.service.js +0 -687
  726. package/dist/graph/graph.service.js.map +0 -1
  727. package/dist/graph/types/connection.types.d.ts +0 -158
  728. package/dist/graph/types/connection.types.js +0 -43
  729. package/dist/graph/types/connection.types.js.map +0 -1
  730. package/dist/graph/types/graph.types.d.ts +0 -144
  731. package/dist/graph/types/graph.types.js +0 -84
  732. package/dist/graph/types/graph.types.js.map +0 -1
  733. package/dist/graph/types/node.types.d.ts +0 -193
  734. package/dist/graph/types/node.types.js +0 -49
  735. package/dist/graph/types/node.types.js.map +0 -1
  736. package/dist/graph/types/path.types.d.ts +0 -224
  737. package/dist/graph/types/path.types.js +0 -38
  738. package/dist/graph/types/path.types.js.map +0 -1
  739. package/dist/graph/types/query.types.d.ts +0 -247
  740. package/dist/graph/types/query.types.js +0 -23
  741. package/dist/graph/types/query.types.js.map +0 -1
  742. package/dist/graph/types/relationship.types.d.ts +0 -224
  743. package/dist/graph/types/relationship.types.js +0 -35
  744. package/dist/graph/types/relationship.types.js.map +0 -1
  745. package/dist/graph/types/result.types.d.ts +0 -237
  746. package/dist/graph/types/result.types.js +0 -7
  747. package/dist/graph/types/result.types.js.map +0 -1
  748. package/dist/graph/validators/index.d.ts +0 -81
  749. package/dist/graph/validators/index.js +0 -243
  750. package/dist/graph/validators/index.js.map +0 -1
  751. package/dist/integrationsBuilder/services/integration.service.d.ts +0 -138
  752. package/dist/integrationsBuilder/services/integration.service.js +0 -1148
  753. package/dist/integrationsBuilder/services/integration.service.js.map +0 -1
  754. package/dist/integrationsBuilder/services/integrationBuilder.service.d.ts +0 -130
  755. package/dist/integrationsBuilder/services/integrationBuilder.service.js +0 -1017
  756. package/dist/integrationsBuilder/services/integrationBuilder.service.js.map +0 -1
  757. package/dist/integrationsBuilder/utils/objects.utils.d.ts +0 -2
  758. package/dist/integrationsBuilder/utils/objects.utils.js +0 -48
  759. package/dist/integrationsBuilder/utils/objects.utils.js.map +0 -1
  760. package/dist/integrationsBuilder/utils/string.utils.d.ts +0 -1
  761. package/dist/integrationsBuilder/utils/string.utils.js +0 -9
  762. package/dist/integrationsBuilder/utils/string.utils.js.map +0 -1
  763. package/dist/integrationsBuilder/validators/index.d.ts +0 -18
  764. package/dist/integrationsBuilder/validators/index.js +0 -38
  765. package/dist/integrationsBuilder/validators/index.js.map +0 -1
  766. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.d.ts +0 -3
  767. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js +0 -10
  768. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js.map +0 -1
  769. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.d.ts +0 -4
  770. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js +0 -26
  771. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js.map +0 -1
  772. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.d.ts +0 -3
  773. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js +0 -8
  774. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js.map +0 -1
  775. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.d.ts +0 -3
  776. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js +0 -8
  777. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js.map +0 -1
  778. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.d.ts +0 -3
  779. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js +0 -10
  780. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js.map +0 -1
  781. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.d.ts +0 -3
  782. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js +0 -60
  783. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js.map +0 -1
  784. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.d.ts +0 -3
  785. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js +0 -8
  786. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js.map +0 -1
  787. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.d.ts +0 -3
  788. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js +0 -8
  789. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js.map +0 -1
  790. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.d.ts +0 -3
  791. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js +0 -8
  792. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js.map +0 -1
  793. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.d.ts +0 -3
  794. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js +0 -9
  795. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js.map +0 -1
  796. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.d.ts +0 -3
  797. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js +0 -8
  798. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js.map +0 -1
  799. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.d.ts +0 -3
  800. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js +0 -8
  801. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js.map +0 -1
  802. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.d.ts +0 -3
  803. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js +0 -8
  804. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js.map +0 -1
  805. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.d.ts +0 -3
  806. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js +0 -8
  807. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js.map +0 -1
  808. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.d.ts +0 -3
  809. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js +0 -8
  810. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js.map +0 -1
  811. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.d.ts +0 -3
  812. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js +0 -8
  813. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js.map +0 -1
  814. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.d.ts +0 -3
  815. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js +0 -8
  816. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js.map +0 -1
  817. package/dist/postman.d.ts +0 -1
  818. package/dist/postman.js +0 -21674
  819. package/dist/postman.js.map +0 -1
  820. package/dist/processor/utils/mongo.util.d.ts +0 -0
  821. package/dist/processor/utils/mongo.util.js +0 -152
  822. package/dist/processor/utils/mongo.util.js.map +0 -1
  823. package/dist/processor/utils/postgres.util.d.ts +0 -14
  824. package/dist/processor/utils/postgres.util.js +0 -83
  825. package/dist/processor/utils/postgres.util.js.map +0 -1
  826. package/dist/products/services/utils/crypt.utils.d.ts +0 -1
  827. package/dist/products/services/utils/crypt.utils.js +0 -17
  828. package/dist/products/services/utils/crypt.utils.js.map +0 -1
  829. package/dist/products/services/utils/functions.utils.d.ts +0 -13
  830. package/dist/products/services/utils/functions.utils.js +0 -289
  831. package/dist/products/services/utils/functions.utils.js.map +0 -1
  832. package/dist/products/services/utils/objects.utils.d.ts +0 -13
  833. package/dist/products/services/utils/objects.utils.js +0 -89
  834. package/dist/products/services/utils/objects.utils.js.map +0 -1
  835. package/dist/products/services/utils/string.utils.d.ts +0 -12
  836. package/dist/products/services/utils/string.utils.js +0 -168
  837. package/dist/products/services/utils/string.utils.js.map +0 -1
  838. package/dist/products/validators/joi-validators/create.product.validator.d.ts +0 -3
  839. package/dist/products/validators/joi-validators/create.product.validator.js +0 -10
  840. package/dist/products/validators/joi-validators/create.product.validator.js.map +0 -1
  841. package/dist/products/validators/joi-validators/create.productGraphAction.validator.d.ts +0 -14
  842. package/dist/products/validators/joi-validators/create.productGraphAction.validator.js +0 -696
  843. package/dist/products/validators/joi-validators/create.productGraphAction.validator.js.map +0 -1
  844. package/dist/products/validators/joi-validators/update.productGraphAction.validator.d.ts +0 -7
  845. package/dist/products/validators/joi-validators/update.productGraphAction.validator.js +0 -72
  846. package/dist/products/validators/joi-validators/update.productGraphAction.validator.js.map +0 -1
  847. package/dist/test.appBuilder.js +0 -14
  848. package/dist/test.appBuilder.js.map +0 -1
  849. package/dist/test.import.d.ts +0 -0
  850. package/dist/test.import.js +0 -24
  851. package/dist/test.import.js.map +0 -1
  852. package/dist/test.imports.js +0 -28
  853. package/dist/test.imports.js.map +0 -1
  854. package/dist/test.integrationBuilder.js +0 -276
  855. package/dist/test.integrationBuilder.js.map +0 -1
  856. package/dist/test.processor.d.ts +0 -1
  857. package/dist/test.processor.js +0 -23
  858. package/dist/test.processor.js.map +0 -1
  859. package/dist/test.utils.d.ts +0 -1
  860. package/dist/test.utils.js +0 -25
  861. package/dist/test.utils.js.map +0 -1
  862. package/dist/tsconfig.tsbuildinfo +0 -1
  863. package/dist/types/integrationsBuilder.types.d.ts +0 -276
  864. package/dist/types/integrationsBuilder.types.js +0 -51
  865. package/dist/types/integrationsBuilder.types.js.map +0 -1
  866. /package/dist/{test.appBuilder.d.ts → test/test.database.d.ts} +0 -0
  867. /package/dist/{test.imports.d.ts → test/test.storage.d.ts} +0 -0
  868. /package/dist/{test.integrationBuilder.d.ts → test/test.triggers.d.ts} +0 -0
@@ -0,0 +1,1019 @@
1
+ "use strict";
2
+ /**
3
+ * Cassandra Adapter
4
+ *
5
+ * Database adapter for Apache Cassandra using the 'cassandra-driver' library.
6
+ * Implements all methods from BaseAdapter with Cassandra-specific operations.
7
+ *
8
+ * Key Cassandra concepts:
9
+ * - Keyspace (like a database/schema)
10
+ * - Column family/Table
11
+ * - Partition key and clustering columns
12
+ * - No JOINs - denormalized data model
13
+ * - No transactions in the traditional sense (uses lightweight transactions)
14
+ * - Eventual consistency by default
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.CassandraAdapter = void 0;
51
+ const base_adapter_1 = require("./base.adapter");
52
+ const enums_1 = require("../types/enums");
53
+ const database_error_1 = require("../utils/database-error");
54
+ /**
55
+ * Cassandra database adapter
56
+ * Provides Cassandra-specific implementations for all database operations
57
+ */
58
+ class CassandraAdapter extends base_adapter_1.BaseAdapter {
59
+ constructor() {
60
+ super(...arguments);
61
+ this.databaseType = enums_1.DatabaseType.CASSANDRA;
62
+ this.cassandraClient = null;
63
+ this.keyspace = '';
64
+ }
65
+ // ==================== CONNECTION METHODS ====================
66
+ async connect(options) {
67
+ try {
68
+ // Dynamic import of cassandra-driver
69
+ const cassandra = await Promise.resolve().then(() => __importStar(require('cassandra-driver')));
70
+ this.connectionUrl = options.connectionUrl;
71
+ // Parse connection URL: cassandra://host1,host2:port/keyspace
72
+ const url = new URL(options.connectionUrl);
73
+ const hosts = url.hostname.split(',');
74
+ const port = parseInt(url.port) || 9042;
75
+ this.keyspace = url.pathname.slice(1) || 'system';
76
+ const clientOptions = {
77
+ contactPoints: hosts,
78
+ localDataCenter: 'datacenter1', // Default, can be overridden
79
+ keyspace: this.keyspace,
80
+ protocolOptions: { port },
81
+ };
82
+ // Authentication
83
+ if (url.username && url.password) {
84
+ clientOptions.credentials = {
85
+ username: url.username,
86
+ password: url.password,
87
+ };
88
+ }
89
+ // Parse query parameters for additional options
90
+ const params = new URLSearchParams(url.search);
91
+ if (params.get('datacenter')) {
92
+ clientOptions.localDataCenter = params.get('datacenter');
93
+ }
94
+ this.cassandraClient = new cassandra.Client(clientOptions);
95
+ await this.cassandraClient.connect();
96
+ // Get cluster information
97
+ const metadata = this.cassandraClient.metadata;
98
+ const version = await this.getClusterVersion();
99
+ this.client = this.cassandraClient;
100
+ this.connected = true;
101
+ return {
102
+ connected: true,
103
+ version: `Cassandra ${version}`,
104
+ };
105
+ }
106
+ catch (error) {
107
+ throw database_error_1.DatabaseError.connectionError(`Failed to connect to Cassandra: ${error.message}`, error);
108
+ }
109
+ }
110
+ async testConnection(options) {
111
+ var _a;
112
+ try {
113
+ const cassandra = await Promise.resolve().then(() => __importStar(require('cassandra-driver')));
114
+ const url = new URL(options.connectionUrl);
115
+ const hosts = url.hostname.split(',');
116
+ const port = parseInt(url.port) || 9042;
117
+ const keyspace = url.pathname.slice(1) || 'system';
118
+ const client = new cassandra.Client({
119
+ contactPoints: hosts,
120
+ localDataCenter: 'datacenter1',
121
+ keyspace,
122
+ protocolOptions: { port },
123
+ });
124
+ await client.connect();
125
+ const result = await client.execute('SELECT release_version FROM system.local');
126
+ const version = ((_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.release_version) || 'unknown';
127
+ await client.shutdown();
128
+ return {
129
+ connected: true,
130
+ version: `Cassandra ${version}`,
131
+ };
132
+ }
133
+ catch (error) {
134
+ return {
135
+ connected: false,
136
+ error: error.message,
137
+ };
138
+ }
139
+ }
140
+ async disconnect() {
141
+ if (this.cassandraClient) {
142
+ await this.cassandraClient.shutdown();
143
+ this.cassandraClient = null;
144
+ this.client = null;
145
+ this.connected = false;
146
+ }
147
+ }
148
+ // ==================== QUERY METHODS ====================
149
+ async query(query) {
150
+ this.ensureConnected();
151
+ try {
152
+ const result = await this.cassandraClient.execute(query.sql, query.params, {
153
+ prepare: true,
154
+ });
155
+ return {
156
+ data: result.rows,
157
+ count: result.rows.length,
158
+ };
159
+ }
160
+ catch (error) {
161
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
162
+ }
163
+ }
164
+ async raw(options) {
165
+ this.ensureConnected();
166
+ try {
167
+ const result = await this.cassandraClient.execute(options.query, options.params, { prepare: true });
168
+ return {
169
+ data: result.rows,
170
+ count: result.rows.length,
171
+ };
172
+ }
173
+ catch (error) {
174
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
175
+ }
176
+ }
177
+ // ==================== WRITE METHODS ====================
178
+ async insert(options) {
179
+ var _a;
180
+ this.ensureConnected();
181
+ try {
182
+ const data = Array.isArray(options.data) ? options.data : [options.data];
183
+ if (data.length === 0) {
184
+ return { data: [], count: 0, insertedIds: [] };
185
+ }
186
+ const insertedIds = [];
187
+ // Use batch for multiple inserts
188
+ if (data.length > 1) {
189
+ const queries = data.map(record => {
190
+ const columns = Object.keys(record);
191
+ const values = Object.values(record);
192
+ const placeholders = columns.map(() => '?').join(', ');
193
+ return {
194
+ query: `INSERT INTO ${this.escapeIdentifier(options.table)} (${columns.join(', ')}) VALUES (${placeholders})`,
195
+ params: values,
196
+ };
197
+ });
198
+ await this.cassandraClient.batch(queries, { prepare: true });
199
+ }
200
+ else {
201
+ const record = data[0];
202
+ const columns = Object.keys(record);
203
+ const values = Object.values(record);
204
+ const placeholders = columns.map(() => '?').join(', ');
205
+ let sql = `INSERT INTO ${this.escapeIdentifier(options.table)} (${columns.join(', ')}) VALUES (${placeholders})`;
206
+ // Handle IF NOT EXISTS for conflict handling
207
+ if (((_a = options.onConflict) === null || _a === void 0 ? void 0 : _a.action) === 'ignore') {
208
+ sql += ' IF NOT EXISTS';
209
+ }
210
+ await this.cassandraClient.execute(sql, values, { prepare: true });
211
+ }
212
+ // Cassandra doesn't return inserted IDs
213
+ data.forEach(record => {
214
+ insertedIds.push(record.id || record._id || null);
215
+ });
216
+ return {
217
+ data: options.returning ? data : [],
218
+ count: data.length,
219
+ insertedIds,
220
+ };
221
+ }
222
+ catch (error) {
223
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
224
+ }
225
+ }
226
+ async update(options) {
227
+ this.ensureConnected();
228
+ try {
229
+ const setClauses = [];
230
+ const values = [];
231
+ // Build SET clause
232
+ for (const [key, value] of Object.entries(options.data)) {
233
+ if (value && typeof value === 'object' && this.isUpdateOperator(value)) {
234
+ // Handle update operators
235
+ if ('$INC' in value) {
236
+ // Cassandra supports counter increment
237
+ setClauses.push(`${key} = ${key} + ?`);
238
+ values.push(value.$INC);
239
+ }
240
+ else if ('$DEC' in value) {
241
+ // Cassandra supports counter decrement
242
+ setClauses.push(`${key} = ${key} - ?`);
243
+ values.push(value.$DEC);
244
+ }
245
+ else if ('$SET' in value) {
246
+ setClauses.push(`${key} = ?`);
247
+ values.push(value.$SET);
248
+ }
249
+ else if ('$UNSET' in value && value.$UNSET) {
250
+ // Cassandra uses DELETE for removing columns, or set to null
251
+ setClauses.push(`${key} = null`);
252
+ }
253
+ else if ('$PUSH' in value) {
254
+ // Cassandra list append
255
+ setClauses.push(`${key} = ${key} + ?`);
256
+ values.push([value.$PUSH]);
257
+ }
258
+ else if ('$PULL' in value) {
259
+ // Cassandra list remove
260
+ setClauses.push(`${key} = ${key} - ?`);
261
+ values.push([value.$PULL]);
262
+ }
263
+ else if ('$ADDTOSET' in value) {
264
+ // Cassandra set add
265
+ setClauses.push(`${key} = ${key} + ?`);
266
+ values.push(new Set([value.$ADDTOSET]));
267
+ }
268
+ else if ('$MUL' in value) {
269
+ // Cassandra doesn't support multiply natively - log warning
270
+ console.warn(`Cassandra does not support $MUL operator natively for column ${key}`);
271
+ setClauses.push(`${key} = ?`);
272
+ values.push(value.$MUL); // Just set the multiplier value as fallback
273
+ }
274
+ else if ('$MIN' in value || '$MAX' in value) {
275
+ // Cassandra doesn't support min/max natively - log warning
276
+ console.warn(`Cassandra does not support $MIN/$MAX operator natively for column ${key}`);
277
+ setClauses.push(`${key} = ?`);
278
+ values.push(value.$MIN || value.$MAX); // Just set the value as fallback
279
+ }
280
+ }
281
+ else {
282
+ setClauses.push(`${key} = ?`);
283
+ values.push(value);
284
+ }
285
+ }
286
+ let sql = `UPDATE ${this.escapeIdentifier(options.table)} SET ${setClauses.join(', ')}`;
287
+ // Build WHERE clause (required in Cassandra)
288
+ if (options.where) {
289
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
290
+ sql += ` WHERE ${whereClause}`;
291
+ values.push(...whereParams);
292
+ }
293
+ else {
294
+ throw new database_error_1.DatabaseError('Cassandra UPDATE requires a WHERE clause with primary key', enums_1.DatabaseErrorType.QUERY_ERROR);
295
+ }
296
+ await this.cassandraClient.execute(sql, values, { prepare: true });
297
+ return {
298
+ data: [],
299
+ count: 1, // Cassandra doesn't return affected rows
300
+ };
301
+ }
302
+ catch (error) {
303
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
304
+ }
305
+ }
306
+ async delete(options) {
307
+ this.ensureConnected();
308
+ try {
309
+ let sql = `DELETE FROM ${this.escapeIdentifier(options.table)}`;
310
+ const values = [];
311
+ // Build WHERE clause (required in Cassandra)
312
+ if (options.where) {
313
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
314
+ sql += ` WHERE ${whereClause}`;
315
+ values.push(...whereParams);
316
+ }
317
+ else {
318
+ throw new database_error_1.DatabaseError('Cassandra DELETE requires a WHERE clause with primary key', enums_1.DatabaseErrorType.QUERY_ERROR);
319
+ }
320
+ await this.cassandraClient.execute(sql, values, { prepare: true });
321
+ return {
322
+ count: 1, // Cassandra doesn't return affected rows
323
+ };
324
+ }
325
+ catch (error) {
326
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
327
+ }
328
+ }
329
+ async upsert(options) {
330
+ this.ensureConnected();
331
+ try {
332
+ // Cassandra INSERT is an upsert by default
333
+ const result = await this.insert(Object.assign(Object.assign({}, options), { returning: true }));
334
+ return {
335
+ data: result.data,
336
+ count: result.count,
337
+ operation: 'inserted', // Cassandra doesn't distinguish
338
+ };
339
+ }
340
+ catch (error) {
341
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
342
+ }
343
+ }
344
+ // ==================== AGGREGATION METHODS ====================
345
+ async count(options) {
346
+ this.ensureConnected();
347
+ try {
348
+ let sql = `SELECT COUNT(*) as count FROM ${this.escapeIdentifier(options.table)}`;
349
+ const values = [];
350
+ if (options.where) {
351
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
352
+ sql += ` WHERE ${whereClause}`;
353
+ values.push(...whereParams);
354
+ }
355
+ // Note: Cassandra's COUNT can be slow on large tables
356
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
357
+ return Number(result.rows[0].count) || 0;
358
+ }
359
+ catch (error) {
360
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
361
+ }
362
+ }
363
+ async sum(options) {
364
+ this.ensureConnected();
365
+ try {
366
+ // Cassandra doesn't have SUM, need to fetch and compute
367
+ let sql = `SELECT ${this.escapeIdentifier(options.column)} FROM ${this.escapeIdentifier(options.table)}`;
368
+ const values = [];
369
+ if (options.where) {
370
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
371
+ sql += ` WHERE ${whereClause}`;
372
+ values.push(...whereParams);
373
+ }
374
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
375
+ return result.rows.reduce((sum, row) => sum + (Number(row[options.column]) || 0), 0);
376
+ }
377
+ catch (error) {
378
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
379
+ }
380
+ }
381
+ async avg(options) {
382
+ this.ensureConnected();
383
+ try {
384
+ // Cassandra doesn't have AVG, need to fetch and compute
385
+ let sql = `SELECT ${this.escapeIdentifier(options.column)} FROM ${this.escapeIdentifier(options.table)}`;
386
+ const values = [];
387
+ if (options.where) {
388
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
389
+ sql += ` WHERE ${whereClause}`;
390
+ values.push(...whereParams);
391
+ }
392
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
393
+ const rows = result.rows;
394
+ if (rows.length === 0)
395
+ return 0;
396
+ const sum = rows.reduce((acc, row) => acc + (Number(row[options.column]) || 0), 0);
397
+ return sum / rows.length;
398
+ }
399
+ catch (error) {
400
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
401
+ }
402
+ }
403
+ async min(options) {
404
+ var _a;
405
+ this.ensureConnected();
406
+ try {
407
+ // Use MIN function (CQL supports this)
408
+ let sql = `SELECT MIN(${this.escapeIdentifier(options.column)}) as min FROM ${this.escapeIdentifier(options.table)}`;
409
+ const values = [];
410
+ if (options.where) {
411
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
412
+ sql += ` WHERE ${whereClause}`;
413
+ values.push(...whereParams);
414
+ }
415
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
416
+ return (_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.min;
417
+ }
418
+ catch (error) {
419
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
420
+ }
421
+ }
422
+ async max(options) {
423
+ var _a;
424
+ this.ensureConnected();
425
+ try {
426
+ // Use MAX function (CQL supports this)
427
+ let sql = `SELECT MAX(${this.escapeIdentifier(options.column)}) as max FROM ${this.escapeIdentifier(options.table)}`;
428
+ const values = [];
429
+ if (options.where) {
430
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
431
+ sql += ` WHERE ${whereClause}`;
432
+ values.push(...whereParams);
433
+ }
434
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
435
+ return (_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.max;
436
+ }
437
+ catch (error) {
438
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
439
+ }
440
+ }
441
+ async aggregate(builtAggregation) {
442
+ this.ensureConnected();
443
+ try {
444
+ // Cassandra has limited aggregation support
445
+ // We'll execute and compute in memory
446
+ const options = builtAggregation.options;
447
+ let sql = `SELECT * FROM ${this.escapeIdentifier(options.table)}`;
448
+ const values = [];
449
+ if (options.where) {
450
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
451
+ sql += ` WHERE ${whereClause}`;
452
+ values.push(...whereParams);
453
+ }
454
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
455
+ const rows = result.rows;
456
+ const aggregateResult = {};
457
+ const operations = options.operations || {};
458
+ for (const [alias, op] of Object.entries(operations)) {
459
+ const operation = op;
460
+ if (operation.$COUNT) {
461
+ aggregateResult[alias] = rows.length;
462
+ }
463
+ else if (operation.$SUM) {
464
+ aggregateResult[alias] = rows.reduce((sum, row) => sum + (Number(row[operation.$SUM]) || 0), 0);
465
+ }
466
+ else if (operation.$AVG) {
467
+ const values = rows.map((row) => Number(row[operation.$AVG]) || 0);
468
+ aggregateResult[alias] = values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : 0;
469
+ }
470
+ else if (operation.$MIN) {
471
+ const values = rows.map((row) => row[operation.$MIN]).filter((v) => v != null);
472
+ aggregateResult[alias] = values.length > 0 ? Math.min(...values) : null;
473
+ }
474
+ else if (operation.$MAX) {
475
+ const values = rows.map((row) => row[operation.$MAX]).filter((v) => v != null);
476
+ aggregateResult[alias] = values.length > 0 ? Math.max(...values) : null;
477
+ }
478
+ }
479
+ return aggregateResult;
480
+ }
481
+ catch (error) {
482
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
483
+ }
484
+ }
485
+ async groupBy(builtGroupBy) {
486
+ this.ensureConnected();
487
+ try {
488
+ // Cassandra doesn't support GROUP BY in the same way as SQL
489
+ // We need to fetch and group in memory
490
+ const options = builtGroupBy.options;
491
+ let sql = `SELECT * FROM ${this.escapeIdentifier(options.table)}`;
492
+ const values = [];
493
+ if (options.where) {
494
+ const { whereClause, whereParams } = this.buildWhereClause(options.where);
495
+ sql += ` WHERE ${whereClause}`;
496
+ values.push(...whereParams);
497
+ }
498
+ const result = await this.cassandraClient.execute(sql, values, { prepare: true });
499
+ const rows = result.rows;
500
+ // Group in memory
501
+ const groups = new Map();
502
+ const groupByColumns = options.groupBy || [];
503
+ for (const row of rows) {
504
+ const groupKey = groupByColumns.map((col) => String(row[col])).join('|');
505
+ if (!groups.has(groupKey)) {
506
+ groups.set(groupKey, []);
507
+ }
508
+ groups.get(groupKey).push(row);
509
+ }
510
+ // Compute aggregations
511
+ const results = [];
512
+ const operations = options.operations || {};
513
+ for (const [groupKey, groupRows] of groups) {
514
+ const group = {};
515
+ const keyParts = groupKey.split('|');
516
+ groupByColumns.forEach((col, i) => {
517
+ group[col] = keyParts[i];
518
+ });
519
+ const aggregates = {};
520
+ for (const [alias, op] of Object.entries(operations)) {
521
+ const operation = op;
522
+ if (operation.$COUNT) {
523
+ aggregates[alias] = groupRows.length;
524
+ }
525
+ else if (operation.$SUM) {
526
+ aggregates[alias] = groupRows.reduce((sum, row) => sum + (Number(row[operation.$SUM]) || 0), 0);
527
+ }
528
+ else if (operation.$AVG) {
529
+ const values = groupRows.map((row) => Number(row[operation.$AVG]) || 0);
530
+ aggregates[alias] = values.length > 0 ? values.reduce((a, b) => a + b, 0) / values.length : 0;
531
+ }
532
+ else if (operation.$MIN) {
533
+ const values = groupRows.map((row) => row[operation.$MIN]).filter((v) => v != null);
534
+ aggregates[alias] = values.length > 0 ? Math.min(...values) : null;
535
+ }
536
+ else if (operation.$MAX) {
537
+ const values = groupRows.map((row) => row[operation.$MAX]).filter((v) => v != null);
538
+ aggregates[alias] = values.length > 0 ? Math.max(...values) : null;
539
+ }
540
+ }
541
+ results.push({ group, aggregates: aggregates });
542
+ }
543
+ return results;
544
+ }
545
+ catch (error) {
546
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'cassandra');
547
+ }
548
+ }
549
+ // ==================== TRANSACTION METHODS ====================
550
+ //
551
+ // ⚠️ IMPORTANT: Cassandra Transaction Limitations
552
+ //
553
+ // Cassandra does NOT support traditional ACID transactions across multiple statements.
554
+ // What Cassandra offers instead:
555
+ //
556
+ // 1. Lightweight Transactions (LWT): Single-statement atomicity with IF conditions
557
+ // Example: INSERT INTO users (id, email) VALUES (?, ?) IF NOT EXISTS
558
+ //
559
+ // 2. Batched Writes: Atomic writes to a single partition (LOGGED BATCH)
560
+ // Note: Batches across partitions are NOT atomic
561
+ //
562
+ // 3. Per-Statement Atomicity: Each CQL statement is atomic on its own
563
+ //
564
+ // The methods below provide a transaction-like interface for API compatibility,
565
+ // but they DO NOT provide multi-statement ACID guarantees. Operations are
566
+ // collected but not executed atomically as a group.
567
+ //
568
+ // For true transactional semantics, consider:
569
+ // - Using a different database for transactional workloads
570
+ // - Designing your data model for single-partition operations
571
+ // - Implementing application-level compensation patterns (Saga pattern)
572
+ //
573
+ async beginTransaction(isolationLevel, readOnly, timeout) {
574
+ // WARNING: This creates a transaction context for API compatibility only.
575
+ // Cassandra does not support multi-statement transactions.
576
+ // Operations collected here will NOT be executed atomically.
577
+ console.warn('[Cassandra] beginTransaction called, but Cassandra does not support ' +
578
+ 'multi-statement ACID transactions. Operations will be executed individually. ' +
579
+ 'Consider using Lightweight Transactions (LWT) with IF conditions for single-statement atomicity.');
580
+ const id = `cass_lwt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
581
+ return {
582
+ id,
583
+ databaseType: 'cassandra',
584
+ isolationLevel: enums_1.IsolationLevel.SERIALIZABLE, // LWT provides serializable-like semantics for single statements
585
+ readOnly: readOnly || false,
586
+ timeout,
587
+ startedAt: new Date(),
588
+ client: {
589
+ operations: [],
590
+ },
591
+ savepoints: new Map(),
592
+ status: 'active',
593
+ };
594
+ }
595
+ async commitTransaction(context) {
596
+ // WARNING: This does not provide atomic commit across multiple operations.
597
+ // Each operation was (or should be) executed individually.
598
+ // This method only updates the context status for API compatibility.
599
+ console.warn('[Cassandra] commitTransaction called, but Cassandra does not support ' +
600
+ 'atomic commits across multiple statements. Status updated for API compatibility only.');
601
+ context.status = 'committed';
602
+ }
603
+ async rollbackTransaction(context) {
604
+ // WARNING: Cassandra cannot rollback already-executed operations.
605
+ // This only clears pending operations that haven't been executed yet.
606
+ console.warn('[Cassandra] rollbackTransaction called, but Cassandra cannot rollback ' +
607
+ 'already-executed operations. Only pending operations are cleared.');
608
+ context.client.operations = [];
609
+ context.status = 'rolled_back';
610
+ }
611
+ async createSavepoint(context, name) {
612
+ throw new database_error_1.DatabaseError('Cassandra does not support savepoints.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
613
+ }
614
+ async releaseSavepoint(context, savepoint) {
615
+ throw new database_error_1.DatabaseError('Cassandra does not support savepoints.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
616
+ }
617
+ async rollbackToSavepoint(context, savepoint) {
618
+ throw new database_error_1.DatabaseError('Cassandra does not support savepoints.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
619
+ }
620
+ supportsSavepoints() {
621
+ return false;
622
+ }
623
+ // ==================== SCHEMA METHODS ====================
624
+ async createTable(definition, options) {
625
+ this.ensureConnected();
626
+ try {
627
+ const columnDefs = definition.columns.map(col => this.buildColumnDefinition(col)).join(', ');
628
+ // Find primary key
629
+ const pkColumns = definition.columns.filter(c => c.primaryKey);
630
+ if (pkColumns.length === 0) {
631
+ throw new Error('Cassandra tables require at least one primary key column');
632
+ }
633
+ const primaryKeyDef = `PRIMARY KEY (${pkColumns.map(c => c.name).join(', ')})`;
634
+ let sql = `CREATE TABLE`;
635
+ if (options === null || options === void 0 ? void 0 : options.ifNotExists)
636
+ sql += ' IF NOT EXISTS';
637
+ sql += ` ${this.escapeIdentifier(definition.name)} (${columnDefs}, ${primaryKeyDef})`;
638
+ await this.cassandraClient.execute(sql);
639
+ // Create indexes
640
+ if (definition.indexes) {
641
+ for (const index of definition.indexes) {
642
+ await this.createIndex(index);
643
+ }
644
+ }
645
+ }
646
+ catch (error) {
647
+ throw database_error_1.DatabaseError.schemaError(`Failed to create table: ${error.message}`, error);
648
+ }
649
+ }
650
+ async alterTable(tableName, operations) {
651
+ this.ensureConnected();
652
+ try {
653
+ for (const op of operations) {
654
+ let sql = `ALTER TABLE ${this.escapeIdentifier(tableName)}`;
655
+ switch (op.type) {
656
+ case 'ADD':
657
+ if (op.column) {
658
+ sql += ` ADD ${op.column.name} ${this.getColumnTypeString(op.column.type, op.column)}`;
659
+ }
660
+ break;
661
+ case 'DROP':
662
+ if (op.columnName) {
663
+ sql += ` DROP ${op.columnName}`;
664
+ }
665
+ break;
666
+ case 'RENAME':
667
+ if (op.oldName && op.newName) {
668
+ sql += ` RENAME ${op.oldName} TO ${op.newName}`;
669
+ }
670
+ break;
671
+ case 'MODIFY':
672
+ throw new database_error_1.DatabaseError('Cassandra does not support modifying column types. Drop and recreate the column instead.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
673
+ }
674
+ await this.cassandraClient.execute(sql);
675
+ }
676
+ }
677
+ catch (error) {
678
+ throw database_error_1.DatabaseError.schemaError(`Failed to alter table: ${error.message}`, error);
679
+ }
680
+ }
681
+ async dropTable(tableName, ifExists, cascade) {
682
+ this.ensureConnected();
683
+ try {
684
+ let sql = 'DROP TABLE';
685
+ if (ifExists)
686
+ sql += ' IF EXISTS';
687
+ sql += ` ${this.escapeIdentifier(tableName)}`;
688
+ await this.cassandraClient.execute(sql);
689
+ }
690
+ catch (error) {
691
+ throw database_error_1.DatabaseError.schemaError(`Failed to drop table: ${error.message}`, error);
692
+ }
693
+ }
694
+ async listTables() {
695
+ this.ensureConnected();
696
+ try {
697
+ const result = await this.cassandraClient.execute(`SELECT table_name FROM system_schema.tables WHERE keyspace_name = ?`, [this.keyspace]);
698
+ return result.rows.map((r) => r.table_name);
699
+ }
700
+ catch (error) {
701
+ throw database_error_1.DatabaseError.schemaError(`Failed to list tables: ${error.message}`, error);
702
+ }
703
+ }
704
+ async tableExists(tableName) {
705
+ this.ensureConnected();
706
+ try {
707
+ const result = await this.cassandraClient.execute(`SELECT table_name FROM system_schema.tables WHERE keyspace_name = ? AND table_name = ?`, [this.keyspace, tableName]);
708
+ return result.rows.length > 0;
709
+ }
710
+ catch (error) {
711
+ throw database_error_1.DatabaseError.schemaError(`Failed to check table existence: ${error.message}`, error);
712
+ }
713
+ }
714
+ async getTableSchema(tableName) {
715
+ this.ensureConnected();
716
+ try {
717
+ // Get columns
718
+ const columnsResult = await this.cassandraClient.execute(`SELECT column_name, type, kind FROM system_schema.columns WHERE keyspace_name = ? AND table_name = ?`, [this.keyspace, tableName]);
719
+ const columns = columnsResult.rows.map((row) => ({
720
+ name: row.column_name,
721
+ type: row.type,
722
+ nullable: true,
723
+ isPrimaryKey: row.kind === 'partition_key' || row.kind === 'clustering',
724
+ isUnique: false,
725
+ isAutoIncrement: false,
726
+ }));
727
+ // Get indexes
728
+ const indexes = await this.listIndexes(tableName);
729
+ // Get primary key
730
+ const primaryKey = columns
731
+ .filter(c => c.isPrimaryKey)
732
+ .map(c => c.name);
733
+ return {
734
+ name: tableName,
735
+ schema: this.keyspace,
736
+ columns,
737
+ indexes,
738
+ constraints: [],
739
+ primaryKey,
740
+ };
741
+ }
742
+ catch (error) {
743
+ throw database_error_1.DatabaseError.schemaError(`Failed to get table schema: ${error.message}`, error);
744
+ }
745
+ }
746
+ async createIndex(index, ifNotExists, concurrent) {
747
+ this.ensureConnected();
748
+ try {
749
+ // Cassandra supports secondary indexes on single columns
750
+ if (index.columns.length !== 1) {
751
+ throw new database_error_1.DatabaseError('Cassandra only supports single-column secondary indexes', enums_1.DatabaseErrorType.NOT_SUPPORTED);
752
+ }
753
+ let sql = 'CREATE INDEX';
754
+ if (ifNotExists)
755
+ sql += ' IF NOT EXISTS';
756
+ sql += ` ${index.name} ON ${this.escapeIdentifier(index.table)} (${index.columns[0].name})`;
757
+ await this.cassandraClient.execute(sql);
758
+ }
759
+ catch (error) {
760
+ throw database_error_1.DatabaseError.schemaError(`Failed to create index: ${error.message}`, error);
761
+ }
762
+ }
763
+ async dropIndex(tableName, indexName, ifExists, concurrent, cascade) {
764
+ this.ensureConnected();
765
+ try {
766
+ let sql = 'DROP INDEX';
767
+ if (ifExists)
768
+ sql += ' IF EXISTS';
769
+ sql += ` ${indexName}`;
770
+ await this.cassandraClient.execute(sql);
771
+ }
772
+ catch (error) {
773
+ throw database_error_1.DatabaseError.schemaError(`Failed to drop index: ${error.message}`, error);
774
+ }
775
+ }
776
+ async listIndexes(tableName, includeSystem) {
777
+ this.ensureConnected();
778
+ try {
779
+ const result = await this.cassandraClient.execute(`SELECT index_name, options FROM system_schema.indexes WHERE keyspace_name = ? AND table_name = ?`, [this.keyspace, tableName]);
780
+ return result.rows.map((row) => {
781
+ var _a;
782
+ return ({
783
+ name: row.index_name,
784
+ table: tableName,
785
+ columns: [((_a = row.options) === null || _a === void 0 ? void 0 : _a.target) || ''],
786
+ unique: false,
787
+ primaryKey: false,
788
+ type: 'SECONDARY',
789
+ });
790
+ });
791
+ }
792
+ catch (error) {
793
+ throw database_error_1.DatabaseError.schemaError(`Failed to list indexes: ${error.message}`, error);
794
+ }
795
+ }
796
+ async getIndexStatistics(tableName, indexName) {
797
+ // Cassandra doesn't provide detailed index statistics via CQL
798
+ return [];
799
+ }
800
+ // ==================== UTILITY METHODS ====================
801
+ escapeIdentifier(identifier) {
802
+ // Cassandra uses double quotes for identifiers with special chars
803
+ if (/[^a-zA-Z0-9_]/.test(identifier)) {
804
+ return `"${identifier.replace(/"/g, '""')}"`;
805
+ }
806
+ return identifier;
807
+ }
808
+ escapeValue(value) {
809
+ if (value === null || value === undefined) {
810
+ return 'NULL';
811
+ }
812
+ if (typeof value === 'number') {
813
+ return String(value);
814
+ }
815
+ if (typeof value === 'boolean') {
816
+ return value ? 'true' : 'false';
817
+ }
818
+ if (value instanceof Date) {
819
+ return `'${value.toISOString()}'`;
820
+ }
821
+ if (typeof value === 'object') {
822
+ return `'${JSON.stringify(value).replace(/'/g, "''")}'`;
823
+ }
824
+ return `'${String(value).replace(/'/g, "''")}'`;
825
+ }
826
+ /**
827
+ * Check if value is an update operator object
828
+ */
829
+ isUpdateOperator(value) {
830
+ if (!value || typeof value !== 'object')
831
+ return false;
832
+ const operators = ['$INC', '$DEC', '$MUL', '$MIN', '$MAX', '$SET', '$UNSET', '$PUSH', '$PULL', '$ADDTOSET'];
833
+ return operators.some(op => op in value);
834
+ }
835
+ getParameterPlaceholder(index) {
836
+ return '?';
837
+ }
838
+ getColumnTypeString(columnType, options) {
839
+ const typeMap = {
840
+ [enums_1.ColumnType.INTEGER]: 'int',
841
+ [enums_1.ColumnType.BIGINT]: 'bigint',
842
+ [enums_1.ColumnType.SMALLINT]: 'smallint',
843
+ [enums_1.ColumnType.TINYINT]: 'tinyint',
844
+ [enums_1.ColumnType.FLOAT]: 'float',
845
+ [enums_1.ColumnType.DOUBLE]: 'double',
846
+ [enums_1.ColumnType.DECIMAL]: 'decimal',
847
+ [enums_1.ColumnType.STRING]: 'text',
848
+ [enums_1.ColumnType.TEXT]: 'text',
849
+ [enums_1.ColumnType.VARCHAR]: 'varchar',
850
+ [enums_1.ColumnType.BOOLEAN]: 'boolean',
851
+ [enums_1.ColumnType.DATE]: 'date',
852
+ [enums_1.ColumnType.TIME]: 'time',
853
+ [enums_1.ColumnType.DATETIME]: 'timestamp',
854
+ [enums_1.ColumnType.TIMESTAMP]: 'timestamp',
855
+ [enums_1.ColumnType.UUID]: 'uuid',
856
+ [enums_1.ColumnType.TIMEUUID]: 'timeuuid',
857
+ [enums_1.ColumnType.BINARY]: 'blob',
858
+ [enums_1.ColumnType.BLOB]: 'blob',
859
+ [enums_1.ColumnType.COUNTER]: 'counter',
860
+ [enums_1.ColumnType.VARINT]: 'varint',
861
+ [enums_1.ColumnType.INET]: 'inet',
862
+ };
863
+ return typeMap[columnType] || columnType.toLowerCase();
864
+ }
865
+ getSupportedFeatures() {
866
+ return [
867
+ base_adapter_1.DatabaseFeature.TTL,
868
+ base_adapter_1.DatabaseFeature.SECONDARY_INDEXES,
869
+ base_adapter_1.DatabaseFeature.BATCH_OPERATIONS,
870
+ base_adapter_1.DatabaseFeature.ATOMIC_COUNTERS,
871
+ base_adapter_1.DatabaseFeature.UUID,
872
+ ];
873
+ }
874
+ parseError(error) {
875
+ var _a, _b, _c, _d;
876
+ const code = error.code;
877
+ let type = enums_1.DatabaseErrorType.UNKNOWN_ERROR;
878
+ // Map Cassandra error codes
879
+ if (error.name === 'NoHostAvailableError') {
880
+ type = enums_1.DatabaseErrorType.CONNECTION_ERROR;
881
+ }
882
+ else if (error.name === 'AuthenticationError') {
883
+ type = enums_1.DatabaseErrorType.AUTHENTICATION_ERROR;
884
+ }
885
+ else if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('Keyspace')) && ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('does not exist'))) {
886
+ type = enums_1.DatabaseErrorType.NOT_FOUND;
887
+ }
888
+ else if ((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('already exists')) {
889
+ type = enums_1.DatabaseErrorType.UNIQUE_VIOLATION;
890
+ }
891
+ else if ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('syntax error')) {
892
+ type = enums_1.DatabaseErrorType.QUERY_ERROR;
893
+ }
894
+ return {
895
+ type,
896
+ message: error.message || 'Unknown database error',
897
+ code,
898
+ };
899
+ }
900
+ // ==================== PRIVATE HELPER METHODS ====================
901
+ ensureConnected() {
902
+ if (!this.connected || !this.cassandraClient) {
903
+ throw new database_error_1.DatabaseError('Not connected to Cassandra', enums_1.DatabaseErrorType.CONNECTION_ERROR);
904
+ }
905
+ }
906
+ async getClusterVersion() {
907
+ var _a;
908
+ try {
909
+ const result = await this.cassandraClient.execute('SELECT release_version FROM system.local');
910
+ return ((_a = result.rows[0]) === null || _a === void 0 ? void 0 : _a.release_version) || 'unknown';
911
+ }
912
+ catch (_b) {
913
+ return 'unknown';
914
+ }
915
+ }
916
+ buildWhereClause(where) {
917
+ const clauses = [];
918
+ const params = [];
919
+ for (const [key, value] of Object.entries(where)) {
920
+ if (key === '$AND') {
921
+ const andResult = this.buildWhereClause(value);
922
+ clauses.push(`(${andResult.whereClause})`);
923
+ params.push(...andResult.whereParams);
924
+ }
925
+ else if (key === '$OR') {
926
+ // Note: Cassandra has limited OR support - only within the same partition key
927
+ // This will generate the OR clause but may fail at runtime if not on partition key
928
+ const orClauses = [];
929
+ for (const [orKey, orValue] of Object.entries(value)) {
930
+ const orResult = this.buildWhereClause({ [orKey]: orValue });
931
+ orClauses.push(orResult.whereClause);
932
+ params.push(...orResult.whereParams);
933
+ }
934
+ clauses.push(`(${orClauses.join(' OR ')})`);
935
+ }
936
+ else if (value !== null && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
937
+ for (const [op, opValue] of Object.entries(value)) {
938
+ const escapedKey = this.escapeIdentifier(key);
939
+ switch (op) {
940
+ case '$EQ':
941
+ clauses.push(`${escapedKey} = ?`);
942
+ params.push(opValue);
943
+ break;
944
+ case '$NE':
945
+ case '$NOT':
946
+ clauses.push(`${escapedKey} != ?`);
947
+ params.push(opValue);
948
+ break;
949
+ case '$GT':
950
+ clauses.push(`${escapedKey} > ?`);
951
+ params.push(opValue);
952
+ break;
953
+ case '$GTE':
954
+ clauses.push(`${escapedKey} >= ?`);
955
+ params.push(opValue);
956
+ break;
957
+ case '$LT':
958
+ clauses.push(`${escapedKey} < ?`);
959
+ params.push(opValue);
960
+ break;
961
+ case '$LTE':
962
+ clauses.push(`${escapedKey} <= ?`);
963
+ params.push(opValue);
964
+ break;
965
+ case '$IN':
966
+ clauses.push(`${escapedKey} IN ?`);
967
+ params.push(opValue);
968
+ break;
969
+ case '$NOT_IN':
970
+ // Cassandra doesn't support NOT IN or multiple != conditions in WHERE clause
971
+ // Throw an explicit error to prevent silent failures
972
+ throw new database_error_1.DatabaseError(`$NOT_IN operator is not supported in Cassandra. ` +
973
+ `Cassandra does not allow multiple inequality conditions on the same column. ` +
974
+ `Consider filtering results client-side or restructuring your query.`, enums_1.DatabaseErrorType.QUERY_ERROR);
975
+ case '$LIKE':
976
+ // Cassandra uses LIKE with SASI indexes or CONTAINS for collections
977
+ clauses.push(`${escapedKey} LIKE ?`);
978
+ params.push(opValue);
979
+ break;
980
+ case '$IS_NULL':
981
+ // Cassandra doesn't have IS NULL syntax, use = null
982
+ if (opValue) {
983
+ clauses.push(`${escapedKey} = null`);
984
+ }
985
+ break;
986
+ case '$IS_NOT_NULL':
987
+ // Cassandra doesn't have IS NOT NULL, use != null
988
+ if (opValue) {
989
+ clauses.push(`${escapedKey} != null`);
990
+ }
991
+ break;
992
+ case '$CONTAINS':
993
+ clauses.push(`${escapedKey} CONTAINS ?`);
994
+ params.push(opValue);
995
+ break;
996
+ case '$CONTAINS_KEY':
997
+ // For map types in Cassandra
998
+ clauses.push(`${escapedKey} CONTAINS KEY ?`);
999
+ params.push(opValue);
1000
+ break;
1001
+ }
1002
+ }
1003
+ }
1004
+ else {
1005
+ clauses.push(`${this.escapeIdentifier(key)} = ?`);
1006
+ params.push(value);
1007
+ }
1008
+ }
1009
+ return {
1010
+ whereClause: clauses.join(' AND '),
1011
+ whereParams: params,
1012
+ };
1013
+ }
1014
+ buildColumnDefinition(column) {
1015
+ return `${column.name} ${this.getColumnTypeString(column.type, column)}`;
1016
+ }
1017
+ }
1018
+ exports.CassandraAdapter = CassandraAdapter;
1019
+ //# sourceMappingURL=cassandra.adapter.js.map