@ductape/sdk 0.0.4-v6 → 0.0.4-v61

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