@nlabs/reaktor 0.10.5 → 0.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/lib/actions/apps.d.ts +1 -0
  2. package/lib/actions/apps.d.ts.map +1 -0
  3. package/lib/actions/apps.js +221 -0
  4. package/lib/actions/connections.d.ts +1 -0
  5. package/lib/actions/connections.d.ts.map +1 -0
  6. package/lib/actions/connections.js +62 -0
  7. package/lib/actions/content.d.ts +1 -0
  8. package/lib/actions/content.d.ts.map +1 -0
  9. package/lib/actions/content.js +240 -0
  10. package/lib/actions/conversations.d.ts +1 -0
  11. package/lib/actions/conversations.d.ts.map +1 -0
  12. package/lib/actions/conversations.js +335 -0
  13. package/lib/actions/dynamodb.d.ts +1 -0
  14. package/lib/actions/dynamodb.d.ts.map +1 -0
  15. package/lib/actions/dynamodb.js +119 -0
  16. package/lib/actions/email.d.ts +1 -0
  17. package/lib/actions/email.d.ts.map +1 -0
  18. package/lib/actions/email.js +56 -0
  19. package/lib/actions/files.d.ts +1 -0
  20. package/lib/actions/files.d.ts.map +1 -0
  21. package/lib/actions/files.js +226 -0
  22. package/lib/actions/groups.d.ts +1 -0
  23. package/lib/actions/groups.d.ts.map +1 -0
  24. package/lib/actions/groups.js +267 -0
  25. package/lib/actions/images.d.ts +1 -0
  26. package/lib/actions/images.d.ts.map +1 -0
  27. package/lib/actions/images.js +723 -0
  28. package/lib/actions/index.d.ts +1 -0
  29. package/lib/actions/index.d.ts.map +1 -0
  30. package/lib/actions/index.js +29 -0
  31. package/lib/actions/ios.d.ts +1 -0
  32. package/lib/actions/ios.d.ts.map +1 -0
  33. package/lib/actions/ios.js +230 -0
  34. package/lib/actions/locations.d.ts +1 -0
  35. package/lib/actions/locations.d.ts.map +1 -0
  36. package/lib/actions/locations.js +111 -0
  37. package/lib/actions/messages.d.ts +1 -0
  38. package/lib/actions/messages.d.ts.map +1 -0
  39. package/lib/actions/messages.js +167 -0
  40. package/lib/actions/notifications.d.ts +3 -2
  41. package/lib/actions/notifications.d.ts.map +1 -0
  42. package/lib/actions/notifications.js +37 -0
  43. package/lib/actions/payments.d.ts +1 -0
  44. package/lib/actions/payments.d.ts.map +1 -0
  45. package/lib/actions/payments.js +449 -0
  46. package/lib/actions/posts.d.ts +1 -0
  47. package/lib/actions/posts.d.ts.map +1 -0
  48. package/lib/actions/posts.js +608 -0
  49. package/lib/actions/profiles.d.ts +1 -0
  50. package/lib/actions/profiles.d.ts.map +1 -0
  51. package/lib/actions/profiles.js +58 -0
  52. package/lib/actions/reactions.d.ts +1 -0
  53. package/lib/actions/reactions.d.ts.map +1 -0
  54. package/lib/actions/reactions.js +286 -0
  55. package/lib/actions/s3.d.ts +1 -0
  56. package/lib/actions/s3.d.ts.map +1 -0
  57. package/lib/actions/s3.js +102 -0
  58. package/lib/actions/search.d.ts +1 -0
  59. package/lib/actions/search.d.ts.map +1 -0
  60. package/lib/actions/search.js +81 -0
  61. package/lib/actions/sms.d.ts +1 -0
  62. package/lib/actions/sms.d.ts.map +1 -0
  63. package/lib/actions/sms.js +52 -0
  64. package/lib/actions/statistics.d.ts +1 -0
  65. package/lib/actions/statistics.d.ts.map +1 -0
  66. package/lib/actions/statistics.js +43 -0
  67. package/lib/actions/subscriptions.d.ts +1 -0
  68. package/lib/actions/subscriptions.d.ts.map +1 -0
  69. package/lib/actions/subscriptions.js +202 -0
  70. package/lib/actions/tags.d.ts +1 -0
  71. package/lib/actions/tags.d.ts.map +1 -0
  72. package/lib/actions/tags.js +263 -0
  73. package/lib/actions/users.d.ts +1 -0
  74. package/lib/actions/users.d.ts.map +1 -0
  75. package/lib/actions/users.js +802 -0
  76. package/lib/actions/videos.d.ts +1 -0
  77. package/lib/actions/videos.d.ts.map +1 -0
  78. package/lib/actions/videos.js +423 -0
  79. package/lib/actions/websockets.d.ts +1 -0
  80. package/lib/actions/websockets.d.ts.map +1 -0
  81. package/lib/actions/websockets.js +164 -0
  82. package/lib/adapters/arangoAdapter.d.ts +1 -0
  83. package/lib/adapters/arangoAdapter.d.ts.map +1 -0
  84. package/lib/adapters/arangoAdapter.js +70 -0
  85. package/lib/adapters/contentAdapter.d.ts +1 -0
  86. package/lib/adapters/contentAdapter.d.ts.map +1 -0
  87. package/lib/adapters/contentAdapter.js +108 -0
  88. package/lib/adapters/fileAdapter.d.ts +1 -0
  89. package/lib/adapters/fileAdapter.d.ts.map +1 -0
  90. package/lib/adapters/fileAdapter.js +119 -0
  91. package/lib/adapters/imageAdapter.d.ts +1 -0
  92. package/lib/adapters/imageAdapter.d.ts.map +1 -0
  93. package/lib/adapters/imageAdapter.js +112 -0
  94. package/lib/adapters/index.d.ts +1 -0
  95. package/lib/adapters/index.d.ts.map +1 -0
  96. package/lib/adapters/index.js +11 -0
  97. package/lib/adapters/messageAdapter.d.ts +1 -0
  98. package/lib/adapters/messageAdapter.d.ts.map +1 -0
  99. package/lib/adapters/messageAdapter.js +82 -0
  100. package/lib/adapters/postAdapter.d.ts +1 -0
  101. package/lib/adapters/postAdapter.d.ts.map +1 -0
  102. package/lib/adapters/postAdapter.js +117 -0
  103. package/lib/adapters/reaktorAdapter.d.ts +1 -0
  104. package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
  105. package/lib/adapters/reaktorAdapter.js +59 -0
  106. package/lib/adapters/tagAdapter.d.ts +1 -0
  107. package/lib/adapters/tagAdapter.d.ts.map +1 -0
  108. package/lib/adapters/tagAdapter.js +99 -0
  109. package/lib/adapters/userAdapter.d.ts +1 -0
  110. package/lib/adapters/userAdapter.d.ts.map +1 -0
  111. package/lib/adapters/userAdapter.js +264 -0
  112. package/lib/config.d.ts +1 -0
  113. package/lib/config.d.ts.map +1 -0
  114. package/lib/config.js +161 -0
  115. package/lib/handlers/graphqlHandler.d.ts +1 -0
  116. package/lib/handlers/graphqlHandler.d.ts.map +1 -0
  117. package/lib/handlers/graphqlHandler.js +118 -0
  118. package/lib/index.d.ts +1 -0
  119. package/lib/index.d.ts.map +1 -0
  120. package/lib/index.js +18 -0
  121. package/lib/lambdas/actions/websockets.d.ts +1 -0
  122. package/lib/lambdas/actions/websockets.d.ts.map +1 -0
  123. package/lib/lambdas/actions/websockets.js +105 -0
  124. package/lib/lambdas/authorizer.d.ts +1 -0
  125. package/lib/lambdas/authorizer.d.ts.map +1 -0
  126. package/lib/lambdas/authorizer.js +41 -0
  127. package/lib/lambdas/connection.d.ts +1 -0
  128. package/lib/lambdas/connection.d.ts.map +1 -0
  129. package/lib/lambdas/connection.js +85 -0
  130. package/lib/lambdas/utils/message.d.ts +1 -0
  131. package/lib/lambdas/utils/message.d.ts.map +1 -0
  132. package/lib/lambdas/utils/message.js +20 -0
  133. package/lib/lambdas/utils/websocket.d.ts +1 -0
  134. package/lib/lambdas/utils/websocket.d.ts.map +1 -0
  135. package/lib/lambdas/utils/websocket.js +78 -0
  136. package/lib/mocks/conversation.d.ts +1 -0
  137. package/lib/mocks/conversation.d.ts.map +1 -0
  138. package/lib/mocks/conversation.js +10 -0
  139. package/lib/mocks/file.d.ts +1 -0
  140. package/lib/mocks/file.d.ts.map +1 -0
  141. package/lib/mocks/file.js +13 -0
  142. package/lib/mocks/group.d.ts +1 -0
  143. package/lib/mocks/group.d.ts.map +1 -0
  144. package/lib/mocks/group.js +20 -0
  145. package/lib/mocks/image.d.ts +1 -0
  146. package/lib/mocks/image.d.ts.map +1 -0
  147. package/lib/mocks/image.js +17 -0
  148. package/lib/mocks/post.d.ts +1 -0
  149. package/lib/mocks/post.d.ts.map +1 -0
  150. package/lib/mocks/post.js +28 -0
  151. package/lib/mocks/tag.d.ts +1 -0
  152. package/lib/mocks/tag.d.ts.map +1 -0
  153. package/lib/mocks/tag.js +12 -0
  154. package/lib/mocks/user.d.ts +1 -0
  155. package/lib/mocks/user.d.ts.map +1 -0
  156. package/lib/mocks/user.js +61 -0
  157. package/lib/mocks/video.d.ts +1 -0
  158. package/lib/mocks/video.d.ts.map +1 -0
  159. package/lib/mocks/video.js +17 -0
  160. package/lib/mutations/content.d.ts +1 -0
  161. package/lib/mutations/content.d.ts.map +1 -0
  162. package/lib/mutations/content.js +27 -0
  163. package/lib/mutations/index.d.ts +1 -0
  164. package/lib/mutations/index.d.ts.map +1 -0
  165. package/lib/mutations/index.js +29 -0
  166. package/lib/mutations/locations.d.ts +1 -0
  167. package/lib/mutations/locations.d.ts.map +1 -0
  168. package/lib/mutations/locations.js +22 -0
  169. package/lib/mutations/messages.d.ts +1 -0
  170. package/lib/mutations/messages.d.ts.map +1 -0
  171. package/lib/mutations/messages.js +75 -0
  172. package/lib/mutations/posts.d.ts +1 -0
  173. package/lib/mutations/posts.d.ts.map +1 -0
  174. package/lib/mutations/posts.js +31 -0
  175. package/lib/mutations/profiles.d.ts +1 -0
  176. package/lib/mutations/profiles.d.ts.map +1 -0
  177. package/lib/mutations/profiles.js +78 -0
  178. package/lib/mutations/reactions.d.ts +1 -0
  179. package/lib/mutations/reactions.d.ts.map +1 -0
  180. package/lib/mutations/reactions.js +29 -0
  181. package/lib/mutations/statistics.d.ts +1 -0
  182. package/lib/mutations/statistics.d.ts.map +1 -0
  183. package/lib/mutations/statistics.js +17 -0
  184. package/lib/mutations/subscriptions.d.ts +1 -0
  185. package/lib/mutations/subscriptions.d.ts.map +1 -0
  186. package/lib/mutations/subscriptions.js +38 -0
  187. package/lib/mutations/tags.d.ts +1 -0
  188. package/lib/mutations/tags.d.ts.map +1 -0
  189. package/lib/mutations/tags.js +109 -0
  190. package/lib/mutations/users.d.ts +1 -0
  191. package/lib/mutations/users.d.ts.map +1 -0
  192. package/lib/mutations/users.js +129 -0
  193. package/lib/objectTypes/app.d.ts +1 -0
  194. package/lib/objectTypes/app.d.ts.map +1 -0
  195. package/lib/objectTypes/app.js +147 -0
  196. package/lib/objectTypes/bankAccount.d.ts +1 -0
  197. package/lib/objectTypes/bankAccount.d.ts.map +1 -0
  198. package/lib/objectTypes/bankAccount.js +54 -0
  199. package/lib/objectTypes/connection.d.ts +1 -0
  200. package/lib/objectTypes/connection.d.ts.map +1 -0
  201. package/lib/objectTypes/connection.js +26 -0
  202. package/lib/objectTypes/content.d.ts +1 -0
  203. package/lib/objectTypes/content.d.ts.map +1 -0
  204. package/lib/objectTypes/content.js +79 -0
  205. package/lib/objectTypes/conversation.d.ts +1 -0
  206. package/lib/objectTypes/conversation.d.ts.map +1 -0
  207. package/lib/objectTypes/conversation.js +53 -0
  208. package/lib/objectTypes/creditCard.d.ts +1 -0
  209. package/lib/objectTypes/creditCard.d.ts.map +1 -0
  210. package/lib/objectTypes/creditCard.js +64 -0
  211. package/lib/objectTypes/document.d.ts +1 -0
  212. package/lib/objectTypes/document.d.ts.map +1 -0
  213. package/lib/objectTypes/document.js +21 -0
  214. package/lib/objectTypes/error.d.ts +1 -0
  215. package/lib/objectTypes/error.d.ts.map +1 -0
  216. package/lib/objectTypes/error.js +24 -0
  217. package/lib/objectTypes/external.d.ts +1 -0
  218. package/lib/objectTypes/external.d.ts.map +1 -0
  219. package/lib/objectTypes/external.js +52 -0
  220. package/lib/objectTypes/file.d.ts +1 -0
  221. package/lib/objectTypes/file.d.ts.map +1 -0
  222. package/lib/objectTypes/file.js +76 -0
  223. package/lib/objectTypes/filter.d.ts +1 -0
  224. package/lib/objectTypes/filter.d.ts.map +1 -0
  225. package/lib/objectTypes/filter.js +21 -0
  226. package/lib/objectTypes/group.d.ts +1 -0
  227. package/lib/objectTypes/group.d.ts.map +1 -0
  228. package/lib/objectTypes/group.js +97 -0
  229. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  230. package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
  231. package/lib/objectTypes/iapSubscription.js +18 -0
  232. package/lib/objectTypes/image.d.ts +1 -0
  233. package/lib/objectTypes/image.d.ts.map +1 -0
  234. package/lib/objectTypes/image.js +105 -0
  235. package/lib/objectTypes/index.d.ts +1 -0
  236. package/lib/objectTypes/index.d.ts.map +1 -0
  237. package/lib/objectTypes/index.js +28 -0
  238. package/lib/objectTypes/location.d.ts +1 -0
  239. package/lib/objectTypes/location.d.ts.map +1 -0
  240. package/lib/objectTypes/location.js +85 -0
  241. package/lib/objectTypes/message.d.ts +1 -0
  242. package/lib/objectTypes/message.d.ts.map +1 -0
  243. package/lib/objectTypes/message.js +72 -0
  244. package/lib/objectTypes/passcode.d.ts +1 -0
  245. package/lib/objectTypes/passcode.d.ts.map +1 -0
  246. package/lib/objectTypes/passcode.js +20 -0
  247. package/lib/objectTypes/plan.d.ts +1 -0
  248. package/lib/objectTypes/plan.d.ts.map +1 -0
  249. package/lib/objectTypes/plan.js +71 -0
  250. package/lib/objectTypes/post.d.ts +1 -0
  251. package/lib/objectTypes/post.d.ts.map +1 -0
  252. package/lib/objectTypes/post.js +101 -0
  253. package/lib/objectTypes/profile.d.ts +1 -0
  254. package/lib/objectTypes/profile.d.ts.map +1 -0
  255. package/lib/objectTypes/profile.js +68 -0
  256. package/lib/objectTypes/reaction.d.ts +1 -0
  257. package/lib/objectTypes/reaction.d.ts.map +1 -0
  258. package/lib/objectTypes/reaction.js +37 -0
  259. package/lib/objectTypes/relation.d.ts +1 -0
  260. package/lib/objectTypes/relation.d.ts.map +1 -0
  261. package/lib/objectTypes/relation.js +27 -0
  262. package/lib/objectTypes/search.d.ts +1 -0
  263. package/lib/objectTypes/search.d.ts.map +1 -0
  264. package/lib/objectTypes/search.js +50 -0
  265. package/lib/objectTypes/statistics.d.ts +1 -0
  266. package/lib/objectTypes/statistics.d.ts.map +1 -0
  267. package/lib/objectTypes/statistics.js +17 -0
  268. package/lib/objectTypes/subscription.d.ts +1 -0
  269. package/lib/objectTypes/subscription.d.ts.map +1 -0
  270. package/lib/objectTypes/subscription.js +102 -0
  271. package/lib/objectTypes/tag.d.ts +1 -0
  272. package/lib/objectTypes/tag.d.ts.map +1 -0
  273. package/lib/objectTypes/tag.js +41 -0
  274. package/lib/objectTypes/user.d.ts +1 -0
  275. package/lib/objectTypes/user.d.ts.map +1 -0
  276. package/lib/objectTypes/user.js +111 -0
  277. package/lib/queries/content.d.ts +1 -0
  278. package/lib/queries/content.d.ts.map +1 -0
  279. package/lib/queries/content.js +50 -0
  280. package/lib/queries/index.d.ts +1 -0
  281. package/lib/queries/index.d.ts.map +1 -0
  282. package/lib/queries/index.js +27 -0
  283. package/lib/queries/locations.d.ts +1 -0
  284. package/lib/queries/locations.d.ts.map +1 -0
  285. package/lib/queries/locations.js +23 -0
  286. package/lib/queries/messages.d.ts +1 -0
  287. package/lib/queries/messages.d.ts.map +1 -0
  288. package/lib/queries/messages.js +35 -0
  289. package/lib/queries/posts.d.ts +1 -0
  290. package/lib/queries/posts.d.ts.map +1 -0
  291. package/lib/queries/posts.js +154 -0
  292. package/lib/queries/reactions.d.ts +1 -0
  293. package/lib/queries/reactions.d.ts.map +1 -0
  294. package/lib/queries/reactions.js +34 -0
  295. package/lib/queries/statistics.d.ts +1 -0
  296. package/lib/queries/statistics.d.ts.map +1 -0
  297. package/lib/queries/statistics.js +17 -0
  298. package/lib/queries/subscriptions.d.ts +1 -0
  299. package/lib/queries/subscriptions.d.ts.map +1 -0
  300. package/lib/queries/subscriptions.js +21 -0
  301. package/lib/queries/tags.d.ts +1 -0
  302. package/lib/queries/tags.d.ts.map +1 -0
  303. package/lib/queries/tags.js +56 -0
  304. package/lib/queries/users.d.ts +1 -0
  305. package/lib/queries/users.d.ts.map +1 -0
  306. package/lib/queries/users.js +39 -0
  307. package/lib/templates/email/layout.d.ts +1 -0
  308. package/lib/templates/email/layout.d.ts.map +1 -0
  309. package/lib/templates/email/layout.js +281 -0
  310. package/lib/templates/email/passwordForgot.d.ts +1 -0
  311. package/lib/templates/email/passwordForgot.d.ts.map +1 -0
  312. package/lib/templates/email/passwordForgot.js +17 -0
  313. package/lib/templates/email/passwordRecovery.d.ts +1 -0
  314. package/lib/templates/email/passwordRecovery.d.ts.map +1 -0
  315. package/lib/templates/email/passwordRecovery.js +14 -0
  316. package/lib/templates/email/verifyEmail.d.ts +1 -0
  317. package/lib/templates/email/verifyEmail.d.ts.map +1 -0
  318. package/lib/templates/email/verifyEmail.js +17 -0
  319. package/lib/templates/email/welcome.d.ts +1 -0
  320. package/lib/templates/email/welcome.d.ts.map +1 -0
  321. package/lib/templates/email/welcome.js +17 -0
  322. package/lib/templates/sms/passwordForgot.d.ts +1 -0
  323. package/lib/templates/sms/passwordForgot.d.ts.map +1 -0
  324. package/lib/templates/sms/passwordForgot.js +3 -0
  325. package/lib/templates/sms/passwordRecovery.d.ts +1 -0
  326. package/lib/templates/sms/passwordRecovery.d.ts.map +1 -0
  327. package/lib/templates/sms/passwordRecovery.js +3 -0
  328. package/lib/templates/sms/verifyEmail.d.ts +1 -0
  329. package/lib/templates/sms/verifyEmail.d.ts.map +1 -0
  330. package/lib/templates/sms/verifyEmail.js +3 -0
  331. package/lib/templates/sms/verifyPhone.d.ts +1 -0
  332. package/lib/templates/sms/verifyPhone.d.ts.map +1 -0
  333. package/lib/templates/sms/verifyPhone.js +3 -0
  334. package/lib/templates/sms/welcome.d.ts +1 -0
  335. package/lib/templates/sms/welcome.d.ts.map +1 -0
  336. package/lib/templates/sms/welcome.js +3 -0
  337. package/lib/types/apps.types.d.ts +1 -0
  338. package/lib/types/apps.types.d.ts.map +1 -0
  339. package/lib/types/apps.types.js +10 -0
  340. package/lib/types/arangodb.types.d.ts +1 -0
  341. package/lib/types/arangodb.types.d.ts.map +1 -0
  342. package/lib/types/arangodb.types.js +6 -0
  343. package/lib/types/auth.types.d.ts +1 -0
  344. package/lib/types/auth.types.d.ts.map +1 -0
  345. package/lib/types/auth.types.js +6 -0
  346. package/lib/types/connections.types.d.ts +1 -0
  347. package/lib/types/connections.types.d.ts.map +1 -0
  348. package/lib/types/connections.types.js +6 -0
  349. package/lib/types/content.types.d.ts +1 -0
  350. package/lib/types/content.types.d.ts.map +1 -0
  351. package/lib/types/content.types.js +6 -0
  352. package/lib/types/conversations.types.d.ts +1 -0
  353. package/lib/types/conversations.types.d.ts.map +1 -0
  354. package/lib/types/conversations.types.js +6 -0
  355. package/lib/types/email.types.d.ts +1 -0
  356. package/lib/types/email.types.d.ts.map +1 -0
  357. package/lib/types/email.types.js +6 -0
  358. package/lib/types/error.types.d.ts +1 -0
  359. package/lib/types/error.types.d.ts.map +1 -0
  360. package/lib/types/error.types.js +20 -0
  361. package/lib/types/files.types.d.ts +1 -0
  362. package/lib/types/files.types.d.ts.map +1 -0
  363. package/lib/types/files.types.js +6 -0
  364. package/lib/types/google.types.d.ts +1 -0
  365. package/lib/types/google.types.d.ts.map +1 -0
  366. package/lib/types/google.types.js +6 -0
  367. package/lib/types/groups.types.d.ts +1 -0
  368. package/lib/types/groups.types.d.ts.map +1 -0
  369. package/lib/types/groups.types.js +6 -0
  370. package/lib/types/images.types.d.ts +1 -0
  371. package/lib/types/images.types.d.ts.map +1 -0
  372. package/lib/types/images.types.js +6 -0
  373. package/lib/types/index.d.ts +1 -0
  374. package/lib/types/index.d.ts.map +1 -0
  375. package/lib/types/index.js +28 -0
  376. package/lib/types/locations.types.d.ts +1 -0
  377. package/lib/types/locations.types.d.ts.map +1 -0
  378. package/lib/types/locations.types.js +6 -0
  379. package/lib/types/messages.types.d.ts +1 -0
  380. package/lib/types/messages.types.d.ts.map +1 -0
  381. package/lib/types/messages.types.js +6 -0
  382. package/lib/types/notifications.types.d.ts +1 -0
  383. package/lib/types/notifications.types.d.ts.map +1 -0
  384. package/lib/types/notifications.types.js +6 -0
  385. package/lib/types/payments.types.d.ts +1 -0
  386. package/lib/types/payments.types.d.ts.map +1 -0
  387. package/lib/types/payments.types.js +6 -0
  388. package/lib/types/posts.types.d.ts +1 -0
  389. package/lib/types/posts.types.d.ts.map +1 -0
  390. package/lib/types/posts.types.js +6 -0
  391. package/lib/types/profiles.types.d.ts +1 -0
  392. package/lib/types/profiles.types.d.ts.map +1 -0
  393. package/lib/types/profiles.types.js +3 -0
  394. package/lib/types/statistics.types.d.ts +1 -0
  395. package/lib/types/statistics.types.d.ts.map +1 -0
  396. package/lib/types/statistics.types.js +3 -0
  397. package/lib/types/tags.types.d.ts +1 -0
  398. package/lib/types/tags.types.d.ts.map +1 -0
  399. package/lib/types/tags.types.js +6 -0
  400. package/lib/types/users.types.d.ts +1 -0
  401. package/lib/types/users.types.d.ts.map +1 -0
  402. package/lib/types/users.types.js +6 -0
  403. package/lib/types/videos.types.d.ts +1 -0
  404. package/lib/types/videos.types.d.ts.map +1 -0
  405. package/lib/types/videos.types.js +6 -0
  406. package/lib/types/websockets.types.d.ts +1 -0
  407. package/lib/types/websockets.types.d.ts.map +1 -0
  408. package/lib/types/websockets.types.js +6 -0
  409. package/lib/utils/adapterUtils.d.ts +1 -0
  410. package/lib/utils/adapterUtils.d.ts.map +1 -0
  411. package/lib/utils/adapterUtils.js +23 -0
  412. package/lib/utils/analyticsUtils.d.ts +1 -0
  413. package/lib/utils/analyticsUtils.d.ts.map +1 -0
  414. package/lib/utils/analyticsUtils.js +45 -0
  415. package/lib/utils/arangodbUtils.d.ts +1 -0
  416. package/lib/utils/arangodbUtils.d.ts.map +1 -0
  417. package/lib/utils/arangodbUtils.js +130 -0
  418. package/lib/utils/authUtils.d.ts +1 -0
  419. package/lib/utils/authUtils.d.ts.map +1 -0
  420. package/lib/utils/authUtils.js +54 -0
  421. package/lib/utils/contextUtils.d.ts +1 -0
  422. package/lib/utils/contextUtils.d.ts.map +1 -0
  423. package/lib/utils/contextUtils.js +10 -0
  424. package/lib/utils/dbI18n.d.ts +1 -0
  425. package/lib/utils/dbI18n.d.ts.map +1 -0
  426. package/lib/utils/dbI18n.example.d.ts +1 -0
  427. package/lib/utils/dbI18n.example.d.ts.map +1 -0
  428. package/lib/utils/dbI18n.example.js +93 -0
  429. package/lib/utils/dbI18n.js +28 -0
  430. package/lib/utils/googleTranslate.d.ts +1 -0
  431. package/lib/utils/googleTranslate.d.ts.map +1 -0
  432. package/lib/utils/googleTranslate.js +70 -0
  433. package/lib/utils/graphqlUtils.d.ts +1 -0
  434. package/lib/utils/graphqlUtils.d.ts.map +1 -0
  435. package/lib/utils/graphqlUtils.js +11 -0
  436. package/lib/utils/index.d.ts +1 -0
  437. package/lib/utils/index.d.ts.map +1 -0
  438. package/lib/utils/index.js +19 -0
  439. package/lib/utils/languageDetection.d.ts +1 -0
  440. package/lib/utils/languageDetection.d.ts.map +1 -0
  441. package/lib/utils/languageDetection.js +120 -0
  442. package/lib/utils/localeUtils.d.ts +1 -0
  443. package/lib/utils/localeUtils.d.ts.map +1 -0
  444. package/lib/utils/localeUtils.example.d.ts +1 -0
  445. package/lib/utils/localeUtils.example.d.ts.map +1 -0
  446. package/lib/utils/localeUtils.example.js +124 -0
  447. package/lib/utils/localeUtils.js +71 -0
  448. package/lib/utils/middlewareUtils.d.ts +1 -0
  449. package/lib/utils/middlewareUtils.d.ts.map +1 -0
  450. package/lib/utils/middlewareUtils.js +10 -0
  451. package/lib/utils/sessionUtils.d.ts +1 -0
  452. package/lib/utils/sessionUtils.d.ts.map +1 -0
  453. package/lib/utils/sessionUtils.js +26 -0
  454. package/lib/utils/stripeUtils.d.ts +2 -1
  455. package/lib/utils/stripeUtils.d.ts.map +1 -0
  456. package/lib/utils/stripeUtils.js +12 -0
  457. package/lib/utils/templateUtils.d.ts +1 -0
  458. package/lib/utils/templateUtils.d.ts.map +1 -0
  459. package/lib/utils/templateUtils.js +11 -0
  460. package/lib/utils/testUtils.d.ts +1 -0
  461. package/lib/utils/testUtils.d.ts.map +1 -0
  462. package/lib/utils/testUtils.js +292 -0
  463. package/lib/utils/translationQueue.d.ts +1 -0
  464. package/lib/utils/translationQueue.d.ts.map +1 -0
  465. package/lib/utils/translationQueue.example.d.ts +1 -0
  466. package/lib/utils/translationQueue.example.d.ts.map +1 -0
  467. package/lib/utils/translationQueue.example.js +340 -0
  468. package/lib/utils/translationQueue.js +113 -0
  469. package/package.json +43 -24
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { cloneDeep } from '@nlabs/utils/objects/clone';
5
+ import { createHash, parseId, parseString } from '@nlabs/utils/parsers/strings';
6
+ import { aql } from 'arangojs';
7
+ import { parseMessage } from '../adapters/messageAdapter.js';
8
+ import { logError } from '../utils/analyticsUtils.js';
9
+ import { getLimit, useDb } from '../utils/arangodbUtils.js';
10
+ import { getConversation } from './conversations.js';
11
+ const eventCategory = 'messages';
12
+ export const getMessages = (context, conversationId, { from, to })=>{
13
+ const { databaseName, session: { userId: sessionId } } = context;
14
+ const formatConversationId = parseId(conversationId);
15
+ const sessionDocId = `users/${sessionId}`;
16
+ const conversationDocId = `conversations/${formatConversationId}`;
17
+ const conversationQry = aql`FOR e IN hasConversation
18
+ FILTER e._from == ${sessionDocId} && e._to == ${conversationDocId}
19
+ LIMIT 1
20
+ RETURN e`;
21
+ return useDb(databaseName).query(conversationQry).then((cursor)=>cursor.all()).then((conversations)=>{
22
+ if (!conversations.length) {
23
+ return [];
24
+ }
25
+ const limit = getLimit(from, to);
26
+ const aqlQry = `FOR m IN messages
27
+ FILTER m.conversationId == "${formatConversationId}"
28
+ SORT m.added DESC
29
+ ${limit.aql}
30
+ SORT m.added ASC
31
+ LET user = FIRST(
32
+ FOR u IN users
33
+ FILTER u._key == m.userId
34
+ LIMIT 1
35
+ RETURN u
36
+ )
37
+ RETURN MERGE(m, {user: user})`;
38
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.all()).catch((error)=>{
39
+ throw error;
40
+ });
41
+ });
42
+ };
43
+ export const updateMessage = (context, message)=>{
44
+ const { databaseName, session: { userId: sessionId } } = context;
45
+ const { conversationId, files, images, messageId = createHash(`message-${sessionId}`) } = message;
46
+ const formatConversationId = parseId(conversationId);
47
+ if (formatConversationId === '') {
48
+ throw new Error('required_conversationId');
49
+ }
50
+ const now = Date.now();
51
+ const update = {
52
+ content: parseString(message.content, 640),
53
+ files: files || [],
54
+ images: images || [],
55
+ modified: now
56
+ };
57
+ const formatMsgId = parseId(messageId);
58
+ const insert = {
59
+ ...cloneDeep(update),
60
+ _key: formatMsgId,
61
+ added: now,
62
+ conversationId: formatConversationId,
63
+ userId: sessionId
64
+ };
65
+ const aqlQry = aql`UPSERT {_key: ${formatMsgId}, conversationId: ${formatConversationId}, userId: ${sessionId}}
66
+ INSERT ${insert}
67
+ UPDATE ${update} IN messages
68
+ RETURN NEW`;
69
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
70
+ throw error;
71
+ });
72
+ };
73
+ export const addMessage = (context, message)=>{
74
+ const { databaseName } = context;
75
+ const newMessage = parseMessage(message);
76
+ const aqlQry = aql`INSERT ${newMessage} IN messages RETURN NEW`;
77
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>logError({
78
+ action: 'addMessage',
79
+ category: eventCategory,
80
+ label: 'addMessage'
81
+ }, error, context));
82
+ };
83
+ export const saveMessage = (context, messageId, conversationId)=>{
84
+ const { databaseName, session: { userId: sessionId } } = context;
85
+ const formatId = parseId(messageId);
86
+ return getConversation(context, conversationId).then((conversation)=>{
87
+ const { _key: conversationKey } = conversation;
88
+ const aqlQry = aql`FOR m IN messages
89
+ FILTER m._key == ${formatId} && m.to == ${conversationKey}
90
+ UPDATE m WITH {saved: APPEND(m.saved, ${sessionId}, true)} IN messages
91
+ RETURN NEW`;
92
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((message)=>{
93
+ if (message) {
94
+ // Broadcast to message box
95
+ // const message: MessageType = Messages.getMessageObject(message);
96
+ // io.to(message.toId).emit('message_save', message);
97
+ }
98
+ return message;
99
+ }).catch((error)=>{
100
+ throw error;
101
+ });
102
+ });
103
+ };
104
+ export const unsaveMessage = (context, messageId, conversationId)=>{
105
+ const { databaseName, session: { userId: sessionId } } = context;
106
+ const formatId = parseId(messageId);
107
+ return getConversation(context, conversationId).then((conversation)=>{
108
+ const { _key: conversationKey } = conversation;
109
+ const aqlQry = aql`FOR m IN messages
110
+ FILTER m._key == ${formatId} && m.to == ${conversationKey}
111
+ UPDATE m WITH {saved: REMOVE_VALUE(m.saved, ${sessionId})} IN messages
112
+ RETURN NEW`;
113
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((message)=>{
114
+ if (message) {
115
+ // Broadcast to message box
116
+ // const message: MessageType = Messages.getMessageObject(message);
117
+ // io.to(message.id).emit('message_unsave', message);
118
+ }
119
+ return message;
120
+ }).catch((error)=>{
121
+ throw error;
122
+ });
123
+ });
124
+ };
125
+ export const deleteMessage = (context, messageId, conversationId)=>{
126
+ const { databaseName, session: { userId: sessionId } } = context;
127
+ const formatId = parseId(messageId);
128
+ return getConversation(context, conversationId).then((conversation)=>{
129
+ const { _key: conversationKey } = conversation;
130
+ const aqlQry = aql`FOR m IN messages
131
+ FILTER m._key == ${formatId} && m.to == ${conversationKey} && m.from == ${sessionId}
132
+ REMOVE m IN messages
133
+ RETURN OLD`;
134
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((message)=>{
135
+ if (message) {
136
+ // Broadcast to message box
137
+ // const message: MessageType = Messages.getMessageObject(message);
138
+ // io.to(message.toId).emit('message_delete', message);
139
+ }
140
+ return message;
141
+ }).catch((error)=>{
142
+ throw error;
143
+ });
144
+ });
145
+ };
146
+ export const getMessage = (context, messageId)=>{
147
+ const { databaseName } = context;
148
+ const formatId = parseId(messageId);
149
+ const aqlQry = aql`FOR m IN messages
150
+ FILTER m._key == ${formatId}
151
+ RETURN m`;
152
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
153
+ throw error;
154
+ });
155
+ };
156
+ export const cleanMessages = (databaseName)=>{
157
+ // Remove all messages that are over 60 days and not saved
158
+ const aqlQry = aql`FOR m IN messages
159
+ FILTER m.added < DATE_TIMESTAMP(DATE_SUBTRACT(DATE_NOW(), 60, 'day')) && LENGTH(m.saved) > 0
160
+ REMOVE m IN messages
161
+ RETURN OLD`;
162
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.all()).then((list)=>list.length).catch((error)=>{
163
+ throw error;
164
+ });
165
+ };
166
+
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvbWVzc2FnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y2xvbmVEZWVwfSBmcm9tICdAbmxhYnMvdXRpbHMvb2JqZWN0cy9jbG9uZSc7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge3BhcnNlTWVzc2FnZX0gZnJvbSAnLi4vYWRhcHRlcnMvbWVzc2FnZUFkYXB0ZXIuanMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMuanMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuaW1wb3J0IHtnZXRDb252ZXJzYXRpb259IGZyb20gJy4vY29udmVyc2F0aW9ucy5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucy50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZUlucHV0VHlwZSwgTWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGNvbnN0IGdldE1lc3NhZ2VzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsIHtmcm9tLCB0b30pOiBQcm9taXNlPE1lc3NhZ2VUeXBlW10+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkRvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZlcnNhdGlvbklkfWA7XG4gIGNvbnN0IGNvbnZlcnNhdGlvblFyeSA9IGFxbGBGT1IgZSBJTiBoYXNDb252ZXJzYXRpb25cbiAgICBGSUxURVIgZS5fZnJvbSA9PSAke3Nlc3Npb25Eb2NJZH0gJiYgZS5fdG8gPT0gJHtjb252ZXJzYXRpb25Eb2NJZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGNvbnZlcnNhdGlvblFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbnMpID0+IHtcbiAgICAgIGlmKCFjb252ZXJzYXRpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxpbWl0OiBBcmFuZ29EYkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICAgICAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS5jb252ZXJzYXRpb25JZCA9PSBcIiR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9XCJcbiAgICAgICAgICBTT1JUIG0uYWRkZWQgREVTQ1xuICAgICAgICAgICR7bGltaXQuYXFsfVxuICAgICAgICAgIFNPUlQgbS5hZGRlZCBBU0NcbiAgICAgICAgICBMRVQgdXNlciA9IEZJUlNUKFxuICAgICAgICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgICAgICAgIEZJTFRFUiB1Ll9rZXkgPT0gbS51c2VySWRcbiAgICAgICAgICAgIExJTUlUIDFcbiAgICAgICAgICAgIFJFVFVSTiB1XG4gICAgICAgICAgKVxuICAgICAgICAgIFJFVFVSTiBNRVJHRShtLCB7dXNlcjogdXNlcn0pYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZTogTWVzc2FnZUlucHV0VHlwZSk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgY29udmVyc2F0aW9uSWQsXG4gICAgZmlsZXMsXG4gICAgaW1hZ2VzLFxuICAgIG1lc3NhZ2VJZCA9IGNyZWF0ZUhhc2goYG1lc3NhZ2UtJHtzZXNzaW9uSWR9YClcbiAgfSA9IG1lc3NhZ2U7XG4gIGNvbnN0IGZvcm1hdENvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKTtcblxuICBpZihmb3JtYXRDb252ZXJzYXRpb25JZCA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVpcmVkX2NvbnZlcnNhdGlvbklkJyk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHVwZGF0ZTogTWVzc2FnZVR5cGUgPSB7XG4gICAgY29udGVudDogcGFyc2VTdHJpbmcobWVzc2FnZS5jb250ZW50LCA2NDApLFxuICAgIGZpbGVzOiBmaWxlcyB8fCBbXSxcbiAgICBpbWFnZXM6IGltYWdlcyB8fCBbXSxcbiAgICBtb2RpZmllZDogbm93XG4gIH07XG4gIGNvbnN0IGZvcm1hdE1zZ0lkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG4gIGNvbnN0IGluc2VydDogTWVzc2FnZVR5cGUgPSB7XG4gICAgLi4uY2xvbmVEZWVwKHVwZGF0ZSksXG4gICAgX2tleTogZm9ybWF0TXNnSWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBjb252ZXJzYXRpb25JZDogZm9ybWF0Q29udmVyc2F0aW9uSWQsXG4gICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge19rZXk6ICR7Zm9ybWF0TXNnSWR9LCBjb252ZXJzYXRpb25JZDogJHtmb3JtYXRDb252ZXJzYXRpb25JZH0sIHVzZXJJZDogJHtzZXNzaW9uSWR9fVxuICAgIElOU0VSVCAke2luc2VydH1cbiAgICBVUERBVEUgJHt1cGRhdGV9IElOIG1lc3NhZ2VzXG4gICAgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZE1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZTogTWVzc2FnZUlucHV0VHlwZSk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHBhcnNlTWVzc2FnZShtZXNzYWdlKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYElOU0VSVCAke25ld01lc3NhZ2V9IElOIG1lc3NhZ2VzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb246ICdhZGRNZXNzYWdlJyxcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdhZGRNZXNzYWdlJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2F2ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZUlkOiBzdHJpbmcsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZlcnNhdGlvbklkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgVVBEQVRFIG0gV0lUSCB7c2F2ZWQ6IEFQUEVORChtLnNhdmVkLCAke3Nlc3Npb25JZH0sIHRydWUpfSBJTiBtZXNzYWdlc1xuICAgICAgICBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbWVzc2FnZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuc2F2ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZUlkOiBzdHJpbmcsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZlcnNhdGlvbklkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgICBVUERBVEUgbSBXSVRIIHtzYXZlZDogUkVNT1ZFX1ZBTFVFKG0uc2F2ZWQsICR7c2Vzc2lvbklkfSl9IElOIG1lc3NhZ2VzXG4gICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKSA9PiB7XG4gICAgICAgICAgaWYobWVzc2FnZSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLmlkKS5lbWl0KCdtZXNzYWdlX3Vuc2F2ZScsIG1lc3NhZ2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1lc3NhZ2VJZDogc3RyaW5nLCBjb252ZXJzYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252ZXJzYXRpb25JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9ICYmIG0uZnJvbSA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgLnRoZW4oKG1lc3NhZ2U6IE1lc3NhZ2VUeXBlKSA9PiB7XG4gICAgICAgICAgaWYobWVzc2FnZSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLnRvSWQpLmVtaXQoJ21lc3NhZ2VfZGVsZXRlJywgbWVzc2FnZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZUlkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcblxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9XG4gICAgUkVUVVJOIG1gO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhbk1lc3NhZ2VzID0gKGRhdGFiYXNlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgLy8gUmVtb3ZlIGFsbCBtZXNzYWdlcyB0aGF0IGFyZSBvdmVyIDYwIGRheXMgYW5kIG5vdCBzYXZlZFxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgIEZJTFRFUiBtLmFkZGVkIDwgREFURV9USU1FU1RBTVAoREFURV9TVUJUUkFDVChEQVRFX05PVygpLCA2MCwgJ2RheScpKSAmJiBMRU5HVEgobS5zYXZlZCkgPiAwXG4gICAgICBSRU1PVkUgbSBJTiBtZXNzYWdlc1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdDogTWVzc2FnZVR5cGVbXSkgPT4gbGlzdC5sZW5ndGgpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdLCJuYW1lcyI6WyJjbG9uZURlZXAiLCJjcmVhdGVIYXNoIiwicGFyc2VJZCIsInBhcnNlU3RyaW5nIiwiYXFsIiwicGFyc2VNZXNzYWdlIiwibG9nRXJyb3IiLCJnZXRMaW1pdCIsInVzZURiIiwiZ2V0Q29udmVyc2F0aW9uIiwiZXZlbnRDYXRlZ29yeSIsImdldE1lc3NhZ2VzIiwiY29udGV4dCIsImNvbnZlcnNhdGlvbklkIiwiZnJvbSIsInRvIiwiZGF0YWJhc2VOYW1lIiwic2Vzc2lvbiIsInVzZXJJZCIsInNlc3Npb25JZCIsImZvcm1hdENvbnZlcnNhdGlvbklkIiwic2Vzc2lvbkRvY0lkIiwiY29udmVyc2F0aW9uRG9jSWQiLCJjb252ZXJzYXRpb25RcnkiLCJxdWVyeSIsInRoZW4iLCJjdXJzb3IiLCJhbGwiLCJjb252ZXJzYXRpb25zIiwibGVuZ3RoIiwibGltaXQiLCJhcWxRcnkiLCJjYXRjaCIsImVycm9yIiwidXBkYXRlTWVzc2FnZSIsIm1lc3NhZ2UiLCJmaWxlcyIsImltYWdlcyIsIm1lc3NhZ2VJZCIsIkVycm9yIiwibm93IiwiRGF0ZSIsInVwZGF0ZSIsImNvbnRlbnQiLCJtb2RpZmllZCIsImZvcm1hdE1zZ0lkIiwiaW5zZXJ0IiwiX2tleSIsImFkZGVkIiwibmV4dCIsImFkZE1lc3NhZ2UiLCJuZXdNZXNzYWdlIiwiYWN0aW9uIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInNhdmVNZXNzYWdlIiwiZm9ybWF0SWQiLCJjb252ZXJzYXRpb24iLCJjb252ZXJzYXRpb25LZXkiLCJ1bnNhdmVNZXNzYWdlIiwiZGVsZXRlTWVzc2FnZSIsImdldE1lc3NhZ2UiLCJjbGVhbk1lc3NhZ2VzIiwibGlzdCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsU0FBUyxRQUFPLDZCQUE2QjtBQUNyRCxTQUFRQyxVQUFVLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUM5RSxTQUFRQyxHQUFHLFFBQU8sV0FBVztBQUc3QixTQUFRQyxZQUFZLFFBQU8sZ0NBQWdDO0FBQzNELFNBQVFDLFFBQVEsUUFBTyw2QkFBNkI7QUFDcEQsU0FBUUMsUUFBUSxFQUFFQyxLQUFLLFFBQU8sNEJBQTRCO0FBQzFELFNBQVFDLGVBQWUsUUFBTyxxQkFBcUI7QUFPbkQsTUFBTUMsZ0JBQXdCO0FBRTlCLE9BQU8sTUFBTUMsY0FBYyxDQUFDQyxTQUFxQkMsZ0JBQXdCLEVBQUNDLElBQUksRUFBRUMsRUFBRSxFQUFDO0lBQ2pGLE1BQU0sRUFBQ0MsWUFBWSxFQUFFQyxTQUFTLEVBQUNDLFFBQVFDLFNBQVMsRUFBQyxFQUFDLEdBQUdQO0lBQ3JELE1BQU1RLHVCQUErQmxCLFFBQVFXO0lBQzdDLE1BQU1RLGVBQXVCLENBQUMsTUFBTSxFQUFFRixXQUFXO0lBQ2pELE1BQU1HLG9CQUE0QixDQUFDLGNBQWMsRUFBRUYsc0JBQXNCO0lBQ3pFLE1BQU1HLGtCQUFrQm5CLEdBQUcsQ0FBQztzQkFDUixFQUFFaUIsYUFBYSxhQUFhLEVBQUVDLGtCQUFrQjs7WUFFMUQsQ0FBQztJQUVYLE9BQU9kLE1BQU1RLGNBQWNRLEtBQUssQ0FBQ0QsaUJBQzlCRSxJQUFJLENBQUMsQ0FBQ0MsU0FBV0EsT0FBT0MsR0FBRyxJQUMzQkYsSUFBSSxDQUFDLENBQUNHO1FBQ0wsSUFBRyxDQUFDQSxjQUFjQyxNQUFNLEVBQUU7WUFDeEIsT0FBTyxFQUFFO1FBQ1g7UUFFQSxNQUFNQyxRQUF1QnZCLFNBQVNPLE1BQU1DO1FBQzVDLE1BQU1nQixTQUFpQixDQUFDO3NDQUNRLEVBQUVYLHFCQUFxQjs7VUFFbkQsRUFBRVUsTUFB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
@@ -2,8 +2,9 @@
2
2
  * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
