@nlabs/reaktor 0.10.1 → 0.10.2

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 (451) hide show
  1. package/coverage/actions/index.html +21 -36
  2. package/coverage/actions/notifications.ts.html +223 -0
  3. package/coverage/actions/posts.ts.html +2356 -0
  4. package/coverage/adapters/arangoAdapter.ts.html +170 -20
  5. package/coverage/adapters/fileAdapter.ts.html +445 -0
  6. package/coverage/adapters/index.html +72 -42
  7. package/coverage/adapters/postAdapter.ts.html +436 -0
  8. package/coverage/adapters/reaktorAdapter.ts.html +201 -18
  9. package/coverage/adapters/tagAdapter.ts.html +274 -25
  10. package/coverage/adapters/userAdapter.ts.html +829 -0
  11. package/coverage/analyticsUtils.ts.html +286 -0
  12. package/coverage/config.ts.html +766 -0
  13. package/coverage/index.html +81 -51
  14. package/coverage/mocks/group.ts.html +5 -5
  15. package/coverage/mocks/image.ts.html +18 -12
  16. package/coverage/mocks/index.html +37 -7
  17. package/coverage/mocks/post.ts.html +8 -8
  18. package/coverage/mocks/tag.ts.html +2 -2
  19. package/coverage/mocks/user.ts.html +18 -15
  20. package/coverage/testUtils.ts.html +1309 -0
  21. package/coverage/translationQueue.ts.html +592 -0
  22. package/coverage/types/error.types.ts.html +148 -0
  23. package/coverage/types/index.html +2 -2
  24. package/coverage/utils/adapterUtils.ts.html +39 -27
  25. package/coverage/utils/analyticsUtils.ts.html +35 -41
  26. package/coverage/utils/authUtils.ts.html +328 -0
  27. package/coverage/utils/dbI18n.ts.html +280 -0
  28. package/coverage/utils/googleTranslate.ts.html +385 -0
  29. package/coverage/utils/index.html +29 -44
  30. package/coverage/utils/localeUtils.ts.html +193 -0
  31. package/coverage/utils/sessionUtils.ts.html +211 -0
  32. package/coverage/utils/testUtils.ts.html +1309 -0
  33. package/lex.config.mjs +34 -0
  34. package/lib/actions/apps.d.ts +25 -0
  35. package/lib/actions/apps.js +11 -11
  36. package/lib/actions/connections.d.ts +5 -0
  37. package/lib/actions/connections.js +6 -6
  38. package/lib/actions/content.d.ts +13 -0
  39. package/lib/actions/content.js +9 -9
  40. package/lib/actions/conversations.d.ts +16 -0
  41. package/lib/actions/conversations.js +17 -17
  42. package/lib/actions/dynamodb.d.ts +12 -0
  43. package/lib/actions/dynamodb.js +2 -2
  44. package/lib/actions/email.d.ts +8 -0
  45. package/lib/actions/email.js +2 -2
  46. package/lib/actions/files.d.ts +19 -0
  47. package/lib/actions/files.js +3 -3
  48. package/lib/actions/groups.d.ts +13 -0
  49. package/lib/actions/groups.js +15 -15
  50. package/lib/actions/images.d.ts +33 -0
  51. package/lib/actions/images.js +22 -22
  52. package/lib/actions/index.d.ts +27 -0
  53. package/lib/actions/index.js +2 -2
  54. package/lib/actions/ios.d.ts +7 -0
  55. package/lib/actions/ios.js +4 -4
  56. package/lib/actions/locations.d.ts +6 -0
  57. package/lib/actions/locations.js +3 -3
  58. package/lib/actions/messages.d.ts +13 -0
  59. package/lib/actions/messages.js +3 -3
  60. package/lib/actions/notifications.d.ts +9 -0
  61. package/lib/actions/notifications.js +2 -2
  62. package/lib/actions/payments.d.ts +12 -0
  63. package/lib/actions/payments.js +6 -6
  64. package/lib/actions/posts.d.ts +25 -0
  65. package/lib/actions/posts.js +30 -30
  66. package/lib/actions/profiles.d.ts +4 -0
  67. package/lib/actions/profiles.js +4 -4
  68. package/lib/actions/reactions.d.ts +32 -0
  69. package/lib/actions/reactions.js +16 -16
  70. package/lib/actions/s3.d.ts +11 -0
  71. package/lib/actions/s3.js +2 -2
  72. package/lib/actions/search.d.ts +3 -0
  73. package/lib/actions/search.js +3 -3
  74. package/lib/actions/sms.d.ts +2 -0
  75. package/lib/actions/sms.js +2 -2
  76. package/lib/actions/statistics.d.ts +4 -0
  77. package/lib/actions/statistics.js +4 -4
  78. package/lib/actions/subscriptions.d.ts +7 -0
  79. package/lib/actions/subscriptions.js +6 -6
  80. package/lib/actions/tags.d.ts +34 -0
  81. package/lib/actions/tags.js +6 -6
  82. package/lib/actions/users.d.ts +73 -0
  83. package/lib/actions/users.js +45 -42
  84. package/lib/actions/websockets.d.ts +20 -0
  85. package/lib/actions/websockets.js +8 -8
  86. package/lib/adapters/arangoAdapter.d.ts +8 -0
  87. package/lib/adapters/arangoAdapter.js +2 -2
  88. package/lib/adapters/contentAdapter.d.ts +8 -0
  89. package/lib/adapters/contentAdapter.js +2 -2
  90. package/lib/adapters/fileAdapter.d.ts +9 -0
  91. package/lib/adapters/fileAdapter.js +2 -2
  92. package/lib/adapters/imageAdapter.d.ts +8 -0
  93. package/lib/adapters/imageAdapter.js +2 -2
  94. package/lib/adapters/index.d.ts +9 -0
  95. package/lib/adapters/index.js +2 -0
  96. package/lib/adapters/messageAdapter.d.ts +8 -0
  97. package/lib/adapters/messageAdapter.js +2 -2
  98. package/lib/adapters/postAdapter.d.ts +8 -0
  99. package/lib/adapters/postAdapter.js +2 -2
  100. package/lib/adapters/reaktorAdapter.d.ts +16 -0
  101. package/lib/adapters/reaktorAdapter.js +2 -2
  102. package/lib/adapters/tagAdapter.d.ts +9 -0
  103. package/lib/adapters/tagAdapter.js +2 -2
  104. package/lib/adapters/userAdapter.d.ts +13 -0
  105. package/lib/adapters/userAdapter.js +2 -2
  106. package/lib/config.d.ts +57 -0
  107. package/lib/config.js +2 -2
  108. package/lib/handlers/graphqlHandler.d.ts +4 -0
  109. package/lib/handlers/graphqlHandler.js +2 -2
  110. package/lib/index.d.ts +19 -0
  111. package/lib/index.js +2 -2
  112. package/lib/lambdas/actions/websockets.d.ts +7 -0
  113. package/lib/lambdas/actions/websockets.js +6 -6
  114. package/lib/lambdas/authorizer.d.ts +20 -0
  115. package/lib/lambdas/authorizer.js +2 -2
  116. package/lib/lambdas/connection.d.ts +12 -0
  117. package/lib/lambdas/connection.js +2 -2
  118. package/lib/lambdas/utils/message.d.ts +1 -0
  119. package/lib/lambdas/utils/websocket.d.ts +7 -0
  120. package/lib/lambdas/utils/websocket.js +2 -2
  121. package/lib/mocks/conversation.d.ts +8 -0
  122. package/lib/mocks/file.d.ts +11 -0
  123. package/lib/mocks/group.d.ts +17 -0
  124. package/lib/mocks/group.js +2 -2
  125. package/lib/mocks/image.d.ts +3 -0
  126. package/lib/mocks/image.js +2 -2
  127. package/lib/mocks/post.d.ts +38 -0
  128. package/lib/mocks/post.js +2 -2
  129. package/lib/mocks/tag.d.ts +2 -0
  130. package/lib/mocks/tag.js +1 -1
  131. package/lib/mocks/user.d.ts +4 -0
  132. package/lib/mocks/user.js +2 -2
  133. package/lib/mutations/content.d.ts +2 -0
  134. package/lib/mutations/content.js +2 -0
  135. package/lib/mutations/index.d.ts +11 -0
  136. package/lib/mutations/index.js +2 -2
  137. package/lib/mutations/locations.d.ts +2 -0
  138. package/lib/mutations/locations.js +2 -2
  139. package/lib/mutations/messages.d.ts +2 -0
  140. package/lib/mutations/messages.js +2 -2
  141. package/lib/mutations/posts.d.ts +2 -0
  142. package/lib/mutations/posts.js +2 -2
  143. package/lib/mutations/profiles.d.ts +2 -0
  144. package/lib/mutations/profiles.js +2 -2
  145. package/lib/mutations/reactions.d.ts +2 -0
  146. package/lib/mutations/reactions.js +2 -2
  147. package/lib/mutations/statistics.d.ts +2 -0
  148. package/lib/mutations/statistics.js +2 -2
  149. package/lib/mutations/subscriptions.d.ts +2 -0
  150. package/lib/mutations/subscriptions.js +2 -2
  151. package/lib/mutations/tags.d.ts +2 -0
  152. package/lib/mutations/tags.js +2 -2
  153. package/lib/mutations/users.d.ts +1 -0
  154. package/lib/mutations/users.js +2 -2
  155. package/lib/objectTypes/app.d.ts +3 -0
  156. package/lib/objectTypes/app.js +2 -2
  157. package/lib/objectTypes/bankAccount.d.ts +1 -0
  158. package/lib/objectTypes/connection.d.ts +1 -0
  159. package/lib/objectTypes/connection.js +2 -2
  160. package/lib/objectTypes/content.d.ts +2 -0
  161. package/lib/objectTypes/content.js +2 -0
  162. package/lib/objectTypes/conversation.d.ts +2 -0
  163. package/lib/objectTypes/conversation.js +2 -2
  164. package/lib/objectTypes/creditCard.d.ts +1 -0
  165. package/lib/objectTypes/document.d.ts +1 -0
  166. package/lib/objectTypes/error.d.ts +1 -0
  167. package/lib/objectTypes/external.d.ts +1 -0
  168. package/lib/objectTypes/external.js +2 -2
  169. package/lib/objectTypes/file.d.ts +2 -0
  170. package/lib/objectTypes/file.js +2 -2
  171. package/lib/objectTypes/filter.d.ts +1 -0
  172. package/lib/objectTypes/group.d.ts +3 -0
  173. package/lib/objectTypes/group.js +2 -2
  174. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  175. package/lib/objectTypes/image.d.ts +6 -0
  176. package/lib/objectTypes/image.js +2 -2
  177. package/lib/objectTypes/index.d.ts +26 -0
  178. package/lib/objectTypes/index.js +2 -2
  179. package/lib/objectTypes/location.d.ts +2 -0
  180. package/lib/objectTypes/location.js +2 -2
  181. package/lib/objectTypes/message.d.ts +2 -0
  182. package/lib/objectTypes/message.js +2 -2
  183. package/lib/objectTypes/passcode.d.ts +1 -0
  184. package/lib/objectTypes/passcode.js +2 -2
  185. package/lib/objectTypes/plan.d.ts +2 -0
  186. package/lib/objectTypes/plan.js +2 -2
  187. package/lib/objectTypes/post.d.ts +2 -0
  188. package/lib/objectTypes/post.js +2 -2
  189. package/lib/objectTypes/profile.d.ts +3 -0
  190. package/lib/objectTypes/profile.js +2 -2
  191. package/lib/objectTypes/reaction.d.ts +2 -0
  192. package/lib/objectTypes/reaction.js +2 -2
  193. package/lib/objectTypes/relation.d.ts +1 -0
  194. package/lib/objectTypes/relation.js +2 -2
  195. package/lib/objectTypes/search.d.ts +1 -0
  196. package/lib/objectTypes/search.js +2 -2
  197. package/lib/objectTypes/statistics.d.ts +1 -0
  198. package/lib/objectTypes/statistics.js +2 -2
  199. package/lib/objectTypes/subscription.d.ts +2 -0
  200. package/lib/objectTypes/subscription.js +2 -2
  201. package/lib/objectTypes/tag.d.ts +2 -0
  202. package/lib/objectTypes/tag.js +2 -2
  203. package/lib/objectTypes/user.d.ts +4 -0
  204. package/lib/objectTypes/user.js +2 -2
  205. package/lib/queries/content.d.ts +2 -0
  206. package/lib/queries/content.js +2 -0
  207. package/lib/queries/index.d.ts +10 -0
  208. package/lib/queries/index.js +2 -2
  209. package/lib/queries/locations.d.ts +2 -0
  210. package/lib/queries/locations.js +2 -2
  211. package/lib/queries/messages.d.ts +2 -0
  212. package/lib/queries/messages.js +2 -2
  213. package/lib/queries/posts.d.ts +2 -0
  214. package/lib/queries/posts.js +2 -2
  215. package/lib/queries/reactions.d.ts +2 -0
  216. package/lib/queries/reactions.js +2 -2
  217. package/lib/queries/statistics.d.ts +2 -0
  218. package/lib/queries/statistics.js +2 -2
  219. package/lib/queries/subscriptions.d.ts +2 -0
  220. package/lib/queries/subscriptions.js +2 -2
  221. package/lib/queries/tags.d.ts +2 -0
  222. package/lib/queries/tags.js +2 -2
  223. package/lib/queries/users.d.ts +1 -0
  224. package/lib/queries/users.js +2 -2
  225. package/lib/templates/email/layout.d.ts +2 -0
  226. package/lib/templates/email/passwordForgot.d.ts +2 -0
  227. package/lib/templates/email/passwordRecovery.d.ts +2 -0
  228. package/lib/templates/email/verifyEmail.d.ts +2 -0
  229. package/lib/templates/email/welcome.d.ts +2 -0
  230. package/lib/templates/sms/passwordForgot.d.ts +2 -0
  231. package/lib/templates/sms/passwordRecovery.d.ts +2 -0
  232. package/lib/templates/sms/verifyEmail.d.ts +2 -0
  233. package/lib/templates/sms/verifyPhone.d.ts +2 -0
  234. package/lib/templates/sms/welcome.d.ts +2 -0
  235. package/lib/types/apps.types.d.ts +50 -0
  236. package/lib/types/apps.types.js +1 -1
  237. package/lib/types/arangodb.types.d.ts +38 -0
  238. package/lib/types/auth.types.d.ts +15 -0
  239. package/lib/types/connections.types.d.ts +9 -0
  240. package/lib/types/content.types.d.ts +31 -0
  241. package/lib/types/conversations.types.d.ts +31 -0
  242. package/lib/types/email.types.d.ts +17 -0
  243. package/lib/types/error.types.d.ts +21 -0
  244. package/lib/types/files.types.d.ts +27 -0
  245. package/lib/types/google.types.d.ts +33 -0
  246. package/lib/types/groups.types.d.ts +22 -0
  247. package/lib/types/images.types.d.ts +56 -0
  248. package/lib/types/index.d.ts +26 -0
  249. package/lib/types/index.js +2 -2
  250. package/lib/types/locations.types.d.ts +22 -0
  251. package/lib/types/messages.types.d.ts +20 -0
  252. package/lib/types/notifications.types.d.ts +23 -0
  253. package/lib/types/payments.types.d.ts +113 -0
  254. package/lib/types/posts.types.d.ts +32 -0
  255. package/lib/types/profiles.types.d.ts +20 -0
  256. package/lib/types/statistics.types.d.ts +3 -0
  257. package/lib/types/tags.types.d.ts +19 -0
  258. package/lib/types/users.types.d.ts +110 -0
  259. package/lib/types/websockets.types.d.ts +22 -0
  260. package/lib/utils/adapterUtils.d.ts +5 -0
  261. package/lib/utils/analyticsUtils.d.ts +25 -0
  262. package/lib/utils/analyticsUtils.js +2 -2
  263. package/lib/utils/arangodbUtils.d.ts +70 -0
  264. package/lib/utils/arangodbUtils.js +3 -3
  265. package/lib/utils/authUtils.d.ts +23 -0
  266. package/lib/utils/authUtils.js +2 -2
  267. package/lib/utils/contextUtils.d.ts +3 -0
  268. package/lib/utils/contextUtils.js +1 -1
  269. package/lib/utils/dbI18n.d.ts +10 -0
  270. package/lib/utils/dbI18n.example.d.ts +20 -0
  271. package/lib/utils/dbI18n.example.js +3 -3
  272. package/lib/utils/dbI18n.js +2 -2
  273. package/lib/utils/googleTranslate.d.ts +6 -0
  274. package/lib/utils/googleTranslate.js +2 -2
  275. package/lib/utils/graphqlUtils.d.ts +10 -0
  276. package/lib/utils/graphqlUtils.js +2 -2
  277. package/lib/utils/index.d.ts +18 -0
  278. package/lib/utils/index.js +2 -2
  279. package/lib/utils/languageDetection.d.ts +8 -0
  280. package/lib/utils/languageDetection.js +1 -1
  281. package/lib/utils/localeUtils.d.ts +11 -0
  282. package/lib/utils/localeUtils.example.d.ts +5 -0
  283. package/lib/utils/localeUtils.example.js +2 -2
  284. package/lib/utils/localeUtils.js +1 -1
  285. package/lib/utils/middlewareUtils.d.ts +2 -0
  286. package/lib/utils/middlewareUtils.js +2 -2
  287. package/lib/utils/sessionUtils.d.ts +18 -0
  288. package/lib/utils/sessionUtils.js +2 -2
  289. package/lib/utils/stripeUtils.d.ts +7 -0
  290. package/lib/utils/stripeUtils.js +2 -2
  291. package/lib/utils/templateUtils.d.ts +3 -0
  292. package/lib/utils/testUtils.d.ts +95 -0
  293. package/lib/utils/testUtils.js +2 -2
  294. package/lib/utils/translationQueue.d.ts +29 -0
  295. package/lib/utils/translationQueue.example.d.ts +33 -0
  296. package/lib/utils/translationQueue.example.js +2 -2
  297. package/lib/utils/translationQueue.js +2 -2
  298. package/package.json +22 -21
  299. package/tsconfig.build.json +21 -0
  300. package/tsconfig.lint.json +33 -0
  301. package/tsconfig.test.json +31 -0
  302. package/dist/actions/apps.js +0 -242
  303. package/dist/actions/connections.js +0 -90
  304. package/dist/actions/conversations.js +0 -350
  305. package/dist/actions/dynamodb.js +0 -150
  306. package/dist/actions/email.js +0 -152
  307. package/dist/actions/files.js +0 -283
  308. package/dist/actions/groups.js +0 -292
  309. package/dist/actions/images.js +0 -735
  310. package/dist/actions/index.js +0 -66
  311. package/dist/actions/ios.js +0 -164
  312. package/dist/actions/locations.js +0 -122
  313. package/dist/actions/messages.js +0 -208
  314. package/dist/actions/notifications.js +0 -59
  315. package/dist/actions/payments.js +0 -497
  316. package/dist/actions/personas.js +0 -110
  317. package/dist/actions/posts.js +0 -595
  318. package/dist/actions/reactions.js +0 -322
  319. package/dist/actions/s3.js +0 -133
  320. package/dist/actions/search.js +0 -90
  321. package/dist/actions/sms.js +0 -108
  322. package/dist/actions/statistics.js +0 -62
  323. package/dist/actions/subscription.js +0 -220
  324. package/dist/actions/tags.js +0 -292
  325. package/dist/actions/users.js +0 -784
  326. package/dist/actions/websockets.js +0 -174
  327. package/dist/adapters/arangoAdapter.js +0 -46
  328. package/dist/adapters/fileAdapter.js +0 -76
  329. package/dist/adapters/imageAdapter.js +0 -40
  330. package/dist/adapters/messageAdapter.js +0 -49
  331. package/dist/adapters/postAdapter.js +0 -70
  332. package/dist/adapters/reaktorAdapter.js +0 -44
  333. package/dist/adapters/tagAdapter.js +0 -50
  334. package/dist/adapters/userAdapter.js +0 -115
  335. package/dist/config.js +0 -125
  336. package/dist/index.js +0 -66
  337. package/dist/lambdas/actions/websockets.js +0 -132
  338. package/dist/lambdas/authorizer.js +0 -67
  339. package/dist/lambdas/connection.js +0 -91
  340. package/dist/lambdas/utils/message.js +0 -42
  341. package/dist/lambdas/utils/websocket.js +0 -105
  342. package/dist/mocks/conversation.js +0 -35
  343. package/dist/mocks/file.js +0 -38
  344. package/dist/mocks/group.js +0 -47
  345. package/dist/mocks/image.js +0 -44
  346. package/dist/mocks/nlabs.png +0 -0
  347. package/dist/mocks/post.js +0 -55
  348. package/dist/mocks/tag.js +0 -37
  349. package/dist/mocks/user.js +0 -88
  350. package/dist/mutations/index.js +0 -26
  351. package/dist/mutations/locations.js +0 -44
  352. package/dist/mutations/messages.js +0 -86
  353. package/dist/mutations/personas.js +0 -100
  354. package/dist/mutations/posts.js +0 -53
  355. package/dist/mutations/reactions.js +0 -51
  356. package/dist/mutations/statistics.js +0 -39
  357. package/dist/mutations/subscriptions.js +0 -56
  358. package/dist/mutations/tags.js +0 -120
  359. package/dist/mutations/users.js +0 -116
  360. package/dist/objectTypes/app.js +0 -173
  361. package/dist/objectTypes/bankAccount.js +0 -76
  362. package/dist/objectTypes/connection.js +0 -48
  363. package/dist/objectTypes/conversation.js +0 -77
  364. package/dist/objectTypes/creditCard.js +0 -86
  365. package/dist/objectTypes/document.js +0 -46
  366. package/dist/objectTypes/error.js +0 -46
  367. package/dist/objectTypes/external.js +0 -74
  368. package/dist/objectTypes/file.js +0 -100
  369. package/dist/objectTypes/filter.js +0 -43
  370. package/dist/objectTypes/group.js +0 -123
  371. package/dist/objectTypes/iapSubscription.js +0 -40
  372. package/dist/objectTypes/image.js +0 -129
  373. package/dist/objectTypes/index.js +0 -68
  374. package/dist/objectTypes/location.js +0 -109
  375. package/dist/objectTypes/message.js +0 -96
  376. package/dist/objectTypes/passcode.js +0 -42
  377. package/dist/objectTypes/persona.js +0 -87
  378. package/dist/objectTypes/plan.js +0 -95
  379. package/dist/objectTypes/post.js +0 -125
  380. package/dist/objectTypes/reaction.js +0 -61
  381. package/dist/objectTypes/relation.js +0 -49
  382. package/dist/objectTypes/search.js +0 -72
  383. package/dist/objectTypes/statistics.js +0 -39
  384. package/dist/objectTypes/subscription.js +0 -117
  385. package/dist/objectTypes/tag.js +0 -65
  386. package/dist/objectTypes/user.js +0 -144
  387. package/dist/queries/index.js +0 -33
  388. package/dist/queries/locations.js +0 -45
  389. package/dist/queries/messages.js +0 -52
  390. package/dist/queries/posts.js +0 -154
  391. package/dist/queries/reactions.js +0 -56
  392. package/dist/queries/statistics.js +0 -39
  393. package/dist/queries/subscriptions.js +0 -44
  394. package/dist/queries/tags.js +0 -75
  395. package/dist/queries/users.js +0 -64
  396. package/dist/templates/email/layout.js +0 -302
  397. package/dist/templates/email/passwordForgot.js +0 -38
  398. package/dist/templates/email/passwordRecovery.js +0 -35
  399. package/dist/templates/email/verifyEmail.js +0 -38
  400. package/dist/templates/email/welcome.js +0 -38
  401. package/dist/templates/sms/passwordForgot.js +0 -24
  402. package/dist/templates/sms/passwordRecovery.js +0 -24
  403. package/dist/templates/sms/verifyEmail.js +0 -24
  404. package/dist/templates/sms/verifyPhone.js +0 -24
  405. package/dist/templates/sms/welcome.js +0 -24
  406. package/dist/types/apps.js +0 -32
  407. package/dist/types/arangodb.js +0 -16
  408. package/dist/types/auth.js +0 -16
  409. package/dist/types/connections.js +0 -16
  410. package/dist/types/conversations.js +0 -16
  411. package/dist/types/email.js +0 -16
  412. package/dist/types/error.js +0 -44
  413. package/dist/types/files.js +0 -16
  414. package/dist/types/google.js +0 -16
  415. package/dist/types/groups.js +0 -16
  416. package/dist/types/images.js +0 -16
  417. package/dist/types/index.js +0 -60
  418. package/dist/types/locations.js +0 -16
  419. package/dist/types/messages.js +0 -16
  420. package/dist/types/notifications.js +0 -16
  421. package/dist/types/payments.js +0 -16
  422. package/dist/types/personas.js +0 -16
  423. package/dist/types/posts.js +0 -16
  424. package/dist/types/statistics.js +0 -16
  425. package/dist/types/tags.js +0 -16
  426. package/dist/types/users.js +0 -16
  427. package/dist/types/websockets.js +0 -16
  428. package/dist/utils/adapterUtils.js +0 -45
  429. package/dist/utils/analyticsUtils.js +0 -72
  430. package/dist/utils/arangodbUtils.js +0 -165
  431. package/dist/utils/auth.js +0 -57
  432. package/dist/utils/index.js +0 -30
  433. package/dist/utils/session.js +0 -60
  434. package/jest.config.js +0 -17
  435. package/jest.setup.js +0 -36
  436. package/lex.config.cjs +0 -13
  437. package/lib/mutations/locations.integration.js +0 -2
  438. package/lib/mutations/messages.integration.js +0 -2
  439. package/lib/mutations/posts.integration.js +0 -2
  440. package/lib/mutations/profiles.integration.js +0 -2
  441. package/lib/mutations/reactions.integration.js +0 -2
  442. package/lib/mutations/statistics.integration.js +0 -2
  443. package/lib/mutations/subscriptions.integration.js +0 -2
  444. package/lib/mutations/tags.integration.js +0 -2
  445. package/lib/mutations/users.integration.js +0 -2
  446. package/lib/queries/locations.integration.js +0 -2
  447. package/lib/queries/messages.integration.js +0 -2
  448. package/lib/queries/posts.integration.js +0 -2
  449. package/lib/queries/reactions.integration.js +0 -2
  450. package/lib/queries/tags.integration.js +0 -2
  451. package/lib/queries/users.integration.js +0 -2
