@nlabs/reaktor 0.10.2 → 0.10.6

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 (472) hide show
  1. package/coverage/block-navigation.js +1 -1
  2. package/coverage/index.html +23 -23
  3. package/coverage/sorter.js +21 -7
  4. package/lib/actions/apps.d.ts +1 -0
  5. package/lib/actions/apps.d.ts.map +1 -0
  6. package/lib/actions/apps.js +218 -17
  7. package/lib/actions/connections.d.ts +1 -0
  8. package/lib/actions/connections.d.ts.map +1 -0
  9. package/lib/actions/connections.js +61 -6
  10. package/lib/actions/content.d.ts +1 -0
  11. package/lib/actions/content.d.ts.map +1 -0
  12. package/lib/actions/content.js +232 -9
  13. package/lib/actions/conversations.d.ts +1 -0
  14. package/lib/actions/conversations.d.ts.map +1 -0
  15. package/lib/actions/conversations.js +321 -19
  16. package/lib/actions/dynamodb.d.ts +1 -0
  17. package/lib/actions/dynamodb.d.ts.map +1 -0
  18. package/lib/actions/dynamodb.js +119 -2
  19. package/lib/actions/email.d.ts +1 -0
  20. package/lib/actions/email.d.ts.map +1 -0
  21. package/lib/actions/email.js +56 -2
  22. package/lib/actions/files.d.ts +1 -0
  23. package/lib/actions/files.d.ts.map +1 -0
  24. package/lib/actions/files.js +226 -5
  25. package/lib/actions/groups.d.ts +1 -0
  26. package/lib/actions/groups.d.ts.map +1 -0
  27. package/lib/actions/groups.js +234 -19
  28. package/lib/actions/images.d.ts +1 -0
  29. package/lib/actions/images.d.ts.map +1 -0
  30. package/lib/actions/images.js +688 -31
  31. package/lib/actions/index.d.ts +2 -0
  32. package/lib/actions/index.d.ts.map +1 -0
  33. package/lib/actions/index.js +29 -2
  34. package/lib/actions/ios.d.ts +1 -0
  35. package/lib/actions/ios.d.ts.map +1 -0
  36. package/lib/actions/ios.js +228 -9
  37. package/lib/actions/locations.d.ts +1 -0
  38. package/lib/actions/locations.d.ts.map +1 -0
  39. package/lib/actions/locations.js +111 -7
  40. package/lib/actions/messages.d.ts +1 -0
  41. package/lib/actions/messages.d.ts.map +1 -0
  42. package/lib/actions/messages.js +155 -21
  43. package/lib/actions/notifications.d.ts +1 -0
  44. package/lib/actions/notifications.d.ts.map +1 -0
  45. package/lib/actions/notifications.js +37 -2
  46. package/lib/actions/payments.d.ts +1 -0
  47. package/lib/actions/payments.d.ts.map +1 -0
  48. package/lib/actions/payments.js +428 -11
  49. package/lib/actions/posts.d.ts +1 -0
  50. package/lib/actions/posts.d.ts.map +1 -0
  51. package/lib/actions/posts.js +540 -75
  52. package/lib/actions/profiles.d.ts +1 -0
  53. package/lib/actions/profiles.d.ts.map +1 -0
  54. package/lib/actions/profiles.js +58 -8
  55. package/lib/actions/reactions.d.ts +1 -0
  56. package/lib/actions/reactions.d.ts.map +1 -0
  57. package/lib/actions/reactions.js +276 -25
  58. package/lib/actions/s3.d.ts +1 -0
  59. package/lib/actions/s3.d.ts.map +1 -0
  60. package/lib/actions/s3.js +102 -2
  61. package/lib/actions/search.d.ts +1 -0
  62. package/lib/actions/search.d.ts.map +1 -0
  63. package/lib/actions/search.js +81 -5
  64. package/lib/actions/sms.d.ts +1 -0
  65. package/lib/actions/sms.d.ts.map +1 -0
  66. package/lib/actions/sms.js +52 -2
  67. package/lib/actions/statistics.d.ts +1 -0
  68. package/lib/actions/statistics.d.ts.map +1 -0
  69. package/lib/actions/statistics.js +41 -6
  70. package/lib/actions/subscriptions.d.ts +1 -0
  71. package/lib/actions/subscriptions.d.ts.map +1 -0
  72. package/lib/actions/subscriptions.js +196 -6
  73. package/lib/actions/tags.d.ts +1 -0
  74. package/lib/actions/tags.d.ts.map +1 -0
  75. package/lib/actions/tags.js +258 -19
  76. package/lib/actions/users.d.ts +1 -0
  77. package/lib/actions/users.d.ts.map +1 -0
  78. package/lib/actions/users.js +781 -66
  79. package/lib/actions/videos.d.ts +26 -0
  80. package/lib/actions/videos.d.ts.map +1 -0
  81. package/lib/actions/videos.js +423 -0
  82. package/lib/actions/websockets.d.ts +1 -0
  83. package/lib/actions/websockets.d.ts.map +1 -0
  84. package/lib/actions/websockets.js +148 -14
  85. package/lib/adapters/arangoAdapter.d.ts +1 -0
  86. package/lib/adapters/arangoAdapter.d.ts.map +1 -0
  87. package/lib/adapters/arangoAdapter.js +70 -2
  88. package/lib/adapters/contentAdapter.d.ts +1 -0
  89. package/lib/adapters/contentAdapter.d.ts.map +1 -0
  90. package/lib/adapters/contentAdapter.js +108 -2
  91. package/lib/adapters/fileAdapter.d.ts +1 -0
  92. package/lib/adapters/fileAdapter.d.ts.map +1 -0
  93. package/lib/adapters/fileAdapter.js +119 -2
  94. package/lib/adapters/imageAdapter.d.ts +1 -0
  95. package/lib/adapters/imageAdapter.d.ts.map +1 -0
  96. package/lib/adapters/imageAdapter.js +112 -2
  97. package/lib/adapters/index.d.ts +1 -0
  98. package/lib/adapters/index.d.ts.map +1 -0
  99. package/lib/adapters/index.js +11 -2
  100. package/lib/adapters/messageAdapter.d.ts +1 -0
  101. package/lib/adapters/messageAdapter.d.ts.map +1 -0
  102. package/lib/adapters/messageAdapter.js +82 -2
  103. package/lib/adapters/postAdapter.d.ts +1 -0
  104. package/lib/adapters/postAdapter.d.ts.map +1 -0
  105. package/lib/adapters/postAdapter.js +117 -2
  106. package/lib/adapters/reaktorAdapter.d.ts +1 -0
  107. package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
  108. package/lib/adapters/reaktorAdapter.js +59 -2
  109. package/lib/adapters/tagAdapter.d.ts +1 -0
  110. package/lib/adapters/tagAdapter.d.ts.map +1 -0
  111. package/lib/adapters/tagAdapter.js +99 -2
  112. package/lib/adapters/userAdapter.d.ts +1 -0
  113. package/lib/adapters/userAdapter.d.ts.map +1 -0
  114. package/lib/adapters/userAdapter.js +264 -2
  115. package/lib/config.d.ts +1 -0
  116. package/lib/config.d.ts.map +1 -0
  117. package/lib/config.js +161 -2
  118. package/lib/handlers/graphqlHandler.d.ts +1 -0
  119. package/lib/handlers/graphqlHandler.d.ts.map +1 -0
  120. package/lib/handlers/graphqlHandler.js +118 -2
  121. package/lib/index.d.ts +1 -0
  122. package/lib/index.d.ts.map +1 -0
  123. package/lib/index.js +18 -2
  124. package/lib/lambdas/actions/websockets.d.ts +1 -0
  125. package/lib/lambdas/actions/websockets.d.ts.map +1 -0
  126. package/lib/lambdas/actions/websockets.js +89 -14
  127. package/lib/lambdas/authorizer.d.ts +1 -0
  128. package/lib/lambdas/authorizer.d.ts.map +1 -0
  129. package/lib/lambdas/authorizer.js +41 -2
  130. package/lib/lambdas/connection.d.ts +1 -0
  131. package/lib/lambdas/connection.d.ts.map +1 -0
  132. package/lib/lambdas/connection.js +85 -2
  133. package/lib/lambdas/utils/message.d.ts +1 -0
  134. package/lib/lambdas/utils/message.d.ts.map +1 -0
  135. package/lib/lambdas/utils/message.js +20 -2
  136. package/lib/lambdas/utils/websocket.d.ts +1 -0
  137. package/lib/lambdas/utils/websocket.d.ts.map +1 -0
  138. package/lib/lambdas/utils/websocket.js +78 -2
  139. package/lib/mocks/conversation.d.ts +1 -0
  140. package/lib/mocks/conversation.d.ts.map +1 -0
  141. package/lib/mocks/conversation.js +10 -2
  142. package/lib/mocks/file.d.ts +1 -0
  143. package/lib/mocks/file.d.ts.map +1 -0
  144. package/lib/mocks/file.js +13 -2
  145. package/lib/mocks/group.d.ts +1 -0
  146. package/lib/mocks/group.d.ts.map +1 -0
  147. package/lib/mocks/group.js +20 -2
  148. package/lib/mocks/image.d.ts +1 -0
  149. package/lib/mocks/image.d.ts.map +1 -0
  150. package/lib/mocks/image.js +17 -2
  151. package/lib/mocks/post.d.ts +1 -0
  152. package/lib/mocks/post.d.ts.map +1 -0
  153. package/lib/mocks/post.js +28 -2
  154. package/lib/mocks/tag.d.ts +1 -0
  155. package/lib/mocks/tag.d.ts.map +1 -0
  156. package/lib/mocks/tag.js +12 -2
  157. package/lib/mocks/user.d.ts +1 -0
  158. package/lib/mocks/user.d.ts.map +1 -0
  159. package/lib/mocks/user.js +61 -2
  160. package/lib/mocks/video.d.ts +4 -0
  161. package/lib/mocks/video.d.ts.map +1 -0
  162. package/lib/mocks/video.js +17 -0
  163. package/lib/mutations/content.d.ts +1 -0
  164. package/lib/mutations/content.d.ts.map +1 -0
  165. package/lib/mutations/content.js +27 -2
  166. package/lib/mutations/index.d.ts +1 -0
  167. package/lib/mutations/index.d.ts.map +1 -0
  168. package/lib/mutations/index.js +29 -2
  169. package/lib/mutations/locations.d.ts +1 -0
  170. package/lib/mutations/locations.d.ts.map +1 -0
  171. package/lib/mutations/locations.js +22 -2
  172. package/lib/mutations/messages.d.ts +1 -0
  173. package/lib/mutations/messages.d.ts.map +1 -0
  174. package/lib/mutations/messages.js +75 -2
  175. package/lib/mutations/posts.d.ts +1 -0
  176. package/lib/mutations/posts.d.ts.map +1 -0
  177. package/lib/mutations/posts.js +31 -2
  178. package/lib/mutations/profiles.d.ts +1 -0
  179. package/lib/mutations/profiles.d.ts.map +1 -0
  180. package/lib/mutations/profiles.js +78 -2
  181. package/lib/mutations/reactions.d.ts +1 -0
  182. package/lib/mutations/reactions.d.ts.map +1 -0
  183. package/lib/mutations/reactions.js +29 -2
  184. package/lib/mutations/statistics.d.ts +1 -0
  185. package/lib/mutations/statistics.d.ts.map +1 -0
  186. package/lib/mutations/statistics.js +17 -2
  187. package/lib/mutations/subscriptions.d.ts +1 -0
  188. package/lib/mutations/subscriptions.d.ts.map +1 -0
  189. package/lib/mutations/subscriptions.js +38 -2
  190. package/lib/mutations/tags.d.ts +1 -0
  191. package/lib/mutations/tags.d.ts.map +1 -0
  192. package/lib/mutations/tags.js +109 -2
  193. package/lib/mutations/users.d.ts +1 -0
  194. package/lib/mutations/users.d.ts.map +1 -0
  195. package/lib/mutations/users.js +129 -2
  196. package/lib/objectTypes/app.d.ts +1 -0
  197. package/lib/objectTypes/app.d.ts.map +1 -0
  198. package/lib/objectTypes/app.js +147 -2
  199. package/lib/objectTypes/bankAccount.d.ts +1 -0
  200. package/lib/objectTypes/bankAccount.d.ts.map +1 -0
  201. package/lib/objectTypes/bankAccount.js +54 -2
  202. package/lib/objectTypes/connection.d.ts +1 -0
  203. package/lib/objectTypes/connection.d.ts.map +1 -0
  204. package/lib/objectTypes/connection.js +26 -2
  205. package/lib/objectTypes/content.d.ts +1 -0
  206. package/lib/objectTypes/content.d.ts.map +1 -0
  207. package/lib/objectTypes/content.js +79 -2
  208. package/lib/objectTypes/conversation.d.ts +1 -0
  209. package/lib/objectTypes/conversation.d.ts.map +1 -0
  210. package/lib/objectTypes/conversation.js +53 -2
  211. package/lib/objectTypes/creditCard.d.ts +1 -0
  212. package/lib/objectTypes/creditCard.d.ts.map +1 -0
  213. package/lib/objectTypes/creditCard.js +64 -2
  214. package/lib/objectTypes/document.d.ts +1 -0
  215. package/lib/objectTypes/document.d.ts.map +1 -0
  216. package/lib/objectTypes/document.js +21 -2
  217. package/lib/objectTypes/error.d.ts +1 -0
  218. package/lib/objectTypes/error.d.ts.map +1 -0
  219. package/lib/objectTypes/error.js +24 -2
  220. package/lib/objectTypes/external.d.ts +1 -0
  221. package/lib/objectTypes/external.d.ts.map +1 -0
  222. package/lib/objectTypes/external.js +52 -2
  223. package/lib/objectTypes/file.d.ts +1 -0
  224. package/lib/objectTypes/file.d.ts.map +1 -0
  225. package/lib/objectTypes/file.js +76 -2
  226. package/lib/objectTypes/filter.d.ts +1 -0
  227. package/lib/objectTypes/filter.d.ts.map +1 -0
  228. package/lib/objectTypes/filter.js +21 -2
  229. package/lib/objectTypes/group.d.ts +1 -0
  230. package/lib/objectTypes/group.d.ts.map +1 -0
  231. package/lib/objectTypes/group.js +97 -2
  232. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  233. package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
  234. package/lib/objectTypes/iapSubscription.js +18 -2
  235. package/lib/objectTypes/image.d.ts +1 -0
  236. package/lib/objectTypes/image.d.ts.map +1 -0
  237. package/lib/objectTypes/image.js +105 -2
  238. package/lib/objectTypes/index.d.ts +1 -0
  239. package/lib/objectTypes/index.d.ts.map +1 -0
  240. package/lib/objectTypes/index.js +28 -2
  241. package/lib/objectTypes/location.d.ts +1 -0
  242. package/lib/objectTypes/location.d.ts.map +1 -0
  243. package/lib/objectTypes/location.js +85 -2
  244. package/lib/objectTypes/message.d.ts +1 -0
  245. package/lib/objectTypes/message.d.ts.map +1 -0
  246. package/lib/objectTypes/message.js +72 -2
  247. package/lib/objectTypes/passcode.d.ts +1 -0
  248. package/lib/objectTypes/passcode.d.ts.map +1 -0
  249. package/lib/objectTypes/passcode.js +20 -2
  250. package/lib/objectTypes/plan.d.ts +1 -0
  251. package/lib/objectTypes/plan.d.ts.map +1 -0
  252. package/lib/objectTypes/plan.js +71 -2
  253. package/lib/objectTypes/post.d.ts +1 -0
  254. package/lib/objectTypes/post.d.ts.map +1 -0
  255. package/lib/objectTypes/post.js +101 -2
  256. package/lib/objectTypes/profile.d.ts +1 -0
  257. package/lib/objectTypes/profile.d.ts.map +1 -0
  258. package/lib/objectTypes/profile.js +68 -2
  259. package/lib/objectTypes/reaction.d.ts +1 -0
  260. package/lib/objectTypes/reaction.d.ts.map +1 -0
  261. package/lib/objectTypes/reaction.js +37 -2
  262. package/lib/objectTypes/relation.d.ts +1 -0
  263. package/lib/objectTypes/relation.d.ts.map +1 -0
  264. package/lib/objectTypes/relation.js +27 -2
  265. package/lib/objectTypes/search.d.ts +1 -0
  266. package/lib/objectTypes/search.d.ts.map +1 -0
  267. package/lib/objectTypes/search.js +50 -2
  268. package/lib/objectTypes/statistics.d.ts +1 -0
  269. package/lib/objectTypes/statistics.d.ts.map +1 -0
  270. package/lib/objectTypes/statistics.js +17 -2
  271. package/lib/objectTypes/subscription.d.ts +1 -0
  272. package/lib/objectTypes/subscription.d.ts.map +1 -0
  273. package/lib/objectTypes/subscription.js +102 -2
  274. package/lib/objectTypes/tag.d.ts +1 -0
  275. package/lib/objectTypes/tag.d.ts.map +1 -0
  276. package/lib/objectTypes/tag.js +41 -2
  277. package/lib/objectTypes/user.d.ts +1 -0
  278. package/lib/objectTypes/user.d.ts.map +1 -0
  279. package/lib/objectTypes/user.js +111 -2
  280. package/lib/queries/content.d.ts +1 -0
  281. package/lib/queries/content.d.ts.map +1 -0
  282. package/lib/queries/content.js +50 -2
  283. package/lib/queries/index.d.ts +1 -0
  284. package/lib/queries/index.d.ts.map +1 -0
  285. package/lib/queries/index.js +27 -2
  286. package/lib/queries/locations.d.ts +1 -0
  287. package/lib/queries/locations.d.ts.map +1 -0
  288. package/lib/queries/locations.js +23 -2
  289. package/lib/queries/messages.d.ts +1 -0
  290. package/lib/queries/messages.d.ts.map +1 -0
  291. package/lib/queries/messages.js +35 -2
  292. package/lib/queries/posts.d.ts +1 -0
  293. package/lib/queries/posts.d.ts.map +1 -0
  294. package/lib/queries/posts.js +154 -2
  295. package/lib/queries/reactions.d.ts +1 -0
  296. package/lib/queries/reactions.d.ts.map +1 -0
  297. package/lib/queries/reactions.js +34 -2
  298. package/lib/queries/statistics.d.ts +1 -0
  299. package/lib/queries/statistics.d.ts.map +1 -0
  300. package/lib/queries/statistics.js +17 -2
  301. package/lib/queries/subscriptions.d.ts +1 -0
  302. package/lib/queries/subscriptions.d.ts.map +1 -0
  303. package/lib/queries/subscriptions.js +21 -2
  304. package/lib/queries/tags.d.ts +1 -0
  305. package/lib/queries/tags.d.ts.map +1 -0
  306. package/lib/queries/tags.js +56 -2
  307. package/lib/queries/users.d.ts +1 -0
  308. package/lib/queries/users.d.ts.map +1 -0
  309. package/lib/queries/users.js +39 -2
  310. package/lib/templates/email/layout.d.ts +1 -0
  311. package/lib/templates/email/layout.d.ts.map +1 -0
  312. package/lib/templates/email/layout.js +4 -3
  313. package/lib/templates/email/passwordForgot.d.ts +1 -0
  314. package/lib/templates/email/passwordForgot.d.ts.map +1 -0
  315. package/lib/templates/email/passwordForgot.js +4 -3
  316. package/lib/templates/email/passwordRecovery.d.ts +1 -0
  317. package/lib/templates/email/passwordRecovery.d.ts.map +1 -0
  318. package/lib/templates/email/passwordRecovery.js +4 -3
  319. package/lib/templates/email/verifyEmail.d.ts +1 -0
  320. package/lib/templates/email/verifyEmail.d.ts.map +1 -0
  321. package/lib/templates/email/verifyEmail.js +4 -3
  322. package/lib/templates/email/welcome.d.ts +1 -0
  323. package/lib/templates/email/welcome.d.ts.map +1 -0
  324. package/lib/templates/email/welcome.js +4 -3
  325. package/lib/templates/sms/passwordForgot.d.ts +1 -0
  326. package/lib/templates/sms/passwordForgot.d.ts.map +1 -0
  327. package/lib/templates/sms/passwordForgot.js +3 -2
  328. package/lib/templates/sms/passwordRecovery.d.ts +1 -0
  329. package/lib/templates/sms/passwordRecovery.d.ts.map +1 -0
  330. package/lib/templates/sms/passwordRecovery.js +3 -2
  331. package/lib/templates/sms/verifyEmail.d.ts +1 -0
  332. package/lib/templates/sms/verifyEmail.d.ts.map +1 -0
  333. package/lib/templates/sms/verifyEmail.js +3 -2
  334. package/lib/templates/sms/verifyPhone.d.ts +1 -0
  335. package/lib/templates/sms/verifyPhone.d.ts.map +1 -0
  336. package/lib/templates/sms/verifyPhone.js +3 -2
  337. package/lib/templates/sms/welcome.d.ts +1 -0
  338. package/lib/templates/sms/welcome.d.ts.map +1 -0
  339. package/lib/templates/sms/welcome.js +3 -2
  340. package/lib/types/apps.types.d.ts +1 -0
  341. package/lib/types/apps.types.d.ts.map +1 -0
  342. package/lib/types/apps.types.js +10 -2
  343. package/lib/types/arangodb.types.d.ts +2 -1
  344. package/lib/types/arangodb.types.d.ts.map +1 -0
  345. package/lib/types/arangodb.types.js +6 -1
  346. package/lib/types/auth.types.d.ts +1 -0
  347. package/lib/types/auth.types.d.ts.map +1 -0
  348. package/lib/types/auth.types.js +6 -1
  349. package/lib/types/connections.types.d.ts +1 -0
  350. package/lib/types/connections.types.d.ts.map +1 -0
  351. package/lib/types/connections.types.js +6 -1
  352. package/lib/types/content.types.d.ts +1 -0
  353. package/lib/types/content.types.d.ts.map +1 -0
  354. package/lib/types/content.types.js +6 -1
  355. package/lib/types/conversations.types.d.ts +1 -0
  356. package/lib/types/conversations.types.d.ts.map +1 -0
  357. package/lib/types/conversations.types.js +6 -1
  358. package/lib/types/email.types.d.ts +1 -0
  359. package/lib/types/email.types.d.ts.map +1 -0
  360. package/lib/types/email.types.js +6 -1
  361. package/lib/types/error.types.d.ts +1 -0
  362. package/lib/types/error.types.d.ts.map +1 -0
  363. package/lib/types/error.types.js +20 -2
  364. package/lib/types/files.types.d.ts +1 -0
  365. package/lib/types/files.types.d.ts.map +1 -0
  366. package/lib/types/files.types.js +6 -1
  367. package/lib/types/google.types.d.ts +1 -0
  368. package/lib/types/google.types.d.ts.map +1 -0
  369. package/lib/types/google.types.js +6 -1
  370. package/lib/types/groups.types.d.ts +1 -0
  371. package/lib/types/groups.types.d.ts.map +1 -0
  372. package/lib/types/groups.types.js +6 -1
  373. package/lib/types/images.types.d.ts +1 -0
  374. package/lib/types/images.types.d.ts.map +1 -0
  375. package/lib/types/images.types.js +6 -1
  376. package/lib/types/index.d.ts +2 -0
  377. package/lib/types/index.d.ts.map +1 -0
  378. package/lib/types/index.js +28 -2
  379. package/lib/types/locations.types.d.ts +1 -0
  380. package/lib/types/locations.types.d.ts.map +1 -0
  381. package/lib/types/locations.types.js +6 -1
  382. package/lib/types/messages.types.d.ts +1 -0
  383. package/lib/types/messages.types.d.ts.map +1 -0
  384. package/lib/types/messages.types.js +6 -1
  385. package/lib/types/notifications.types.d.ts +1 -0
  386. package/lib/types/notifications.types.d.ts.map +1 -0
  387. package/lib/types/notifications.types.js +6 -1
  388. package/lib/types/payments.types.d.ts +1 -0
  389. package/lib/types/payments.types.d.ts.map +1 -0
  390. package/lib/types/payments.types.js +6 -1
  391. package/lib/types/posts.types.d.ts +1 -0
  392. package/lib/types/posts.types.d.ts.map +1 -0
  393. package/lib/types/posts.types.js +6 -1
  394. package/lib/types/profiles.types.d.ts +1 -0
  395. package/lib/types/profiles.types.d.ts.map +1 -0
  396. package/lib/types/profiles.types.js +3 -1
  397. package/lib/types/statistics.types.d.ts +1 -0
  398. package/lib/types/statistics.types.d.ts.map +1 -0
  399. package/lib/types/statistics.types.js +3 -1
  400. package/lib/types/tags.types.d.ts +1 -0
  401. package/lib/types/tags.types.d.ts.map +1 -0
  402. package/lib/types/tags.types.js +6 -1
  403. package/lib/types/users.types.d.ts +1 -0
  404. package/lib/types/users.types.d.ts.map +1 -0
  405. package/lib/types/users.types.js +6 -1
  406. package/lib/types/videos.types.d.ts +47 -0
  407. package/lib/types/videos.types.d.ts.map +1 -0
  408. package/lib/types/videos.types.js +6 -0
  409. package/lib/types/websockets.types.d.ts +1 -0
  410. package/lib/types/websockets.types.d.ts.map +1 -0
  411. package/lib/types/websockets.types.js +6 -1
  412. package/lib/utils/adapterUtils.d.ts +1 -0
  413. package/lib/utils/adapterUtils.d.ts.map +1 -0
  414. package/lib/utils/adapterUtils.js +23 -2
  415. package/lib/utils/analyticsUtils.d.ts +1 -0
  416. package/lib/utils/analyticsUtils.d.ts.map +1 -0
  417. package/lib/utils/analyticsUtils.js +45 -2
  418. package/lib/utils/arangodbUtils.d.ts +1 -0
  419. package/lib/utils/arangodbUtils.d.ts.map +1 -0
  420. package/lib/utils/arangodbUtils.js +128 -5
  421. package/lib/utils/authUtils.d.ts +1 -0
  422. package/lib/utils/authUtils.d.ts.map +1 -0
  423. package/lib/utils/authUtils.js +54 -2
  424. package/lib/utils/contextUtils.d.ts +1 -0
  425. package/lib/utils/contextUtils.d.ts.map +1 -0
  426. package/lib/utils/contextUtils.js +10 -2
  427. package/lib/utils/dbI18n.d.ts +1 -0
  428. package/lib/utils/dbI18n.d.ts.map +1 -0
  429. package/lib/utils/dbI18n.example.d.ts +1 -0
  430. package/lib/utils/dbI18n.example.d.ts.map +1 -0
  431. package/lib/utils/dbI18n.example.js +92 -5
  432. package/lib/utils/dbI18n.js +28 -2
  433. package/lib/utils/googleTranslate.d.ts +1 -0
  434. package/lib/utils/googleTranslate.d.ts.map +1 -0
  435. package/lib/utils/googleTranslate.js +70 -2
  436. package/lib/utils/graphqlUtils.d.ts +1 -0
  437. package/lib/utils/graphqlUtils.d.ts.map +1 -0
  438. package/lib/utils/graphqlUtils.js +11 -2
  439. package/lib/utils/index.d.ts +1 -0
  440. package/lib/utils/index.d.ts.map +1 -0
  441. package/lib/utils/index.js +19 -2
  442. package/lib/utils/languageDetection.d.ts +1 -0
  443. package/lib/utils/languageDetection.d.ts.map +1 -0
  444. package/lib/utils/languageDetection.js +120 -2
  445. package/lib/utils/localeUtils.d.ts +1 -0
  446. package/lib/utils/localeUtils.d.ts.map +1 -0
  447. package/lib/utils/localeUtils.example.d.ts +1 -0
  448. package/lib/utils/localeUtils.example.d.ts.map +1 -0
  449. package/lib/utils/localeUtils.example.js +124 -2
  450. package/lib/utils/localeUtils.js +71 -2
  451. package/lib/utils/middlewareUtils.d.ts +1 -0
  452. package/lib/utils/middlewareUtils.d.ts.map +1 -0
  453. package/lib/utils/middlewareUtils.js +10 -2
  454. package/lib/utils/sessionUtils.d.ts +1 -0
  455. package/lib/utils/sessionUtils.d.ts.map +1 -0
  456. package/lib/utils/sessionUtils.js +26 -2
  457. package/lib/utils/stripeUtils.d.ts +2 -1
  458. package/lib/utils/stripeUtils.d.ts.map +1 -0
  459. package/lib/utils/stripeUtils.js +12 -2
  460. package/lib/utils/templateUtils.d.ts +1 -0
  461. package/lib/utils/templateUtils.d.ts.map +1 -0
  462. package/lib/utils/templateUtils.js +11 -2
  463. package/lib/utils/testUtils.d.ts +1 -0
  464. package/lib/utils/testUtils.d.ts.map +1 -0
  465. package/lib/utils/testUtils.js +292 -2
  466. package/lib/utils/translationQueue.d.ts +1 -0
  467. package/lib/utils/translationQueue.d.ts.map +1 -0
  468. package/lib/utils/translationQueue.example.d.ts +1 -0
  469. package/lib/utils/translationQueue.example.d.ts.map +1 -0
  470. package/lib/utils/translationQueue.example.js +340 -2
  471. package/lib/utils/translationQueue.js +113 -2
  472. package/package.json +47 -29
