@nlabs/reaktor 0.10.2 → 0.10.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/coverage/block-navigation.js +1 -1
  2. package/coverage/index.html +23 -23
  3. package/coverage/sorter.js +21 -7
  4. package/lib/actions/apps.d.ts +1 -0
  5. package/lib/actions/apps.d.ts.map +1 -0
  6. package/lib/actions/apps.js +218 -17
  7. package/lib/actions/connections.d.ts +1 -0
  8. package/lib/actions/connections.d.ts.map +1 -0
  9. package/lib/actions/connections.js +61 -6
  10. package/lib/actions/content.d.ts +1 -0
  11. package/lib/actions/content.d.ts.map +1 -0
  12. package/lib/actions/content.js +232 -9
  13. package/lib/actions/conversations.d.ts +1 -0
  14. package/lib/actions/conversations.d.ts.map +1 -0
  15. package/lib/actions/conversations.js +321 -19
  16. package/lib/actions/dynamodb.d.ts +1 -0
  17. package/lib/actions/dynamodb.d.ts.map +1 -0
  18. package/lib/actions/dynamodb.js +119 -2
  19. package/lib/actions/email.d.ts +1 -0
  20. package/lib/actions/email.d.ts.map +1 -0
  21. package/lib/actions/email.js +56 -2
  22. package/lib/actions/files.d.ts +1 -0
  23. package/lib/actions/files.d.ts.map +1 -0
  24. package/lib/actions/files.js +226 -5
  25. package/lib/actions/groups.d.ts +1 -0
  26. package/lib/actions/groups.d.ts.map +1 -0
  27. package/lib/actions/groups.js +234 -19
  28. package/lib/actions/images.d.ts +1 -0
  29. package/lib/actions/images.d.ts.map +1 -0
  30. package/lib/actions/images.js +688 -31
  31. package/lib/actions/index.d.ts +2 -0
  32. package/lib/actions/index.d.ts.map +1 -0
  33. package/lib/actions/index.js +29 -2
  34. package/lib/actions/ios.d.ts +1 -0
  35. package/lib/actions/ios.d.ts.map +1 -0
  36. package/lib/actions/ios.js +228 -9
  37. package/lib/actions/locations.d.ts +1 -0
  38. package/lib/actions/locations.d.ts.map +1 -0
  39. package/lib/actions/locations.js +111 -7
  40. package/lib/actions/messages.d.ts +1 -0
  41. package/lib/actions/messages.d.ts.map +1 -0
  42. package/lib/actions/messages.js +155 -21
  43. package/lib/actions/notifications.d.ts +1 -0
  44. package/lib/actions/notifications.d.ts.map +1 -0
  45. package/lib/actions/notifications.js +37 -2
  46. package/lib/actions/payments.d.ts +1 -0
  47. package/lib/actions/payments.d.ts.map +1 -0
  48. package/lib/actions/payments.js +428 -11
  49. package/lib/actions/posts.d.ts +1 -0
  50. package/lib/actions/posts.d.ts.map +1 -0
  51. package/lib/actions/posts.js +540 -75
  52. package/lib/actions/profiles.d.ts +1 -0
  53. package/lib/actions/profiles.d.ts.map +1 -0
  54. package/lib/actions/profiles.js +58 -8
  55. package/lib/actions/reactions.d.ts +1 -0
  56. package/lib/actions/reactions.d.ts.map +1 -0
  57. package/lib/actions/reactions.js +276 -25
  58. package/lib/actions/s3.d.ts +1 -0
  59. package/lib/actions/s3.d.ts.map +1 -0
  60. package/lib/actions/s3.js +102 -2
  61. package/lib/actions/search.d.ts +1 -0
  62. package/lib/actions/search.d.ts.map +1 -0
  63. package/lib/actions/search.js +81 -5
  64. package/lib/actions/sms.d.ts +1 -0
  65. package/lib/actions/sms.d.ts.map +1 -0
  66. package/lib/actions/sms.js +52 -2
  67. package/lib/actions/statistics.d.ts +1 -0
  68. package/lib/actions/statistics.d.ts.map +1 -0
  69. package/lib/actions/statistics.js +41 -6
  70. package/lib/actions/subscriptions.d.ts +1 -0
  71. package/lib/actions/subscriptions.d.ts.map +1 -0
  72. package/lib/actions/subscriptions.js +196 -6
  73. package/lib/actions/tags.d.ts +1 -0
  74. package/lib/actions/tags.d.ts.map +1 -0
  75. package/lib/actions/tags.js +258 -19
  76. package/lib/actions/users.d.ts +1 -0
  77. package/lib/actions/users.d.ts.map +1 -0
  78. package/lib/actions/users.js +781 -66
  79. package/lib/actions/videos.d.ts +26 -0
  80. package/lib/actions/videos.d.ts.map +1 -0
  81. package/lib/actions/videos.js +423 -0
  82. package/lib/actions/websockets.d.ts +1 -0
  83. package/lib/actions/websockets.d.ts.map +1 -0
  84. package/lib/actions/websockets.js +148 -14
  85. package/lib/adapters/arangoAdapter.d.ts +1 -0
  86. package/lib/adapters/arangoAdapter.d.ts.map +1 -0
  87. package/lib/adapters/arangoAdapter.js +70 -2
  88. package/lib/adapters/contentAdapter.d.ts +1 -0
  89. package/lib/adapters/contentAdapter.d.ts.map +1 -0
  90. package/lib/adapters/contentAdapter.js +108 -2
  91. package/lib/adapters/fileAdapter.d.ts +1 -0
  92. package/lib/adapters/fileAdapter.d.ts.map +1 -0
  93. package/lib/adapters/fileAdapter.js +119 -2
  94. package/lib/adapters/imageAdapter.d.ts +1 -0
  95. package/lib/adapters/imageAdapter.d.ts.map +1 -0
  96. package/lib/adapters/imageAdapter.js +112 -2
  97. package/lib/adapters/index.d.ts +1 -0
  98. package/lib/adapters/index.d.ts.map +1 -0
  99. package/lib/adapters/index.js +11 -2
  100. package/lib/adapters/messageAdapter.d.ts +1 -0
  101. package/lib/adapters/messageAdapter.d.ts.map +1 -0
  102. package/lib/adapters/messageAdapter.js +82 -2
  103. package/lib/adapters/postAdapter.d.ts +1 -0
  104. package/lib/adapters/postAdapter.d.ts.map +1 -0
  105. package/lib/adapters/postAdapter.js +117 -2
  106. package/lib/adapters/reaktorAdapter.d.ts +1 -0
  107. package/lib/adapters/reaktorAdapter.d.ts.map +1 -0
  108. package/lib/adapters/reaktorAdapter.js +59 -2
  109. package/lib/adapters/tagAdapter.d.ts +1 -0
  110. package/lib/adapters/tagAdapter.d.ts.map +1 -0
  111. package/lib/adapters/tagAdapter.js +99 -2
  112. package/lib/adapters/userAdapter.d.ts +1 -0
  113. package/lib/adapters/userAdapter.d.ts.map +1 -0
  114. package/lib/adapters/userAdapter.js +264 -2
  115. package/lib/config.d.ts +1 -0
  116. package/lib/config.d.ts.map +1 -0
  117. package/lib/config.js +161 -2
  118. package/lib/handlers/graphqlHandler.d.ts +1 -0
  119. package/lib/handlers/graphqlHandler.d.ts.map +1 -0
  120. package/lib/handlers/graphqlHandler.js +118 -2
  121. package/lib/index.d.ts +1 -0
  122. package/lib/index.d.ts.map +1 -0
  123. package/lib/index.js +18 -2
  124. package/lib/lambdas/actions/websockets.d.ts +1 -0
  125. package/lib/lambdas/actions/websockets.d.ts.map +1 -0
  126. package/lib/lambdas/actions/websockets.js +89 -14
  127. package/lib/lambdas/authorizer.d.ts +1 -0
  128. package/lib/lambdas/authorizer.d.ts.map +1 -0
  129. package/lib/lambdas/authorizer.js +41 -2
  130. package/lib/lambdas/connection.d.ts +1 -0
  131. package/lib/lambdas/connection.d.ts.map +1 -0
  132. package/lib/lambdas/connection.js +85 -2
  133. package/lib/lambdas/utils/message.d.ts +1 -0
  134. package/lib/lambdas/utils/message.d.ts.map +1 -0
  135. package/lib/lambdas/utils/message.js +20 -2
  136. package/lib/lambdas/utils/websocket.d.ts +1 -0
  137. package/lib/lambdas/utils/websocket.d.ts.map +1 -0
  138. package/lib/lambdas/utils/websocket.js +78 -2
  139. package/lib/mocks/conversation.d.ts +1 -0
  140. package/lib/mocks/conversation.d.ts.map +1 -0
  141. package/lib/mocks/conversation.js +10 -2
  142. package/lib/mocks/file.d.ts +1 -0
  143. package/lib/mocks/file.d.ts.map +1 -0
  144. package/lib/mocks/file.js +13 -2
  145. package/lib/mocks/group.d.ts +1 -0
  146. package/lib/mocks/group.d.ts.map +1 -0
  147. package/lib/mocks/group.js +20 -2
  148. package/lib/mocks/image.d.ts +1 -0
  149. package/lib/mocks/image.d.ts.map +1 -0
  150. package/lib/mocks/image.js +17 -2
  151. package/lib/mocks/post.d.ts +1 -0
  152. package/lib/mocks/post.d.ts.map +1 -0
  153. package/lib/mocks/post.js +28 -2
  154. package/lib/mocks/tag.d.ts +1 -0
  155. package/lib/mocks/tag.d.ts.map +1 -0
  156. package/lib/mocks/tag.js +12 -2
  157. package/lib/mocks/user.d.ts +1 -0
  158. package/lib/mocks/user.d.ts.map +1 -0
  159. package/lib/mocks/user.js +61 -2
  160. package/lib/mocks/video.d.ts +4 -0
  161. package/lib/mocks/video.d.ts.map +1 -0
  162. package/lib/mocks/video.js +17 -0
  163. package/lib/mutations/content.d.ts +1 -0
  164. package/lib/mutations/content.d.ts.map +1 -0
  165. package/lib/mutations/content.js +27 -2
  166. package/lib/mutations/index.d.ts +1 -0
  167. package/lib/mutations/index.d.ts.map +1 -0
  168. package/lib/mutations/index.js +29 -2
  169. package/lib/mutations/locations.d.ts +1 -0
  170. package/lib/mutations/locations.d.ts.map +1 -0
  171. package/lib/mutations/locations.js +22 -2
  172. package/lib/mutations/messages.d.ts +1 -0
  173. package/lib/mutations/messages.d.ts.map +1 -0
  174. package/lib/mutations/messages.js +75 -2
  175. package/lib/mutations/posts.d.ts +1 -0
  176. package/lib/mutations/posts.d.ts.map +1 -0
  177. package/lib/mutations/posts.js +31 -2
  178. package/lib/mutations/profiles.d.ts +1 -0
  179. package/lib/mutations/profiles.d.ts.map +1 -0
  180. package/lib/mutations/profiles.js +78 -2
  181. package/lib/mutations/reactions.d.ts +1 -0
  182. package/lib/mutations/reactions.d.ts.map +1 -0
  183. package/lib/mutations/reactions.js +29 -2
  184. package/lib/mutations/statistics.d.ts +1 -0
  185. package/lib/mutations/statistics.d.ts.map +1 -0
  186. package/lib/mutations/statistics.js +17 -2
  187. package/lib/mutations/subscriptions.d.ts +1 -0
  188. package/lib/mutations/subscriptions.d.ts.map +1 -0
  189. package/lib/mutations/subscriptions.js +38 -2
  190. package/lib/mutations/tags.d.ts +1 -0
  191. package/lib/mutations/tags.d.ts.map +1 -0
  192. package/lib/mutations/tags.js +109 -2
  193. package/lib/mutations/users.d.ts +1 -0
  194. package/lib/mutations/users.d.ts.map +1 -0
  195. package/lib/mutations/users.js +129 -2
  196. package/lib/objectTypes/app.d.ts +1 -0
  197. package/lib/objectTypes/app.d.ts.map +1 -0
  198. package/lib/objectTypes/app.js +147 -2
  199. package/lib/objectTypes/bankAccount.d.ts +1 -0
  200. package/lib/objectTypes/bankAccount.d.ts.map +1 -0
  201. package/lib/objectTypes/bankAccount.js +54 -2
  202. package/lib/objectTypes/connection.d.ts +1 -0
  203. package/lib/objectTypes/connection.d.ts.map +1 -0
  204. package/lib/objectTypes/connection.js +26 -2
  205. package/lib/objectTypes/content.d.ts +1 -0
  206. package/lib/objectTypes/content.d.ts.map +1 -0
  207. package/lib/objectTypes/content.js +79 -2
  208. package/lib/objectTypes/conversation.d.ts +1 -0
  209. package/lib/objectTypes/conversation.d.ts.map +1 -0
  210. package/lib/objectTypes/conversation.js +53 -2
  211. package/lib/objectTypes/creditCard.d.ts +1 -0
  212. package/lib/objectTypes/creditCard.d.ts.map +1 -0
  213. package/lib/objectTypes/creditCard.js +64 -2
  214. package/lib/objectTypes/document.d.ts +1 -0
  215. package/lib/objectTypes/document.d.ts.map +1 -0
  216. package/lib/objectTypes/document.js +21 -2
  217. package/lib/objectTypes/error.d.ts +1 -0
  218. package/lib/objectTypes/error.d.ts.map +1 -0
  219. package/lib/objectTypes/error.js +24 -2
  220. package/lib/objectTypes/external.d.ts +1 -0
  221. package/lib/objectTypes/external.d.ts.map +1 -0
  222. package/lib/objectTypes/external.js +52 -2
  223. package/lib/objectTypes/file.d.ts +1 -0
  224. package/lib/objectTypes/file.d.ts.map +1 -0
  225. package/lib/objectTypes/file.js +76 -2
  226. package/lib/objectTypes/filter.d.ts +1 -0
  227. package/lib/objectTypes/filter.d.ts.map +1 -0
  228. package/lib/objectTypes/filter.js +21 -2
  229. package/lib/objectTypes/group.d.ts +1 -0
  230. package/lib/objectTypes/group.d.ts.map +1 -0
  231. package/lib/objectTypes/group.js +97 -2
  232. package/lib/objectTypes/iapSubscription.d.ts +1 -0
  233. package/lib/objectTypes/iapSubscription.d.ts.map +1 -0
  234. package/lib/objectTypes/iapSubscription.js +18 -2
  235. package/lib/objectTypes/image.d.ts +1 -0
  236. package/lib/objectTypes/image.d.ts.map +1 -0
  237. package/lib/objectTypes/image.js +105 -2
  238. package/lib/objectTypes/index.d.ts +1 -0
  239. package/lib/objectTypes/index.d.ts.map +1 -0
  240. package/lib/objectTypes/index.js +28 -2
  241. package/lib/objectTypes/location.d.ts +1 -0
  242. package/lib/objectTypes/location.d.ts.map +1 -0
  243. package/lib/objectTypes/location.js +85 -2
  244. package/lib/objectTypes/message.d.ts +1 -0
  245. package/lib/objectTypes/message.d.ts.map +1 -0
  246. package/lib/objectTypes/message.js +72 -2
  247. package/lib/objectTypes/passcode.d.ts +1 -0
  248. package/lib/objectTypes/passcode.d.ts.map +1 -0
  249. package/lib/objectTypes/passcode.js +20 -2
  250. package/lib/objectTypes/plan.d.ts +1 -0
  251. package/lib/objectTypes/plan.d.ts.map +1 -0
  252. package/lib/objectTypes/plan.js +71 -2
  253. package/lib/objectTypes/post.d.ts +1 -0
  254. package/lib/objectTypes/post.d.ts.map +1 -0
  255. package/lib/objectTypes/post.js +101 -2
  256. package/lib/objectTypes/profile.d.ts +1 -0
  257. package/lib/objectTypes/profile.d.ts.map +1 -0
  258. package/lib/objectTypes/profile.js +68 -2
  259. package/lib/objectTypes/reaction.d.ts +1 -0
  260. package/lib/objectTypes/reaction.d.ts.map +1 -0
  261. package/lib/objectTypes/reaction.js +37 -2
  262. package/lib/objectTypes/relation.d.ts +1 -0
  263. package/lib/objectTypes/relation.d.ts.map +1 -0
  264. package/lib/objectTypes/relation.js +27 -2
  265. package/lib/objectTypes/search.d.ts +1 -0
  266. package/lib/objectTypes/search.d.ts.map +1 -0
  267. package/lib/objectTypes/search.js +50 -2
  268. package/lib/objectTypes/statistics.d.ts +1 -0
  269. package/lib/objectTypes/statistics.d.ts.map +1 -0
  270. package/lib/objectTypes/statistics.js +17 -2
  271. package/lib/objectTypes/subscription.d.ts +1 -0
  272. package/lib/objectTypes/subscription.d.ts.map +1 -0
  273. package/lib/objectTypes/subscription.js +102 -2
  274. package/lib/objectTypes/tag.d.ts +1 -0
  275. package/lib/objectTypes/tag.d.ts.map +1 -0
  276. package/lib/objectTypes/tag.js +41 -2
  277. package/lib/objectTypes/user.d.ts +1 -0
  278. package/lib/objectTypes/user.d.ts.map +1 -0
  279. package/lib/objectTypes/user.js +111 -2
  280. package/lib/queries/content.d.ts +1 -0
  281. package/lib/queries/content.d.ts.map +1 -0
  282. package/lib/queries/content.js +50 -2
  283. package/lib/queries/index.d.ts +1 -0
  284. package/lib/queries/index.d.ts.map +1 -0
  285. package/lib/queries/index.js +27 -2
  286. package/lib/queries/locations.d.ts +1 -0
  287. package/lib/queries/locations.d.ts.map +1 -0
  288. package/lib/queries/locations.js +23 -2
  289. package/lib/queries/messages.d.ts +1 -0
  290. package/lib/queries/messages.d.ts.map +1 -0
  291. package/lib/queries/messages.js +35 -2
  292. package/lib/queries/posts.d.ts +1 -0
  293. package/lib/queries/posts.d.ts.map +1 -0
  294. package/lib/queries/posts.js +154 -2
  295. package/lib/queries/reactions.d.ts +1 -0
  296. package/lib/queries/reactions.d.ts.map +1 -0
  297. package/lib/queries/reactions.js +34 -2
  298. package/lib/queries/statistics.d.ts +1 -0
  299. package/lib/queries/statistics.d.ts.map +1 -0
  300. package/lib/queries/statistics.js +17 -2
  301. package/lib/queries/subscriptions.d.ts +1 -0
  302. package/lib/queries/subscriptions.d.ts.map +1 -0
  303. package/lib/queries/subscriptions.js +21 -2
  304. package/lib/queries/tags.d.ts +1 -0
  305. package/lib/queries/tags.d.ts.map +1 -0
  306. package/lib/queries/tags.js +56 -2
  307. package/lib/queries/users.d.ts +1 -0
  308. package/lib/queries/users.d.ts.map +1 -0
  309. package/lib/queries/users.js +39 -2
  310. package/lib/templates/email/layout.d.ts +1 -0
  311. package/lib/templates/email/layout.d.ts.map +1 -0
  312. package/lib/templates/email/layout.js +4 -3
  313. package/lib/templates/email/passwordForgot.d.ts +1 -0
  314. package/lib/templates/email/passwordForgot.d.ts.map +1 -0
  315. package/lib/templates/email/passwordForgot.js +4 -3
  316. package/lib/templates/email/passwordRecovery.d.ts +1 -0
  317. package/lib/templates/email/passwordRecovery.d.ts.map +1 -0
  318. package/lib/templates/email/passwordRecovery.js +4 -3
  319. package/lib/templates/email/verifyEmail.d.ts +1 -0
  320. package/lib/templates/email/verifyEmail.d.ts.map +1 -0
  321. package/lib/templates/email/verifyEmail.js +4 -3
  322. package/lib/templates/email/welcome.d.ts +1 -0
  323. package/lib/templates/email/welcome.d.ts.map +1 -0
  324. package/lib/templates/email/welcome.js +4 -3
  325. package/lib/templates/sms/passwordForgot.d.ts +1 -0
  326. package/lib/templates/sms/passwordForgot.d.ts.map +1 -0
  327. package/lib/templates/sms/passwordForgot.js +3 -2
  328. package/lib/templates/sms/passwordRecovery.d.ts +1 -0
  329. package/lib/templates/sms/passwordRecovery.d.ts.map +1 -0
  330. package/lib/templates/sms/passwordRecovery.js +3 -2
  331. package/lib/templates/sms/verifyEmail.d.ts +1 -0
  332. package/lib/templates/sms/verifyEmail.d.ts.map +1 -0
  333. package/lib/templates/sms/verifyEmail.js +3 -2
  334. package/lib/templates/sms/verifyPhone.d.ts +1 -0
  335. package/lib/templates/sms/verifyPhone.d.ts.map +1 -0
  336. package/lib/templates/sms/verifyPhone.js +3 -2
  337. package/lib/templates/sms/welcome.d.ts +1 -0
  338. package/lib/templates/sms/welcome.d.ts.map +1 -0
  339. package/lib/templates/sms/welcome.js +3 -2
  340. package/lib/types/apps.types.d.ts +1 -0
  341. package/lib/types/apps.types.d.ts.map +1 -0
  342. package/lib/types/apps.types.js +10 -2
  343. package/lib/types/arangodb.types.d.ts +2 -1
  344. package/lib/types/arangodb.types.d.ts.map +1 -0
  345. package/lib/types/arangodb.types.js +6 -1
  346. package/lib/types/auth.types.d.ts +1 -0
  347. package/lib/types/auth.types.d.ts.map +1 -0
  348. package/lib/types/auth.types.js +6 -1
  349. package/lib/types/connections.types.d.ts +1 -0
  350. package/lib/types/connections.types.d.ts.map +1 -0
  351. package/lib/types/connections.types.js +6 -1
  352. package/lib/types/content.types.d.ts +1 -0
  353. package/lib/types/content.types.d.ts.map +1 -0
  354. package/lib/types/content.types.js +6 -1
  355. package/lib/types/conversations.types.d.ts +1 -0
  356. package/lib/types/conversations.types.d.ts.map +1 -0
  357. package/lib/types/conversations.types.js +6 -1
  358. package/lib/types/email.types.d.ts +1 -0
  359. package/lib/types/email.types.d.ts.map +1 -0
  360. package/lib/types/email.types.js +6 -1
  361. package/lib/types/error.types.d.ts +1 -0
  362. package/lib/types/error.types.d.ts.map +1 -0
  363. package/lib/types/error.types.js +20 -2
  364. package/lib/types/files.types.d.ts +1 -0
  365. package/lib/types/files.types.d.ts.map +1 -0
  366. package/lib/types/files.types.js +6 -1
  367. package/lib/types/google.types.d.ts +1 -0
  368. package/lib/types/google.types.d.ts.map +1 -0
  369. package/lib/types/google.types.js +6 -1
  370. package/lib/types/groups.types.d.ts +1 -0
  371. package/lib/types/groups.types.d.ts.map +1 -0
  372. package/lib/types/groups.types.js +6 -1
  373. package/lib/types/images.types.d.ts +1 -0
  374. package/lib/types/images.types.d.ts.map +1 -0
  375. package/lib/types/images.types.js +6 -1
  376. package/lib/types/index.d.ts +2 -0
  377. package/lib/types/index.d.ts.map +1 -0
  378. package/lib/types/index.js +28 -2
  379. package/lib/types/locations.types.d.ts +1 -0
  380. package/lib/types/locations.types.d.ts.map +1 -0
  381. package/lib/types/locations.types.js +6 -1
  382. package/lib/types/messages.types.d.ts +1 -0
  383. package/lib/types/messages.types.d.ts.map +1 -0
  384. package/lib/types/messages.types.js +6 -1
  385. package/lib/types/notifications.types.d.ts +1 -0
  386. package/lib/types/notifications.types.d.ts.map +1 -0
  387. package/lib/types/notifications.types.js +6 -1
  388. package/lib/types/payments.types.d.ts +1 -0
  389. package/lib/types/payments.types.d.ts.map +1 -0
  390. package/lib/types/payments.types.js +6 -1
  391. package/lib/types/posts.types.d.ts +1 -0
  392. package/lib/types/posts.types.d.ts.map +1 -0
  393. package/lib/types/posts.types.js +6 -1
  394. package/lib/types/profiles.types.d.ts +1 -0
  395. package/lib/types/profiles.types.d.ts.map +1 -0
  396. package/lib/types/profiles.types.js +3 -1
  397. package/lib/types/statistics.types.d.ts +1 -0
  398. package/lib/types/statistics.types.d.ts.map +1 -0
  399. package/lib/types/statistics.types.js +3 -1
  400. package/lib/types/tags.types.d.ts +1 -0
  401. package/lib/types/tags.types.d.ts.map +1 -0
  402. package/lib/types/tags.types.js +6 -1
  403. package/lib/types/users.types.d.ts +1 -0
  404. package/lib/types/users.types.d.ts.map +1 -0
  405. package/lib/types/users.types.js +6 -1
  406. package/lib/types/videos.types.d.ts +47 -0
  407. package/lib/types/videos.types.d.ts.map +1 -0
  408. package/lib/types/videos.types.js +6 -0
  409. package/lib/types/websockets.types.d.ts +1 -0
  410. package/lib/types/websockets.types.d.ts.map +1 -0
  411. package/lib/types/websockets.types.js +6 -1
  412. package/lib/utils/adapterUtils.d.ts +1 -0
  413. package/lib/utils/adapterUtils.d.ts.map +1 -0
  414. package/lib/utils/adapterUtils.js +23 -2
  415. package/lib/utils/analyticsUtils.d.ts +1 -0
  416. package/lib/utils/analyticsUtils.d.ts.map +1 -0
  417. package/lib/utils/analyticsUtils.js +45 -2
  418. package/lib/utils/arangodbUtils.d.ts +1 -0
  419. package/lib/utils/arangodbUtils.d.ts.map +1 -0
  420. package/lib/utils/arangodbUtils.js +128 -5
  421. package/lib/utils/authUtils.d.ts +1 -0
  422. package/lib/utils/authUtils.d.ts.map +1 -0
  423. package/lib/utils/authUtils.js +54 -2
  424. package/lib/utils/contextUtils.d.ts +1 -0
  425. package/lib/utils/contextUtils.d.ts.map +1 -0
  426. package/lib/utils/contextUtils.js +10 -2
  427. package/lib/utils/dbI18n.d.ts +1 -0
  428. package/lib/utils/dbI18n.d.ts.map +1 -0
  429. package/lib/utils/dbI18n.example.d.ts +1 -0
  430. package/lib/utils/dbI18n.example.d.ts.map +1 -0
  431. package/lib/utils/dbI18n.example.js +92 -5
  432. package/lib/utils/dbI18n.js +28 -2
  433. package/lib/utils/googleTranslate.d.ts +1 -0
  434. package/lib/utils/googleTranslate.d.ts.map +1 -0
  435. package/lib/utils/googleTranslate.js +70 -2
  436. package/lib/utils/graphqlUtils.d.ts +1 -0
  437. package/lib/utils/graphqlUtils.d.ts.map +1 -0
  438. package/lib/utils/graphqlUtils.js +11 -2
  439. package/lib/utils/index.d.ts +1 -0
  440. package/lib/utils/index.d.ts.map +1 -0
  441. package/lib/utils/index.js +19 -2
  442. package/lib/utils/languageDetection.d.ts +1 -0
  443. package/lib/utils/languageDetection.d.ts.map +1 -0
  444. package/lib/utils/languageDetection.js +120 -2
  445. package/lib/utils/localeUtils.d.ts +1 -0
  446. package/lib/utils/localeUtils.d.ts.map +1 -0
  447. package/lib/utils/localeUtils.example.d.ts +1 -0
  448. package/lib/utils/localeUtils.example.d.ts.map +1 -0
  449. package/lib/utils/localeUtils.example.js +124 -2
  450. package/lib/utils/localeUtils.js +71 -2
  451. package/lib/utils/middlewareUtils.d.ts +1 -0
  452. package/lib/utils/middlewareUtils.d.ts.map +1 -0
  453. package/lib/utils/middlewareUtils.js +10 -2
  454. package/lib/utils/sessionUtils.d.ts +1 -0
  455. package/lib/utils/sessionUtils.d.ts.map +1 -0
  456. package/lib/utils/sessionUtils.js +26 -2
  457. package/lib/utils/stripeUtils.d.ts +2 -1
  458. package/lib/utils/stripeUtils.d.ts.map +1 -0
  459. package/lib/utils/stripeUtils.js +12 -2
  460. package/lib/utils/templateUtils.d.ts +1 -0
  461. package/lib/utils/templateUtils.d.ts.map +1 -0
  462. package/lib/utils/templateUtils.js +11 -2
  463. package/lib/utils/testUtils.d.ts +1 -0
  464. package/lib/utils/testUtils.d.ts.map +1 -0
  465. package/lib/utils/testUtils.js +292 -2
  466. package/lib/utils/translationQueue.d.ts +1 -0
  467. package/lib/utils/translationQueue.d.ts.map +1 -0
  468. package/lib/utils/translationQueue.example.d.ts +1 -0
  469. package/lib/utils/translationQueue.example.d.ts.map +1 -0
  470. package/lib/utils/translationQueue.example.js +340 -2
  471. package/lib/utils/translationQueue.js +113 -2
  472. package/package.json +47 -29
