@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,1253 @@
1
+ "use strict";
2
+ /**
3
+ * MongoDB Adapter
4
+ *
5
+ * Database adapter for MongoDB databases using the 'mongodb' driver.
6
+ * Implements all methods from BaseAdapter with MongoDB-specific operations.
7
+ *
8
+ * Note: MongoDB uses collections instead of tables, and documents instead of rows.
9
+ * The adapter translates SQL-like operations to MongoDB operations.
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.MongoDBAdapter = void 0;
46
+ const base_adapter_1 = require("./base.adapter");
47
+ const enums_1 = require("../types/enums");
48
+ const database_error_1 = require("../utils/database-error");
49
+ /**
50
+ * MongoDB database adapter
51
+ * Provides MongoDB-specific implementations for all database operations
52
+ */
53
+ class MongoDBAdapter extends base_adapter_1.BaseAdapter {
54
+ constructor() {
55
+ super(...arguments);
56
+ this.databaseType = enums_1.DatabaseType.MONGODB;
57
+ this.mongoClient = null;
58
+ this.db = null;
59
+ this.databaseName = '';
60
+ }
61
+ // ==================== CONNECTION METHODS ====================
62
+ async connect(options) {
63
+ console.log(`[MongoDBAdapter] connect() called`);
64
+ console.log(`[MongoDBAdapter] Options:`, JSON.stringify(Object.assign(Object.assign({}, options), { connectionUrl: '***REDACTED***' }), null, 2));
65
+ try {
66
+ console.log(`[MongoDBAdapter] Importing 'mongodb' library...`);
67
+ // Dynamic import of mongodb to avoid bundling issues
68
+ const { MongoClient } = await Promise.resolve().then(() => __importStar(require('mongodb')));
69
+ console.log(`[MongoDBAdapter] 'mongodb' library imported successfully`);
70
+ this.connectionUrl = options.connectionUrl;
71
+ console.log(`[MongoDBAdapter] Connection URL stored`);
72
+ console.log(`[MongoDBAdapter] Connection URL length: ${options.connectionUrl.length}`);
73
+ // Parse connection URL to extract database name
74
+ console.log(`[MongoDBAdapter] Parsing connection URL...`);
75
+ const url = new URL(options.connectionUrl);
76
+ this.databaseName = url.pathname.slice(1) || 'test';
77
+ const parsedConfig = {
78
+ protocol: url.protocol,
79
+ hostname: url.hostname,
80
+ port: url.port || 'default',
81
+ database: this.databaseName,
82
+ username: url.username || 'not specified',
83
+ hasPassword: !!url.password,
84
+ };
85
+ console.log(`[MongoDBAdapter] Connection URL parsed:`, parsedConfig);
86
+ const clientConfig = {
87
+ maxPoolSize: options.poolSize || 10,
88
+ connectTimeoutMS: options.connectionTimeout || 10000,
89
+ serverSelectionTimeoutMS: options.connectionTimeout || 10000,
90
+ };
91
+ console.log(`[MongoDBAdapter] Client config:`, clientConfig);
92
+ console.log(`[MongoDBAdapter] Creating MongoClient...`);
93
+ this.mongoClient = new MongoClient(options.connectionUrl, clientConfig);
94
+ console.log(`[MongoDBAdapter] MongoClient created successfully`);
95
+ console.log(`[MongoDBAdapter] Connecting to MongoDB...`);
96
+ await this.mongoClient.connect();
97
+ console.log(`[MongoDBAdapter] Connected to MongoDB successfully`);
98
+ console.log(`[MongoDBAdapter] Getting database: ${this.databaseName}`);
99
+ this.db = this.mongoClient.db(this.databaseName);
100
+ console.log(`[MongoDBAdapter] Database instance acquired`);
101
+ console.log(`[MongoDBAdapter] Getting server info...`);
102
+ // Get server info
103
+ const adminDb = this.mongoClient.db('admin');
104
+ const serverInfo = await adminDb.command({ buildInfo: 1 });
105
+ console.log(`[MongoDBAdapter] Server info retrieved successfully`);
106
+ console.log(`[MongoDBAdapter] MongoDB version:`, serverInfo.version);
107
+ this.client = this.mongoClient;
108
+ this.connected = true;
109
+ console.log(`[MongoDBAdapter] Connection marked as connected`);
110
+ return {
111
+ connected: true,
112
+ version: serverInfo.version,
113
+ };
114
+ }
115
+ catch (error) {
116
+ console.error(`[MongoDBAdapter] Connection failed with error:`, error);
117
+ console.error(`[MongoDBAdapter] Error type:`, error.constructor.name);
118
+ console.error(`[MongoDBAdapter] Error message:`, error.message);
119
+ console.error(`[MongoDBAdapter] Error code:`, error.code);
120
+ console.error(`[MongoDBAdapter] Full error:`, JSON.stringify(error, null, 2));
121
+ throw database_error_1.DatabaseError.connectionError(`Failed to connect to MongoDB: ${error.message}`, error);
122
+ }
123
+ }
124
+ async testConnection(options) {
125
+ try {
126
+ const { MongoClient } = await Promise.resolve().then(() => __importStar(require('mongodb')));
127
+ const client = new MongoClient(options.connectionUrl, {
128
+ connectTimeoutMS: options.connectionTimeout || 5000,
129
+ serverSelectionTimeoutMS: options.connectionTimeout || 5000,
130
+ });
131
+ await client.connect();
132
+ const adminDb = client.db('admin');
133
+ const serverInfo = await adminDb.command({ buildInfo: 1 });
134
+ await client.close();
135
+ return {
136
+ connected: true,
137
+ version: serverInfo.version,
138
+ };
139
+ }
140
+ catch (error) {
141
+ return {
142
+ connected: false,
143
+ };
144
+ }
145
+ }
146
+ async disconnect() {
147
+ if (this.mongoClient) {
148
+ await this.mongoClient.close();
149
+ this.mongoClient = null;
150
+ this.db = null;
151
+ this.client = null;
152
+ this.connected = false;
153
+ }
154
+ }
155
+ // ==================== QUERY METHODS ====================
156
+ async query(query) {
157
+ var _a;
158
+ this.ensureConnected();
159
+ try {
160
+ const collection = this.db.collection(query.options.table);
161
+ const session = (_a = query.options.transaction) === null || _a === void 0 ? void 0 : _a.client;
162
+ // Build MongoDB filter from where clause
163
+ const filter = this.buildMongoFilter(query.options.where || {});
164
+ // Build options
165
+ const findOptions = { session };
166
+ // Select specific fields
167
+ if (query.options.select) {
168
+ findOptions.projection = {};
169
+ for (const field of query.options.select) {
170
+ findOptions.projection[field] = 1;
171
+ }
172
+ }
173
+ // Sorting
174
+ if (query.options.orderBy) {
175
+ findOptions.sort = {};
176
+ const orderByArray = Array.isArray(query.options.orderBy)
177
+ ? query.options.orderBy
178
+ : [query.options.orderBy];
179
+ for (const order of orderByArray) {
180
+ findOptions.sort[order.column] = order.order === 'DESC' ? -1 : 1;
181
+ }
182
+ }
183
+ // Pagination
184
+ if (query.options.limit) {
185
+ findOptions.limit = query.options.limit;
186
+ }
187
+ if (query.options.offset) {
188
+ findOptions.skip = query.options.offset;
189
+ }
190
+ const cursor = collection.find(filter, findOptions);
191
+ const data = await cursor.toArray();
192
+ // Get total count for pagination
193
+ const count = await collection.countDocuments(filter, { session });
194
+ return {
195
+ data: data,
196
+ count,
197
+ };
198
+ }
199
+ catch (error) {
200
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
201
+ }
202
+ }
203
+ async raw(options) {
204
+ var _a, _b;
205
+ this.ensureConnected();
206
+ try {
207
+ const query = options.query;
208
+ // If query is an object with MongoDB command keys, run it as a database command
209
+ if (query && typeof query === 'object' && !Array.isArray(query)) {
210
+ const commandKeys = ['create', 'drop', 'findAndModify', 'createIndexes', 'dropIndexes',
211
+ 'collMod', 'shardCollection', 'update', 'insert', 'delete', 'aggregate', 'count',
212
+ 'distinct', 'mapReduce', 'validate', 'listCollections', 'listIndexes'];
213
+ const isCommand = commandKeys.some(key => key in query);
214
+ if (isCommand) {
215
+ // Run as a database command
216
+ const result = await this.db.command(query);
217
+ return {
218
+ data: result.value ? [result.value] : (((_a = result.cursor) === null || _a === void 0 ? void 0 : _a.firstBatch) || [result]),
219
+ count: result.n || result.ok || 1,
220
+ };
221
+ }
222
+ }
223
+ // Otherwise, treat as a find query on a collection
224
+ const collection = this.db.collection(options.collection || options.table || '');
225
+ const session = (_b = options.transaction) === null || _b === void 0 ? void 0 : _b.client;
226
+ // For MongoDB, 'query' is the filter object
227
+ const filter = query;
228
+ const cursor = collection.find(filter, { session });
229
+ const data = await cursor.toArray();
230
+ return {
231
+ data: data,
232
+ count: data.length,
233
+ };
234
+ }
235
+ catch (error) {
236
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
237
+ }
238
+ }
239
+ // ==================== WRITE METHODS ====================
240
+ async insert(options) {
241
+ var _a;
242
+ this.ensureConnected();
243
+ try {
244
+ const collection = this.db.collection(options.table);
245
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
246
+ const data = Array.isArray(options.data) ? options.data : [options.data];
247
+ if (data.length === 0) {
248
+ return { data: [], count: 0, insertedIds: [] };
249
+ }
250
+ // Get auto-increment fields for this collection
251
+ const autoIncrementFields = await this.getAutoIncrementFields(options.table);
252
+ // Get schema metadata for default values
253
+ const schemaColumns = await this.getSchemaMetadata(options.table);
254
+ // Process each document and assign auto-increment values and defaults
255
+ const processedData = await Promise.all(data.map(async (doc) => {
256
+ const processedDoc = Object.assign({}, doc);
257
+ // Apply default values for missing fields
258
+ for (const column of schemaColumns) {
259
+ if (column.defaultValue !== undefined && column.defaultValue !== null) {
260
+ if (processedDoc[column.name] === undefined || processedDoc[column.name] === null) {
261
+ processedDoc[column.name] = this.resolveDefaultValue(column.defaultValue, column.type);
262
+ }
263
+ }
264
+ }
265
+ // For each auto-increment field, get the next value if not already set
266
+ for (const field of autoIncrementFields) {
267
+ if (processedDoc[field] === undefined || processedDoc[field] === null) {
268
+ processedDoc[field] = await this.getNextAutoIncrementValue(options.table, field);
269
+ }
270
+ }
271
+ return processedDoc;
272
+ }));
273
+ const result = await collection.insertMany(processedData, { session });
274
+ // Get inserted documents if returning is requested
275
+ let returnedData = [];
276
+ if (options.returning) {
277
+ const insertedIds = Object.values(result.insertedIds);
278
+ returnedData = await collection.find({ _id: { $in: insertedIds } }, { session }).toArray();
279
+ }
280
+ return {
281
+ data: returnedData,
282
+ count: result.insertedCount,
283
+ insertedIds: Object.values(result.insertedIds),
284
+ };
285
+ }
286
+ catch (error) {
287
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
288
+ }
289
+ }
290
+ async update(options) {
291
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
292
+ this.ensureConnected();
293
+ try {
294
+ const collection = this.db.collection(options.table);
295
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
296
+ // Build MongoDB filter
297
+ const filter = this.buildMongoFilter(options.where || {});
298
+ // Build update document
299
+ const updateDoc = { $set: {} };
300
+ for (const [key, value] of Object.entries(options.data)) {
301
+ if (value && typeof value === 'object' && this.isUpdateOperator(value)) {
302
+ // Handle update operators - MongoDB has native support
303
+ // Support both lowercase (new) and uppercase (legacy) operators
304
+ if ('$inc' in value || '$INC' in value) {
305
+ if (!updateDoc.$inc)
306
+ updateDoc.$inc = {};
307
+ updateDoc.$inc[key] = (_b = value.$inc) !== null && _b !== void 0 ? _b : value.$INC;
308
+ }
309
+ else if ('$dec' in value || '$DEC' in value) {
310
+ // MongoDB uses $inc with negative value for decrement
311
+ if (!updateDoc.$inc)
312
+ updateDoc.$inc = {};
313
+ updateDoc.$inc[key] = -((_c = value.$dec) !== null && _c !== void 0 ? _c : value.$DEC);
314
+ }
315
+ else if ('$mul' in value || '$MUL' in value) {
316
+ if (!updateDoc.$mul)
317
+ updateDoc.$mul = {};
318
+ updateDoc.$mul[key] = (_d = value.$mul) !== null && _d !== void 0 ? _d : value.$MUL;
319
+ }
320
+ else if ('$min' in value || '$MIN' in value) {
321
+ if (!updateDoc.$min)
322
+ updateDoc.$min = {};
323
+ updateDoc.$min[key] = (_e = value.$min) !== null && _e !== void 0 ? _e : value.$MIN;
324
+ }
325
+ else if ('$max' in value || '$MAX' in value) {
326
+ if (!updateDoc.$max)
327
+ updateDoc.$max = {};
328
+ updateDoc.$max[key] = (_f = value.$max) !== null && _f !== void 0 ? _f : value.$MAX;
329
+ }
330
+ else if ('$set' in value || '$SET' in value) {
331
+ updateDoc.$set[key] = (_g = value.$set) !== null && _g !== void 0 ? _g : value.$SET;
332
+ }
333
+ else if (('$unset' in value && value.$unset) || ('$UNSET' in value && value.$UNSET)) {
334
+ if (!updateDoc.$unset)
335
+ updateDoc.$unset = {};
336
+ updateDoc.$unset[key] = '';
337
+ }
338
+ else if ('$push' in value || '$PUSH' in value) {
339
+ if (!updateDoc.$push)
340
+ updateDoc.$push = {};
341
+ updateDoc.$push[key] = (_h = value.$push) !== null && _h !== void 0 ? _h : value.$PUSH;
342
+ }
343
+ else if ('$pull' in value || '$PULL' in value) {
344
+ if (!updateDoc.$pull)
345
+ updateDoc.$pull = {};
346
+ updateDoc.$pull[key] = (_j = value.$pull) !== null && _j !== void 0 ? _j : value.$PULL;
347
+ }
348
+ else if ('$addToSet' in value || '$ADDTOSET' in value) {
349
+ if (!updateDoc.$addToSet)
350
+ updateDoc.$addToSet = {};
351
+ updateDoc.$addToSet[key] = (_k = value.$addToSet) !== null && _k !== void 0 ? _k : value.$ADDTOSET;
352
+ }
353
+ else if ('$pop' in value || '$POP' in value) {
354
+ if (!updateDoc.$pop)
355
+ updateDoc.$pop = {};
356
+ updateDoc.$pop[key] = (_l = value.$pop) !== null && _l !== void 0 ? _l : value.$POP;
357
+ }
358
+ else if ('$rename' in value || '$RENAME' in value) {
359
+ if (!updateDoc.$rename)
360
+ updateDoc.$rename = {};
361
+ updateDoc.$rename[key] = (_m = value.$rename) !== null && _m !== void 0 ? _m : value.$RENAME;
362
+ }
363
+ else if ('$currentDate' in value || '$CURRENTDATE' in value) {
364
+ if (!updateDoc.$currentDate)
365
+ updateDoc.$currentDate = {};
366
+ updateDoc.$currentDate[key] = (_o = value.$currentDate) !== null && _o !== void 0 ? _o : value.$CURRENTDATE;
367
+ }
368
+ }
369
+ else {
370
+ updateDoc.$set[key] = value;
371
+ }
372
+ }
373
+ // Remove empty $set
374
+ if (Object.keys(updateDoc.$set).length === 0) {
375
+ delete updateDoc.$set;
376
+ }
377
+ const result = await collection.updateMany(filter, updateDoc, { session });
378
+ // Get updated documents if returning is requested
379
+ let returnedData = [];
380
+ if (options.returning) {
381
+ returnedData = await collection.find(filter, { session }).toArray();
382
+ }
383
+ return {
384
+ data: returnedData,
385
+ count: result.modifiedCount,
386
+ };
387
+ }
388
+ catch (error) {
389
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
390
+ }
391
+ }
392
+ async delete(options) {
393
+ var _a;
394
+ this.ensureConnected();
395
+ try {
396
+ const collection = this.db.collection(options.table);
397
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
398
+ // Build MongoDB filter
399
+ const filter = this.buildMongoFilter(options.where || {});
400
+ // Get documents before delete if returning is requested
401
+ let deletedData;
402
+ if (options.returning) {
403
+ deletedData = await collection.find(filter, { session }).toArray();
404
+ }
405
+ const result = await collection.deleteMany(filter, { session });
406
+ return {
407
+ count: result.deletedCount,
408
+ data: deletedData,
409
+ };
410
+ }
411
+ catch (error) {
412
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
413
+ }
414
+ }
415
+ async upsert(options) {
416
+ var _a, _b;
417
+ this.ensureConnected();
418
+ try {
419
+ const collection = this.db.collection(options.table);
420
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
421
+ // Build filter from conflict keys
422
+ const filter = {};
423
+ for (const key of options.conflictKeys) {
424
+ filter[key] = options.data[key];
425
+ }
426
+ // Build update document
427
+ const updateDoc = { $set: options.data };
428
+ const result = await collection.findOneAndUpdate(filter, updateDoc, {
429
+ upsert: true,
430
+ returnDocument: 'after',
431
+ session,
432
+ });
433
+ return {
434
+ data: result.value ? [result.value] : [],
435
+ count: 1,
436
+ operation: ((_b = result.lastErrorObject) === null || _b === void 0 ? void 0 : _b.updatedExisting) ? 'updated' : 'inserted',
437
+ };
438
+ }
439
+ catch (error) {
440
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
441
+ }
442
+ }
443
+ // ==================== AGGREGATION METHODS ====================
444
+ async count(options) {
445
+ var _a, _b;
446
+ this.ensureConnected();
447
+ try {
448
+ const collection = this.db.collection(options.table);
449
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
450
+ const filter = this.buildMongoFilter(options.where || {});
451
+ if (options.distinct && options.column) {
452
+ // For distinct count, use aggregation
453
+ const result = await collection.aggregate([
454
+ { $match: filter },
455
+ { $group: { _id: `$${options.column}` } },
456
+ { $count: 'count' },
457
+ ], { session }).toArray();
458
+ return ((_b = result[0]) === null || _b === void 0 ? void 0 : _b.count) || 0;
459
+ }
460
+ return await collection.countDocuments(filter, { session });
461
+ }
462
+ catch (error) {
463
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
464
+ }
465
+ }
466
+ async sum(options) {
467
+ var _a, _b;
468
+ this.ensureConnected();
469
+ try {
470
+ const collection = this.db.collection(options.table);
471
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
472
+ const filter = this.buildMongoFilter(options.where || {});
473
+ const result = await collection.aggregate([
474
+ { $match: filter },
475
+ { $group: { _id: null, sum: { $sum: `$${options.column}` } } },
476
+ ], { session }).toArray();
477
+ return ((_b = result[0]) === null || _b === void 0 ? void 0 : _b.sum) || 0;
478
+ }
479
+ catch (error) {
480
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
481
+ }
482
+ }
483
+ async avg(options) {
484
+ var _a, _b;
485
+ this.ensureConnected();
486
+ try {
487
+ const collection = this.db.collection(options.table);
488
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
489
+ const filter = this.buildMongoFilter(options.where || {});
490
+ const result = await collection.aggregate([
491
+ { $match: filter },
492
+ { $group: { _id: null, avg: { $avg: `$${options.column}` } } },
493
+ ], { session }).toArray();
494
+ return ((_b = result[0]) === null || _b === void 0 ? void 0 : _b.avg) || 0;
495
+ }
496
+ catch (error) {
497
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
498
+ }
499
+ }
500
+ async min(options) {
501
+ var _a, _b;
502
+ this.ensureConnected();
503
+ try {
504
+ const collection = this.db.collection(options.table);
505
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
506
+ const filter = this.buildMongoFilter(options.where || {});
507
+ const result = await collection.aggregate([
508
+ { $match: filter },
509
+ { $group: { _id: null, min: { $min: `$${options.column}` } } },
510
+ ], { session }).toArray();
511
+ return (_b = result[0]) === null || _b === void 0 ? void 0 : _b.min;
512
+ }
513
+ catch (error) {
514
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
515
+ }
516
+ }
517
+ async max(options) {
518
+ var _a, _b;
519
+ this.ensureConnected();
520
+ try {
521
+ const collection = this.db.collection(options.table);
522
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
523
+ const filter = this.buildMongoFilter(options.where || {});
524
+ const result = await collection.aggregate([
525
+ { $match: filter },
526
+ { $group: { _id: null, max: { $max: `$${options.column}` } } },
527
+ ], { session }).toArray();
528
+ return (_b = result[0]) === null || _b === void 0 ? void 0 : _b.max;
529
+ }
530
+ catch (error) {
531
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
532
+ }
533
+ }
534
+ async aggregate(builtAggregation) {
535
+ var _a;
536
+ this.ensureConnected();
537
+ try {
538
+ const options = builtAggregation.options;
539
+ const collection = this.db.collection(options.table);
540
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
541
+ // Use the pre-built pipeline
542
+ const result = await collection.aggregate(builtAggregation.pipeline || [], { session }).toArray();
543
+ // Remove _id from result
544
+ if (result[0]) {
545
+ delete result[0]._id;
546
+ }
547
+ return result[0] || {};
548
+ }
549
+ catch (error) {
550
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
551
+ }
552
+ }
553
+ async groupBy(builtGroupBy) {
554
+ var _a;
555
+ this.ensureConnected();
556
+ try {
557
+ const options = builtGroupBy.options;
558
+ const collection = this.db.collection(options.table);
559
+ const session = (_a = options.transaction) === null || _a === void 0 ? void 0 : _a.client;
560
+ // Use the pre-built pipeline
561
+ const results = await collection.aggregate(builtGroupBy.pipeline || [], { session }).toArray();
562
+ return results.map((row) => {
563
+ var _a;
564
+ const group = {};
565
+ const aggregates = {};
566
+ // _id contains the group keys
567
+ if (row._id && typeof row._id === 'object') {
568
+ Object.assign(group, row._id);
569
+ }
570
+ else if (((_a = options.groupBy) === null || _a === void 0 ? void 0 : _a.length) === 1) {
571
+ group[options.groupBy[0]] = row._id;
572
+ }
573
+ // Everything else is aggregates
574
+ for (const key of Object.keys(row)) {
575
+ if (key !== '_id') {
576
+ aggregates[key] = row[key];
577
+ }
578
+ }
579
+ return { group, aggregates: aggregates };
580
+ });
581
+ }
582
+ catch (error) {
583
+ throw database_error_1.DatabaseError.fromDatabaseError(error, 'mongodb');
584
+ }
585
+ }
586
+ // ==================== TRANSACTION METHODS ====================
587
+ async beginTransaction(isolationLevel, readOnly, timeout) {
588
+ this.ensureConnected();
589
+ try {
590
+ const session = this.mongoClient.startSession();
591
+ const id = `mongo_txn_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
592
+ const transactionOptions = {};
593
+ // MongoDB supports read concern and write concern instead of isolation levels
594
+ if (isolationLevel === enums_1.IsolationLevel.SERIALIZABLE) {
595
+ transactionOptions.readConcern = { level: 'snapshot' };
596
+ transactionOptions.writeConcern = { w: 'majority' };
597
+ }
598
+ else {
599
+ transactionOptions.readConcern = { level: 'majority' };
600
+ transactionOptions.writeConcern = { w: 'majority' };
601
+ }
602
+ if (timeout) {
603
+ transactionOptions.maxCommitTimeMS = timeout;
604
+ }
605
+ session.startTransaction(transactionOptions);
606
+ return {
607
+ id,
608
+ databaseType: 'mongodb',
609
+ isolationLevel: isolationLevel || enums_1.IsolationLevel.READ_COMMITTED,
610
+ readOnly: readOnly || false,
611
+ timeout,
612
+ startedAt: new Date(),
613
+ client: session,
614
+ savepoints: new Map(),
615
+ status: 'active',
616
+ };
617
+ }
618
+ catch (error) {
619
+ throw database_error_1.DatabaseError.transactionError(`Failed to begin transaction: ${error.message}`, error);
620
+ }
621
+ }
622
+ async commitTransaction(context) {
623
+ try {
624
+ await context.client.commitTransaction();
625
+ await context.client.endSession();
626
+ context.status = 'committed';
627
+ }
628
+ catch (error) {
629
+ context.status = 'error';
630
+ await context.client.endSession();
631
+ throw database_error_1.DatabaseError.transactionError(`Failed to commit transaction: ${error.message}`, error);
632
+ }
633
+ }
634
+ async rollbackTransaction(context) {
635
+ try {
636
+ await context.client.abortTransaction();
637
+ await context.client.endSession();
638
+ context.status = 'rolled_back';
639
+ }
640
+ catch (error) {
641
+ context.status = 'error';
642
+ await context.client.endSession();
643
+ throw database_error_1.DatabaseError.transactionError(`Failed to rollback transaction: ${error.message}`, error);
644
+ }
645
+ }
646
+ async createSavepoint(context, name) {
647
+ // MongoDB does not support savepoints
648
+ throw new database_error_1.DatabaseError('MongoDB does not support savepoints. Savepoints are only available in PostgreSQL and MySQL.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
649
+ }
650
+ async releaseSavepoint(context, savepoint) {
651
+ // MongoDB does not support savepoints
652
+ throw new database_error_1.DatabaseError('MongoDB does not support savepoints. Savepoints are only available in PostgreSQL and MySQL.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
653
+ }
654
+ async rollbackToSavepoint(context, savepoint) {
655
+ // MongoDB does not support savepoints
656
+ throw new database_error_1.DatabaseError('MongoDB does not support savepoints. Savepoints are only available in PostgreSQL and MySQL.', enums_1.DatabaseErrorType.NOT_SUPPORTED);
657
+ }
658
+ supportsSavepoints() {
659
+ return false;
660
+ }
661
+ // ==================== SCHEMA METHODS ====================
662
+ async createTable(definition, options) {
663
+ this.ensureConnected();
664
+ try {
665
+ // In MongoDB, creating a collection is optional as it's created on first insert
666
+ // But we can explicitly create it for validation
667
+ await this.db.createCollection(definition.name);
668
+ // Create indexes
669
+ if (definition.indexes) {
670
+ for (const index of definition.indexes) {
671
+ await this.createIndex(index);
672
+ }
673
+ }
674
+ // Create unique constraints as unique indexes and register auto-increment fields
675
+ for (const column of definition.columns) {
676
+ if (column.unique && column.name !== '_id') {
677
+ await this.db.collection(definition.name).createIndex({ [column.name]: 1 }, { unique: true });
678
+ }
679
+ // Register auto-increment fields in the counters collection
680
+ if (column.autoIncrement) {
681
+ await this.registerAutoIncrementField(definition.name, column.name);
682
+ }
683
+ }
684
+ // Store schema metadata for default values and other app-level features
685
+ await this.storeSchemaMetadata(definition.name, definition.columns);
686
+ }
687
+ catch (error) {
688
+ // Ignore "collection already exists" error if ifNotExists is true
689
+ if ((options === null || options === void 0 ? void 0 : options.ifNotExists) && error.code === 48) {
690
+ return;
691
+ }
692
+ throw database_error_1.DatabaseError.schemaError(`Failed to create collection: ${error.message}`, error);
693
+ }
694
+ }
695
+ /**
696
+ * Register an auto-increment field in the counters collection.
697
+ * This creates/updates the counter document for the given collection and field.
698
+ */
699
+ async registerAutoIncrementField(collectionName, fieldName) {
700
+ const countersCollection = this.db.collection('_ductape_counters');
701
+ // Initialize the counter for this collection/field combination
702
+ await countersCollection.updateOne({ _id: `${collectionName}.${fieldName}` }, {
703
+ $setOnInsert: {
704
+ collection: collectionName,
705
+ field: fieldName,
706
+ currentValue: 0
707
+ }
708
+ }, { upsert: true });
709
+ }
710
+ /**
711
+ * Get the next auto-increment value atomically.
712
+ * Uses findOneAndUpdate with $inc to ensure atomic increment even under high concurrency.
713
+ */
714
+ async getNextAutoIncrementValue(collectionName, fieldName) {
715
+ const countersCollection = this.db.collection('_ductape_counters');
716
+ const result = await countersCollection.findOneAndUpdate({ _id: `${collectionName}.${fieldName}` }, { $inc: { currentValue: 1 } }, { returnDocument: 'after', upsert: true });
717
+ return result.currentValue;
718
+ }
719
+ /**
720
+ * Get all auto-increment fields for a collection from the counters collection.
721
+ */
722
+ async getAutoIncrementFields(collectionName) {
723
+ const countersCollection = this.db.collection('_ductape_counters');
724
+ const counters = await countersCollection.find({ collection: collectionName }).toArray();
725
+ return counters.map((c) => c.field);
726
+ }
727
+ /**
728
+ * Store schema metadata for a collection (including default values).
729
+ * MongoDB doesn't have native schema enforcement, so we store this for application-level use.
730
+ */
731
+ async storeSchemaMetadata(collectionName, columns) {
732
+ const metadataCollection = this.db.collection('_ductape_schema');
733
+ await metadataCollection.updateOne({ _id: collectionName }, {
734
+ $set: {
735
+ collection: collectionName,
736
+ columns: columns.map(col => ({
737
+ name: col.name,
738
+ type: col.type,
739
+ defaultValue: col.defaultValue,
740
+ nullable: col.nullable,
741
+ unique: col.unique,
742
+ primaryKey: col.primaryKey,
743
+ autoIncrement: col.autoIncrement,
744
+ })),
745
+ updatedAt: new Date()
746
+ }
747
+ }, { upsert: true });
748
+ }
749
+ /**
750
+ * Get schema metadata for a collection to apply defaults during insert.
751
+ */
752
+ async getSchemaMetadata(collectionName) {
753
+ const metadataCollection = this.db.collection('_ductape_schema');
754
+ const schema = await metadataCollection.findOne({ _id: collectionName });
755
+ return (schema === null || schema === void 0 ? void 0 : schema.columns) || [];
756
+ }
757
+ /**
758
+ * Resolve a default value to its actual value.
759
+ * Handles special values like 'now', 'NOW()', true, false, etc.
760
+ */
761
+ resolveDefaultValue(defaultValue, fieldType) {
762
+ if (defaultValue === undefined || defaultValue === null) {
763
+ return undefined;
764
+ }
765
+ // Handle string-based special defaults
766
+ if (typeof defaultValue === 'string') {
767
+ const lowerDefault = defaultValue.toLowerCase();
768
+ // Date/time defaults
769
+ if (lowerDefault === 'now' || lowerDefault === 'now()' || lowerDefault === 'current_timestamp') {
770
+ return new Date();
771
+ }
772
+ // Boolean defaults (for string representations)
773
+ if (lowerDefault === 'true')
774
+ return true;
775
+ if (lowerDefault === 'false')
776
+ return false;
777
+ // UUID defaults
778
+ if (lowerDefault === 'uuid' || lowerDefault === 'uuid()' || lowerDefault === 'gen_random_uuid()') {
779
+ return this.generateUUID();
780
+ }
781
+ }
782
+ // Return as-is for other values (numbers, booleans, objects, etc.)
783
+ return defaultValue;
784
+ }
785
+ /**
786
+ * Generate a UUID v4.
787
+ */
788
+ generateUUID() {
789
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
790
+ const r = Math.random() * 16 | 0;
791
+ const v = c === 'x' ? r : (r & 0x3 | 0x8);
792
+ return v.toString(16);
793
+ });
794
+ }
795
+ async alterTable(tableName, operations) {
796
+ this.ensureConnected();
797
+ // MongoDB is schemaless, so we don't need to alter the schema
798
+ // However, we can handle index and constraint operations
799
+ try {
800
+ for (const op of operations) {
801
+ if (op.type === 'ADD' && op.constraint && op.constraint.type === 'UNIQUE') {
802
+ // Add unique index
803
+ const indexSpec = {};
804
+ for (const col of op.constraint.columns) {
805
+ indexSpec[col] = 1;
806
+ }
807
+ await this.db.collection(tableName).createIndex(indexSpec, { unique: true });
808
+ }
809
+ else if (op.type === 'DROP' && op.constraintName) {
810
+ // Drop index
811
+ await this.db.collection(tableName).dropIndex(op.constraintName);
812
+ }
813
+ else if (op.type === 'RENAME' && op.oldName && op.newName) {
814
+ // Rename field in all documents
815
+ await this.db.collection(tableName).updateMany({}, { $rename: { [op.oldName]: op.newName } });
816
+ }
817
+ }
818
+ }
819
+ catch (error) {
820
+ throw database_error_1.DatabaseError.schemaError(`Failed to alter collection: ${error.message}`, error);
821
+ }
822
+ }
823
+ async dropTable(tableName, ifExists, cascade) {
824
+ this.ensureConnected();
825
+ try {
826
+ await this.db.collection(tableName).drop();
827
+ }
828
+ catch (error) {
829
+ // Ignore "collection doesn't exist" error if ifExists is true
830
+ if (ifExists && error.code === 26) {
831
+ return;
832
+ }
833
+ throw database_error_1.DatabaseError.schemaError(`Failed to drop collection: ${error.message}`, error);
834
+ }
835
+ }
836
+ async listTables() {
837
+ this.ensureConnected();
838
+ try {
839
+ const collections = await this.db.listCollections().toArray();
840
+ return collections.map((c) => c.name);
841
+ }
842
+ catch (error) {
843
+ throw database_error_1.DatabaseError.schemaError(`Failed to list collections: ${error.message}`, error);
844
+ }
845
+ }
846
+ async tableExists(tableName) {
847
+ this.ensureConnected();
848
+ try {
849
+ const collections = await this.db.listCollections({ name: tableName }).toArray();
850
+ return collections.length > 0;
851
+ }
852
+ catch (error) {
853
+ throw database_error_1.DatabaseError.schemaError(`Failed to check collection existence: ${error.message}`, error);
854
+ }
855
+ }
856
+ async getTableSchema(tableName) {
857
+ this.ensureConnected();
858
+ try {
859
+ const collection = this.db.collection(tableName);
860
+ // Sample documents to infer schema
861
+ const sampleDocs = await collection.find().limit(100).toArray();
862
+ // Infer columns from sample documents
863
+ const fieldTypes = new Map();
864
+ for (const doc of sampleDocs) {
865
+ this.extractFieldTypes(doc, '', fieldTypes);
866
+ }
867
+ const columns = Array.from(fieldTypes.entries()).map(([name, types]) => ({
868
+ name,
869
+ type: Array.from(types).join('|'),
870
+ nullable: true, // MongoDB is schemaless
871
+ isPrimaryKey: name === '_id',
872
+ isUnique: name === '_id',
873
+ isAutoIncrement: false,
874
+ }));
875
+ // Get indexes
876
+ const indexes = await this.listIndexes(tableName);
877
+ // Get estimated document count
878
+ const estimatedCount = await collection.estimatedDocumentCount();
879
+ return {
880
+ name: tableName,
881
+ columns,
882
+ indexes,
883
+ constraints: [],
884
+ primaryKey: ['_id'],
885
+ estimatedRowCount: estimatedCount,
886
+ };
887
+ }
888
+ catch (error) {
889
+ throw database_error_1.DatabaseError.schemaError(`Failed to get collection schema: ${error.message}`, error);
890
+ }
891
+ }
892
+ async createIndex(index, ifNotExists, concurrent) {
893
+ this.ensureConnected();
894
+ try {
895
+ const collection = this.db.collection(index.table);
896
+ // Build index specification
897
+ const indexSpec = {};
898
+ for (const col of index.columns) {
899
+ indexSpec[col.name] = col.order === 'DESC' ? -1 : 1;
900
+ }
901
+ // Build index options
902
+ const indexOptions = {
903
+ name: index.name,
904
+ unique: index.unique || false,
905
+ background: true, // Always create in background
906
+ };
907
+ // Partial index
908
+ if (index.where) {
909
+ // Parse the where clause to a MongoDB filter
910
+ // This is simplified - a real implementation would parse the expression
911
+ indexOptions.partialFilterExpression = {};
912
+ }
913
+ await collection.createIndex(indexSpec, indexOptions);
914
+ }
915
+ catch (error) {
916
+ // Ignore if index already exists and ifNotExists is true
917
+ if (ifNotExists && error.code === 85) {
918
+ return;
919
+ }
920
+ throw database_error_1.DatabaseError.schemaError(`Failed to create index: ${error.message}`, error);
921
+ }
922
+ }
923
+ async dropIndex(tableName, indexName, ifExists, concurrent, cascade) {
924
+ this.ensureConnected();
925
+ try {
926
+ await this.db.collection(tableName).dropIndex(indexName);
927
+ }
928
+ catch (error) {
929
+ // Ignore if index doesn't exist and ifExists is true
930
+ if (ifExists && error.code === 27) {
931
+ return;
932
+ }
933
+ throw database_error_1.DatabaseError.schemaError(`Failed to drop index: ${error.message}`, error);
934
+ }
935
+ }
936
+ async listIndexes(tableName, includeSystem) {
937
+ this.ensureConnected();
938
+ try {
939
+ const collection = this.db.collection(tableName);
940
+ const indexes = await collection.indexes();
941
+ return indexes
942
+ .filter((idx) => includeSystem || idx.name !== '_id_')
943
+ .map((idx) => ({
944
+ name: idx.name,
945
+ table: tableName,
946
+ columns: Object.keys(idx.key),
947
+ unique: idx.unique || false,
948
+ primaryKey: idx.name === '_id_',
949
+ type: 'BTREE', // MongoDB uses B-tree by default
950
+ }));
951
+ }
952
+ catch (error) {
953
+ throw database_error_1.DatabaseError.schemaError(`Failed to list indexes: ${error.message}`, error);
954
+ }
955
+ }
956
+ async getIndexStatistics(tableName, indexName) {
957
+ var _a, _b;
958
+ this.ensureConnected();
959
+ try {
960
+ const collection = this.db.collection(tableName);
961
+ const stats = await collection.aggregate([
962
+ { $collStats: { storageStats: {} } },
963
+ ]).toArray();
964
+ const indexStats = ((_b = (_a = stats[0]) === null || _a === void 0 ? void 0 : _a.storageStats) === null || _b === void 0 ? void 0 : _b.indexSizes) || {};
965
+ const results = [];
966
+ for (const [name, size] of Object.entries(indexStats)) {
967
+ if (indexName && name !== indexName)
968
+ continue;
969
+ results.push({
970
+ indexName: name,
971
+ tableName,
972
+ scans: 0, // MongoDB doesn't expose this easily
973
+ tuplesRead: 0,
974
+ sizeBytes: size,
975
+ sizeFormatted: this.formatBytes(size),
976
+ });
977
+ }
978
+ return results;
979
+ }
980
+ catch (error) {
981
+ throw database_error_1.DatabaseError.schemaError(`Failed to get index statistics: ${error.message}`, error);
982
+ }
983
+ }
984
+ // ==================== UTILITY METHODS ====================
985
+ escapeIdentifier(identifier) {
986
+ // MongoDB doesn't need identifier escaping in the same way SQL databases do
987
+ return identifier;
988
+ }
989
+ escapeValue(value) {
990
+ // MongoDB uses BSON, no escaping needed
991
+ return JSON.stringify(value);
992
+ }
993
+ /**
994
+ * Check if value is an update operator object
995
+ * Supports both lowercase (new) and uppercase (legacy) operators
996
+ */
997
+ isUpdateOperator(value) {
998
+ if (!value || typeof value !== 'object')
999
+ return false;
1000
+ // Support both lowercase (Mongoose style) and uppercase (legacy) operators
1001
+ const operators = [
1002
+ '$inc', '$INC', '$dec', '$DEC', '$mul', '$MUL', '$min', '$MIN', '$max', '$MAX',
1003
+ '$set', '$SET', '$unset', '$UNSET', '$push', '$PUSH', '$pull', '$PULL',
1004
+ '$addToSet', '$ADDTOSET', '$pop', '$POP', '$rename', '$RENAME', '$currentDate', '$CURRENTDATE'
1005
+ ];
1006
+ return operators.some(op => op in value);
1007
+ }
1008
+ getParameterPlaceholder(index) {
1009
+ // MongoDB doesn't use parameter placeholders like SQL
1010
+ return '';
1011
+ }
1012
+ getColumnTypeString(columnType, options) {
1013
+ // MongoDB is schemaless, but we can map to BSON types
1014
+ const typeMap = {
1015
+ [enums_1.ColumnType.INTEGER]: 'int',
1016
+ [enums_1.ColumnType.BIGINT]: 'long',
1017
+ [enums_1.ColumnType.FLOAT]: 'double',
1018
+ [enums_1.ColumnType.DOUBLE]: 'double',
1019
+ [enums_1.ColumnType.DECIMAL]: 'decimal',
1020
+ [enums_1.ColumnType.STRING]: 'string',
1021
+ [enums_1.ColumnType.TEXT]: 'string',
1022
+ [enums_1.ColumnType.BOOLEAN]: 'bool',
1023
+ [enums_1.ColumnType.DATE]: 'date',
1024
+ [enums_1.ColumnType.DATETIME]: 'date',
1025
+ [enums_1.ColumnType.TIMESTAMP]: 'date',
1026
+ [enums_1.ColumnType.JSON]: 'object',
1027
+ [enums_1.ColumnType.JSONB]: 'object',
1028
+ [enums_1.ColumnType.UUID]: 'string',
1029
+ [enums_1.ColumnType.BINARY]: 'binData',
1030
+ [enums_1.ColumnType.ARRAY]: 'array',
1031
+ };
1032
+ return typeMap[columnType] || columnType;
1033
+ }
1034
+ getSupportedFeatures() {
1035
+ return [
1036
+ base_adapter_1.DatabaseFeature.TRANSACTIONS,
1037
+ base_adapter_1.DatabaseFeature.JSON,
1038
+ base_adapter_1.DatabaseFeature.ARRAYS,
1039
+ base_adapter_1.DatabaseFeature.TTL,
1040
+ base_adapter_1.DatabaseFeature.CHANGE_STREAMS,
1041
+ base_adapter_1.DatabaseFeature.SECONDARY_INDEXES,
1042
+ base_adapter_1.DatabaseFeature.AGGREGATION_PIPELINE,
1043
+ base_adapter_1.DatabaseFeature.ATOMIC_COUNTERS,
1044
+ base_adapter_1.DatabaseFeature.BATCH_OPERATIONS,
1045
+ base_adapter_1.DatabaseFeature.REGEX,
1046
+ ];
1047
+ }
1048
+ parseError(error) {
1049
+ const code = error.code;
1050
+ let type = enums_1.DatabaseErrorType.UNKNOWN_ERROR;
1051
+ // Map MongoDB error codes
1052
+ switch (code) {
1053
+ case 11000: // Duplicate key
1054
+ type = enums_1.DatabaseErrorType.UNIQUE_VIOLATION;
1055
+ break;
1056
+ case 18: // Authentication failed
1057
+ type = enums_1.DatabaseErrorType.AUTHENTICATION_ERROR;
1058
+ break;
1059
+ case 26: // Namespace not found
1060
+ type = enums_1.DatabaseErrorType.NOT_FOUND;
1061
+ break;
1062
+ case 48: // Namespace already exists
1063
+ type = enums_1.DatabaseErrorType.SCHEMA_ERROR;
1064
+ break;
1065
+ default:
1066
+ if (error.name === 'MongoNetworkError') {
1067
+ type = enums_1.DatabaseErrorType.CONNECTION_ERROR;
1068
+ }
1069
+ }
1070
+ return {
1071
+ type,
1072
+ message: error.message || 'Unknown database error',
1073
+ code: String(code),
1074
+ details: {
1075
+ codeName: error.codeName,
1076
+ keyPattern: error.keyPattern,
1077
+ keyValue: error.keyValue,
1078
+ },
1079
+ };
1080
+ }
1081
+ // ==================== PRIVATE HELPER METHODS ====================
1082
+ ensureConnected() {
1083
+ if (!this.connected || !this.db) {
1084
+ throw new database_error_1.DatabaseError('Not connected to MongoDB database', enums_1.DatabaseErrorType.CONNECTION_ERROR);
1085
+ }
1086
+ }
1087
+ buildMongoFilter(where) {
1088
+ const filter = {};
1089
+ for (const [key, value] of Object.entries(where)) {
1090
+ // Normalize key to lowercase for logical operators (support both cases for backwards compatibility)
1091
+ const normalizedKey = key.toLowerCase();
1092
+ if (normalizedKey === '$and') {
1093
+ const conditions = Array.isArray(value) ? value : Object.entries(value).map(([k, v]) => ({ [k]: v }));
1094
+ filter.$and = conditions.map((cond) => this.buildMongoFilter(cond));
1095
+ }
1096
+ else if (normalizedKey === '$or') {
1097
+ const conditions = Array.isArray(value) ? value : Object.entries(value).map(([k, v]) => ({ [k]: v }));
1098
+ filter.$or = conditions.map((cond) => this.buildMongoFilter(cond));
1099
+ }
1100
+ else if (normalizedKey === '$not') {
1101
+ filter.$nor = [this.buildMongoFilter(value)];
1102
+ }
1103
+ else if (normalizedKey === '$nor') {
1104
+ const conditions = Array.isArray(value) ? value : [value];
1105
+ filter.$nor = conditions.map((cond) => this.buildMongoFilter(cond));
1106
+ }
1107
+ else if (value !== null && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
1108
+ // Handle operators
1109
+ const fieldFilter = {};
1110
+ for (const [op, opValue] of Object.entries(value)) {
1111
+ // Normalize operator to lowercase (support both cases for backwards compatibility)
1112
+ const normalizedOp = op.toLowerCase();
1113
+ switch (normalizedOp) {
1114
+ case '$eq':
1115
+ fieldFilter.$eq = opValue;
1116
+ break;
1117
+ case '$ne':
1118
+ fieldFilter.$ne = opValue;
1119
+ break;
1120
+ case '$gt':
1121
+ fieldFilter.$gt = opValue;
1122
+ break;
1123
+ case '$gte':
1124
+ fieldFilter.$gte = opValue;
1125
+ break;
1126
+ case '$lt':
1127
+ fieldFilter.$lt = opValue;
1128
+ break;
1129
+ case '$lte':
1130
+ fieldFilter.$lte = opValue;
1131
+ break;
1132
+ case '$in':
1133
+ fieldFilter.$in = opValue;
1134
+ break;
1135
+ case '$nin':
1136
+ case '$not_in':
1137
+ fieldFilter.$nin = opValue;
1138
+ break;
1139
+ case '$like':
1140
+ // Convert SQL LIKE pattern to regex (case-sensitive)
1141
+ // 1. Escape regex special characters first (except % and _)
1142
+ // 2. Replace SQL wildcards with regex equivalents
1143
+ // 3. Anchor pattern to match full string
1144
+ const likePattern = '^' + opValue
1145
+ .replace(/[.*+?^${}()|[\]\\]/g, (char) => {
1146
+ // Don't escape % and _ - they are SQL wildcards
1147
+ if (char === '%' || char === '_')
1148
+ return char;
1149
+ return '\\' + char;
1150
+ })
1151
+ .replace(/%/g, '.*')
1152
+ .replace(/_/g, '.') + '$';
1153
+ fieldFilter.$regex = new RegExp(likePattern);
1154
+ break;
1155
+ case '$ilike':
1156
+ // Convert SQL ILIKE pattern to regex (case-insensitive)
1157
+ const ilikePattern = '^' + opValue
1158
+ .replace(/[.*+?^${}()|[\]\\]/g, (char) => {
1159
+ if (char === '%' || char === '_')
1160
+ return char;
1161
+ return '\\' + char;
1162
+ })
1163
+ .replace(/%/g, '.*')
1164
+ .replace(/_/g, '.') + '$';
1165
+ fieldFilter.$regex = new RegExp(ilikePattern, 'i');
1166
+ break;
1167
+ case '$isnull':
1168
+ case '$is_null':
1169
+ if (opValue) {
1170
+ fieldFilter.$eq = null;
1171
+ }
1172
+ else {
1173
+ fieldFilter.$ne = null;
1174
+ }
1175
+ break;
1176
+ case '$isnotnull':
1177
+ case '$is_not_null':
1178
+ if (opValue) {
1179
+ fieldFilter.$ne = null;
1180
+ }
1181
+ else {
1182
+ fieldFilter.$eq = null;
1183
+ }
1184
+ break;
1185
+ case '$between':
1186
+ const [min, max] = opValue;
1187
+ fieldFilter.$gte = min;
1188
+ fieldFilter.$lte = max;
1189
+ break;
1190
+ case '$contains':
1191
+ fieldFilter.$elemMatch = { $eq: opValue };
1192
+ break;
1193
+ case '$overlaps':
1194
+ fieldFilter.$elemMatch = { $in: opValue };
1195
+ break;
1196
+ case '$regex':
1197
+ if (typeof opValue === 'string') {
1198
+ fieldFilter.$regex = new RegExp(opValue);
1199
+ }
1200
+ else if (opValue instanceof RegExp) {
1201
+ fieldFilter.$regex = opValue;
1202
+ }
1203
+ break;
1204
+ case '$exists':
1205
+ fieldFilter.$exists = opValue;
1206
+ break;
1207
+ }
1208
+ }
1209
+ filter[key] = fieldFilter;
1210
+ }
1211
+ else {
1212
+ // Simple equality
1213
+ filter[key] = value;
1214
+ }
1215
+ }
1216
+ return filter;
1217
+ }
1218
+ extractFieldTypes(obj, prefix, fieldTypes) {
1219
+ for (const [key, value] of Object.entries(obj)) {
1220
+ const fieldName = prefix ? `${prefix}.${key}` : key;
1221
+ const type = this.getJsType(value);
1222
+ if (!fieldTypes.has(fieldName)) {
1223
+ fieldTypes.set(fieldName, new Set());
1224
+ }
1225
+ fieldTypes.get(fieldName).add(type);
1226
+ // Recurse into nested objects (but not arrays)
1227
+ if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {
1228
+ this.extractFieldTypes(value, fieldName, fieldTypes);
1229
+ }
1230
+ }
1231
+ }
1232
+ getJsType(value) {
1233
+ if (value === null)
1234
+ return 'null';
1235
+ if (Array.isArray(value))
1236
+ return 'array';
1237
+ if (value instanceof Date)
1238
+ return 'date';
1239
+ if (value && value._bsontype === 'ObjectId')
1240
+ return 'ObjectId';
1241
+ return typeof value;
1242
+ }
1243
+ formatBytes(bytes) {
1244
+ if (bytes === 0)
1245
+ return '0 B';
1246
+ const k = 1024;
1247
+ const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
1248
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
1249
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
1250
+ }
1251
+ }
1252
+ exports.MongoDBAdapter = MongoDBAdapter;
1253
+ //# sourceMappingURL=mongodb.adapter.js.map