@@ -1,11 +1,70 @@
1
- import{ApiGatewayManagementApi as N}from"@aws-sdk/client-apigatewaymanagementapi";import{createHash as T,parseId as u,parseString as p}from"@nlabs/utils/parsers/strings";import{aql as d}from"arangojs";import{Config as g}from"../config.js";import{useDb as I}from"../utils/arangodbUtils.js";import{getUserByToken as k}from"./users.js";import{ErrorTypes as E}from"../types/error.types.js";import{logError as R}from"../utils/analyticsUtils.js";const x=async(n,t)=>{const r="addSocket",s=p(n,32),o=p(t);try{const e=process.env.ARANGODB_DATABASE||"",a=I(e),i=await k({config:g.get(),databaseName:e},o);if(!i)throw new Error("Unauthorized");const c={socketId:s,modified:Date.now()},l={...c,_key:T(`socket-${s}`),userId:i.userId},y=d`UPSERT {userId: ${i.userId}}
2
- INSERT ${l}
3
- UPDATE ${c}
4
- IN sockets RETURN NEW`;return a.query(y).then(m=>m.next()).catch(m=>{throw R({action:r,category:"websockets",value:E.DATABASE_ERROR},m,{})})}catch{throw new Error("Unauthorized")}},B=n=>{const t=u(n),r=process.env.ARANGODB_DATABASE||"",s=I(r),o=d`FOR s IN sockets
5
- FILTER s.userId == ${t}
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}
6
56
  LIMIT 1
7
- RETURN s`;return s.query(o).then(e=>e.next()).catch(e=>{throw e})},$=n=>{const t=u(n),r=process.env.ARANGODB_DATABASE||"",s=I(r),o=d`FOR s IN sockets
8
- FILTER s.socketId == ${t}
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}
9
68
  LET user = FIRST(
10
69
  FOR u IN users
11
70
  FILTER u.sub == s.sub
@@ -13,18 +72,93 @@ import{ApiGatewayManagementApi as N}from"@aws-sdk/client-apigatewaymanagementapi
13
72
  RETURN u;
14
73
  )
15
74
  LIMIT 1
16
- RETURN MERGE(c, {user:user}`;return s.query(o).then(e=>e.next()).catch(e=>{throw e})},q=(n,t)=>{const{databaseName:r,session:{userId:s}={}}=n,o=`users/${u(s)}`,e=`conversations/${u(t)}`,a=I(r),i=d`FOR c, e IN 1..1 OUTBOUND ${o} hasConversation
17
- FILTER c._id == ${e}
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}
18
87
  LIMIT 1
19
88
  LET u = (
20
- FOR inUser, inEdge IN 1..1 INBOUND ${e} hasConversation
89
+ FOR inUser, inEdge IN 1..1 INBOUND ${convoDocId} hasConversation
21
90
  FOR n IN connections
22
91
  FILTER inUser.sub == n.sub
23
92
  RETURN n.connectionId
24
93
  )
25
- RETURN u`;return a.query(i).then(c=>c.all()).catch(c=>{throw c})},A=n=>{const t="removeSocket",r=p(n,32),s=process.env.ARANGODB_DATABASE||"",o=I(s),e=d`FOR s IN sockets
26
- FILTER s.socketId == ${r}
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}
27
106
  LIMIT 1
28
107
  REMOVE s IN sockets
29
- RETURN OLD`;return o.query(e).then(a=>a.next()).catch(a=>{throw R({action:t,category:"websockets",value:E.DATABASE_ERROR},a,{})})};class v{client;constructor(t){t&&this.setupClient(t||{})}async setupClient({requestContext:t}){if(!this.client&&t){const{apiId:r,domainName:s,stage:o}=t;let e=s;r&&(e=`${r}.execute-api.${process.env.API_REGION}.amazonaws.com`),this.client=new N({credentials:g.get("aws.credentials"),endpoint:`https://${e}/${o}`,region:g.get("aws.region")})}}async send(t,r){let s;if(t?.requestContext){await this.setupClient(t);const{socketId:o}=t.requestContext;s=o}else s=t;return await this.client.postToConnection({ConnectionId:s,Data:JSON.stringify(r)}).promise().catch(async o=>{o.statusCode===410&&await A(s)}),!0}}export{v as WebsocketClient,x as addSocket,q as getConnectionByConvo,$ as getSocketById,B as getSocketByUser,A as removeSocket};
30
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvd2Vic29ja2V0cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7QXBpR2F0ZXdheU1hbmFnZW1lbnRBcGl9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1hcGlnYXRld2F5bWFuYWdlbWVudGFwaSc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7YXFsLCBEYXRhYmFzZX0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2dldFVzZXJCeVRva2VufSBmcm9tICcuL3VzZXJzLmpzJztcblxuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7V2Vic29ja2V0Q29ubmVjdGlvbn0gZnJvbSAnLi4vdHlwZXMvd2Vic29ja2V0cy50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5cbmV4cG9ydCBjb25zdCBhZGRTb2NrZXQgPSBhc3luYyAoc29ja2V0SWQ6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZm9ybWF0VG9rZW46IHN0cmluZyA9IHBhcnNlU3RyaW5nKHRva2VuKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlTmFtZTogc3RyaW5nID0gcHJvY2Vzcy5lbnYuQVJBTkdPREJfREFUQUJBU0UgfHwgJyc7XG4gICAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlckJ5VG9rZW4oe2NvbmZpZzogQ29uZmlnLmdldCgpLCBkYXRhYmFzZU5hbWV9LCBmb3JtYXRUb2tlbik7XG5cbiAgICBpZighdXNlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmF1dGhvcml6ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGUgPSB7XG4gICAgICBzb2NrZXRJZDogZm9ybWF0U29ja2V0SWQsXG4gICAgICBtb2RpZmllZDogRGF0ZS5ub3coKVxuICAgIH07XG4gICAgY29uc3QgaW5zZXJ0ID0ge1xuICAgICAgLi4udXBkYXRlLFxuICAgICAgX2tleTogY3JlYXRlSGFzaChgc29ja2V0LSR7Zm9ybWF0U29ja2V0SWR9YCksXG4gICAgICB1c2VySWQ6IHVzZXIudXNlcklkXG4gICAgfTtcbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dXNlcklkOiAke3VzZXIudXNlcklkfX1cbiAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgIElOIHNvY2tldHMgUkVUVVJOIE5FV2A7XG5cbiAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6ICd3ZWJzb2NrZXRzJyxcbiAgICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICB9LCBlcnJvciwge30pO1xuICAgICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlVc2VyID0gKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxXZWJzb2NrZXRDb25uZWN0aW9uPiA9PiB7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFIHx8ICcnO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke2Zvcm1hdFVzZXJJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ja2V0QnlJZCA9IChzb2NrZXRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZm9ybWF0U29ja2V0SWQ6IHN0cmluZyA9IHBhcnNlSWQoc29ja2V0SWQpO1xuICBjb25zdCBkYXRhYmFzZU5hbWU6IHN0cmluZyA9IHByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFIHx8ICcnO1xuICBjb25zdCBkYXRhYmFzZTogRGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHMgSU4gc29ja2V0c1xuICAgIEZJTFRFUiBzLnNvY2tldElkID09ICR7Zm9ybWF0U29ja2V0SWR9XG4gICAgTEVUIHVzZXIgPSBGSVJTVChcbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgdS5zdWIgPT0gcy5zdWJcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiB1O1xuICAgIClcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE1FUkdFKGMsIHt1c2VyOnVzZXJ9YDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25CeUNvbnZvID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZvSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3BhcnNlSWQoc2Vzc2lvbklkKX1gO1xuICBjb25zdCBjb252b0RvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke3BhcnNlSWQoY29udm9JZCl9YDtcbiAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBjLCBlIElOIDEuLjEgT1VUQk9VTkQgJHtzZXNzaW9uRG9jSWR9IGhhc0NvbnZlcnNhdGlvblxuICBGSUxURVIgYy5faWQgPT0gJHtjb252b0RvY0lkfVxuICBMSU1JVCAxXG4gIExFVCB1ID0gKFxuICAgIEZPUiBpblVzZXIsIGluRWRnZSBJTiAxLi4xIElOQk9VTkQgJHtjb252b0RvY0lkfSBoYXNDb252ZXJzYXRpb25cbiAgICBGT1IgbiBJTiBjb25uZWN0aW9uc1xuICAgIEZJTFRFUiBpblVzZXIuc3ViID09IG4uc3ViXG4gICAgUkVUVVJOIG4uY29ubmVjdGlvbklkXG4gIClcbiAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTb2NrZXQgPSAoc29ja2V0SWQ6IHN0cmluZyk6IFByb21pc2U8V2Vic29ja2V0Q29ubmVjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdyZW1vdmVTb2NrZXQnO1xuICBjb25zdCBmb3JtYXRTb2NrZXRJZDogc3RyaW5nID0gcGFyc2VTdHJpbmcoc29ja2V0SWQsIDMyKTtcbiAgY29uc3QgZGF0YWJhc2VOYW1lOiBzdHJpbmcgPSBwcm9jZXNzLmVudi5BUkFOR09EQl9EQVRBQkFTRSB8fCAnJztcbiAgY29uc3QgZGF0YWJhc2U6IERhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBzIElOIHNvY2tldHNcbiAgICAgIEZJTFRFUiBzLnNvY2tldElkID09ICR7Zm9ybWF0U29ja2V0SWR9XG4gICAgICBMSU1JVCAxXG4gICAgICBSRU1PVkUgcyBJTiBzb2NrZXRzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogJ3dlYnNvY2tldHMnLFxuICAgICAgICB2YWx1ZTogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgfSwgZXJyb3IsIHt9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2ViU29ja2V0Q2xpZW50Q29udGV4dCB7XG4gIHJlYWRvbmx5IHJlcXVlc3RDb250ZXh0Pzoge1xuICAgIHJlYWRvbmx5IGFwaUlkOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG4gIH07XG59XG5leHBvcnQgY2xhc3MgV2Vic29ja2V0Q2xpZW50IHtcbiAgY2xpZW50O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz8pIHtcbiAgICBpZihjb25maWcpIHtcbiAgICAgIHRoaXMuc2V0dXBDbGllbnQoY29uZmlnIHx8IHt9KTtcbiAgICB9XG4gIH1cblxuICAvLyBBbGxvdyBqdXN0IHBhc3NpbmcgYSBzaW5nbGUgZXZlbnQgdG8gc2V0dXAgdGhlIGNsaWVudCBmb3IgZWFzZSBvZiB1c2VcbiAgYXN5bmMgc2V0dXBDbGllbnQoe3JlcXVlc3RDb250ZXh0fTogV2ViU29ja2V0Q2xpZW50Q29udGV4dCkge1xuICAgIGlmKCF0aGlzLmNsaWVudCAmJiByZXF1ZXN0Q29udGV4dCkge1xuICAgICAgY29uc3Qge2FwaUlkLCBkb21haW5OYW1lLCBzdGFnZX0gPSByZXF1ZXN0Q29udGV4dDtcbiAgICAgIGxldCB1cGRhdGVkRG9tYWluTmFtZTogc3RyaW5nID0gZG9tYWluTmFtZTtcblxuICAgICAgaWYoYXBpSWQpIHtcbiAgICAgICAgdXBkYXRlZERvbWFpbk5hbWUgPSBgJHthcGlJZH0uZXhlY3V0ZS1hcGkuJHtwcm9jZXNzLmVudi5BUElfUkVHSU9OfS5hbWF6b25hd3MuY29tYDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jbGllbnQgPSBuZXcgQXBpR2F0ZXdheU1hbmFnZW1lbnRBcGkoe1xuICAgICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICAgIGVuZHBvaW50OiBgaHR0cHM6Ly8ke3VwZGF0ZWREb21haW5OYW1lfS8ke3N0YWdlfWAsXG4gICAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZW5kKGNvbm5lY3Rpb24sIHBheWxvYWQpIHtcbiAgICBjb25zb2xlLmxvZyhjb25uZWN0aW9uLCBwYXlsb2FkKTtcblxuICAgIC8vIENoZWF0IGFuZCBhbGxvdyBldmVudCB0byBiZSBwYXNzZWQgaW4gdGhpcyBhbHNvIGxldHMgdXMgZGVmYXVsdCB0byBzZXR1cENsaWVudCB0b29cbiAgICBsZXQgc29ja2V0SWQ7XG5cbiAgICBpZihjb25uZWN0aW9uPy5yZXF1ZXN0Q29udGV4dCkge1xuICAgICAgYXdhaXQgdGhpcy5zZXR1cENsaWVudChjb25uZWN0aW9uKTtcbiAgICAgIGNvbnN0IHtzb2NrZXRJZDogdXBkYXRlZFNvY2tldElkfSA9IGNvbm5lY3Rpb24ucmVxdWVzdENvbnRleHQ7XG4gICAgICBzb2NrZXRJZCA9IHVwZGF0ZWRTb2NrZXRJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgc29ja2V0SWQgPSBjb25uZWN0aW9uO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3RUb0Nvbm5lY3Rpb24oe0Nvbm5lY3Rpb25JZDogc29ja2V0SWQsIERhdGE6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpfSlcbiAgICAgIC5wcm9taXNlKClcbiAgICAgIC5jYXRjaChhc3luYyAocG9zdEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHBvc3RFcnJvcikpO1xuXG4gICAgICAgIGlmKHBvc3RFcnJvci5zdGF0dXNDb2RlID09PSA0MTApIHtcbiAgICAgICAgICAvLyBEaXNjb25uZWN0IGNsaWVudFxuICAgICAgICAgIGF3YWl0IHJlbW92ZVNvY2tldChzb2NrZXRJZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsMkJBQUFBLE1BQThCLDBDQUN0QyxPQUFRLGNBQUFDLEVBQVksV0FBQUMsRUFBUyxlQUFBQyxNQUFrQiwrQkFDL0MsT0FBUSxPQUFBQyxNQUFvQixXQUc1QixPQUFRLFVBQUFDLE1BQWEsZUFFckIsT0FBUSxTQUFBQyxNQUFZLDRCQUNwQixPQUFRLGtCQUFBQyxNQUFxQixhQUU3QixPQUFRLGNBQUFDLE1BQWlCLDBCQUV6QixPQUFRLFlBQUFDLE1BQWUsNkJBRWhCLE1BQU1DLEVBQVksTUFBT0MsRUFBa0JDLElBQWdELENBQ2hHLE1BQU1DLEVBQWlCLFlBQ2pCQyxFQUF5QlgsRUFBWVEsRUFBVSxFQUFFLEVBQ2pESSxFQUFzQlosRUFBWVMsQ0FBSyxFQUU3QyxHQUFJLENBQ0YsTUFBTUksRUFBdUIsUUFBUSxJQUFJLG1CQUFxQixHQUN4REMsRUFBcUJYLEVBQU1VLENBQVksRUFDdkNFLEVBQU8sTUFBTVgsRUFBZSxDQUFDLE9BQVFGLEVBQU8sSUFBSSxFQUFHLGFBQUFXLENBQVksRUFBR0QsQ0FBVyxFQUVuRixHQUFHLENBQUNHLEVBQ0YsTUFBTSxJQUFJLE1BQU0sY0FBYyxFQUdoQyxNQUFNQyxFQUFTLENBQ2IsU0FBVUwsRUFDVixTQUFVLEtBQUssSUFBSSxDQUNyQixFQUNNTSxFQUFTLENBQ2IsR0FBR0QsRUFDSCxLQUFNbEIsRUFBVyxVQUFVYSxDQUFjLEVBQUUsRUFDM0MsT0FBUUksRUFBSyxNQUNmLEVBQ01HLEVBQW1CakIsb0JBQXNCYyxFQUFLLE1BQU07QUFBQSxlQUMvQ0UsQ0FBTTtBQUFBLGVBQ05ELENBQU07QUFBQSw2QkFHakIsT0FBT0YsRUFBUyxNQUFNSSxDQUFNLEVBQ3pCLEtBQU1DLEdBQVdBLEVBQU8sS0FBSyxDQUFDLEVBQzlCLE1BQU9DLEdBQWlCLENBQ3ZCLE1BQU1kLEVBQVMsQ0FDYixPQUFBSSxFQUNBLFNBQVUsYUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUdlLEVBQU8sQ0FBQyxDQUFDLENBQ2QsQ0FBQyxDQUNMLE1BQWUsQ0FDYixNQUFNLElBQUksTUFBTSxjQUFjLENBQ2hDLENBQ0YsRUFFYUMsRUFBbUJDLEdBQWlELENBQy9FLE1BQU1DLEVBQXVCeEIsRUFBUXVCLENBQU0sRUFDckNULEVBQXVCLFFBQVEsSUFBSSxtQkFBcUIsR0FDeERDLEVBQXFCWCxFQUFNVSxDQUFZLEVBQ3ZDSyxFQUFTakI7QUFBQSx5QkFDUXNCLENBQVk7QUFBQTtBQUFBLGNBSW5DLE9BQU9ULEVBQVMsTUFBTUksQ0FBTSxFQUN6QixLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixNQUFPQyxHQUFpQixDQUN2QixNQUFNQSxDQUNSLENBQUMsQ0FDTCxFQUVhSSxFQUFpQmhCLEdBQW1DLENBQy9ELE1BQU1HLEVBQXlCWixFQUFRUyxDQUFRLEVBQ3pDSyxFQUF1QixRQUFRLElBQUksbUJBQXFCLEdBQ3hEQyxFQUFxQlgsRUFBTVUsQ0FBWSxFQUN2Q0ssRUFBU2pCO0FBQUEsMkJBQ1VVLENBQWM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGlDQVV2QyxPQUFPRyxFQUFTLE1BQU1JLENBQU0sRUFDekIsS0FBTUMsR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUIsQ0FDdkIsTUFBTUEsQ0FDUixDQUFDLENBQ0wsRUFFYUssRUFBdUIsQ0FBQ0MsRUFBcUJDLElBQWtDLENBQzFGLEtBQU0sQ0FBQyxhQUFBZCxFQUFjLFFBQVMsQ0FBQyxPQUFRZSxDQUFTLEVBQUksQ0FBQyxDQUFDLEVBQUlGLEVBQ3BERyxFQUF1QixTQUFTOUIsRUFBUTZCLENBQVMsQ0FBQyxHQUNsREUsRUFBcUIsaUJBQWlCL0IsRUFBUTRCLENBQU8sQ0FBQyxHQUN0RGIsRUFBcUJYLEVBQU1VLENBQVksRUFDdkNLLEVBQVNqQiw4QkFBZ0M0QixDQUFZO0FBQUEsb0JBQ3pDQyxDQUFVO0FBQUE7QUFBQTtBQUFBLHlDQUdXQSxDQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQU9qRCxPQUFPaEIsRUFBUyxNQUFNSSxDQUFNLEVBQ3pCLEtBQU1DLEdBQVdBLEVBQU8sSUFBSSxDQUFDLEVBQzdCLE1BQU9DLEdBQWlCLENBQ3ZCLE1BQU1BLENBQ1IsQ0FBQyxDQUNMLEVBRWFXLEVBQWdCdkIsR0FBbUQsQ0FDOUUsTUFBTUUsRUFBaUIsZUFDakJDLEVBQXlCWCxFQUFZUSxFQUFVLEVBQUUsRUFDakRLLEVBQXVCLFFBQVEsSUFBSSxtQkFBcUIsR0FDeERDLEVBQXFCWCxFQUFNVSxDQUFZLEVBQ3ZDSyxFQUFTakI7QUFBQSw2QkFDWVUsQ0FBYztBQUFBO0FBQUE7QUFBQSxrQkFLekMsT0FBT0csRUFBUyxNQUFNSSxDQUFNLEVBQ3pCLEtBQU1DLEdBQVdBLEVBQU8sS0FBSyxDQUFDLEVBQzlCLE1BQU9DLEdBQWlCLENBQ3ZCLE1BQU1kLEVBQVMsQ0FDYixPQUFBSSxFQUNBLFNBQVUsYUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUdlLEVBQU8sQ0FBQyxDQUFDLENBQ2QsQ0FBQyxDQUNMLEVBU08sTUFBTVksQ0FBZ0IsQ0FDM0IsT0FFQSxZQUFZQyxFQUFTLENBQ2hCQSxHQUNELEtBQUssWUFBWUEsR0FBVSxDQUFDLENBQUMsQ0FFakMsQ0FHQSxNQUFNLFlBQVksQ0FBQyxlQUFBQyxDQUFjLEVBQTJCLENBQzFELEdBQUcsQ0FBQyxLQUFLLFFBQVVBLEVBQWdCLENBQ2pDLEtBQU0sQ0FBQyxNQUFBQyxFQUFPLFdBQUFDLEVBQVksTUFBQUMsQ0FBSyxFQUFJSCxFQUNuQyxJQUFJSSxFQUE0QkYsRUFFN0JELElBQ0RHLEVBQW9CLEdBQUdILENBQUssZ0JBQWdCLFFBQVEsSUFBSSxVQUFVLGtCQUdwRSxLQUFLLE9BQVMsSUFBSXRDLEVBQXdCLENBQ3hDLFlBQWFLLEVBQU8sSUFBSSxpQkFBaUIsRUFDekMsU0FBVSxXQUFXb0MsQ0FBaUIsSUFBSUQsQ0FBSyxHQUMvQyxPQUFRbkMsRUFBTyxJQUFJLFlBQVksQ0FDakMsQ0FBQyxDQUNILENBQ0YsQ0FFQSxNQUFNLEtBQUtxQyxFQUFZQyxFQUFTLENBSTlCLElBQUloQyxFQUVKLEdBQUcrQixHQUFZLGVBQWdCLENBQzdCLE1BQU0sS0FBSyxZQUFZQSxDQUFVLEVBQ2pDLEtBQU0sQ0FBQyxTQUFVRSxDQUFlLEVBQUlGLEVBQVcsZUFDL0MvQixFQUFXaUMsQ0FDYixNQUNFakMsRUFBVytCLEVBR2IsYUFBTSxLQUFLLE9BQU8saUJBQWlCLENBQUMsYUFBYy9CLEVBQVUsS0FBTSxLQUFLLFVBQVVnQyxDQUFPLENBQUMsQ0FBQyxFQUN2RixRQUFRLEVBQ1IsTUFBTSxNQUFPRSxHQUFjLENBR3ZCQSxFQUFVLGFBQWUsS0FFMUIsTUFBTVgsRUFBYXZCLENBQVEsQ0FFL0IsQ0FBQyxFQUVJLEVBQ1QsQ0FDRiIsCiAgIm5hbWVzIjogWyJBcGlHYXRld2F5TWFuYWdlbWVudEFwaSIsICJjcmVhdGVIYXNoIiwgInBhcnNlSWQiLCAicGFyc2VTdHJpbmciLCAiYXFsIiwgIkNvbmZpZyIsICJ1c2VEYiIsICJnZXRVc2VyQnlUb2tlbiIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgImFkZFNvY2tldCIsICJzb2NrZXRJZCIsICJ0b2tlbiIsICJhY3Rpb24iLCAiZm9ybWF0U29ja2V0SWQiLCAiZm9ybWF0VG9rZW4iLCAiZGF0YWJhc2VOYW1lIiwgImRhdGFiYXNlIiwgInVzZXIiLCAidXBkYXRlIiwgImluc2VydCIsICJhcWxRcnkiLCAiY3Vyc29yIiwgImVycm9yIiwgImdldFNvY2tldEJ5VXNlciIsICJ1c2VySWQiLCAiZm9ybWF0VXNlcklkIiwgImdldFNvY2tldEJ5SWQiLCAiZ2V0Q29ubmVjdGlvbkJ5Q29udm8iLCAiY29udGV4dCIsICJjb252b0lkIiwgInNlc3Npb25JZCIsICJzZXNzaW9uRG9jSWQiLCAiY29udm9Eb2NJZCIsICJyZW1vdmVTb2NrZXQiLCAiV2Vic29ja2V0Q2xpZW50IiwgImNvbmZpZyIsICJyZXF1ZXN0Q29udGV4dCIsICJhcGlJZCIsICJkb21haW5OYW1lIiwgInN0YWdlIiwgInVwZGF0ZWREb21haW5OYW1lIiwgImNvbm5lY3Rpb24iLCAicGF5bG9hZCIsICJ1cGRhdGVkU29ja2V0SWQiLCAicG9zdEVycm9yIl0KfQo=
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+IHtcbiAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocG9zdEVycm9yKSk7XG5cbiAgICAgICAgaWYocG9zdEVycm9yLnN0YXR1c0NvZGUgPT09IDQxMCkge1xuICAgICAgICAgIC8vIERpc2Nvbm5lY3QgY2xpZW50XG4gICAgICAgICAgYXdhaXQgcmVtb3ZlU29ja2V0KHNvY2tldElkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFwaUdhdGV3YXlNYW5hZ2VtZW50QXBpIiwiY3JlYXRlSGFzaCIsInBhcnNlSWQiLCJwYXJzZVN0cmluZyIsImFxbCIsIkNvbmZpZyIsInVzZURiIiwiZ2V0VXNlckJ5VG9rZW4iLCJFcnJvclR5cGVzIiwibG9nRXJyb3IiLCJhZGRTb2NrZXQiLCJzb2NrZXRJZCIsInRva2VuIiwiYWN0aW9uIiwiZm9ybWF0U29ja2V0SWQiLCJmb3JtYXRUb2tlbiIsImRhdGFiYXNlTmFtZSIsInByb2Nlc3MiLCJlbnYiLCJBUkFOR09EQl9EQVRBQkFTRSIsImRhdGFiYXNlIiwidXNlciIsImNvbmZpZyIsImdldCIsIkVycm9yIiwidXBkYXRlIiwibW9kaWZpZWQiLCJEYXRlIiwibm93IiwiaW5zZXJ0IiwiX2tleSIsInVzZXJJZCIsImFxbFFyeSIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJjYXRjaCIsImVycm9yIiwiY2F0ZWdvcnkiLCJ2YWx1ZSIsIkRBVEFCQVNFX0VSUk9SIiwiZ2V0U29ja2V0QnlVc2VyIiwiZm9ybWF0VXNlcklkIiwiZ2V0U29ja2V0QnlJZCIsImdldENvbm5lY3Rpb25CeUNvbnZvIiwiY29udGV4dCIsImNvbnZvSWQiLCJzZXNzaW9uIiwic2Vzc2lvbklkIiwic2Vzc2lvbkRvY0lkIiwiY29udm9Eb2NJZCIsImFsbCIsInJlbW92ZVNvY2tldCIsIldlYnNvY2tldENsaWVudCIsImNsaWVudCIsInNldHVwQ2xpZW50IiwicmVxdWVzdENvbnRleHQiLCJhcGlJZCIsImRvbWFpbk5hbWUiLCJzdGFnZSIsInVwZGF0ZWREb21haW5OYW1lIiwiQVBJX1JFR0lPTiIsImNyZWRlbnRpYWxzIiwiZW5kcG9pbnQiLCJyZWdpb24iLCJzZW5kIiwiY29ubmVjdGlvbiIsInBheWxvYWQiLCJjb25zb2xlIiwibG9nIiwidXBkYXRlZFNvY2tldElkIiwicG9zdFRvQ29ubmVjdGlvbiIsIkNvbm5lY3Rpb25JZCIsIkRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwicHJvbWlzZSIsInBvc3RFcnJvciIsInN0YXR1c0NvZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLHVCQUF1QixRQUFPLDBDQUEwQztBQUNoRixTQUFRQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUM5RSxTQUFRQyxHQUFHLFFBQWlCLFdBQVc7QUFHdkMsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsS0FBSyxRQUFPLDRCQUE0QjtBQUNoRCxTQUFRQyxjQUFjLFFBQU8sYUFBYTtBQUUxQyxTQUFRQyxVQUFVLFFBQU8sMEJBQTBCO0FBRW5ELFNBQVFDLFFBQVEsUUFBTyw2QkFBNkI7QUFFcEQsT0FBTyxNQUFNQyxZQUFZLE9BQU9DLFVBQWtCQztJQUNoRCxNQUFNQyxTQUFpQjtJQUN2QixNQUFNQyxpQkFBeUJYLFlBQVlRLFVBQVU7SUFDckQsTUFBTUksY0FBc0JaLFlBQVlTO0lBRXhDLElBQUk7UUFDRixNQUFNSSxlQUF1QkMsUUFBUUMsR0FBRyxDQUFDQyxpQkFBaUIsSUFBSTtRQUM5RCxNQUFNQyxXQUFxQmQsTUFBTVU7UUFDakMsTUFBTUssT0FBTyxNQUFNZCxlQUFlO1lBQUNlLFFBQVFqQixPQUFPa0IsR0FBRztZQUFJUDtRQUFZLEdBQUdEO1FBRXhFLElBQUcsQ0FBQ00sTUFBTTtZQUNSLE1BQU0sSUFBSUcsTUFBTTtRQUNsQjtRQUVBLE1BQU1DLFNBQVM7WUFDYmQsVUFBVUc7WUFDVlksVUFBVUMsS0FBS0MsR0FBRztRQUNwQjtRQUNBLE1BQU1DLFNBQVM7WUFDYixHQUFHSixNQUFNO1lBQ1RLLE1BQU03QixXQUFXLENBQUMsT0FBTyxFQUFFYSxnQkFBZ0I7WUFDM0NpQixRQUFRVixLQUFLVSxNQUFNO1FBQ3JCO1FBQ0EsTUFBTUMsU0FBbUI1QixHQUFHLENBQUMsZ0JBQWdCLEVBQUVpQixLQUFLVSxNQUFNLENBQUM7YUFDbEQsRUFBRUYsT0FBTzthQUNULEVBQUVKLE9BQU87MkJBQ0ssQ0FBQztRQUV4QixPQUFPTCxTQUFTYSxLQUFLLENBQUNELFFBQ25CRSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT0MsSUFBSSxJQUM1QkMsS0FBSyxDQUFDLENBQUNDO1lBQ04sTUFBTTdCLFNBQVM7Z0JBQ2JJO2dCQUNBMEIsVUFBVTtnQkFDVkMsT0FBT2hDLFdBQVdpQyxjQUFjO1lBQ2xDLEdBQUdILE9BQU8sQ0FBQztRQUNiO0lBQ0osRUFBRSxPQUFNQSxPQUFPO1FBQ2IsTUFBTSxJQUFJZCxNQUFNO0lBQ2xCO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTWtCLGtCQUFrQixDQUFDWDtJQUM5QixNQUFNWSxlQUF1QnpDLFFBQVE2QjtJQUNyQyxNQUFNZixlQUF1QkMsUUFBUUMsR0FBRyxDQUFDQyxpQkFBaUIsSUFBSTtJQUM5RCxNQUFNQyxXQUFxQmQsTUFBTVU7SUFDakMsTUFBTWdCLFNBQVM1QixHQUFHLENBQUM7dUJBQ0UsRUFBRXVDLGFBQWE7O1lBRTFCLENBQUM7SUFFWCxPQUFPdkIsU0FBU2EsS0FBSyxDQUFDRCxRQUNuQkUsSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLElBQUksSUFDNUJDLEtBQUssQ0FBQyxDQUFDQztRQUNOLE1BQU1BO0lBQ1I7QUFDSixFQUFFO0FBRUYsT0FBTyxNQUFNTSxnQkFBZ0IsQ0FBQ2pDO0lBQzVCLE1BQU1HLGlCQUF5QlosUUFBUVM7SUFDdkMsTUFBTUssZUFBdUJDLFFBQVFDLEdBQUcsQ0FBQ0MsaUJBQWlCLElBQUk7SUFDOUQsTUFBTUMsV0FBcUJkLE1BQU1VO0lBQ2pDLE1BQU1nQixTQUFTNUIsR0FBRyxDQUFDO3lCQUNJLEVBQUVVLGVBQWU7Ozs7Ozs7OytCQVFYLENBQUM7SUFFOUIsT0FBT00sU0FBU2EsS0FBSyxDQUFDRCxRQUNuQkUsSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLElBQUksSUFDNUJDLEtBQUssQ0FBQyxDQUFDQztRQUNOLE1BQU1BO0lBQ1I7QUFDSixFQUFFO0FBRUYsT0FBTyxNQUFNTyx1QkFBdUIsQ0FBQ0MsU0FBcUJDO0lBQ3hELE1BQU0sRUFBQy9CLFlBQVksRUFBRWdDLFNBQVMsRUFBQ2pCLFFBQVFrQixTQUFTLEVBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxHQUFHSDtJQUMxRCxNQUFNSSxlQUF1QixDQUFDLE1BQU0sRUFBRWhELFFBQVErQyxZQUFZO0lBQzFELE1BQU1FLGFBQXFCLENBQUMsY0FBYyxFQUFFakQsUUFBUTZDLFVBQVU7SUFDOUQsTUFBTTNCLFdBQXFCZCxNQUFNVTtJQUNqQyxNQUFNZ0IsU0FBUzVCLEdBQUcsQ0FBQywwQkFBMEIsRUFBRThDLGFBQWE7a0JBQzVDLEVBQUVDLFdBQVc7Ozt1Q0FHUSxFQUFFQSxXQUFXOzs7OztVQUsxQyxDQUFDO0lBRVQsT0FBTy9CLFNBQVNhLEtBQUssQ0FBQ0QsUUFDbkJFLElBQUksQ0FBQyxDQUFDQyxTQUFXQSxPQUFPaUIsR0FBRyxJQUMzQmYsS0FBSyxDQUFDLENBQUNDO1FBQ04sTUFBTUE7SUFDUjtBQUNKLEVBQUU7QUFFRixPQUFPLE1BQU1lLGVBQWUsQ0FBQzFDO0lBQzNCLE1BQU1FLFNBQWlCO0lBQ3ZCLE1BQU1DLGlCQUF5QlgsWUFBWVEsVUFBVTtJQUNyRCxNQUFNSyxlQUF1QkMsUUFBUUMsR0FBRyxDQUFDQyxpQkFBaUIsSUFBSTtJQUM5RCxNQUFNQyxXQUFxQmQsTUFBTVU7SUFDakMsTUFBTWdCLFNBQVM1QixHQUFHLENBQUM7MkJBQ00sRUFBRVUsZUFBZTs7O2dCQUc1QixDQUFDO0lBRWYsT0FBT00sU0FBU2EsS0FBSyxDQUFDRCxRQUNuQkUsSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9DLElBQUksSUFDNUJDLEtBQUssQ0FBQyxDQUFDQztRQUNOLE1BQU03QixTQUFTO1lBQ2JJO1lBQ0EwQixVQUFVO1lBQ1ZDLE9BQU9oQyxXQUFXaUMsY0FBYztRQUNsQyxHQUFHSCxPQUFPLENBQUM7SUFDYjtBQUNKLEVBQUU7QUFTRixPQUFPLE1BQU1nQjtJQUNYQyxPQUFPO0lBRVAsWUFBWWpDLE1BQU8sQ0FBRTtRQUNuQixJQUFHQSxRQUFRO1lBQ1QsSUFBSSxDQUFDa0MsV0FBVyxDQUFDbEMsVUFBVSxDQUFDO1FBQzlCO0lBQ0Y7SUFFQSx3RUFBd0U7SUFDeEUsTUFBTWtDLFlBQVksRUFBQ0MsY0FBYyxFQUF5QixFQUFFO1FBQzFELElBQUcsQ0FBQyxJQUFJLENBQUNGLE1BQU0sSUFBSUUsZ0JBQWdCO1lBQ2pDLE1BQU0sRUFBQ0MsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBQyxHQUFHSDtZQUNuQyxJQUFJSSxvQkFBNEJGO1lBRWhDLElBQUdELE9BQU87Z0JBQ1JHLG9CQUFvQixHQUFHSCxNQUFNLGFBQWEsRUFBRXpDLFFBQVFDLEdBQUcsQ0FBQzRDLFVBQVUsQ0FBQyxjQUFjLENBQUM7WUFDcEY7WUFFQSxJQUFJLENBQUNQLE1BQU0sR0FBRyxJQUFJdkQsd0JBQXdCO2dCQUN4QytELGFBQWExRCxPQUFPa0IsR0FBRyxDQUFDO2dCQUN4QnlDLFVBQVUsQ0FBQyxRQUFRLEVBQUVILGtCQUFrQixDQUFDLEVBQUVELE9BQU87Z0JBQ2pESyxRQUFRNUQsT0FBT2tCLEdBQUcsQ0FBQztZQUNyQjtRQUNGO0lBQ0Y7SUFFQSxNQUFNMkMsS0FBS0MsVUFBVSxFQUFFQyxPQUFPLEVBQUU7UUFDOUJDLFFBQVFDLEdBQUcsQ0FBQ0gsWUFBWUM7UUFFeEIscUZBQXFGO1FBQ3JGLElBQUl6RDtRQUVKLElBQUd3RCxZQUFZVixnQkFBZ0I7WUFDN0IsTUFBTSxJQUFJLENBQUNELFdBQVcsQ0FBQ1c7WUFDdkIsTUFBTSxFQUFDeEQsVUFBVTRELGVBQWUsRUFBQyxHQUFHSixXQUFXVixjQUFjO1lBQzdEOUMsV0FBVzREO1FBQ2IsT0FBTztZQUNMNUQsV0FBV3dEO1FBQ2I7UUFFQSxNQUFNLElBQUksQ0FBQ1osTUFBTSxDQUFDaUIsZ0JBQWdCLENBQUM7WUFBQ0MsY0FBYzlEO1lBQVUrRCxNQUFNQyxLQUFLQyxTQUFTLENBQUNSO1FBQVEsR0FDdEZTLE9BQU8sR0FDUHhDLEtBQUssQ0FBQyxPQUFPeUM7WUFDWlQsUUFBUUMsR0FBRyxDQUFDSyxLQUFLQyxTQUFTLENBQUNFO1lBRTNCLElBQUdBLFVBQVVDLFVBQVUsS0FBSyxLQUFLO2dCQUMvQixvQkFBb0I7Z0JBQ3BCLE1BQU0xQixhQUFhMUM7WUFDckI7UUFDRjtRQUVGLE9BQU87SUFDVDtBQUNGIn0=
@@ -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"}
@@ -1,2 +1,70 @@
1
- import{parseNum as d}from"@nlabs/utils/parsers/numbers";import{parseArangoId as m,parseId as p}from"@nlabs/utils/parsers/strings";import{z as r}from"zod";import{removeEmptyKeys as c}from"../utils/adapterUtils.js";class i extends Error{constructor(e,n){super(e);this.field=n;this.name="ArangoValidationError"}}const u=r.object({_from:r.string().optional(),_id:r.string().optional(),_key:r.string().optional(),_oldRev:r.string().optional(),_rev:r.string().optional(),_to:r.string().optional(),added:r.number().optional(),id:r.string().optional(),modified:r.number().optional()}).passthrough(),T=t=>{try{return u.parse(t)}catch(o){if(o instanceof r.ZodError){const e=o.issues.map(n=>`${n.path.join(".")}: ${n.message}`).join(", ");throw new i(`Document validation failed: ${e}`)}throw o}},_=t=>t,w=t=>{try{return f(t)}catch(o){throw o instanceof i?o:new i(`Document parsing failed: ${o instanceof Error?o.message:"Unknown error"}`)}},f=t=>{const{_id:o,_key:e,added:n,id:a,modified:s}=t;return c({...t,...o&&{_id:m(o)},...e&&{_key:p(e)},...n!==void 0&&{added:d(n,13)},...(o||a)&&{id:m(o||a)},...s!==void 0&&{modified:d(s,13)}})};export{i as ArangoValidationError,_ as formatDocumentOutput,w as parseDocument,T as validateDocumentInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2FyYW5nb0FkYXB0ZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7cGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL251bWJlcnMnO1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7en0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtEb2N1bWVudFR5cGV9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB7cmVtb3ZlRW1wdHlLZXlzfSBmcm9tICcuLi91dGlscy9hZGFwdGVyVXRpbHMuanMnO1xuXG5leHBvcnQgY2xhc3MgQXJhbmdvVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdBcmFuZ29WYWxpZGF0aW9uRXJyb3InO1xuICB9XG59XG5cbmNvbnN0IERvY3VtZW50SW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIF9mcm9tOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfa2V5OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIF9vbGRSZXY6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgX3Jldjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBfdG86IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYWRkZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbW9kaWZpZWQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKVxufSkucGFzc3Rocm91Z2goKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlRG9jdW1lbnRJbnB1dCA9IChkb2M6IHVua25vd24pOiBEb2N1bWVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IERvY3VtZW50SW5wdXRTY2hlbWEucGFyc2UoZG9jKTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIERvY3VtZW50VHlwZTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2Ygei5ab2RFcnJvcikge1xuICAgICAgY29uc3QgZmllbGRFcnJvcnMgPSBlcnJvci5pc3N1ZXMubWFwKChlKSA9PiBgJHtlLnBhdGguam9pbignLicpfTogJHtlLm1lc3NhZ2V9YCkuam9pbignLCAnKTtcbiAgICAgIHRocm93IG5ldyBBcmFuZ29WYWxpZGF0aW9uRXJyb3IoYERvY3VtZW50IHZhbGlkYXRpb24gZmFpbGVkOiAke2ZpZWxkRXJyb3JzfWApO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGZvcm1hdERvY3VtZW50T3V0cHV0ID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IGRvYztcblxuZXhwb3J0IGNvbnN0IHBhcnNlRG9jdW1lbnQgPSAoZG9jOiBEb2N1bWVudFR5cGUpOiBEb2N1bWVudFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uKGRvYyk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGlmKGVycm9yIGluc3RhbmNlb2YgQXJhbmdvVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEFyYW5nb1ZhbGlkYXRpb25FcnJvcihgRG9jdW1lbnQgcGFyc2luZyBmYWlsZWQ6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcid9YCk7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Eb2N1bWVudFRyYW5zZm9ybWF0aW9uID0gKGRvYzogRG9jdW1lbnRUeXBlKTogRG9jdW1lbnRUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIF9pZCxcbiAgICBfa2V5LFxuICAgIGFkZGVkLFxuICAgIGlkLFxuICAgIG1vZGlmaWVkXG4gIH0gPSBkb2M7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSByZW1vdmVFbXB0eUtleXMoe1xuICAgIC4uLmRvYyxcbiAgICAuLi4oX2lkICYmIHtfaWQ6IHBhcnNlQXJhbmdvSWQoX2lkKX0pLFxuICAgIC4uLihfa2V5ICYmIHtfa2V5OiBwYXJzZUlkKF9rZXkpfSksXG4gICAgLi4uKGFkZGVkICE9PSB1bmRlZmluZWQgJiYge2FkZGVkOiBwYXJzZU51bShhZGRlZCwgMTMpfSksXG4gICAgLi4uKChfaWQgfHwgaWQpICYmIHtpZDogcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQpfSksXG4gICAgLi4uKG1vZGlmaWVkICE9PSB1bmRlZmluZWQgJiYge21vZGlmaWVkOiBwYXJzZU51bShtb2RpZmllZCwgMTMpfSlcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLFlBQUFBLE1BQWUsK0JBQ3ZCLE9BQVEsaUJBQUFDLEVBQWUsV0FBQUMsTUFBYywrQkFDckMsT0FBUSxLQUFBQyxNQUFRLE1BR2hCLE9BQVEsbUJBQUFDLE1BQXNCLDJCQUV2QixNQUFNQyxVQUE4QixLQUFNLENBQy9DLFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyx1QkFDZCxDQUNGLENBRUEsTUFBTUMsRUFBc0JMLEVBQUUsT0FBTyxDQUNuQyxNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLElBQUtBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDekIsS0FBTUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUMxQixRQUFTQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzdCLEtBQU1BLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDMUIsSUFBS0EsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUN6QixNQUFPQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQzNCLEdBQUlBLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFDeEIsU0FBVUEsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUNoQyxDQUFDLEVBQUUsWUFBWSxFQUVGTSxFQUF5QkMsR0FBK0IsQ0FDbkUsR0FBSSxDQUVGLE9BRGtCRixFQUFvQixNQUFNRSxDQUFHLENBRWpELE9BQVFDLEVBQU8sQ0FDYixHQUFHQSxhQUFpQlIsRUFBRSxTQUFVLENBQzlCLE1BQU1TLEVBQWNELEVBQU0sT0FBTyxJQUFLRSxHQUFNLEdBQUdBLEVBQUUsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLQSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUMxRixNQUFNLElBQUlSLEVBQXNCLCtCQUErQk8sQ0FBVyxFQUFFLENBQzlFLENBQ0EsTUFBTUQsQ0FDUixDQUNGLEVBRWFHLEVBQXdCSixHQUFvQ0EsRUFFNURLLEVBQWlCTCxHQUFvQyxDQUNoRSxHQUFJLENBRUYsT0FEZU0sRUFBOEJOLENBQUcsQ0FFbEQsT0FBUUMsRUFBTyxDQUNiLE1BQUdBLGFBQWlCTixFQUNaTSxFQUVGLElBQUlOLEVBQXNCLDRCQUE0Qk0sYUFBaUIsTUFBUUEsRUFBTSxRQUFVLGVBQWUsRUFBRSxDQUN4SCxDQUNGLEVBRU1LLEVBQWlDTixHQUFvQyxDQUN6RSxLQUFNLENBQ0osSUFBQU8sRUFDQSxLQUFBQyxFQUNBLE1BQUFDLEVBQ0EsR0FBQUMsRUFDQSxTQUFBQyxDQUNGLEVBQUlYLEVBV0osT0FUb0JOLEVBQWdCLENBQ2xDLEdBQUdNLEVBQ0gsR0FBSU8sR0FBTyxDQUFDLElBQUtoQixFQUFjZ0IsQ0FBRyxDQUFDLEVBQ25DLEdBQUlDLEdBQVEsQ0FBQyxLQUFNaEIsRUFBUWdCLENBQUksQ0FBQyxFQUNoQyxHQUFJQyxJQUFVLFFBQWEsQ0FBQyxNQUFPbkIsRUFBU21CLEVBQU8sRUFBRSxDQUFDLEVBQ3RELElBQUtGLEdBQU9HLElBQU8sQ0FBQyxHQUFJbkIsRUFBY2dCLEdBQU9HLENBQUUsQ0FBQyxFQUNoRCxHQUFJQyxJQUFhLFFBQWEsQ0FBQyxTQUFVckIsRUFBU3FCLEVBQVUsRUFBRSxDQUFDLENBQ2pFLENBQUMsQ0FHSCIsCiAgIm5hbWVzIjogWyJwYXJzZU51bSIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlSWQiLCAieiIsICJyZW1vdmVFbXB0eUtleXMiLCAiQXJhbmdvVmFsaWRhdGlvbkVycm9yIiwgIm1lc3NhZ2UiLCAiZmllbGQiLCAiRG9jdW1lbnRJbnB1dFNjaGVtYSIsICJ2YWxpZGF0ZURvY3VtZW50SW5wdXQiLCAiZG9jIiwgImVycm9yIiwgImZpZWxkRXJyb3JzIiwgImUiLCAiZm9ybWF0RG9jdW1lbnRPdXRwdXQiLCAicGFyc2VEb2N1bWVudCIsICJwZXJmb3JtRG9jdW1lbnRUcmFuc2Zvcm1hdGlvbiIsICJfaWQiLCAiX2tleSIsICJhZGRlZCIsICJpZCIsICJtb2RpZmllZCJdCn0K
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"}
@@ -1,2 +1,108 @@
1
- import{parseArangoId as C,parseId as d,parseString as r}from"@nlabs/utils/parsers/strings";import{z as t}from"zod";import{removeEmptyKeys as f}from"../utils/adapterUtils.js";import{parseDocument as b}from"./arangoAdapter.js";class l extends Error{constructor(n,s){super(n);this.field=s;this.name="ContentValidationError"}}const I=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{message:"Locale must be one of: en, es, fr, de, pt, it"}),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional(),userId:t.string().optional()}),T=t.object({contentId:t.string().optional(),key:t.string().min(1,"Key is required").max(200,"Key must be less than 200 characters"),locale:t.enum(["en","es","fr","de","pt","it"],{message:"Locale must be one of: en, es, fr, de, pt, it"}).optional(),content:t.string().min(1,"Content is required").max(1e4,"Content must be less than 10000 characters"),description:t.string().max(500,"Description must be less than 500 characters").optional(),category:t.string().max(100,"Category must be less than 100 characters").optional(),isActive:t.boolean().optional()}),K=o=>{try{return I.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.issues[0]?.path.join("."),s=e.issues[0]?.message||"Validation failed";throw new l(s,n)}throw e}},j=o=>{try{return T.parse(o)}catch(e){if(e instanceof t.ZodError){const n=e.issues[0]?.path.join("."),s=e.issues[0]?.message||"Validation failed";throw new l(s,n)}throw e}},x=o=>{const{_id:e,_key:n,contentId:s,id:a,key:u,locale:y,content:g,description:i,category:c,isActive:p,userId:m}=o,h={...b(o),...(n||s)&&{contentId:d(n||s)},...(e||a||n||s)&&{id:C(e||a||`content/${n||s}`)},key:r(u,200),locale:y,content:r(g,1e4),...i&&{description:r(i,500)},...c&&{category:r(c,100)},...p!==void 0&&{isActive:p},...m&&{userId:d(m)}};return f(h)},q=o=>x(o);export{l as ContentValidationError,K as parseContent,q as parseContentFromDb,j as parseContentInput};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FkYXB0ZXJzL2NvbnRlbnRBZGFwdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUFyYW5nb0lkLCBwYXJzZUlkLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge3p9IGZyb20gJ3pvZCc7XG5cbmltcG9ydCB7Q29udGVudElucHV0VHlwZSwgQ29udGVudFR5cGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMuanMnO1xuaW1wb3J0IHtyZW1vdmVFbXB0eUtleXN9IGZyb20gJy4uL3V0aWxzL2FkYXB0ZXJVdGlscy5qcyc7XG5pbXBvcnQge3BhcnNlRG9jdW1lbnR9IGZyb20gJy4vYXJhbmdvQWRhcHRlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBDb250ZW50VmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyBmaWVsZD86IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdDb250ZW50VmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG5jb25zdCBjb250ZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5OiB6LnN0cmluZygpLm1pbigxLCAnS2V5IGlzIHJlcXVpcmVkJykubWF4KDIwMCwgJ0tleSBtdXN0IGJlIGxlc3MgdGhhbiAyMDAgY2hhcmFjdGVycycpLFxuICBsb2NhbGU6IHouZW51bShbJ2VuJywgJ2VzJywgJ2ZyJywgJ2RlJywgJ3B0JywgJ2l0J10sIHtcbiAgICBtZXNzYWdlOiAnTG9jYWxlIG11c3QgYmUgb25lIG9mOiBlbiwgZXMsIGZyLCBkZSwgcHQsIGl0J1xuICB9KSxcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoMTAwMDAsICdDb250ZW50IG11c3QgYmUgbGVzcyB0aGFuIDEwMDAwIGNoYXJhY3RlcnMnKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubWF4KDUwMCwgJ0Rlc2NyaXB0aW9uIG11c3QgYmUgbGVzcyB0aGFuIDUwMCBjaGFyYWN0ZXJzJykub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWF4KDEwMCwgJ0NhdGVnb3J5IG11c3QgYmUgbGVzcyB0aGFuIDEwMCBjaGFyYWN0ZXJzJykub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IHouYm9vbGVhbigpLm9wdGlvbmFsKCksXG4gIHVzZXJJZDogei5zdHJpbmcoKS5vcHRpb25hbCgpXG59KTtcblxuY29uc3QgY29udGVudElucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICBjb250ZW50SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5OiB6LnN0cmluZygpLm1pbigxLCAnS2V5IGlzIHJlcXVpcmVkJykubWF4KDIwMCwgJ0tleSBtdXN0IGJlIGxlc3MgdGhhbiAyMDAgY2hhcmFjdGVycycpLFxuICBsb2NhbGU6IHouZW51bShbJ2VuJywgJ2VzJywgJ2ZyJywgJ2RlJywgJ3B0JywgJ2l0J10sIHtcbiAgICBtZXNzYWdlOiAnTG9jYWxlIG11c3QgYmUgb25lIG9mOiBlbiwgZXMsIGZyLCBkZSwgcHQsIGl0J1xuICB9KS5vcHRpb25hbCgpLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heCgxMDAwMCwgJ0NvbnRlbnQgbXVzdCBiZSBsZXNzIHRoYW4gMTAwMDAgY2hhcmFjdGVycycpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoNTAwLCAnRGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gNTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5tYXgoMTAwLCAnQ2F0ZWdvcnkgbXVzdCBiZSBsZXNzIHRoYW4gMTAwIGNoYXJhY3RlcnMnKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKVxufSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUNvbnRlbnQgPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdmFsaWRhdGVkID0gY29udGVudFNjaGVtYS5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIENvbnRlbnRUeXBlO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgaWYoZXJyb3IgaW5zdGFuY2VvZiB6LlpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaWVsZCA9IGVycm9yLmlzc3Vlc1swXT8ucGF0aC5qb2luKCcuJyk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IuaXNzdWVzWzBdPy5tZXNzYWdlIHx8ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICB0aHJvdyBuZXcgQ29udGVudFZhbGlkYXRpb25FcnJvcihtZXNzYWdlLCBmaWVsZCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VDb250ZW50SW5wdXQgPSAoY29udGVudDogQ29udGVudElucHV0VHlwZSk6IENvbnRlbnRJbnB1dFR5cGUgPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHZhbGlkYXRlZCA9IGNvbnRlbnRJbnB1dFNjaGVtYS5wYXJzZShjb250ZW50KTtcbiAgICByZXR1cm4gdmFsaWRhdGVkIGFzIENvbnRlbnRJbnB1dFR5cGU7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBpZihlcnJvciBpbnN0YW5jZW9mIHouWm9kRXJyb3IpIHtcbiAgICAgIGNvbnN0IGZpZWxkID0gZXJyb3IuaXNzdWVzWzBdPy5wYXRoLmpvaW4oJy4nKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5pc3N1ZXNbMF0/Lm1lc3NhZ2UgfHwgJ1ZhbGlkYXRpb24gZmFpbGVkJztcbiAgICAgIHRocm93IG5ldyBDb250ZW50VmFsaWRhdGlvbkVycm9yKG1lc3NhZ2UsIGZpZWxkKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmNvbnN0IHBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24gPSAoY29udGVudDogQ29udGVudFR5cGUpOiBDb250ZW50VHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBfaWQsXG4gICAgX2tleSxcbiAgICBjb250ZW50SWQsXG4gICAgaWQsXG4gICAga2V5LFxuICAgIGxvY2FsZSxcbiAgICBjb250ZW50OiBjb250ZW50VGV4dCxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjYXRlZ29yeSxcbiAgICBpc0FjdGl2ZSxcbiAgICB1c2VySWRcbiAgfSA9IGNvbnRlbnQ7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWQgPSB7XG4gICAgLi4ucGFyc2VEb2N1bWVudChjb250ZW50KSxcbiAgICAuLi4oKF9rZXkgfHwgY29udGVudElkKSAmJiB7Y29udGVudElkOiBwYXJzZUlkKF9rZXkgfHwgY29udGVudElkKX0pLFxuICAgIC4uLigoX2lkIHx8IGlkIHx8IF9rZXkgfHwgY29udGVudElkKSAmJiB7aWQ6IHBhcnNlQXJhbmdvSWQoX2lkIHx8IGlkIHx8IGBjb250ZW50LyR7X2tleSB8fCBjb250ZW50SWR9YCl9KSxcbiAgICBrZXk6IHBhcnNlU3RyaW5nKGtleSwgMjAwKSxcbiAgICBsb2NhbGUsXG4gICAgY29udGVudDogcGFyc2VTdHJpbmcoY29udGVudFRleHQsIDEwMDAwKSxcbiAgICAuLi4oZGVzY3JpcHRpb24gJiYge2Rlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKX0pLFxuICAgIC4uLihjYXRlZ29yeSAmJiB7Y2F0ZWdvcnk6IHBhcnNlU3RyaW5nKGNhdGVnb3J5LCAxMDApfSksXG4gICAgLi4uKGlzQWN0aXZlICE9PSB1bmRlZmluZWQgJiYge2lzQWN0aXZlfSksXG4gICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkOiBwYXJzZUlkKHVzZXJJZCl9KVxuICB9O1xuXG4gIHJldHVybiByZW1vdmVFbXB0eUtleXModHJhbnNmb3JtZWQpIGFzIENvbnRlbnRUeXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29udGVudEZyb21EYiA9IChjb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRUeXBlID0+IHBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24oY29udGVudCk7Il0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxpQkFBQUEsRUFBZSxXQUFBQyxFQUFTLGVBQUFDLE1BQWtCLCtCQUNsRCxPQUFRLEtBQUFDLE1BQVEsTUFHaEIsT0FBUSxtQkFBQUMsTUFBc0IsMkJBQzlCLE9BQVEsaUJBQUFDLE1BQW9CLHFCQUVyQixNQUFNQyxVQUErQixLQUFNLENBQ2hELFlBQVlDLEVBQXdCQyxFQUFnQixDQUNsRCxNQUFNRCxDQUFPLEVBRHFCLFdBQUFDLEVBRWxDLEtBQUssS0FBTyx3QkFDZCxDQUNGLENBRUEsTUFBTUMsRUFBZ0JOLEVBQUUsT0FBTyxDQUM3QixVQUFXQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQy9CLElBQUtBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxpQkFBaUIsRUFBRSxJQUFJLElBQUssc0NBQXNDLEVBQ3pGLE9BQVFBLEVBQUUsS0FBSyxDQUFDLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxJQUFJLEVBQUcsQ0FDbkQsUUFBUywrQ0FDWCxDQUFDLEVBQ0QsUUFBU0EsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFHLHFCQUFxQixFQUFFLElBQUksSUFBTyw0Q0FBNEMsRUFDekcsWUFBYUEsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFLLDhDQUE4QyxFQUFFLFNBQVMsRUFDMUYsU0FBVUEsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFLLDJDQUEyQyxFQUFFLFNBQVMsRUFDcEYsU0FBVUEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUMvQixPQUFRQSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQzlCLENBQUMsRUFFS08sRUFBcUJQLEVBQUUsT0FBTyxDQUNsQyxVQUFXQSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQy9CLElBQUtBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxpQkFBaUIsRUFBRSxJQUFJLElBQUssc0NBQXNDLEVBQ3pGLE9BQVFBLEVBQUUsS0FBSyxDQUFDLEtBQU0sS0FBTSxLQUFNLEtBQU0sS0FBTSxJQUFJLEVBQUcsQ0FDbkQsUUFBUywrQ0FDWCxDQUFDLEVBQUUsU0FBUyxFQUNaLFFBQVNBLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRyxxQkFBcUIsRUFBRSxJQUFJLElBQU8sNENBQTRDLEVBQ3pHLFlBQWFBLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSyw4Q0FBOEMsRUFBRSxTQUFTLEVBQzFGLFNBQVVBLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSywyQ0FBMkMsRUFBRSxTQUFTLEVBQ3BGLFNBQVVBLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FDakMsQ0FBQyxFQUVZUSxFQUFnQkMsR0FBc0MsQ0FDakUsR0FBSSxDQUVGLE9BRGtCSCxFQUFjLE1BQU1HLENBQU8sQ0FFL0MsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCVixFQUFFLFNBQVUsQ0FDOUIsTUFBTUssRUFBUUssRUFBTSxPQUFPLENBQUMsR0FBRyxLQUFLLEtBQUssR0FBRyxFQUN0Q04sRUFBVU0sRUFBTSxPQUFPLENBQUMsR0FBRyxTQUFXLG9CQUM1QyxNQUFNLElBQUlQLEVBQXVCQyxFQUFTQyxDQUFLLENBQ2pELENBQ0EsTUFBTUssQ0FDUixDQUNGLEVBRWFDLEVBQXFCRixHQUFnRCxDQUNoRixHQUFJLENBRUYsT0FEa0JGLEVBQW1CLE1BQU1FLENBQU8sQ0FFcEQsT0FBUUMsRUFBTyxDQUNiLEdBQUdBLGFBQWlCVixFQUFFLFNBQVUsQ0FDOUIsTUFBTUssRUFBUUssRUFBTSxPQUFPLENBQUMsR0FBRyxLQUFLLEtBQUssR0FBRyxFQUN0Q04sRUFBVU0sRUFBTSxPQUFPLENBQUMsR0FBRyxTQUFXLG9CQUM1QyxNQUFNLElBQUlQLEVBQXVCQyxFQUFTQyxDQUFLLENBQ2pELENBQ0EsTUFBTUssQ0FDUixDQUNGLEVBRU1FLEVBQWdDSCxHQUFzQyxDQUMxRSxLQUFNLENBQ0osSUFBQUksRUFDQSxLQUFBQyxFQUNBLFVBQUFDLEVBQ0EsR0FBQUMsRUFDQSxJQUFBQyxFQUNBLE9BQUFDLEVBQ0EsUUFBU0MsRUFDVCxZQUFBQyxFQUNBLFNBQUFDLEVBQ0EsU0FBQUMsRUFDQSxPQUFBQyxDQUNGLEVBQUlkLEVBRUVlLEVBQWMsQ0FDbEIsR0FBR3RCLEVBQWNPLENBQU8sRUFDeEIsSUFBS0ssR0FBUUMsSUFBYyxDQUFDLFVBQVdqQixFQUFRZ0IsR0FBUUMsQ0FBUyxDQUFDLEVBQ2pFLElBQUtGLEdBQU9HLEdBQU1GLEdBQVFDLElBQWMsQ0FBQyxHQUFJbEIsRUFBY2dCLEdBQU9HLEdBQU0sV0FBV0YsR0FBUUMsQ0FBUyxFQUFFLENBQUMsRUFDdkcsSUFBS2hCLEVBQVlrQixFQUFLLEdBQUcsRUFDekIsT0FBQUMsRUFDQSxRQUFTbkIsRUFBWW9CLEVBQWEsR0FBSyxFQUN2QyxHQUFJQyxHQUFlLENBQUMsWUFBYXJCLEVBQVlxQixFQUFhLEdBQUcsQ0FBQyxFQUM5RCxHQUFJQyxHQUFZLENBQUMsU0FBVXRCLEVBQVlzQixFQUFVLEdBQUcsQ0FBQyxFQUNyRCxHQUFJQyxJQUFhLFFBQWEsQ0FBQyxTQUFBQSxDQUFRLEVBQ3ZDLEdBQUlDLEdBQVUsQ0FBQyxPQUFRekIsRUFBUXlCLENBQU0sQ0FBQyxDQUN4QyxFQUVBLE9BQU90QixFQUFnQnVCLENBQVcsQ0FDcEMsRUFFYUMsRUFBc0JoQixHQUFzQ0csRUFBNkJILENBQU8iLAogICJuYW1lcyI6IFsicGFyc2VBcmFuZ29JZCIsICJwYXJzZUlkIiwgInBhcnNlU3RyaW5nIiwgInoiLCAicmVtb3ZlRW1wdHlLZXlzIiwgInBhcnNlRG9jdW1lbnQiLCAiQ29udGVudFZhbGlkYXRpb25FcnJvciIsICJtZXNzYWdlIiwgImZpZWxkIiwgImNvbnRlbnRTY2hlbWEiLCAiY29udGVudElucHV0U2NoZW1hIiwgInBhcnNlQ29udGVudCIsICJjb250ZW50IiwgImVycm9yIiwgInBhcnNlQ29udGVudElucHV0IiwgInBlcmZvcm1Db250ZW50VHJhbnNmb3JtYXRpb24iLCAiX2lkIiwgIl9rZXkiLCAiY29udGVudElkIiwgImlkIiwgImtleSIsICJsb2NhbGUiLCAiY29udGVudFRleHQiLCAiZGVzY3JpcHRpb24iLCAiY2F0ZWdvcnkiLCAiaXNBY3RpdmUiLCAidXNlcklkIiwgInRyYW5zZm9ybWVkIiwgInBhcnNlQ29udGVudEZyb21EYiJdCn0K
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"}