@@ -1,35 +1,35 @@
1
- import{createHash as $,parseArangoId as p,parseChar as h,parseId as U,parseNum as B,parseString as b}from"@nlabs/utils";import{aql as T}from"arangojs";import{ErrorTypes as E}from"../types/error.types";import{logError as N,logException as O}from"../utils/analyticsUtils";import{getLimit as q,useDb as g}from"../utils/arangodbUtils";const m="reactions",_=(e={})=>{const{from:o=0,to:n=30}=e;return{limit:q(o,n)}},x=(e,o,n={},a=!1)=>{const r="addReaction",{databaseName:s,session:{userId:i}}=e;if(!i)return O({action:r,category:m,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const{name:l="like",value:t}=n,u=p(o),c=h(l,32),d=b(t,32),R=g(s).collection("hasReaction"),I=`users/${i}`,A=$(`reaction-${u}-${i}`),y={_from:I,_key:A,_to:u,added:Date.now(),name:c,value:t!==void 0?d:void 0};if(!a){const D=T`FOR r IN hasReaction
2
- FILTER r._from == ${I} && r._to == ${u} && r.name == ${c}
1
+ import{parseNum as B}from"@nlabs/utils/parsers/numbers";import{createHash as $,parseArangoId as N,parseChar as f,parseId as U,parseString as b}from"@nlabs/utils/parsers/strings";import{aql as T}from"arangojs";import{ErrorTypes as p}from"../types/error.types.js";import{logError as E,logException as O}from"../utils/analyticsUtils.js";import{getLimit as q,useDb as g}from"../utils/arangodbUtils.js";const u="reactions",_=(e={})=>{const{from:o=0,to:r=30}=e;return{limit:q(o,r)}},S=(e,o,r={},a=!1)=>{const n="addReaction",{databaseName:s,session:{userId:i}={}}=e;if(!i)throw O({action:n,category:u,label:"unauthorized",value:"invalid_session"},e);const{name:l="like",value:t}=r,m=N(o),c=f(l,32),d=b(t,32),R=g(s).collection("hasReaction"),y=`users/${i}`,A=$(`reaction-${m}-${i}`),I={_from:y,_key:A,_to:m,added:Date.now(),name:c,value:t!==void 0?d:void 0};if(!a){const D=T`FOR r IN hasReaction
2
+ FILTER r._from == ${y} && r._to == ${m} && r.name == ${c}
3
3
  LIMIT 1
4
- RETURN r`;return g(s).query(D).then(f=>f.next()).then(f=>f||R.save(y,{returnNew:!0}).then(()=>y)).catch(f=>N({action:r,category:m,label:E.DATABASE_ERROR},f,e).then(()=>null))}return R.save(y,{returnNew:!0}).then(()=>y)},S=(e,o)=>{const n="deleteReaction",{databaseName:a,session:{userId:r}}=e;if(!r)return O({action:n,category:m,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const s=`users/${U(r)}`,i=`hasReaction/${U(o)}`,l=T`LET r = DOCUMENT(${i})
4
+ RETURN r`;return g(s).query(D).then(h=>h.next()).then(h=>h||R.save(I,{returnNew:!0}).then(()=>I)).catch(h=>E({action:n,category:u,label:p.DATABASE_ERROR},h,e).then(()=>null))}return R.save(I,{returnNew:!0}).then(()=>I)},P=(e,o)=>{const r="deleteReaction",{databaseName:a,session:{userId:n}={}}=e;if(!n)throw O({action:r,category:u,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const s=`users/${U(n)}`,i=`hasReaction/${U(o)}`,l=T`LET r = DOCUMENT(${i})
5
5
  FILTER r._from == ${s}
6
6
  LIMIT 1
7
7
  REMOVE r IN hasReaction
8
- RETURN OLD`;return g(a).query(l).then(t=>t.next()).catch(t=>N({action:n,category:m,label:E.DATABASE_ERROR},t,e).then(()=>null))},P=(e,o,n)=>{const a="deleteReactionByItem",{databaseName:r,session:{userId:s}}=e;if(!s)return O({action:a,category:m,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const i=`users/${U(s)}`,l=p(o),t=h(n),u=T`FOR r in hasReaction
8
+ RETURN OLD`;return g(a).query(l).then(t=>t.next()).catch(t=>E({action:r,category:u,label:p.DATABASE_ERROR},t,e).then(()=>null))},M=(e,o,r)=>{const a="deleteReactionByItem",{databaseName:n,session:{userId:s}={}}=e;if(!s)throw O({action:a,category:u,label:"unauthorized",value:"invalid_session"},e);const i=`users/${U(s)}`,l=N(o),t=f(r),m=T`FOR r in hasReaction
9
9
  FILTER r._from == ${i} && r._to == ${l} && r.name == ${t}
10
10
  LIMIT 1
11
11
  REMOVE r IN hasReaction
12
- RETURN OLD`;return g(r).query(u).then(c=>c.next()).catch(c=>N({action:a,category:m,label:E.DATABASE_ERROR},c,e).then(()=>null))},M=(e,o={})=>{const n="updateReaction",{databaseName:a,session:{userId:r}}=e;if(!r)return O({action:n,category:m,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const{id:s,name:i,value:l}=o,t=p(s),u=h(i,32),c=b(l,32),d=$(`reaction-${t}-${r}`),R={name:u,value:c},I={...R,_key:d,added:Date.now()},A=T`UPSERT ${{_id:t}}
13
- INSERT ${I}
12
+ RETURN OLD`;return g(n).query(m).then(c=>c.next()).catch(c=>E({action:a,category:u,label:p.DATABASE_ERROR},c,e).then(()=>null))},w=(e,o={})=>{const r="updateReaction",{databaseName:a,session:{userId:n}={}}=e;if(!n)throw O({action:r,category:u,label:"unauthorized",value:"invalid_session"},e);const{id:s,name:i,value:l}=o,t=N(s),m=f(i,32),c=b(l,32),d=$(`reaction-${t}-${n}`),R={name:m,value:c},y={...R,_key:d,added:Date.now()},A=T`UPSERT ${{_id:t}}
13
+ INSERT ${y}
14
14
  UPDATE ${R}
15
15
  LIMIT 1
16
- RETURN NEW`;return g(a).query(A).then(y=>y.next()).catch(y=>N({action:n,category:m,label:E.DATABASE_ERROR},y,e).then(()=>null))},V=(e,o,n)=>{const a="getReactionCount",{databaseName:r}=e,s=p(o),i=h(n,32),l=T`FOR i, r IN INBOUND ${s} hasReaction
16
+ RETURN NEW`;return g(a).query(A).then(I=>I.next()).catch(I=>E({action:r,category:u,label:p.DATABASE_ERROR},I,e).then(()=>null))},V=(e,o,r)=>{const a="getReactionCount",{databaseName:n}=e,s=N(o),i=f(r,32),l=T`FOR i, r IN INBOUND ${s} hasReaction
17
17
  FILTER r.name == ${i}
18
18
  COLLECT WITH COUNT INTO count
19
- RETURN count`;return g(r).query(l).then(t=>t.next()).catch(t=>N({action:a,category:m,label:E.DATABASE_ERROR},t,e).then(()=>{}))},G=(e,o,n,a)=>{const r="getReactionCountByUser",{databaseName:s,session:{userId:i}}=e,l=p(o),t=h(a,32),u=`users/${i}`,c=T`FOR i, r IN INBOUND ${l} hasReaction
20
- FILTER r.name == ${t} && r._from == ${u}
19
+ RETURN count`;return g(n).query(l).then(t=>t.next()).catch(t=>E({action:a,category:u,label:p.DATABASE_ERROR},t,e).then(()=>{}))},j=(e,o,r,a)=>{const n="getReactionCountByUser",{databaseName:s,session:{userId:i}={}}=e,l=N(o),t=f(a,32),m=`users/${i}`,c=T`FOR i, r IN INBOUND ${l} hasReaction
20
+ FILTER r.name == ${t} && r._from == ${m}
21
21
  COLLECT reactionValue = r.value INTO reactionItems
22
- RETURN MERGE(r, {count: LENGTH(reactionItems[*].r.value)})`;return g(s).query(c).then(d=>d.all()).catch(d=>N({action:r,category:m,label:E.DATABASE_ERROR},d,e).then(()=>[]))},w=(e,o={})=>{const n="getGroupUsersByReaction",{databaseName:a,session:{userId:r}}=e;if(!r)return O({action:n,category:m,label:"unauthorized",value:"invalid_session"},e).then(()=>null);const{filters:s=[],id:i,value:l}=o,t=h(l,32),u=p(i),c=s.map(R=>{const{conditional:I,name:A,value:y}=R;let D=I;switch(I!==">="&&I!=="<="&&I!==">"&&I!=="<"&&(D="=="),A){case"added":return`r.added ${D} ${B(y)}`;default:return""}}).concat([`r.value == "${t}"`,"u._id == r._from"]).join(" && "),d=`FOR g, r IN INBOUND "${u}" hasReaction
22
+ RETURN MERGE(r, {count: LENGTH(reactionItems[*].r.value)})`;return g(s).query(c).then(d=>d.all()).catch(d=>E({action:n,category:u,label:p.DATABASE_ERROR},d,e).then(()=>[]))},G=(e,o={})=>{const r="getGroupUsersByReaction",{databaseName:a,session:{userId:n}={}}=e;if(!n)throw O({action:r,category:u,label:"unauthorized",value:"invalid_session"},e);const{filters:s=[],id:i,value:l}=o,t=f(l,32),m=N(i),c=s.map(R=>{const{conditional:y="",name:A,value:I}=R;let D=y;switch(y!==">="&&y!=="<="&&y!==">"&&y!=="<"&&(D="=="),A){case"added":return`r.added ${D} ${B(I)}`;default:return""}}).concat([`r.value == "${t}"`,"u._id == r._from"]).join(" && "),d=`FOR g, r IN INBOUND "${m}" hasReaction
23
23
  FOR u IN users
24
24
  FILTER ${c}
25
- RETURN u`;return g(a).query(d).then(R=>R.all()).catch(R=>N({action:n,category:m,label:E.DATABASE_ERROR},R,e).then(()=>[]))},z=(e,o,n,a)=>{const r="getReactionsByItem",{databaseName:s}=e,i=p(o),l=h(n,32),{limit:t}=_(a),u=`FOR i, r IN INBOUND "${i}" hasReaction
25
+ RETURN u`;return g(a).query(d).then(R=>R.all()).catch(R=>E({action:r,category:u,label:p.DATABASE_ERROR},R,e).then(()=>[]))},z=(e,o,r,a)=>{const n="getReactionsByItem",{databaseName:s}=e,i=N(o),l=f(r,32),{limit:t}=_(a),m=`FOR i, r IN INBOUND "${i}" hasReaction
26
26
  FILTER r.name == "${l}"
27
27
  ${t.aql}
28
- RETURN MERGE(i, {reaction: r})`;return g(s).query(u).then(c=>c.all()).catch(c=>N({action:r,category:m,label:E.DATABASE_ERROR},c,e).then(()=>[]))},k=(e,o,n,a)=>{const r="getItemsByReaction",{databaseName:s}=e,i=p(o),l=h(n,32),{limit:t}=_(a),u=`FOR u, r IN OUTBOUND "${i}" hasReaction
28
+ RETURN MERGE(i, {reaction: r})`;return g(s).query(m).then(c=>c.all()).catch(c=>E({action:n,category:u,label:p.DATABASE_ERROR},c,e).then(()=>[]))},k=(e,o,r,a)=>{const n="getItemsByReaction",{databaseName:s}=e,i=N(o),l=f(r,32),{limit:t}=_(a),m=`FOR u, r IN OUTBOUND "${i}" hasReaction
29
29
  FILTER r.name == ${l}
30
30
  ${t.aql}
31
- RETURN MERGE(u, {reaction: r})`;return g(s).query(u).then(c=>c.all()).catch(c=>N({action:r,category:m,label:E.DATABASE_ERROR},c,e).then(()=>[]))},H=(e,o,n,a="OUTBOUND")=>{const r="hasReaction",{databaseName:s,session:{userId:i}}=e,l=`users/${i}`,t=p(o),d=`FOR i, r IN ${a==="OUTBOUND"?"OUTBOUND":"INBOUND"} "${l}" hasReaction
32
- FILTER r.name == "${n}" && ${a==="OUTBOUND"?"r._to":"r._from"} == "${t}"
31
+ RETURN MERGE(u, {reaction: r})`;return g(s).query(m).then(c=>c.all()).catch(c=>E({action:n,category:u,label:p.DATABASE_ERROR},c,e).then(()=>[]))},H=(e,o,r,a="OUTBOUND")=>{const n="hasReaction",{databaseName:s,session:{userId:i}={}}=e,l=`users/${i}`,t=N(o),d=`FOR i, r IN ${a==="OUTBOUND"?"OUTBOUND":"INBOUND"} "${l}" hasReaction
32
+ FILTER r.name == "${r}" && ${a==="OUTBOUND"?"r._to":"r._from"} == "${t}"
33
33
  LIMIT 1
34
- RETURN r`;return g(s).query(d).then(R=>R.next()).then(R=>R?R.value==="true":!1).catch(R=>N({action:r,category:m,label:E.DATABASE_ERROR},R,e).then(()=>!1))};export{x as addReaction,S as deleteReaction,P as deleteReactionByItem,w as getGroupUsersByReaction,k as getItemsByReaction,V as getReactionCount,G as getReactionCountByUser,z as getReactionsByItem,H as hasReaction,_ as parseReactionOptions,M as updateReaction};
35
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvcmVhY3Rpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUFyYW5nb0lkLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlTnVtLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dCwgQXJhbmdvRGJDb2xsZWN0aW9uLCBBcmFuZ29EYkxpbWl0LCBRdWVyeUZpbHRlciwgVXNlclR5cGUsIFVzZXJSZWFjdGlvblF1ZXJ5fSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb25zJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIFJlYWN0aW9uRGlyZWN0aW9uID0gJ0lOQk9VTkQnIHwgJ09VVEJPVU5EJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbiB7XG4gIHJlYWRvbmx5IF9mcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBfa2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBfdG8/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkZGVkPzogbnVtYmVyO1xuICByZWFkb25seSBjb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGU/OiBBcmFuZ29EYkNvbGxlY3Rpb247XG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFjdGlvbk9wdGlvbnMgPSAob3B0aW9uczogUmVhY3Rpb25PcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBsaW1pdDogZ2V0TGltaXQoZnJvbSwgdG8pIGFzIEFyYW5nb0RiTGltaXRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uOiBSZWFjdGlvbiA9IHt9LFxuICBhbGxvd0R1cGxpY2F0ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBuYW1lOiBpdGVtTmFtZSA9ICdsaWtlJyxcbiAgICB2YWx1ZTogaXRlbVZhbHVlXG4gIH0gPSByZWFjdGlvbjtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1OYW1lLCAzMik7XG4gIGNvbnN0IGZvcm1hdFZhbHVlOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhpdGVtVmFsdWUsIDMyKTtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gdXNlRGIoZGF0YWJhc2VOYW1lKS5jb2xsZWN0aW9uKCdoYXNSZWFjdGlvbicpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQ6IHN0cmluZyA9IGB1c2Vycy8ke3Nlc3Npb25JZH1gO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SXRlbUlkfS0ke3Nlc3Npb25JZH1gKTtcbiAgY29uc3QgZWRnZTogUmVhY3Rpb24gPSB7XG4gICAgX2Zyb206IHNlc3Npb25Eb2NJZCxcbiAgICBfa2V5OiBlZGdlSWQsXG4gICAgX3RvOiBmb3JtYXRJdGVtSWQsXG4gICAgYWRkZWQ6IERhdGUubm93KCksXG4gICAgbmFtZTogZm9ybWF0UmVhY3Rpb25OYW1lLFxuICAgIHZhbHVlOiBpdGVtVmFsdWUgIT09IHVuZGVmaW5lZCA/IGZvcm1hdFZhbHVlIDogdW5kZWZpbmVkXG4gIH07XG5cbiAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZXMgaWYgbm90IGFsbG93ZWRcbiAgaWYoIWFsbG93RHVwbGljYXRlKSB7XG4gICAgLy8gUXVlcnlcbiAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5fZnJvbSA9PSAke3Nlc3Npb25Eb2NJZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRJdGVtSWR9ICYmIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiByYDtcblxuICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAudGhlbigocmVhY3Rpb24pID0+IHtcbiAgICAgICAgaWYoISFyZWFjdGlvbikge1xuICAgICAgICAgIHJldHVybiByZWFjdGlvbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IGVkZ2UpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdhZGRSZWFjdGlvbjo6ZXJyb3InLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBsb2dFcnJvcih7XG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiBlZGdlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCByZWFjdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uSWQ6IHN0cmluZyA9IGBoYXNSZWFjdGlvbi8ke3BhcnNlSWQocmVhY3Rpb25JZCl9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByID0gRE9DVU1FTlQoJHtmb3JtYXRSZWFjdGlvbklkfSlcbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVSZWFjdGlvbkJ5SXRlbSA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVJlYWN0aW9uQnlJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1Eb2NJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihyZWFjdGlvbk5hbWUpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHIgaW4gaGFzUmVhY3Rpb25cbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRJdGVtRG9jSWR9ICYmIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVSZWFjdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCByZWFjdGlvbjogUmVhY3Rpb24gPSB7fSk6IFByb21pc2U8UmVhY3Rpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAndXBkYXRlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlkOiBpdGVtSWQsXG4gICAgbmFtZTogaXRlbU5hbWUsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZVxuICB9ID0gcmVhY3Rpb247XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtTmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VTdHJpbmcoaXRlbVZhbHVlLCAzMik7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJZH0tJHtzZXNzaW9uSWR9YCk7XG4gIGNvbnN0IHVwZGF0ZTogUmVhY3Rpb24gPSB7XG4gICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICB2YWx1ZTogZm9ybWF0VmFsdWVcbiAgfTtcbiAgY29uc3QgaW5zZXJ0OiBSZWFjdGlvbiA9IHtcbiAgICAuLi51cGRhdGUsXG4gICAgX2tleTogZWRnZUlkLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpXG4gIH07XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQgJHt7X2lkOiBmb3JtYXRJZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudCA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uQ291bnQnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXRSZWFjdGlvbk5hbWUgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgaSwgciBJTiBJTkJPVU5EICR7Zm9ybWF0SXRlbUlkfSBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLm5hbWUgPT0gJHtmb3JtYXRSZWFjdGlvbk5hbWV9XG4gICAgQ09MTEVDVCBXSVRIIENPVU5UIElOVE8gY291bnRcbiAgICBSRVRVUk4gY291bnRgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gdW5kZWZpbmVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldFJlYWN0aW9uQ291bnRCeVVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZCA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBpLCByIElOIElOQk9VTkQgJHtmb3JtYXRJdGVtSWR9IGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfSAmJiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfVxuICAgICAgQ09MTEVDVCByZWFjdGlvblZhbHVlID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICAgIFJFVFVSTiBNRVJHRShyLCB7Y291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBbXSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwVXNlcnNCeVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uUXVlcnkgPSB7fSk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0R3JvdXBVc2Vyc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qge2ZpbHRlcnMgPSBbXSwgaWQ6IGdyb3VwSWQsIHZhbHVlfTogVXNlclJlYWN0aW9uUXVlcnkgPSBwYXJhbXM7XG4gIGNvbnN0IHJlYWN0aW9uID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGdyb3VwRG9jSWQgPSBwYXJzZUFyYW5nb0lkKGdyb3VwSWQpO1xuICBjb25zdCBmaWx0ZXJTdHI6IHN0cmluZyA9IGZpbHRlcnNcbiAgICAubWFwKChmaWx0ZXI6IFF1ZXJ5RmlsdGVyKSA9PiB7XG4gICAgICBjb25zdCB7Y29uZGl0aW9uYWwsIG5hbWUsIHZhbHVlOiBxdWVyeVZhbHVlfTogUXVlcnlGaWx0ZXIgPSBmaWx0ZXI7XG4gICAgICBsZXQgZmlsdGVyQ29uZDogc3RyaW5nID0gY29uZGl0aW9uYWw7XG5cbiAgICAgIGlmKGNvbmRpdGlvbmFsICE9PSAnPj0nICYmIGNvbmRpdGlvbmFsICE9PSAnPD0nICYmIGNvbmRpdGlvbmFsICE9PSAnPicgJiYgY29uZGl0aW9uYWwgIT09ICc8Jykge1xuICAgICAgICBmaWx0ZXJDb25kID0gJz09JztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoKG5hbWUpIHtcbiAgICAgICAgY2FzZSAnYWRkZWQnOlxuICAgICAgICAgIHJldHVybiBgci5hZGRlZCAke2ZpbHRlckNvbmR9ICR7cGFyc2VOdW0ocXVlcnlWYWx1ZSl9YDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29uY2F0KFtcbiAgICAgIGByLnZhbHVlID09IFwiJHtyZWFjdGlvbn1cImAsXG4gICAgICAndS5faWQgPT0gci5fZnJvbSdcbiAgICBdKVxuICAgIC5qb2luKCcgJiYgJyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGcsIHIgSU4gSU5CT1VORCBcIiR7Z3JvdXBEb2NJZH1cIiBoYXNSZWFjdGlvblxuICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiAke2ZpbHRlclN0cn1cbiAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWFjdGlvbnNCeUl0ZW0gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVhY3Rpb25PcHRpb25zXG4pOiBQcm9taXNlPFVzZXJUeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVhY3Rpb25zQnlJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZVJlYWN0aW9uT3B0aW9ucyhvcHRpb25zKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIGksIHIgSU4gSU5CT1VORCBcIiR7Zm9ybWF0SXRlbUlkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7Zm9ybWF0UmVhY3Rpb25OYW1lfVwiXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIE1FUkdFKGksIHtyZWFjdGlvbjogcn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJdGVtc0J5UmVhY3Rpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogUmVhY3Rpb25PcHRpb25zXG4pOiBQcm9taXNlPFJlYWN0aW9uW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbXNCeVJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIocmVhY3Rpb25OYW1lLCAzMik7XG4gIGNvbnN0IHtsaW1pdH0gPSBwYXJzZVJlYWN0aW9uT3B0aW9ucyhvcHRpb25zKTtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSwgciBJTiBPVVRCT1VORCBcIiR7Zm9ybWF0SXRlbUlkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSAke2Zvcm1hdFJlYWN0aW9uTmFtZX1cbiAgICAke2xpbWl0LmFxbH1cbiAgICBSRVRVUk4gTUVSR0UodSwge3JlYWN0aW9uOiByfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBbXSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhc1JlYWN0aW9uID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIGRpcmVjdGlvbjogUmVhY3Rpb25EaXJlY3Rpb24gPSAnT1VUQk9VTkQnXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnaGFzUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXREaXJlY3Rpb24gPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnT1VUQk9VTkQnIDogJ0lOQk9VTkQnO1xuICBjb25zdCBpdGVtRGlyZWN0aW9uOiBzdHJpbmcgPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnci5fdG8nIDogJ3IuX2Zyb20nO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOICR7Zm9ybWF0RGlyZWN0aW9ufSBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmICR7aXRlbURpcmVjdGlvbn0gPT0gXCIke2Zvcm1hdEl0ZW1JZH1cIlxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gcmA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHJlYWN0aW9ucykgPT4gKHJlYWN0aW9ucyA/IHJlYWN0aW9ucy52YWx1ZSA9PT0gJ3RydWUnIDogZmFsc2UpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gZmFsc2UpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLGNBQUFBLEVBQVksaUJBQUFDLEVBQWUsYUFBQUMsRUFBVyxXQUFBQyxFQUFTLFlBQUFDLEVBQVUsZUFBQUMsTUFBa0IsZUFDbkYsT0FBUSxPQUFBQyxNQUFVLFdBR2xCLE9BQVEsY0FBQUMsTUFBaUIsdUJBQ3pCLE9BQVEsWUFBQUMsRUFBVSxnQkFBQUMsTUFBbUIsMEJBQ3JDLE9BQVEsWUFBQUMsRUFBVSxTQUFBQyxNQUFZLHlCQUs5QixNQUFNQyxFQUF3QixZQXFCakJDLEVBQXVCLENBQUNDLEVBQTJCLENBQUMsSUFBTSxDQUNyRSxLQUFNLENBQ0osS0FBQUMsRUFBTyxFQUNQLEdBQUFDLEVBQUssRUFDUCxFQUFJ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QU9sQixDQUFPLEVBQUUsS0FBSyxJQUFNLEVBQUssQ0FBQyxDQUN4QyIsCiAgIm5hbWVzIjogWyJjcmVhdGVIYXNoIiwgInBhcnNlQXJhbmdvSWQiLCAicGFyc2VDaGFyIiwgInBhcnNlSWQiLCAicGFyc2VOdW0iLCAicGFyc2VTdHJpbmciLCAiYXFsIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAibG9nRXhjZXB0aW9uIiwgImdldExpbWl0IiwgInVzZURiIiwgImV2ZW50Q2F0ZWdvcnkiLCAicGFyc2VSZWFjdGlvbk9wdGlvbnMiLCAib3B0aW9ucyIsICJmcm9tIiwgInRvIiwgImFkZFJlYWN0aW9uIiwgImNvbnRleHQiLCAiaXRlbUlkIiwgInJlYWN0aW9uIiwgImFsbG93RHVwbGljYXRlIiwgImFjdGlvbiIsICJkYXRhYmFzZU5hbWUiLCAic2Vzc2lvbklkIiwgIml0ZW1OYW1lIiwgIml0ZW1WYWx1ZSIsICJmb3JtYXRJdGVtSWQiLCAiZm9ybWF0UmVhY3Rpb25OYW1lIiwgImZvcm1hdFZhbHVlIiwgImVkZ2VDb2xsZWN0aW9uIiwgInNlc3Npb25Eb2NJZCIsICJlZGdlSWQiLCAiZWRnZSIsICJhcWxRcnkiLCAiY3Vyc29yIiwgImVycm9yIiwgImRlbGV0ZVJlYWN0aW9uIiwgInJlYWN0aW9uSWQiLCAiZm9ybWF0U2Vzc2lvbklkIiwgImZvcm1hdFJlYWN0aW9uSWQiLCAiZGVsZXRlUmVhY3Rpb25CeUl0ZW0iLCAicmVhY3Rpb25OYW1lIiwgImZvcm1hdEl0ZW1Eb2NJZCIsICJ1cGRhdGVSZWFjdGlvbiIsICJmb3JtYXRJZCIsICJmb3JtYXROYW1lIiwgInVwZGF0ZSIsICJpbnNlcnQiLCAiZ2V0UmVhY3Rpb25Db3VudCIsICJnZXRSZWFjdGlvbkNvdW50QnlVc2VyIiwgIml0ZW1UeXBlIiwgImdldEdyb3VwVXNlcnNCeVJlYWN0aW9uIiwgInBhcmFtcyIsICJmaWx0ZXJzIiwgImdyb3VwSWQiLCAidmFsdWUiLCAiZ3JvdXBEb2NJZCIsICJmaWx0ZXJTdHIiLCAiZmlsdGVyIiwgImNvbmRpdGlvbmFsIiwgIm5hbWUiLCAicXVlcnlWYWx1ZSIsICJmaWx0ZXJDb25kIiwgImdldFJlYWN0aW9uc0J5SXRlbSIsICJsaW1pdCIsICJnZXRJdGVtc0J5UmVhY3Rpb24iLCAiaGFzUmVhY3Rpb24iLCAiZGlyZWN0aW9uIiwgInJlYWN0aW9ucyJdCn0K
34
+ RETURN r`;return g(s).query(d).then(R=>R.next()).then(R=>R?R.value==="true":!1).catch(R=>E({action:n,category:u,label:p.DATABASE_ERROR},R,e).then(()=>!1))};export{S as addReaction,P as deleteReaction,M as deleteReactionByItem,G as getGroupUsersByReaction,k as getItemsByReaction,V as getReactionCount,j as getReactionCountByUser,z as getReactionsByItem,H as hasReaction,_ as parseReactionOptions,w as updateReaction};
35
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvcmVhY3Rpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvbnVtYmVycyc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQXJhbmdvSWQsIHBhcnNlQ2hhciwgcGFyc2VJZCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvciwgbG9nRXhjZXB0aW9ufSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHR5cGUge1F1ZXJ5RmlsdGVyfSBmcm9tICcuLi90eXBlcy9hcHBzLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcmFuZ29EYkNvbGxlY3Rpb24sIEFyYW5nb0RiTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyUmVhY3Rpb25RdWVyeSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3JlYWN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIFJlYWN0aW9uRGlyZWN0aW9uID0gJ0lOQk9VTkQnIHwgJ09VVEJPVU5EJztcblxuZXhwb3J0IGludGVyZmFjZSBSZWFjdGlvbiB7XG4gIHJlYWRvbmx5IF9mcm9tPzogc3RyaW5nO1xuICByZWFkb25seSBfa2V5Pzogc3RyaW5nO1xuICByZWFkb25seSBfdG8/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkZGVkPzogbnVtYmVyO1xuICByZWFkb25seSBjb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGU/OiBBcmFuZ29EYkNvbGxlY3Rpb247XG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZyb20/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VSZWFjdGlvbk9wdGlvbnMgPSAob3B0aW9uczogUmVhY3Rpb25PcHRpb25zID0ge30pID0+IHtcbiAgY29uc3Qge1xuICAgIGZyb20gPSAwLFxuICAgIHRvID0gMzBcbiAgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIHtcbiAgICBsaW1pdDogZ2V0TGltaXQoZnJvbSwgdG8pIGFzIEFyYW5nb0RiTGltaXRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uOiBSZWFjdGlvbiA9IHt9LFxuICBhbGxvd0R1cGxpY2F0ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFJlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIG5hbWU6IGl0ZW1OYW1lID0gJ2xpa2UnLFxuICAgIHZhbHVlOiBpdGVtVmFsdWVcbiAgfSA9IHJlYWN0aW9uO1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbU5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2hhc1JlYWN0aW9uJyk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGVkZ2VJZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcmVhY3Rpb24tJHtmb3JtYXRJdGVtSWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCBlZGdlOiBSZWFjdGlvbiA9IHtcbiAgICBfZnJvbTogc2Vzc2lvbkRvY0lkLFxuICAgIF9rZXk6IGVkZ2VJZCxcbiAgICBfdG86IGZvcm1hdEl0ZW1JZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICBuYW1lOiBmb3JtYXRSZWFjdGlvbk5hbWUsXG4gICAgdmFsdWU6IGl0ZW1WYWx1ZSAhPT0gdW5kZWZpbmVkID8gZm9ybWF0VmFsdWUgOiB1bmRlZmluZWRcbiAgfTtcblxuICAvLyBDaGVjayBmb3IgZHVwbGljYXRlcyBpZiBub3QgYWxsb3dlZFxuICBpZighYWxsb3dEdXBsaWNhdGUpIHtcbiAgICAvLyBRdWVyeVxuICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHIgSU4gaGFzUmVhY3Rpb25cbiAgICAgIEZJTFRFUiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiByLl90byA9PSAke2Zvcm1hdEl0ZW1JZH0gJiYgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHJgO1xuXG4gICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKChyZWFjdGlvbikgPT4ge1xuICAgICAgICBpZighIXJlYWN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHJlYWN0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gZWRnZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ2FkZFJlYWN0aW9uOjplcnJvcicsIGVycm9yKTtcbiAgICAgICAgcmV0dXJuIGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IGVkZ2UpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHJlYWN0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8UmVhY3Rpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlUmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm1hdFNlc3Npb25JZDogc3RyaW5nID0gYHVzZXJzLyR7cGFyc2VJZChzZXNzaW9uSWQpfWA7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uSWQ6IHN0cmluZyA9IGBoYXNSZWFjdGlvbi8ke3BhcnNlSWQocmVhY3Rpb25JZCl9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYExFVCByID0gRE9DVU1FTlQoJHtmb3JtYXRSZWFjdGlvbklkfSlcbiAgICBGSUxURVIgci5fZnJvbSA9PSAke2Zvcm1hdFNlc3Npb25JZH1cbiAgICBMSU1JVCAxXG4gICAgUkVNT1ZFIHIgSU4gaGFzUmVhY3Rpb25cbiAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVSZWFjdGlvbkJ5SXRlbSA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWN0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVJlYWN0aW9uQnlJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG5cbiAgaWYoIXNlc3Npb25JZCkge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3QgZm9ybWF0U2Vzc2lvbklkOiBzdHJpbmcgPSBgdXNlcnMvJHtwYXJzZUlkKHNlc3Npb25JZCl9YDtcbiAgY29uc3QgZm9ybWF0SXRlbURvY0lkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgciBpbiBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLl9mcm9tID09ICR7Zm9ybWF0U2Vzc2lvbklkfSAmJiByLl90byA9PSAke2Zvcm1hdEl0ZW1Eb2NJZH0gJiYgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgIExJTUlUIDFcbiAgICBSRU1PVkUgciBJTiBoYXNSZWFjdGlvblxuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHJlYWN0aW9uOiBSZWFjdGlvbiA9IHt9KTogUHJvbWlzZTxSZWFjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuXG4gIGlmKCFzZXNzaW9uSWQpIHtcbiAgICB0aHJvdyBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpZDogaXRlbUlkLFxuICAgIG5hbWU6IGl0ZW1OYW1lLFxuICAgIHZhbHVlOiBpdGVtVmFsdWVcbiAgfSA9IHJlYWN0aW9uO1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZUNoYXIoaXRlbU5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGl0ZW1WYWx1ZSwgMzIpO1xuICBjb25zdCBlZGdlSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHJlYWN0aW9uLSR7Zm9ybWF0SWR9LSR7c2Vzc2lvbklkfWApO1xuICBjb25zdCB1cGRhdGU6IFJlYWN0aW9uID0ge1xuICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gIH07XG4gIGNvbnN0IGluc2VydDogUmVhY3Rpb24gPSB7XG4gICAgLi4udXBkYXRlLFxuICAgIF9rZXk6IGVkZ2VJZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKVxuICB9O1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUICR7e19pZDogZm9ybWF0SWR9fVxuICAgIElOU0VSVCAke2luc2VydH1cbiAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWN0aW9uQ291bnQgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRSZWFjdGlvbkNvdW50JztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGksIHIgSU4gSU5CT1VORCAke2Zvcm1hdEl0ZW1JZH0gaGFzUmVhY3Rpb25cbiAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfVxuICAgIENPTExFQ1QgV0lUSCBDT1VOVCBJTlRPIGNvdW50XG4gICAgUkVUVVJOIGNvdW50YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHVuZGVmaW5lZCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWN0aW9uQ291bnRCeVVzZXIgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGl0ZW1JZDogc3RyaW5nLFxuICBpdGVtVHlwZTogc3RyaW5nLFxuICByZWFjdGlvbk5hbWU6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFjdGlvbltdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdnZXRSZWFjdGlvbkNvdW50QnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZCA9IHBhcnNlQXJhbmdvSWQoaXRlbUlkKTtcbiAgY29uc3QgZm9ybWF0UmVhY3Rpb25OYW1lID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCBzZXNzaW9uRG9jSWQgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcblxuICAvLyBRdWVyeVxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBpLCByIElOIElOQk9VTkQgJHtmb3JtYXRJdGVtSWR9IGhhc1JlYWN0aW9uXG4gICAgICBGSUxURVIgci5uYW1lID09ICR7Zm9ybWF0UmVhY3Rpb25OYW1lfSAmJiByLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfVxuICAgICAgQ09MTEVDVCByZWFjdGlvblZhbHVlID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICAgIFJFVFVSTiBNRVJHRShyLCB7Y291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBbXSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyb3VwVXNlcnNCeVJlYWN0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHBhcmFtczogVXNlclJlYWN0aW9uUXVlcnkgPSB7fSk6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZ2V0R3JvdXBVc2Vyc0J5UmVhY3Rpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcblxuICBpZighc2Vzc2lvbklkKSB7XG4gICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCB7ZmlsdGVycyA9IFtdLCBpZDogZ3JvdXBJZCwgdmFsdWV9OiBVc2VyUmVhY3Rpb25RdWVyeSA9IHBhcmFtcztcbiAgY29uc3QgcmVhY3Rpb24gPSBwYXJzZUNoYXIodmFsdWUsIDMyKTtcbiAgY29uc3QgZ3JvdXBEb2NJZCA9IHBhcnNlQXJhbmdvSWQoZ3JvdXBJZCk7XG4gIGNvbnN0IGZpbHRlclN0cjogc3RyaW5nID0gZmlsdGVyc1xuICAgIC5tYXAoKGZpbHRlcjogUXVlcnlGaWx0ZXIpID0+IHtcbiAgICAgIGNvbnN0IHtjb25kaXRpb25hbCA9ICcnLCBuYW1lLCB2YWx1ZTogcXVlcnlWYWx1ZX06IFF1ZXJ5RmlsdGVyID0gZmlsdGVyO1xuICAgICAgbGV0IGZpbHRlckNvbmQ6IHN0cmluZyA9IGNvbmRpdGlvbmFsO1xuXG4gICAgICBpZihjb25kaXRpb25hbCAhPT0gJz49JyAmJiBjb25kaXRpb25hbCAhPT0gJzw9JyAmJiBjb25kaXRpb25hbCAhPT0gJz4nICYmIGNvbmRpdGlvbmFsICE9PSAnPCcpIHtcbiAgICAgICAgZmlsdGVyQ29uZCA9ICc9PSc7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaChuYW1lKSB7XG4gICAgICAgIGNhc2UgJ2FkZGVkJzpcbiAgICAgICAgICByZXR1cm4gYHIuYWRkZWQgJHtmaWx0ZXJDb25kfSAke3BhcnNlTnVtKHF1ZXJ5VmFsdWUpfWA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmNvbmNhdChbXG4gICAgICBgci52YWx1ZSA9PSBcIiR7cmVhY3Rpb259XCJgLFxuICAgICAgJ3UuX2lkID09IHIuX2Zyb20nXG4gICAgXSlcbiAgICAuam9pbignICYmICcpO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBnLCByIElOIElOQk9VTkQgXCIke2dyb3VwRG9jSWR9XCIgaGFzUmVhY3Rpb25cbiAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICBGSUxURVIgJHtmaWx0ZXJTdHJ9XG4gICAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVhY3Rpb25zQnlJdGVtID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlYWN0aW9uT3B0aW9uc1xuKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlYWN0aW9uc0J5SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCB7bGltaXR9ID0gcGFyc2VSZWFjdGlvbk9wdGlvbnMob3B0aW9ucyk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOIElOQk9VTkQgXCIke2Zvcm1hdEl0ZW1JZH1cIiBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLm5hbWUgPT0gXCIke2Zvcm1hdFJlYWN0aW9uTmFtZX1cIlxuICAgICR7bGltaXQuYXFsfVxuICAgIFJFVFVSTiBNRVJHRShpLCB7cmVhY3Rpb246IHJ9KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SXRlbXNCeVJlYWN0aW9uID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpdGVtSWQ6IHN0cmluZyxcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFJlYWN0aW9uT3B0aW9uc1xuKTogUHJvbWlzZTxSZWFjdGlvbltdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW1zQnlSZWFjdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUFyYW5nb0lkKGl0ZW1JZCk7XG4gIGNvbnN0IGZvcm1hdFJlYWN0aW9uTmFtZTogc3RyaW5nID0gcGFyc2VDaGFyKHJlYWN0aW9uTmFtZSwgMzIpO1xuICBjb25zdCB7bGltaXR9ID0gcGFyc2VSZWFjdGlvbk9wdGlvbnMob3B0aW9ucyk7XG5cbiAgLy8gUXVlcnlcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gT1VUQk9VTkQgXCIke2Zvcm1hdEl0ZW1JZH1cIiBoYXNSZWFjdGlvblxuICAgIEZJTFRFUiByLm5hbWUgPT0gJHtmb3JtYXRSZWFjdGlvbk5hbWV9XG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIE1FUkdFKHUsIHtyZWFjdGlvbjogcn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gW10pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBoYXNSZWFjdGlvbiA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaXRlbUlkOiBzdHJpbmcsXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nLFxuICBkaXJlY3Rpb246IFJlYWN0aW9uRGlyZWN0aW9uID0gJ09VVEJPVU5EJ1xuKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2hhc1JlYWN0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGZvcm1hdEl0ZW1JZDogc3RyaW5nID0gcGFyc2VBcmFuZ29JZChpdGVtSWQpO1xuICBjb25zdCBmb3JtYXREaXJlY3Rpb24gPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnT1VUQk9VTkQnIDogJ0lOQk9VTkQnO1xuICBjb25zdCBpdGVtRGlyZWN0aW9uOiBzdHJpbmcgPSBkaXJlY3Rpb24gPT09ICdPVVRCT1VORCcgPyAnci5fdG8nIDogJ3IuX2Zyb20nO1xuXG4gIC8vIFF1ZXJ5XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBpLCByIElOICR7Zm9ybWF0RGlyZWN0aW9ufSBcIiR7c2Vzc2lvbkRvY0lkfVwiIGhhc1JlYWN0aW9uXG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmICR7aXRlbURpcmVjdGlvbn0gPT0gXCIke2Zvcm1hdEl0ZW1JZH1cIlxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gcmA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHJlYWN0aW9ucykgPT4gKHJlYWN0aW9ucyA/IHJlYWN0aW9ucy52YWx1ZSA9PT0gJ3RydWUnIDogZmFsc2UpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gZmFsc2UpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFlBQUFBLE1BQWUsK0JBQ3ZCLE9BQVEsY0FBQUMsRUFBWSxpQkFBQUMsRUFBZSxhQUFBQyxFQUFXLFdBQUFDLEVBQVMsZUFBQUMsTUFBa0IsK0JBQ3pFLE9BQVEsT0FBQUMs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STNFLE9BQU9oQixFQUFNWSxDQUFZLEVBQUUsTUFBTVcsQ0FBTSxFQUNwQyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixLQUFNa0MsR0FBZUEsRUFBWUEsRUFBVSxRQUFVLE9BQVMsRUFBTSxFQUNwRSxNQUFPakMsR0FBaUI1QixFQUFTLENBQ2hDLE9BQUFjLEVBQ0EsU0FBVVYsRUFDVixNQUFPTCxFQUFXLGNBQ3BCLEVBQUc2QixFQUFPbEIsQ0FBTyxFQUFFLEtBQUssSUFBTSxFQUFLLENBQUMsQ0FDeEMiLAogICJuYW1lcyI6IFsicGFyc2VOdW0iLCAiY3JlYXRlSGFzaCIsICJwYXJzZUFyYW5nb0lkIiwgInBhcnNlQ2hhciIsICJwYXJzZUlkIiwgInBhcnNlU3RyaW5nIiwgImFxbCIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgImxvZ0V4Y2VwdGlvbiIsICJnZXRMaW1pdCIsICJ1c2VEYiIsICJldmVudENhdGVnb3J5IiwgInBhcnNlUmVhY3Rpb25PcHRpb25zIiwgIm9wdGlvbnMiLCAiZnJvbSIsICJ0byIsICJhZGRSZWFjdGlvbiIsICJjb250ZXh0IiwgIml0ZW1JZCIsICJyZWFjdGlvbiIsICJhbGxvd0R1cGxpY2F0ZSIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgInNlc3Npb25JZCIsICJpdGVtTmFtZSIsICJpdGVtVmFsdWUiLCAiZm9ybWF0SXRlbUlkIiwgImZvcm1hdFJlYWN0aW9uTmFtZSIsICJmb3JtYXRWYWx1ZSIsICJlZGdlQ29sbGVjdGlvbiIsICJzZXNzaW9uRG9jSWQiLCAiZWRnZUlkIiwgImVkZ2UiLCAiYXFsUXJ5IiwgImN1cnNvciIsICJlcnJvciIsICJkZWxldGVSZWFjdGlvbiIsICJyZWFjdGlvbklkIiwgImZvcm1hdFNlc3Npb25JZCIsICJmb3JtYXRSZWFjdGlvbklkIiwgImRlbGV0ZVJlYWN0aW9uQnlJdGVtIiwgInJlYWN0aW9uTmFtZSIsICJmb3JtYXRJdGVtRG9jSWQiLCAidXBkYXRlUmVhY3Rpb24iLCAiZm9ybWF0SWQiLCAiZm9ybWF0TmFtZSIsICJ1cGRhdGUiLCAiaW5zZXJ0IiwgImdldFJlYWN0aW9uQ291bnQiLCAiZ2V0UmVhY3Rpb25Db3VudEJ5VXNlciIsICJpdGVtVHlwZSIsICJnZXRHcm91cFVzZXJzQnlSZWFjdGlvbiIsICJwYXJhbXMiLCAiZmlsdGVycyIsICJncm91cElkIiwgInZhbHVlIiwgImdyb3VwRG9jSWQiLCAiZmlsdGVyU3RyIiwgImZpbHRlciIsICJjb25kaXRpb25hbCIsICJuYW1lIiwgInF1ZXJ5VmFsdWUiLCAiZmlsdGVyQ29uZCIsICJnZXRSZWFjdGlvbnNCeUl0ZW0iLCAibGltaXQiLCAiZ2V0SXRlbXNCeVJlYWN0aW9uIiwgImhhc1JlYWN0aW9uIiwgImRpcmVjdGlvbiIsICJyZWFjdGlvbnMiXQp9Cg==
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ import { DeleteObjectCommandInput, DeleteObjectCommandOutput, DeleteObjectsCommandInput, DeleteObjectsCommandOutput, GetObjectCommandInput, GetObjectCommandOutput, HeadObjectCommandInput, HeadObjectCommandOutput, PutObjectCommandInput, PutObjectCommandOutput } from '@aws-sdk/client-s3';
6
+ export declare const s3Get: (params: GetObjectCommandInput) => Promise<GetObjectCommandOutput>;
7
+ export declare const s3Head: (params: HeadObjectCommandInput) => Promise<HeadObjectCommandOutput>;
8
+ export declare const s3Put: (params: PutObjectCommandInput) => Promise<PutObjectCommandOutput>;
9
+ export declare const s3Delete: (params: DeleteObjectCommandInput) => Promise<DeleteObjectCommandOutput>;
10
+ export declare const s3DeleteList: (params: DeleteObjectsCommandInput) => Promise<DeleteObjectsCommandOutput>;
11
+ export declare const s3GetSignedUrl: (params?: any) => Promise<string>;
package/lib/actions/s3.js CHANGED
@@ -1,2 +1,2 @@
1
- import{GetObjectCommand as r,S3 as i}from"@aws-sdk/client-s3";import{getSignedUrl as m}from"@aws-sdk/s3-request-presigner";import{Config as t}from"../config";const D=e=>new Promise((u,o)=>{const c=new i({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.getObject(e,(n,s)=>n?o(n):u(s))}),B=e=>new Promise((u,o)=>{const c=new i({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.headObject(e,(n,s)=>n?o(n):u(s))}),I=e=>new Promise((u,o)=>{const c=new i({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),e.StorageClass||(e.StorageClass="REDUCED_REDUNDANCY"),c.putObject(e,(n,s)=>n?o(n):u(s))}),x=e=>new Promise((u,o)=>{const c=new i({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.deleteObject(e,(n,s)=>n?o(n):u(s))}),E=e=>new Promise((u,o)=>{const c=new i({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.deleteObjects(e,(n,s)=>n?o(n):u(s))}),S=async(e={})=>{const u=new i({credentials:t.get("aws.credentials"),region:t.get("aws.region")});return e.Expires||(e.Expires=720*60),e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),await m(u,new r(e),{expiresIn:e.Expires})};export{x as s3Delete,E as s3DeleteList,D as s3Get,S as s3GetSignedUrl,B as s3Head,I as s3Put};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvczMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge1xuICBEZWxldGVPYmplY3RDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kT3V0cHV0LFxuICBHZXRPYmplY3RDb21tYW5kLFxuICBHZXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIFB1dE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIFMzXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQge2dldFNpZ25lZFVybH0gZnJvbSAnQGF3cy1zZGsvczMtcmVxdWVzdC1wcmVzaWduZXInO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3MzJztcbmV4cG9ydCBjb25zdCBzM0dldCA9IChwYXJhbXM6IEdldE9iamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0T2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZ2V0T2JqZWN0KHBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0OiBHZXRPYmplY3RDb21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM0hlYWQgPSAocGFyYW1zOiBIZWFkT2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxIZWFkT2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuaGVhZE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogSGVhZE9iamVjdENvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM1B1dCA9IChwYXJhbXM6IFB1dE9iamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8UHV0T2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzID0gbmV3IFMzKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5zMy5idWNrZXQnKTtcbiAgICB9XG5cbiAgICBpZighcGFyYW1zLlN0b3JhZ2VDbGFzcykge1xuICAgICAgcGFyYW1zLlN0b3JhZ2VDbGFzcyA9ICdSRURVQ0VEX1JFRFVOREFOQ1knO1xuICAgIH1cblxuICAgIHMzLnB1dE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogUHV0T2JqZWN0Q29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlID0gKHBhcmFtczogRGVsZXRlT2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RDb21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgczM6IFMzID0gbmV3IFMzKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5zMy5idWNrZXQnKTtcbiAgICB9XG5cbiAgICBzMy5kZWxldGVPYmplY3QocGFyYW1zLCAoZXJyb3IsIG91dHB1dDogRGVsZXRlT2JqZWN0Q29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlTGlzdCA9IChwYXJhbXM6IERlbGV0ZU9iamVjdHNDb21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZU9iamVjdHNDb21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgczM6IFMzID0gbmV3IFMzKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5zMy5idWNrZXQnKTtcbiAgICB9XG5cbiAgICBzMy5kZWxldGVPYmplY3RzKHBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0OiBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzR2V0U2lnbmVkVXJsID0gYXN5bmMgKHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBjb25zdCBzMzogUzMgPSBuZXcgUzMoe1xuICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICB9KTtcblxuICBpZighcGFyYW1zLkV4cGlyZXMpIHtcbiAgICBwYXJhbXMuRXhwaXJlcyA9IDEyICogNjAgKiA2MDtcbiAgfVxuXG4gIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5zMy5idWNrZXQnKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBnZXRTaWduZWRVcmwoczMsIG5ldyBHZXRPYmplY3RDb21tYW5kKHBhcmFtcyksIHtcbiAgICBleHBpcmVzSW46IHBhcmFtcy5FeHBpcmVzXG4gIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BS0Usb0JBQUFBLEVBT0EsTUFBQUMsTUFDSyxxQkFDUCxPQUFRLGdCQUFBQyxNQUFtQixnQ0FFM0IsT0FBUSxVQUFBQyxNQUFhLFlBR2QsTUFBTUMsRUFBU0MsR0FDcEIsSUFBSSxRQUFRLENBQUNDLEVBQVNDLElBQVcsQ0FDL0IsTUFBTUMsRUFBUyxJQUFJUCxFQUFHLENBQ3BCLFlBQWFFLEVBQU8sSUFBSSxpQkFBaUIsRUFDekMsT0FBUUEsRUFBTyxJQUFJLFlBQVksQ0FDakMsQ0FBQyxFQUVHRSxFQUFPLFNBQ1RBLEVBQU8sT0FBU0YsRUFBTyxJQUFJLGVBQWUsR0FHNUNLLEVBQUcsVUFBVUgsRUFBUSxDQUFDSSxFQUFjQyxJQUMvQkQsRUFDTUYsRUFBT0UsQ0FBSyxFQUdkSCxFQUFRSSxDQUFNLENBQ3RCLENBQ0gsQ0FBQyxFQUVVQyxFQUFVTixHQUNyQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxXQUFXSCxFQUFRLENBQUNJLEVBQWNDLElBQ2hDRCxFQUNNRixFQUFPRSxDQUFLLEVBRWRILEVBQVFJLENBQU0sQ0FDdEIsQ0FDSCxDQUFDLEVBRVVFLEVBQVNQLEdBQ3BCLElBQUksUUFBUSxDQUFDQyxFQUFTQyxJQUFXLENBQy9CLE1BQU1DLEVBQUssSUFBSVAsRUFBRyxDQUNoQixZQUFhRSxFQUFPLElBQUksaUJBQWlCLEVBQ3pDLE9BQVFBLEVBQU8sSUFBSSxZQUFZLENBQ2pDLENBQUMsRUFFR0UsRUFBTyxTQUNUQSxFQUFPLE9BQVNGLEVBQU8sSUFBSSxlQUFlLEdBR3hDRSxFQUFPLGVBQ1RBLEVBQU8sYUFBZSxzQkFHeEJHLEVBQUcsVUFBVUgsRUFBUSxDQUFDSSxFQUFjQyxJQUMvQkQsRUFDTUYsRUFBT0UsQ0FBSyxFQUVkSCxFQUFRSSxDQUFNLENBQ3RCLENBQ0gsQ0FBQyxFQUVVRyxFQUFZUixHQUN2QixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxhQUFhSCxFQUFRLENBQUNJLEVBQU9DLElBQzNCRCxFQUNNRixFQUFPRSxDQUFLLEVBRWRILEVBQVFJLENBQU0sQ0FDdEIsQ0FDSCxDQUFDLEVBRVVJLEVBQWdCVCxHQUMzQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxjQUFjSCxFQUFRLENBQUNJLEVBQWNDLElBQ25DRCxFQUNNRixFQUFPRSxDQUFLLEVBRWRILEVBQVFJLENBQU0sQ0FDdEIsQ0FDSCxDQUFDLEVBRVVLLEVBQWlCLE1BQU9WLEVBQWMsQ0FBQyxJQUF1QixDQUN6RSxNQUFNRyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUQsT0FBSUUsRUFBTyxVQUNUQSxFQUFPLFFBQVUsSUFBVSxJQUd6QkEsRUFBTyxTQUNUQSxFQUFPLE9BQVNGLEVBQU8sSUFBSSxlQUFlLEdBR3JDLE1BQU1ELEVBQWFNLEVBQUksSUFBSVIsRUFBaUJLLENBQU0sRUFBRyxDQUMxRCxVQUFXQSxFQUFPLE9BQ3BCLENBQUMsQ0FDSCIsCiAgIm5hbWVzIjogWyJHZXRPYmplY3RDb21tYW5kIiwgIlMzIiwgImdldFNpZ25lZFVybCIsICJDb25maWciLCAiczNHZXQiLCAicGFyYW1zIiwgInJlc29sdmUiLCAicmVqZWN0IiwgInMzIiwgImVycm9yIiwgIm91dHB1dCIsICJzM0hlYWQiLCAiczNQdXQiLCAiczNEZWxldGUiLCAiczNEZWxldGVMaXN0IiwgInMzR2V0U2lnbmVkVXJsIl0KfQo=
1
+ import{GetObjectCommand as i,S3 as m}from"@aws-sdk/client-s3";import{getSignedUrl as r}from"@aws-sdk/s3-request-presigner";import{Config as t}from"../config.js";const f=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.getObject(e,(n,s)=>n?o(n):u(s))}),B=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.headObject(e,(n,s)=>n?o(n):u(s))}),I=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),e.StorageClass||(e.StorageClass="REDUCED_REDUNDANCY"),c.putObject(e,(n,s)=>n?o(n):u(s))}),x=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.deleteObject(e,(n,s)=>n?o(n):u(s))}),E=e=>new Promise((u,o)=>{const c=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),c.deleteObjects(e,(n,s)=>n?o(n):u(s))}),S=async(e={})=>{const u=new m({credentials:t.get("aws.credentials"),region:t.get("aws.region")});return e.Expires||(e.Expires=720*60),e.Bucket||(e.Bucket=t.get("aws.s3.bucket")),await r(u,new i(e),{expiresIn:e.Expires})};export{x as s3Delete,E as s3DeleteList,f as s3Get,S as s3GetSignedUrl,B as s3Head,I as s3Put};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvczMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge1xuICBEZWxldGVPYmplY3RDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdENvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZU9iamVjdHNDb21tYW5kT3V0cHV0LFxuICBHZXRPYmplY3RDb21tYW5kLFxuICBHZXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEdldE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kSW5wdXQsXG4gIEhlYWRPYmplY3RDb21tYW5kT3V0cHV0LFxuICBQdXRPYmplY3RDb21tYW5kSW5wdXQsXG4gIFB1dE9iamVjdENvbW1hbmRPdXRwdXQsXG4gIFMzXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQge2dldFNpZ25lZFVybH0gZnJvbSAnQGF3cy1zZGsvczMtcmVxdWVzdC1wcmVzaWduZXInO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3MzJztcbmV4cG9ydCBjb25zdCBzM0dldCA9IChwYXJhbXM6IEdldE9iamVjdENvbW1hbmRJbnB1dCk6IFByb21pc2U8R2V0T2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuZ2V0T2JqZWN0KHBhcmFtcywgKGVycm9yOiBFcnJvciwgb3V0cHV0PzogR2V0T2JqZWN0Q29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCBhcyBHZXRPYmplY3RDb21tYW5kT3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBzM0hlYWQgPSAocGFyYW1zOiBIZWFkT2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxIZWFkT2JqZWN0Q29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgczMuaGVhZE9iamVjdChwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dD86IEhlYWRPYmplY3RDb21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCBhcyBIZWFkT2JqZWN0Q29tbWFuZE91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgczNQdXQgPSAocGFyYW1zOiBQdXRPYmplY3RDb21tYW5kSW5wdXQpOiBQcm9taXNlPFB1dE9iamVjdENvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBzMyA9IG5ldyBTMyh7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICAgIHBhcmFtcy5CdWNrZXQgPSBDb25maWcuZ2V0KCdhd3MuczMuYnVja2V0Jyk7XG4gICAgfVxuXG4gICAgaWYoIXBhcmFtcy5TdG9yYWdlQ2xhc3MpIHtcbiAgICAgIHBhcmFtcy5TdG9yYWdlQ2xhc3MgPSAnUkVEVUNFRF9SRURVTkRBTkNZJztcbiAgICB9XG5cbiAgICBzMy5wdXRPYmplY3QocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ/OiBQdXRPYmplY3RDb21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0IGFzIFB1dE9iamVjdENvbW1hbmRPdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHMzRGVsZXRlID0gKHBhcmFtczogRGVsZXRlT2JqZWN0Q29tbWFuZElucHV0KTogUHJvbWlzZTxEZWxldGVPYmplY3RDb21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgczM6IFMzID0gbmV3IFMzKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBpZighcGFyYW1zLkJ1Y2tldCkge1xuICAgICAgcGFyYW1zLkJ1Y2tldCA9IENvbmZpZy5nZXQoJ2F3cy5zMy5idWNrZXQnKTtcbiAgICB9XG5cbiAgICBzMy5kZWxldGVPYmplY3QocGFyYW1zLCAoZXJyb3IsIG91dHB1dD86IERlbGV0ZU9iamVjdENvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQgYXMgRGVsZXRlT2JqZWN0Q29tbWFuZE91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgczNEZWxldGVMaXN0ID0gKHBhcmFtczogRGVsZXRlT2JqZWN0c0NvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlT2JqZWN0c0NvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBzMzogUzMgPSBuZXcgUzMoe1xuICAgICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgICAgcmVnaW9uOiBDb25maWcuZ2V0KCdhd3MucmVnaW9uJylcbiAgICB9KTtcblxuICAgIGlmKCFwYXJhbXMuQnVja2V0KSB7XG4gICAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLnMzLmJ1Y2tldCcpO1xuICAgIH1cblxuICAgIHMzLmRlbGV0ZU9iamVjdHMocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ/OiBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCBhcyBEZWxldGVPYmplY3RzQ29tbWFuZE91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgczNHZXRTaWduZWRVcmwgPSBhc3luYyAocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHMzOiBTMyA9IG5ldyBTMyh7XG4gICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gIH0pO1xuXG4gIGlmKCFwYXJhbXMuRXhwaXJlcykge1xuICAgIHBhcmFtcy5FeHBpcmVzID0gMTIgKiA2MCAqIDYwO1xuICB9XG5cbiAgaWYoIXBhcmFtcy5CdWNrZXQpIHtcbiAgICBwYXJhbXMuQnVja2V0ID0gQ29uZmlnLmdldCgnYXdzLnMzLmJ1Y2tldCcpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGdldFNpZ25lZFVybChzMywgbmV3IEdldE9iamVjdENvbW1hbmQocGFyYW1zKSwge1xuICAgIGV4cGlyZXNJbjogcGFyYW1zLkV4cGlyZXNcbiAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FLRSxvQkFBQUEsRUFPQSxNQUFBQyxNQUNLLHFCQUNQLE9BQVEsZ0JBQUFDLE1BQW1CLGdDQUUzQixPQUFRLFVBQUFDLE1BQWEsZUFHZCxNQUFNQyxFQUFTQyxHQUNwQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxVQUFVSCxFQUFRLENBQUNJLEVBQWNDLElBQy9CRCxFQUNNRixFQUFPRSxDQUFLLEVBR2RILEVBQVFJLENBQWdDLENBQ2hELENBQ0gsQ0FBQyxFQUVVQyxFQUFVTixHQUNyQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxXQUFXSCxFQUFRLENBQUNJLEVBQWNDLElBQ2hDRCxFQUNNRixFQUFPRSxDQUFLLEVBRWRILEVBQVFJLENBQWlDLENBQ2pELENBQ0gsQ0FBQyxFQUVVRSxFQUFTUCxHQUNwQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFLLElBQUlQLEVBQUcsQ0FDaEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUd4Q0UsRUFBTyxlQUNUQSxFQUFPLGFBQWUsc0JBR3hCRyxFQUFHLFVBQVVILEVBQVEsQ0FBQ0ksRUFBY0MsSUFDL0JELEVBQ01GLEVBQU9FLENBQUssRUFHZEgsRUFBUUksQ0FBZ0MsQ0FDaEQsQ0FDSCxDQUFDLEVBRVVHLEVBQVlSLEdBQ3ZCLElBQUksUUFBUSxDQUFDQyxFQUFTQyxJQUFXLENBQy9CLE1BQU1DLEVBQVMsSUFBSVAsRUFBRyxDQUNwQixZQUFhRSxFQUFPLElBQUksaUJBQWlCLEVBQ3pDLE9BQVFBLEVBQU8sSUFBSSxZQUFZLENBQ2pDLENBQUMsRUFFR0UsRUFBTyxTQUNUQSxFQUFPLE9BQVNGLEVBQU8sSUFBSSxlQUFlLEdBRzVDSyxFQUFHLGFBQWFILEVBQVEsQ0FBQ0ksRUFBT0MsSUFDM0JELEVBQ01GLEVBQU9FLENBQUssRUFHZEgsRUFBUUksQ0FBbUMsQ0FDbkQsQ0FDSCxDQUFDLEVBRVVJLEVBQWdCVCxHQUMzQixJQUFJLFFBQVEsQ0FBQ0MsRUFBU0MsSUFBVyxDQUMvQixNQUFNQyxFQUFTLElBQUlQLEVBQUcsQ0FDcEIsWUFBYUUsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBRUdFLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUc1Q0ssRUFBRyxjQUFjSCxFQUFRLENBQUNJLEVBQWNDLElBQ25DRCxFQUNNRixFQUFPRSxDQUFLLEVBR2RILEVBQVFJLENBQW9DLENBQ3BELENBQ0gsQ0FBQyxFQUVVSyxFQUFpQixNQUFPVixFQUFjLENBQUMsSUFBdUIsQ0FDekUsTUFBTUcsRUFBUyxJQUFJUCxFQUFHLENBQ3BCLFlBQWFFLEVBQU8sSUFBSSxpQkFBaUIsRUFDekMsT0FBUUEsRUFBTyxJQUFJLFlBQVksQ0FDakMsQ0FBQyxFQUVELE9BQUlFLEVBQU8sVUFDVEEsRUFBTyxRQUFVLElBQVUsSUFHekJBLEVBQU8sU0FDVEEsRUFBTyxPQUFTRixFQUFPLElBQUksZUFBZSxHQUdyQyxNQUFNRCxFQUFhTSxFQUFJLElBQUlSLEVBQWlCSyxDQUFNLEVBQUcsQ0FDMUQsVUFBV0EsRUFBTyxPQUNwQixDQUFDLENBQ0giLAogICJuYW1lcyI6IFsiR2V0T2JqZWN0Q29tbWFuZCIsICJTMyIsICJnZXRTaWduZWRVcmwiLCAiQ29uZmlnIiwgInMzR2V0IiwgInBhcmFtcyIsICJyZXNvbHZlIiwgInJlamVjdCIsICJzMyIsICJlcnJvciIsICJvdXRwdXQiLCAiczNIZWFkIiwgInMzUHV0IiwgInMzRGVsZXRlIiwgInMzRGVsZXRlTGlzdCIsICJzM0dldFNpZ25lZFVybCJdCn0K
@@ -0,0 +1,3 @@
1
+ import type { ApiContext } from '../types/auth.types.js';
2
+ import type { UserType } from '../types/users.types.js';
3
+ export declare const getSearchList: (context: ApiContext, query: string, from: number, to: number) => Promise<UserType[]>;
@@ -1,5 +1,5 @@
1
- import{aql as T}from"arangojs";import h from"lodash/flatten";import R from"lodash/uniqBy";import{getDisplayName as a}from"./users";import{ErrorTypes as A}from"../types/error.types";import{logException as E}from"../utils/analyticsUtils";import{getLimit as I,useDb as p}from"../utils/arangodbUtils";const b="search",_=(i,n,u,g)=>{const y="getList",{databaseName:l}=i;if(!0){const e=[{collection:"users",field:"first"},{collection:"users",field:"last"},{collection:"users",field:"email"},{collection:"users",field:"username"},{collection:"users",field:"name"}];return Promise.all(e.map(t=>{const o=`prefix:${n}`,r=T`FOR u IN FULLTEXT(${t.collection}, ${t.field}, ${o}, 50) RETURN u`;return p(l).query(r).then(s=>s.all())})).then(t=>R(h(t),"_key").map(r=>{const{_id:s,name:c}=r,L=s.split("/")[0]==="users"?a(r):c;return{...r,name:L}}))}const f=I(u,g),d=`FOR u IN users
1
+ import{flatten as h}from"@nlabs/utils/arrays/flatten";import{uniqBy as R}from"@nlabs/utils/arrays/uniq";import{aql as T}from"arangojs";import{ErrorTypes as q}from"../types/error.types.js";import{logException as A}from"../utils/analyticsUtils.js";import{getLimit as E,useDb as m}from"../utils/arangodbUtils.js";import{getDisplayName as p}from"./users.js";const I="search",_=(i,n,u,g)=>{const y="getList",{databaseName:l}=i;if(!0){const e=[{collection:"users",field:"first"},{collection:"users",field:"last"},{collection:"users",field:"email"},{collection:"users",field:"username"},{collection:"users",field:"name"}];return Promise.all(e.map(t=>{const s=`prefix:${n}`,r=T`FOR u IN FULLTEXT(${t.collection}, ${t.field}, ${s}, 50) RETURN u`;return m(l).query(r).then(o=>o.all())})).then(t=>R(h(t),"_key").map(r=>{const{_id:o,name:c}=r||{},L=((o?.split("/")||[])[0]||"")==="users"?p(r):c||"";return{...r,name:L}}))}const f=E(u,g),d=`FOR u IN users
2
2
  FILTER u.phone == "${n}"
3
3
  ${f.aql}
4
- RETURN u`;return p(l).query(d).then(e=>e.all()).then((e=[])=>e.map(t=>{const{_id:o,name:r}=t,m=o.split("/")[0]==="users"?a(t):r;return{...t,name:m}})).catch(e=>E({action:y,category:b,label:A.DATABASE_ERROR,value:e.message},i).then(()=>null))};export{_ as getSearchList};
5
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc2VhcmNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQgZmxhdHRlbiBmcm9tICdsb2Rhc2gvZmxhdHRlbic7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuXG5pbXBvcnQge2dldERpc3BsYXlOYW1lfSBmcm9tICcuL3VzZXJzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHtsb2dFeGNlcHRpb259IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcbmltcG9ydCB7Z2V0TGltaXQsIHVzZURifSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzJztcblxuaW1wb3J0IHR5cGUge0FyYW5nb0RiTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzJztcbmltcG9ydCB0eXBlIHtVc2VyVHlwZX0gZnJvbSAnLi4vdHlwZXMvdXNlcnMudHlwZXMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc2VhcmNoJztcblxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaExpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzU3RyaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBpZihpc1N0cmluZykge1xuICAgIGNvbnN0IGZpZWxkczoge2NvbGxlY3Rpb246IHN0cmluZywgZmllbGQ6IHN0cmluZ31bXSA9IFtcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2ZpcnN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdsYXN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdlbWFpbCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAndXNlcm5hbWUnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ25hbWUnfVxuICAgIF07XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmllbGRzLm1hcCgob2JqKSA9PiB7XG4gICAgICBjb25zdCBxcnk6IHN0cmluZyA9IGBwcmVmaXg6JHtxdWVyeX1gO1xuICAgICAgY29uc3QgdXNlclFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gRlVMTFRFWFQoJHtvYmouY29sbGVjdGlvbn0sICR7b2JqLmZpZWxkfSwgJHtxcnl9LCA1MCkgUkVUVVJOIHVgO1xuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXNlclFyeSkudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpO1xuICAgIH0pKVxuICAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHVuaXFCeShmbGF0dGVuKHJlc3VsdHMpLCAnX2tleScpO1xuXG4gICAgICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbTogVXNlclR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICAgICAgY29uc3QgY29sbGVjdGlvbklkTGlzdDogc3RyaW5nW10gPSBpdGVtSWQuc3BsaXQoJy8nKTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdO1xuICAgICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lO1xuXG4gICAgICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICBGSUxURVIgdS5waG9uZSA9PSBcIiR7cXVlcnl9XCJcbiAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBVc2VyVHlwZVtdID0gW10pID0+IGxpc3QubWFwKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZC5zcGxpdCgnLycpO1xuICAgICAgY29uc3QgY29sbGVjdGlvbjogc3RyaW5nID0gY29sbGVjdGlvbklkTGlzdFswXTtcbiAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lO1xuXG4gICAgICByZXR1cm4gey4uLml0ZW0sIG5hbWV9O1xuICAgIH0pKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHZhbHVlOiBlcnJvci5tZXNzYWdlXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxPQUFBQSxNQUFVLFdBRWxCLE9BQU9DLE1BQWEsaUJBQ3BCLE9BQU9DLE1BQVksZ0JBRW5CLE9BQVEsa0JBQUFDLE1BQXFCLFVBQzdCLE9BQVEsY0FBQUMsTUFBaUIsdUJBQ3pCLE9BQVEsZ0JBQUFDLE1BQW1CLDBCQUMzQixPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSx5QkFNOUIsTUFBTUMsRUFBd0IsU0FFakJDLEVBQWdCLENBQUNDLEVBQXFCQyxFQUFlQyxFQUFjQyxJQUFvQyxDQUNsSCxNQUFNQyxFQUFpQixVQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUwsRUFHdkIsR0FGMEIsR0FFYixDQUNYLE1BQU1NLEVBQWdELENBQ3BELENBQUMsV0FBWSxRQUFTLE1BQU8sT0FBTyxFQUNwQyxDQUFDLFdBQVksUUFBUyxNQUFPLE1BQU0sRUFDbkMsQ0FBQyxXQUFZLFFBQVMsTUFBTyxPQUFPLEVBQ3BDLENBQUMsV0FBWSxRQUFTLE1BQU8sVUFBVSxFQUN2QyxDQUFDLFdBQVksUUFBUyxNQUFPLE1BQU0sQ0FDckMsRUFFQSxPQUFPLFFBQVEsSUFBSUEsRUFBTyxJQUFLQyxHQUFRLENBQ3JDLE1BQU1DLEVBQWMsVUFBVVAsQ0FBSyxHQUM3QlEsRUFBb0JuQixzQkFBd0JpQixFQUFJLFVBQVUsS0FBS0EsRUFBSSxLQUFLLEtBQUtDLENBQUcsaUJBQ3RGLE9BQU9YLEVBQU1RLENBQVksRUFBRSxNQUFNSSxDQUFPLEVBQUUsS0FBTUMsR0FBV0EsRUFBTyxJQUFJLENBQUMsQ0FDekUsQ0FBQyxDQUFDLEVBQ0MsS0FBTUMsR0FDUW5CLEVBQU9ELEVBQVFvQixDQUFPLEVBQUcsTUFBTSxFQUVoQyxJQUFLQyxHQUFtQixDQUNsQyxLQUFNLENBQUMsSUFBS0MsRUFBUSxLQUFNQyxDQUFRLEVBQUlGLEVBR2hDRyxFQUY2QkYsRUFBTyxNQUFNLEdBQUcsRUFDUCxDQUFDLElBQ1QsUUFBVXBCLEVBQWVtQixDQUFJLEVBQUlFLEVBRXJFLE1BQU8sQ0FBQyxHQUFHRixFQUFNLEtBQUFHLENBQUksQ0FDdkIsQ0FBQyxDQUNGLENBQ0wsQ0FFQSxNQUFNQyxFQUF1QnBCLEVBQVNNLEVBQU1DLENBQUUsRUFDeENjLEVBQWlCO0FBQUEsNkJBQ0loQixDQUFLO0FBQUEsVUFDeEJlLEVBQU0sR0FBRztBQUFBLGtCQUdqQixPQUFPbkIsRUFBTVEsQ0FBWSxFQUFFLE1BQU1ZLENBQU0sRUFDcEMsS0FBTVAsR0FBV0EsRUFBTyxJQUFJLENBQUMsRUFDN0IsS0FBSyxDQUFDUSxFQUFtQixDQUFDLElBQU1BLEVBQUssSUFBS04sR0FBUyxDQUNsRCxLQUFNLENBQUMsSUFBS0MsRUFBUSxLQUFNQyxDQUFRLEVBQUlGLEVBR2hDRyxFQUY2QkYsRUFBTyxNQUFNLEdBQUcsRUFDUCxDQUFDLElBQ1QsUUFBVXBCLEVBQWVtQixDQUFJLEVBQUlFLEVBRXJFLE1BQU8sQ0FBQyxHQUFHRixFQUFNLEtBQUFHLENBQUksQ0FDdkIsQ0FBQyxDQUFDLEVBQ0QsTUFBT0ksR0FBaUJ4QixFQUFhLENBQ3BDLE9BQUFTLEVBQ0EsU0FBVU4sRUFDVixNQUFPSixFQUFXLGVBQ2xCLE1BQU95QixFQUFNLE9BQ2YsRUFBR25CLENBQU8sRUFBRSxLQUFLLElBQU0sSUFBSSxDQUFDLENBQ2hDIiwKICAibmFtZXMiOiBbImFxbCIsICJmbGF0dGVuIiwgInVuaXFCeSIsICJnZXREaXNwbGF5TmFtZSIsICJFcnJvclR5cGVzIiwgImxvZ0V4Y2VwdGlvbiIsICJnZXRMaW1pdCIsICJ1c2VEYiIsICJldmVudENhdGVnb3J5IiwgImdldFNlYXJjaExpc3QiLCAiY29udGV4dCIsICJxdWVyeSIsICJmcm9tIiwgInRvIiwgImFjdGlvbiIsICJkYXRhYmFzZU5hbWUiLCAiZmllbGRzIiwgIm9iaiIsICJxcnkiLCAidXNlclFyeSIsICJjdXJzb3IiLCAicmVzdWx0cyIsICJpdGVtIiwgIml0ZW1JZCIsICJpdGVtTmFtZSIsICJuYW1lIiwgImxpbWl0IiwgImFxbFFyeSIsICJsaXN0IiwgImVycm9yIl0KfQo=
4
+ RETURN u`;return m(l).query(d).then(e=>e.all()).then((e=[])=>e.map(t=>{const{_id:s,name:r}=t,a=((s?.split("/")||[])[0]||"")==="users"?p(t):r||"";return{...t,name:a}})).catch(e=>{throw A({action:y,category:I,label:q.DATABASE_ERROR,value:e.message},i)})};export{_ as getSearchList};
5
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc2VhcmNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtmbGF0dGVufSBmcm9tICdAbmxhYnMvdXRpbHMvYXJyYXlzL2ZsYXR0ZW4nO1xuaW1wb3J0IHt1bmlxQnl9IGZyb20gJ0BubGFicy91dGlscy9hcnJheXMvdW5pcSc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXhjZXB0aW9ufSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2dldERpc3BsYXlOYW1lfSBmcm9tICcuL3VzZXJzLmpzJztcblxuaW1wb3J0IHR5cGUge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHR5cGUge0FyYW5nb0RiTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyVHlwZX0gZnJvbSAnLi4vdHlwZXMvdXNlcnMudHlwZXMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc2VhcmNoJztcblxuZXhwb3J0IGNvbnN0IGdldFNlYXJjaExpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogUHJvbWlzZTxVc2VyVHlwZVtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzU3RyaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICBpZihpc1N0cmluZykge1xuICAgIGNvbnN0IGZpZWxkczoge2NvbGxlY3Rpb246IHN0cmluZywgZmllbGQ6IHN0cmluZ31bXSA9IFtcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ2ZpcnN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdsYXN0J30sXG4gICAgICB7Y29sbGVjdGlvbjogJ3VzZXJzJywgZmllbGQ6ICdlbWFpbCd9LFxuICAgICAge2NvbGxlY3Rpb246ICd1c2VycycsIGZpZWxkOiAndXNlcm5hbWUnfSxcbiAgICAgIHtjb2xsZWN0aW9uOiAndXNlcnMnLCBmaWVsZDogJ25hbWUnfVxuICAgIF07XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmllbGRzLm1hcCgob2JqKSA9PiB7XG4gICAgICBjb25zdCBxcnk6IHN0cmluZyA9IGBwcmVmaXg6JHtxdWVyeX1gO1xuICAgICAgY29uc3QgdXNlclFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gRlVMTFRFWFQoJHtvYmouY29sbGVjdGlvbn0sICR7b2JqLmZpZWxkfSwgJHtxcnl9LCA1MCkgUkVUVVJOIHVgO1xuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXNlclFyeSkudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpO1xuICAgIH0pKVxuICAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHVuaXFCeShmbGF0dGVuKHJlc3VsdHMpLCAnX2tleScgYXMgYW55KTtcblxuICAgICAgICByZXR1cm4gbGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtfaWQ6IGl0ZW1JZCwgbmFtZTogaXRlbU5hbWV9ID0gaXRlbSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZD8uc3BsaXQoJy8nKSB8fCBbXTtcbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uOiBzdHJpbmcgPSBjb2xsZWN0aW9uSWRMaXN0WzBdIHx8ICcnO1xuICAgICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGNvbGxlY3Rpb24gPT09ICd1c2VycycgPyBnZXREaXNwbGF5TmFtZShpdGVtKSA6IGl0ZW1OYW1lIHx8ICcnO1xuXG4gICAgICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgICBGSUxURVIgdS5waG9uZSA9PSBcIiR7cXVlcnl9XCJcbiAgICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICAgIFJFVFVSTiB1YDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBVc2VyVHlwZVtdID0gW10pID0+IGxpc3QubWFwKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCB7X2lkOiBpdGVtSWQsIG5hbWU6IGl0ZW1OYW1lfSA9IGl0ZW07XG4gICAgICBjb25zdCBjb2xsZWN0aW9uSWRMaXN0OiBzdHJpbmdbXSA9IGl0ZW1JZD8uc3BsaXQoJy8nKSB8fCBbXTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb246IHN0cmluZyA9IGNvbGxlY3Rpb25JZExpc3RbMF0gfHwgJyc7XG4gICAgICBjb25zdCBuYW1lOiBzdHJpbmcgPSBjb2xsZWN0aW9uID09PSAndXNlcnMnID8gZ2V0RGlzcGxheU5hbWUoaXRlbSkgOiBpdGVtTmFtZSB8fCAnJztcblxuICAgICAgcmV0dXJuIHsuLi5pdGVtLCBuYW1lfTtcbiAgICB9KSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICAgIHZhbHVlOiBlcnJvci5tZXNzYWdlXG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFdBQUFBLE1BQWMsOEJBQ3RCLE9BQVEsVUFBQUMsTUFBYSwyQkFDckIsT0FBUSxPQUFBQyxNQUFVLFdBRWxCLE9BQVEsY0FBQUMsTUFBaUIsMEJBQ3pCLE9BQVEsZ0JBQUFDLE1BQW1CLDZCQUMzQixPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSw0QkFDOUIsT0FBUSxrQkFBQUMsTUFBcUIsYUFPN0IsTUFBTUMsRUFBd0IsU0FFakJDLEVBQWdCLENBQUNDLEVBQXFCQyxFQUFlQyxFQUFjQyxJQUFvQyxDQUNsSCxNQUFNQyxFQUFpQixVQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUwsRUFHdkIsR0FGMEIsR0FFYixDQUNYLE1BQU1NLEVBQWdELENBQ3BELENBQUMsV0FBWSxRQUFTLE1BQU8sT0FBTyxFQUNwQyxDQUFDLFdBQVksUUFBUyxNQUFPLE1BQU0sRUFDbkMsQ0FBQyxXQUFZLFFBQVMsTUFBTyxPQUFPLEVBQ3BDLENBQUMsV0FBWSxRQUFTLE1BQU8sVUFBVSxFQUN2QyxDQUFDLFdBQVksUUFBUyxNQUFPLE1BQU0sQ0FDckMsRUFFQSxPQUFPLFFBQVEsSUFBSUEsRUFBTyxJQUFLQyxHQUFRLENBQ3JDLE1BQU1DLEVBQWMsVUFBVVAsQ0FBSyxHQUM3QlEsRUFBb0JqQixzQkFBd0JlLEVBQUksVUFBVSxLQUFLQSxFQUFJLEtBQUssS0FBS0MsQ0FBRyxpQkFDdEYsT0FBT1osRUFBTVMsQ0FBWSxFQUFFLE1BQU1JLENBQU8sRUFBRSxLQUFNQyxHQUFXQSxFQUFPLElBQUksQ0FBQyxDQUN6RSxDQUFDLENBQUMsRUFDQyxLQUFNQyxHQUNRcEIsRUFBT0QsRUFBUXFCLENBQU8sRUFBRyxNQUFhLEVBRXZDLElBQUtDLEdBQWMsQ0FDN0IsS0FBTSxDQUFDLElBQUtDLEVBQVEsS0FBTUMsQ0FBUSxFQUFJRixHQUFRLENBQUMsRUFHekNHLElBRjZCRixHQUFRLE1BQU0sR0FBRyxHQUFLLENBQUMsR0FDZCxDQUFDLEdBQUssTUFDZCxRQUFVaEIsRUFBZWUsQ0FBSSxFQUFJRSxHQUFZLEdBRWpGLE1BQU8sQ0FBQyxHQUFHRixFQUFNLEtBQUFHLENBQUksQ0FDdkIsQ0FBQyxDQUNGLENBQ0wsQ0FFQSxNQUFNQyxFQUF1QnJCLEVBQVNPLEVBQU1DLENBQUUsRUFDeENjLEVBQWlCO0FBQUEsNkJBQ0loQixDQUFLO0FBQUEsVUFDeEJlLEVBQU0sR0FBRztBQUFBLGtCQUdqQixPQUFPcEIsRUFBTVMsQ0FBWSxFQUFFLE1BQU1ZLENBQU0sRUFDcEMsS0FBTVAsR0FBV0EsRUFBTyxJQUFJLENBQUMsRUFDN0IsS0FBSyxDQUFDUSxFQUFtQixDQUFDLElBQU1BLEVBQUssSUFBS04sR0FBUyxDQUNsRCxLQUFNLENBQUMsSUFBS0MsRUFBUSxLQUFNQyxDQUFRLEVBQUlGLEVBR2hDRyxJQUY2QkYsR0FBUSxNQUFNLEdBQUcsR0FBSyxDQUFDLEdBQ2QsQ0FBQyxHQUFLLE1BQ2QsUUFBVWhCLEVBQWVlLENBQUksRUFBSUUsR0FBWSxHQUVqRixNQUFPLENBQUMsR0FBR0YsRUFBTSxLQUFBRyxDQUFJLENBQ3ZCLENBQUMsQ0FBQyxFQUNELE1BQU9JLEdBQWlCLENBQ3ZCLE1BQU16QixFQUFhLENBQ2pCLE9BQUFVLEVBQ0EsU0FBVU4sRUFDVixNQUFPTCxFQUFXLGVBQ2xCLE1BQU8wQixFQUFNLE9BQ2YsRUFBR25CLENBQU8sQ0FDWixDQUFDLENBQ0wiLAogICJuYW1lcyI6IFsiZmxhdHRlbiIsICJ1bmlxQnkiLCAiYXFsIiwgIkVycm9yVHlwZXMiLCAibG9nRXhjZXB0aW9uIiwgImdldExpbWl0IiwgInVzZURiIiwgImdldERpc3BsYXlOYW1lIiwgImV2ZW50Q2F0ZWdvcnkiLCAiZ2V0U2VhcmNoTGlzdCIsICJjb250ZXh0IiwgInF1ZXJ5IiwgImZyb20iLCAidG8iLCAiYWN0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJmaWVsZHMiLCAib2JqIiwgInFyeSIsICJ1c2VyUXJ5IiwgImN1cnNvciIsICJyZXN1bHRzIiwgIml0ZW0iLCAiaXRlbUlkIiwgIml0ZW1OYW1lIiwgIm5hbWUiLCAibGltaXQiLCAiYXFsUXJ5IiwgImxpc3QiLCAiZXJyb3IiXQp9Cg==
@@ -0,0 +1,2 @@
1
+ import { SMSParamsType } from '../types/notifications.types.js';
2
+ export declare const sendSms: ({ context, text, user, variables }: SMSParamsType) => Promise<boolean>;
@@ -1,2 +1,2 @@
1
- import{PublishCommand as p,SNSClient as c}from"@aws-sdk/client-sns";import{parsePhone as u,parseTemplate as f}from"@nlabs/utils";import{Config as t}from"../config";import{ErrorTypes as y}from"../types/error.types";import{logError as d}from"../utils/analyticsUtils";const M="sms",w=async({context:n,text:o,user:e,variables:s={}})=>{const a="sendSms",i=new c({credentials:t.get("aws.credentials"),region:t.get("aws.region")}),{country:S="US",phone:m}=e,g=u(m,S),l=f(o,s);return await i.send(new p({Message:l,MessageAttributes:{"AWS.SNS.SMS.SMSType":{DataType:"String",StringValue:"Transactional"},"AWS.SNS.SMS.SenderID":{DataType:"String",StringValue:n.config.details.id.trim().replace(/ /g,"").substring(0,11)}},PhoneNumber:g})).then(r=>!0).catch(r=>(d({action:a,category:M,label:y.SMS_ERROR},r,{session:e}),!1))};export{w as sendSms};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc21zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtQdWJsaXNoQ29tbWFuZCwgU05TQ2xpZW50fSBmcm9tICdAYXdzLXNkay9jbGllbnQtc25zJztcbmltcG9ydCB7cGFyc2VQaG9uZSwgcGFyc2VUZW1wbGF0ZX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7U01TUGFyYW1zVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucy50eXBlcyc7XG5pbXBvcnQge1Nlc3Npb259IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3Ntcyc7XG5cbmV4cG9ydCBjb25zdCBzZW5kU21zID0gYXN5bmMgKHtcbiAgY29udGV4dCxcbiAgdGV4dCxcbiAgdXNlcixcbiAgdmFyaWFibGVzID0ge31cbn06IFNNU1BhcmFtc1R5cGUpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnc2VuZFNtcyc7XG4gIGNvbnN0IHNuc0NsaWVudCA9IG5ldyBTTlNDbGllbnQoe1xuICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICB9KTtcbiAgY29uc3Qge2NvdW50cnkgPSAnVVMnLCBwaG9uZX0gPSB1c2VyO1xuICBjb25zdCBwaG9uZU51bWJlciA9IHBhcnNlUGhvbmUocGhvbmUsIGNvdW50cnkpO1xuICBjb25zdCB0ZW1wbGF0ZUNvbnRlbnQ6IHN0cmluZyA9IHBhcnNlVGVtcGxhdGUodGV4dCwgdmFyaWFibGVzKTtcblxuICByZXR1cm4gYXdhaXQgc25zQ2xpZW50XG4gICAgLnNlbmQoXG4gICAgICBuZXcgUHVibGlzaENvbW1hbmQoe1xuICAgICAgICBNZXNzYWdlOiB0ZW1wbGF0ZUNvbnRlbnQsXG4gICAgICAgIE1lc3NhZ2VBdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgJ0FXUy5TTlMuU01TLlNNU1R5cGUnOiB7XG4gICAgICAgICAgICBEYXRhVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgICBTdHJpbmdWYWx1ZTogJ1RyYW5zYWN0aW9uYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICAnQVdTLlNOUy5TTVMuU2VuZGVySUQnOiB7XG4gICAgICAgICAgICBEYXRhVHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgICBTdHJpbmdWYWx1ZTogY29udGV4dC5jb25maWcuZGV0YWlscy5pZC50cmltKCkucmVwbGFjZSgvIC9nLCAnJykuc3Vic3RyaW5nKDAsIDExKVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgUGhvbmVOdW1iZXI6IHBob25lTnVtYmVyXG4gICAgICB9KVxuICAgIClcbiAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyh7cmVzfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKHtlcnJvcn0pO1xuICAgICAgbG9nRXJyb3Ioe1xuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5TTVNfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7c2Vzc2lvbjogdXNlciBhcyBTZXNzaW9ufSk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLGtCQUFBQSxFQUFnQixhQUFBQyxNQUFnQixzQkFDeEMsT0FBUSxjQUFBQyxFQUFZLGlCQUFBQyxNQUFvQixlQUV4QyxPQUFRLFVBQUFDLE1BQWEsWUFDckIsT0FBUSxjQUFBQyxNQUFpQix1QkFHekIsT0FBUSxZQUFBQyxNQUFlLDBCQUV2QixNQUFNQyxFQUF3QixNQUVqQkMsRUFBVSxNQUFPLENBQzVCLFFBQUFDLEVBQ0EsS0FBQUMsRUFDQSxLQUFBQyxFQUNBLFVBQUFDLEVBQVksQ0FBQyxDQUNmLElBQXVDLENBQ3JDLE1BQU1DLEVBQWlCLFVBQ2pCQyxFQUFZLElBQUliLEVBQVUsQ0FDOUIsWUFBYUcsRUFBTyxJQUFJLGlCQUFpQixFQUN6QyxPQUFRQSxFQUFPLElBQUksWUFBWSxDQUNqQyxDQUFDLEVBQ0ssQ0FBQyxRQUFBVyxFQUFVLEtBQU0sTUFBQUMsQ0FBSyxFQUFJTCxFQUMxQk0sRUFBY2YsRUFBV2MsRUFBT0QsQ0FBTyxFQUN2Q0csRUFBMEJmLEVBQWNPLEVBQU1FLENBQVMsRUFFN0QsT0FBTyxNQUFNRSxFQUNWLEtBQ0MsSUFBSWQsRUFBZSxDQUNqQixRQUFTa0IsRUFDVCxrQkFBbUIsQ0FDakIsc0JBQXVCLENBQ3JCLFNBQVUsU0FDVixZQUFhLGVBQ2YsRUFDQSx1QkFBd0IsQ0FDdEIsU0FBVSxTQUNWLFlBQWFULEVBQVEsT0FBTyxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQVEsS0FBTSxFQUFFLEVBQUUsVUFBVSxFQUFHLEVBQUUsQ0FDakYsQ0FDRixFQUNBLFlBQWFRLENBQ2YsQ0FBQyxDQUNILEVBQ0MsS0FBTUUsR0FFRSxFQUNSLEVBQ0EsTUFBT0MsSUFFTmQsRUFBUyxDQUNQLE9BQUFPLEVBQ0EsU0FBVU4sRUFDVixNQUFPRixFQUFXLFNBQ3BCLEVBQUdlLEVBQU8sQ0FBQyxRQUFTVCxDQUFlLENBQUMsRUFFN0IsR0FDUixDQUNMIiwKICAibmFtZXMiOiBbIlB1Ymxpc2hDb21tYW5kIiwgIlNOU0NsaWVudCIsICJwYXJzZVBob25lIiwgInBhcnNlVGVtcGxhdGUiLCAiQ29uZmlnIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAiZXZlbnRDYXRlZ29yeSIsICJzZW5kU21zIiwgImNvbnRleHQiLCAidGV4dCIsICJ1c2VyIiwgInZhcmlhYmxlcyIsICJhY3Rpb24iLCAic25zQ2xpZW50IiwgImNvdW50cnkiLCAicGhvbmUiLCAicGhvbmVOdW1iZXIiLCAidGVtcGxhdGVDb250ZW50IiwgInJlcyIsICJlcnJvciJdCn0K
1
+ import{PublishCommand as p,SNSClient as c}from"@aws-sdk/client-sns";import{parsePhone as u,parseTemplate as f}from"@nlabs/utils/parsers/strings";import{Config as t}from"../config.js";import{ErrorTypes as y}from"../types/error.types.js";import{logError as d}from"../utils/analyticsUtils.js";const M="sms",w=async({context:n,text:o,user:e,variables:s={}})=>{const a="sendSms",i=new c({credentials:t.get("aws.credentials"),region:t.get("aws.region")}),{country:S="US",phone:m=""}=e||{},g=u(m,S),l=f(o||"",s);return await i.send(new p({Message:l,MessageAttributes:{"AWS.SNS.SMS.SMSType":{DataType:"String",StringValue:"Transactional"},"AWS.SNS.SMS.SenderID":{DataType:"String",StringValue:n.config?.details?.id?.trim().replace(/ /g,"").substring(0,11)||""}},PhoneNumber:g})).then(r=>!0).catch(r=>(d({action:a,category:M,label:y.SMS_ERROR},r,{session:e}),!1))};export{w as sendSms};
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc21zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtQdWJsaXNoQ29tbWFuZCwgU05TQ2xpZW50fSBmcm9tICdAYXdzLXNkay9jbGllbnQtc25zJztcbmltcG9ydCB7cGFyc2VQaG9uZSwgcGFyc2VUZW1wbGF0ZX0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQge1NNU1BhcmFtc1R5cGV9IGZyb20gJy4uL3R5cGVzL25vdGlmaWNhdGlvbnMudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMuanMnO1xuaW1wb3J0IHtTZXNzaW9ufSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc21zJztcblxuZXhwb3J0IGNvbnN0IHNlbmRTbXMgPSBhc3luYyAoe1xuICBjb250ZXh0LFxuICB0ZXh0LFxuICB1c2VyLFxuICB2YXJpYWJsZXMgPSB7fVxufTogU01TUGFyYW1zVHlwZSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdzZW5kU21zJztcbiAgY29uc3Qgc25zQ2xpZW50ID0gbmV3IFNOU0NsaWVudCh7XG4gICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gIH0pO1xuICBjb25zdCB7Y291bnRyeSA9ICdVUycsIHBob25lID0gJyd9ID0gdXNlciB8fCB7fTtcbiAgY29uc3QgcGhvbmVOdW1iZXIgPSBwYXJzZVBob25lKHBob25lLCBjb3VudHJ5KTtcbiAgY29uc3QgdGVtcGxhdGVDb250ZW50OiBzdHJpbmcgPSBwYXJzZVRlbXBsYXRlKHRleHQgfHwgJycsIHZhcmlhYmxlcyk7XG5cbiAgcmV0dXJuIGF3YWl0IHNuc0NsaWVudFxuICAgIC5zZW5kKFxuICAgICAgbmV3IFB1Ymxpc2hDb21tYW5kKHtcbiAgICAgICAgTWVzc2FnZTogdGVtcGxhdGVDb250ZW50LFxuICAgICAgICBNZXNzYWdlQXR0cmlidXRlczoge1xuICAgICAgICAgICdBV1MuU05TLlNNUy5TTVNUeXBlJzoge1xuICAgICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgICAgU3RyaW5nVmFsdWU6ICdUcmFuc2FjdGlvbmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgJ0FXUy5TTlMuU01TLlNlbmRlcklEJzoge1xuICAgICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgICAgU3RyaW5nVmFsdWU6IGNvbnRleHQuY29uZmlnPy5kZXRhaWxzPy5pZD8udHJpbSgpLnJlcGxhY2UoLyAvZywgJycpLnN1YnN0cmluZygwLCAxMSkgfHwgJydcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFBob25lTnVtYmVyOiBwaG9uZU51bWJlclxuICAgICAgfSlcbiAgICApXG4gICAgLnRoZW4oKHJlcykgPT4ge1xuICAgICAgY29uc29sZS5sb2coe3Jlc30pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyh7ZXJyb3J9KTtcbiAgICAgIGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuU01TX0VSUk9SXG4gICAgICB9LCBlcnJvciwge3Nlc3Npb246IHVzZXIgYXMgU2Vzc2lvbn0pO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxrQkFBQUEsRUFBZ0IsYUFBQUMsTUFBZ0Isc0JBQ3hDLE9BQVEsY0FBQUMsRUFBWSxpQkFBQUMsTUFBb0IsK0JBRXhDLE9BQVEsVUFBQUMsTUFBYSxlQUNyQixPQUFRLGNBQUFDLE1BQWlCLDBCQUV6QixPQUFRLFlBQUFDLE1BQWUsNkJBR3ZCLE1BQU1DLEVBQXdCLE1BRWpCQyxFQUFVLE1BQU8sQ0FDNUIsUUFBQUMsRUFDQSxLQUFBQyxFQUNBLEtBQUFDLEVBQ0EsVUFBQUMsRUFBWSxDQUFDLENBQ2YsSUFBdUMsQ0FDckMsTUFBTUMsRUFBaUIsVUFDakJDLEVBQVksSUFBSWIsRUFBVSxDQUM5QixZQUFhRyxFQUFPLElBQUksaUJBQWlCLEVBQ3pDLE9BQVFBLEVBQU8sSUFBSSxZQUFZLENBQ2pDLENBQUMsRUFDSyxDQUFDLFFBQUFXLEVBQVUsS0FBTSxNQUFBQyxFQUFRLEVBQUUsRUFBSUwsR0FBUSxDQUFDLEVBQ3hDTSxFQUFjZixFQUFXYyxFQUFPRCxDQUFPLEVBQ3ZDRyxFQUEwQmYsRUFBY08sR0FBUSxHQUFJRSxDQUFTLEVBRW5FLE9BQU8sTUFBTUUsRUFDVixLQUNDLElBQUlkLEVBQWUsQ0FDakIsUUFBU2tCLEVBQ1Qsa0JBQW1CLENBQ2pCLHNCQUF1QixDQUNyQixTQUFVLFNBQ1YsWUFBYSxlQUNmLEVBQ0EsdUJBQXdCLENBQ3RCLFNBQVUsU0FDVixZQUFhVCxFQUFRLFFBQVEsU0FBUyxJQUFJLEtBQUssRUFBRSxRQUFRLEtBQU0sRUFBRSxFQUFFLFVBQVUsRUFBRyxFQUFFLEdBQUssRUFDekYsQ0FDRixFQUNBLFlBQWFRLENBQ2YsQ0FBQyxDQUNILEVBQ0MsS0FBTUUsR0FFRSxFQUNSLEVBQ0EsTUFBT0MsSUFFTmQsRUFBUyxDQUNQLE9BQUFPLEVBQ0EsU0FBVU4sRUFDVixNQUFPRixFQUFXLFNBQ3BCLEVBQUdlLEVBQU8sQ0FBQyxRQUFTVCxDQUFlLENBQUMsRUFFN0IsR0FDUixDQUNMIiwKICAibmFtZXMiOiBbIlB1Ymxpc2hDb21tYW5kIiwgIlNOU0NsaWVudCIsICJwYXJzZVBob25lIiwgInBhcnNlVGVtcGxhdGUiLCAiQ29uZmlnIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAiZXZlbnRDYXRlZ29yeSIsICJzZW5kU21zIiwgImNvbnRleHQiLCAidGV4dCIsICJ1c2VyIiwgInZhcmlhYmxlcyIsICJhY3Rpb24iLCAic25zQ2xpZW50IiwgImNvdW50cnkiLCAicGhvbmUiLCAicGhvbmVOdW1iZXIiLCAidGVtcGxhdGVDb250ZW50IiwgInJlcyIsICJlcnJvciJdCn0K
@@ -0,0 +1,4 @@
1
+ import type { ApiContext } from '../types/auth.types.js';
2
+ import type { StatisticsType } from '../types/statistics.types.js';
3
+ export declare const getGlobalStatistics: (context: ApiContext) => Promise<StatisticsType>;
4
+ export declare const updateGlobalStatistics: (context: ApiContext) => Promise<StatisticsType>;
@@ -1,8 +1,8 @@
1
- import{aql as a}from"arangojs";import{getActiveUserCount as u}from"./users";import{ErrorTypes as c}from"../types/error.types";import{logError as n}from"../utils/analyticsUtils";import{useDb as p}from"../utils/arangodbUtils";const l="statistics",b=t=>{const r="getGlobalStatistics",{databaseName:e}=t,i=a`FOR s IN statistics
1
+ import{aql as a}from"arangojs";import{ErrorTypes as c}from"../types/error.types.js";import{logError as p}from"../utils/analyticsUtils.js";import{useDb as n}from"../utils/arangodbUtils.js";import{getActiveUserCount as y}from"./users.js";const l="statistics",b=t=>{const r="getGlobalStatistics",{databaseName:e}=t,i=a`FOR s IN statistics
2
2
  FILTER s.isGlobal == true
3
3
  LIMIT 1
4
- RETURN s`;return p(e).query(i).then(s=>s.next()).catch(s=>n({action:r,category:l,label:c.DATABASE_ERROR},s,t))},S=t=>{const r="updateGlobalStatistics",{databaseName:e}=t,s={activeUsers:u(t)},m=a`UPSERT {isGlobal: true}
4
+ RETURN s`;return n(e).query(i).then(s=>s.next()).catch(s=>{throw p({action:r,category:l,label:c.DATABASE_ERROR},s,t)})},S=t=>{const r="updateGlobalStatistics",{databaseName:e}=t,s={activeUsers:y(t)},m=a`UPSERT {isGlobal: true}
5
5
  INSERT ${s}
6
6
  UPDATE ${s}
7
- IN statistics RETURN NEW`;return p(e).query(m).then(o=>o.next()).catch(o=>n({action:r,category:l,label:c.DATABASE_ERROR},o,t))};export{b as getGlobalStatistics,S as updateGlobalStatistics};
8
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3RhdGlzdGljcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge2dldEFjdGl2ZVVzZXJDb3VudH0gZnJvbSAnLi91c2Vycyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dCwgU3RhdGlzdGljc1R5cGV9IGZyb20gJy4uL3R5cGVzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ3N0YXRpc3RpY3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0R2xvYmFsU3RhdGlzdGljcyA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxTdGF0aXN0aWNzVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRHbG9iYWxTdGF0aXN0aWNzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBzdGF0aXN0aWNzUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBzIElOIHN0YXRpc3RpY3NcbiAgICBGSUxURVIgcy5pc0dsb2JhbCA9PSB0cnVlXG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBzYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShzdGF0aXN0aWNzUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlR2xvYmFsU3RhdGlzdGljcyA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxTdGF0aXN0aWNzVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVHbG9iYWxTdGF0aXN0aWNzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBhY3RpdmVVc2VycyA9IGdldEFjdGl2ZVVzZXJDb3VudChjb250ZXh0KTtcbiAgY29uc3QgdXBkYXRlZERhdGEgPSB7YWN0aXZlVXNlcnN9O1xuXG4gIGNvbnN0IHVwZGF0ZVF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2lzR2xvYmFsOiB0cnVlfVxuICBJTlNFUlQgJHt1cGRhdGVkRGF0YX1cbiAgVVBEQVRFICR7dXBkYXRlZERhdGF9XG4gIElOIHN0YXRpc3RpY3MgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXBkYXRlUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxPQUFBQSxNQUFVLFdBR2xCLE9BQVEsc0JBQUFDLE1BQXlCLFVBQ2pDLE9BQVEsY0FBQUMsTUFBaUIsdUJBQ3pCLE9BQVEsWUFBQUMsTUFBZSwwQkFDdkIsT0FBUSxTQUFBQyxNQUFZLHlCQUlwQixNQUFNQyxFQUF3QixhQUVqQkMsRUFBdUJDLEdBQWlELENBQ25GLE1BQU1DLEVBQWlCLHNCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUYsRUFDakJHLEVBQTRCVjtBQUFBO0FBQUE7QUFBQSxjQUtsQyxPQUFPSSxFQUFNSyxDQUFZLEVBQUUsTUFBTUMsQ0FBZSxFQUM3QyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixNQUFPQyxHQUFpQlQsRUFBUyxDQUNoQyxPQUFBSyxFQUNBLFNBQVVILEVBQ1YsTUFBT0gsRUFBVyxjQUNwQixFQUFHVSxFQUFPTCxDQUFPLENBQUMsQ0FDdEIsRUFFYU0sRUFBMEJOLEdBQWlELENBQ3RGLE1BQU1DLEVBQWlCLHlCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUYsRUFFakJPLEVBQWMsQ0FBQyxZQUREYixFQUFtQk0sQ0FBTyxDQUNkLEVBRTFCUSxFQUF3QmY7QUFBQSxXQUNyQmMsQ0FBVztBQUFBLFdBQ1hBLENBQVc7QUFBQSw0QkFHcEIsT0FBT1YsRUFBTUssQ0FBWSxFQUFFLE1BQU1NLENBQVcsRUFDekMsS0FBTUosR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUJULEVBQVMsQ0FDaEMsT0FBQUssRUFDQSxTQUFVSCxFQUNWLE1BQU9ILEVBQVcsY0FDcEIsRUFBR1UsRUFBT0wsQ0FBTyxDQUFDLENBQ3RCIiwKICAibmFtZXMiOiBbImFxbCIsICJnZXRBY3RpdmVVc2VyQ291bnQiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJ1c2VEYiIsICJldmVudENhdGVnb3J5IiwgImdldEdsb2JhbFN0YXRpc3RpY3MiLCAiY29udGV4dCIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgInN0YXRpc3RpY3NRdWVyeSIsICJjdXJzb3IiLCAiZXJyb3IiLCAidXBkYXRlR2xvYmFsU3RhdGlzdGljcyIsICJ1cGRhdGVkRGF0YSIsICJ1cGRhdGVRdWVyeSJdCn0K
7
+ IN statistics RETURN NEW`;return n(e).query(m).then(o=>o.next()).catch(o=>p({action:r,category:l,label:c.DATABASE_ERROR},o,t))};export{b as getGlobalStatistics,S as updateGlobalStatistics};
8
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3RhdGlzdGljcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuaW1wb3J0IHtnZXRBY3RpdmVVc2VyQ291bnR9IGZyb20gJy4vdXNlcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7U3RhdGlzdGljc1R5cGV9IGZyb20gJy4uL3R5cGVzL3N0YXRpc3RpY3MudHlwZXMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc3RhdGlzdGljcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRHbG9iYWxTdGF0aXN0aWNzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFN0YXRpc3RpY3NUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEdsb2JhbFN0YXRpc3RpY3MnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHN0YXRpc3RpY3NRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHMgSU4gc3RhdGlzdGljc1xuICAgIEZJTFRFUiBzLmlzR2xvYmFsID09IHRydWVcbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KHN0YXRpc3RpY3NRdWVyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwgY29udGV4dCk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlR2xvYmFsU3RhdGlzdGljcyA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxTdGF0aXN0aWNzVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICd1cGRhdGVHbG9iYWxTdGF0aXN0aWNzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBhY3RpdmVVc2VycyA9IGdldEFjdGl2ZVVzZXJDb3VudChjb250ZXh0KTtcbiAgY29uc3QgdXBkYXRlZERhdGEgPSB7YWN0aXZlVXNlcnN9O1xuXG4gIGNvbnN0IHVwZGF0ZVF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2lzR2xvYmFsOiB0cnVlfVxuICBJTlNFUlQgJHt1cGRhdGVkRGF0YX1cbiAgVVBEQVRFICR7dXBkYXRlZERhdGF9XG4gIElOIHN0YXRpc3RpY3MgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkodXBkYXRlUXVlcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxPQUFBQSxNQUFVLFdBR2xCLE9BQVEsY0FBQUMsTUFBaUIsMEJBQ3pCLE9BQVEsWUFBQUMsTUFBZSw2QkFDdkIsT0FBUSxTQUFBQyxNQUFZLDRCQUNwQixPQUFRLHNCQUFBQyxNQUF5QixhQUtqQyxNQUFNQyxFQUF3QixhQUVqQkMsRUFBdUJDLEdBQWlELENBQ25GLE1BQU1DLEVBQWlCLHNCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUYsRUFDakJHLEVBQTRCVjtBQUFBO0FBQUE7QUFBQSxjQUtsQyxPQUFPRyxFQUFNTSxDQUFZLEVBQUUsTUFBTUMsQ0FBZSxFQUM3QyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixNQUFPQyxHQUFpQixDQUN2QixNQUFNVixFQUFTLENBQ2IsT0FBQU0sRUFDQSxTQUFVSCxFQUNWLE1BQU9KLEVBQVcsY0FDcEIsRUFBR1csRUFBT0wsQ0FBTyxDQUNuQixDQUFDLENBQ0wsRUFFYU0sRUFBMEJOLEdBQWlELENBQ3RGLE1BQU1DLEVBQWlCLHlCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUYsRUFFakJPLEVBQWMsQ0FBQyxZQUREVixFQUFtQkcsQ0FBTyxDQUNkLEVBRTFCUSxFQUF3QmY7QUFBQSxXQUNyQmMsQ0FBVztBQUFBLFdBQ1hBLENBQVc7QUFBQSw0QkFHcEIsT0FBT1gsRUFBTU0sQ0FBWSxFQUFFLE1BQU1NLENBQVcsRUFDekMsS0FBTUosR0FBV0EsRUFBTyxLQUFLLENBQUMsRUFDOUIsTUFBT0MsR0FBaUJWLEVBQVMsQ0FDaEMsT0FBQU0sRUFDQSxTQUFVSCxFQUNWLE1BQU9KLEVBQVcsY0FDcEIsRUFBR1csRUFBT0wsQ0FBTyxDQUFDLENBQ3RCIiwKICAibmFtZXMiOiBbImFxbCIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgInVzZURiIiwgImdldEFjdGl2ZVVzZXJDb3VudCIsICJldmVudENhdGVnb3J5IiwgImdldEdsb2JhbFN0YXRpc3RpY3MiLCAiY29udGV4dCIsICJhY3Rpb24iLCAiZGF0YWJhc2VOYW1lIiwgInN0YXRpc3RpY3NRdWVyeSIsICJjdXJzb3IiLCAiZXJyb3IiLCAidXBkYXRlR2xvYmFsU3RhdGlzdGljcyIsICJ1cGRhdGVkRGF0YSIsICJ1cGRhdGVRdWVyeSJdCn0K
@@ -0,0 +1,7 @@
1
+ import type { ApiContext } from '../types/auth.types.js';
2
+ import type { PaymentPlan, PaymentSubscription } from '../types/payments.types.js';
3
+ export declare const getPlanList: (context: ApiContext, from?: number, to?: number) => Promise<PaymentPlan[]>;
4
+ export declare const getSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
5
+ export declare const addPlan: (context: ApiContext, item: PaymentPlan) => Promise<PaymentPlan>;
6
+ export declare const addSubscription: (context: ApiContext, item: any) => Promise<PaymentSubscription>;
7
+ export declare const deleteSubscription: (context: ApiContext) => Promise<boolean>;
@@ -1,12 +1,12 @@
1
- import{createHash as x,parseChar as w,parseId as C,parseNum as v,parseVarChar as _}from"@nlabs/utils";import{aql as D}from"arangojs";import{DateTime as U}from"luxon";import{getUser as $}from"./users";import{ErrorTypes as d}from"../types/error.types";import{logError as I,logException as L}from"../utils/analyticsUtils";import{getLimit as F,useDb as P}from"../utils/arangodbUtils";import{isAdminUser as j}from"../utils/sessionUtils";import{getStripeClient as q}from"../utils/stripeUtils";const m="subscription",X=(t,r=0,s=30)=>{const i="getList",{databaseName:e}=t,o=`FOR p IN plans
2
- ${F(r,s).aql}
1
+ import{aql as T}from"arangojs";import{DateTime as Q}from"luxon";import{ErrorTypes as d}from"../types/error.types.js";import{logError as I,logException as D}from"../utils/analyticsUtils.js";import{getLimit as U,useDb as f}from"../utils/arangodbUtils.js";import{isAdminUser as $}from"../utils/sessionUtils.js";import{getStripeClient as w}from"../utils/stripeUtils.js";import{getUser as F}from"./users.js";import{parseNum as C}from"@nlabs/utils/parsers/numbers";import{createHash as v,parseChar as B,parseId as N,parseVarChar as q}from"@nlabs/utils/parsers/strings";const l="subscription",Y=(t,e=0,o=30)=>{const a="getList",{databaseName:n}=t,c=`FOR p IN plans
2
+ ${U(e,o).aql}
3
3
  SORT p.amount
4
- RETURN p`;return P(e).query(o).then(n=>n.all()).then((n=[])=>n).catch(n=>I({action:i,category:m,label:d.DATABASE_ERROR},n,{}).then(()=>null).catch(c=>Promise.reject(c)))},B=t=>{const r="getItem",{databaseName:s,session:{userId:i}}=t,e=`FOR s IN subscriptions
5
- FILTER s.userId == ${i} && s.cancelled > 0
4
+ RETURN p`;return f(n).query(c).then(r=>r.all()).then((r=[])=>r).catch(r=>{throw I({action:a,category:l,label:d.DATABASE_ERROR},r,{})})},j=t=>{const e="getItem",{databaseName:o,session:{userId:a}={}}=t,n=`FOR s IN subscriptions
5
+ FILTER s.userId == ${a} && s.cancelled > 0
6
6
  LET plan = FIRST(
7
7
  FOR p IN plans
8
8
  FILTER p._key == s.planId
9
9
  )
10
10
  LIMIT 1
11
- RETURN MERGE(s, {plan: plan})`;return P(s).query(e).then(a=>a.next()).then((a={})=>a).catch(a=>I({action:r,category:m,label:d.DATABASE_ERROR},a,{}).then(()=>null).catch(o=>Promise.reject(o)))},Y=(t,r)=>{const s="addPlan",{databaseName:i,session:e}=t;if(!j(e))return L({action:s,category:m,label:"unauthorized",value:d.INVALID_SESSION},t).then(()=>null);const o=Date.now(),n=C(r.id),c=n===""?x(`subscription-${e.userId}`):n,{amount:y,currency:p="USD",description:g,interval:R,intervalCount:h,name:f}=r,u=v(y),A=w(R,5).toLowerCase(),S=v(h,5),E=_(f,32),l=_(g,32),O=D`INSERT ${{_key:c,added:o,amount:u,currency:p,description:l,interval:A,intervalCount:S,modified:o,name:E}} IN plans RETURN NEW`;return P(i).query(O).then(b=>b.next()).then(b=>{const T=q(),Q={amount:u*100,currency:p,id:c,interval:A,interval_count:S,metadata:{},product:{name:E,statement_descriptor:l}};return T.plans.create(Q).then(()=>b)}).catch(b=>I({action:s,category:m,label:d.DATABASE_ERROR},b,{}).then(()=>null).catch(T=>Promise.reject(T)))},Z=(t,r)=>{const s="addSubscription",{databaseName:i,session:{userId:e,userAccess:a}}=t;if(!(a>2))return L({action:s,category:m,label:"unauthorized",value:"invalid_session"},t).then(()=>null);const n=Date.now(),c=C(r.id),y=c===""?x(`subscription-${e}`):c,{planId:p,trialEnd:g,trialPeriod:R}=r,h=C(p),f=0;let u=g||Date.now();return f&&(u=U.local().plus({days:R}).toMillis()),$(t,{userId:e}).then(A=>{const E=D`INSERT ${{_key:y,added:n,cancelDate:0,modified:n,planId:h,trialEnd:u,userId:e}} IN plans RETURN NEW`;return P(i).query(E).then(l=>l.next()).then((l={})=>q().subscriptions.create({customer:A.stripeCustomerId,items:[{plan:h}],metadata:{userId:e},trial_end:u}).then(()=>l)).catch(l=>I({action:s,category:m,label:d.DATABASE_ERROR},l,{}).then(()=>null).catch(N=>Promise.reject(N)))})},tt=t=>{const r="deleteSubscription",{databaseName:s}=t,i=Date.now();return B(t).then(e=>q().subscriptions.cancel(e.transactionId).then(({canceled_at:o})=>{if(o){const c=D`UPDATE s WITH ${{cancelDate:o,modified:i,planId:""}} IN subscriptions`;return P(s).query(c).then(()=>!0).catch(y=>I({action:r,category:m,label:d.DATABASE_ERROR},y,{}).then(()=>null).catch(p=>Promise.reject(p)))}return!1}))};export{Y as addPlan,Z as addSubscription,tt as deleteSubscription,X as getPlanList,B as getSubscription};
12
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3Vic2NyaXB0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7Z2V0VXNlcn0gZnJvbSAnLi91c2Vycyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMnO1xuaW1wb3J0IHtpc0FkbWluVXNlcn0gZnJvbSAnLi4vdXRpbHMvc2Vzc2lvblV0aWxzJztcbmltcG9ydCB7Z2V0U3RyaXBlQ2xpZW50fSBmcm9tICcuLi91dGlscy9zdHJpcGVVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7UGF5bWVudEludGVydmFsLCBQYXltZW50UGxhbiwgUGF5bWVudFN1YnNjcmlwdGlvbn0gZnJvbSAnLi4vdHlwZXMvcGF5bWVudHMudHlwZXMnO1xuXG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IGNvbnN0IGdldFBsYW5MaXN0ID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGZyb206IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IFByb21pc2U8UGF5bWVudFBsYW5bXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBsaW1pdDogQXJhbmdvRGJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHAgSU4gcGxhbnNcbiAgICAgICR7bGltaXQuYXFsfVxuICAgICAgU09SVCBwLmFtb3VudFxuICAgICAgUkVUVVJOIHBgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGxpc3QgPSBbXSkgPT4gbGlzdClcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBzIElOIHN1YnNjcmlwdGlvbnNcbiAgICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke3Nlc3Npb25JZH0gJiYgcy5jYW5jZWxsZWQgPiAwXG4gICAgICBMRVQgcGxhbiA9IEZJUlNUKFxuICAgICAgICBGT1IgcCBJTiBwbGFuc1xuICAgICAgICBGSUxURVIgcC5fa2V5ID09IHMucGxhbklkXG4gICAgICApXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gTUVSR0Uocywge3BsYW46IHBsYW59KWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHN1YnNjcmlwdGlvbiA9IHt9KSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRQbGFuID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW06IFBheW1lbnRQbGFuKTogUHJvbWlzZTxQYXltZW50UGxhbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRQbGFuJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbn0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6IEVycm9yVHlwZXMuSU5WQUxJRF9TRVNTSU9OXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbS5pZCk7XG4gIGNvbnN0IHBsYW5JZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7c2Vzc2lvbi51c2VySWR9YCkgOiBmb3JtYXRJZDtcbiAgY29uc3Qge2Ftb3VudCwgY3VycmVuY3kgPSAnVVNEJywgZGVzY3JpcHRpb24sIGludGVydmFsLCBpbnRlcnZhbENvdW50LCBuYW1lfSA9IGl0ZW07XG4gIGNvbnN0IGZvcm1hdEFtb3VudDogbnVtYmVyID0gcGFyc2VOdW0oYW1vdW50KTtcbiAgY29uc3QgZm9ybWF0SW50ZXJ2YWw6IFBheW1lbnRJbnRlcnZhbCA9IHBhcnNlQ2hhcihpbnRlcnZhbCwgNSkudG9Mb3dlckNhc2UoKSBhcyBQYXltZW50SW50ZXJ2YWw7XG4gIGNvbnN0IGZvcm1hdEludGVydmFsQ250OiBudW1iZXIgPSBwYXJzZU51bShpbnRlcnZhbENvdW50LCA1KTtcbiAgY29uc3QgZm9ybWF0TmFtZTogc3RyaW5nID0gcGFyc2VWYXJDaGFyKG5hbWUsIDMyKTtcbiAgY29uc3QgZm9ybWF0RGVzYzogc3RyaW5nID0gcGFyc2VWYXJDaGFyKGRlc2NyaXB0aW9uLCAzMik7XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFBsYW4gPSB7XG4gICAgX2tleTogcGxhbklkLFxuICAgIGFkZGVkOiBub3csXG4gICAgYW1vdW50OiBmb3JtYXRBbW91bnQsXG4gICAgY3VycmVuY3ksXG4gICAgZGVzY3JpcHRpb246IGZvcm1hdERlc2MsXG4gICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgIGludGVydmFsQ291bnQ6IGZvcm1hdEludGVydmFsQ250LFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgbmFtZTogZm9ybWF0TmFtZVxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gcGxhbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHBsYW46IFBheW1lbnRQbGFuKSA9PiB7XG4gICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBnZXRTdHJpcGVDbGllbnQoKTtcbiAgICAgIGNvbnN0IHN0cmlwZVBsYW46IHN0cmlwZS5QbGFuQ3JlYXRlUGFyYW1zID0ge1xuICAgICAgICBhbW91bnQ6IGZvcm1hdEFtb3VudCAqIDEwMCxcbiAgICAgICAgY3VycmVuY3ksXG4gICAgICAgIGlkOiBwbGFuSWQsXG4gICAgICAgIGludGVydmFsOiBmb3JtYXRJbnRlcnZhbCxcbiAgICAgICAgaW50ZXJ2YWxfY291bnQ6IGZvcm1hdEludGVydmFsQ250LFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0OiB7XG4gICAgICAgICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICAgICAgICBzdGF0ZW1lbnRfZGVzY3JpcHRvcjogZm9ybWF0RGVzY1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnBsYW5zXG4gICAgICAgIC5jcmVhdGUoc3RyaXBlUGxhbilcbiAgICAgICAgLnRoZW4oKCkgPT4gcGxhbik7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZCwgdXNlckFjY2Vzc319ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbjogYm9vbGVhbiA9IHVzZXJBY2Nlc3MgPiAyO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBzdWJzY3JpcHRpb25JZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7c2Vzc2lvbklkfWApIDogZm9ybWF0SWQ7XG4gIGNvbnN0IHtwbGFuSWQsIHRyaWFsRW5kLCB0cmlhbFBlcmlvZH0gPSBpdGVtO1xuICBjb25zdCBmb3JtYXRQbGFuSWQ6IHN0cmluZyA9IHBhcnNlSWQocGxhbklkKTtcbiAgY29uc3QgZm9ybWF0VHJpYWxQZXJpb2Q6IG51bWJlciA9IDA7XG4gIGxldCBmb3JtYXRUcmlhbEVuZDogbnVtYmVyID0gdHJpYWxFbmQgfHwgRGF0ZS5ub3coKTtcblxuICBpZihmb3JtYXRUcmlhbFBlcmlvZCkge1xuICAgIGZvcm1hdFRyaWFsRW5kID0gRGF0ZVRpbWUubG9jYWwoKS5wbHVzKHtkYXlzOiB0cmlhbFBlcmlvZH0pLnRvTWlsbGlzKCk7XG4gIH1cblxuICByZXR1cm4gZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBzZXNzaW9uSWR9KVxuICAgIC50aGVuKCh1c2VyKSA9PiB7XG4gICAgICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgIF9rZXk6IHN1YnNjcmlwdGlvbklkLFxuICAgICAgICBhZGRlZDogbm93LFxuICAgICAgICBjYW5jZWxEYXRlOiAwLFxuICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICBwbGFuSWQ6IGZvcm1hdFBsYW5JZCxcbiAgICAgICAgdHJpYWxFbmQ6IGZvcm1hdFRyaWFsRW5kLFxuICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBwbGFucyBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHtcbiAgICAgICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBnZXRTdHJpcGVDbGllbnQoKTtcbiAgICAgICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnN1YnNjcmlwdGlvbnNcbiAgICAgICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgICAgICBjdXN0b21lcjogdXNlci5zdHJpcGVDdXN0b21lcklkLFxuICAgICAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBsYW46IGZvcm1hdFBsYW5JZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0cmlhbF9lbmQ6IGZvcm1hdFRyaWFsRW5kXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIGdldFN1YnNjcmlwdGlvbihjb250ZXh0KVxuICAgIC50aGVuKChzdWJzY3JpcHRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IGdldFN0cmlwZUNsaWVudCgpO1xuXG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnN1YnNjcmlwdGlvbnNcbiAgICAgICAgLmNhbmNlbChzdWJzY3JpcHRpb24udHJhbnNhY3Rpb25JZClcbiAgICAgICAgLnRoZW4oKHtjYW5jZWxlZF9hdDogY2FuY2VsRGF0ZX0pID0+IHtcbiAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgY2FuY2VsbGVkIG9uIFN0cmlwZSBiZWZvcmUgdXBkYXRpbmcgdGhlIGRiXG4gICAgICAgICAgaWYoY2FuY2VsRGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgICBjYW5jZWxEYXRlLFxuICAgICAgICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICAgICAgICBwbGFuSWQ6ICcnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUERBVEUgcyBXSVRIICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zYDtcblxuICAgICAgICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICAgICAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGlu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QWMsS0FBSyxJQUFJLEVBRTdCLE9BQU9OLEVBQWdCVCxDQUFPLEVBQzNCLEtBQU1XLEdBQ2dCZCxFQUFnQixFQUVqQixjQUNqQixPQUFPYyxFQUFhLGFBQWEsRUFDakMsS0FBSyxDQUFDLENBQUMsWUFBYStCLENBQVUsSUFBTSxDQUVuQyxHQUFHQSxFQUFZLENBTWIsTUFBTXJDLEVBQW1CakIsa0JBTFcsQ0FDbEMsV0FBQXNELEVBQ0EsU0FBVTNCLEVBQ1YsT0FBUSxFQUNWLENBQ21ELG9CQUVuRCxPQUFPcEIsRUFBTVMsQ0FBWSxFQUFFLE1BQU1DLENBQU0sRUFDcEMsS0FBSyxJQUFNLEVBQUksRUFDZixNQUFPRyxHQUFpQmhCLEVBQVMsQ0FDaEMsT0FBQVcsRUFDQSxTQUFVTCxFQUNWLE1BQU9QLEVBQVcsY0FDcEIsRUFBR2lCLEVBQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFNLElBQUksRUFBRSxNQUFPQSxHQUFVLFFBQVEsT0FBT0EsQ0FBSyxDQUFDLENBQUMsQ0FDMUUsQ0FDQSxNQUFPLEVBQ1QsQ0FBQyxDQUNKLENBQ0wiLAogICJuYW1lcyI6IFsiY3JlYXRlSGFzaCIsICJwYXJzZUNoYXIiLCAicGFyc2VJZCIsICJwYXJzZU51bSIsICJwYXJzZVZhckNoYXIiLCAiYXFsIiwgIkRhdGVUaW1lIiwgImdldFVzZXIiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJsb2dFeGNlcHRpb24iLCAiZ2V0TGltaXQiLCAidXNlRGIiLCAiaXNBZG1pblVzZXIiLCAiZ2V0U3RyaXBlQ2xpZW50IiwgImV2ZW50Q2F0ZWdvcnkiLCAiZ2V0UGxhbkxpc3QiLCAiY29udGV4dCIsICJmcm9tIiwgInRvIiwgImFjdGlvbiIsICJkYXRhYmFzZU5hbWUiLCAiYXFsUXJ5IiwgImN1cnNvciIsICJsaXN0IiwgImVycm9yIiwgImdldFN1YnNjcmlwdGlvbiIsICJzZXNzaW9uSWQiLCAic3Vic2NyaXB0aW9uIiwgImFkZFBsYW4iLCAiaXRlbSIsICJzZXNzaW9uIiwgIm5vdyIsICJmb3JtYXRJZCIsICJwbGFuSWQiLCAiYW1vdW50IiwgImN1cnJlbmN5IiwgImRlc2NyaXB0aW9uIiwgImludGVydmFsIiwgImludGVydmFsQ291bnQiLCAibmFtZSIsICJmb3JtYXRBbW91bnQiLCAiZm9ybWF0SW50ZXJ2YWwiLCAiZm9ybWF0SW50ZXJ2YWxDbnQiLCAiZm9ybWF0TmFtZSIsICJmb3JtYXREZXNjIiwgInBsYW4iLCAic3RyaXBlQ2xpZW50IiwgInN0cmlwZVBsYW4iLCAiYWRkU3Vic2NyaXB0aW9uIiwgInVzZXJBY2Nlc3MiLCAic3Vic2NyaXB0aW9uSWQiLCAidHJpYWxFbmQiLCAidHJpYWxQZXJpb2QiLCAiZm9ybWF0UGxhbklkIiwgImZvcm1hdFRyaWFsUGVyaW9kIiwgImZvcm1hdFRyaWFsRW5kIiwgInVzZXIiLCAiZGVsZXRlU3Vic2NyaXB0aW9uIiwgImNhbmNlbERhdGUiXQp9Cg==
11
+ RETURN MERGE(s, {plan: plan})`;return f(o).query(n).then(s=>s.next()).then((s={})=>s).catch(s=>{throw I({action:e,category:l,label:d.DATABASE_ERROR},s,{})})},Z=(t,e)=>{const o="addPlan",{databaseName:a,session:n}=t;if(!$(n))throw D({action:o,category:l,label:"unauthorized",value:d.INVALID_SESSION},t);const c=Date.now(),r=N(e.id),m=r===""?v(`subscription-${n?.userId}`):r,{amount:y,currency:E="USD",description:g="",interval:h,intervalCount:P,name:R}=e,p=C(y),b=B(h,5).toLowerCase(),S=C(P,5),A=q(R,32),i=q(g,32),x=T`INSERT ${{_key:m,added:c,amount:p,currency:E,description:i,interval:b,intervalCount:S,modified:c,name:A}} IN plans RETURN NEW`;return f(a).query(x).then(u=>u.next()).then(u=>{if(!u)throw new Error("Plan not found");const L=w(),O={amount:p*100,currency:E,id:m,interval:b,interval_count:S,metadata:{},product:{name:A,statement_descriptor:i}};return L.plans.create(O).then(()=>u)}).catch(u=>{throw I({action:o,category:l,label:d.DATABASE_ERROR},u,{})})},tt=(t,e)=>{const o="addSubscription",{databaseName:a,session:{userId:n,userAccess:s}={}}=t;if(!(!!s&&s>2))throw D({action:o,category:l,label:"unauthorized",value:"invalid_session"},t);const r=Date.now(),m=N(e.id),y=m===""?v(`subscription-${n}`):m,{planId:E,trialEnd:g,trialPeriod:h}=e,P=N(E),R=0;let p=g||Date.now();return R&&(p=Q.local().plus({days:h}).toMillis()),F(t,{userId:n||""}).then(b=>{if(!b)throw new Error("User not found");const A=T`INSERT ${{_key:y,added:r,cancelDate:0,modified:r,planId:P,trialEnd:p,userId:n}} IN plans RETURN NEW`;return f(a).query(A).then(i=>i.next()).then(i=>{if(!i)throw new Error("Subscription not found");return w().subscriptions.create({customer:b.stripeCustomerId||"",items:[{plan:P}],metadata:{userId:n||""},trial_end:p}).then(()=>i)}).catch(i=>{throw I({action:o,category:l,label:d.DATABASE_ERROR},i,{})})})},nt=t=>{const e="deleteSubscription",{databaseName:o}=t,a=Date.now();return j(t).then(n=>w().subscriptions.cancel(n?.transactionId||"").then(({canceled_at:c})=>{if(c){const m=T`UPDATE s WITH ${{cancelDate:c,modified:a,planId:""}} IN subscriptions`;return f(o).query(m).then(()=>!0).catch(y=>{throw I({action:e,category:l,label:d.DATABASE_ERROR},y,{})})}return!1}))};export{Z as addPlan,tt as addSubscription,nt as deleteSubscription,Y as getPlanList,j as getSubscription};
12
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvc3Vic2NyaXB0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQgdHlwZSB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvciwgbG9nRXhjZXB0aW9ufSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2dldExpbWl0LCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2lzQWRtaW5Vc2VyfSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHtnZXRTdHJpcGVDbGllbnR9IGZyb20gJy4uL3V0aWxzL3N0cmlwZVV0aWxzLmpzJztcbmltcG9ydCB7Z2V0VXNlcn0gZnJvbSAnLi91c2Vycy5qcyc7XG5cbmltcG9ydCB7cGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL251bWJlcnMnO1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUNoYXIsIHBhcnNlSWQsIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQgdHlwZSB7QXJhbmdvRGJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1BheW1lbnRJbnRlcnZhbCwgUGF5bWVudFBsYW4sIFBheW1lbnRTdWJzY3JpcHRpb259IGZyb20gJy4uL3R5cGVzL3BheW1lbnRzLnR5cGVzLmpzJztcblxuXG5jb25zdCBldmVudENhdGVnb3J5ID0gJ3N1YnNjcmlwdGlvbic7XG5cbmV4cG9ydCBjb25zdCBnZXRQbGFuTGlzdCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmcm9tOiBudW1iZXIgPSAwLCB0bzogbnVtYmVyID0gMzApOiBQcm9taXNlPFBheW1lbnRQbGFuW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0TGlzdCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgbGltaXQ6IEFyYW5nb0RiTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBwIElOIHBsYW5zXG4gICAgICAke2xpbWl0LmFxbH1cbiAgICAgIFNPUlQgcC5hbW91bnRcbiAgICAgIFJFVFVSTiBwYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0ID0gW10pID0+IGxpc3QpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgIH0sIGVycm9yLCB7fSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgcyBJTiBzdWJzY3JpcHRpb25zXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMuY2FuY2VsbGVkID4gMFxuICAgICAgTEVUIHBsYW4gPSBGSVJTVChcbiAgICAgICAgRk9SIHAgSU4gcGxhbnNcbiAgICAgICAgRklMVEVSIHAuX2tleSA9PSBzLnBsYW5JZFxuICAgICAgKVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIE1FUkdFKHMsIHtwbGFuOiBwbGFufSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChzdWJzY3JpcHRpb24gPSB7fSkgPT4gc3Vic2NyaXB0aW9uKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFBsYW4gPSAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogUGF5bWVudFBsYW4pOiBQcm9taXNlPFBheW1lbnRQbGFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFBsYW4nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9ufSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW46IGJvb2xlYW4gPSBpc0FkbWluVXNlcihzZXNzaW9uKTtcblxuICBpZighaXNBZG1pbikge1xuICAgIHRocm93IGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiBFcnJvclR5cGVzLklOVkFMSURfU0VTU0lPTlxuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChpdGVtLmlkKTtcbiAgY29uc3QgcGxhbklkOiBzdHJpbmcgPSBmb3JtYXRJZCA9PT0gJycgPyBjcmVhdGVIYXNoKGBzdWJzY3JpcHRpb24tJHtzZXNzaW9uPy51c2VySWR9YCkgOiBmb3JtYXRJZDtcbiAgY29uc3Qge2Ftb3VudCwgY3VycmVuY3kgPSAnVVNEJywgZGVzY3JpcHRpb24gPSAnJywgaW50ZXJ2YWwsIGludGVydmFsQ291bnQsIG5hbWV9ID0gaXRlbTtcbiAgY29uc3QgZm9ybWF0QW1vdW50OiBudW1iZXIgPSBwYXJzZU51bShhbW91bnQpO1xuICBjb25zdCBmb3JtYXRJbnRlcnZhbDogUGF5bWVudEludGVydmFsID0gcGFyc2VDaGFyKGludGVydmFsLCA1KS50b0xvd2VyQ2FzZSgpIGFzIFBheW1lbnRJbnRlcnZhbDtcbiAgY29uc3QgZm9ybWF0SW50ZXJ2YWxDbnQ6IG51bWJlciA9IHBhcnNlTnVtKGludGVydmFsQ291bnQsIDUpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIobmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDMyKTtcbiAgY29uc3QgaW5zZXJ0OiBQYXltZW50UGxhbiA9IHtcbiAgICBfa2V5OiBwbGFuSWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBhbW91bnQ6IGZvcm1hdEFtb3VudCxcbiAgICBjdXJyZW5jeSxcbiAgICBkZXNjcmlwdGlvbjogZm9ybWF0RGVzYyxcbiAgICBpbnRlcnZhbDogZm9ybWF0SW50ZXJ2YWwsXG4gICAgaW50ZXJ2YWxDb3VudDogZm9ybWF0SW50ZXJ2YWxDbnQsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBuYW1lOiBmb3JtYXROYW1lXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBwbGFucyBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigocGxhbjogUGF5bWVudFBsYW4gfCBudWxsKSA9PiB7XG4gICAgICBpZighcGxhbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsYW4gbm90IGZvdW5kJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IGdldFN0cmlwZUNsaWVudCgpO1xuICAgICAgY29uc3Qgc3RyaXBlUGxhbjogc3RyaXBlLlBsYW5DcmVhdGVQYXJhbXMgPSB7XG4gICAgICAgIGFtb3VudDogZm9ybWF0QW1vdW50ICogMTAwLFxuICAgICAgICBjdXJyZW5jeSxcbiAgICAgICAgaWQ6IHBsYW5JZCxcbiAgICAgICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgICAgICBpbnRlcnZhbF9jb3VudDogZm9ybWF0SW50ZXJ2YWxDbnQsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3Q6IHtcbiAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lLFxuICAgICAgICAgIHN0YXRlbWVudF9kZXNjcmlwdG9yOiBmb3JtYXREZXNjXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBzdHJpcGVDbGllbnQucGxhbnNcbiAgICAgICAgLmNyZWF0ZShzdHJpcGVQbGFuKVxuICAgICAgICAudGhlbigoKSA9PiBwbGFuKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICB9LCBlcnJvciwge30pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZCwgdXNlckFjY2Vzc30gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gISF1c2VyQWNjZXNzICYmIHVzZXJBY2Nlc3MgPiAyO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgdGhyb3cgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBzdWJzY3JpcHRpb25JZDogc3RyaW5nID0gZm9ybWF0SWQgPT09ICcnID8gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7c2Vzc2lvbklkfWApIDogZm9ybWF0SWQ7XG4gIGNvbnN0IHtwbGFuSWQsIHRyaWFsRW5kLCB0cmlhbFBlcmlvZH0gPSBpdGVtO1xuICBjb25zdCBmb3JtYXRQbGFuSWQ6IHN0cmluZyA9IHBhcnNlSWQocGxhbklkKTtcbiAgY29uc3QgZm9ybWF0VHJpYWxQZXJpb2Q6IG51bWJlciA9IDA7XG4gIGxldCBmb3JtYXRUcmlhbEVuZDogbnVtYmVyID0gdHJpYWxFbmQgfHwgRGF0ZS5ub3coKTtcblxuICBpZihmb3JtYXRUcmlhbFBlcmlvZCkge1xuICAgIGZvcm1hdFRyaWFsRW5kID0gRGF0ZVRpbWUubG9jYWwoKS5wbHVzKHtkYXlzOiB0cmlhbFBlcmlvZH0pLnRvTWlsbGlzKCk7XG4gIH1cblxuICByZXR1cm4gZ2V0VXNlcihjb250ZXh0LCB7dXNlcklkOiBzZXNzaW9uSWQgfHwgJyd9KVxuICAgIC50aGVuKCh1c2VyKSA9PiB7XG4gICAgICBpZighdXNlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXIgbm90IGZvdW5kJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgX2tleTogc3Vic2NyaXB0aW9uSWQsXG4gICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgIGNhbmNlbERhdGU6IDAsXG4gICAgICAgIG1vZGlmaWVkOiBub3csXG4gICAgICAgIHBsYW5JZDogZm9ybWF0UGxhbklkLFxuICAgICAgICB0cmlhbEVuZDogZm9ybWF0VHJpYWxFbmQsXG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICB9O1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24gfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYoIXN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdWJzY3JpcHRpb24gbm90IGZvdW5kJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc3RyaXBlQ2xpZW50ID0gZ2V0U3RyaXBlQ2xpZW50KCk7XG4gICAgICAgICAgcmV0dXJuIHN0cmlwZUNsaWVudC5zdWJzY3JpcHRpb25zXG4gICAgICAgICAgICAuY3JlYXRlKHtcbiAgICAgICAgICAgICAgY3VzdG9tZXI6IHVzZXIuc3RyaXBlQ3VzdG9tZXJJZCB8fCAnJyxcbiAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwbGFuOiBmb3JtYXRQbGFuSWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgdXNlcklkOiBzZXNzaW9uSWQgfHwgJydcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdHJpYWxfZW5kOiBmb3JtYXRUcmlhbEVuZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHN1YnNjcmlwdGlvbik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICAgIH0sIGVycm9yLCB7fSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZVN1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gIHJldHVybiBnZXRTdWJzY3JpcHRpb24oY29udGV4dClcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBnZXRTdHJpcGVDbGllbnQoKTtcblxuICAgICAgcmV0dXJuIHN0cmlwZUNsaWVudC5zdWJzY3JpcHRpb25zXG4gICAgICAgIC5jYW5jZWwoc3Vic2NyaXB0aW9uPy50cmFuc2FjdGlvbklkIHx8ICcnKVxuICAgICAgICAudGhlbigoe2NhbmNlbGVkX2F0OiBjYW5jZWxEYXRlfSkgPT4ge1xuICAgICAgICAgIGlmKGNhbmNlbERhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgICAgY2FuY2VsRGF0ZSxcbiAgICAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgICAgICAgcGxhbklkOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFIHMgV0lUSCAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc2A7XG5cbiAgICAgICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICAgICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgICAgICAgICAgfSwgZXJyb3IsIHt9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsT0FBUSxPQUFBQSxNQUFVLFdBRWxCLE9BQVEsWUFBQUMsTUFBZSxRQUd2QixPQUFRLGNBQUFDLE1BQWlCLDBCQUN6QixPQUFRLFlBQUFDLEVBQVUsZ0JBQUFDLE1BQW1CLDZCQUNyQyxPQUFRLFlBQUFDLEVBQVUsU0FBQUMsTUFBWSw0QkFDOUIsT0FBUSxlQUFBQyxNQUFrQiwyQkFDMUIsT0FBUSxtQkFBQUMsTUFBc0IsMEJBQzlCLE9BQVEsV0FBQUMsTUFBYyxhQUV0QixPQUFRLFlBQUFDLE1BQWUsK0JBQ3ZCLE9BQVEsY0FBQUMsRUFBWSxhQUFBQyxFQUFXLFdBQUFDLEVBQVMsZ0JBQUFDLE1BQW1CLCtCQU0zRCxNQUFNQyxFQUFnQixlQUVUQyxFQUFjLENBQUNDLEVBQXFCQyxFQUFlLEVBQUdDLEVBQWEsS0FBK0IsQ0FDN0csTUFBTUMsRUFBaUIsVUFDakIsQ0FBQyxhQUFBQyxDQUFZLEVBQUlKLEVBRWpCSyxFQUFpQjtBQUFBLFFBRE1qQixFQUFTYSxFQUFNQyxDQUFFLEVBRWxDLEdBQUc7QUFBQTtBQUFBLGdCQUlmLE9BQU9iLEVBQU1lLENBQVksRUFBRSxNQUFNQyxDQUFNLEVBQ3BDLEtBQU1DLEdBQVdBLEVBQU8sSUFBSSxDQUFDLEVBQzdCLEtBQUssQ0FBQ0MsRUFBTyxDQUFDLElBQU1BLENBQUksRUFDeEIsTUFBT0MsR0FBaUIsQ0FDdkIsTUFBTXRCLEVBQVMsQ0FDYixPQUFBaUIsRUFDQSxTQUFVTCxFQUNWLE1BQU9iLEVBQVcsY0FDcEIsRUFBR3VCLEVBQU8sQ0FBQyxDQUFDLENBQ2QsQ0FB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QzVCLENBQUMsRUFDQSxNQUFPSCxHQUFpQixDQUN2QixNQUFNdEIsRUFBUyxDQUNiLE9BQUFpQixFQUNBLFNBQVVMLEVBQ1YsTUFBT2IsRUFBVyxjQUNwQixFQUFHdUIsRUFBTyxDQUFDLENBQUMsQ0FDZCxDQUFDLENBQ0wsQ0FBQyxDQUNMLEVBRWFpQyxHQUFzQnpDLEdBQTBDLENBQzNFLE1BQU1HLEVBQWlCLHFCQUNqQixDQUFDLGFBQUFDLENBQVksRUFBSUosRUFDakJlLEVBQWMsS0FBSyxJQUFJLEVBRTdCLE9BQU9OLEVBQWdCVCxDQUFPLEVBQzNCLEtBQU1XLEdBQ2dCcEIsRUFBZ0IsRUFFakIsY0FDakIsT0FBT29CLEdBQWMsZUFBaUIsRUFBRSxFQUN4QyxLQUFLLENBQUMsQ0FBQyxZQUFhK0IsQ0FBVSxJQUFNLENBQ25DLEdBQUdBLEVBQVksQ0FNYixNQUFNckMsRUFBbUJ0QixrQkFMVyxDQUNsQyxXQUFBMkQsRUFDQSxTQUFVM0IsRUFDVixPQUFRLEVBQ1YsQ0FDbUQsb0JBRW5ELE9BQU8xQixFQUFNZSxDQUFZLEVBQUUsTUFBTUMsQ0FBTSxFQUNwQyxLQUFLLElBQU0sRUFBSSxFQUNmLE1BQU9HLEdBQWlCLENBQ3ZCLE1BQU10QixFQUFTLENBQ2IsT0FBQWlCLEVBQ0EsU0FBVUwsRUFDVixNQUFPYixFQUFXLGNBQ3BCLEVBQUd1QixFQUFPLENBQUMsQ0FBQyxDQUNkLENBQUMsQ0FDTCxDQUNBLE1BQU8sRUFDVCxDQUFDLENBQ0osQ0FDTCIsCiAgIm5hbWVzIjogWyJhcWwiLCAiRGF0ZVRpbWUiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJsb2dFeGNlcHRpb24iLCAiZ2V0TGltaXQiLCAidXNlRGIiLCAiaXNBZG1pblVzZXIiLCAiZ2V0U3RyaXBlQ2xpZW50IiwgImdldFVzZXIiLCAicGFyc2VOdW0iLCAiY3JlYXRlSGFzaCIsICJwYXJzZUNoYXIiLCAicGFyc2VJZCIsICJwYXJzZVZhckNoYXIiLCAiZXZlbnRDYXRlZ29yeSIsICJnZXRQbGFuTGlzdCIsICJjb250ZXh0IiwgImZyb20iLCAidG8iLCAiYWN0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJhcWxRcnkiLCAiY3Vyc29yIiwgImxpc3QiLCAiZXJyb3IiLCAiZ2V0U3Vic2NyaXB0aW9uIiwgInNlc3Npb25JZCIsICJzdWJzY3JpcHRpb24iLCAiYWRkUGxhbiIsICJpdGVtIiwgInNlc3Npb24iLCAibm93IiwgImZvcm1hdElkIiwgInBsYW5JZCIsICJhbW91bnQiLCAiY3VycmVuY3kiLCAiZGVzY3JpcHRpb24iLCAiaW50ZXJ2YWwiLCAiaW50ZXJ2YWxDb3VudCIsICJuYW1lIiwgImZvcm1hdEFtb3VudCIsICJmb3JtYXRJbnRlcnZhbCIsICJmb3JtYXRJbnRlcnZhbENudCIsICJmb3JtYXROYW1lIiwgImZvcm1hdERlc2MiLCAicGxhbiIsICJzdHJpcGVDbGllbnQiLCAic3RyaXBlUGxhbiIsICJhZGRTdWJzY3JpcHRpb24iLCAidXNlckFjY2VzcyIsICJzdWJzY3JpcHRpb25JZCIsICJ0cmlhbEVuZCIsICJ0cmlhbFBlcmlvZCIsICJmb3JtYXRQbGFuSWQiLCAiZm9ybWF0VHJpYWxQZXJpb2QiLCAiZm9ybWF0VHJpYWxFbmQiLCAidXNlciIsICJkZWxldGVTdWJzY3JpcHRpb24iLCAiY2FuY2VsRGF0ZSJdCn0K
@@ -0,0 +1,34 @@
1
+ import type { ApiContext } from '../types/auth.types.js';
2
+ import type { TagType } from '../types/tags.types.js';
3
+ export interface TagOptions {
4
+ readonly from?: number;
5
+ readonly search?: string;
6
+ readonly to?: number;
7
+ readonly userId?: string;
8
+ }
9
+ export declare const getTags: (context: ApiContext, options?: TagOptions) => Promise<TagType[]>;
10
+ export declare const getTagsByItem: (context: ApiContext, itemDocId: string, options?: TagOptions) => Promise<TagType[]>;
11
+ export declare const getTag: (context: ApiContext, tagId: string) => Promise<TagType>;
12
+ export declare const getTagsByName: (context: ApiContext, tagNames: string[]) => Promise<TagType[]>;
13
+ export declare const addTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
14
+ export declare const addTagToItem: (context: ApiContext, { itemDocId, tagBy, tagDocId }: {
15
+ itemDocId: string;
16
+ tagBy?: string;
17
+ tagDocId: string;
18
+ }) => Promise<TagType>;
19
+ export declare const updateTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
20
+ export declare const deleteTag: (context: ApiContext, tag: TagType) => Promise<TagType>;
21
+ export declare const deleteTagFromEdge: (context: ApiContext, { tagDocId, edgeDocId }: {
22
+ tagDocId: any;
23
+ edgeDocId: any;
24
+ }) => Promise<TagType>;
25
+ export declare const deleteTagFromItem: (context: ApiContext, { tagId, itemId, itemType }: {
26
+ tagId: any;
27
+ itemId: any;
28
+ itemType: any;
29
+ }) => Promise<boolean>;
30
+ export declare const extractTags: (content: string) => string[];
31
+ export declare const updateTagsInItem: (context: ApiContext, { itemDocId, tags }: {
32
+ itemDocId: any;
33
+ tags: any;
34
+ }) => Promise<TagType[]>;