- import { Responses } from 'apn';
5
+ import { Provider, Responses } from 'apn';
6
6
  import type { NotificationType } from '../types/notifications.types.js';
7
- export declare const getApnProvider: () => any;
7
+ export declare const getApnProvider: () => Provider;
8
8
  export declare const pushNotification: (deviceTokens: string[], note: NotificationType) => Promise<Responses>;
9
9
  export declare const clearBadges: (deviceTokens: string[]) => Promise<Responses>;
10
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/actions/notifications.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAkC,QAAQ,EAAE,SAAS,EAAC,MAAM,KAAK,CAAC;AAIzE,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAEtE,eAAO,MAAM,cAAc,gBAKzB,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAAI,cAAc,MAAM,EAAE,EAAE,MAAM,gBAAgB,KAAG,OAAO,CAAC,SAAS,CAiBlG,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,EAAE,KAAG,OAAO,CAAC,SAAS,CAOrE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ // const eventCategory: string = 'notifications';
5
+ // Push Notifications
6
+ import { Notification as APNNotification, Provider } from 'apn';
7
+ import { Config } from '../config.js';
8
+ export const getApnProvider = ()=>new Provider({
9
+ ca: Config.get('app.apn.ca'),
10
+ cert: Config.get('app.apn.cert'),
11
+ key: Config.get('app.apn.key'),
12
+ production: Config.get('environment') === 'prod'
13
+ });
14
+ export const pushNotification = (deviceTokens, note)=>{
15
+ // Push notification to device
16
+ const provider = getApnProvider();
17
+ const notification = new APNNotification();
18
+ notification.topic = Config.get('app.apn.id');
19
+ notification.alert = note.message;
20
+ if (note.data) {
21
+ notification.mutableContent = true;
22
+ notification.payload = note.data;
23
+ }
24
+ if (note.badge !== undefined) {
25
+ notification.badge = note.badge;
26
+ }
27
+ return provider.send(notification, deviceTokens);
28
+ };
29
+ export const clearBadges = (deviceTokens)=>{
30
+ // Push notification to device
31
+ const provider = getApnProvider();
32
+ const notification = new APNNotification();
33
+ notification.badge = 0;
34
+ return provider.send(notification, deviceTokens);
35
+ };
36
+
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvbm90aWZpY2F0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ25vdGlmaWNhdGlvbnMnO1xuLy8gUHVzaCBOb3RpZmljYXRpb25zXG5pbXBvcnQge05vdGlmaWNhdGlvbiBhcyBBUE5Ob3RpZmljYXRpb24sIFByb3ZpZGVyLCBSZXNwb25zZXN9IGZyb20gJ2Fwbic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG5pbXBvcnQgdHlwZSB7Tm90aWZpY2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvbm90aWZpY2F0aW9ucy50eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRBcG5Qcm92aWRlciA9ICgpID0+IG5ldyBQcm92aWRlcih7XG4gIGNhOiBDb25maWcuZ2V0KCdhcHAuYXBuLmNhJyksXG4gIGNlcnQ6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2VydCcpLFxuICBrZXk6IENvbmZpZy5nZXQoJ2FwcC5hcG4ua2V5JyksXG4gIHByb2R1Y3Rpb246IENvbmZpZy5nZXQoJ2Vudmlyb25tZW50JykgPT09ICdwcm9kJ1xufSk7XG5cbmV4cG9ydCBjb25zdCBwdXNoTm90aWZpY2F0aW9uID0gKGRldmljZVRva2Vuczogc3RyaW5nW10sIG5vdGU6IE5vdGlmaWNhdGlvblR5cGUpOiBQcm9taXNlPFJlc3BvbnNlcz4gPT4ge1xuICAvLyBQdXNoIG5vdGlmaWNhdGlvbiB0byBkZXZpY2VcbiAgY29uc3QgcHJvdmlkZXI6IFByb3ZpZGVyID0gZ2V0QXBuUHJvdmlkZXIoKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uOiBBUE5Ob3RpZmljYXRpb24gPSBuZXcgQVBOTm90aWZpY2F0aW9uKCk7XG4gIG5vdGlmaWNhdGlvbi50b3BpYyA9IENvbmZpZy5nZXQoJ2FwcC5hcG4uaWQnKTtcbiAgbm90aWZpY2F0aW9uLmFsZXJ0ID0gbm90ZS5tZXNzYWdlO1xuXG4gIGlmKG5vdGUuZGF0YSkge1xuICAgIG5vdGlmaWNhdGlvbi5tdXRhYmxlQ29udGVudCA9IHRydWU7XG4gICAgbm90aWZpY2F0aW9uLnBheWxvYWQgPSBub3RlLmRhdGE7XG4gIH1cblxuICBpZihub3RlLmJhZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBub3RpZmljYXRpb24uYmFkZ2UgPSBub3RlLmJhZGdlO1xuICB9XG5cbiAgcmV0dXJuIHByb3ZpZGVyLnNlbmQobm90aWZpY2F0aW9uLCBkZXZpY2VUb2tlbnMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyQmFkZ2VzID0gKGRldmljZVRva2Vuczogc3RyaW5nW10pOiBQcm9taXNlPFJlc3BvbnNlcz4gPT4ge1xuICAvLyBQdXNoIG5vdGlmaWNhdGlvbiB0byBkZXZpY2VcbiAgY29uc3QgcHJvdmlkZXIgPSBnZXRBcG5Qcm92aWRlcigpO1xuICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgQVBOTm90aWZpY2F0aW9uKCk7XG4gIG5vdGlmaWNhdGlvbi5iYWRnZSA9IDA7XG5cbiAgcmV0dXJuIHByb3ZpZGVyLnNlbmQobm90aWZpY2F0aW9uLCBkZXZpY2VUb2tlbnMpO1xufTtcbiJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb24iLCJBUE5Ob3RpZmljYXRpb24iLCJQcm92aWRlciIsIkNvbmZpZyIsImdldEFwblByb3ZpZGVyIiwiY2EiLCJnZXQiLCJjZXJ0Iiwia2V5IiwicHJvZHVjdGlvbiIsInB1c2hOb3RpZmljYXRpb24iLCJkZXZpY2VUb2tlbnMiLCJub3RlIiwicHJvdmlkZXIiLCJub3RpZmljYXRpb24iLCJ0b3BpYyIsImFsZXJ0IiwibWVzc2FnZSIsImRhdGEiLCJtdXRhYmxlQ29udGVudCIsInBheWxvYWQiLCJiYWRnZSIsInVuZGVmaW5lZCIsInNlbmQiLCJjbGVhckJhZGdlcyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsaURBQWlEO0FBQ2pELHFCQUFxQjtBQUNyQixTQUFRQSxnQkFBZ0JDLGVBQWUsRUFBRUMsUUFBUSxRQUFrQixNQUFNO0FBRXpFLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FBSXBDLE9BQU8sTUFBTUMsaUJBQWlCLElBQU0sSUFBSUYsU0FBUztRQUMvQ0csSUFBSUYsT0FBT0csR0FBRyxDQUFDO1FBQ2ZDLE1BQU1KLE9BQU9HLEdBQUcsQ0FBQztRQUNqQkUsS0FBS0wsT0FBT0csR0FBRyxDQUFDO1FBQ2hCRyxZQUFZTixPQUFPRyxHQUFHLENBQUMsbUJBQW1CO0lBQzVDLEdBQUc7QUFFSCxPQUFPLE1BQU1JLG1CQUFtQixDQUFDQyxjQUF3QkM7SUFDdkQsOEJBQThCO0lBQzlCLE1BQU1DLFdBQXFCVDtJQUMzQixNQUFNVSxlQUFnQyxJQUFJYjtJQUMxQ2EsYUFBYUMsS0FBSyxHQUFHWixPQUFPRyxHQUFHLENBQUM7SUFDaENRLGFBQWFFLEtBQUssR0FBR0osS0FBS0ssT0FBTztJQUVqQyxJQUFHTCxLQUFLTSxJQUFJLEVBQUU7UUFDWkosYUFBYUssY0FBYyxHQUFHO1FBQzlCTCxhQUFhTSxPQUFPLEdBQUdSLEtBQUtNLElBQUk7SUFDbEM7SUFFQSxJQUFHTixLQUFLUyxLQUFLLEtBQUtDLFdBQVc7UUFDM0JSLGFBQWFPLEtBQUssR0FBR1QsS0FBS1MsS0FBSztJQUNqQztJQUVBLE9BQU9SLFNBQVNVLElBQUksQ0FBQ1QsY0FBY0g7QUFDckMsRUFBRTtBQUVGLE9BQU8sTUFBTWEsY0FBYyxDQUFDYjtJQUMxQiw4QkFBOEI7SUFDOUIsTUFBTUUsV0FBV1Q7SUFDakIsTUFBTVUsZUFBZSxJQUFJYjtJQUN6QmEsYUFBYU8sS0FBSyxHQUFHO0lBRXJCLE9BQU9SLFNBQVNVLElBQUksQ0FBQ1QsY0FBY0g7QUFDckMsRUFBRSJ9
@@ -10,3 +10,4 @@ export declare const deleteCreditCard: (context: ApiContext, cardId: string) =>
10
10
  export declare const deleteBankAccount: (context: ApiContext, bankId: string) => Promise<boolean>;
