@nlabs/reaktor 0.10.5 → 0.10.7

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 (535) hide show
  1. package/lib/actions/apps.d.ts +1 -0
  2. package/lib/actions/apps.d.ts.map +1 -0
  3. package/lib/actions/apps.js +221 -0
  4. package/lib/actions/connections.d.ts +1 -0
  5. package/lib/actions/connections.d.ts.map +1 -0
  6. package/lib/actions/connections.js +62 -0
  7. package/lib/actions/content.d.ts +1 -0
  8. package/lib/actions/content.d.ts.map +1 -0
  9. package/lib/actions/content.js +240 -0
  10. package/lib/actions/conversations.d.ts +1 -0
  11. package/lib/actions/conversations.d.ts.map +1 -0
  12. package/lib/actions/conversations.js +335 -0
  13. package/lib/actions/dynamodb.d.ts +1 -0
  14. package/lib/actions/dynamodb.d.ts.map +1 -0
  15. package/lib/actions/dynamodb.js +119 -0
  16. package/lib/actions/email.d.ts +1 -0
  17. package/lib/actions/email.d.ts.map +1 -0
  18. package/lib/actions/email.js +56 -0
  19. package/lib/actions/files.d.ts +1 -0
  20. package/lib/actions/files.d.ts.map +1 -0
  21. package/lib/actions/files.js +226 -0
  22. package/lib/actions/groups.d.ts +1 -0
  23. package/lib/actions/groups.d.ts.map +1 -0
  24. package/lib/actions/groups.js +267 -0
  25. package/lib/actions/images.d.ts +1 -0
  26. package/lib/actions/images.d.ts.map +1 -0
  27. package/lib/actions/images.js +723 -0
  28. package/lib/actions/index.d.ts +1 -0
  29. package/lib/actions/index.d.ts.map +1 -0
  30. package/lib/actions/index.js +29 -0
  31. package/lib/actions/ios.d.ts +1 -0
  32. package/lib/actions/ios.d.ts.map +1 -0
  33. package/lib/actions/ios.js +230 -0
  34. package/lib/actions/locations.d.ts +1 -0
  35. package/lib/actions/locations.d.ts.map +1 -0
  36. package/lib/actions/locations.js +111 -0
  37. package/lib/actions/messages.d.ts +1 -0
  38. package/lib/actions/messages.d.ts.map +1 -0
  39. package/lib/actions/messages.js +167 -0
  40. package/lib/actions/notifications.d.ts +3 -2
  41. package/lib/actions/notifications.d.ts.map +1 -0
  42. package/lib/actions/notifications.js +37 -0
  43. package/lib/actions/payments.d.ts +1 -0
  44. package/lib/actions/payments.d.ts.map +1 -0
  45. package/lib/actions/payments.js +449 -0
  46. package/lib/actions/posts.d.ts +1 -0
  47. package/lib/actions/posts.d.ts.map +1 -0
  48. package/lib/actions/posts.js +608 -0
  49. package/lib/actions/profiles.d.ts +1 -0
  50. package/lib/actions/profiles.d.ts.map +1 -0
  51. package/lib/actions/profiles.js +58 -0
  52. package/lib/actions/reactions.d.ts +1 -0
  53. package/lib/actions/reactions.d.ts.map +1 -0
  54. package/lib/actions/reactions.js +286 -0
  55. package/lib/actions/s3.d.ts +1 -0
  56. package/lib/actions/s3.d.ts.map +1 -0
  57. package/lib/actions/s3.js +102 -0
  58. package/lib/actions/search.d.ts +1 -0
  59. package/lib/actions/search.d.ts.map +1 -0
  60. package/lib/actions/search.js +81 -0
  61. package/lib/actions/sms.d.ts +1 -0
  62. package/lib/actions/sms.d.ts.map +1 -0
  63. package/lib/actions/sms.js +52 -0
  64. package/lib/actions/statistics.d.ts +1 -0
  65. package/lib/actions/statistics.d.ts.map +1 -0
  66. package/lib/actions/statistics.js +43 -0
  67. package/lib/actions/subscriptions.d.ts +1 -0
  68. package/lib/actions/subscriptions.d.ts.map +1 -0
  69. package/lib/actions/subscriptions.js +202 -0
  70. package/lib/actions/tags.d.ts +1 -0
  71. package/lib/actions/tags.d.ts.map +1 -0
  72. package/lib/actions/tags.js +263 -0
  73. package/lib/actions/users.d.ts +1 -0
  74. package/lib/actions/users.d.ts.map +1 -0
  75. package/lib/actions/users.js +802 -0
  76. package/lib/actions/videos.d.ts +1 -0
  77. package/lib/actions/videos.d.ts.map +1 -0
  78. package/lib/actions/videos.js +423 -0
  79. package/lib/actions/websockets.d.ts +1 -0
  80. package/lib/actions/websockets.d.ts.map +1 -0
  81. package/lib/actions/websockets.js +164 -0
  82. package/lib/adapters/arangoAdapter.d.ts +1 -0
  83. package/lib/adapters/arangoAdapter.d.ts.map +1 -0
  84. package/lib/adapters/arangoAdapter.js +70 -0
  85. package/lib/adapters/contentAdapter.d.ts +1 -0
  86. package/lib/adapters/contentAdapter.d.ts.map +1 -0
  87. package/lib/adapters/contentAdapter.js +108 -0
  88. package/lib/adapters/fileAdapter.d.ts +1 -0
  89. package/lib/adapters/fileAdapter.d.ts.map +1 -0
  90. package/lib/adapters/fileAdapter.js +119 -0
  91. package/lib/adapters/imageAdapter.d.ts +1 -0
  92. package/lib/adapters/imageAdapter.d.ts.map +1 -0
  93. package/lib/adapters/imageAdapter.js +112 -0
  94. package/lib/adapters/index.d.ts +1 -0
  95. package/lib/adapters/index.d.ts.map +1 -0
  96. package/lib/adapters/index.js +11 -0
  97. package/lib/adapters/messageAdapter.d.ts +1 -0
  98. package/lib/adapters/messageAdapter.d.ts.map +1 -0
  99. package/lib/adapters/messageAdapter.js +82 -0
  100. package/lib/adapters/postAdapter.d.ts +1 -0
  101. package/lib/adapters/postAdapter.d.ts.map +1 -0
  102. package/lib/adapters/postAdapter.js +117 -0
  103. package/lib/adapters/reaktorAdapter.d.ts +1 -0
  104. package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
  105. package/lib/adapters/reaktorAdapter.js +59 -0
  106. package/lib/adapters/tagAdapter.d.ts +1 -0
  107. package/lib/adapters/tagAdapter.d.ts.map +1 -0
  108. package/lib/adapters/tagAdapter.js +99 -0
  109. package/lib/adapters/userAdapter.d.ts +1 -0
  110. package/lib/adapters/userAdapter.d.ts.map +1 -0
  111. package/lib/adapters/userAdapter.js +264 -0
  112. package/lib/config.d.ts +1 -0
  113. package/lib/config.d.ts.map +1 -0
  114. package/lib/config.js +161 -0
  115. package/lib/handlers/graphqlHandler.d.ts +1 -0
  116. package/lib/handlers/graphqlHandler.d.ts.map +1 -0
  117. package/lib/handlers/graphqlHandler.js +118 -0
  118. package/lib/index.d.ts +1 -0
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +18 -0
  121. package/lib/lambdas/actions/websockets.d.ts +1 -0
  122. package/lib/lambdas/actions/websockets.d.ts.map +1 -0
  123. package/lib/lambdas/actions/websockets.js +105 -0
  124. package/lib/lambdas/authorizer.d.ts +1 -0
  125. package/lib/lambdas/authorizer.d.ts.map +1 -0
  126. package/lib/lambdas/authorizer.js +41 -0
  127. package/lib/lambdas/connection.d.ts +1 -0
  128. package/lib/lambdas/connection.d.ts.map +1 -0
  129. package/lib/lambdas/connection.js +85 -0
  130. package/lib/lambdas/utils/message.d.ts +1 -0
  131. package/lib/lambdas/utils/message.d.ts.map +1 -0
  132. package/lib/lambdas/utils/message.js +20 -0
  133. package/lib/lambdas/utils/websocket.d.ts +1 -0
  134. package/lib/lambdas/utils/websocket.d.ts.map +1 -0
  135. package/lib/lambdas/utils/websocket.js +78 -0
  136. package/lib/mocks/conversation.d.ts +1 -0
  137. package/lib/mocks/conversation.d.ts.map +1 -0
  138. package/lib/mocks/conversation.js +10 -0
  139. package/lib/mocks/file.d.ts +1 -0
  140. package/lib/mocks/file.d.ts.map +1 -0
  141. package/lib/mocks/file.js +13 -0
  142. package/lib/mocks/group.d.ts +1 -0
  143. package/lib/mocks/group.d.ts.map +1 -0
  144. package/lib/mocks/group.js +20 -0
  145. package/lib/mocks/image.d.ts +1 -0
  146. package/lib/mocks/image.d.ts.map +1 -0
  147. package/lib/mocks/image.js +17 -0
  148. package/lib/mocks/post.d.ts +1 -0
  149. package/lib/mocks/post.d.ts.map +1 -0
  150. package/lib/mocks/post.js +28 -0
  151. package/lib/mocks/tag.d.ts +1 -0
  152. package/lib/mocks/tag.d.ts.map +1 -0
  153. package/lib/mocks/tag.js +12 -0
  154. package/lib/mocks/user.d.ts +1 -0
  155. package/lib/mocks/user.d.ts.map +1 -0
  156. package/lib/mocks/user.js +61 -0
  157. package/lib/mocks/video.d.ts +1 -0
  158. package/lib/mocks/video.d.ts.map +1 -0
  159. package/lib/mocks/video.js +17 -0
  160. package/lib/mutations/content.d.ts +1 -0
  161. package/lib/mutations/content.d.ts.map +1 -0
  162. package/lib/mutations/content.js +27 -0
  163. package/lib/mutations/index.d.ts +1 -0
  164. package/lib/mutations/index.d.ts.map +1 -0
  165. package/lib/mutations/index.js +29 -0
  166. package/lib/mutations/locations.d.ts +1 -0
  167. package/lib/mutations/locations.d.ts.map +1 -0
  168. package/lib/mutations/locations.js +22 -0
  169. package/lib/mutations/messages.d.ts +1 -0
  170. package/lib/mutations/messages.d.ts.map +1 -0
  171. package/lib/mutations/messages.js +75 -0
  172. package/lib/mutations/posts.d.ts +1 -0
  173. package/lib/mutations/posts.d.ts.map +1 -0
  174. package/lib/mutations/posts.js +31 -0
  175. package/lib/mutations/profiles.d.ts +1 -0
  176. package/lib/mutations/profiles.d.ts.map +1 -0
  177. package/lib/mutations/profiles.js +78 -0
  178. package/lib/mutations/reactions.d.ts +1 -0
  179. package/lib/mutations/reactions.d.ts.map +1 -0
  180. package/lib/mutations/reactions.js +29 -0
  181. package/lib/mutations/statistics.d.ts +1 -0
  182. package/lib/mutations/statistics.d.ts.map +1 -0
  183. package/lib/mutations/statistics.js +17 -0
  184. package/lib/mutations/subscriptions.d.ts +1 -0
  185. package/lib/mutations/subscriptions.d.ts.map +1 -0
  186. package/lib/mutations/subscriptions.js +38 -0
  187. package/lib/mutations/tags.d.ts +1 -0
  188. package/lib/mutations/tags.d.ts.map +1 -0
  189. package/lib/mutations/tags.js +109 -0
  190. package/lib/mutations/users.d.ts +1 -0
  191. package/lib/mutations/users.d.ts.map +1 -0
  192. package/lib/mutations/users.js +129 -0
  193. package/lib/objectTypes/app.d.ts +1 -0
  194. package/lib/objectTypes/app.d.ts.map +1 -0
  195. package/lib/objectTypes/app.js +147 -0
  196. package/lib/objectTypes/bankAccount.d.ts +1 -0
  197. package/lib/objectTypes/bankAccount.d.ts.map +1 -0
  198. package/lib/objectTypes/bankAccount.js +54 -0
  199. package/lib/objectTypes/connection.d.ts +1 -0
  200. package/lib/objectTypes/connection.d.ts.map +1 -0
  201. package/lib/objectTypes/connection.js +26 -0
  202. package/lib/objectTypes/content.d.ts +1 -0
  203. package/lib/objectTypes/content.d.ts.map +1 -0
  204. package/lib/objectTypes/content.js +79 -0
  205. package/lib/objectTypes/conversation.d.ts +1 -0
  206. package/lib/objectTypes/conversation.d.ts.map +1 -0
  207. package/lib/objectTypes/conversation.js +53 -0
  208. package/lib/objectTypes/creditCard.d.ts +1 -0
  209. package/lib/objectTypes/creditCard.d.ts.map +1 -0
  210. package/lib/objectTypes/creditCard.js +64 -0
  211. package/lib/objectTypes/document.d.ts +1 -0
  212. package/lib/objectTypes/document.d.ts.map +1 -0
  213. package/lib/objectTypes/document.js +21 -0
  214. package/lib/objectTypes/error.d.ts +1 -0
  215. package/lib/objectTypes/error.d.ts.map +1 -0
  216. package/lib/objectTypes/error.js +24 -0
  217. package/lib/objectTypes/external.d.ts +1 -0
  218. package/lib/objectTypes/external.d.ts.map +1 -0
  219. package/lib/objectTypes/external.js +52 -0
  220. package/lib/objectTypes/file.d.ts +1 -0
  221. package/lib/objectTypes/file.d.ts.map +1 -0
  222. package/lib/objectTypes/file.js +76 -0
  223. package/lib/objectTypes/filter.d.ts +1 -0
  224. package/lib/objectTypes/filter.d.ts.map +1 -0
  225. package/lib/objectTypes/filter.js +21 -0
  226. package/lib/objectTypes/group.d.ts +1 -0
  227. package/lib/objectTypes/group.d.ts.map +1 -0
  228. package/lib/objectTypes/group.js +97 -0
  229. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  230. package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
  231. package/lib/objectTypes/iapSubscription.js +18 -0
  232. package/lib/objectTypes/image.d.ts +1 -0
  233. package/lib/objectTypes/image.d.ts.map +1 -0
  234. package/lib/objectTypes/image.js +105 -0
  235. package/lib/objectTypes/index.d.ts +1 -0
  236. package/lib/objectTypes/index.d.ts.map +1 -0
  237. package/lib/objectTypes/index.js +28 -0
  238. package/lib/objectTypes/location.d.ts +1 -0
  239. package/lib/objectTypes/location.d.ts.map +1 -0
  240. package/lib/objectTypes/location.js +85 -0
  241. package/lib/objectTypes/message.d.ts +1 -0
  242. package/lib/objectTypes/message.d.ts.map +1 -0
  243. package/lib/objectTypes/message.js +72 -0
  244. package/lib/objectTypes/passcode.d.ts +1 -0
  245. package/lib/objectTypes/passcode.d.ts.map +1 -0
  246. package/lib/objectTypes/passcode.js +20 -0
  247. package/lib/objectTypes/plan.d.ts +1 -0
  248. package/lib/objectTypes/plan.d.ts.map +1 -0
  249. package/lib/objectTypes/plan.js +71 -0
  250. package/lib/objectTypes/post.d.ts +1 -0
  251. package/lib/objectTypes/post.d.ts.map +1 -0
  252. package/lib/objectTypes/post.js +101 -0
  253. package/lib/objectTypes/profile.d.ts +1 -0
  254. package/lib/objectTypes/profile.d.ts.map +1 -0
  255. package/lib/objectTypes/profile.js +68 -0
  256. package/lib/objectTypes/reaction.d.ts +1 -0
  257. package/lib/objectTypes/reaction.d.ts.map +1 -0
  258. package/lib/objectTypes/reaction.js +37 -0
  259. package/lib/objectTypes/relation.d.ts +1 -0
  260. package/lib/objectTypes/relation.d.ts.map +1 -0
  261. package/lib/objectTypes/relation.js +27 -0
  262. package/lib/objectTypes/search.d.ts +1 -0
  263. package/lib/objectTypes/search.d.ts.map +1 -0
  264. package/lib/objectTypes/search.js +50 -0
  265. package/lib/objectTypes/statistics.d.ts +1 -0
  266. package/lib/objectTypes/statistics.d.ts.map +1 -0
  267. package/lib/objectTypes/statistics.js +17 -0
  268. package/lib/objectTypes/subscription.d.ts +1 -0
  269. package/lib/objectTypes/subscription.d.ts.map +1 -0
  270. package/lib/objectTypes/subscription.js +102 -0
  271. package/lib/objectTypes/tag.d.ts +1 -0
  272. package/lib/objectTypes/tag.d.ts.map +1 -0
  273. package/lib/objectTypes/tag.js +41 -0
  274. package/lib/objectTypes/user.d.ts +1 -0
  275. package/lib/objectTypes/user.d.ts.map +1 -0
  276. package/lib/objectTypes/user.js +111 -0
  277. package/lib/queries/content.d.ts +1 -0
  278. package/lib/queries/content.d.ts.map +1 -0
  279. package/lib/queries/content.js +50 -0
  280. package/lib/queries/index.d.ts +1 -0
  281. package/lib/queries/index.d.ts.map +1 -0
  282. package/lib/queries/index.js +27 -0
  283. package/lib/queries/locations.d.ts +1 -0
  284. package/lib/queries/locations.d.ts.map +1 -0
  285. package/lib/queries/locations.js +23 -0
  286. package/lib/queries/messages.d.ts +1 -0
  287. package/lib/queries/messages.d.ts.map +1 -0
  288. package/lib/queries/messages.js +35 -0
  289. package/lib/queries/posts.d.ts +1 -0
  290. package/lib/queries/posts.d.ts.map +1 -0
  291. package/lib/queries/posts.js +154 -0
  292. package/lib/queries/reactions.d.ts +1 -0
  293. package/lib/queries/reactions.d.ts.map +1 -0
  294. package/lib/queries/reactions.js +34 -0
  295. package/lib/queries/statistics.d.ts +1 -0
  296. package/lib/queries/statistics.d.ts.map +1 -0
  297. package/lib/queries/statistics.js +17 -0
  298. package/lib/queries/subscriptions.d.ts +1 -0
  299. package/lib/queries/subscriptions.d.ts.map +1 -0
  300. package/lib/queries/subscriptions.js +21 -0
  301. package/lib/queries/tags.d.ts +1 -0
  302. package/lib/queries/tags.d.ts.map +1 -0
  303. package/lib/queries/tags.js +56 -0
  304. package/lib/queries/users.d.ts +1 -0
  305. package/lib/queries/users.d.ts.map +1 -0
  306. package/lib/queries/users.js +39 -0
  307. package/lib/templates/email/layout.d.ts +1 -0
  308. package/lib/templates/email/layout.d.ts.map +1 -0
  309. package/lib/templates/email/layout.js +281 -0
  310. package/lib/templates/email/passwordForgot.d.ts +1 -0
  311. package/lib/templates/email/passwordForgot.d.ts.map +1 -0
  312. package/lib/templates/email/passwordForgot.js +17 -0
  313. package/lib/templates/email/passwordRecovery.d.ts +1 -0
  314. package/lib/templates/email/passwordRecovery.d.ts.map +1 -0
  315. package/lib/templates/email/passwordRecovery.js +14 -0
  316. package/lib/templates/email/verifyEmail.d.ts +1 -0
  317. package/lib/templates/email/verifyEmail.d.ts.map +1 -0
  318. package/lib/templates/email/verifyEmail.js +17 -0
  319. package/lib/templates/email/welcome.d.ts +1 -0
  320. package/lib/templates/email/welcome.d.ts.map +1 -0
  321. package/lib/templates/email/welcome.js +17 -0
  322. package/lib/templates/sms/passwordForgot.d.ts +1 -0
  323. package/lib/templates/sms/passwordForgot.d.ts.map +1 -0
  324. package/lib/templates/sms/passwordForgot.js +3 -0
  325. package/lib/templates/sms/passwordRecovery.d.ts +1 -0
  326. package/lib/templates/sms/passwordRecovery.d.ts.map +1 -0
  327. package/lib/templates/sms/passwordRecovery.js +3 -0
  328. package/lib/templates/sms/verifyEmail.d.ts +1 -0
  329. package/lib/templates/sms/verifyEmail.d.ts.map +1 -0
  330. package/lib/templates/sms/verifyEmail.js +3 -0
  331. package/lib/templates/sms/verifyPhone.d.ts +1 -0
  332. package/lib/templates/sms/verifyPhone.d.ts.map +1 -0
  333. package/lib/templates/sms/verifyPhone.js +3 -0
  334. package/lib/templates/sms/welcome.d.ts +1 -0
  335. package/lib/templates/sms/welcome.d.ts.map +1 -0
  336. package/lib/templates/sms/welcome.js +3 -0
  337. package/lib/types/apps.types.d.ts +1 -0
  338. package/lib/types/apps.types.d.ts.map +1 -0
  339. package/lib/types/apps.types.js +10 -0
  340. package/lib/types/arangodb.types.d.ts +1 -0
  341. package/lib/types/arangodb.types.d.ts.map +1 -0
  342. package/lib/types/arangodb.types.js +6 -0
  343. package/lib/types/auth.types.d.ts +1 -0
  344. package/lib/types/auth.types.d.ts.map +1 -0
  345. package/lib/types/auth.types.js +6 -0
  346. package/lib/types/connections.types.d.ts +1 -0
  347. package/lib/types/connections.types.d.ts.map +1 -0
  348. package/lib/types/connections.types.js +6 -0
  349. package/lib/types/content.types.d.ts +1 -0
  350. package/lib/types/content.types.d.ts.map +1 -0
  351. package/lib/types/content.types.js +6 -0
  352. package/lib/types/conversations.types.d.ts +1 -0
  353. package/lib/types/conversations.types.d.ts.map +1 -0
  354. package/lib/types/conversations.types.js +6 -0
  355. package/lib/types/email.types.d.ts +1 -0
  356. package/lib/types/email.types.d.ts.map +1 -0
  357. package/lib/types/email.types.js +6 -0
  358. package/lib/types/error.types.d.ts +1 -0
  359. package/lib/types/error.types.d.ts.map +1 -0
  360. package/lib/types/error.types.js +20 -0
  361. package/lib/types/files.types.d.ts +1 -0
  362. package/lib/types/files.types.d.ts.map +1 -0
  363. package/lib/types/files.types.js +6 -0
  364. package/lib/types/google.types.d.ts +1 -0
  365. package/lib/types/google.types.d.ts.map +1 -0
  366. package/lib/types/google.types.js +6 -0
  367. package/lib/types/groups.types.d.ts +1 -0
  368. package/lib/types/groups.types.d.ts.map +1 -0
  369. package/lib/types/groups.types.js +6 -0
  370. package/lib/types/images.types.d.ts +1 -0
  371. package/lib/types/images.types.d.ts.map +1 -0
  372. package/lib/types/images.types.js +6 -0
  373. package/lib/types/index.d.ts +1 -0
  374. package/lib/types/index.d.ts.map +1 -0
  375. package/lib/types/index.js +28 -0
  376. package/lib/types/locations.types.d.ts +1 -0
  377. package/lib/types/locations.types.d.ts.map +1 -0
  378. package/lib/types/locations.types.js +6 -0
  379. package/lib/types/messages.types.d.ts +1 -0
  380. package/lib/types/messages.types.d.ts.map +1 -0
  381. package/lib/types/messages.types.js +6 -0
  382. package/lib/types/notifications.types.d.ts +1 -0
  383. package/lib/types/notifications.types.d.ts.map +1 -0
  384. package/lib/types/notifications.types.js +6 -0
  385. package/lib/types/payments.types.d.ts +1 -0
  386. package/lib/types/payments.types.d.ts.map +1 -0
  387. package/lib/types/payments.types.js +6 -0
  388. package/lib/types/posts.types.d.ts +1 -0
  389. package/lib/types/posts.types.d.ts.map +1 -0
  390. package/lib/types/posts.types.js +6 -0
  391. package/lib/types/profiles.types.d.ts +1 -0
  392. package/lib/types/profiles.types.d.ts.map +1 -0
  393. package/lib/types/profiles.types.js +3 -0
  394. package/lib/types/statistics.types.d.ts +1 -0
  395. package/lib/types/statistics.types.d.ts.map +1 -0
  396. package/lib/types/statistics.types.js +3 -0
  397. package/lib/types/tags.types.d.ts +1 -0
  398. package/lib/types/tags.types.d.ts.map +1 -0
  399. package/lib/types/tags.types.js +6 -0
  400. package/lib/types/users.types.d.ts +1 -0
  401. package/lib/types/users.types.d.ts.map +1 -0
  402. package/lib/types/users.types.js +6 -0
  403. package/lib/types/videos.types.d.ts +1 -0
  404. package/lib/types/videos.types.d.ts.map +1 -0
  405. package/lib/types/videos.types.js +6 -0
  406. package/lib/types/websockets.types.d.ts +1 -0
  407. package/lib/types/websockets.types.d.ts.map +1 -0
  408. package/lib/types/websockets.types.js +6 -0
  409. package/lib/utils/adapterUtils.d.ts +1 -0
  410. package/lib/utils/adapterUtils.d.ts.map +1 -0
  411. package/lib/utils/adapterUtils.js +23 -0
  412. package/lib/utils/analyticsUtils.d.ts +1 -0
  413. package/lib/utils/analyticsUtils.d.ts.map +1 -0
  414. package/lib/utils/analyticsUtils.js +45 -0
  415. package/lib/utils/arangodbUtils.d.ts +1 -0
  416. package/lib/utils/arangodbUtils.d.ts.map +1 -0
  417. package/lib/utils/arangodbUtils.js +130 -0
  418. package/lib/utils/authUtils.d.ts +1 -0
  419. package/lib/utils/authUtils.d.ts.map +1 -0
  420. package/lib/utils/authUtils.js +54 -0
  421. package/lib/utils/contextUtils.d.ts +1 -0
  422. package/lib/utils/contextUtils.d.ts.map +1 -0
  423. package/lib/utils/contextUtils.js +10 -0
  424. package/lib/utils/dbI18n.d.ts +1 -0
  425. package/lib/utils/dbI18n.d.ts.map +1 -0
  426. package/lib/utils/dbI18n.example.d.ts +1 -0
  427. package/lib/utils/dbI18n.example.d.ts.map +1 -0
  428. package/lib/utils/dbI18n.example.js +93 -0
  429. package/lib/utils/dbI18n.js +28 -0
  430. package/lib/utils/googleTranslate.d.ts +1 -0
  431. package/lib/utils/googleTranslate.d.ts.map +1 -0
  432. package/lib/utils/googleTranslate.js +70 -0
  433. package/lib/utils/graphqlUtils.d.ts +1 -0
  434. package/lib/utils/graphqlUtils.d.ts.map +1 -0
  435. package/lib/utils/graphqlUtils.js +11 -0
  436. package/lib/utils/index.d.ts +1 -0
  437. package/lib/utils/index.d.ts.map +1 -0
  438. package/lib/utils/index.js +19 -0
  439. package/lib/utils/languageDetection.d.ts +1 -0
  440. package/lib/utils/languageDetection.d.ts.map +1 -0
  441. package/lib/utils/languageDetection.js +120 -0
  442. package/lib/utils/localeUtils.d.ts +1 -0
  443. package/lib/utils/localeUtils.d.ts.map +1 -0
  444. package/lib/utils/localeUtils.example.d.ts +1 -0
  445. package/lib/utils/localeUtils.example.d.ts.map +1 -0
  446. package/lib/utils/localeUtils.example.js +124 -0
  447. package/lib/utils/localeUtils.js +71 -0
  448. package/lib/utils/middlewareUtils.d.ts +1 -0
  449. package/lib/utils/middlewareUtils.d.ts.map +1 -0
  450. package/lib/utils/middlewareUtils.js +10 -0
  451. package/lib/utils/sessionUtils.d.ts +1 -0
  452. package/lib/utils/sessionUtils.d.ts.map +1 -0
  453. package/lib/utils/sessionUtils.js +26 -0
  454. package/lib/utils/stripeUtils.d.ts +2 -1
  455. package/lib/utils/stripeUtils.d.ts.map +1 -0
  456. package/lib/utils/stripeUtils.js +12 -0
  457. package/lib/utils/templateUtils.d.ts +1 -0
  458. package/lib/utils/templateUtils.d.ts.map +1 -0
  459. package/lib/utils/templateUtils.js +11 -0
  460. package/lib/utils/testUtils.d.ts +1 -0
  461. package/lib/utils/testUtils.d.ts.map +1 -0
  462. package/lib/utils/testUtils.js +292 -0
  463. package/lib/utils/translationQueue.d.ts +1 -0
  464. package/lib/utils/translationQueue.d.ts.map +1 -0
  465. package/lib/utils/translationQueue.example.d.ts +1 -0
  466. package/lib/utils/translationQueue.example.d.ts.map +1 -0
  467. package/lib/utils/translationQueue.example.js +340 -0
  468. package/lib/utils/translationQueue.js +113 -0
  469. package/package.json +54 -24
  470. package/.env +0 -1
  471. package/.env.example +0 -1
  472. package/DATABASE_I18N_GUIDE.md +0 -434
  473. package/TEST_UTILITIES_GUIDE.md +0 -360
  474. package/coverage/actions/groups.ts.html +0 -1039
  475. package/coverage/actions/images.ts.html +0 -2500
  476. package/coverage/actions/index.html +0 -116
  477. package/coverage/actions/notifications.ts.html +0 -223
  478. package/coverage/actions/posts.ts.html +0 -2356
  479. package/coverage/actions/tags.ts.html +0 -1000
  480. package/coverage/adapters/arangoAdapter.ts.html +0 -301
  481. package/coverage/adapters/fileAdapter.ts.html +0 -445
  482. package/coverage/adapters/index.html +0 -176
  483. package/coverage/adapters/postAdapter.ts.html +0 -436
  484. package/coverage/adapters/reaktorAdapter.ts.html +0 -310
  485. package/coverage/adapters/tagAdapter.ts.html +0 -409
  486. package/coverage/adapters/userAdapter.ts.html +0 -829
  487. package/coverage/analyticsUtils.ts.html +0 -286
  488. package/coverage/base.css +0 -224
  489. package/coverage/block-navigation.js +0 -87
  490. package/coverage/clover.xml +0 -6
  491. package/coverage/config.ts.html +0 -766
  492. package/coverage/coverage-final.json +0 -1
  493. package/coverage/favicon.png +0 -0
  494. package/coverage/index.html +0 -221
  495. package/coverage/lcov-report/base.css +0 -224
  496. package/coverage/lcov-report/block-navigation.js +0 -87
  497. package/coverage/lcov-report/favicon.png +0 -0
  498. package/coverage/lcov-report/index.html +0 -101
  499. package/coverage/lcov-report/prettify.css +0 -1
  500. package/coverage/lcov-report/prettify.js +0 -2
  501. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  502. package/coverage/lcov-report/sorter.js +0 -196
  503. package/coverage/lcov.info +0 -0
  504. package/coverage/mocks/file.ts.html +0 -118
  505. package/coverage/mocks/group.ts.html +0 -145
  506. package/coverage/mocks/image.ts.html +0 -142
  507. package/coverage/mocks/index.html +0 -176
  508. package/coverage/mocks/post.ts.html +0 -169
  509. package/coverage/mocks/tag.ts.html +0 -121
  510. package/coverage/mocks/user.ts.html +0 -271
  511. package/coverage/prettify.css +0 -1
  512. package/coverage/prettify.js +0 -2
  513. package/coverage/sort-arrow-sprite.png +0 -0
  514. package/coverage/sorter.js +0 -210
  515. package/coverage/testUtils.ts.html +0 -1309
  516. package/coverage/translationQueue.ts.html +0 -592
  517. package/coverage/types/error.ts.html +0 -145
  518. package/coverage/types/error.types.ts.html +0 -148
  519. package/coverage/types/index.html +0 -116
  520. package/coverage/utils/adapterUtils.ts.html +0 -163
  521. package/coverage/utils/analyticsUtils.ts.html +0 -286
  522. package/coverage/utils/arangodbUtils.ts.html +0 -463
  523. package/coverage/utils/authUtils.ts.html +0 -328
  524. package/coverage/utils/dbI18n.ts.html +0 -280
  525. package/coverage/utils/googleTranslate.ts.html +0 -385
  526. package/coverage/utils/index.html +0 -131
  527. package/coverage/utils/localeUtils.ts.html +0 -193
  528. package/coverage/utils/sessionUtils.ts.html +0 -211
  529. package/coverage/utils/testUtils.ts.html +0 -1309
  530. package/index.js +0 -5
  531. package/jpg:- +0 -0
  532. package/lex.config.mjs +0 -34
  533. package/tsconfig.build.json +0 -21
  534. package/tsconfig.lint.json +0 -33
  535. package/tsconfig.test.json +0 -31
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { ApiGatewayManagementApi } from '@aws-sdk/client-apigatewaymanagementapi';
5
+ import { createHash, parseId, parseString } from '@nlabs/utils/parsers/strings';
6
+ import { aql } from 'arangojs';
7
+ import { Config } from '../config.js';
8
+ import { useDb } from '../utils/arangodbUtils.js';
9
+ import { getUserByToken } from './users.js';
10
+ import { ErrorTypes } from '../types/error.types.js';
11
+ import { logError } from '../utils/analyticsUtils.js';
12
+ export const addSocket = async (socketId, token)=>{
13
+ const action = 'addSocket';
14
+ const formatSocketId = parseString(socketId, 32);
15
+ const formatToken = parseString(token);
16
+ try {
17
+ const databaseName = process.env.ARANGODB_DATABASE || '';
18
+ const database = useDb(databaseName);
19
+ const user = await getUserByToken({
20
+ config: Config.get(),
21
+ databaseName
22
+ }, formatToken);
23
+ if (!user) {
24
+ throw new Error('Unauthorized');
25
+ }
26
+ const update = {
27
+ socketId: formatSocketId,
28
+ modified: Date.now()
29
+ };
30
+ const insert = {
31
+ ...update,
32
+ _key: createHash(`socket-${formatSocketId}`),
33
+ userId: user.userId
34
+ };
35
+ const aqlQry = aql`UPSERT {userId: ${user.userId}}
36
+ INSERT ${insert}
37
+ UPDATE ${update}
38
+ IN sockets RETURN NEW`;
39
+ return database.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
40
+ throw logError({
41
+ action,
42
+ category: 'websockets',
43
+ value: ErrorTypes.DATABASE_ERROR
44
+ }, error, {});
45
+ });
46
+ } catch (error) {
47
+ throw new Error('Unauthorized');
48
+ }
49
+ };
50
+ export const getSocketByUser = (userId)=>{
51
+ const formatUserId = parseId(userId);
52
+ const databaseName = process.env.ARANGODB_DATABASE || '';
53
+ const database = useDb(databaseName);
54
+ const aqlQry = aql`FOR s IN sockets
55
+ FILTER s.userId == ${formatUserId}
56
+ LIMIT 1
57
+ RETURN s`;
58
+ return database.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
59
+ throw error;
60
+ });
61
+ };
62
+ export const getSocketById = (socketId)=>{
63
+ const formatSocketId = parseId(socketId);
64
+ const databaseName = process.env.ARANGODB_DATABASE || '';
65
+ const database = useDb(databaseName);
66
+ const aqlQry = aql`FOR s IN sockets
67
+ FILTER s.socketId == ${formatSocketId}
68
+ LET user = FIRST(
69
+ FOR u IN users
70
+ FILTER u.sub == s.sub
71
+ LIMIT 1
72
+ RETURN u;
73
+ )
74
+ LIMIT 1
75
+ RETURN MERGE(c, {user:user}`;
76
+ return database.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
77
+ throw error;
78
+ });
79
+ };
80
+ export const getConnectionByConvo = (context, convoId)=>{
81
+ const { databaseName, session: { userId: sessionId } = {} } = context;
82
+ const sessionDocId = `users/${parseId(sessionId)}`;
83
+ const convoDocId = `conversations/${parseId(convoId)}`;
84
+ const database = useDb(databaseName);
85
+ const aqlQry = aql`FOR c, e IN 1..1 OUTBOUND ${sessionDocId} hasConversation
86
+ FILTER c._id == ${convoDocId}
87
+ LIMIT 1
88
+ LET u = (
89
+ FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId} hasConversation
90
+ FOR n IN connections
91
+ FILTER inUser.sub == n.sub
92
+ RETURN n.connectionId
93
+ )
94
+ RETURN u`;
95
+ return database.query(aqlQry).then((cursor)=>cursor.all()).catch((error)=>{
96
+ throw error;
97
+ });
98
+ };
99
+ export const removeSocket = (socketId)=>{
100
+ const action = 'removeSocket';
101
+ const formatSocketId = parseString(socketId, 32);
102
+ const databaseName = process.env.ARANGODB_DATABASE || '';
103
+ const database = useDb(databaseName);
104
+ const aqlQry = aql`FOR s IN sockets
105
+ FILTER s.socketId == ${formatSocketId}
106
+ LIMIT 1
107
+ REMOVE s IN sockets
108
+ RETURN OLD`;
109
+ return database.query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
110
+ throw logError({
111
+ action,
112
+ category: 'websockets',
113
+ value: ErrorTypes.DATABASE_ERROR
114
+ }, error, {});
115
+ });
116
+ };
117
+ export class WebsocketClient {
118
+ client;
119
+ constructor(config){
120
+ if (config) {
121
+ this.setupClient(config || {});
122
+ }
123
+ }
124
+ // Allow just passing a single event to setup the client for ease of use
125
+ async setupClient({ requestContext }) {
126
+ if (!this.client && requestContext) {
127
+ const { apiId, domainName, stage } = requestContext;
128
+ let updatedDomainName = domainName;
129
+ if (apiId) {
130
+ updatedDomainName = `${apiId}.execute-api.${process.env.API_REGION}.amazonaws.com`;
131
+ }
132
+ this.client = new ApiGatewayManagementApi({
133
+ credentials: Config.get('aws.credentials'),
134
+ endpoint: `https://${updatedDomainName}/${stage}`,
135
+ region: Config.get('aws.region')
136
+ });
137
+ }
138
+ }
139
+ async send(connection, payload) {
140
+ console.log(connection, payload);
141
+ // Cheat and allow event to be passed in this also lets us default to setupClient too
142
+ let socketId;
143
+ if (connection?.requestContext) {
144
+ await this.setupClient(connection);
145
+ const { socketId: updatedSocketId } = connection.requestContext;
146
+ socketId = updatedSocketId;
147
+ } else {
148
+ socketId = connection;
149
+ }
150
+ await this.client.postToConnection({
151
+ ConnectionId: socketId,
152
+ Data: JSON.stringify(payload)
153
+ }).promise().catch(async (postError)=>{
154
+ console.log(JSON.stringify(postError));
155
+ if (postError.statusCode === 410) {
156
+ // Disconnect client
157
+ await removeSocket(socketId);
158
+ }
159
+ });
160
+ return true;
161
+ }
162
+ }
163
+
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvd2Vic29ja2V0cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtBcGlHYXRld2F5TWFuYWdlbWVudEFwaX0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWFwaWdhdGV3YXltYW5hZ2VtZW50YXBpJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VJZCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzLmpzJztcbmltcG9ydCB7Z2V0VXNlckJ5VG9rZW59IGZyb20gJy4vdXNlcnMuanMnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtXZWJzb2NrZXRDb25uZWN0aW9ufSBmcm9tICcuLi90eXBlcy93ZWJzb2NrZXRzLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcblxuZXhwb3J0IGNvbnN0IGFkZFNvY2tldCA9IGFzeW5jIChzb2NrZXRJZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFNvY2tldCc7XG4gIGNvbnN0IGZvcm1hdFNvY2tldElkOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhzb2NrZXRJZCwgMzIpO1xuICBjb25zdCBmb3JtYXRUb2tlbjogc3RyaW5nID0gcGFyc2VTdHJpbmcodG9rZW4pO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgZGF0YWJhc2VOYW1lOiBzdHJpbmcgPSBwcm9jZXNzLmVudi5BUkFOR09EQl9EQVRBQkFTRSB8fCAnJztcbiAgICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCBnZXRVc2VyQnlUb2tlbih7Y29uZmlnOiBDb25maWcuZ2V0KCksIGRhdGFiYXNlTmFtZX0sIGZvcm1hdFRva2VuKTtcblxuICAgIGlmKCF1c2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgIHNvY2tldElkOiBmb3JtYXRTb2NrZXRJZCxcbiAgICAgIG1vZGlmaWVkOiBEYXRlLm5vdygpXG4gICAgfTtcbiAgICBjb25zdCBpbnNlcnQgPSB7XG4gICAgICAuLi51cGRhdGUsXG4gICAgICBfa2V5OiBjcmVhdGVIYXNoKGBzb2NrZXQtJHtmb3JtYXRTb2NrZXRJZH1gKSxcbiAgICAgIHVzZXJJZDogdXNlci51c2VySWRcbiAgICB9O1xuICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHt1c2VySWQ6ICR7dXNlci51c2VySWR9fVxuICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgICAgVVBEQVRFICR7dXBkYXRlfVxuICAgICAgSU4gc29ja2V0cyBSRVRVUk4gTkVXYDtcblxuICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICBjYXRlZ29yeTogJ3dlYnNvY2tldHMnLFxuICAgICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgIH0sIGVycm9yLCB7fSk7XG4gICAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hdXRob3JpemVkJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTb2NrZXRCeVVzZXIgPSAodXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPFdlYnNvY2tldENvbm5lY3Rpb24+ID0+IHtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGRhdGFiYXNlTmFtZTogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0UgfHwgJyc7XG4gIGNvbnN0IGRhdGFiYXNlOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgcyBJTiBzb2NrZXRzXG4gICAgRklMVEVSIHMudXNlcklkID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gc2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTb2NrZXRCeUlkID0gKHNvY2tldElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VJZChzb2NrZXRJZCk7XG4gIGNvbnN0IGRhdGFiYXNlTmFtZTogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0UgfHwgJyc7XG4gIGNvbnN0IGRhdGFiYXNlOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgcyBJTiBzb2NrZXRzXG4gICAgRklMVEVSIHMuc29ja2V0SWQgPT0gJHtmb3JtYXRTb2NrZXRJZH1cbiAgICBMRVQgdXNlciA9IEZJUlNUKFxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiB1LnN1YiA9PSBzLnN1YlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHU7XG4gICAgKVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gTUVSR0UoYywge3VzZXI6dXNlcn1gO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29ubmVjdGlvbkJ5Q29udm8gPSAoY29udGV4dDogQXBpQ29udGV4dCwgY29udm9JZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGNvbnZvRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7cGFyc2VJZChjb252b0lkKX1gO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIGMsIGUgSU4gMS4uMSBPVVRCT1VORCAke3Nlc3Npb25Eb2NJZH0gaGFzQ29udmVyc2F0aW9uXG4gIEZJTFRFUiBjLl9pZCA9PSAke2NvbnZvRG9jSWR9XG4gIExJTUlUIDFcbiAgTEVUIHUgPSAoXG4gICAgRk9SIGluVXNlciwgaW5FZGdlIElOIDEuLjEgSU5CT1VORCAke2NvbnZvRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICAgIEZPUiBuIElOIGNvbm5lY3Rpb25zXG4gICAgRklMVEVSIGluVXNlci5zdWIgPT0gbi5zdWJcbiAgICBSRVRVUk4gbi5jb25uZWN0aW9uSWRcbiAgKVxuICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZVNvY2tldCA9IChzb2NrZXRJZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ3JlbW92ZVNvY2tldCc7XG4gIGNvbnN0IGZvcm1hdFNvY2tldElkOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhzb2NrZXRJZCwgMzIpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFIHx8ICcnO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgICAgRklMVEVSIHMuc29ja2V0SWQgPT0gJHtmb3JtYXRTb2NrZXRJZH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFTU9WRSBzIElOIHNvY2tldHNcbiAgICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiAnd2Vic29ja2V0cycsXG4gICAgICAgIHZhbHVlOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBXZWJTb2NrZXRDbGllbnRDb250ZXh0IHtcbiAgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ/OiB7XG4gICAgcmVhZG9ubHkgYXBpSWQ6IHN0cmluZztcbiAgICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc3RhZ2U6IHN0cmluZztcbiAgfTtcbn1cbmV4cG9ydCBjbGFzcyBXZWJzb2NrZXRDbGllbnQge1xuICBjbGllbnQ7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnPykge1xuICAgIGlmKGNvbmZpZykge1xuICAgICAgdGhpcy5zZXR1cENsaWVudChjb25maWcgfHwge30pO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFsbG93IGp1c3QgcGFzc2luZyBhIHNpbmdsZSBldmVudCB0byBzZXR1cCB0aGUgY2xpZW50IGZvciBlYXNlIG9mIHVzZVxuICBhc3luYyBzZXR1cENsaWVudCh7cmVxdWVzdENvbnRleHR9OiBXZWJTb2NrZXRDbGllbnRDb250ZXh0KSB7XG4gICAgaWYoIXRoaXMuY2xpZW50ICYmIHJlcXVlc3RDb250ZXh0KSB7XG4gICAgICBjb25zdCB7YXBpSWQsIGRvbWFpbk5hbWUsIHN0YWdlfSA9IHJlcXVlc3RDb250ZXh0O1xuICAgICAgbGV0IHVwZGF0ZWREb21haW5OYW1lOiBzdHJpbmcgPSBkb21haW5OYW1lO1xuXG4gICAgICBpZihhcGlJZCkge1xuICAgICAgICB1cGRhdGVkRG9tYWluTmFtZSA9IGAke2FwaUlkfS5leGVjdXRlLWFwaS4ke3Byb2Nlc3MuZW52LkFQSV9SRUdJT059LmFtYXpvbmF3cy5jb21gO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNsaWVudCA9IG5ldyBBcGlHYXRld2F5TWFuYWdlbWVudEFwaSh7XG4gICAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgICAgZW5kcG9pbnQ6IGBodHRwczovLyR7dXBkYXRlZERvbWFpbk5hbWV9LyR7c3RhZ2V9YCxcbiAgICAgICAgcmVnaW9uOiBDb25maWcuZ2V0KCdhd3MucmVnaW9uJylcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmQoY29ubmVjdGlvbiwgcGF5bG9hZCkge1xuICAgIGNvbnNvbGUubG9nKGNvbm5lY3Rpb24sIHBheWxvYWQpO1xuXG4gICAgLy8gQ2hlYXQgYW5kIGFsbG93IGV2ZW50IHRvIGJlIHBhc3NlZCBpbiB0aGlzIGFsc28gbGV0cyB1cyBkZWZhdWx0IHRvIHNldHVwQ2xpZW50IHRvb1xuICAgIGxldCBzb2NrZXRJZDtcblxuICAgIGlmKGNvbm5lY3Rpb24/LnJlcXVlc3RDb250ZXh0KSB7XG4gICAgICBhd2FpdCB0aGlzLnNldHVwQ2xpZW50KGNvbm5lY3Rpb24pO1xuICAgICAgY29uc3Qge3NvY2tldElkOiB1cGRhdGVkU29ja2V0SWR9ID0gY29ubmVjdGlvbi5yZXF1ZXN0Q29udGV4dDtcbiAgICAgIHNvY2tldElkID0gdXBkYXRlZFNvY2tldElkO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb2NrZXRJZCA9IGNvbm5lY3Rpb247XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jbGllbnQucG9zdFRvQ29ubmVjdGlvbih7Q29ubmVjdGlvbklkOiBzb2NrZXRJZCwgRGF0YTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCl9KVxuICAgICAgLnByb21pc2UoKVxuICAgICAgLmNhdGNoKGFzeW5jIChwb3N0RXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocG9zdEVycm9yKSk7XG5cbiAgICAgICAgaWYocG9zdEVycm9yLnN0YXR1c0NvZGUgPT09IDQxMCkge1xuICAgICAgICAgIC8vIERpc2Nvbm5lY3QgY2xpZW50XG4gICAgICAgICAgYXdhaXQgcmVtb3ZlU29ja2V0KHNvY2tldElkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFwaUdhdGV3YXlNYW5hZ2VtZW50QXBpIiwiY3JlYXRlSGFzaCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsImFxbCIsIkNvbmZpZyIsInVzZURiIiwiZ2V0VXNlckJ5VG9rZW4iLCJFcnJvclR5cGVzIiwibG9nRXJyb3IiLCJhZGRTb2NrZXQiLCJzb2NrZXRJZCIsInRva2VuIiwiYWN0aW9uIiwiZm9ybWF0U29ja2V0SWQiLCJmb3JtYXRUb2tlbiIsImRhdGFiYXNlTmFtZSIsInByb2Nlc3MiLCJlbnYiLCJBUkFOR09EQl9EQVRBQkFTRSIsImRhdGFiYXNlIiwidXNlciIsImNvbmZpZyIsImdldCIsIkVycm9yIiwidXBkYXRlIiwibW9kaWZpZWQiLCJEYXRlIiwibm93IiwiaW5zZXJ0IiwiX2tleSIsInVzZXJJZCIsImFxbFFyeSIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJjYXRjaCIsImVycm9yIiwiY2F0ZWdvcnkiLCJ2YWx1ZSIsIkRBVEFCQVNFX0VSUk9SIiwiZ2V0U29ja2V0QnlVc2VyIiwiZm9ybWF0VXNlcklkIiwiZ2V0U29ja2V0QnlJZCIsImdldENvbm5lY3Rpb25CeUNvbnZvIiwiY29udGV4dCIsImNvbnZvSWQiLCJzZXNzaW9uIiwic2Vzc2lvbklkIiwic2Vzc2lvbkRvY0lkIiwiY29udm9Eb2NJZCIsImFsbCIsInJlbW92ZVNvY2tldCIsIldlYnNvY2tldENsaWVudCIsImNsaWVudCIsInNldHVwQ2xpZW50IiwicmVxdWVzdENvbnRleHQiLCJhcGlJZCIsImRvbWFpbk5hbWUiLCJzdGFnZSIsInVwZGF0ZWREb21haW5OYW1lIiwiQVBJX1JFR0lPTiIsImNyZWRlbnRpYWxzIiwiZW5kcG9pbnQiLCJyZWdpb24iLCJzZW5kIiwiY29ubmVjdGlvbiIsInBheWxvYWQiLCJjb25zb2xlIiwibG9nIiwidXBkYXRlZFNvY2tldElkIiwicG9zdFRvQ29ubmVjdGlvbiIsIkNvbm5lY3Rpb25JZCIsIkRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwicHJvbWlzZSIsInBvc3RFcnJvciIsInN0YXR1c0NvZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLHVCQUF1QixRQUFPLDBDQUEwQztBQUNoRixTQUFRQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUM5RSxTQUFRQyxHQUFHLFFBQWlCLFdBQVc7QUFHdkMsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsS0FBSyxRQUFPLDRCQUE0QjtBQUNoRCxTQUFRQyxjQUFjLFFBQU8sYUFBYTtBQUUxQyxTQUFRQyxVQUFVLFFBQU8sMEJBQTBCO0FBRW5ELFNBQVFDLFFBQVEsUUFBTyw2QkFBNkI7QUFFcEQsT0FBTyxNQUFNQyxZQUFZLE9BQU9DLFVBQWtCQztJQUNoRCxNQUFNQyxTQUFpQjtJQUN2QixNQUFNQyxpQkFBeUJYLFlBQVlRLFVBQVU7SUFDckQsTUFBTUksY0FBc0JaLFlBQVlTO0lBRXhDLElBQUk7UUFDRixNQUFNSSxlQUF1QkMsUUFBUUMsR0FBRyxDQUFDQyxpQkFBaUIsSUFBSTtRQUM5RCxNQUFNQyxXQUFxQmQsTUFBTVU7UUFDakMsTUFBTUssT0FBTyxNQUFNZCxlQUFlO1lBQUNlLFFBQVFqQixPQUFPa0IsR0FBRztZQUFJUDtRQUFZLEdBQUdEO1FBRXhFLElBQUcsQ0FBQ00sTUFBTTtZQUNSLE1BQU0sSUFBSUcsTUFBTTtRQUNsQjtRQUVBLE1BQU1DLFNBQVM7WUFDYmQsVUFBVUc7WUFDVlksVUFBVUMsS0FBS0MsR0FBRztRQUNwQjtRQUNBLE1BQU1D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
@@ -6,3 +6,4 @@ export declare class ArangoValidationError extends Error {
6
6
  export declare const validateDocumentInput: (doc: unknown) => DocumentType;
7
7
  export declare const formatDocumentOutput: (doc: DocumentType) => DocumentType;
8
8
  export declare const parseDocument: (doc: DocumentType) => DocumentType;
9
+ //# sourceMappingURL=arangoAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arangoAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/arangoAdapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAGxD,qBAAa,qBAAsB,SAAQ,KAAK;IACV,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAcD,eAAO,MAAM,qBAAqB,GAAI,KAAK,OAAO,KAAG,YAWpD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,KAAK,YAAY,KAAG,YAAmB,CAAC;AAE7E,eAAO,MAAM,aAAa,GAAI,KAAK,YAAY,KAAG,YAUjD,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { parseNum } from '@nlabs/utils/parsers/numbers';
2
+ import { parseArangoId, parseId } from '@nlabs/utils/parsers/strings';
3
+ import { z } from 'zod';
4
+ import { removeEmptyKeys } from '../utils/adapterUtils.js';
5
+ export class ArangoValidationError extends Error {
6
+ field;
7
+ constructor(message, field){
8
+ super(message), this.field = field;
9
+ this.name = 'ArangoValidationError';
10
+ }
11
+ }
12
+ const DocumentInputSchema = z.object({
13
+ _from: z.string().optional(),
14
+ _id: z.string().optional(),
15
+ _key: z.string().optional(),
16
+ _oldRev: z.string().optional(),
17
+ _rev: z.string().optional(),
18
+ _to: z.string().optional(),
19
+ added: z.number().optional(),
20
+ id: z.string().optional(),
21
+ modified: z.number().optional()
22
+ }).passthrough();
23
+ export const validateDocumentInput = (doc)=>{
24
+ try {
25
+ const validated = DocumentInputSchema.parse(doc);
26
+ return validated;
27
+ } catch (error) {
28
+ if (error instanceof z.ZodError) {
29
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
30
+ throw new ArangoValidationError(`Document validation failed: ${fieldErrors}`);
31
+ }
32
+ throw error;
33
+ }
34
+ };
35
+ export const formatDocumentOutput = (doc)=>doc;
36
+ export const parseDocument = (doc)=>{
37
+ try {
38
+ const parsed = performDocumentTransformation(doc);
39
+ return parsed;
40
+ } catch (error) {
41
+ if (error instanceof ArangoValidationError) {
42
+ throw error;
43
+ }
44
+ throw new ArangoValidationError(`Document parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
45
+ }
46
+ };
47
+ const performDocumentTransformation = (doc)=>{
48
+ const { _id, _key, added, id, modified } = doc;
49
+ const transformed = removeEmptyKeys({
50
+ ...doc,
51
+ ..._id && {
52
+ _id: parseArangoId(_id)
53
+ },
54
+ ..._key && {
55
+ _key: parseId(_key)
56
+ },
57
+ ...added !== undefined && {
58
+ added: parseNum(added, 13)
59
+ },
60
+ ...(_id || id) && {
61
+ id: parseArangoId(_id || id)
62
+ },
63
+ ...modified !== undefined && {
64
+ modified: parseNum(modified, 13)
65
+ }
66
+ });
67
+ return transformed;
68
+ };
69
+
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FkYXB0ZXJzL2FyYW5nb0FkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvbnVtYmVycyc7XG5pbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge0RvY3VtZW50VHlwZX0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuaW1wb3J0IHtyZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL3V0aWxzL2FkYXB0ZXJVdGlscy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBBcmFuZ29WYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0FyYW5nb1ZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgRG9jdW1lbnRJbnB1dFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgX2Zyb206IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9rZXk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX29sZFJldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfcmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF90bzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhZGRlZDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBpZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBtb2RpZmllZDogei5udW1iZXIoKS5vcHRpb25hbCgpXG59KS5wYXNzdGhyb3VnaCgpO1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGVEb2N1bWVudElucHV0ID0gKGRvYzogdW5rbm93bik6IERvY3VtZW50VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gRG9jdW1lbnRJbnB1dFNjaGVtYS5wYXJzZShkb2MpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgRG9jdW1lbnRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZEVycm9ycyA9IGVycm9yLmlzc3Vlcy5tYXAoKGUpID0+IGAke2UucGF0aC5qb2luKCcuJyl9OiAke2UubWVzc2FnZX1gKS5qb2luKCcsICcpO1xuICAgICAgdGhyb3cgbmV3IEFyYW5nb1ZhbGlkYXRpb25FcnJvcihgRG9jdW1lbnQgdmFsaWRhdGlvbiBmYWlsZWQ6ICR7ZmllbGRFcnJvcnN9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZm9ybWF0RG9jdW1lbnRPdXRwdXQgPSAoZG9jOiBEb2N1bWVudFR5cGUpOiBEb2N1bWVudFR5cGUgPT4gZG9jO1xuXG5leHBvcnQgY29uc3QgcGFyc2VEb2N1bWVudCA9IChkb2M6IERvY3VtZW50VHlwZSk6IERvY3VtZW50VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGVyZm9ybURvY3VtZW50VHJhbnNmb3JtYXRpb24oZG9jKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiBBcmFuZ29WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQXJhbmdvVmFsaWRhdGlvbkVycm9yKGBEb2N1bWVudCBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybURvY3VtZW50VHJhbnNmb3JtYXRpb24gPSAoZG9jOiBEb2N1bWVudFR5cGUpOiBEb2N1bWVudFR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgX2lkLFxuICAgIF9rZXksXG4gICAgYWRkZWQsXG4gICAgaWQsXG4gICAgbW9kaWZpZWRcbiAgfSA9IGRvYztcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHJlbW92ZUVtcHR5S2V5cyh7XG4gICAgLi4uZG9jLFxuICAgIC4uLihfaWQgJiYge19pZDogcGFyc2VBcmFuZ29JZChfaWQpfSksXG4gICAgLi4uKF9rZXkgJiYge19rZXk6IHBhcnNlSWQoX2tleSl9KSxcbiAgICAuLi4oYWRkZWQgIT09IHVuZGVmaW5lZCAmJiB7YWRkZWQ6IHBhcnNlTnVtKGFkZGVkLCAxMyl9KSxcbiAgICAuLi4oKF9pZCB8fCBpZCkgJiYge2lkOiBwYXJzZUFyYW5nb0lkKF9pZCB8fCBpZCl9KSxcbiAgICAuLi4obW9kaWZpZWQgIT09IHVuZGVmaW5lZCAmJiB7bW9kaWZpZWQ6IHBhcnNlTnVtKG1vZGlmaWVkLCAxMyl9KVxuICB9KTtcblxuICByZXR1cm4gdHJhbnNmb3JtZWQ7XG59OyJdLCJuYW1lcyI6WyJwYXJzZU51bSIsInBhcnNlQXJhbmdvSWQiLCJwYXJzZUlkIiwieiIsInJlbW92ZUVtcHR5S2V5cyIsIkFyYW5nb1ZhbGlkYXRpb25FcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpZWxkIiwibmFtZSIsIkRvY3VtZW50SW5wdXRTY2hlbWEiLCJvYmplY3QiLCJfZnJvbSIsInN0cmluZyIsIm9wdGlvbmFsIiwiX2lkIiwiX2tleSIsIl9vbGRSZXYiLCJfcmV2IiwiX3RvIiwiYWRkZWQiLCJudW1iZXIiLCJpZCIsIm1vZGlmaWVkIiwicGFzc3Rocm91Z2giLCJ2YWxpZGF0ZURvY3VtZW50SW5wdXQiLCJkb2MiLCJ2YWxpZGF0ZWQiLCJwYXJzZSIsImVycm9yIiwiWm9kRXJyb3IiLCJmaWVsZEVycm9ycyIsImlzc3VlcyIsIm1hcCIsImUiLCJwYXRoIiwiam9pbiIsImZvcm1hdERvY3VtZW50T3V0cHV0IiwicGFyc2VEb2N1bWVudCIsInBhcnNlZCIsInBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uIiwidHJhbnNmb3JtZWQiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFFBQVEsUUFBTywrQkFBK0I7QUFDdEQsU0FBUUMsYUFBYSxFQUFFQyxPQUFPLFFBQU8sK0JBQStCO0FBQ3BFLFNBQVFDLENBQUMsUUFBTyxNQUFNO0FBR3RCLFNBQVFDLGVBQWUsUUFBTywyQkFBMkI7QUFFekQsT0FBTyxNQUFNQyw4QkFBOEJDOztJQUN6QyxZQUFZQyxPQUFlLEVBQUUsQUFBT0MsS0FBYyxDQUFFO1FBQ2xELEtBQUssQ0FBQ0QsZUFENEJDLFFBQUFBO1FBRWxDLElBQUksQ0FBQ0MsSUFBSSxHQUFHO0lBQ2Q7QUFDRjtBQUVBLE1BQU1DLHNCQUFzQlAsRUFBRVEsTUFBTSxDQUFDO0lBQ25DQyxPQUFPVCxFQUFFVSxNQUFNLEdBQUdDLFFBQVE7SUFDMUJDLEtBQUtaLEVBQUVVLE1BQU0sR0FBR0MsUUFBUTtJQUN4QkUsTUFBTWIsRUFBRVUsTUFBTSxHQUFHQyxRQUFRO0lBQ3pCRyxTQUFTZCxFQUFFVSxNQUFNLEdBQUdDLFFBQVE7SUFDNUJJLE1BQU1mLEVBQUVVLE1BQU0sR0FBR0MsUUFBUTtJQUN6QkssS0FBS2hCLEVBQUVVLE1BQU0sR0FBR0MsUUFBUTtJQUN4Qk0sT0FBT2pCLEVBQUVrQixNQUFNLEdBQUdQLFFBQVE7SUFDMUJRLElBQUluQixFQUFFVSxNQUFNLEdBQUdDLFFBQVE7SUFDdkJTLFVBQVVwQixFQUFFa0IsTUFBTSxHQUFHUCxRQUFRO0FBQy9CLEdBQUdVLFdBQVc7QUFFZCxPQUFPLE1BQU1DLHdCQUF3QixDQUFDQztJQUNwQyxJQUFJO1FBQ0YsTUFBTUMsWUFBWWpCLG9CQUFvQmtCLEtBQUssQ0FBQ0Y7UUFDNUMsT0FBT0M7SUFDVCxFQUFFLE9BQU1FLE9BQU87UUFDYixJQUFHQSxpQkFBaUIxQixFQUFFMkIsUUFBUSxFQUFFO1lBQzlCLE1BQU1DLGNBQWNGLE1BQU1HLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU0sR0FBR0EsRUFBRUMsSUFBSSxDQUFDQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUVGLEVBQUUzQixPQUFPLEVBQUUsRUFBRTZCLElBQUksQ0FBQztZQUN0RixNQUFNLElBQUkvQixzQkFBc0IsQ0FBQyw0QkFBNEIsRUFBRTBCLGFBQWE7UUFDOUU7UUFDQSxNQUFNRjtJQUNSO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTVEsdUJBQXVCLENBQUNYLE1BQW9DQSxJQUFJO0FBRTdFLE9BQU8sTUFBTVksZ0JBQWdCLENBQUNaO0lBQzVCLElBQUk7UUFDRixNQUFNYSxTQUFTQyw4QkFBOEJkO1FBQzdDLE9BQU9hO0lBQ1QsRUFBRSxPQUFNVixPQUFPO1FBQ2IsSUFBR0EsaUJBQWlCeEIsdUJBQXVCO1lBQ3pDLE1BQU13QjtRQUNSO1FBQ0EsTUFBTSxJQUFJeEIsc0JBQXNCLENBQUMseUJBQXlCLEVBQUV3QixpQkFBaUJ2QixRQUFRdUIsTUFBTXRCLE9BQU8sR0FBRyxpQkFBaUI7SUFDeEg7QUFDRixFQUFFO0FBRUYsTUFBTWlDLGdDQUFnQyxDQUFDZDtJQUNyQyxNQUFNLEVBQ0pYLEdBQUcsRUFDSEMsSUFBSSxFQUNKSSxLQUFLLEVBQ0xFLEVBQUUsRUFDRkMsUUFBUSxFQUNULEdBQUdHO0lBRUosTUFBTWUsY0FBY3JDLGdCQUFnQjtRQUNsQyxHQUFHc0IsR0FBRztRQUNOLEdBQUlYLE9BQU87WUFBQ0EsS0FBS2QsY0FBY2M7UUFBSSxDQUFDO1FBQ3BDLEdBQUlDLFFBQVE7WUFBQ0EsTUFBTWQsUUFBUWM7UUFBSyxDQUFDO1FBQ2pDLEdBQUlJLFVBQVVzQixhQUFhO1lBQUN0QixPQUFPcEIsU0FBU29CLE9BQU87UUFBRyxDQUFDO1FBQ3ZELEdBQUksQUFBQ0wsQ0FBQUEsT0FBT08sRUFBQyxLQUFNO1lBQUNBLElBQUlyQixjQUFjYyxPQUFPTztRQUFHLENBQUM7UUFDakQsR0FBSUMsYUFBYW1CLGFBQWE7WUFBQ25CLFVBQVV2QixTQUFTdUIsVUFBVTtRQUFHLENBQUM7SUFDbEU7SUFFQSxPQUFPa0I7QUFDVCJ9
@@ -6,3 +6,4 @@ export declare class ContentValidationError extends Error {
6
6
  export declare const parseContent: (content: ContentType) => ContentType;
7
7
  export declare const parseContentInput: (content: ContentInputType) => ContentInputType;
8
8
  export declare const parseContentFromDb: (content: ContentType) => ContentType;
9
+ //# sourceMappingURL=contentAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/contentAdapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAIxE,qBAAa,sBAAuB,SAAQ,KAAK;IACX,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AA2BD,eAAO,MAAM,YAAY,GAAI,SAAS,WAAW,KAAG,WAYnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB,KAAG,gBAY7D,CAAC;AAiCF,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,WAAoD,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { parseArangoId, parseId, parseString } from '@nlabs/utils/parsers/strings';
5
+ import { z } from 'zod';
6
+ import { removeEmptyKeys } from '../utils/adapterUtils.js';
7
+ import { parseDocument } from './arangoAdapter.js';
8
+ export class ContentValidationError extends Error {
9
+ field;
10
+ constructor(message, field){
11
+ super(message), this.field = field;
12
+ this.name = 'ContentValidationError';
13
+ }
14
+ }
15
+ const contentSchema = z.object({
16
+ contentId: z.string().optional(),
17
+ key: z.string().min(1, 'Key is required').max(200, 'Key must be less than 200 characters'),
18
+ locale: z.enum([
19
+ 'en',
20
+ 'es',
21
+ 'fr',
22
+ 'de',
23
+ 'pt',
24
+ 'it'
25
+ ], {
26
+ message: 'Locale must be one of: en, es, fr, de, pt, it'
27
+ }),
28
+ content: z.string().min(1, 'Content is required').max(10000, 'Content must be less than 10000 characters'),
29
+ description: z.string().max(500, 'Description must be less than 500 characters').optional(),
30
+ category: z.string().max(100, 'Category must be less than 100 characters').optional(),
31
+ isActive: z.boolean().optional(),
32
+ userId: z.string().optional()
33
+ });
34
+ const contentInputSchema = z.object({
35
+ contentId: z.string().optional(),
36
+ key: z.string().min(1, 'Key is required').max(200, 'Key must be less than 200 characters'),
37
+ locale: z.enum([
38
+ 'en',
39
+ 'es',
40
+ 'fr',
41
+ 'de',
42
+ 'pt',
43
+ 'it'
44
+ ], {
45
+ message: 'Locale must be one of: en, es, fr, de, pt, it'
46
+ }).optional(),
47
+ content: z.string().min(1, 'Content is required').max(10000, 'Content must be less than 10000 characters'),
48
+ description: z.string().max(500, 'Description must be less than 500 characters').optional(),
49
+ category: z.string().max(100, 'Category must be less than 100 characters').optional(),
50
+ isActive: z.boolean().optional()
51
+ });
52
+ export const parseContent = (content)=>{
53
+ try {
54
+ const validated = contentSchema.parse(content);
55
+ return validated;
56
+ } catch (error) {
57
+ if (error instanceof z.ZodError) {
58
+ const field = error.issues[0]?.path.join('.');
59
+ const message = error.issues[0]?.message || 'Validation failed';
60
+ throw new ContentValidationError(message, field);
61
+ }
62
+ throw error;
63
+ }
64
+ };
65
+ export const parseContentInput = (content)=>{
66
+ try {
67
+ const validated = contentInputSchema.parse(content);
68
+ return validated;
69
+ } catch (error) {
70
+ if (error instanceof z.ZodError) {
71
+ const field = error.issues[0]?.path.join('.');
72
+ const message = error.issues[0]?.message || 'Validation failed';
73
+ throw new ContentValidationError(message, field);
74
+ }
75
+ throw error;
76
+ }
77
+ };
78
+ const performContentTransformation = (content)=>{
79
+ const { _id, _key, contentId, id, key, locale, content: contentText, description, category, isActive, userId } = content;
80
+ const transformed = {
81
+ ...parseDocument(content),
82
+ ...(_key || contentId) && {
83
+ contentId: parseId(_key || contentId)
84
+ },
85
+ ...(_id || id || _key || contentId) && {
86
+ id: parseArangoId(_id || id || `content/${_key || contentId}`)
87
+ },
88
+ key: parseString(key, 200),
89
+ locale,
90
+ content: parseString(contentText, 10000),
91
+ ...description && {
92
+ description: parseString(description, 500)
93
+ },
94
+ ...category && {
95
+ category: parseString(category, 100)
96
+ },
97
+ ...isActive !== undefined && {
98
+ isActive
99
+ },
100
+ ...userId && {
101
+ userId: parseId(userId)
102
+ }
103
+ };
104
+ return removeEmptyKeys(transformed);
105
+ };
106
+ export const parseContentFromDb = (content)=>performContentTransformation(content);
107
+
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FkYXB0ZXJzL2NvbnRlbnRBZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3BhcnNlQXJhbmdvSWQsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtDb250ZW50SW5wdXRUeXBlLCBDb250ZW50VHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udGVudC50eXBlcy5qcyc7XG5pbXBvcnQge3JlbW92ZUVtcHR5S2V5c30gZnJvbSAnLi4vdXRpbHMvYWRhcHRlclV0aWxzLmpzJztcbmltcG9ydCB7cGFyc2VEb2N1bWVudH0gZnJvbSAnLi9hcmFuZ29BZGFwdGVyLmpzJztcblxuZXhwb3J0IGNsYXNzIENvbnRlbnRWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGZpZWxkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0NvbnRlbnRWYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IGNvbnRlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXk6IHouc3RyaW5nKCkubWluKDEsICdLZXkgaXMgcmVxdWlyZWQnKS5tYXgoMjAwLCAnS2V5IG11c3QgYmUgbGVzcyB0aGFuIDIwMCBjaGFyYWN0ZXJzJyksXG4gIGxvY2FsZTogei5lbnVtKFsnZW4nLCAnZXMnLCAnZnInLCAnZGUnLCAncHQnLCAnaXQnXSwge1xuICAgIG1lc3NhZ2U6ICdMb2NhbGUgbXVzdCBiZSBvbmUgb2Y6IGVuLCBlcywgZnIsIGRlLCBwdCwgaXQnXG4gIH0pLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heCgxMDAwMCwgJ0NvbnRlbnQgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAgY2hhcmFjdGVycycpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoNTAwLCAnRGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gNTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5tYXgoMTAwLCAnQ2F0ZWdvcnkgbXVzdCBiZSBsZXNzIHRoYW4gMTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5jb25zdCBjb250ZW50SW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnRJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXk6IHouc3RyaW5nKCkubWluKDEsICdLZXkgaXMgcmVxdWlyZWQnKS5tYXgoMjAwLCAnS2V5IG11c3QgYmUgbGVzcyB0aGFuIDIwMCBjaGFyYWN0ZXJzJyksXG4gIGxvY2FsZTogei5lbnVtKFsnZW4nLCAnZXMnLCAnZnInLCAnZGUnLCAncHQnLCAnaXQnXSwge1xuICAgIG1lc3NhZ2U6ICdMb2NhbGUgbXVzdCBiZSBvbmUgb2Y6IGVuLCBlcywgZnIsIGRlLCBwdCwgaXQnXG4gIH0pLm9wdGlvbmFsKCksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KDEwMDAwLCAnQ29udGVudCBtdXN0IGJlIGxlc3MgdGhhbiAxMDAwMCBjaGFyYWN0ZXJzJyksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm1heCg1MDAsICdEZXNjcmlwdGlvbiBtdXN0IGJlIGxlc3MgdGhhbiA1MDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1heCgxMDAsICdDYXRlZ29yeSBtdXN0IGJlIGxlc3MgdGhhbiAxMDAgY2hhcmFjdGVycycpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpXG59KTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudCA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB2YWxpZGF0ZWQgPSBjb250ZW50U2NoZW1hLnBhcnNlKGNvbnRlbnQpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgQ29udGVudFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZXJyb3IuaXNzdWVzWzBdPy5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5pc3N1ZXNbMF0/Lm1lc3NhZ2UgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIHRocm93IG5ldyBDb250ZW50VmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UsIGZpZWxkKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnRJbnB1dCA9IChjb250ZW50OiBDb250ZW50SW5wdXRUeXBlKTogQ29udGVudElucHV0VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gY29udGVudElucHV0U2NoZW1hLnBhcnNlKGNvbnRlbnQpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgQ29udGVudElucHV0VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGQgPSBlcnJvci5pc3N1ZXNbMF0/LnBhdGguam9pbignLicpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLmlzc3Vlc1swXT8ubWVzc2FnZSB8fCAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgICAgdGhyb3cgbmV3IENvbnRlbnRWYWxpZGF0aW9uRXJyb3IobWVzc2FnZSwgZmllbGQpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybUNvbnRlbnRUcmFuc2Zvcm1hdGlvbiA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGNvbnRlbnRJZCxcbiAgICBpZCxcbiAgICBrZXksXG4gICAgbG9jYWxlLFxuICAgIGNvbnRlbnQ6IGNvbnRlbnRUZXh0LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGNhdGVnb3J5LFxuICAgIGlzQWN0aXZlLFxuICAgIHVzZXJJZFxuICB9ID0gY29udGVudDtcblxuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHtcbiAgICAuLi5wYXJzZURvY3VtZW50KGNvbnRlbnQpLFxuICAgIC4uLigoX2tleSB8fCBjb250ZW50SWQpICYmIHtjb250ZW50SWQ6IHBhcnNlSWQoX2tleSB8fCBjb250ZW50SWQpfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBjb250ZW50SWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGNvbnRlbnQvJHtfa2V5IHx8IGNvbnRlbnRJZH1gKX0pLFxuICAgIGtleTogcGFyc2VTdHJpbmcoa2V5LCAyMDApLFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhjb250ZW50VGV4dCwgMTAwMDApLFxuICAgIC4uLihkZXNjcmlwdGlvbiAmJiB7ZGVzY3JpcHRpb246IHBhcnNlU3RyaW5nKGRlc2NyaXB0aW9uLCA1MDApfSksXG4gICAgLi4uKGNhdGVnb3J5ICYmIHtjYXRlZ29yeTogcGFyc2VTdHJpbmcoY2F0ZWdvcnksIDEwMCl9KSxcbiAgICAuLi4oaXNBY3RpdmUgIT09IHVuZGVmaW5lZCAmJiB7aXNBY3RpdmV9KSxcbiAgICAuLi4odXNlcklkICYmIHt1c2VySWQ6IHBhcnNlSWQodXNlcklkKX0pXG4gIH07XG5cbiAgcmV0dXJuIHJlbW92ZUVtcHR5S2V5cyh0cmFuc2Zvcm1lZCkgYXMgQ29udGVudFR5cGU7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb250ZW50RnJvbURiID0gKGNvbnRlbnQ6IENvbnRlbnRUeXBlKTogQ29udGVudFR5cGUgPT4gcGVyZm9ybUNvbnRlbnRUcmFuc2Zvcm1hdGlvbihjb250ZW50KTsiXSwibmFtZXMiOlsicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInoiLCJyZW1vdmVFbXB0eUtleXMiLCJwYXJzZURvY3VtZW50IiwiQ29udGVudFZhbGlkYXRpb25FcnJvciIsIkVycm9yIiwibWVzc2FnZSIsImZpZWxkIiwibmFtZSIsImNvbnRlbnRTY2hlbWEiLCJvYmplY3QiLCJjb250ZW50SWQiLCJzdHJpbmciLCJvcHRpb25hbCIsImtleSIsIm1pbiIsIm1heCIsImxvY2FsZSIsImVudW0iLCJjb250ZW50IiwiZGVzY3JpcHRpb24iLCJjYXRlZ29yeSIsImlzQWN0aXZlIiwiYm9vbGVhbiIsInVzZXJJZCIsImNvbnRlbnRJbnB1dFNjaGVtYSIsInBhcnNlQ29udGVudCIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImlzc3VlcyIsInBhdGgiLCJqb2luIiwicGFyc2VDb250ZW50SW5wdXQiLCJwZXJmb3JtQ29udGVudFRyYW5zZm9ybWF0aW9uIiwiX2lkIiwiX2tleSIsImlkIiwiY29udGVudFRleHQiLCJ0cmFuc2Zvcm1lZCIsInVuZGVmaW5lZCIs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
@@ -7,3 +7,4 @@ export declare const validateFileInput: (file: unknown) => FileType;
7
7
  export declare const formatFileOutput: (file: FileType) => FileType;
8
8
  export declare const getFileType: (file: FileType) => string | undefined;
9
9
  export declare const parseFile: (file: FileType) => FileType;
10
+ //# sourceMappingURL=fileAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/fileAdapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAIjD,qBAAa,mBAAoB,SAAQ,KAAK;IACR,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAsBD,eAAO,MAAM,iBAAiB,GAAI,MAAM,OAAO,KAAG,QAWjD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,KAAG,QAAgB,CAAC;AAEnE,eAAO,MAAM,WAAW,GAAI,MAAM,QAAQ,KAAG,MAAM,GAAG,SAqBrD,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,QAAQ,KAAG,QAU1C,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { parseNum } from '@nlabs/utils/parsers/numbers';
2
+ import { parseArangoId, parseId, parseString, parseUrl } from '@nlabs/utils/parsers/strings';
3
+ import { z } from 'zod';
4
+ import { parseDocument } from './arangoAdapter.js';
5
+ import { parseReaktorContent, parseReaktorType } from './reaktorAdapter.js';
6
+ export class FileValidationError extends Error {
7
+ field;
8
+ constructor(message, field){
9
+ super(message), this.field = field;
10
+ this.name = 'FileValidationError';
11
+ }
12
+ }
13
+ const FileInputSchema = z.object({
14
+ _from: z.string().optional(),
15
+ _id: z.string().optional(),
16
+ _key: z.string().optional(),
17
+ _oldRev: z.string().optional(),
18
+ _rev: z.string().optional(),
19
+ _to: z.string().optional(),
20
+ base64: z.string().optional(),
21
+ buffer: z.any().optional(),
22
+ description: z.string().optional(),
23
+ fileId: z.string().optional(),
24
+ fileSize: z.number().optional(),
25
+ fileType: z.string().optional(),
26
+ itemId: z.string().optional(),
27
+ itemType: z.string().optional(),
28
+ name: z.string().optional(),
29
+ url: z.string().optional(),
30
+ userId: z.string().optional()
31
+ }).passthrough();
32
+ export const validateFileInput = (file)=>{
33
+ try {
34
+ const validated = FileInputSchema.parse(file);
35
+ return validated;
36
+ } catch (error) {
37
+ if (error instanceof z.ZodError) {
38
+ const fieldErrors = error.issues.map((e)=>`${e.path.join('.')}: ${e.message}`).join(', ');
39
+ throw new FileValidationError(`File validation failed: ${fieldErrors}`);
40
+ }
41
+ throw error;
42
+ }
43
+ };
44
+ export const formatFileOutput = (file)=>file;
45
+ export const getFileType = (file)=>{
46
+ const { fileType, name } = file;
47
+ if (fileType) {
48
+ return parseString(fileType, 16);
49
+ }
50
+ const nameArr = name?.split('.') || [];
51
+ const ext = nameArr.length && nameArr[nameArr.length - 1] || '';
52
+ switch(ext){
53
+ case 'jpeg':
54
+ case 'jpg':
55
+ return 'image/jpeg';
56
+ case 'png':
57
+ return 'image/png';
58
+ case 'zip':
59
+ return 'application/zip';
60
+ default:
61
+ return undefined;
62
+ }
63
+ };
64
+ export const parseFile = (file)=>{
65
+ try {
66
+ const parsed = performFileTransformation(file);
67
+ return parsed;
68
+ } catch (error) {
69
+ if (error instanceof FileValidationError) {
70
+ throw error;
71
+ }
72
+ throw new FileValidationError(`File parsing failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
73
+ }
74
+ };
75
+ const performFileTransformation = (file)=>{
76
+ const { _id, _key, base64, buffer, description, fileId, fileSize, fileType, id, itemId, itemType, name, url, userId } = file;
77
+ const transformed = {
78
+ ...parseDocument(file),
79
+ ...base64 && {
80
+ base64
81
+ },
82
+ ...buffer && {
83
+ buffer
84
+ },
85
+ ...description && {
86
+ description: parseReaktorContent(description)
87
+ },
88
+ ...(_key || fileId) && {
89
+ fileId: parseId(_key || fileId)
90
+ },
91
+ ...(_id || id || _key || fileId) && {
92
+ id: parseArangoId(_id || id || `files/${_key || fileId}`)
93
+ },
94
+ ...fileSize !== undefined && {
95
+ fileSize: parseNum(fileSize)
96
+ },
97
+ ...fileType && {
98
+ fileType: getFileType(file)
99
+ },
100
+ ...itemId && {
101
+ itemId: parseId(itemId)
102
+ },
103
+ ...itemType && {
104
+ itemType: parseReaktorType(itemType)
105
+ },
106
+ ...name && {
107
+ name: parseString(name, 160)
108
+ },
109
+ ...url && {
110
+ url: parseUrl(url)
111
+ },
112
+ ...userId && {
113
+ userId: parseId(userId)
114
+ }
115
+ };
116
+ return transformed;
117
+ };
118
+
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FkYXB0ZXJzL2ZpbGVBZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL251bWJlcnMnO1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVN0cmluZywgcGFyc2VVcmx9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHt6fSBmcm9tICd6b2QnO1xuXG5pbXBvcnQge0ZpbGVUeXBlfSBmcm9tICcuLi90eXBlcy9maWxlcy50eXBlcy5qcyc7XG5pbXBvcnQge3BhcnNlRG9jdW1lbnR9IGZyb20gJy4vYXJhbmdvQWRhcHRlci5qcyc7XG5pbXBvcnQge3BhcnNlUmVha3RvckNvbnRlbnQsIHBhcnNlUmVha3RvclR5cGV9IGZyb20gJy4vcmVha3RvckFkYXB0ZXIuanMnO1xuXG5leHBvcnQgY2xhc3MgRmlsZVZhbGlkYXRpb25FcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnRmlsZVZhbGlkYXRpb25FcnJvcic7XG4gIH1cbn1cblxuY29uc3QgRmlsZUlucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBfZnJvbTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX2tleTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfb2xkUmV2OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9yZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3RvOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGJhc2U2NDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBidWZmZXI6IHouYW55KCkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGZpbGVTaXplOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGZpbGVUeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGl0ZW1JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpdGVtVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBuYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHVybDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxufSkucGFzc3Rocm91Z2goKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRmlsZUlucHV0ID0gKGZpbGU6IHVua25vd24pOiBGaWxlVHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gRmlsZUlucHV0U2NoZW1hLnBhcnNlKGZpbGUpO1xuICAgIHJldHVybiB2YWxpZGF0ZWQgYXMgRmlsZVR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkRXJyb3JzID0gZXJyb3IuaXNzdWVzLm1hcCgoZSkgPT4gYCR7ZS5wYXRoLmpvaW4oJy4nKX06ICR7ZS5tZXNzYWdlfWApLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRmlsZVZhbGlkYXRpb25FcnJvcihgRmlsZSB2YWxpZGF0aW9uIGZhaWxlZDogJHtmaWVsZEVycm9yc31gKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRGaWxlT3V0cHV0ID0gKGZpbGU6IEZpbGVUeXBlKTogRmlsZVR5cGUgPT4gZmlsZTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbGVUeXBlID0gKGZpbGU6IEZpbGVUeXBlKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qge2ZpbGVUeXBlLCBuYW1lfSA9IGZpbGU7XG5cbiAgaWYoZmlsZVR5cGUpIHtcbiAgICByZXR1cm4gcGFyc2VTdHJpbmcoZmlsZVR5cGUsIDE2KTtcbiAgfVxuXG4gIGNvbnN0IG5hbWVBcnI6IHN0cmluZ1tdID0gbmFtZT8uc3BsaXQoJy4nKSB8fCBbXTtcbiAgY29uc3QgZXh0OiBzdHJpbmcgPSBuYW1lQXJyLmxlbmd0aCAmJiBuYW1lQXJyW25hbWVBcnIubGVuZ3RoIC0gMV0gfHwgJyc7XG5cbiAgc3dpdGNoKGV4dCkge1xuICAgIGNhc2UgJ2pwZWcnOlxuICAgIGNhc2UgJ2pwZyc6XG4gICAgICByZXR1cm4gJ2ltYWdlL2pwZWcnO1xuICAgIGNhc2UgJ3BuZyc6XG4gICAgICByZXR1cm4gJ2ltYWdlL3BuZyc7XG4gICAgY2FzZSAnemlwJzpcbiAgICAgIHJldHVybiAnYXBwbGljYXRpb24vemlwJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRmlsZSA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWQgPSBwZXJmb3JtRmlsZVRyYW5zZm9ybWF0aW9uKGZpbGUpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIEZpbGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRmlsZVZhbGlkYXRpb25FcnJvcihgRmlsZSBwYXJzaW5nIGZhaWxlZDogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJ31gKTtcbiAgfVxufTtcblxuY29uc3QgcGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiA9IChmaWxlOiBGaWxlVHlwZSk6IEZpbGVUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGJhc2U2NCxcbiAgICBidWZmZXIsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmlsZUlkLFxuICAgIGZpbGVTaXplLFxuICAgIGZpbGVUeXBlLFxuICAgIGlkLFxuICAgIGl0ZW1JZCxcbiAgICBpdGVtVHlwZSxcbiAgICBuYW1lLFxuICAgIHVybCxcbiAgICB1c2VySWRcbiAgfSA9IGZpbGU7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChmaWxlKSxcbiAgICAuLi4oYmFzZTY0ICYmIHtiYXNlNjR9KSxcbiAgICAuLi4oYnVmZmVyICYmIHtidWZmZXJ9KSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVJlYWt0b3JDb250ZW50KGRlc2NyaXB0aW9uKX0pLFxuICAgIC4uLigoX2tleSB8fCBmaWxlSWQpICYmIHtmaWxlSWQ6IHBhcnNlSWQoX2tleSB8fCBmaWxlSWQpfSksXG4gICAgLi4uKChfaWQgfHwgaWQgfHwgX2tleSB8fCBmaWxlSWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQgfHwgYGZpbGVzLyR7X2tleSB8fCBmaWxlSWR9YCl9KSxcbiAgICAuLi4oZmlsZVNpemUgIT09IHVuZGVmaW5lZCAmJiB7ZmlsZVNpemU6IHBhcnNlTnVtKGZpbGVTaXplKX0pLFxuICAgIC4uLihmaWxlVHlwZSAmJiB7ZmlsZVR5cGU6IGdldEZpbGVUeXBlKGZpbGUpfSksXG4gICAgLi4uKGl0ZW1JZCAmJiB7aXRlbUlkOiBwYXJzZUlkKGl0ZW1JZCl9KSxcbiAgICAuLi4oaXRlbVR5cGUgJiYge2l0ZW1UeXBlOiBwYXJzZVJlYWt0b3JUeXBlKGl0ZW1UeXBlKX0pLFxuICAgIC4uLihuYW1lICYmIHtuYW1lOiBwYXJzZVN0cmluZyhuYW1lLCAxNjApfSksXG4gICAgLi4uKHVybCAmJiB7dXJsOiBwYXJzZVVybCh1cmwpfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIHJldHVybiB0cmFuc2Zvcm1lZDtcbn07Il0sIm5hbWVzIjpbInBhcnNlTnVtIiwicGFyc2VBcmFuZ29JZCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsInBhcnNlVXJsIiwieiIsInBhcnNlRG9jdW1lbnQiLCJwYXJzZVJlYWt0b3JDb250ZW50IiwicGFyc2VSZWFrdG9yVHlwZSIsIkZpbGVWYWxpZGF0aW9uRXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJmaWVsZCIsIm5hbWUiLCJGaWxlSW5wdXRTY2hlbWEiLCJvYmplY3QiLCJfZnJvbSIsInN0cmluZyIsIm9wdGlvbmFsIiwiX2lkIiwiX2tleSIsIl9vbGRSZXYiLCJfcmV2IiwiX3RvIiwiYmFzZTY0IiwiYnVmZmVyIiwiYW55IiwiZGVzY3JpcHRpb24iLCJmaWxlSWQiLCJmaWxlU2l6ZSIsIm51bWJlciIsImZpbGVUeXBlIiwiaXRlbUlkIiwiaXRlbVR5cGUiLCJ1cmwiLCJ1c2VySWQiLCJwYXNzdGhyb3VnaCIsInZhbGlkYXRlRmlsZUlucHV0IiwiZmlsZSIsInZhbGlkYXRlZCIsInBhcnNlIiwiZXJyb3IiLCJab2RFcnJvciIsImZpZWxkRXJyb3JzIiwiaXNzdWVzIiwibWFwIiwiZSIsInBhdGgiLCJqb2luIiwiZm9ybWF0RmlsZU91dHB1dCIsImdldEZpbGVUeXBlIiwibmFtZUFyciIsInNwbGl0IiwiZXh0IiwibGVuZ3RoIiwidW5kZWZpbmVkIiwicGFyc2VGaWxlIiwicGFyc2VkIiwicGVyZm9ybUZpbGVUcmFuc2Zvcm1hdGlvbiIsImlkIiwidHJhbnNmb3JtZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFFBQVEsUUFBTywrQkFBK0I7QUFDdEQsU0FBUUMsYUFBYSxFQUFFQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxRQUFPLCtCQUErQjtBQUMzRixTQUFRQyxDQUFDLFFBQU8sTUFBTTtBQUd0QixTQUFR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
@@ -6,3 +6,4 @@ export declare class ImageValidationError extends Error {
6
6
  export declare const validateImageInput: (image: unknown) => ImageType;
7
7
  export declare const formatImageOutput: (image: ImageType) => ImageType;
8
8
  export declare const parseImage: (image: ImageType) => ImageType;
9
+ //# sourceMappingURL=imageAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/imageAdapter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAExD,qBAAa,oBAAqB,SAAQ,KAAK;IACT,KAAK,CAAC,EAAE,MAAM;gBAAtC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,MAAM;CAInD;AAyBD,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,SAWnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,OAAO,SAAS,KAAG,SAAkB,CAAC;AAExE,eAAO,MAAM,UAAU,GAAI,OAAO,SAAS,KAAG,SAU7C,CAAC"}