@@ -24,4 +24,6 @@ export * from './statistics.js';
24
24
  export * from './subscriptions.js';
25
25
  export * from './tags.js';
26
26
  export * from './users.js';
27
+ export * from './videos.js';
27
28
  export * from './websockets.js';
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
@@ -1,2 +1,29 @@
1
- export*from"./apps.js";export*from"./connections.js";export*from"./conversations.js";export*from"./dynamodb.js";export*from"./email.js";export*from"./files.js";export*from"./groups.js";export*from"./images.js";export*from"./ios.js";export*from"./locations.js";export*from"./messages.js";export*from"./notifications.js";export*from"./payments.js";export*from"./posts.js";export*from"./reactions.js";export*from"./s3.js";export*from"./search.js";export*from"./sms.js";export*from"./statistics.js";export*from"./subscriptions.js";export*from"./tags.js";export*from"./users.js";export*from"./websockets.js";
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2FwcHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbW9kYi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2VtYWlsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9pb3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vczMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2guanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zbXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0aXN0aWNzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RhZ3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91c2Vycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3dlYnNvY2tldHMuanMnO1xuXG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxXQUFjLFlBQ2QsV0FBYyxtQkFDZCxXQUFjLHFCQUNkLFdBQWMsZ0JBQ2QsV0FBYyxhQUNkLFdBQWMsYUFDZCxXQUFjLGNBQ2QsV0FBYyxjQUNkLFdBQWMsV0FDZCxXQUFjLGlCQUNkLFdBQWMsZ0JBQ2QsV0FBYyxxQkFDZCxXQUFjLGdCQUNkLFdBQWMsYUFDZCxXQUFjLGlCQUNkLFdBQWMsVUFDZCxXQUFjLGNBQ2QsV0FBYyxXQUNkLFdBQWMsa0JBQ2QsV0FBYyxxQkFDZCxXQUFjLFlBQ2QsV0FBYyxhQUNkLFdBQWMiLAogICJuYW1lcyI6IFtdCn0K
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ export * from './apps.js';
5
+ export * from './connections.js';
6
+ export * from './conversations.js';
7
+ export * from './dynamodb.js';
8
+ export * from './email.js';
9
+ export * from './files.js';
10
+ export * from './groups.js';
11
+ export * from './images.js';
12
+ export * from './ios.js';
13
+ export * from './locations.js';
14
+ export * from './messages.js';
15
+ export * from './notifications.js';
16
+ export * from './payments.js';
17
+ export * from './posts.js';
18
+ export * from './reactions.js';
19
+ export * from './s3.js';
20
+ export * from './search.js';
21
+ export * from './sms.js';
22
+ export * from './statistics.js';
23
+ export * from './subscriptions.js';
24
+ export * from './tags.js';
25
+ export * from './users.js';
26
+ export * from './videos.js';
27
+ export * from './websockets.js';
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vYXBwcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udmVyc2F0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtb2RiLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZW1haWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3Vwcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2lvcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2F0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL21lc3NhZ2VzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbm90aWZpY2F0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3BheW1lbnRzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcG9zdHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zMy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Ntcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRpc3RpY3MuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFncy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW9zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic29ja2V0cy5qcyc7XG5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxjQUFjLFlBQVk7QUFDMUIsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxnQkFBZ0I7QUFDOUIsY0FBYyxhQUFhO0FBQzNCLGNBQWMsYUFBYTtBQUMzQixjQUFjLGNBQWM7QUFDNUIsY0FBYyxjQUFjO0FBQzVCLGNBQWMsV0FBVztBQUN6QixjQUFjLGlCQUFpQjtBQUMvQixjQUFjLGdCQUFnQjtBQUM5QixjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLGdCQUFnQjtBQUM5QixjQUFjLGFBQWE7QUFDM0IsY0FBYyxpQkFBaUI7QUFDL0IsY0FBYyxVQUFVO0FBQ3hCLGNBQWMsY0FBYztBQUM1QixjQUFjLFdBQVc7QUFDekIsY0FBYyxrQkFBa0I7QUFDaEMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxZQUFZO0FBQzFCLGNBQWMsYUFBYTtBQUMzQixjQUFjLGNBQWM7QUFDNUIsY0FBYyxrQkFBa0IifQ==
@@ -5,3 +5,4 @@ export declare const iosSubscriptionUpdate: (databaseName: string, subscriptionU
5
5
  export declare const getIosSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
6
6
  export declare const addIosInApp: (context: ApiContext, subscription: PaymentSubscription) => Promise<PaymentSubscription>;
7
7
  export declare const getIosInApp: (context: ApiContext) => Promise<PaymentSubscription>;
8
+ //# sourceMappingURL=ios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../src/actions/ios.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,OAAO,EACL,oBAAoB,EAEpB,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAMpC,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,KAAG,oBAkCrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,EACpB,oBAAoB,4BAA4B,KAC/C,OAAO,CAAC,IAAI,CA2Cd,CAAC;AA0FF,eAAO,MAAM,kBAAkB,GAAI,SAAS,UAAU,KAAG,OAAO,CAAC,mBAAmB,CAgBnF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,EAAE,cAAc,mBAAmB,KAAG,OAAO,CAAC,mBAAmB,CA2B/G,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,KAAG,OAAO,CAAC,mBAAmB,CAgB5E,CAAC"}
@@ -1,11 +1,230 @@
1
- import{createHash as f}from"@nlabs/utils/parsers/strings";import{aql as d}from"arangojs";import{ErrorTypes as u}from"../types/error.types.js";import{logError as m}from"../utils/analyticsUtils.js";import{useDb as l}from"../utils/arangodbUtils.js";const I="ios",N=t=>({0:{error:!1,message:"Active",valid:!0},21e3:{error:!0,id:"payment_receipt_unreadable",message:"App store could not read",valid:!1},21002:{error:!0,id:"payment_data_malformed",message:"Data was malformed",valid:!1},21003:{error:!0,id:"payment_receipt_unauthorized",message:"Receipt not authenticated",valid:!1},21004:{error:!0,id:"payment_invalid_secret",message:"Shared secret does not match",valid:!1},21005:{error:!0,id:"payment_server_unavailable",message:"Receipt server unavailable",valid:!1},21006:{error:!1,id:"payment_subscription_expired",message:"Receipt valid but sub expired",valid:!0},21007:{error:!0,id:"payment_invalid_server",message:"Sandbox receipt sent to Production environment",redirect:!0,valid:!1},21008:{error:!0,id:"payment_invalid_server",message:"Production receipt sent to Sandbox environment",valid:!1}})[t]||{},O=(t,r)=>{const s="iosSubscriptionUpdate",{auto_renew_adam_id:n,cancellation_date:i,notification_type:e,latest_receipt:y,latest_receipt_info:b,latest_expired_receipt:_,latest_expired_receipt_info:p,original_transaction_id:c}=r,g=(e||"").toLowerCase(),a=Date.now(),S=b||p,o=f(`payment-${c}`),A={cancelDate:i,isValid:S[0].expires_date_ms>a,modified:a,planId:n,receipt:y||_,status:g},R={...A,_key:o,added:a,type:"ios_payment"},E=d`UPSERT {transactionId: ${c}}
2
- INSERT ${R}
3
- UPDATE ${A} IN subscriptions
4
- LIMIT 1`;return l(t).query(E).then(()=>null).catch(P=>m({action:s,category:I,label:u.DATABASE_ERROR},P,{}).then(()=>null))},D=t=>{const r="getIosSubscription",{databaseName:s,session:{userId:n}}=t,i=d`FOR s IN subscriptions
5
- FILTER s.userId == ${n} && s.type == "ios_payment"
1
+ import { createHash } from '@nlabs/utils/parsers/strings';
2
+ import { aql } from 'arangojs';
3
+ import { ErrorTypes } from '../types/error.types.js';
4
+ import { logError } from '../utils/analyticsUtils.js';
5
+ import { useDb } from '../utils/arangodbUtils.js';
6
+ const eventCategory = 'ios';
7
+ export const getIosInAppError = (statusCode)=>{
8
+ const codes = {
9
+ [0]: {
10
+ error: false,
11
+ message: 'Active',
12
+ valid: true
13
+ },
14
+ [21000]: {
15
+ error: true,
16
+ id: 'payment_receipt_unreadable',
17
+ message: 'App store could not read',
18
+ valid: false
19
+ },
20
+ [21002]: {
21
+ error: true,
22
+ id: 'payment_data_malformed',
23
+ message: 'Data was malformed',
24
+ valid: false
25
+ },
26
+ [21003]: {
27
+ error: true,
28
+ id: 'payment_receipt_unauthorized',
29
+ message: 'Receipt not authenticated',
30
+ valid: false
31
+ },
32
+ [21004]: {
33
+ error: true,
34
+ id: 'payment_invalid_secret',
35
+ message: 'Shared secret does not match',
36
+ valid: false
37
+ },
38
+ [21005]: {
39
+ error: true,
40
+ id: 'payment_server_unavailable',
41
+ message: 'Receipt server unavailable',
42
+ valid: false
43
+ },
44
+ [21006]: {
45
+ error: false,
46
+ id: 'payment_subscription_expired',
47
+ message: 'Receipt valid but sub expired',
48
+ valid: true
49
+ },
50
+ /**
51
+ * special case for app review handling - forward any request that is intended for the Sandbox but was sent to
52
+ * Production, this is what the app review team does
53
+ */ [21007]: {
54
+ error: true,
55
+ id: 'payment_invalid_server',
56
+ message: 'Sandbox receipt sent to Production environment',
57
+ redirect: true,
58
+ valid: false
59
+ },
60
+ [21008]: {
61
+ error: true,
62
+ id: 'payment_invalid_server',
63
+ message: 'Production receipt sent to Sandbox environment',
64
+ valid: false
65
+ }
66
+ };
67
+ return codes[statusCode] || {};
68
+ };
69
+ export const iosSubscriptionUpdate = (databaseName, subscriptionUpdate)=>{
70
+ const action = 'iosSubscriptionUpdate';
71
+ const { auto_renew_adam_id: planId, cancellation_date: cancelDate, notification_type: status, latest_receipt: latestReceipt, latest_receipt_info: latestInfo, latest_expired_receipt: expiredReceipt, latest_expired_receipt_info: expiredInfo, original_transaction_id: transactionId } = subscriptionUpdate;
72
+ const formatStatus = (status || '').toLowerCase();
73
+ const now = Date.now();
74
+ const receiptInfo = latestInfo || expiredInfo;
75
+ const id = createHash(`payment-${transactionId}`);
76
+ const update = {
77
+ cancelDate,
78
+ isValid: receiptInfo[0].expires_date_ms > now,
79
+ modified: now,
80
+ planId,
81
+ receipt: latestReceipt || expiredReceipt,
82
+ status: formatStatus
83
+ };
84
+ const insert = {
85
+ ...update,
86
+ _key: id,
87
+ added: now,
88
+ type: 'ios_payment'
89
+ };
90
+ const aqlQry = aql`UPSERT {transactionId: ${transactionId}}
91
+ INSERT ${insert}
92
+ UPDATE ${update} IN subscriptions
93
+ LIMIT 1`;
94
+ return useDb(databaseName).query(aqlQry).then(()=>null).catch((dbError)=>logError({
95
+ action,
96
+ category: eventCategory,
97
+ label: ErrorTypes.DATABASE_ERROR
98
+ }, dbError, {}).then(()=>null));
99
+ };
100
+ // export const addIosInApp = (
101
+ // context: ApiContext,
102
+ // app,
103
+ // subscription: PaymentSubscription
104
+ // ): Promise<PaymentSubscription> => {
105
+ // const action: string = 'addIosInApp';
106
+ // const {isProduction, receipt} = subscription;
107
+ // const {database, userId: sessionId} = context;
108
+ // const productionHost: string = 'buy.itunes.apple.com';
109
+ // const sandboxHost: string = 'sandbox.itunes.apple.com';
110
+ // const endpoint: string = isProduction ? productionHost : sandboxHost;
111
+ // const verifyUrl: string = `https://${endpoint}/verifyReceipt`;
112
+ // const payload: object = {
113
+ // password: app.iap,
114
+ // 'receipt-data': decodeURIComponent(receipt)
115
+ // };
116
+ // const options: object = {
117
+ // headers: {
118
+ // 'Content-Type': 'application/x-www-form-urlencoded'
119
+ // }
120
+ // };
121
+ // return post(verifyUrl, payload, options)
122
+ // .then((results) => {
123
+ // const json = JSON.parse(results);
124
+ // const {
125
+ // latest_receipt: latestReceipt,
126
+ // latest_receipt_info: latestInfo,
127
+ // status
128
+ // } = json;
129
+ // const {
130
+ // is_trial_period: trialPeriod,
131
+ // original_purchase_date_ms: added,
132
+ // expires_date: expires,
133
+ // product_id: planId,
134
+ // transaction_id: transactionId
135
+ // } = latestInfo;
136
+ // if(status === 0 || status === 21006) {
137
+ // const id: string = createHash(`payment-${transactionId}`);
138
+ // const now: number = Date.now();
139
+ // const update: PaymentSubscription = {
140
+ // expires,
141
+ // isTrial: trialPeriod === 'true',
142
+ // isValid: expires > now,
143
+ // modified: now,
144
+ // planId,
145
+ // receipt: latestReceipt,
146
+ // transactionId,
147
+ // userId: sessionId
148
+ // };
149
+ // const insert: PaymentSubscription = {
150
+ // ...update,
151
+ // _key: id,
152
+ // added,
153
+ // type: 'ios_payment'
154
+ // };
155
+ // const aqlQry: AqlQuery = aql`UPSERT {transactionId: ${transactionId}}
156
+ // INSERT ${insert}
157
+ // UPDATE ${update} IN subscriptions
158
+ // RETURN NEW`;
159
+ // return database.query(aqlQry)
160
+ // .then((cursor) => cursor.next())
161
+ // .then((updatedSubscription: PaymentSubscription = {}) => updatedSubscription)
162
+ // .catch((dbError: Error) => logError({
163
+ // action,
164
+ // category: eventCategory,
165
+ // label: ErrorTypes.DATABASE_ERROR
166
+ // }, dbError, context).then(() => null));
167
+ // }
168
+ // // Errors
169
+ // const error: PaymentIOSInAppError = getIosInAppError(results.status);
170
+ // return logException({
171
+ // action,
172
+ // category: eventCategory,
173
+ // label: 'payment_error',
174
+ // message: error.message,
175
+ // value: error.id
176
+ // }, context).then(() => null);
177
+ // });
178
+ // };
179
+ export const getIosSubscription = (context)=>{
180
+ const action = 'getIosSubscription';
181
+ const { databaseName, session: { userId: sessionId } } = context;
182
+ const aqlQry = aql`FOR s IN subscriptions
183
+ FILTER s.userId == ${sessionId} && s.type == "ios_payment"
6
184
  LIMIT 1
7
- RETURN s`;return l(s).query(i).then(e=>e.next()).then(e=>e).catch(e=>m({action:r,category:I,label:u.DATABASE_ERROR},e,t).then(()=>null))},Q=(t,r)=>{const s="addIosInApp",{databaseName:n,session:{userId:i}}=t,e=Date.now(),{added:y=e,planId:b,receipt:_,transactionId:p,trialEnd:c}=r,a={_key:f(`subscription-${p}`),added:y,modified:e,planId:b,receipt:_,transactionId:p,trialEnd:c,type:"ios_subscription",userId:i},S=d`INSERT ${a} IN subscriptions RETURN NEW`;return l(n).query(S).then(o=>o.next()).then(o=>o).catch(o=>m({action:s,category:I,label:u.DATABASE_ERROR},o,t).then(()=>null))},U=t=>{const r="getIosInApp",{databaseName:s,session:{userId:n}}=t,i=d`FOR s IN subscription
8
- FILTER s.userId == ${n} && s.type == "ios"
185
+ RETURN s`;
186
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((subscription)=>subscription).catch((error)=>logError({
187
+ action,
188
+ category: eventCategory,
189
+ label: ErrorTypes.DATABASE_ERROR
190
+ }, error, context).then(()=>null));
191
+ };
192
+ export const addIosInApp = (context, subscription)=>{
193
+ const action = 'addIosInApp';
194
+ const { databaseName, session: { userId: sessionId } } = context;
195
+ const now = Date.now();
196
+ const { added = now, planId, receipt, transactionId, trialEnd } = subscription;
197
+ const subscriptionId = createHash(`subscription-${transactionId}`);
198
+ const insert = {
199
+ _key: subscriptionId,
200
+ added,
201
+ modified: now,
202
+ planId,
203
+ receipt,
204
+ transactionId,
205
+ trialEnd,
206
+ type: 'ios_subscription',
207
+ userId: sessionId
208
+ };
209
+ const aqlQry = aql`INSERT ${insert} IN subscriptions RETURN NEW`;
210
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((updatedSubscription)=>updatedSubscription).catch((error)=>logError({
211
+ action,
212
+ category: eventCategory,
213
+ label: ErrorTypes.DATABASE_ERROR
214
+ }, error, context).then(()=>null));
215
+ };
216
+ export const getIosInApp = (context)=>{
217
+ const action = 'getIosInApp';
218
+ const { databaseName, session: { userId: sessionId } } = context;
219
+ const aqlQry = aql`FOR s IN subscription
220
+ FILTER s.userId == ${sessionId} && s.type == "ios"
9
221
  LIMIT 1
10
- RETURN s`;return l(s).query(i).then(e=>e.next()).then(e=>e).catch(e=>m({action:r,category:I,label:u.DATABASE_ERROR},e,t).then(()=>null))};export{Q as addIosInApp,U as getIosInApp,N as getIosInAppError,D as getIosSubscription,O as iosSubscriptionUpdate};
11
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW9zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUhhc2h9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7XG4gIFBheW1lbnRJT1NJbkFwcEVycm9yLFxuICBQYXltZW50SU9TU3Vic2NyaXB0aW9uSW5mbyxcbiAgUGF5bWVudElPU1N1YnNjcmlwdGlvblVwZGF0ZSxcbiAgUGF5bWVudFN1YnNjcmlwdGlvblxufSBmcm9tICcuLi90eXBlcy9wYXltZW50cy50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2lvcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NJbkFwcEVycm9yID0gKHN0YXR1c0NvZGU6IHN0cmluZyk6IFBheW1lbnRJT1NJbkFwcEVycm9yID0+IHtcbiAgY29uc3QgY29kZXMgPSB7XG4gICAgWzBdOiB7ZXJyb3I6IGZhbHNlLCBtZXNzYWdlOiAnQWN0aXZlJywgdmFsaWQ6IHRydWV9LFxuICAgIFsyMTAwMF06IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X3JlY2VpcHRfdW5yZWFkYWJsZScsIG1lc3NhZ2U6ICdBcHAgc3RvcmUgY291bGQgbm90IHJlYWQnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwMl06IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X2RhdGFfbWFsZm9ybWVkJywgbWVzc2FnZTogJ0RhdGEgd2FzIG1hbGZvcm1lZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDAzXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfcmVjZWlwdF91bmF1dGhvcml6ZWQnLCBtZXNzYWdlOiAnUmVjZWlwdCBub3QgYXV0aGVudGljYXRlZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDA0XToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfaW52YWxpZF9zZWNyZXQnLCBtZXNzYWdlOiAnU2hhcmVkIHNlY3JldCBkb2VzIG5vdCBtYXRjaCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDA1XToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfc2VydmVyX3VuYXZhaWxhYmxlJywgbWVzc2FnZTogJ1JlY2VpcHQgc2VydmVyIHVuYXZhaWxhYmxlJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDZdOiB7XG4gICAgICBlcnJvcjogZmFsc2UsXG4gICAgICBpZDogJ3BheW1lbnRfc3Vic2NyaXB0aW9uX2V4cGlyZWQnLFxuICAgICAgbWVzc2FnZTogJ1JlY2VpcHQgdmFsaWQgYnV0IHN1YiBleHBpcmVkJyxcbiAgICAgIHZhbGlkOiB0cnVlXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBzcGVjaWFsIGNhc2UgZm9yIGFwcCByZXZpZXcgaGFuZGxpbmcgLSBmb3J3YXJkIGFueSByZXF1ZXN0IHRoYXQgaXMgaW50ZW5kZWQgZm9yIHRoZSBTYW5kYm94IGJ1dCB3YXMgc2VudCB0b1xuICAgICAqIFByb2R1Y3Rpb24sIHRoaXMgaXMgd2hhdCB0aGUgYXBwIHJldmlldyB0ZWFtIGRvZXNcbiAgICAgKi9cbiAgICBbMjEwMDddOiB7XG4gICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlcnZlcicsXG4gICAgICBtZXNzYWdlOiAnU2FuZGJveCByZWNlaXB0IHNlbnQgdG8gUHJvZHVjdGlvbiBlbnZpcm9ubWVudCcsXG4gICAgICByZWRpcmVjdDogdHJ1ZSxcbiAgICAgIHZhbGlkOiBmYWxzZVxuICAgIH0sXG4gICAgWzIxMDA4XToge1xuICAgICAgZXJyb3I6IHRydWUsXG4gICAgICBpZDogJ3BheW1lbnRfaW52YWxpZF9zZXJ2ZXInLFxuICAgICAgbWVzc2FnZTogJ1Byb2R1Y3Rpb24gcmVjZWlwdCBzZW50IHRvIFNhbmRib3ggZW52aXJvbm1lbnQnLFxuICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBjb2Rlc1tzdGF0dXNDb2RlXSB8fCB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBpb3NTdWJzY3JpcHRpb25VcGRhdGUgPSAoXG4gIGRhdGFiYXNlTmFtZTogc3RyaW5nLFxuICBzdWJzY3JpcHRpb25VcGRhdGU6IFBheW1lbnRJT1NTdWJzY3JpcHRpb25VcGRhdGVcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdpb3NTdWJzY3JpcHRpb25VcGRhdGUnO1xuICBjb25zdCB7XG4gICAgYXV0b19yZW5ld19hZGFtX2lkOiBwbGFuSWQsXG4gICAgY2FuY2VsbGF0aW9uX2RhdGU6IGNhbmNlbERhdGUsXG4gICAgbm90aWZpY2F0aW9uX3R5cGU6IHN0YXR1cyxcbiAgICBsYXRlc3RfcmVjZWlwdDogbGF0ZXN0UmVjZWlwdCxcbiAgICBsYXRlc3RfcmVjZWlwdF9pbmZvOiBsYXRlc3RJbmZvLFxuICAgIGxhdGVzdF9leHBpcmVkX3JlY2VpcHQ6IGV4cGlyZWRSZWNlaXB0LFxuICAgIGxhdGVzdF9leHBpcmVkX3JlY2VpcHRfaW5mbzogZXhwaXJlZEluZm8sXG4gICAgb3JpZ2luYWxfdHJhbnNhY3Rpb25faWQ6IHRyYW5zYWN0aW9uSWRcbiAgfSA9IHN1YnNjcmlwdGlvblVwZGF0ZTtcbiAgY29uc3QgZm9ybWF0U3RhdHVzOiBzdHJpbmcgPSAoc3RhdHVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHJlY2VpcHRJbmZvOiBQYXltZW50SU9TU3Vic2NyaXB0aW9uSW5mb1tdID0gbGF0ZXN0SW5mbyB8fCBleHBpcmVkSW5mbztcbiAgY29uc3QgaWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHBheW1lbnQtJHt0cmFuc2FjdGlvbklkfWApO1xuXG4gIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICBjYW5jZWxEYXRlLFxuICAgIGlzVmFsaWQ6IHJlY2VpcHRJbmZvWzBdLmV4cGlyZXNfZGF0ZV9tcyA+IG5vdyxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIHBsYW5JZCxcbiAgICByZWNlaXB0OiBsYXRlc3RSZWNlaXB0IHx8IGV4cGlyZWRSZWNlaXB0LFxuICAgIHN0YXR1czogZm9ybWF0U3RhdHVzXG4gIH07XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAuLi51cGRhdGUsXG4gICAgX2tleTogaWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICB0eXBlOiAnaW9zX3BheW1lbnQnXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHt0cmFuc2FjdGlvbklkOiAke3RyYW5zYWN0aW9uSWR9fVxuICAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgIFVQREFURSAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc1xuICAgICBMSU1JVCAxYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKCkgPT4gbnVsbClcbiAgICAuY2F0Y2goKGRiRXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZGJFcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IGFkZElvc0luQXBwID0gKFxuLy8gICBjb250ZXh0OiBBcGlDb250ZXh0LFxuLy8gICBhcHAsXG4vLyAgIHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvblxuLy8gKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4vLyAgIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbi8vICAgY29uc3Qge2lzUHJvZHVjdGlvbiwgcmVjZWlwdH0gPSBzdWJzY3JpcHRpb247XG4vLyAgIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcblxuLy8gICBjb25zdCBwcm9kdWN0aW9uSG9zdDogc3RyaW5nID0gJ2J1eS5pdHVuZXMuYXBwbGUuY29tJztcbi8vICAgY29uc3Qgc2FuZGJveEhvc3Q6IHN0cmluZyA9ICdzYW5kYm94Lml0dW5lcy5hcHBsZS5jb20nO1xuLy8gICBjb25zdCBlbmRwb2ludDogc3RyaW5nID0gaXNQcm9kdWN0aW9uID8gcHJvZHVjdGlvbkhvc3QgOiBzYW5kYm94SG9zdDtcbi8vICAgY29uc3QgdmVyaWZ5VXJsOiBzdHJpbmcgPSBgaHR0cHM6Ly8ke2VuZHBvaW50fS92ZXJpZnlSZWNlaXB0YDtcbi8vICAgY29uc3QgcGF5bG9hZDogb2JqZWN0ID0ge1xuLy8gICAgIHBhc3N3b3JkOiBhcHAuaWFwLFxuLy8gICAgICdyZWNlaXB0LWRhdGEnOiBkZWNvZGVVUklDb21wb25lbnQocmVjZWlwdClcbi8vICAgfTtcbi8vICAgY29uc3Qgb3B0aW9uczogb2JqZWN0ID0ge1xuLy8gICAgIGhlYWRlcnM6IHtcbi8vICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuLy8gICAgIH1cbi8vICAgfTtcblxuLy8gICByZXR1cm4gcG9zdCh2ZXJpZnlVcmwsIHBheWxvYWQsIG9wdGlvbnMpXG4vLyAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbi8vICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHJlc3VsdHMpO1xuLy8gICAgICAgY29uc3Qge1xuLy8gICAgICAgICBsYXRlc3RfcmVjZWlwdDogbGF0ZXN0UmVjZWlwdCxcbi8vICAgICAgICAgbGF0ZXN0X3JlY2VpcHRfaW5mbzogbGF0ZXN0SW5mbyxcbi8vICAgICAgICAgc3RhdHVzXG4vLyAgICAgICB9ID0ganNvbjtcblxuLy8gICAgICAgY29uc3Qge1xuLy8gICAgICAgICBpc190cmlhbF9wZXJpb2Q6IHRyaWFsUGVyaW9kLFxuLy8gICAgICAgICBvcmlnaW5hbF9wdXJjaGFzZV9kYXRlX21zOiBhZGRlZCxcbi8vICAgICAgICAgZXhwaXJlc19kYXRlOiBleHBpcmVzLFxuLy8gICAgICAgICBwcm9kdWN0X2lkOiBwbGFuSWQsXG4vLyAgICAgICAgIHRyYW5zYWN0aW9uX2lkOiB0cmFuc2FjdGlvbklkXG4vLyAgICAgICB9ID0gbGF0ZXN0SW5mbztcblxuLy8gICAgICAgaWYoc3RhdHVzID09PSAwIHx8IHN0YXR1cyA9PT0gMjEwMDYpIHtcbi8vICAgICAgICAgY29uc3QgaWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHBheW1lbnQtJHt0cmFuc2FjdGlvbklkfWApO1xuLy8gICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4vLyAgICAgICAgIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbi8vICAgICAgICAgICBleHBpcmVzLFxuLy8gICAgICAgICAgIGlzVHJpYWw6IHRyaWFsUGVyaW9kID09PSAndHJ1ZScsXG4vLyAgICAgICAgICAgaXNWYWxpZDogZXhwaXJlcyA+IG5vdyxcbi8vICAgICAgICAgICBtb2RpZmllZDogbm93LFxuLy8gICAgICAgICAgIHBsYW5JZCxcbi8vICAgICAgICAgICByZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuLy8gICAgICAgICAgIHRyYW5zYWN0aW9uSWQsXG4vLyAgICAgICAgICAgdXNlcklkOiBzZXNzaW9uSWRcbi8vICAgICAgICAgfTtcbi8vICAgICAgICAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuLy8gICAgICAgICAgIC4uLnVwZGF0ZSxcbi8vICAgICAgICAgICBfa2V5OiBpZCxcbi8vICAgICAgICAgICBhZGRlZCxcbi8vICAgICAgICAgICB0eXBlOiAnaW9zX3BheW1lbnQnXG4vLyAgICAgICAgIH07XG5cbi8vICAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3RyYW5zYWN0aW9uSWQ6ICR7dHJhbnNhY3Rpb25JZH19XG4vLyAgICAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbi8vICAgICAgICAgICAgICAgVVBEQVRFICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zXG4vLyAgICAgICAgICAgICAgIFJFVFVSTiBORVdgO1xuXG4vLyAgICAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4vLyAgICAgICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbi8vICAgICAgICAgICAudGhlbigodXBkYXRlZFN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHt9KSA9PiB1cGRhdGVkU3Vic2NyaXB0aW9uKVxuLy8gICAgICAgICAgIC5jYXRjaCgoZGJFcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbi8vICAgICAgICAgICAgIGFjdGlvbixcbi8vICAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuLy8gICAgICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1Jcbi8vICAgICAgICAgICB9LCBkYkVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbi8vICAgICAgIH1cblxuLy8gICAgICAgLy8gRXJyb3JzXG4vLyAgICAgICBjb25zdCBlcnJvcjogUGF5bWVudElPU0luQXBwRXJyb3IgPSBnZXRJb3NJbkFwcEVycm9yKHJlc3VsdHMuc3RhdHVzKTtcblxuLy8gICAgICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4vLyAgICAgICAgIGFjdGlvbixcbi8vICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4vLyAgICAgICAgIGxhYmVsOiAncGF5bWVudF9lcnJvcicsXG4vLyAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4vLyAgICAgICAgIHZhbHVlOiBlcnJvci5pZFxuLy8gICAgICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbi8vICAgICB9KTtcbi8vIH07XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NTdWJzY3JpcHRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJb3NTdWJzY3JpcHRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHMgSU4gc3Vic2NyaXB0aW9uc1xuICAgICAgRklMVEVSIHMudXNlcklkID09ICR7c2Vzc2lvbklkfSAmJiBzLnR5cGUgPT0gXCJpb3NfcGF5bWVudFwiXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gc2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZElvc0luQXBwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbik6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRJb3NJbkFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB7YWRkZWQgPSBub3csIHBsYW5JZCwgcmVjZWlwdCwgdHJhbnNhY3Rpb25JZCwgdHJpYWxFbmR9ID0gc3Vic2NyaXB0aW9uO1xuICBjb25zdCBzdWJzY3JpcHRpb25JZDogc3RyaW5nID0gY3JlYXRlSGFzaChgc3Vic2NyaXB0aW9uLSR7dHJhbnNhY3Rpb25JZH1gKTtcbiAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIF9rZXk6IHN1YnNjcmlwdGlvbklkLFxuICAgIGFkZGVkLFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgcGxhbklkLFxuICAgIHJlY2VpcHQsXG4gICAgdHJhbnNhY3Rpb25JZCxcbiAgICB0cmlhbEVuZCxcbiAgICB0eXBlOiAnaW9zX3N1YnNjcmlwdGlvbicsXG4gICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHN1YnNjcmlwdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRTdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24pID0+IHVwZGF0ZWRTdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJb3NJbkFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgcyBJTiBzdWJzY3JpcHRpb25cbiAgICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke3Nlc3Npb25JZH0gJiYgcy50eXBlID09IFwiaW9zXCJcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiBzYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuIl0sCiAgIm1h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T0osQ0FBTyxFQUFFLEtBQUssSUFBTSxJQUFJLENBQUMsQ0FDdkMiLAogICJuYW1lcyI6IFsiY3JlYXRlSGFzaCIsICJhcWwiLCAiRXJyb3JUeXBlcyIsICJsb2dFcnJvciIsICJ1c2VEYiIsICJldmVudENhdGVnb3J5IiwgImdldElvc0luQXBwRXJyb3IiLCAic3RhdHVzQ29kZSIsICJpb3NTdWJzY3JpcHRpb25VcGRhdGUiLCAiZGF0YWJhc2VOYW1lIiwgInN1YnNjcmlwdGlvblVwZGF0ZSIsICJhY3Rpb24iLCAicGxhbklkIiwgImNhbmNlbERhdGUiLCAic3RhdHVzIiwgImxhdGVzdFJlY2VpcHQiLCAibGF0ZXN0SW5mbyIsICJleHBpcmVkUmVjZWlwdCIsICJleHBpcmVkSW5mbyIsICJ0cmFuc2FjdGlvbklkIiwgImZvcm1hdFN0YXR1cyIsICJub3ciLCAicmVjZWlwdEluZm8iLCAiaWQiLCAidXBkYXRlIiwgImluc2VydCIsICJhcWxRcnkiLCAiZGJFcnJvciIsICJnZXRJb3NTdWJzY3JpcHRpb24iLCAiY29udGV4dCIsICJzZXNzaW9uSWQiLCAiY3Vyc29yIiwgInN1YnNjcmlwdGlvbiIsICJlcnJvciIsICJhZGRJb3NJbkFwcCIsICJhZGRlZCIsICJyZWNlaXB0IiwgInRyaWFsRW5kIiwgInVwZGF0ZWRTdWJzY3JpcHRpb24iLCAiZ2V0SW9zSW5BcHAiXQp9Cg==
222
+ RETURN s`;
223
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((subscription)=>subscription).catch((error)=>logError({
224
+ action,
225
+ category: eventCategory,
226
+ label: ErrorTypes.DATABASE_ERROR
227
+ }, error, context).then(()=>null));
228
+ };
229
+
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvaW9zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlSGFzaH0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtcbiAgUGF5bWVudElPU0luQXBwRXJyb3IsXG4gIFBheW1lbnRJT1NTdWJzY3JpcHRpb25JbmZvLFxuICBQYXltZW50SU9TU3Vic2NyaXB0aW9uVXBkYXRlLFxuICBQYXltZW50U3Vic2NyaXB0aW9uXG59IGZyb20gJy4uL3R5cGVzL3BheW1lbnRzLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnaW9zJztcblxuZXhwb3J0IGNvbnN0IGdldElvc0luQXBwRXJyb3IgPSAoc3RhdHVzQ29kZTogc3RyaW5nKTogUGF5bWVudElPU0luQXBwRXJyb3IgPT4ge1xuICBjb25zdCBjb2RlcyA9IHtcbiAgICBbMF06IHtlcnJvcjogZmFsc2UsIG1lc3NhZ2U6ICdBY3RpdmUnLCB2YWxpZDogdHJ1ZX0sXG4gICAgWzIxMDAwXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfcmVjZWlwdF91bnJlYWRhYmxlJywgbWVzc2FnZTogJ0FwcCBzdG9yZSBjb3VsZCBub3QgcmVhZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDAyXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfZGF0YV9tYWxmb3JtZWQnLCBtZXNzYWdlOiAnRGF0YSB3YXMgbWFsZm9ybWVkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDNdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9yZWNlaXB0X3VuYXV0aG9yaXplZCcsIG1lc3NhZ2U6ICdSZWNlaXB0IG5vdCBhdXRoZW50aWNhdGVkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDRdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlY3JldCcsIG1lc3NhZ2U6ICdTaGFyZWQgc2VjcmV0IGRvZXMgbm90IG1hdGNoJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDVdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9zZXJ2ZXJfdW5hdmFpbGFibGUnLCBtZXNzYWdlOiAnUmVjZWlwdCBzZXJ2ZXIgdW5hdmFpbGFibGUnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwNl06IHtcbiAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgIGlkOiAncGF5bWVudF9zdWJzY3JpcHRpb25fZXhwaXJlZCcsXG4gICAgICBtZXNzYWdlOiAnUmVjZWlwdCB2YWxpZCBidXQgc3ViIGV4cGlyZWQnLFxuICAgICAgdmFsaWQ6IHRydWVcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIHNwZWNpYWwgY2FzZSBmb3IgYXBwIHJldmlldyBoYW5kbGluZyAtIGZvcndhcmQgYW55IHJlcXVlc3QgdGhhdCBpcyBpbnRlbmRlZCBmb3IgdGhlIFNhbmRib3ggYnV0IHdhcyBzZW50IHRvXG4gICAgICogUHJvZHVjdGlvbiwgdGhpcyBpcyB3aGF0IHRoZSBhcHAgcmV2aWV3IHRlYW0gZG9lc1xuICAgICAqL1xuICAgIFsyMTAwN106IHtcbiAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgaWQ6ICdwYXltZW50X2ludmFsaWRfc2VydmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTYW5kYm94IHJlY2VpcHQgc2VudCB0byBQcm9kdWN0aW9uIGVudmlyb25tZW50JyxcbiAgICAgIHJlZGlyZWN0OiB0cnVlLFxuICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgfSxcbiAgICBbMjEwMDhdOiB7XG4gICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlcnZlcicsXG4gICAgICBtZXNzYWdlOiAnUHJvZHVjdGlvbiByZWNlaXB0IHNlbnQgdG8gU2FuZGJveCBlbnZpcm9ubWVudCcsXG4gICAgICB2YWxpZDogZmFsc2VcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGNvZGVzW3N0YXR1c0NvZGVdIHx8IHt9O1xufTtcblxuZXhwb3J0IGNvbnN0IGlvc1N1YnNjcmlwdGlvblVwZGF0ZSA9IChcbiAgZGF0YWJhc2VOYW1lOiBzdHJpbmcsXG4gIHN1YnNjcmlwdGlvblVwZGF0ZTogUGF5bWVudElPU1N1YnNjcmlwdGlvblVwZGF0ZVxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2lvc1N1YnNjcmlwdGlvblVwZGF0ZSc7XG4gIGNvbnN0IHtcbiAgICBhdXRvX3JlbmV3X2FkYW1faWQ6IHBsYW5JZCxcbiAgICBjYW5jZWxsYXRpb25fZGF0ZTogY2FuY2VsRGF0ZSxcbiAgICBub3RpZmljYXRpb25fdHlwZTogc3RhdHVzLFxuICAgIGxhdGVzdF9yZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuICAgIGxhdGVzdF9yZWNlaXB0X2luZm86IGxhdGVzdEluZm8sXG4gICAgbGF0ZXN0X2V4cGlyZWRfcmVjZWlwdDogZXhwaXJlZFJlY2VpcHQsXG4gICAgbGF0ZXN0X2V4cGlyZWRfcmVjZWlwdF9pbmZvOiBleHBpcmVkSW5mbyxcbiAgICBvcmlnaW5hbF90cmFuc2FjdGlvbl9pZDogdHJhbnNhY3Rpb25JZFxuICB9ID0gc3Vic2NyaXB0aW9uVXBkYXRlO1xuICBjb25zdCBmb3JtYXRTdGF0dXM6IHN0cmluZyA9IChzdGF0dXMgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgcmVjZWlwdEluZm86IFBheW1lbnRJT1NTdWJzY3JpcHRpb25JbmZvW10gPSBsYXRlc3RJbmZvIHx8IGV4cGlyZWRJbmZvO1xuICBjb25zdCBpZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcGF5bWVudC0ke3RyYW5zYWN0aW9uSWR9YCk7XG5cbiAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIGNhbmNlbERhdGUsXG4gICAgaXNWYWxpZDogcmVjZWlwdEluZm9bMF0uZXhwaXJlc19kYXRlX21zID4gbm93LFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgcGxhbklkLFxuICAgIHJlY2VpcHQ6IGxhdGVzdFJlY2VpcHQgfHwgZXhwaXJlZFJlY2VpcHQsXG4gICAgc3RhdHVzOiBmb3JtYXRTdGF0dXNcbiAgfTtcbiAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfa2V5OiBpZCxcbiAgICBhZGRlZDogbm93LFxuICAgIHR5cGU6ICdpb3NfcGF5bWVudCdcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3RyYW5zYWN0aW9uSWQ6ICR7dHJhbnNhY3Rpb25JZH19XG4gICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgVVBEQVRFICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zXG4gICAgIExJTUlUIDFgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiBudWxsKVxuICAgIC5jYXRjaCgoZGJFcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBkYkVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG4vLyBleHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoXG4vLyAgIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4vLyAgIGFwcCxcbi8vICAgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uXG4vLyApOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbi8vICAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkSW9zSW5BcHAnO1xuLy8gICBjb25zdCB7aXNQcm9kdWN0aW9uLCByZWNlaXB0fSA9IHN1YnNjcmlwdGlvbjtcbi8vICAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4vLyAgIGNvbnN0IHByb2R1Y3Rpb25Ib3N0OiBzdHJpbmcgPSAnYnV5Lml0dW5lcy5hcHBsZS5jb20nO1xuLy8gICBjb25zdCBzYW5kYm94SG9zdDogc3RyaW5nID0gJ3NhbmRib3guaXR1bmVzLmFwcGxlLmNvbSc7XG4vLyAgIGNvbnN0IGVuZHBvaW50OiBzdHJpbmcgPSBpc1Byb2R1Y3Rpb24gPyBwcm9kdWN0aW9uSG9zdCA6IHNhbmRib3hIb3N0O1xuLy8gICBjb25zdCB2ZXJpZnlVcmw6IHN0cmluZyA9IGBodHRwczovLyR7ZW5kcG9pbnR9L3ZlcmlmeVJlY2VpcHRgO1xuLy8gICBjb25zdCBwYXlsb2FkOiBvYmplY3QgPSB7XG4vLyAgICAgcGFzc3dvcmQ6IGFwcC5pYXAsXG4vLyAgICAgJ3JlY2VpcHQtZGF0YSc6IGRlY29kZVVSSUNvbXBvbmVudChyZWNlaXB0KVxuLy8gICB9O1xuLy8gICBjb25zdCBvcHRpb25zOiBvYmplY3QgPSB7XG4vLyAgICAgaGVhZGVyczoge1xuLy8gICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4vLyAgICAgfVxuLy8gICB9O1xuXG4vLyAgIHJldHVybiBwb3N0KHZlcmlmeVVybCwgcGF5bG9hZCwgb3B0aW9ucylcbi8vICAgICAudGhlbigocmVzdWx0cykgPT4ge1xuLy8gICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UocmVzdWx0cyk7XG4vLyAgICAgICBjb25zdCB7XG4vLyAgICAgICAgIGxhdGVzdF9yZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuLy8gICAgICAgICBsYXRlc3RfcmVjZWlwdF9pbmZvOiBsYXRlc3RJbmZvLFxuLy8gICAgICAgICBzdGF0dXNcbi8vICAgICAgIH0gPSBqc29uO1xuXG4vLyAgICAgICBjb25zdCB7XG4vLyAgICAgICAgIGlzX3RyaWFsX3BlcmlvZDogdHJpYWxQZXJpb2QsXG4vLyAgICAgICAgIG9yaWdpbmFsX3B1cmNoYXNlX2RhdGVfbXM6IGFkZGVkLFxuLy8gICAgICAgICBleHBpcmVzX2RhdGU6IGV4cGlyZXMsXG4vLyAgICAgICAgIHByb2R1Y3RfaWQ6IHBsYW5JZCxcbi8vICAgICAgICAgdHJhbnNhY3Rpb25faWQ6IHRyYW5zYWN0aW9uSWRcbi8vICAgICAgIH0gPSBsYXRlc3RJbmZvO1xuXG4vLyAgICAgICBpZihzdGF0dXMgPT09IDAgfHwgc3RhdHVzID09PSAyMTAwNikge1xuLy8gICAgICAgICBjb25zdCBpZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcGF5bWVudC0ke3RyYW5zYWN0aW9uSWR9YCk7XG4vLyAgICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbi8vICAgICAgICAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuLy8gICAgICAgICAgIGV4cGlyZXMsXG4vLyAgICAgICAgICAgaXNUcmlhbDogdHJpYWxQZXJpb2QgPT09ICd0cnVlJyxcbi8vICAgICAgICAgICBpc1ZhbGlkOiBleHBpcmVzID4gbm93LFxuLy8gICAgICAgICAgIG1vZGlmaWVkOiBub3csXG4vLyAgICAgICAgICAgcGxhbklkLFxuLy8gICAgICAgICAgIHJlY2VpcHQ6IGxhdGVzdFJlY2VpcHQsXG4vLyAgICAgICAgICAgdHJhbnNhY3Rpb25JZCxcbi8vICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuLy8gICAgICAgICB9O1xuLy8gICAgICAgICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4vLyAgICAgICAgICAgLi4udXBkYXRlLFxuLy8gICAgICAgICAgIF9rZXk6IGlkLFxuLy8gICAgICAgICAgIGFkZGVkLFxuLy8gICAgICAgICAgIHR5cGU6ICdpb3NfcGF5bWVudCdcbi8vICAgICAgICAgfTtcblxuLy8gICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dHJhbnNhY3Rpb25JZDogJHt0cmFuc2FjdGlvbklkfX1cbi8vICAgICAgICAgICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuLy8gICAgICAgICAgICAgICBVUERBVEUgJHt1cGRhdGV9IElOIHN1YnNjcmlwdGlvbnNcbi8vICAgICAgICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbi8vICAgICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbi8vICAgICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuLy8gICAgICAgICAgIC50aGVuKCh1cGRhdGVkU3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHVwZGF0ZWRTdWJzY3JpcHRpb24pXG4vLyAgICAgICAgICAgLmNhdGNoKChkYkVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuLy8gICAgICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4vLyAgICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuLy8gICAgICAgICAgIH0sIGRiRXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAvLyBFcnJvcnNcbi8vICAgICAgIGNvbnN0IGVycm9yOiBQYXltZW50SU9TSW5BcHBFcnJvciA9IGdldElvc0luQXBwRXJyb3IocmVzdWx0cy5zdGF0dXMpO1xuXG4vLyAgICAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbi8vICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbi8vICAgICAgICAgbGFiZWw6ICdwYXltZW50X2Vycm9yJyxcbi8vICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbi8vICAgICAgICAgdmFsdWU6IGVycm9yLmlkXG4vLyAgICAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuLy8gICAgIH0pO1xuLy8gfTtcblxuZXhwb3J0IGNvbnN0IGdldElvc1N1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc1N1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgcyBJTiBzdWJzY3JpcHRpb25zXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMudHlwZSA9PSBcImlvc19wYXltZW50XCJcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiBzYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCwgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHthZGRlZCA9IG5vdywgcGxhbklkLCByZWNlaXB0LCB0cmFuc2FjdGlvbklkLCB0cmlhbEVuZH0gPSBzdWJzY3JpcHRpb247XG4gIGNvbnN0IHN1YnNjcmlwdGlvbklkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBzdWJzY3JpcHRpb24tJHt0cmFuc2FjdGlvbklkfWApO1xuICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgX2tleTogc3Vic2NyaXB0aW9uSWQsXG4gICAgYWRkZWQsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBwbGFuSWQsXG4gICAgcmVjZWlwdCxcbiAgICB0cmFuc2FjdGlvbklkLFxuICAgIHRyaWFsRW5kLFxuICAgIHR5cGU6ICdpb3Nfc3Vic2NyaXB0aW9uJyxcbiAgICB1c2VySWQ6IHNlc3Npb25JZFxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gc3Vic2NyaXB0aW9ucyBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXBkYXRlZFN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbikgPT4gdXBkYXRlZFN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NJbkFwcCA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBzIElOIHN1YnNjcmlwdGlvblxuICAgICAgRklMVEVSIHMudXNlcklkID09ICR7c2Vzc2lvbklkfSAmJiBzLnR5cGUgPT0gXCJpb3NcIlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsImFxbCIsIkVycm9yVHlwZXMiLCJsb2dFcnJvciIsInVzZURiIiwiZXZlbnRDYXRlZ29yeSIsImdldElvc0luQXBwRXJyb3IiLCJzdGF0dXNDb2RlIiwiY29kZXMiLCJlcnJvciIsIm1lc3NhZ2UiLCJ2YWxpZCIsImlkIiwicmVkaXJlY3QiLCJpb3NTdWJzY3JpcHRpb25VcGRhdGUiLCJkYXRhYmFzZU5hbWUiLCJzdWJzY3JpcHRpb25VcGRhdGUiLCJhY3Rpb24iLCJhdXRvX3JlbmV3X2FkYW1faWQiLCJwbGFuSWQiLCJjYW5jZWxsYXRpb25fZGF0ZSIsImNhbmNlbERhdGUiLCJub3RpZmljYXRpb25fdHlwZSIsInN0YXR1cyIsImxhdGVzdF9yZWNlaXB0IiwibGF0ZXN0UmVjZWlwdCIsImxhdGVzdF9yZWNlaXB0X2luZm8iLCJsYXRlc3RJbmZvIiwibGF0ZXN0X2V4cGlyZWRfcmVjZWlwdCIsImV4cGlyZWRSZWNlaXB0IiwibGF0ZXN0X2V4cGlyZWRfcmVjZWlwdF9pbmZvIiwiZXhwaXJlZEluZm8iLCJvcmlnaW5hbF90cmFuc2FjdGlvbl9pZCIsInRyYW5zYWN0aW9uSWQiLCJmb3JtYXRTdGF0dXMiLCJ0b0xvd2VyQ2FzZSIsIm5vdyIsIkRhdGUiLCJyZWNlaXB0SW5mbyIsInVwZGF0ZSIsImlzVmFsaWQiLCJleHBpcmVzX2RhdGVfbXMiLCJtb2RpZmllZCIsInJlY2VpcHQiLCJpbnNlcnQiLCJfa2V5IiwiYWRkZWQiLCJ0eXBlIiwiYXFsUXJ5IiwicXVlcnkiLCJ0aGVuIiwiY2F0Y2giLCJkYkVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsIkRBVEFCQVNFX0VSUk9SIiwiZ2V0SW9zU3Vic2NyaXB0aW9uIiwiY29udGV4dCIsInNlc3Npb24iLCJ1c2VySWQiLCJzZXNzaW9uSWQiLCJjdXJzb3IiLCJuZXh0Iiwic3Vic2NyaXB0aW9uIiwiYWRkSW9zSW5BcHAiLCJ0cmlhbEVuZCIsInN1YnNjcmlwdGlvbklkIiwidXBkYXRlZFN1YnNjcmlw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
@@ -4,3 +4,4 @@ import { LocationType } from '../types/locations.types.js';
4
4
  export declare const getFieldVal: (addressComponents: GoogleMapsAddressType[], name: string) => string;
5
5
  export declare const addLocation: (context: ApiContext, location: LocationType) => Promise<LocationType>;
6
6
  export declare const getLocation: (context: ApiContext, locationId: string) => Promise<LocationType>;
7
+ //# sourceMappingURL=locations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.d.ts","sourceRoot":"","sources":["../../src/actions/locations.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAC,qBAAqB,EAAuB,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AASzD,eAAO,MAAM,WAAW,GAAI,mBAAmB,qBAAqB,EAAE,EAAE,MAAM,MAAM,KAAG,MAOtF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,EAAE,UAAU,YAAY,KAAG,OAAO,CAAC,YAAY,CAsF7F,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,YAAY,CAazF,CAAC"}
@@ -1,7 +1,111 @@
1
- import{get as v,queryString as P}from"@nlabs/rip-hunter";import{createHash as u,parseChar as S,parseId as T}from"@nlabs/utils/parsers/strings";import{aql as I}from"arangojs";import{Config as f}from"../config.js";import{ErrorTypes as F}from"../types/error.types.js";import{logError as O}from"../utils/analyticsUtils.js";import{useDb as d}from"../utils/arangodbUtils.js";const K="locations",n=(e,a)=>{const{short_name:l=""}=e.find(r=>(r.types||[]).findIndex(o=>o===a)>=0)||{};return l},Y=(e,a)=>{const{databaseName:r,session:{userId:i}}=e,{address:o,itemId:h,itemType:E}=a,_=f.get("google.geocode.url"),A={address:o,key:f.get("google.geocode.key")},R=`${_}?${P(A)}`;return v(R).then(L=>{const{results:g=[],status:C=""}=L;if(C==="OK"&&g.length){const c=g[0],s=c?.address_components||[],N=n(s,"street_number"),$=n(s,"route"),b=Date.now(),q=S(E).toLowerCase(),x=T(h),m=c?.place_id||"",k={},G={_key:u(`post-${i}`),added:b,city:n(s,"locality"),country:n(s,"country"),formatted:c?.formatted_address,googleId:m,latitude:c?.geometry.location.lat,longitude:c?.geometry.location.lng,state:n(s,"administrative_area_level_1"),street:[N,$].filter(t=>t).join(" "),zip:n(s,"postal_code")},w=I`UPSERT {googleId: ${m}}
2
- INSERT ${G}
3
- UPDATE ${k}
4
- IN locations RETURN NEW`;return d(r).query(w).then(t=>t.next()).then(t=>{let p;const{_key:D}=t;switch(q){case"posts":p=`posts/${x}`;break;default:p=""}if(p){const M=d(r).collection("hasLocation"),y=D,Q=`locations/${y}`,U=u(`hasLocation-${y}-${i}`),j={_from:p,_key:U,_to:Q};return M.save(j,{returnNew:!0}).then(()=>t)}return t}).catch(t=>O({action:"add",category:K,label:F.DATABASE_ERROR},t,e).then(()=>null))}return null})},Z=(e,a)=>{const{databaseName:l}=e,r=T(a),i=I`FOR l IN locations
5
- FILTER l._key == ${r}
6
- RETURN l`;return d(l).query(i).then(o=>o.next()).catch(o=>{throw o})};export{Y as addLocation,n as getFieldVal,Z as getLocation};
7
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbG9jYXRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXQgYXMgaHR0cEdldCwgcXVlcnlTdHJpbmd9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7R29vZ2xlTWFwc0FkZHJlc3NUeXBlLCBHb29nbGVNYXBzUmVzdWx0VHlwZX0gZnJvbSAnLi4vdHlwZXMvZ29vZ2xlLnR5cGVzLmpzJztcbmltcG9ydCB7TG9jYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9sb2NhdGlvbnMudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMuanMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHR5cGUge0VkZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcy5qcyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdsb2NhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGRWYWwgPSAoYWRkcmVzc0NvbXBvbmVudHM6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZVtdLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7c2hvcnRfbmFtZTogc2hvcnROYW1lID0gJyd9ID0gYWRkcmVzc0NvbXBvbmVudHMuZmluZCgoYWRkcmVzc0ZpZWxkOiBHb29nbGVNYXBzQWRkcmVzc1R5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlcyA9IGFkZHJlc3NGaWVsZC50eXBlcyB8fCBbXTtcbiAgICByZXR1cm4gdHlwZXMuZmluZEluZGV4KChmaWVsZFR5cGU6IHN0cmluZykgPT4gZmllbGRUeXBlID09PSBuYW1lKSA+PSAwO1xuICB9KSB8fCB7fTtcblxuICByZXR1cm4gc2hvcnROYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGQnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHthZGRyZXNzLCBpdGVtSWQsIGl0ZW1UeXBlfSA9IGxvY2F0aW9uO1xuICBjb25zdCBnZW9jb2RlVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdnb29nbGUuZ2VvY29kZS51cmwnKTtcbiAgY29uc3QgcGFyYW1zOiBvYmplY3QgPSB7XG4gICAgYWRkcmVzcyxcbiAgICBrZXk6IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLmtleScpXG4gIH07XG4gIGNvbnN0IHVybDogc3RyaW5nID0gYCR7Z2VvY29kZVVybH0/JHtxdWVyeVN0cmluZyhwYXJhbXMpfWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQodXJsKVxuICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICBjb25zdCB7cmVzdWx0cyA9IFtdLCBzdGF0dXMgPSAnJ30gPSBqc29uO1xuXG4gICAgICBpZihzdGF0dXMgPT09ICdPSycgJiYgcmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZ2VvZGF0YTogR29vZ2xlTWFwc1Jlc3VsdFR5cGUgPSByZXN1bHRzWzBdO1xuICAgICAgICBjb25zdCBhZGRyZXNzQ29tcG9uZW50czogR29vZ2xlTWFwc0FkZHJlc3NUeXBlW10gPSBnZW9kYXRhPy5hZGRyZXNzX2NvbXBvbmVudHMgfHwgW107XG5cbiAgICAgICAgLy8gU3RyZWV0XG4gICAgICAgIGNvbnN0IHN0cmVldE51bWJlcjogc3RyaW5nID0gZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdzdHJlZXRfbnVtYmVyJyk7XG4gICAgICAgIGNvbnN0IHJvdXRlOiBzdHJpbmcgPSBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3JvdXRlJyk7XG5cbiAgICAgICAgLy8gTG9jYXRpb25cbiAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIC8vIEl0ZW1cbiAgICAgICAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtVHlwZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gICAgICAgIGNvbnN0IGdvb2dsZUlkOiBzdHJpbmcgPSBnZW9kYXRhPy5wbGFjZV9pZCB8fCAnJztcbiAgICAgICAgY29uc3QgdXBkYXRlOiBMb2NhdGlvblR5cGUgPSB7fTtcbiAgICAgICAgY29uc3QgaW5zZXJ0OiBMb2NhdGlvblR5cGUgPSB7XG4gICAgICAgICAgX2tleTogY3JlYXRlSGFzaChgcG9zdC0ke3Nlc3Npb25JZH1gKSxcbiAgICAgICAgICBhZGRlZDogbm93LFxuICAgICAgICAgIGNpdHk6IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAnbG9jYWxpdHknKSxcbiAgICAgICAgICBjb3VudHJ5OiBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ2NvdW50cnknKSxcbiAgICAgICAgICBmb3JtYXR0ZWQ6IGdlb2RhdGE/LmZvcm1hdHRlZF9hZGRyZXNzLFxuICAgICAgICAgIGdvb2dsZUlkLFxuICAgICAgICAgIGxhdGl0dWRlOiBnZW9kYXRhPy5nZW9tZXRyeS5sb2NhdGlvbi5sYXQsXG4gICAgICAgICAgbG9uZ2l0dWRlOiBnZW9kYXRhPy5nZW9tZXRyeS5sb2NhdGlvbi5sbmcsXG4gICAgICAgICAgc3RhdGU6IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAnYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xJyksXG4gICAgICAgICAgc3RyZWV0OiBbc3RyZWV0TnVtYmVyLCByb3V0ZV0uZmlsdGVyKChvYmopID0+IG9iaikuam9pbignICcpLFxuICAgICAgICAgIHppcDogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdwb3N0YWxfY29kZScpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtnb29nbGVJZDogJHtnb29nbGVJZH19XG4gICAgICAgICAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgICAgICAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgICAgICAgICBJTiBsb2NhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgICAgLnRoZW4oKHVwZGF0ZWRMb2NhdGlvbjogTG9jYXRpb25UeXBlKSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbURvY0lkOiBzdHJpbmc7XG4gICAgICAgICAgICBjb25zdCB7X2tleTogdXBkYXRlZExvY2F0aW9uS2V5fSA9IHVwZGF0ZWRMb2NhdGlvbjtcblxuICAgICAgICAgICAgc3dpdGNoKGZvcm1hdEl0ZW1UeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3Bvc3RzJzpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSBgcG9zdHMvJHtmb3JtYXRJdGVtSWR9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSB2YWxpZCBpdGVtIGRvYyBpZCwgY3JlYXRlIGFuIGVkZ2VcbiAgICAgICAgICAgIGlmKGl0ZW1Eb2NJZCkge1xuICAgICAgICAgICAgICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2hhc0xvY2F0aW9uJyk7XG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uSWQ6IHN0cmluZyA9IHVwZGF0ZWRMb2NhdGlvbktleTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25Eb2NJZDogc3RyaW5nID0gYGxvY2F0aW9ucy8ke2xvY2F0aW9uSWR9YDtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgaGFzTG9jYXRpb24tJHtsb2NhdGlvbklkfS0ke3Nlc3Npb25JZH1gKTtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZTogRWRnZVR5cGUgPSB7X2Zyb206IGl0ZW1Eb2NJZCwgX2tleTogZWRnZUlkLCBfdG86IGxvY2F0aW9uRG9jSWR9O1xuXG4gICAgICAgICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TG9jYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWV9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobG9jYXRpb25JZCk7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgbCBJTiBsb2NhdGlvbnNcbiAgICBGSUxURVIgbC5fa2V5ID09ICR7Zm9ybWF0SWR9XG4gICAgUkVUVVJOIGxgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLE9BQU9BLEVBQVMsZUFBQUMsTUFBa0Isb0JBQzFDLE9B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LEVBQVcsS0FBTUssRUFBUSxJQUFLRCxDQUFhLEVBRTFFLE9BQU9GLEVBQWUsS0FBS0ksRUFBTSxDQUFDLFVBQVcsRUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFNUCxDQUFlLENBQ2hGLENBR0EsT0FBT0EsQ0FDVCxDQUFDLEVBQ0EsTUFBT1EsR0FBaUIzQyxFQUFTLENBQ2hDLGFBQ0EsU0FBVUUsRUFDVixNQUFPSCxFQUFXLGNBQ3BCLEVBQUc0QyxFQUFPakMsQ0FBTyxFQUFFLEtBQUssSUFBTSxJQUFJLENBQUMsQ0FDdkMsQ0FFQSxPQUFPLElBQ1QsQ0FBQyxDQUNMLEVBRWFrQyxFQUFjLENBQUNsQyxFQUFxQjZCLElBQThDLENBQzdGLEtBQU0sQ0FBQyxhQUFBM0IsQ0FBWSxFQUFJRixFQUNqQm1DLEVBQW1CakQsRUFBUTJDLENBQVUsRUFFckNOLEVBQW1CcEM7QUFBQSx1QkFDSmdELENBQVE7QUFBQSxjQUc3QixPQUFPNUMsRUFBTVcsQ0FBWSxFQUFFLE1BQU1xQixDQUFNLEVBQ3BDLEtBQU1DLEdBQVdBLEVBQU8sS0FBSyxDQUFDLEVBQzlCLE1BQU9TLEdBQWlCLENBQ3ZCLE1BQU1BLENBQ1IsQ0FBQyxDQUNMIiwKICAibmFtZXMiOiBbImh0dHBHZXQiLCAicXVlcnlTdHJpbmciLCAiY3JlYXRlSGFzaCIsICJwYXJzZUNoYXIiLCAicGFyc2VJZCIsICJhcWwiLCAiQ29uZmlnIiwgIkVycm9yVHlwZXMiLCAibG9nRXJyb3IiLCAidXNlRGIiLCAiZXZlbnRDYXRlZ29yeSIsICJnZXRGaWVsZFZhbCIsICJhZGRyZXNzQ29tcG9uZW50cyIsICJuYW1lIiwgInNob3J0TmFtZSIsICJhZGRyZXNzRmllbGQiLCAiZmllbGRUeXBlIiwgImFkZExvY2F0aW9uIiwgImNvbnRleHQiLCAibG9jYXRpb24iLCAiZGF0YWJhc2VOYW1lIiwgInNlc3Npb25JZCIsICJhZGRyZXNzIiwgIml0ZW1JZCIsICJpdGVtVHlwZSIsICJnZW9jb2RlVXJsIiwgInBhcmFtcyIsICJ1cmwiLCAianNvbiIsICJyZXN1bHRzIiwgInN0YXR1cyIsICJnZW9kYXRhIiwgInN0cmVldE51bWJlciIsICJyb3V0ZSIsICJub3ciLCAiZm9ybWF0SXRlbVR5cGUiLCAiZm9ybWF0SXRlbUlkIiwgImdvb2dsZUlkIiwgInVwZGF0ZSIsICJpbnNlcnQiLCAib2JqIiwgImFxbFFyeSIsICJjdXJzb3IiLCAidXBkYXRlZExvY2F0aW9uIiwgIml0ZW1Eb2NJZCIsICJ1cGRhdGVkTG9jYXRpb25LZXkiLCAiZWRnZUNvbGxlY3Rpb24iLCAibG9jYXRpb25JZCIsICJsb2NhdGlvbkRvY0lkIiwgImVkZ2VJZCIsICJlZGdlIiwgImVycm9yIiwgImdldExvY2F0aW9uIiwgImZvcm1hdElkIl0KfQo=
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 { get as httpGet, queryString } from '@nlabs/rip-hunter';
5
+ import { createHash, parseChar, parseId } from '@nlabs/utils/parsers/strings';
6
+ import { aql } from 'arangojs';
7
+ import { Config } from '../config.js';
8
+ import { ErrorTypes } from '../types/error.types.js';
9
+ import { logError } from '../utils/analyticsUtils.js';
10
+ import { useDb } from '../utils/arangodbUtils.js';
11
+ const eventCategory = 'locations';
12
+ export const getFieldVal = (addressComponents, name)=>{
13
+ const { short_name: shortName = '' } = addressComponents.find((addressField)=>{
14
+ const types = addressField.types || [];
15
+ return types.findIndex((fieldType)=>fieldType === name) >= 0;
16
+ }) || {};
17
+ return shortName;
18
+ };
19
+ export const addLocation = (context, location)=>{
20
+ const action = 'add';
21
+ const { databaseName, session: { userId: sessionId } } = context;
22
+ const { address, itemId, itemType } = location;
23
+ const geocodeUrl = Config.get('google.geocode.url');
24
+ const params = {
25
+ address,
26
+ key: Config.get('google.geocode.key')
27
+ };
28
+ const url = `${geocodeUrl}?${queryString(params)}`;
29
+ return httpGet(url).then((json)=>{
30
+ const { results = [], status = '' } = json;
31
+ if (status === 'OK' && results.length) {
32
+ const geodata = results[0];
33
+ const addressComponents = geodata?.address_components || [];
34
+ // Street
35
+ const streetNumber = getFieldVal(addressComponents, 'street_number');
36
+ const route = getFieldVal(addressComponents, 'route');
37
+ // Location
38
+ const now = Date.now();
39
+ // Item
40
+ const formatItemType = parseChar(itemType).toLowerCase();
41
+ const formatItemId = parseId(itemId);
42
+ const googleId = geodata?.place_id || '';
43
+ const update = {};
44
+ const insert = {
45
+ _key: createHash(`post-${sessionId}`),
46
+ added: now,
47
+ city: getFieldVal(addressComponents, 'locality'),
48
+ country: getFieldVal(addressComponents, 'country'),
49
+ formatted: geodata?.formatted_address,
50
+ googleId,
51
+ latitude: geodata?.geometry.location.lat,
52
+ longitude: geodata?.geometry.location.lng,
53
+ state: getFieldVal(addressComponents, 'administrative_area_level_1'),
54
+ street: [
55
+ streetNumber,
56
+ route
57
+ ].filter((obj)=>obj).join(' '),
58
+ zip: getFieldVal(addressComponents, 'postal_code')
59
+ };
60
+ const aqlQry = aql`UPSERT {googleId: ${googleId}}
61
+ INSERT ${insert}
62
+ UPDATE ${update}
63
+ IN locations RETURN NEW`;
64
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).then((updatedLocation)=>{
65
+ let itemDocId;
66
+ const { _key: updatedLocationKey } = updatedLocation;
67
+ switch(formatItemType){
68
+ case 'posts':
69
+ itemDocId = `posts/${formatItemId}`;
70
+ break;
71
+ default:
72
+ itemDocId = '';
73
+ }
74
+ // If there is a valid item doc id, create an edge
75
+ if (itemDocId) {
76
+ const edgeCollection = useDb(databaseName).collection('hasLocation');
77
+ const locationId = updatedLocationKey;
78
+ const locationDocId = `locations/${locationId}`;
79
+ const edgeId = createHash(`hasLocation-${locationId}-${sessionId}`);
80
+ const edge = {
81
+ _from: itemDocId,
82
+ _key: edgeId,
83
+ _to: locationDocId
84
+ };
85
+ return edgeCollection.save(edge, {
86
+ returnNew: true
87
+ }).then(()=>updatedLocation);
88
+ }
89
+ // Otherwise just return the new location
90
+ return updatedLocation;
91
+ }).catch((error)=>logError({
92
+ action,
93
+ category: eventCategory,
94
+ label: ErrorTypes.DATABASE_ERROR
95
+ }, error, context).then(()=>null));
96
+ }
97
+ return null;
98
+ });
99
+ };
100
+ export const getLocation = (context, locationId)=>{
101
+ const { databaseName } = context;
102
+ const formatId = parseId(locationId);
103
+ const aqlQry = aql`FOR l IN locations
104
+ FILTER l._key == ${formatId}
105
+ RETURN l`;
106
+ return useDb(databaseName).query(aqlQry).then((cursor)=>cursor.next()).catch((error)=>{
107
+ throw error;
108
+ });
109
+ };
110
+
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL2FjdGlvbnMvbG9jYXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2dldCBhcyBodHRwR2V0LCBxdWVyeVN0cmluZ30gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZUNoYXIsIHBhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMuanMnO1xuaW1wb3J0IHtHb29nbGVNYXBzQWRkcmVzc1R5cGUsIEdvb2dsZU1hcHNSZXN1bHRUeXBlfSBmcm9tICcuLi90eXBlcy9nb29nbGUudHlwZXMuanMnO1xuaW1wb3J0IHtMb2NhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL2xvY2F0aW9ucy50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0VkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcy9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgdHlwZSB7RWRnZVR5cGV9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2xvY2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZFZhbCA9IChhZGRyZXNzQ29tcG9uZW50czogR29vZ2xlTWFwc0FkZHJlc3NUeXBlW10sIG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtzaG9ydF9uYW1lOiBzaG9ydE5hbWUgPSAnJ30gPSBhZGRyZXNzQ29tcG9uZW50cy5maW5kKChhZGRyZXNzRmllbGQ6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZSkgPT4ge1xuICAgIGNvbnN0IHR5cGVzID0gYWRkcmVzc0ZpZWxkLnR5cGVzIHx8IFtdO1xuICAgIHJldHVybiB0eXBlcy5maW5kSW5kZXgoKGZpZWxkVHlwZTogc3RyaW5nKSA9PiBmaWVsZFR5cGUgPT09IG5hbWUpID49IDA7XG4gIH0pIHx8IHt9O1xuXG4gIHJldHVybiBzaG9ydE5hbWU7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkTG9jYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYXRpb246IExvY2F0aW9uVHlwZSk6IFByb21pc2U8TG9jYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge2FkZHJlc3MsIGl0ZW1JZCwgaXRlbVR5cGV9ID0gbG9jYXRpb247XG4gIGNvbnN0IGdlb2NvZGVVcmw6IHN0cmluZyA9IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLnVybCcpO1xuICBjb25zdCBwYXJhbXM6IG9iamVjdCA9IHtcbiAgICBhZGRyZXNzLFxuICAgIGtleTogQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUua2V5JylcbiAgfTtcbiAgY29uc3QgdXJsOiBzdHJpbmcgPSBgJHtnZW9jb2RlVXJsfT8ke3F1ZXJ5U3RyaW5nKHBhcmFtcyl9YDtcblxuICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgIGNvbnN0IHtyZXN1bHRzID0gW10sIHN0YXR1cyA9ICcnfSA9IGpzb247XG5cbiAgICAgIGlmKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBnZW9kYXRhOiBHb29nbGVNYXBzUmVzdWx0VHlwZSA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnRzOiBHb29nbGVNYXBzQWRkcmVzc1R5cGVbXSA9IGdlb2RhdGE/LmFkZHJlc3NfY29tcG9uZW50cyB8fCBbXTtcblxuICAgICAgICAvLyBTdHJlZXRcbiAgICAgICAgY29uc3Qgc3RyZWV0TnVtYmVyOiBzdHJpbmcgPSBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3N0cmVldF9udW1iZXInKTtcbiAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAncm91dGUnKTtcblxuICAgICAgICAvLyBMb2NhdGlvblxuICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gSXRlbVxuICAgICAgICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlSWQ6IHN0cmluZyA9IGdlb2RhdGE/LnBsYWNlX2lkIHx8ICcnO1xuICAgICAgICBjb25zdCB1cGRhdGU6IExvY2F0aW9uVHlwZSA9IHt9O1xuICAgICAgICBjb25zdCBpbnNlcnQ6IExvY2F0aW9uVHlwZSA9IHtcbiAgICAgICAgICBfa2V5OiBjcmVhdGVIYXNoKGBwb3N0LSR7c2Vzc2lvbklkfWApLFxuICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgY2l0eTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdsb2NhbGl0eScpLFxuICAgICAgICAgIGNvdW50cnk6IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAnY291bnRyeScpLFxuICAgICAgICAgIGZvcm1hdHRlZDogZ2VvZGF0YT8uZm9ybWF0dGVkX2FkZHJlc3MsXG4gICAgICAgICAgZ29vZ2xlSWQsXG4gICAgICAgICAgbGF0aXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxhdCxcbiAgICAgICAgICBsb25naXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxuZyxcbiAgICAgICAgICBzdGF0ZTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEnKSxcbiAgICAgICAgICBzdHJlZXQ6IFtzdHJlZXROdW1iZXIsIHJvdXRlXS5maWx0ZXIoKG9iaikgPT4gb2JqKS5qb2luKCcgJyksXG4gICAgICAgICAgemlwOiBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3Bvc3RhbF9jb2RlJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2dvb2dsZUlkOiAke2dvb2dsZUlkfX1cbiAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICAgIElOIGxvY2F0aW9ucyBSRVRVUk4gTkVXYDtcblxuICAgICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgICAudGhlbigodXBkYXRlZExvY2F0aW9uOiBMb2NhdGlvblR5cGUpID0+IHtcbiAgICAgICAgICAgIGxldCBpdGVtRG9jSWQ6IHN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IHtfa2V5OiB1cGRhdGVkTG9jYXRpb25LZXl9ID0gdXBkYXRlZExvY2F0aW9uO1xuXG4gICAgICAgICAgICBzd2l0Y2goZm9ybWF0SXRlbVR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAncG9zdHMnOlxuICAgICAgICAgICAgICAgIGl0ZW1Eb2NJZCA9IGBwb3N0cy8ke2Zvcm1hdEl0ZW1JZH1gO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGl0ZW1Eb2NJZCA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHZhbGlkIGl0ZW0gZG9jIGlkLCBjcmVhdGUgYW4gZWRnZVxuICAgICAgICAgICAgaWYoaXRlbURvY0lkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlTmFtZSkuY29sbGVjdGlvbignaGFzTG9jYXRpb24nKTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25JZDogc3RyaW5nID0gdXBkYXRlZExvY2F0aW9uS2V5O1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbkRvY0lkOiBzdHJpbmcgPSBgbG9jYXRpb25zLyR7bG9jYXRpb25JZH1gO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGBoYXNMb2NhdGlvbi0ke2xvY2F0aW9uSWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlOiBFZGdlVHlwZSA9IHtfZnJvbTogaXRlbURvY0lkLCBfa2V5OiBlZGdlSWQsIF90bzogbG9jYXRpb25Eb2NJZH07XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gdXBkYXRlZExvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGp1c3QgcmV0dXJuIHRoZSBuZXcgbG9jYXRpb25cbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTG9jYXRpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TG9jYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxMb2NhdGlvblR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChsb2NhdGlvbklkKTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBsIElOIGxvY2F0aW9uc1xuICAgIEZJTFRFUiBsLl9rZXkgPT0gJHtmb3JtYXRJZH1cbiAgICBSRVRVUk4gbGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdLCJuYW1lcyI6WyJnZXQiLCJodHRwR2V0IiwicXVlcnlTdHJpbmciLCJjcmVhdGVIYXNoIiwicGFyc2VDaGFyIiwicGFyc2VJZCIsImFxbCIsIkNvbmZpZyIsIkVycm9yVHlwZXMiLCJsb2dFcnJvciIsInVzZURiIiwiZXZlbnRDYXRlZ29yeSIsImdldEZpZWxkVmFsIiwiYWRkcmVzc0NvbXBvbmVudHMiLCJuYW1lIiwic2hvcnRfbmFtZSIsInNob3J0TmFtZSIsImZpbmQiLCJhZGRyZXNzRmllbGQiLCJ0eXBlcyIsImZpbmRJbmRleCIsImZpZWxkVHlwZSIsImFkZExvY2F0aW9uIiwiY29udGV4dCIsImxvY2F0aW9uIiwiYWN0aW9uIiwiZGF0YWJhc2VOYW1lIiwic2Vzc2lvbiIsInVzZXJJZCIsInNlc3Npb25JZCIsImFkZHJlc3MiLCJpdGVtSWQiLCJpdGVtVHlwZSIsImdlb2NvZGVVcmwiLCJwYXJhbXMiLCJrZXkiLCJ1cmwiLCJ0aGVuIiwianNvbiIsInJlc3VsdHMiLCJzdGF0dXMiLCJsZW5ndGgiLCJnZW9kYXRhIiwiYWRkcmVzc19jb21wb25lbnRzIiwic3RyZWV0TnVtYmVyIiwicm91dGUiLCJub3ciLCJEYXRlIiwiZm9ybWF0SXRlbVR5cGUiLCJ0b0xvd2VyQ2FzZSIsImZvcm1hdEl0ZW1JZCIsImdvb2dsZUlkIiwicGxhY2VfaWQiLCJ1cGRhdGUiLCJpbnNlcnQiLCJfa2V5IiwiYWRkZWQiLCJjaXR5IiwiY291bnRyeSIsImZvcm1hdHRlZCIsImZvcm1hdHRlZF9hZGRyZXNzIiwibGF0aXR1ZGUiLCJnZW9tZXRyeSIsImxhdCIsImxvbmdpdHVkZSIsImxuZyIsInN0YXRlIiwic3RyZWV0IiwiZmlsdGVyIiwib2JqIiwiam9pbiIsInppcCIsImFxbFFyeSIsInF1ZXJ5IiwiY3Vyc29yIiwibmV4dCIsInVwZGF0ZWRMb2NhdGlvbiIsIml0ZW1Eb2NJZCIsInVwZGF0ZWRMb2NhdGlvbktleSIsImVkZ2VDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsImxvY2F0aW9uSWQiLCJsb2NhdGlvbkRvY0lkIiwiZWRnZUlkIiwiZWRnZSIsIl9mcm9tIiwiX3RvIiwic2F2ZSIsInJldHVybk5ldyIsImNhdGNoIiwiZXJyb3IiLCJjYXRlZ29yeSIsImxhYmVsIiwiREFUQUJBU0VfRVJST1IiLCJnZXRMb2NhdGlvbiIsImZvcm1hdElkIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxPQUFPQyxPQUFPLEVBQUVDLFdBQVcsUUFBTyxvQkFBb0I7QUFDOUQsU0FBUUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sUUFBTywrQkFBK0I7QUFDNUUsU0FBUUMsR0FBRyxRQUFPLFdBQVc7QUFHN0IsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsVUFBVSxRQUFPLDBCQUEwQjtBQUduRCxTQUFRQyxRQUFRLFFBQU8sNkJBQTZCO0FBQ3BELFNBQVFDLEtBQUssUUFBTyw0QkFBNEI7QUFLaEQsTUFBTUMsZ0JBQXdCO0FBRTlCLE9BQU8sTUFBTUMsY0FBYyxDQUFDQyxtQkFBNENDO0lBQ3RFLE1BQU0sRUFBQ0MsWUFBWUMsWUFBWSxFQUFFLEVBQUMsR0FBR0gsa0JBQWtCSSxJQUFJLENBQUMsQ0FBQ0M7UUFDM0QsTUFBTUMsUUFBUUQsYUFBYUMsS0FBSyxJQUFJLEVBQUU7UUFDdEMsT0FBT0EsTUFBTUMsU0FBUyxDQUFDLENBQUNDLFlBQXNCQSxjQUFjUCxTQUFTO0lBQ3ZFLE1BQU0sQ0FBQztJQUVQLE9BQU9FO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTU0sY0FBYyxDQUFDQyxTQUFxQkM7SUFDL0MsTUFBTUMsU0FBaUI7SUFDdkIsTUFBTSxFQUFDQyxZQUFZLEVBQUVDLFNBQVMsRUFBQ0MsUUFBUUMsU0FBUyxFQUFDLEVBQUMsR0FBR047SUFDckQsTUFBTSxFQUFDTyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFDLEdBQUdSO0lBQ3BDLE1BQU1TLGFBQXFCMUIsT0FBT1AsR0FBRyxDQUFDO0lBQ3RDLE1BQU1rQyxTQUFpQjtRQUNyQko7UUFDQUssS0FBSzVCLE9BQU9QLEdBQUcsQ0FBQztJQUNsQjtJQUNBLE1BQU1vQyxNQUFjLEdBQUdILFdBQVcs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
@@ -11,3 +11,4 @@ export declare const unsaveMessage: (context: ApiContext, messageId: string, con
11
11
  export declare const deleteMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
12
12
  export declare const getMessage: (context: ApiContext, messageId: string) => Promise<MessageType>;
13
13
  export declare const cleanMessages: (databaseName: string) => Promise<number>;
14
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/actions/messages.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAI9E,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,EAAE,gBAAgB,MAAM,EAAE;;;CAAU,KAAG,OAAO,CAAC,WAAW,EAAE,CAqC1G,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,UAAU,EAAE,SAAS,gBAAgB,KAAG,OAAO,CAAC,WAAW,CAuCjG,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,UAAU,EAAE,SAAS,gBAAgB,KAAG,OAAO,CAAC,WAAW,CAY9F,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,EAAE,WAAW,MAAM,EAAE,gBAAgB,MAAM,KAAG,OAAO,CAAC,WAAW,CA2B/G,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,UAAU,EAAE,WAAW,MAAM,EAAE,gBAAgB,MAAM,KAAG,OAAO,CAAC,WAAW,CA2BjH,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,UAAU,EAAE,WAAW,MAAM,EAAE,gBAAgB,MAAM,KAAG,OAAO,CAAC,WAAW,CA2BjH,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,UAAU,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,WAAW,CAatF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAalE,CAAC"}