11
11
  export declare const createPaymentTransfer: (context: ApiContext, transfer: PaymentTransfer) => Promise<PaymentTransfer>;
12
12
  export declare const createPaymentHold: (context: ApiContext, payment: PaymentCharge) => Promise<PaymentCharge>;
13
+ //# sourceMappingURL=payments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/actions/payments.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC/G,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAUjD,eAAO,MAAM,kBAAkB,GAAI,SAAS,UAAU,KAAG,OAAO,CAAC,OAAO,CAgCvE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,UAAU,EAAE,aAAa,kBAAkB,KAAG,OAAO,CAAC,OAAO,CA0FpG,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,UAAU,EAAE,MAAM,eAAe,KAAG,OAAO,CAAC,QAAQ,CA+J1F,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,UAAU,EAAE,MAAM,eAAe,KAAG,OAAO,CAAC,eAAe,CAgHpG,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,UAAU,KAAG,OAAO,CAAC,eAAe,EAAE,CAe7E,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,UAAU,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CA+DrF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,UAAU,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAwBtF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,SAAS,UAAU,EAAE,UAAU,eAAe,KAAG,OAAO,CAAC,eAAe,CAkC7G,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAS,UAAU,EAAE,SAAS,aAAa,KAAG,OAAO,CAAC,aAAa,CAwCpG,CAAC"}