@ductape/sdk 0.0.4-v5 → 0.0.4-v51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/README.md +1 -1
  2. package/dist/api/services/appApi.service.d.ts +48 -2
  3. package/dist/api/services/appApi.service.js +101 -2
  4. package/dist/api/services/appApi.service.js.map +1 -1
  5. package/dist/api/services/pricingApi.service.d.ts +10 -0
  6. package/dist/api/services/pricingApi.service.js +34 -0
  7. package/dist/api/services/pricingApi.service.js.map +1 -0
  8. package/dist/api/services/processorApi.service.d.ts +12 -2
  9. package/dist/api/services/processorApi.service.js +12 -2
  10. package/dist/api/services/processorApi.service.js.map +1 -1
  11. package/dist/api/services/productsApi.service.d.ts +40 -1
  12. package/dist/api/services/productsApi.service.js +105 -1
  13. package/dist/api/services/productsApi.service.js.map +1 -1
  14. package/dist/api/services/userApi.service.js +1 -0
  15. package/dist/api/services/userApi.service.js.map +1 -1
  16. package/dist/api/services/workspaceApi.service.js +1 -0
  17. package/dist/api/services/workspaceApi.service.js.map +1 -1
  18. package/dist/api/services/workspaceSecretsApi.service.d.ts +75 -0
  19. package/dist/api/services/workspaceSecretsApi.service.js +62 -0
  20. package/dist/api/services/workspaceSecretsApi.service.js.map +1 -0
  21. package/dist/api/urls.d.ts +6 -1
  22. package/dist/api/urls.js +12 -2
  23. package/dist/api/urls.js.map +1 -1
  24. package/dist/api/utils/cache.utils.d.ts +1 -1
  25. package/dist/api/utils/cache.utils.js +10 -4
  26. package/dist/api/utils/cache.utils.js.map +1 -1
  27. package/dist/api/utils/strings.utils.d.ts +2 -0
  28. package/dist/api/utils/strings.utils.js +14 -0
  29. package/dist/api/utils/strings.utils.js.map +1 -1
  30. package/dist/apps/services/app.service.d.ts +51 -33
  31. package/dist/apps/services/app.service.js +488 -244
  32. package/dist/apps/services/app.service.js.map +1 -1
  33. package/dist/apps/validators/joi-validators/create.appAction.validator.d.ts +1 -2
  34. package/dist/apps/validators/joi-validators/create.appAction.validator.js +21 -2
  35. package/dist/apps/validators/joi-validators/create.appAction.validator.js.map +1 -1
  36. package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +1 -2
  37. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +2 -15
  38. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
  39. package/dist/apps/validators/joi-validators/update.appAction.validator.js +11 -1
  40. package/dist/apps/validators/joi-validators/update.appAction.validator.js.map +1 -1
  41. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.d.ts +1 -1
  42. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js +34 -1
  43. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js.map +1 -1
  44. package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +1 -2
  45. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +2 -14
  46. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
  47. package/dist/clients/pricing.client.d.ts +3 -0
  48. package/dist/clients/pricing.client.js +33 -0
  49. package/dist/clients/pricing.client.js.map +1 -0
  50. package/dist/database/adapters/base.adapter.d.ts +176 -0
  51. package/dist/database/adapters/base.adapter.js +31 -0
  52. package/dist/database/adapters/base.adapter.js.map +1 -0
  53. package/dist/database/adapters/dynamodb.adapter.d.ts +91 -0
  54. package/dist/database/adapters/dynamodb.adapter.js +1608 -0
  55. package/dist/database/adapters/dynamodb.adapter.js.map +1 -0
  56. package/dist/database/adapters/mongodb.adapter.d.ts +71 -0
  57. package/dist/database/adapters/mongodb.adapter.js +1072 -0
  58. package/dist/database/adapters/mongodb.adapter.js.map +1 -0
  59. package/dist/database/adapters/mysql.adapter.d.ts +146 -0
  60. package/dist/database/adapters/mysql.adapter.js +1492 -0
  61. package/dist/database/adapters/mysql.adapter.js.map +1 -0
  62. package/dist/database/adapters/postgresql.adapter.d.ts +147 -0
  63. package/dist/database/adapters/postgresql.adapter.js +1603 -0
  64. package/dist/database/adapters/postgresql.adapter.js.map +1 -0
  65. package/dist/database/database.service.d.ts +232 -0
  66. package/dist/database/database.service.js +802 -0
  67. package/dist/database/database.service.js.map +1 -0
  68. package/dist/database/index.d.ts +18 -0
  69. package/dist/database/index.js +98 -0
  70. package/dist/database/index.js.map +1 -0
  71. package/dist/database/types/aggregation.types.d.ts +261 -0
  72. package/dist/database/types/aggregation.types.js +21 -0
  73. package/dist/database/types/aggregation.types.js.map +1 -0
  74. package/dist/database/types/connection.types.d.ts +132 -0
  75. package/dist/database/types/connection.types.js +6 -0
  76. package/dist/database/types/connection.types.js.map +1 -0
  77. package/dist/database/types/database.types.d.ts +175 -0
  78. package/dist/database/types/database.types.js +75 -0
  79. package/dist/database/types/database.types.js.map +1 -0
  80. package/dist/database/types/index.d.ts +12 -0
  81. package/dist/database/types/index.js +37 -0
  82. package/dist/database/types/index.js.map +1 -0
  83. package/dist/database/types/index.types.d.ts +220 -0
  84. package/dist/database/types/index.types.js +27 -0
  85. package/dist/database/types/index.types.js.map +1 -0
  86. package/dist/database/types/migration.types.d.ts +205 -0
  87. package/dist/database/types/migration.types.js +44 -0
  88. package/dist/database/types/migration.types.js.map +1 -0
  89. package/dist/database/types/query.types.d.ts +305 -0
  90. package/dist/database/types/query.types.js +57 -0
  91. package/dist/database/types/query.types.js.map +1 -0
  92. package/dist/database/types/result.types.d.ts +220 -0
  93. package/dist/database/types/result.types.js +6 -0
  94. package/dist/database/types/result.types.js.map +1 -0
  95. package/dist/database/types/schema.types.d.ts +190 -0
  96. package/dist/database/types/schema.types.js +69 -0
  97. package/dist/database/types/schema.types.js.map +1 -0
  98. package/dist/database/utils/helpers.d.ts +66 -0
  99. package/dist/database/utils/helpers.js +501 -0
  100. package/dist/database/utils/helpers.js.map +1 -0
  101. package/dist/database/utils/migration.utils.d.ts +151 -0
  102. package/dist/database/utils/migration.utils.js +476 -0
  103. package/dist/database/utils/migration.utils.js.map +1 -0
  104. package/dist/database/utils/transaction.d.ts +64 -0
  105. package/dist/database/utils/transaction.js +130 -0
  106. package/dist/database/utils/transaction.js.map +1 -0
  107. package/dist/database/validators/connection.validator.d.ts +20 -0
  108. package/dist/database/validators/connection.validator.js +267 -0
  109. package/dist/database/validators/connection.validator.js.map +1 -0
  110. package/dist/database/validators/query.validator.d.ts +31 -0
  111. package/dist/database/validators/query.validator.js +305 -0
  112. package/dist/database/validators/query.validator.js.map +1 -0
  113. package/dist/database/validators/schema.validator.d.ts +31 -0
  114. package/dist/database/validators/schema.validator.js +334 -0
  115. package/dist/database/validators/schema.validator.js.map +1 -0
  116. package/dist/graph/adapters/arangodb.adapter.d.ts +80 -0
  117. package/dist/graph/adapters/arangodb.adapter.js +1393 -0
  118. package/dist/graph/adapters/arangodb.adapter.js.map +1 -0
  119. package/dist/graph/adapters/base.adapter.d.ts +228 -0
  120. package/dist/graph/adapters/base.adapter.js +38 -0
  121. package/dist/graph/adapters/base.adapter.js.map +1 -0
  122. package/dist/graph/adapters/index.d.ts +10 -0
  123. package/dist/graph/adapters/index.js +23 -0
  124. package/dist/graph/adapters/index.js.map +1 -0
  125. package/dist/graph/adapters/memgraph.adapter.d.ts +85 -0
  126. package/dist/graph/adapters/memgraph.adapter.js +1491 -0
  127. package/dist/graph/adapters/memgraph.adapter.js.map +1 -0
  128. package/dist/graph/adapters/neo4j.adapter.d.ts +88 -0
  129. package/dist/graph/adapters/neo4j.adapter.js +1861 -0
  130. package/dist/graph/adapters/neo4j.adapter.js.map +1 -0
  131. package/dist/graph/adapters/neptune.adapter.d.ts +87 -0
  132. package/dist/graph/adapters/neptune.adapter.js +1430 -0
  133. package/dist/graph/adapters/neptune.adapter.js.map +1 -0
  134. package/dist/graph/graph.service.d.ts +278 -0
  135. package/dist/graph/graph.service.js +687 -0
  136. package/dist/graph/graph.service.js.map +1 -0
  137. package/dist/graph/index.d.ts +11 -0
  138. package/dist/graph/index.js +42 -0
  139. package/dist/graph/index.js.map +1 -0
  140. package/dist/graph/types/connection.types.d.ts +158 -0
  141. package/dist/graph/types/connection.types.js +43 -0
  142. package/dist/graph/types/connection.types.js.map +1 -0
  143. package/dist/graph/types/graph.types.d.ts +144 -0
  144. package/dist/graph/types/graph.types.js +84 -0
  145. package/dist/graph/types/graph.types.js.map +1 -0
  146. package/dist/graph/types/index.d.ts +11 -0
  147. package/dist/graph/types/index.js +35 -0
  148. package/dist/graph/types/index.js.map +1 -0
  149. package/dist/graph/types/node.types.d.ts +193 -0
  150. package/dist/graph/types/node.types.js +49 -0
  151. package/dist/graph/types/node.types.js.map +1 -0
  152. package/dist/graph/types/path.types.d.ts +224 -0
  153. package/dist/graph/types/path.types.js +38 -0
  154. package/dist/graph/types/path.types.js.map +1 -0
  155. package/dist/graph/types/query.types.d.ts +247 -0
  156. package/dist/graph/types/query.types.js +23 -0
  157. package/dist/graph/types/query.types.js.map +1 -0
  158. package/dist/graph/types/relationship.types.d.ts +224 -0
  159. package/dist/graph/types/relationship.types.js +35 -0
  160. package/dist/graph/types/relationship.types.js.map +1 -0
  161. package/dist/graph/types/result.types.d.ts +237 -0
  162. package/dist/graph/types/result.types.js +7 -0
  163. package/dist/graph/types/result.types.js.map +1 -0
  164. package/dist/graph/validators/index.d.ts +81 -0
  165. package/dist/graph/validators/index.js +243 -0
  166. package/dist/graph/validators/index.js.map +1 -0
  167. package/dist/imports/imports.service.d.ts +3 -3
  168. package/dist/imports/imports.service.js +7 -7
  169. package/dist/imports/imports.service.js.map +1 -1
  170. package/dist/imports/imports.types.d.ts +8 -0
  171. package/dist/imports/repos/postmanV21.repo.d.ts +1 -1
  172. package/dist/imports/repos/postmanV21.repo.js +29 -2
  173. package/dist/imports/repos/postmanV21.repo.js.map +1 -1
  174. package/dist/index.d.ts +1244 -150
  175. package/dist/index.js +1309 -209
  176. package/dist/index.js.map +1 -1
  177. package/dist/inputs/inputs.service.js +2 -2
  178. package/dist/inputs/inputs.service.js.map +1 -1
  179. package/dist/inputs/utils/inputs.utils.create.js +1 -1
  180. package/dist/inputs/utils/inputs.utils.create.js.map +1 -1
  181. package/dist/logs/logs.types.d.ts +5 -0
  182. package/dist/logs/logs.types.js +1 -0
  183. package/dist/logs/logs.types.js.map +1 -1
  184. package/dist/parsers/index.d.ts +3 -0
  185. package/dist/parsers/index.js +27 -0
  186. package/dist/parsers/index.js.map +1 -0
  187. package/dist/parsers/pipelines/postman.pipelines.d.ts +15 -0
  188. package/dist/parsers/pipelines/postman.pipelines.js +103 -0
  189. package/dist/parsers/pipelines/postman.pipelines.js.map +1 -0
  190. package/dist/parsers/types/postman.types.d.ts +200 -0
  191. package/dist/parsers/types/postman.types.js +3 -0
  192. package/dist/parsers/types/postman.types.js.map +1 -0
  193. package/dist/parsers/utils/postman.utils.d.ts +12 -0
  194. package/dist/parsers/utils/postman.utils.js +116 -0
  195. package/dist/parsers/utils/postman.utils.js.map +1 -0
  196. package/dist/parsers/validators/postman-auth.validators.d.ts +10 -0
  197. package/dist/parsers/validators/postman-auth.validators.js +127 -0
  198. package/dist/parsers/validators/postman-auth.validators.js.map +1 -0
  199. package/dist/parsers/validators/postman-request.validators.d.ts +13 -0
  200. package/dist/parsers/validators/postman-request.validators.js +139 -0
  201. package/dist/parsers/validators/postman-request.validators.js.map +1 -0
  202. package/dist/parsers/validators/postman-response.validators.d.ts +13 -0
  203. package/dist/parsers/validators/postman-response.validators.js +150 -0
  204. package/dist/parsers/validators/postman-response.validators.js.map +1 -0
  205. package/dist/parsers/validators/postman-variable.validators.d.ts +14 -0
  206. package/dist/parsers/validators/postman-variable.validators.js +163 -0
  207. package/dist/parsers/validators/postman-variable.validators.js.map +1 -0
  208. package/dist/pricing/pricing.repo.d.ts +0 -0
  209. package/dist/pricing/pricing.repo.js +1 -0
  210. package/dist/pricing/pricing.repo.js.map +1 -0
  211. package/dist/pricing/pricing.service.d.ts +24 -0
  212. package/dist/pricing/pricing.service.js +51 -0
  213. package/dist/pricing/pricing.service.js.map +1 -0
  214. package/dist/pricing/pricing.types.d.ts +76 -0
  215. package/dist/pricing/pricing.types.js +21 -0
  216. package/dist/pricing/pricing.types.js.map +1 -0
  217. package/dist/pricing/utils/string.utils.d.ts +1 -0
  218. package/dist/pricing/utils/string.utils.js +9 -0
  219. package/dist/pricing/utils/string.utils.js.map +1 -0
  220. package/dist/processor/repos/sms.repo.d.ts +4 -4
  221. package/dist/processor/repos/sms.repo.js +23 -10
  222. package/dist/processor/repos/sms.repo.js.map +1 -1
  223. package/dist/processor/services/messagebrokers/kafka.service.js +0 -2
  224. package/dist/processor/services/messagebrokers/kafka.service.js.map +1 -1
  225. package/dist/processor/services/messagebrokers/rabbitmq.service.d.ts +9 -1
  226. package/dist/processor/services/messagebrokers/rabbitmq.service.js +40 -11
  227. package/dist/processor/services/messagebrokers/rabbitmq.service.js.map +1 -1
  228. package/dist/processor/services/processor.service.d.ts +38 -10
  229. package/dist/processor/services/processor.service.js +533 -248
  230. package/dist/processor/services/processor.service.js.map +1 -1
  231. package/dist/processor/services/request.service.d.ts +36 -0
  232. package/dist/processor/services/request.service.js +304 -0
  233. package/dist/processor/services/request.service.js.map +1 -0
  234. package/dist/processor/types/request.types.d.ts +14 -0
  235. package/dist/processor/types/request.types.js +3 -0
  236. package/dist/processor/types/request.types.js.map +1 -0
  237. package/dist/processor/utils/processor.utils.d.ts +3 -0
  238. package/dist/processor/utils/processor.utils.js +84 -22
  239. package/dist/processor/utils/processor.utils.js.map +1 -1
  240. package/dist/processor/utils/request.utils.d.ts +20 -0
  241. package/dist/processor/utils/request.utils.js +113 -0
  242. package/dist/processor/utils/request.utils.js.map +1 -0
  243. package/dist/products/services/products.service.d.ts +114 -77
  244. package/dist/products/services/products.service.js +805 -362
  245. package/dist/products/services/products.service.js.map +1 -1
  246. package/dist/products/services/utils/crypt.utils.d.ts +1 -0
  247. package/dist/products/services/utils/crypt.utils.js +17 -0
  248. package/dist/products/services/utils/crypt.utils.js.map +1 -0
  249. package/dist/products/services/utils/functions.utils.d.ts +13 -0
  250. package/dist/products/services/utils/functions.utils.js +289 -0
  251. package/dist/products/services/utils/functions.utils.js.map +1 -0
  252. package/dist/products/services/utils/objects.utils.d.ts +13 -0
  253. package/dist/products/services/utils/objects.utils.js +89 -0
  254. package/dist/products/services/utils/objects.utils.js.map +1 -0
  255. package/dist/products/services/utils/string.utils.d.ts +12 -0
  256. package/dist/products/services/utils/string.utils.js +168 -0
  257. package/dist/products/services/utils/string.utils.js.map +1 -0
  258. package/dist/products/utils/string.utils.d.ts +1 -1
  259. package/dist/products/utils/string.utils.js +14 -2
  260. package/dist/products/utils/string.utils.js.map +1 -1
  261. package/dist/products/validators/index.d.ts +4 -1
  262. package/dist/products/validators/index.js +7 -1
  263. package/dist/products/validators/index.js.map +1 -1
  264. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.d.ts +15 -4
  265. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js +501 -109
  266. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js.map +1 -1
  267. package/dist/products/validators/joi-validators/create.productEnv.validator.js +1 -0
  268. package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -1
  269. package/dist/products/validators/joi-validators/create.productGraph.validator.d.ts +3 -0
  270. package/dist/products/validators/joi-validators/create.productGraph.validator.js +82 -0
  271. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -0
  272. package/dist/products/validators/joi-validators/create.productGraphAction.validator.d.ts +14 -0
  273. package/dist/products/validators/joi-validators/create.productGraphAction.validator.js +696 -0
  274. package/dist/products/validators/joi-validators/create.productGraphAction.validator.js.map +1 -0
  275. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
  276. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
  277. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
  278. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +1 -0
  279. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -1
  280. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +9 -4
  281. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  282. package/dist/products/validators/joi-validators/create.productNotification.validator.js +5 -2
  283. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  284. package/dist/products/validators/joi-validators/create.userAuth.validator.js +1 -0
  285. package/dist/products/validators/joi-validators/create.userAuth.validator.js.map +1 -1
  286. package/dist/products/validators/joi-validators/update.dataValue.validator.js +1 -0
  287. package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -1
  288. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.d.ts +6 -0
  289. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js +28 -26
  290. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js.map +1 -1
  291. package/dist/products/validators/joi-validators/update.productEnv.validator.js +3 -0
  292. package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -1
  293. package/dist/products/validators/joi-validators/update.productGraph.validator.d.ts +3 -0
  294. package/dist/products/validators/joi-validators/update.productGraph.validator.js +87 -0
  295. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -0
  296. package/dist/products/validators/joi-validators/update.productGraphAction.validator.d.ts +7 -0
  297. package/dist/products/validators/joi-validators/update.productGraphAction.validator.js +72 -0
  298. package/dist/products/validators/joi-validators/update.productGraphAction.validator.js.map +1 -0
  299. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +1 -0
  300. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -1
  301. package/dist/products/validators/joi-validators/update.userAuth.validator.js +1 -0
  302. package/dist/products/validators/joi-validators/update.userAuth.validator.js.map +1 -1
  303. package/dist/test/test.health.d.ts +1 -0
  304. package/dist/test/test.health.js +49 -0
  305. package/dist/test/test.health.js.map +1 -0
  306. package/dist/test/test.import.js +51 -4
  307. package/dist/test/test.import.js.map +1 -1
  308. package/dist/test/test.imports.js +22 -7
  309. package/dist/test/test.imports.js.map +1 -1
  310. package/dist/test/test.notifiers.d.ts +1 -0
  311. package/dist/test/test.notifiers.js +85 -0
  312. package/dist/test/test.notifiers.js.map +1 -0
  313. package/dist/test/test.processor.js +30 -115
  314. package/dist/test/test.processor.js.map +1 -1
  315. package/dist/test/test.products.d.ts +1 -0
  316. package/dist/test/test.products.js +49 -0
  317. package/dist/test/test.products.js.map +1 -0
  318. package/dist/tsconfig.tsbuildinfo +1 -0
  319. package/dist/types/appBuilder.types.d.ts +5 -12
  320. package/dist/types/enums.d.ts +4 -1
  321. package/dist/types/enums.js +3 -0
  322. package/dist/types/enums.js.map +1 -1
  323. package/dist/types/index.types.d.ts +4 -0
  324. package/dist/types/pricing.types.d.ts +4 -0
  325. package/dist/types/pricing.types.js +3 -0
  326. package/dist/types/pricing.types.js.map +1 -0
  327. package/dist/types/processor.types.d.ts +67 -11
  328. package/dist/types/processor.types.js.map +1 -1
  329. package/dist/types/productsBuilder.types.d.ts +132 -14
  330. package/dist/types/productsBuilder.types.js +69 -4
  331. package/dist/types/productsBuilder.types.js.map +1 -1
  332. package/dist/types/request-tracker.interface.d.ts +0 -0
  333. package/dist/types/request-tracker.interface.js +1 -0
  334. package/dist/types/request-tracker.interface.js.map +1 -0
  335. package/dist/utils/constants.d.ts +1 -0
  336. package/dist/utils/constants.js +5 -0
  337. package/dist/utils/constants.js.map +1 -0
  338. package/package.json +17 -3
@@ -0,0 +1,696 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.GraphActionSchema = exports.validateGraphFilterTemplate = exports.validateGraphTemplate = void 0;
37
+ const Joi = __importStar(require("joi"));
38
+ const inputs_types_1 = require("../../../types/inputs.types");
39
+ const productsBuilder_types_1 = require("../../../types/productsBuilder.types");
40
+ const placeholderPattern = /\{\{[^}]+\}\}/g;
41
+ /**
42
+ * Helper to check if a value contains placeholders or has a valid value
43
+ */
44
+ const hasValidValue = (value) => {
45
+ if (value === undefined || value === null)
46
+ return false;
47
+ if (typeof value === 'string') {
48
+ return value.length > 0;
49
+ }
50
+ if (typeof value === 'object') {
51
+ return Object.keys(value).length > 0 || JSON.stringify(value).match(placeholderPattern) !== null;
52
+ }
53
+ return true;
54
+ };
55
+ /**
56
+ * Validates node reference structure (used in fromNode, toNode, startNode, endNode)
57
+ */
58
+ const validateNodeReference = (ref, fieldName) => {
59
+ if (!ref || typeof ref !== 'object') {
60
+ return `${fieldName} must be a valid object.`;
61
+ }
62
+ // A node reference should have at least one of: id, labels, properties, or where
63
+ const hasId = hasValidValue(ref.id);
64
+ const hasLabels = hasValidValue(ref.labels);
65
+ const hasProperties = hasValidValue(ref.properties);
66
+ const hasWhere = hasValidValue(ref.where);
67
+ if (!hasId && !hasLabels && !hasProperties && !hasWhere) {
68
+ return `${fieldName} must have at least one of: id, labels, properties, or where.`;
69
+ }
70
+ return null;
71
+ };
72
+ /**
73
+ * Validates where clause structure
74
+ */
75
+ const validateWhereClause = (where, fieldName) => {
76
+ if (!where || typeof where !== 'object') {
77
+ return `${fieldName} must be a valid object.`;
78
+ }
79
+ // Where clause should have property, operator, and value (or and/or for compound)
80
+ const hasProperty = hasValidValue(where.property);
81
+ const hasOperator = hasValidValue(where.operator);
82
+ const hasValue = where.value !== undefined;
83
+ const hasAnd = Array.isArray(where.and) && where.and.length > 0;
84
+ const hasOr = Array.isArray(where.or) && where.or.length > 0;
85
+ if (!(hasProperty && hasOperator && hasValue) && !hasAnd && !hasOr) {
86
+ return `${fieldName} must have (property, operator, value) or (and/or clauses).`;
87
+ }
88
+ return null;
89
+ };
90
+ /**
91
+ * Validates FIND_NODES template options
92
+ * Expected: IFindNodesOptions - labels?, where?, properties?, orderBy?, skip?, limit?, returnProperties?
93
+ */
94
+ const validateFindNodesOptions = (options) => {
95
+ // At least one search criteria should be present
96
+ const hasLabels = hasValidValue(options.labels);
97
+ const hasWhere = hasValidValue(options.where);
98
+ const hasProperties = hasValidValue(options.properties);
99
+ if (!hasLabels && !hasWhere && !hasProperties) {
100
+ return 'FIND_NODES requires at least one of: labels, where, or properties.';
101
+ }
102
+ // Validate where clause if present
103
+ if (options.where && typeof options.where === 'object' && !JSON.stringify(options.where).match(placeholderPattern)) {
104
+ const whereError = validateWhereClause(options.where, 'where');
105
+ if (whereError)
106
+ return whereError;
107
+ }
108
+ // Validate orderBy structure if present
109
+ if (options.orderBy && !Array.isArray(options.orderBy)) {
110
+ return 'orderBy must be an array of { property, direction } objects.';
111
+ }
112
+ return null;
113
+ };
114
+ /**
115
+ * Validates FIND_NODE_BY_ID template options
116
+ * Expected: id (required)
117
+ */
118
+ const validateFindNodeByIdOptions = (options) => {
119
+ if (!hasValidValue(options.id)) {
120
+ return 'FIND_NODE_BY_ID requires id.';
121
+ }
122
+ return null;
123
+ };
124
+ /**
125
+ * Validates CREATE_NODE template options
126
+ * Expected: ICreateNodeOptions - labels (required), properties (required), returnNode?, onConflict?, uniqueConstraint?
127
+ */
128
+ const validateCreateNodeOptions = (options) => {
129
+ if (!hasValidValue(options.labels)) {
130
+ return 'CREATE_NODE requires labels (string or array of strings).';
131
+ }
132
+ if (!hasValidValue(options.properties)) {
133
+ return 'CREATE_NODE requires properties object.';
134
+ }
135
+ // Validate onConflict if present
136
+ if (options.onConflict && !['error', 'ignore', 'merge'].includes(options.onConflict)) {
137
+ return 'onConflict must be one of: error, ignore, merge.';
138
+ }
139
+ return null;
140
+ };
141
+ /**
142
+ * Validates UPDATE_NODE template options
143
+ * Expected: IUpdateNodeOptions - id?, labels?, where?, set?, remove?, addLabels?, removeLabels?, returnNode?
144
+ */
145
+ const validateUpdateNodeOptions = (options) => {
146
+ // Must have a way to identify the node(s) to update
147
+ const hasId = hasValidValue(options.id);
148
+ const hasLabels = hasValidValue(options.labels);
149
+ const hasWhere = hasValidValue(options.where);
150
+ if (!hasId && !hasLabels && !hasWhere) {
151
+ return 'UPDATE_NODE requires at least one of: id, labels, or where to identify nodes.';
152
+ }
153
+ // Must have something to update
154
+ const hasSet = hasValidValue(options.set);
155
+ const hasRemove = hasValidValue(options.remove);
156
+ const hasAddLabels = hasValidValue(options.addLabels);
157
+ const hasRemoveLabels = hasValidValue(options.removeLabels);
158
+ if (!hasSet && !hasRemove && !hasAddLabels && !hasRemoveLabels) {
159
+ return 'UPDATE_NODE requires at least one of: set, remove, addLabels, or removeLabels.';
160
+ }
161
+ return null;
162
+ };
163
+ /**
164
+ * Validates DELETE_NODE template options
165
+ * Expected: IDeleteNodeOptions - id?, labels?, where?, detach?, returnCount?
166
+ */
167
+ const validateDeleteNodeOptions = (options) => {
168
+ const hasId = hasValidValue(options.id);
169
+ const hasLabels = hasValidValue(options.labels);
170
+ const hasWhere = hasValidValue(options.where);
171
+ if (!hasId && !hasLabels && !hasWhere) {
172
+ return 'DELETE_NODE requires at least one of: id, labels, or where to identify nodes.';
173
+ }
174
+ return null;
175
+ };
176
+ /**
177
+ * Validates MERGE_NODE template options
178
+ * Expected: IMergeNodeOptions - labels (required), matchProperties (required), onCreate?, onMatch?, returnNode?
179
+ */
180
+ const validateMergeNodeOptions = (options) => {
181
+ if (!hasValidValue(options.labels)) {
182
+ return 'MERGE_NODE requires labels.';
183
+ }
184
+ if (!hasValidValue(options.matchProperties)) {
185
+ return 'MERGE_NODE requires matchProperties to define the merge criteria.';
186
+ }
187
+ return null;
188
+ };
189
+ /**
190
+ * Validates FIND_RELATIONSHIPS template options
191
+ * Expected: IFindRelationshipsOptions - type?, direction?, fromNode?, toNode?, where?, properties?, orderBy?, skip?, limit?
192
+ */
193
+ const validateFindRelationshipsOptions = (options) => {
194
+ const hasType = hasValidValue(options.type);
195
+ const hasFromNode = hasValidValue(options.fromNode);
196
+ const hasToNode = hasValidValue(options.toNode);
197
+ const hasWhere = hasValidValue(options.where);
198
+ const hasProperties = hasValidValue(options.properties);
199
+ if (!hasType && !hasFromNode && !hasToNode && !hasWhere && !hasProperties) {
200
+ return 'FIND_RELATIONSHIPS requires at least one of: type, fromNode, toNode, where, or properties.';
201
+ }
202
+ // Validate direction if present
203
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
204
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
205
+ }
206
+ return null;
207
+ };
208
+ /**
209
+ * Validates CREATE_RELATIONSHIP template options
210
+ * Expected: ICreateRelationshipOptions - type (required), fromNode (required), toNode (required), properties?, returnRelationship?, onConflict?
211
+ */
212
+ const validateCreateRelationshipOptions = (options) => {
213
+ if (!hasValidValue(options.type)) {
214
+ return 'CREATE_RELATIONSHIP requires type (relationship type string).';
215
+ }
216
+ if (!hasValidValue(options.fromNode)) {
217
+ return 'CREATE_RELATIONSHIP requires fromNode.';
218
+ }
219
+ if (!hasValidValue(options.toNode)) {
220
+ return 'CREATE_RELATIONSHIP requires toNode.';
221
+ }
222
+ // Validate node references
223
+ const fromError = validateNodeReference(options.fromNode, 'fromNode');
224
+ if (fromError)
225
+ return fromError;
226
+ const toError = validateNodeReference(options.toNode, 'toNode');
227
+ if (toError)
228
+ return toError;
229
+ return null;
230
+ };
231
+ /**
232
+ * Validates UPDATE_RELATIONSHIP template options
233
+ * Expected: IUpdateRelationshipOptions - id?, type?, fromNode?, toNode?, where?, set?, remove?, returnRelationship?
234
+ */
235
+ const validateUpdateRelationshipOptions = (options) => {
236
+ const hasId = hasValidValue(options.id);
237
+ const hasType = hasValidValue(options.type);
238
+ const hasFromNode = hasValidValue(options.fromNode);
239
+ const hasToNode = hasValidValue(options.toNode);
240
+ const hasWhere = hasValidValue(options.where);
241
+ if (!hasId && !hasType && !hasFromNode && !hasToNode && !hasWhere) {
242
+ return 'UPDATE_RELATIONSHIP requires at least one of: id, type, fromNode, toNode, or where to identify relationships.';
243
+ }
244
+ const hasSet = hasValidValue(options.set);
245
+ const hasRemove = hasValidValue(options.remove);
246
+ if (!hasSet && !hasRemove) {
247
+ return 'UPDATE_RELATIONSHIP requires at least one of: set or remove.';
248
+ }
249
+ return null;
250
+ };
251
+ /**
252
+ * Validates DELETE_RELATIONSHIP template options
253
+ * Expected: IDeleteRelationshipOptions - id?, type?, fromNode?, toNode?, where?, returnCount?
254
+ */
255
+ const validateDeleteRelationshipOptions = (options) => {
256
+ const hasId = hasValidValue(options.id);
257
+ const hasType = hasValidValue(options.type);
258
+ const hasFromNode = hasValidValue(options.fromNode);
259
+ const hasToNode = hasValidValue(options.toNode);
260
+ const hasWhere = hasValidValue(options.where);
261
+ if (!hasId && !hasType && !hasFromNode && !hasToNode && !hasWhere) {
262
+ return 'DELETE_RELATIONSHIP requires at least one of: id, type, fromNode, toNode, or where to identify relationships.';
263
+ }
264
+ return null;
265
+ };
266
+ /**
267
+ * Validates MERGE_RELATIONSHIP template options
268
+ * Expected: IMergeRelationshipOptions - type (required), fromNode (required), toNode (required), matchProperties?, onCreate?, onMatch?
269
+ */
270
+ const validateMergeRelationshipOptions = (options) => {
271
+ if (!hasValidValue(options.type)) {
272
+ return 'MERGE_RELATIONSHIP requires type.';
273
+ }
274
+ if (!hasValidValue(options.fromNode)) {
275
+ return 'MERGE_RELATIONSHIP requires fromNode.';
276
+ }
277
+ if (!hasValidValue(options.toNode)) {
278
+ return 'MERGE_RELATIONSHIP requires toNode.';
279
+ }
280
+ const fromError = validateNodeReference(options.fromNode, 'fromNode');
281
+ if (fromError)
282
+ return fromError;
283
+ const toError = validateNodeReference(options.toNode, 'toNode');
284
+ if (toError)
285
+ return toError;
286
+ return null;
287
+ };
288
+ /**
289
+ * Validates TRAVERSE template options
290
+ * Expected: ITraverseOptions - startNode (required), relationships?, direction?, minDepth?, maxDepth?, uniqueness?, orderBy?, limit?, filters?
291
+ */
292
+ const validateTraverseOptions = (options) => {
293
+ if (!hasValidValue(options.startNode)) {
294
+ return 'TRAVERSE requires startNode.';
295
+ }
296
+ const startNodeError = validateNodeReference(options.startNode, 'startNode');
297
+ if (startNodeError)
298
+ return startNodeError;
299
+ // Validate direction if present
300
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
301
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
302
+ }
303
+ // Validate uniqueness if present
304
+ const validUniqueness = ['NONE', 'NODE_GLOBAL', 'NODE_PATH', 'RELATIONSHIP_GLOBAL', 'RELATIONSHIP_PATH', 'NODE_RECENT'];
305
+ if (options.uniqueness && !validUniqueness.includes(options.uniqueness)) {
306
+ return `uniqueness must be one of: ${validUniqueness.join(', ')}.`;
307
+ }
308
+ // Validate orderBy (traversal order) if present
309
+ const validOrders = ['BREADTH_FIRST', 'DEPTH_FIRST'];
310
+ if (options.orderBy && typeof options.orderBy === 'string' && !validOrders.includes(options.orderBy)) {
311
+ return `orderBy must be one of: ${validOrders.join(', ')}.`;
312
+ }
313
+ return null;
314
+ };
315
+ /**
316
+ * Validates SHORTEST_PATH template options
317
+ * Expected: IShortestPathOptions - startNode (required), endNode (required), relationships?, direction?, maxDepth?, weightProperty?, algorithm?
318
+ */
319
+ const validateShortestPathOptions = (options) => {
320
+ if (!hasValidValue(options.startNode)) {
321
+ return 'SHORTEST_PATH requires startNode.';
322
+ }
323
+ if (!hasValidValue(options.endNode)) {
324
+ return 'SHORTEST_PATH requires endNode.';
325
+ }
326
+ const startError = validateNodeReference(options.startNode, 'startNode');
327
+ if (startError)
328
+ return startError;
329
+ const endError = validateNodeReference(options.endNode, 'endNode');
330
+ if (endError)
331
+ return endError;
332
+ // Validate algorithm if present
333
+ const validAlgorithms = ['DIJKSTRA', 'ASTAR', 'BFS', 'ALHOP'];
334
+ if (options.algorithm && !validAlgorithms.includes(options.algorithm)) {
335
+ return `algorithm must be one of: ${validAlgorithms.join(', ')}.`;
336
+ }
337
+ return null;
338
+ };
339
+ /**
340
+ * Validates FIND_RELATIONSHIP_BY_ID template options
341
+ * Expected: id (required)
342
+ */
343
+ const validateFindRelationshipByIdOptions = (options) => {
344
+ if (!hasValidValue(options.id)) {
345
+ return 'FIND_RELATIONSHIP_BY_ID requires id.';
346
+ }
347
+ return null;
348
+ };
349
+ /**
350
+ * Validates ALL_PATHS template options
351
+ * Expected: IAllPathsOptions - startNode (required), endNode (required), relationships?, direction?, minDepth?, maxDepth?, limit?
352
+ */
353
+ const validateAllPathsOptions = (options) => {
354
+ if (!hasValidValue(options.startNode)) {
355
+ return 'ALL_PATHS requires startNode.';
356
+ }
357
+ if (!hasValidValue(options.endNode)) {
358
+ return 'ALL_PATHS requires endNode.';
359
+ }
360
+ const startError = validateNodeReference(options.startNode, 'startNode');
361
+ if (startError)
362
+ return startError;
363
+ const endError = validateNodeReference(options.endNode, 'endNode');
364
+ if (endError)
365
+ return endError;
366
+ // Validate direction if present
367
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
368
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
369
+ }
370
+ return null;
371
+ };
372
+ /**
373
+ * Validates MATCH_PATTERN template options
374
+ * Expected: IMatchPatternOptions - pattern (required), return?, orderBy?, skip?, limit?, optional?
375
+ */
376
+ const validateMatchPatternOptions = (options) => {
377
+ if (!hasValidValue(options.pattern)) {
378
+ return 'MATCH_PATTERN requires pattern object.';
379
+ }
380
+ // Pattern should have nodes array
381
+ if (!options.pattern.nodes || !Array.isArray(options.pattern.nodes)) {
382
+ return 'MATCH_PATTERN pattern must include nodes array.';
383
+ }
384
+ return null;
385
+ };
386
+ /**
387
+ * Validates EXTRACT_SUBGRAPH template options
388
+ * Expected: ISubgraphOptions - startNodes (required), maxDepth?, relationships?, direction?, includeStartNodes?, nodeFilter?, relationshipFilter?
389
+ */
390
+ const validateExtractSubgraphOptions = (options) => {
391
+ if (!hasValidValue(options.startNodes)) {
392
+ return 'EXTRACT_SUBGRAPH requires startNodes (node selector or array of node selectors).';
393
+ }
394
+ // Validate direction if present
395
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
396
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
397
+ }
398
+ return null;
399
+ };
400
+ /**
401
+ * Validates GET_NEIGHBORHOOD template options
402
+ * Expected: INeighborhoodOptions - node (required), depth?, direction?, relationshipTypes?, includeCenter?
403
+ */
404
+ const validateGetNeighborhoodOptions = (options) => {
405
+ if (!hasValidValue(options.node)) {
406
+ return 'GET_NEIGHBORHOOD requires node (node selector).';
407
+ }
408
+ const nodeError = validateNodeReference(options.node, 'node');
409
+ if (nodeError)
410
+ return nodeError;
411
+ // Validate direction if present
412
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
413
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
414
+ }
415
+ return null;
416
+ };
417
+ /**
418
+ * Validates CONNECTED_COMPONENTS template options
419
+ * Expected: IConnectedComponentsOptions - labels?, relationshipTypes?, direction?, minSize?
420
+ */
421
+ const validateConnectedComponentsOptions = (options) => {
422
+ // All fields are optional for connected components
423
+ // Validate direction if present
424
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
425
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
426
+ }
427
+ return null;
428
+ };
429
+ /**
430
+ * Validates COUNT_NODES template options
431
+ * Expected: labels?, where?, properties?
432
+ */
433
+ const validateCountNodesOptions = (options) => {
434
+ // At least one criteria should be present for meaningful count
435
+ // But we allow empty to count all nodes
436
+ // Validate where clause if present
437
+ if (options.where && typeof options.where === 'object' && !JSON.stringify(options.where).match(placeholderPattern)) {
438
+ const whereError = validateWhereClause(options.where, 'where');
439
+ if (whereError)
440
+ return whereError;
441
+ }
442
+ return null;
443
+ };
444
+ /**
445
+ * Validates COUNT_RELATIONSHIPS template options
446
+ * Expected: type?, fromNode?, toNode?, where?, properties?
447
+ */
448
+ const validateCountRelationshipsOptions = (options) => {
449
+ // Validate direction if present
450
+ if (options.direction && !['OUTGOING', 'INCOMING', 'BOTH'].includes(options.direction)) {
451
+ return 'direction must be one of: OUTGOING, INCOMING, BOTH.';
452
+ }
453
+ // Validate where clause if present
454
+ if (options.where && typeof options.where === 'object' && !JSON.stringify(options.where).match(placeholderPattern)) {
455
+ const whereError = validateWhereClause(options.where, 'where');
456
+ if (whereError)
457
+ return whereError;
458
+ }
459
+ return null;
460
+ };
461
+ /**
462
+ * Validates FULL_TEXT_SEARCH template options
463
+ * Expected: IFullTextSearchOptions - index (required), query (required), labels?, score?, limit?, analyzer?
464
+ */
465
+ const validateFullTextSearchOptions = (options) => {
466
+ if (!hasValidValue(options.index)) {
467
+ return 'FULL_TEXT_SEARCH requires index (name of the full-text index).';
468
+ }
469
+ if (!hasValidValue(options.query)) {
470
+ return 'FULL_TEXT_SEARCH requires query (search query string).';
471
+ }
472
+ return null;
473
+ };
474
+ /**
475
+ * Validates VECTOR_SEARCH template options
476
+ * Expected: IVectorSearchOptions - index (required), vector (required), topK (required), labels?, minScore?
477
+ */
478
+ const validateVectorSearchOptions = (options) => {
479
+ if (!hasValidValue(options.index)) {
480
+ return 'VECTOR_SEARCH requires index (name of the vector index).';
481
+ }
482
+ if (!hasValidValue(options.vector)) {
483
+ return 'VECTOR_SEARCH requires vector (query vector array).';
484
+ }
485
+ if (!hasValidValue(options.topK)) {
486
+ return 'VECTOR_SEARCH requires topK (number of results to return).';
487
+ }
488
+ return null;
489
+ };
490
+ /**
491
+ * Validates RAW_QUERY template options
492
+ * Expected: IRawQueryOptions - query (required), params?, language?, timeout?, readonly?, database?
493
+ */
494
+ const validateRawQueryOptions = (options) => {
495
+ if (!hasValidValue(options.query)) {
496
+ return 'RAW_QUERY requires query string.';
497
+ }
498
+ // Validate language if present
499
+ const validLanguages = ['CYPHER', 'GREMLIN', 'AQL', 'SPARQL'];
500
+ if (options.language && !validLanguages.includes(options.language)) {
501
+ return `language must be one of: ${validLanguages.join(', ')}.`;
502
+ }
503
+ return null;
504
+ };
505
+ /**
506
+ * Validates that the template contains placeholders and has proper structure for the action type
507
+ */
508
+ const validateGraphTemplate = (value, helpers) => {
509
+ var _a;
510
+ if (typeof value !== 'object' || value === null) {
511
+ return helpers.error('any.invalid', {
512
+ message: 'Template must be a valid object.',
513
+ });
514
+ }
515
+ const actionType = (_a = helpers.state.ancestors[0]) === null || _a === void 0 ? void 0 : _a.type;
516
+ // Validate that the template has the correct operation field if specified
517
+ if (value.operation && value.operation !== actionType) {
518
+ return helpers.error('any.invalid', {
519
+ message: `Template operation "${value.operation}" does not match action type "${actionType}".`,
520
+ });
521
+ }
522
+ // Check for placeholders in the template
523
+ const templateStr = JSON.stringify(value);
524
+ const placeholders = templateStr.match(placeholderPattern);
525
+ if (!placeholders || placeholders.length === 0) {
526
+ return helpers.error('any.invalid', {
527
+ message: 'Template must include placeholders in the format {{valueName}}.',
528
+ });
529
+ }
530
+ // Ensure options object exists
531
+ if (!value.options || typeof value.options !== 'object') {
532
+ return helpers.error('any.invalid', {
533
+ message: 'Template must include options object.',
534
+ });
535
+ }
536
+ const options = value.options;
537
+ let validationError = null;
538
+ // Type-specific validations based on the expected interface for each action type
539
+ switch (actionType) {
540
+ // Node operations
541
+ case productsBuilder_types_1.GraphActionTypes.CREATE_NODE:
542
+ validationError = validateCreateNodeOptions(options);
543
+ break;
544
+ case productsBuilder_types_1.GraphActionTypes.FIND_NODES:
545
+ validationError = validateFindNodesOptions(options);
546
+ break;
547
+ case productsBuilder_types_1.GraphActionTypes.FIND_NODE_BY_ID:
548
+ validationError = validateFindNodeByIdOptions(options);
549
+ break;
550
+ case productsBuilder_types_1.GraphActionTypes.UPDATE_NODE:
551
+ validationError = validateUpdateNodeOptions(options);
552
+ break;
553
+ case productsBuilder_types_1.GraphActionTypes.DELETE_NODE:
554
+ validationError = validateDeleteNodeOptions(options);
555
+ break;
556
+ case productsBuilder_types_1.GraphActionTypes.MERGE_NODE:
557
+ validationError = validateMergeNodeOptions(options);
558
+ break;
559
+ // Relationship operations
560
+ case productsBuilder_types_1.GraphActionTypes.CREATE_RELATIONSHIP:
561
+ validationError = validateCreateRelationshipOptions(options);
562
+ break;
563
+ case productsBuilder_types_1.GraphActionTypes.FIND_RELATIONSHIPS:
564
+ validationError = validateFindRelationshipsOptions(options);
565
+ break;
566
+ case productsBuilder_types_1.GraphActionTypes.FIND_RELATIONSHIP_BY_ID:
567
+ validationError = validateFindRelationshipByIdOptions(options);
568
+ break;
569
+ case productsBuilder_types_1.GraphActionTypes.UPDATE_RELATIONSHIP:
570
+ validationError = validateUpdateRelationshipOptions(options);
571
+ break;
572
+ case productsBuilder_types_1.GraphActionTypes.DELETE_RELATIONSHIP:
573
+ validationError = validateDeleteRelationshipOptions(options);
574
+ break;
575
+ case productsBuilder_types_1.GraphActionTypes.MERGE_RELATIONSHIP:
576
+ validationError = validateMergeRelationshipOptions(options);
577
+ break;
578
+ // Traversal and path operations
579
+ case productsBuilder_types_1.GraphActionTypes.TRAVERSE:
580
+ validationError = validateTraverseOptions(options);
581
+ break;
582
+ case productsBuilder_types_1.GraphActionTypes.SHORTEST_PATH:
583
+ validationError = validateShortestPathOptions(options);
584
+ break;
585
+ case productsBuilder_types_1.GraphActionTypes.ALL_PATHS:
586
+ validationError = validateAllPathsOptions(options);
587
+ break;
588
+ // Pattern and subgraph operations
589
+ case productsBuilder_types_1.GraphActionTypes.MATCH_PATTERN:
590
+ validationError = validateMatchPatternOptions(options);
591
+ break;
592
+ case productsBuilder_types_1.GraphActionTypes.EXTRACT_SUBGRAPH:
593
+ validationError = validateExtractSubgraphOptions(options);
594
+ break;
595
+ case productsBuilder_types_1.GraphActionTypes.GET_NEIGHBORHOOD:
596
+ validationError = validateGetNeighborhoodOptions(options);
597
+ break;
598
+ case productsBuilder_types_1.GraphActionTypes.CONNECTED_COMPONENTS:
599
+ validationError = validateConnectedComponentsOptions(options);
600
+ break;
601
+ // Aggregation operations
602
+ case productsBuilder_types_1.GraphActionTypes.COUNT_NODES:
603
+ validationError = validateCountNodesOptions(options);
604
+ break;
605
+ case productsBuilder_types_1.GraphActionTypes.COUNT_RELATIONSHIPS:
606
+ validationError = validateCountRelationshipsOptions(options);
607
+ break;
608
+ // Search operations
609
+ case productsBuilder_types_1.GraphActionTypes.FULL_TEXT_SEARCH:
610
+ validationError = validateFullTextSearchOptions(options);
611
+ break;
612
+ case productsBuilder_types_1.GraphActionTypes.VECTOR_SEARCH:
613
+ validationError = validateVectorSearchOptions(options);
614
+ break;
615
+ // Raw query
616
+ case productsBuilder_types_1.GraphActionTypes.RAW_QUERY:
617
+ validationError = validateRawQueryOptions(options);
618
+ break;
619
+ default:
620
+ validationError = `Unknown action type: ${actionType}`;
621
+ break;
622
+ }
623
+ if (validationError) {
624
+ return helpers.error('any.invalid', {
625
+ message: validationError,
626
+ });
627
+ }
628
+ return value;
629
+ };
630
+ exports.validateGraphTemplate = validateGraphTemplate;
631
+ /**
632
+ * Validates the filter template for update/delete operations
633
+ */
634
+ const validateGraphFilterTemplate = (value, helpers) => {
635
+ var _a;
636
+ if (typeof value !== 'object' || value === null) {
637
+ return helpers.error('any.invalid', {
638
+ message: 'FilterTemplate must be a valid object.',
639
+ });
640
+ }
641
+ const actionType = (_a = helpers.state.ancestors[0]) === null || _a === void 0 ? void 0 : _a.type;
642
+ // Filter templates are typically used for update/delete operations
643
+ if (![
644
+ productsBuilder_types_1.GraphActionTypes.UPDATE_NODE,
645
+ productsBuilder_types_1.GraphActionTypes.DELETE_NODE,
646
+ productsBuilder_types_1.GraphActionTypes.UPDATE_RELATIONSHIP,
647
+ productsBuilder_types_1.GraphActionTypes.DELETE_RELATIONSHIP,
648
+ ].includes(actionType)) {
649
+ return helpers.error('any.invalid', {
650
+ message: `FilterTemplate is not applicable for action type "${actionType}".`,
651
+ });
652
+ }
653
+ // Check for placeholders in the filter template
654
+ const filterStr = JSON.stringify(value);
655
+ const placeholders = filterStr.match(placeholderPattern);
656
+ if (!placeholders || placeholders.length === 0) {
657
+ return helpers.error('any.invalid', {
658
+ message: 'FilterTemplate must include placeholders in the format {{valueName}}.',
659
+ });
660
+ }
661
+ return value;
662
+ };
663
+ exports.validateGraphFilterTemplate = validateGraphFilterTemplate;
664
+ /**
665
+ * Schema for creating graph actions
666
+ */
667
+ exports.GraphActionSchema = Joi.object({
668
+ name: Joi.string().required().messages({
669
+ 'any.required': 'name is required',
670
+ }),
671
+ tag: Joi.string()
672
+ .pattern(inputs_types_1.tagPattern)
673
+ .messages(inputs_types_1.tagMessage)
674
+ .required(),
675
+ description: Joi.string().optional(),
676
+ type: Joi.string()
677
+ .valid(...Object.values(productsBuilder_types_1.GraphActionTypes))
678
+ .required()
679
+ .messages({
680
+ 'any.only': `type must be one of: ${Object.values(productsBuilder_types_1.GraphActionTypes).join(', ')}`,
681
+ }),
682
+ template: Joi.object()
683
+ .custom(exports.validateGraphTemplate, 'Graph template validation')
684
+ .required()
685
+ .messages({
686
+ 'any.invalid': 'Template must be a valid graph adapter query object with placeholders.',
687
+ }),
688
+ filterTemplate: Joi.object()
689
+ .custom(exports.validateGraphFilterTemplate, 'Graph filter template validation')
690
+ .optional()
691
+ .messages({
692
+ 'any.invalid': 'FilterTemplate must be a valid filter object with placeholders.',
693
+ }),
694
+ });
695
+ exports.default = exports.GraphActionSchema;
696
+ //# sourceMappingURL=create.productGraphAction.validator.js.map