@nlabs/reaktor 0.10.0 → 0.10.1

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 (314) hide show
  1. package/.env +1 -0
  2. package/.env.example +1 -0
  3. package/DATABASE_I18N_GUIDE.md +434 -0
  4. package/TEST_UTILITIES_GUIDE.md +360 -0
  5. package/coverage/index.html +46 -76
  6. package/index.js +1 -1
  7. package/jest.config.js +17 -0
  8. package/jest.setup.js +36 -0
  9. package/lex.config.cjs +2 -2
  10. package/lib/actions/apps.js +17 -239
  11. package/lib/actions/connections.js +6 -89
  12. package/lib/actions/content.js +17 -0
  13. package/lib/actions/conversations.js +19 -336
  14. package/lib/actions/dynamodb.js +2 -150
  15. package/lib/actions/email.js +2 -152
  16. package/lib/actions/files.js +5 -283
  17. package/lib/actions/groups.js +19 -259
  18. package/lib/actions/images.js +31 -700
  19. package/lib/actions/index.js +2 -66
  20. package/lib/actions/ios.js +9 -162
  21. package/lib/actions/locations.js +7 -122
  22. package/lib/actions/messages.js +21 -196
  23. package/lib/actions/notifications.js +2 -59
  24. package/lib/actions/payments.js +11 -464
  25. package/lib/actions/posts.js +75 -527
  26. package/lib/actions/profiles.js +8 -0
  27. package/lib/actions/reactions.js +25 -312
  28. package/lib/actions/s3.js +2 -133
  29. package/lib/actions/search.js +5 -90
  30. package/lib/actions/sms.js +2 -108
  31. package/lib/actions/statistics.js +6 -60
  32. package/lib/actions/subscriptions.js +12 -0
  33. package/lib/actions/tags.js +19 -287
  34. package/lib/actions/users.js +64 -764
  35. package/lib/actions/websockets.js +14 -158
  36. package/lib/adapters/arangoAdapter.js +2 -46
  37. package/lib/adapters/contentAdapter.js +2 -0
  38. package/lib/adapters/fileAdapter.js +2 -76
  39. package/lib/adapters/imageAdapter.js +2 -40
  40. package/lib/adapters/messageAdapter.js +2 -49
  41. package/lib/adapters/postAdapter.js +2 -70
  42. package/lib/adapters/reaktorAdapter.js +2 -44
  43. package/lib/adapters/tagAdapter.js +2 -50
  44. package/lib/adapters/userAdapter.js +2 -115
  45. package/lib/config.js +2 -125
  46. package/lib/handlers/graphqlHandler.js +2 -0
  47. package/lib/index.js +2 -66
  48. package/lib/lambdas/actions/websockets.js +14 -116
  49. package/lib/lambdas/authorizer.js +2 -67
  50. package/lib/lambdas/connection.js +2 -91
  51. package/lib/lambdas/utils/message.js +2 -42
  52. package/lib/lambdas/utils/websocket.js +2 -105
  53. package/lib/mocks/conversation.js +2 -35
  54. package/lib/mocks/file.js +2 -38
  55. package/lib/mocks/group.js +2 -47
  56. package/lib/mocks/image.js +2 -44
  57. package/lib/mocks/post.js +2 -55
  58. package/lib/mocks/tag.js +2 -37
  59. package/lib/mocks/user.js +2 -88
  60. package/lib/mutations/index.js +2 -26
  61. package/lib/mutations/locations.integration.js +2 -0
  62. package/lib/mutations/locations.js +2 -44
  63. package/lib/mutations/messages.integration.js +2 -0
  64. package/lib/mutations/messages.js +2 -86
  65. package/lib/mutations/posts.integration.js +2 -0
  66. package/lib/mutations/posts.js +2 -53
  67. package/lib/mutations/profiles.integration.js +2 -0
  68. package/lib/mutations/profiles.js +2 -0
  69. package/lib/mutations/reactions.integration.js +2 -0
  70. package/lib/mutations/reactions.js +2 -51
  71. package/lib/mutations/statistics.integration.js +2 -0
  72. package/lib/mutations/statistics.js +2 -39
  73. package/lib/mutations/subscriptions.integration.js +2 -0
  74. package/lib/mutations/subscriptions.js +2 -56
  75. package/lib/mutations/tags.integration.js +2 -0
  76. package/lib/mutations/tags.js +2 -120
  77. package/lib/mutations/users.integration.js +2 -0
  78. package/lib/mutations/users.js +2 -116
  79. package/lib/objectTypes/app.js +2 -173
  80. package/lib/objectTypes/bankAccount.js +2 -76
  81. package/lib/objectTypes/connection.js +2 -48
  82. package/lib/objectTypes/conversation.js +2 -77
  83. package/lib/objectTypes/creditCard.js +2 -86
  84. package/lib/objectTypes/document.js +2 -46
  85. package/lib/objectTypes/error.js +2 -46
  86. package/lib/objectTypes/external.js +2 -74
  87. package/lib/objectTypes/file.js +2 -100
  88. package/lib/objectTypes/filter.js +2 -43
  89. package/lib/objectTypes/group.js +2 -123
  90. package/lib/objectTypes/iapSubscription.js +2 -40
  91. package/lib/objectTypes/image.js +2 -129
  92. package/lib/objectTypes/index.js +2 -68
  93. package/lib/objectTypes/location.js +2 -109
  94. package/lib/objectTypes/message.js +2 -96
  95. package/lib/objectTypes/passcode.js +2 -42
  96. package/lib/objectTypes/plan.js +2 -95
  97. package/lib/objectTypes/post.js +2 -125
  98. package/lib/objectTypes/profile.js +2 -0
  99. package/lib/objectTypes/reaction.js +2 -61
  100. package/lib/objectTypes/relation.js +2 -49
  101. package/lib/objectTypes/search.js +2 -72
  102. package/lib/objectTypes/statistics.js +2 -39
  103. package/lib/objectTypes/subscription.js +2 -117
  104. package/lib/objectTypes/tag.js +2 -65
  105. package/lib/objectTypes/user.js +2 -144
  106. package/lib/queries/index.js +2 -33
  107. package/lib/queries/locations.integration.js +2 -0
  108. package/lib/queries/locations.js +2 -45
  109. package/lib/queries/messages.integration.js +2 -0
  110. package/lib/queries/messages.js +2 -52
  111. package/lib/queries/posts.integration.js +2 -0
  112. package/lib/queries/posts.js +2 -154
  113. package/lib/queries/reactions.integration.js +2 -0
  114. package/lib/queries/reactions.js +2 -56
  115. package/lib/queries/statistics.js +2 -39
  116. package/lib/queries/subscriptions.js +2 -44
  117. package/lib/queries/tags.integration.js +2 -0
  118. package/lib/queries/tags.js +2 -75
  119. package/lib/queries/users.integration.js +2 -0
  120. package/lib/queries/users.js +2 -64
  121. package/lib/templates/email/layout.js +3 -25
  122. package/lib/templates/email/passwordForgot.js +3 -25
  123. package/lib/templates/email/passwordRecovery.js +3 -25
  124. package/lib/templates/email/verifyEmail.js +3 -25
  125. package/lib/templates/email/welcome.js +3 -25
  126. package/lib/templates/sms/passwordForgot.js +2 -24
  127. package/lib/templates/sms/passwordRecovery.js +2 -24
  128. package/lib/templates/sms/verifyEmail.js +2 -24
  129. package/lib/templates/sms/verifyPhone.js +2 -24
  130. package/lib/templates/sms/welcome.js +2 -24
  131. package/lib/types/apps.types.js +2 -32
  132. package/lib/types/arangodb.types.js +1 -16
  133. package/lib/types/auth.types.js +1 -16
  134. package/lib/types/connections.types.js +1 -16
  135. package/lib/types/content.types.js +1 -0
  136. package/lib/types/conversations.types.js +1 -16
  137. package/lib/types/email.types.js +1 -16
  138. package/lib/types/error.types.js +2 -44
  139. package/lib/types/files.types.js +1 -16
  140. package/lib/types/google.types.js +1 -16
  141. package/lib/types/groups.types.js +1 -16
  142. package/lib/types/images.types.js +1 -16
  143. package/lib/types/index.js +2 -60
  144. package/lib/types/locations.types.js +1 -16
  145. package/lib/types/messages.types.js +1 -16
  146. package/lib/types/notifications.types.js +1 -16
  147. package/lib/types/payments.types.js +1 -16
  148. package/lib/types/posts.types.js +1 -16
  149. package/lib/types/profiles.types.js +1 -0
  150. package/lib/types/statistics.types.js +1 -16
  151. package/lib/types/tags.types.js +1 -16
  152. package/lib/types/users.types.js +1 -16
  153. package/lib/types/websockets.types.js +1 -16
  154. package/lib/utils/adapterUtils.js +2 -45
  155. package/lib/utils/analyticsUtils.js +2 -72
  156. package/lib/utils/arangodbUtils.js +5 -163
  157. package/lib/utils/authUtils.js +2 -0
  158. package/lib/utils/contextUtils.js +2 -0
  159. package/lib/utils/dbI18n.example.js +6 -0
  160. package/lib/utils/dbI18n.js +2 -0
  161. package/lib/utils/googleTranslate.js +2 -0
  162. package/lib/utils/graphqlUtils.js +2 -0
  163. package/lib/utils/index.js +2 -30
  164. package/lib/utils/languageDetection.js +2 -0
  165. package/lib/utils/localeUtils.example.js +2 -0
  166. package/lib/utils/localeUtils.js +2 -0
  167. package/lib/utils/middlewareUtils.js +2 -0
  168. package/lib/utils/sessionUtils.js +2 -0
  169. package/lib/utils/stripeUtils.js +2 -43
  170. package/lib/utils/templateUtils.js +2 -0
  171. package/lib/utils/testUtils.js +2 -0
  172. package/lib/utils/translationQueue.example.js +2 -0
  173. package/lib/utils/translationQueue.js +2 -0
  174. package/package.json +27 -24
  175. package/.prettierrc.js +0 -4
  176. package/lib/actions/apps.d.ts +0 -25
  177. package/lib/actions/connections.d.ts +0 -4
  178. package/lib/actions/conversations.d.ts +0 -14
  179. package/lib/actions/dynamodb.d.ts +0 -8
  180. package/lib/actions/email.d.ts +0 -5
  181. package/lib/actions/files.d.ts +0 -19
  182. package/lib/actions/groups.d.ts +0 -14
  183. package/lib/actions/images.d.ts +0 -26
  184. package/lib/actions/index.d.ts +0 -23
  185. package/lib/actions/ios.d.ts +0 -7
  186. package/lib/actions/locations.d.ts +0 -6
  187. package/lib/actions/messages.d.ts +0 -14
  188. package/lib/actions/notifications.d.ts +0 -5
  189. package/lib/actions/payments.d.ts +0 -10
  190. package/lib/actions/personas.d.ts +0 -3
  191. package/lib/actions/personas.js +0 -110
  192. package/lib/actions/posts.d.ts +0 -22
  193. package/lib/actions/reactions.d.ts +0 -30
  194. package/lib/actions/s3.d.ts +0 -7
  195. package/lib/actions/search.d.ts +0 -3
  196. package/lib/actions/sms.d.ts +0 -9
  197. package/lib/actions/statistics.d.ts +0 -3
  198. package/lib/actions/subscription.d.ts +0 -7
  199. package/lib/actions/subscription.js +0 -208
  200. package/lib/actions/tags.d.ts +0 -34
  201. package/lib/actions/users.d.ts +0 -72
  202. package/lib/actions/websockets.d.ts +0 -20
  203. package/lib/adapters/arangoAdapter.d.ts +0 -2
  204. package/lib/adapters/fileAdapter.d.ts +0 -3
  205. package/lib/adapters/imageAdapter.d.ts +0 -2
  206. package/lib/adapters/messageAdapter.d.ts +0 -2
  207. package/lib/adapters/postAdapter.d.ts +0 -2
  208. package/lib/adapters/reaktorAdapter.d.ts +0 -6
  209. package/lib/adapters/tagAdapter.d.ts +0 -2
  210. package/lib/adapters/userAdapter.d.ts +0 -2
  211. package/lib/config.d.ts +0 -20
  212. package/lib/index.d.ts +0 -12
  213. package/lib/lambdas/actions/websockets.d.ts +0 -7
  214. package/lib/lambdas/authorizer.d.ts +0 -20
  215. package/lib/lambdas/connection.d.ts +0 -12
  216. package/lib/lambdas/utils/message.d.ts +0 -1
  217. package/lib/lambdas/utils/websocket.d.ts +0 -7
  218. package/lib/mocks/conversation.d.ts +0 -8
  219. package/lib/mocks/file.d.ts +0 -11
  220. package/lib/mocks/group.d.ts +0 -17
  221. package/lib/mocks/image.d.ts +0 -3
  222. package/lib/mocks/post.d.ts +0 -38
  223. package/lib/mocks/tag.d.ts +0 -2
  224. package/lib/mocks/user.d.ts +0 -4
  225. package/lib/mutations/index.d.ts +0 -3
  226. package/lib/mutations/locations.d.ts +0 -2
  227. package/lib/mutations/messages.d.ts +0 -2
  228. package/lib/mutations/personas.d.ts +0 -2
  229. package/lib/mutations/personas.js +0 -100
  230. package/lib/mutations/posts.d.ts +0 -2
  231. package/lib/mutations/reactions.d.ts +0 -2
  232. package/lib/mutations/statistics.d.ts +0 -2
  233. package/lib/mutations/subscriptions.d.ts +0 -2
  234. package/lib/mutations/tags.d.ts +0 -2
  235. package/lib/mutations/users.d.ts +0 -1
  236. package/lib/objectTypes/app.d.ts +0 -3
  237. package/lib/objectTypes/bankAccount.d.ts +0 -1
  238. package/lib/objectTypes/connection.d.ts +0 -1
  239. package/lib/objectTypes/conversation.d.ts +0 -2
  240. package/lib/objectTypes/creditCard.d.ts +0 -1
  241. package/lib/objectTypes/document.d.ts +0 -1
  242. package/lib/objectTypes/error.d.ts +0 -1
  243. package/lib/objectTypes/external.d.ts +0 -1
  244. package/lib/objectTypes/file.d.ts +0 -2
  245. package/lib/objectTypes/filter.d.ts +0 -1
  246. package/lib/objectTypes/group.d.ts +0 -3
  247. package/lib/objectTypes/iapSubscription.d.ts +0 -1
  248. package/lib/objectTypes/image.d.ts +0 -2
  249. package/lib/objectTypes/index.d.ts +0 -24
  250. package/lib/objectTypes/location.d.ts +0 -2
  251. package/lib/objectTypes/message.d.ts +0 -2
  252. package/lib/objectTypes/passcode.d.ts +0 -1
  253. package/lib/objectTypes/persona.d.ts +0 -3
  254. package/lib/objectTypes/persona.js +0 -87
  255. package/lib/objectTypes/plan.d.ts +0 -2
  256. package/lib/objectTypes/post.d.ts +0 -2
  257. package/lib/objectTypes/reaction.d.ts +0 -2
  258. package/lib/objectTypes/relation.d.ts +0 -1
  259. package/lib/objectTypes/search.d.ts +0 -1
  260. package/lib/objectTypes/statistics.d.ts +0 -1
  261. package/lib/objectTypes/subscription.d.ts +0 -2
  262. package/lib/objectTypes/tag.d.ts +0 -2
  263. package/lib/objectTypes/user.d.ts +0 -4
  264. package/lib/queries/index.d.ts +0 -3
  265. package/lib/queries/locations.d.ts +0 -2
  266. package/lib/queries/messages.d.ts +0 -2
  267. package/lib/queries/posts.d.ts +0 -2
  268. package/lib/queries/reactions.d.ts +0 -2
  269. package/lib/queries/statistics.d.ts +0 -2
  270. package/lib/queries/subscriptions.d.ts +0 -2
  271. package/lib/queries/tags.d.ts +0 -2
  272. package/lib/queries/users.d.ts +0 -1
  273. package/lib/templates/email/layout.d.ts +0 -2
  274. package/lib/templates/email/passwordForgot.d.ts +0 -2
  275. package/lib/templates/email/passwordRecovery.d.ts +0 -2
  276. package/lib/templates/email/verifyEmail.d.ts +0 -2
  277. package/lib/templates/email/welcome.d.ts +0 -2
  278. package/lib/templates/sms/passwordForgot.d.ts +0 -2
  279. package/lib/templates/sms/passwordRecovery.d.ts +0 -2
  280. package/lib/templates/sms/verifyEmail.d.ts +0 -2
  281. package/lib/templates/sms/verifyPhone.d.ts +0 -2
  282. package/lib/templates/sms/welcome.d.ts +0 -2
  283. package/lib/types/apps.types.d.ts +0 -46
  284. package/lib/types/arangodb.types.d.ts +0 -34
  285. package/lib/types/auth.types.d.ts +0 -9
  286. package/lib/types/connections.types.d.ts +0 -5
  287. package/lib/types/conversations.types.d.ts +0 -27
  288. package/lib/types/email.types.d.ts +0 -13
  289. package/lib/types/error.types.d.ts +0 -20
  290. package/lib/types/files.types.d.ts +0 -23
  291. package/lib/types/google.types.d.ts +0 -29
  292. package/lib/types/groups.types.d.ts +0 -18
  293. package/lib/types/images.types.d.ts +0 -52
  294. package/lib/types/index.d.ts +0 -20
  295. package/lib/types/locations.types.d.ts +0 -18
  296. package/lib/types/messages.types.d.ts +0 -16
  297. package/lib/types/notifications.types.d.ts +0 -19
  298. package/lib/types/payments.types.d.ts +0 -109
  299. package/lib/types/personas.types.d.ts +0 -32
  300. package/lib/types/personas.types.js +0 -16
  301. package/lib/types/posts.types.d.ts +0 -28
  302. package/lib/types/statistics.types.d.ts +0 -3
  303. package/lib/types/tags.types.d.ts +0 -15
  304. package/lib/types/users.types.d.ts +0 -79
  305. package/lib/types/websockets.types.d.ts +0 -18
  306. package/lib/utils/adapterUtils.d.ts +0 -1
  307. package/lib/utils/analyticsUtils.d.ts +0 -21
  308. package/lib/utils/arangodbUtils.d.ts +0 -66
  309. package/lib/utils/auth.d.ts +0 -21
  310. package/lib/utils/auth.js +0 -57
  311. package/lib/utils/index.d.ts +0 -5
  312. package/lib/utils/session.d.ts +0 -18
  313. package/lib/utils/session.js +0 -60
  314. package/lib/utils/stripeUtils.d.ts +0 -3
@@ -1,66 +1,2 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var actions_exports = {};
16
- module.exports = __toCommonJS(actions_exports);
17
- __reExport(actions_exports, require("./apps"), module.exports);
18
- __reExport(actions_exports, require("./connections"), module.exports);
19
- __reExport(actions_exports, require("./conversations"), module.exports);
20
- __reExport(actions_exports, require("./dynamodb"), module.exports);
21
- __reExport(actions_exports, require("./email"), module.exports);
22
- __reExport(actions_exports, require("./files"), module.exports);
23
- __reExport(actions_exports, require("./groups"), module.exports);
24
- __reExport(actions_exports, require("./images"), module.exports);
25
- __reExport(actions_exports, require("./ios"), module.exports);
26
- __reExport(actions_exports, require("./locations"), module.exports);
27
- __reExport(actions_exports, require("./messages"), module.exports);
28
- __reExport(actions_exports, require("./notifications"), module.exports);
29
- __reExport(actions_exports, require("./payments"), module.exports);
30
- __reExport(actions_exports, require("./posts"), module.exports);
31
- __reExport(actions_exports, require("./reactions"), module.exports);
32
- __reExport(actions_exports, require("./s3"), module.exports);
33
- __reExport(actions_exports, require("./search"), module.exports);
34
- __reExport(actions_exports, require("./sms"), module.exports);
35
- __reExport(actions_exports, require("./statistics"), module.exports);
36
- __reExport(actions_exports, require("./subscription"), module.exports);
37
- __reExport(actions_exports, require("./tags"), module.exports);
38
- __reExport(actions_exports, require("./users"), module.exports);
39
- __reExport(actions_exports, require("./websockets"), module.exports);
40
- // Annotate the CommonJS export names for ESM import in node:
41
- 0 && (module.exports = {
42
- ...require("./apps"),
43
- ...require("./connections"),
44
- ...require("./conversations"),
45
- ...require("./dynamodb"),
46
- ...require("./email"),
47
- ...require("./files"),
48
- ...require("./groups"),
49
- ...require("./images"),
50
- ...require("./ios"),
51
- ...require("./locations"),
52
- ...require("./messages"),
53
- ...require("./notifications"),
54
- ...require("./payments"),
55
- ...require("./posts"),
56
- ...require("./reactions"),
57
- ...require("./s3"),
58
- ...require("./search"),
59
- ...require("./sms"),
60
- ...require("./statistics"),
61
- ...require("./subscription"),
62
- ...require("./tags"),
63
- ...require("./users"),
64
- ...require("./websockets")
65
- });
66
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2FwcHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbW9kYic7XG5leHBvcnQgKiBmcm9tICcuL2VtYWlsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pb3MnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vczMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9zbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0aXN0aWNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGFncyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic29ja2V0cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFJQSw0QkFBYyxtQkFKZDtBQUtBLDRCQUFjLDBCQUxkO0FBTUEsNEJBQWMsNEJBTmQ7QUFPQSw0QkFBYyx1QkFQZDtBQVFBLDRCQUFjLG9CQVJkO0FBU0EsNEJBQWMsb0JBVGQ7QUFVQSw0QkFBYyxxQkFWZDtBQVdBLDRCQUFjLHFCQVhkO0FBWUEsNEJBQWMsa0JBWmQ7QUFhQSw0QkFBYyx3QkFiZDtBQWNBLDRCQUFjLHVCQWRkO0FBZUEsNEJBQWMsNEJBZmQ7QUFnQkEsNEJBQWMsdUJBaEJkO0FBaUJBLDRCQUFjLG9CQWpCZDtBQWtCQSw0QkFBYyx3QkFsQmQ7QUFtQkEsNEJBQWMsaUJBbkJkO0FBb0JBLDRCQUFjLHFCQXBCZDtBQXFCQSw0QkFBYyxrQkFyQmQ7QUFzQkEsNEJBQWMseUJBdEJkO0FBdUJBLDRCQUFjLDJCQXZCZDtBQXdCQSw0QkFBYyxtQkF4QmQ7QUF5QkEsNEJBQWMsb0JBekJkO0FBMEJBLDRCQUFjLHlCQTFCZDsiLAogICJuYW1lcyI6IFtdCn0K
1
+ export*from"./apps";export*from"./connections";export*from"./conversations";export*from"./dynamodb";export*from"./email";export*from"./files";export*from"./groups";export*from"./images";export*from"./ios";export*from"./locations";export*from"./messages";export*from"./notifications";export*from"./payments";export*from"./posts";export*from"./reactions";export*from"./s3";export*from"./search";export*from"./sms";export*from"./statistics";export*from"./subscriptions";export*from"./tags";export*from"./users";export*from"./websockets";
2
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2FwcHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbW9kYic7XG5leHBvcnQgKiBmcm9tICcuL2VtYWlsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pb3MnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vczMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9zbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0aXN0aWNzJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3RhZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi91c2Vycyc7XG5leHBvcnQgKiBmcm9tICcuL3dlYnNvY2tldHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBSUEsV0FBYyxTQUNkLFdBQWMsZ0JBQ2QsV0FBYyxrQkFDZCxXQUFjLGFBQ2QsV0FBYyxVQUNkLFdBQWMsVUFDZCxXQUFjLFdBQ2QsV0FBYyxXQUNkLFdBQWMsUUFDZCxXQUFjLGNBQ2QsV0FBYyxhQUNkLFdBQWMsa0JBQ2QsV0FBYyxhQUNkLFdBQWMsVUFDZCxXQUFjLGNBQ2QsV0FBYyxPQUNkLFdBQWMsV0FDZCxXQUFjLFFBQ2QsV0FBYyxlQUNkLFdBQWMsa0JBQ2QsV0FBYyxTQUNkLFdBQWMsVUFDZCxXQUFjIiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -1,164 +1,11 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var ios_exports = {};
19
- __export(ios_exports, {
20
- addIosInApp: () => addIosInApp,
21
- getIosInApp: () => getIosInApp,
22
- getIosInAppError: () => getIosInAppError,
23
- getIosSubscription: () => getIosSubscription,
24
- iosSubscriptionUpdate: () => iosSubscriptionUpdate
25
- });
26
- module.exports = __toCommonJS(ios_exports);
27
- var import_utils = require("@nlabs/utils");
28
- var import_arangojs = require("arangojs");
29
- var import_error = require("../types/error.types");
30
- var import_analyticsUtils = require("../utils/analyticsUtils");
31
- const eventCategory = "ios";
32
- const getIosInAppError = (statusCode) => {
33
- const codes = {
34
- [0]: { error: false, message: "Active", valid: true },
35
- [21e3]: { error: true, id: "payment_receipt_unreadable", message: "App store could not read", valid: false },
36
- [21002]: { error: true, id: "payment_data_malformed", message: "Data was malformed", valid: false },
37
- [21003]: { error: true, id: "payment_receipt_unauthorized", message: "Receipt not authenticated", valid: false },
38
- [21004]: { error: true, id: "payment_invalid_secret", message: "Shared secret does not match", valid: false },
39
- [21005]: { error: true, id: "payment_server_unavailable", message: "Receipt server unavailable", valid: false },
40
- [21006]: {
41
- error: false,
42
- id: "payment_subscription_expired",
43
- message: "Receipt valid but sub expired",
44
- valid: true
45
- },
46
- /**
47
- * special case for app review handling - forward any request that is intended for the Sandbox but was sent to
48
- * Production, this is what the app review team does
49
- */
50
- [21007]: {
51
- error: true,
52
- id: "payment_invalid_server",
53
- message: "Sandbox receipt sent to Production environment",
54
- redirect: true,
55
- valid: false
56
- },
57
- [21008]: {
58
- error: true,
59
- id: "payment_invalid_server",
60
- message: "Production receipt sent to Sandbox environment",
61
- valid: false
62
- }
63
- };
64
- return codes[statusCode] || {};
65
- };
66
- const iosSubscriptionUpdate = (database, subscriptionUpdate) => {
67
- const action = "iosSubscriptionUpdate";
68
- const {
69
- auto_renew_adam_id: planId,
70
- cancellation_date: cancelDate,
71
- notification_type: status,
72
- latest_receipt: latestReceipt,
73
- latest_receipt_info: latestInfo,
74
- latest_expired_receipt: expiredReceipt,
75
- latest_expired_receipt_info: expiredInfo,
76
- original_transaction_id: transactionId
77
- } = subscriptionUpdate;
78
- const formatStatus = (status || "").toLowerCase();
79
- const now = Date.now();
80
- const receiptInfo = latestInfo || expiredInfo;
81
- const id = (0, import_utils.createHash)(`payment-${transactionId}`);
82
- const update = {
83
- cancelDate,
84
- isValid: receiptInfo[0].expires_date_ms > now,
85
- modified: now,
86
- planId,
87
- receipt: latestReceipt || expiredReceipt,
88
- status: formatStatus
89
- };
90
- const insert = {
91
- ...update,
92
- _key: id,
93
- added: now,
94
- type: "ios_payment"
95
- };
96
- const aqlQry = import_arangojs.aql`UPSERT {transactionId: ${transactionId}}
97
- INSERT ${insert}
98
- UPDATE ${update} IN subscriptions
99
- LIMIT 1`;
100
- return database.query(aqlQry).then(() => null).catch((dbError) => (0, import_analyticsUtils.logError)({
101
- action,
102
- category: eventCategory,
103
- label: import_error.ErrorTypes.DATABASE_ERROR
104
- }, dbError, {}).then(() => null));
105
- };
106
- const getIosSubscription = (context) => {
107
- const action = "getIosSubscription";
108
- const { database, session: { userId: sessionId } } = context;
109
- const aqlQry = import_arangojs.aql`FOR s IN subscriptions
110
- FILTER s.userId == ${sessionId} && s.type == "ios_payment"
1
+ import{createHash as R}from"@nlabs/utils";import{aql as d}from"arangojs";import{ErrorTypes as u}from"../types/error.types";import{useDb as l}from"../utils";import{logError as m}from"../utils/analyticsUtils";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:c,original_transaction_id:p}=r,g=(e||"").toLowerCase(),a=Date.now(),S=b||c,o=R(`payment-${p}`),A={cancelDate:i,isValid:S[0].expires_date_ms>a,modified:a,planId:n,receipt:y||_,status:g},f={...A,_key:o,added:a,type:"ios_payment"},E=d`UPSERT {transactionId: ${p}}
2
+ INSERT ${f}
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"
111
6
  LIMIT 1
112
- RETURN s`;
113
- return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription) => subscription).catch((error) => (0, import_analyticsUtils.logError)({
114
- action,
115
- category: eventCategory,
116
- label: import_error.ErrorTypes.DATABASE_ERROR
117
- }, error, context).then(() => null));
118
- };
119
- const addIosInApp = (context, subscription) => {
120
- const action = "addIosInApp";
121
- const { database, session: { userId: sessionId } } = context;
122
- const now = Date.now();
123
- const { added = now, planId, receipt, transactionId, trialEnd } = subscription;
124
- const subscriptionId = (0, import_utils.createHash)(`subscription-${transactionId}`);
125
- const insert = {
126
- _key: subscriptionId,
127
- added,
128
- modified: now,
129
- planId,
130
- receipt,
131
- transactionId,
132
- trialEnd,
133
- type: "ios_subscription",
134
- userId: sessionId
135
- };
136
- const aqlQry = import_arangojs.aql`INSERT ${insert} IN subscriptions RETURN NEW`;
137
- return database.query(aqlQry).then((cursor) => cursor.next()).then((updatedSubscription) => updatedSubscription).catch((error) => (0, import_analyticsUtils.logError)({
138
- action,
139
- category: eventCategory,
140
- label: import_error.ErrorTypes.DATABASE_ERROR
141
- }, error, context).then(() => null));
142
- };
143
- const getIosInApp = (context) => {
144
- const action = "getIosInApp";
145
- const { database, session: { userId: sessionId } } = context;
146
- const aqlQry = import_arangojs.aql`FOR s IN subscription
147
- FILTER s.userId == ${sessionId} && s.type == "ios"
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:c,trialEnd:p}=r,a={_key:R(`subscription-${c}`),added:y,modified:e,planId:b,receipt:_,transactionId:c,trialEnd:p,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"
148
9
  LIMIT 1
149
- RETURN s`;
150
- return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription) => subscription).catch((error) => (0, import_analyticsUtils.logError)({
151
- action,
152
- category: eventCategory,
153
- label: import_error.ErrorTypes.DATABASE_ERROR
154
- }, error, context).then(() => null));
155
- };
156
- // Annotate the CommonJS export names for ESM import in node:
157
- 0 && (module.exports = {
158
- addIosInApp,
159
- getIosInApp,
160
- getIosInAppError,
161
- getIosSubscription,
162
- iosSubscriptionUpdate
163
- });
164
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW9zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUhhc2h9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7XG4gIEFwaUNvbnRleHQsXG4gIFBheW1lbnRJT1NJbkFwcEVycm9yLFxuICBQYXltZW50SU9TU3Vic2NyaXB0aW9uSW5mbyxcbiAgUGF5bWVudElPU1N1YnNjcmlwdGlvblVwZGF0ZSxcbiAgUGF5bWVudFN1YnNjcmlwdGlvblxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2lvcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NJbkFwcEVycm9yID0gKHN0YXR1c0NvZGU6IHN0cmluZyk6IFBheW1lbnRJT1NJbkFwcEVycm9yID0+IHtcbiAgY29uc3QgY29kZXMgPSB7XG4gICAgWzBdOiB7ZXJyb3I6IGZhbHNlLCBtZXNzYWdlOiAnQWN0aXZlJywgdmFsaWQ6IHRydWV9LFxuICAgIFsyMTAwMF06IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X3JlY2VpcHRfdW5yZWFkYWJsZScsIG1lc3NhZ2U6ICdBcHAgc3RvcmUgY291bGQgbm90IHJlYWQnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwMl06IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X2RhdGFfbWFsZm9ybWVkJywgbWVzc2FnZTogJ0RhdGEgd2FzIG1hbGZvcm1lZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDAzXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfcmVjZWlwdF91bmF1dGhvcml6ZWQnLCBtZXNzYWdlOiAnUmVjZWlwdCBub3QgYXV0aGVudGljYXRlZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDA0XToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfaW52YWxpZF9zZWNyZXQnLCBtZXNzYWdlOiAnU2hhcmVkIHNlY3JldCBkb2VzIG5vdCBtYXRjaCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDA1XToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfc2VydmVyX3VuYXZhaWxhYmxlJywgbWVzc2FnZTogJ1JlY2VpcHQgc2VydmVyIHVuYXZhaWxhYmxlJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDZdOiB7XG4gICAgICBlcnJvcjogZmFsc2UsXG4gICAgICBpZDogJ3BheW1lbnRfc3Vic2NyaXB0aW9uX2V4cGlyZWQnLFxuICAgICAgbWVzc2FnZTogJ1JlY2VpcHQgdmFsaWQgYnV0IHN1YiBleHBpcmVkJyxcbiAgICAgIHZhbGlkOiB0cnVlXG4gICAgfSxcbiAgICAvKipcbiAgICAgKiBzcGVjaWFsIGNhc2UgZm9yIGFwcCByZXZpZXcgaGFuZGxpbmcgLSBmb3J3YXJkIGFueSByZXF1ZXN0IHRoYXQgaXMgaW50ZW5kZWQgZm9yIHRoZSBTYW5kYm94IGJ1dCB3YXMgc2VudCB0b1xuICAgICAqIFByb2R1Y3Rpb24sIHRoaXMgaXMgd2hhdCB0aGUgYXBwIHJldmlldyB0ZWFtIGRvZXNcbiAgICAgKi9cbiAgICBbMjEwMDddOiB7XG4gICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlcnZlcicsXG4gICAgICBtZXNzYWdlOiAnU2FuZGJveCByZWNlaXB0IHNlbnQgdG8gUHJvZHVjdGlvbiBlbnZpcm9ubWVudCcsXG4gICAgICByZWRpcmVjdDogdHJ1ZSxcbiAgICAgIHZhbGlkOiBmYWxzZVxuICAgIH0sXG4gICAgWzIxMDA4XToge1xuICAgICAgZXJyb3I6IHRydWUsXG4gICAgICBpZDogJ3BheW1lbnRfaW52YWxpZF9zZXJ2ZXInLFxuICAgICAgbWVzc2FnZTogJ1Byb2R1Y3Rpb24gcmVjZWlwdCBzZW50IHRvIFNhbmRib3ggZW52aXJvbm1lbnQnLFxuICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBjb2Rlc1tzdGF0dXNDb2RlXSB8fCB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBpb3NTdWJzY3JpcHRpb25VcGRhdGUgPSAoXG4gIGRhdGFiYXNlOiBEYXRhYmFzZSxcbiAgc3Vic2NyaXB0aW9uVXBkYXRlOiBQYXltZW50SU9TU3Vic2NyaXB0aW9uVXBkYXRlXG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnaW9zU3Vic2NyaXB0aW9uVXBkYXRlJztcbiAgY29uc3Qge1xuICAgIGF1dG9fcmVuZXdfYWRhbV9pZDogcGxhbklkLFxuICAgIGNhbmNlbGxhdGlvbl9kYXRlOiBjYW5jZWxEYXRlLFxuICAgIG5vdGlmaWNhdGlvbl90eXBlOiBzdGF0dXMsXG4gICAgbGF0ZXN0X3JlY2VpcHQ6IGxhdGVzdFJlY2VpcHQsXG4gICAgbGF0ZXN0X3JlY2VpcHRfaW5mbzogbGF0ZXN0SW5mbyxcbiAgICBsYXRlc3RfZXhwaXJlZF9yZWNlaXB0OiBleHBpcmVkUmVjZWlwdCxcbiAgICBsYXRlc3RfZXhwaXJlZF9yZWNlaXB0X2luZm86IGV4cGlyZWRJbmZvLFxuICAgIG9yaWdpbmFsX3RyYW5zYWN0aW9uX2lkOiB0cmFuc2FjdGlvbklkXG4gIH0gPSBzdWJzY3JpcHRpb25VcGRhdGU7XG4gIGNvbnN0IGZvcm1hdFN0YXR1czogc3RyaW5nID0gKHN0YXR1cyB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCByZWNlaXB0SW5mbzogUGF5bWVudElPU1N1YnNjcmlwdGlvbkluZm9bXSA9IGxhdGVzdEluZm8gfHwgZXhwaXJlZEluZm87XG4gIGNvbnN0IGlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBwYXltZW50LSR7dHJhbnNhY3Rpb25JZH1gKTtcblxuICBjb25zdCB1cGRhdGU6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgY2FuY2VsRGF0ZSxcbiAgICBpc1ZhbGlkOiByZWNlaXB0SW5mb1swXS5leHBpcmVzX2RhdGVfbXMgPiBub3csXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBwbGFuSWQsXG4gICAgcmVjZWlwdDogbGF0ZXN0UmVjZWlwdCB8fCBleHBpcmVkUmVjZWlwdCxcbiAgICBzdGF0dXM6IGZvcm1hdFN0YXR1c1xuICB9O1xuICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgLi4udXBkYXRlLFxuICAgIF9rZXk6IGlkLFxuICAgIGFkZGVkOiBub3csXG4gICAgdHlwZTogJ2lvc19wYXltZW50J1xuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dHJhbnNhY3Rpb25JZDogJHt0cmFuc2FjdGlvbklkfX1cbiAgICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgICBVUERBVEUgJHt1cGRhdGV9IElOIHN1YnNjcmlwdGlvbnNcbiAgICAgTElNSVQgMWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiBudWxsKVxuICAgIC5jYXRjaCgoZGJFcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBkYkVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG4vLyBleHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoXG4vLyAgIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4vLyAgIGFwcCxcbi8vICAgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uXG4vLyApOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbi8vICAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkSW9zSW5BcHAnO1xuLy8gICBjb25zdCB7aXNQcm9kdWN0aW9uLCByZWNlaXB0fSA9IHN1YnNjcmlwdGlvbjtcbi8vICAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4vLyAgIGNvbnN0IHByb2R1Y3Rpb25Ib3N0OiBzdHJpbmcgPSAnYnV5Lml0dW5lcy5hcHBsZS5jb20nO1xuLy8gICBjb25zdCBzYW5kYm94SG9zdDogc3RyaW5nID0gJ3NhbmRib3guaXR1bmVzLmFwcGxlLmNvbSc7XG4vLyAgIGNvbnN0IGVuZHBvaW50OiBzdHJpbmcgPSBpc1Byb2R1Y3Rpb24gPyBwcm9kdWN0aW9uSG9zdCA6IHNhbmRib3hIb3N0O1xuLy8gICBjb25zdCB2ZXJpZnlVcmw6IHN0cmluZyA9IGBodHRwczovLyR7ZW5kcG9pbnR9L3ZlcmlmeVJlY2VpcHRgO1xuLy8gICBjb25zdCBwYXlsb2FkOiBvYmplY3QgPSB7XG4vLyAgICAgcGFzc3dvcmQ6IGFwcC5pYXAsXG4vLyAgICAgJ3JlY2VpcHQtZGF0YSc6IGRlY29kZVVSSUNvbXBvbmVudChyZWNlaXB0KVxuLy8gICB9O1xuLy8gICBjb25zdCBvcHRpb25zOiBvYmplY3QgPSB7XG4vLyAgICAgaGVhZGVyczoge1xuLy8gICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4vLyAgICAgfVxuLy8gICB9O1xuXG4vLyAgIHJldHVybiBwb3N0KHZlcmlmeVVybCwgcGF5bG9hZCwgb3B0aW9ucylcbi8vICAgICAudGhlbigocmVzdWx0cykgPT4ge1xuLy8gICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UocmVzdWx0cyk7XG4vLyAgICAgICBjb25zdCB7XG4vLyAgICAgICAgIGxhdGVzdF9yZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuLy8gICAgICAgICBsYXRlc3RfcmVjZWlwdF9pbmZvOiBsYXRlc3RJbmZvLFxuLy8gICAgICAgICBzdGF0dXNcbi8vICAgICAgIH0gPSBqc29uO1xuXG4vLyAgICAgICBjb25zdCB7XG4vLyAgICAgICAgIGlzX3RyaWFsX3BlcmlvZDogdHJpYWxQZXJpb2QsXG4vLyAgICAgICAgIG9yaWdpbmFsX3B1cmNoYXNlX2RhdGVfbXM6IGFkZGVkLFxuLy8gICAgICAgICBleHBpcmVzX2RhdGU6IGV4cGlyZXMsXG4vLyAgICAgICAgIHByb2R1Y3RfaWQ6IHBsYW5JZCxcbi8vICAgICAgICAgdHJhbnNhY3Rpb25faWQ6IHRyYW5zYWN0aW9uSWRcbi8vICAgICAgIH0gPSBsYXRlc3RJbmZvO1xuXG4vLyAgICAgICBpZihzdGF0dXMgPT09IDAgfHwgc3RhdHVzID09PSAyMTAwNikge1xuLy8gICAgICAgICBjb25zdCBpZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcGF5bWVudC0ke3RyYW5zYWN0aW9uSWR9YCk7XG4vLyAgICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbi8vICAgICAgICAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuLy8gICAgICAgICAgIGV4cGlyZXMsXG4vLyAgICAgICAgICAgaXNUcmlhbDogdHJpYWxQZXJpb2QgPT09ICd0cnVlJyxcbi8vICAgICAgICAgICBpc1ZhbGlkOiBleHBpcmVzID4gbm93LFxuLy8gICAgICAgICAgIG1vZGlmaWVkOiBub3csXG4vLyAgICAgICAgICAgcGxhbklkLFxuLy8gICAgICAgICAgIHJlY2VpcHQ6IGxhdGVzdFJlY2VpcHQsXG4vLyAgICAgICAgICAgdHJhbnNhY3Rpb25JZCxcbi8vICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuLy8gICAgICAgICB9O1xuLy8gICAgICAgICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4vLyAgICAgICAgICAgLi4udXBkYXRlLFxuLy8gICAgICAgICAgIF9rZXk6IGlkLFxuLy8gICAgICAgICAgIGFkZGVkLFxuLy8gICAgICAgICAgIHR5cGU6ICdpb3NfcGF5bWVudCdcbi8vICAgICAgICAgfTtcblxuLy8gICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dHJhbnNhY3Rpb25JZDogJHt0cmFuc2FjdGlvbklkfX1cbi8vICAgICAgICAgICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuLy8gICAgICAgICAgICAgICBVUERBVEUgJHt1cGRhdGV9IElOIHN1YnNjcmlwdGlvbnNcbi8vICAgICAgICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbi8vICAgICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbi8vICAgICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuLy8gICAgICAgICAgIC50aGVuKCh1cGRhdGVkU3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHVwZGF0ZWRTdWJzY3JpcHRpb24pXG4vLyAgICAgICAgICAgLmNhdGNoKChkYkVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuLy8gICAgICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4vLyAgICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuLy8gICAgICAgICAgIH0sIGRiRXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAvLyBFcnJvcnNcbi8vICAgICAgIGNvbnN0IGVycm9yOiBQYXltZW50SU9TSW5BcHBFcnJvciA9IGdldElvc0luQXBwRXJyb3IocmVzdWx0cy5zdGF0dXMpO1xuXG4vLyAgICAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbi8vICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbi8vICAgICAgICAgbGFiZWw6ICdwYXltZW50X2Vycm9yJyxcbi8vICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbi8vICAgICAgICAgdmFsdWU6IGVycm9yLmlkXG4vLyAgICAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuLy8gICAgIH0pO1xuLy8gfTtcblxuZXhwb3J0IGNvbnN0IGdldElvc1N1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc1N1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBzIElOIHN1YnNjcmlwdGlvbnNcbiAgICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke3Nlc3Npb25JZH0gJiYgcy50eXBlID09IFwiaW9zX3BheW1lbnRcIlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCwgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qge2FkZGVkID0gbm93LCBwbGFuSWQsIHJlY2VpcHQsIHRyYW5zYWN0aW9uSWQsIHRyaWFsRW5kfSA9IHN1YnNjcmlwdGlvbjtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHN1YnNjcmlwdGlvbi0ke3RyYW5zYWN0aW9uSWR9YCk7XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICBfa2V5OiBzdWJzY3JpcHRpb25JZCxcbiAgICBhZGRlZCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIHBsYW5JZCxcbiAgICByZWNlaXB0LFxuICAgIHRyYW5zYWN0aW9uSWQsXG4gICAgdHJpYWxFbmQsXG4gICAgdHlwZTogJ2lvc19zdWJzY3JpcHRpb24nLFxuICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBzdWJzY3JpcHRpb25zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXBkYXRlZFN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbikgPT4gdXBkYXRlZFN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NJbkFwcCA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHMgSU4gc3Vic2NyaXB0aW9uXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMudHlwZSA9PSBcImlvc1wiXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gc2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUF5QjtBQUN6QixzQkFBNEI7QUFVNUIsbUJBQXlCO0FBQ3pCLDRCQUF1QjtBQUV2QixNQUFNLGdCQUF3QjtBQUV2QixNQUFNLG1CQUFtQixDQUFDLGVBQTZDO0FBQzVF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
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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW9zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUhhc2h9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvYXFsJztcblxuaW1wb3J0IHtcbiAgQXBpQ29udGV4dCxcbiAgUGF5bWVudElPU0luQXBwRXJyb3IsXG4gIFBheW1lbnRJT1NTdWJzY3JpcHRpb25JbmZvLFxuICBQYXltZW50SU9TU3Vic2NyaXB0aW9uVXBkYXRlLFxuICBQYXltZW50U3Vic2NyaXB0aW9uXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnaW9zJztcblxuZXhwb3J0IGNvbnN0IGdldElvc0luQXBwRXJyb3IgPSAoc3RhdHVzQ29kZTogc3RyaW5nKTogUGF5bWVudElPU0luQXBwRXJyb3IgPT4ge1xuICBjb25zdCBjb2RlcyA9IHtcbiAgICBbMF06IHtlcnJvcjogZmFsc2UsIG1lc3NhZ2U6ICdBY3RpdmUnLCB2YWxpZDogdHJ1ZX0sXG4gICAgWzIxMDAwXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfcmVjZWlwdF91bnJlYWRhYmxlJywgbWVzc2FnZTogJ0FwcCBzdG9yZSBjb3VsZCBub3QgcmVhZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDAyXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfZGF0YV9tYWxmb3JtZWQnLCBtZXNzYWdlOiAnRGF0YSB3YXMgbWFsZm9ybWVkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDNdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9yZWNlaXB0X3VuYXV0aG9yaXplZCcsIG1lc3NhZ2U6ICdSZWNlaXB0IG5vdCBhdXRoZW50aWNhdGVkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDRdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlY3JldCcsIG1lc3NhZ2U6ICdTaGFyZWQgc2VjcmV0IGRvZXMgbm90IG1hdGNoJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDVdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9zZXJ2ZXJfdW5hdmFpbGFibGUnLCBtZXNzYWdlOiAnUmVjZWlwdCBzZXJ2ZXIgdW5hdmFpbGFibGUnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwNl06IHtcbiAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgIGlkOiAncGF5bWVudF9zdWJzY3JpcHRpb25fZXhwaXJlZCcsXG4gICAgICBtZXNzYWdlOiAnUmVjZWlwdCB2YWxpZCBidXQgc3ViIGV4cGlyZWQnLFxuICAgICAgdmFsaWQ6IHRydWVcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIHNwZWNpYWwgY2FzZSBmb3IgYXBwIHJldmlldyBoYW5kbGluZyAtIGZvcndhcmQgYW55IHJlcXVlc3QgdGhhdCBpcyBpbnRlbmRlZCBmb3IgdGhlIFNhbmRib3ggYnV0IHdhcyBzZW50IHRvXG4gICAgICogUHJvZHVjdGlvbiwgdGhpcyBpcyB3aGF0IHRoZSBhcHAgcmV2aWV3IHRlYW0gZG9lc1xuICAgICAqL1xuICAgIFsyMTAwN106IHtcbiAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgaWQ6ICdwYXltZW50X2ludmFsaWRfc2VydmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTYW5kYm94IHJlY2VpcHQgc2VudCB0byBQcm9kdWN0aW9uIGVudmlyb25tZW50JyxcbiAgICAgIHJlZGlyZWN0OiB0cnVlLFxuICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgfSxcbiAgICBbMjEwMDhdOiB7XG4gICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlcnZlcicsXG4gICAgICBtZXNzYWdlOiAnUHJvZHVjdGlvbiByZWNlaXB0IHNlbnQgdG8gU2FuZGJveCBlbnZpcm9ubWVudCcsXG4gICAgICB2YWxpZDogZmFsc2VcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGNvZGVzW3N0YXR1c0NvZGVdIHx8IHt9O1xufTtcblxuZXhwb3J0IGNvbnN0IGlvc1N1YnNjcmlwdGlvblVwZGF0ZSA9IChcbiAgZGF0YWJhc2VOYW1lOiBzdHJpbmcsXG4gIHN1YnNjcmlwdGlvblVwZGF0ZTogUGF5bWVudElPU1N1YnNjcmlwdGlvblVwZGF0ZVxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2lvc1N1YnNjcmlwdGlvblVwZGF0ZSc7XG4gIGNvbnN0IHtcbiAgICBhdXRvX3JlbmV3X2FkYW1faWQ6IHBsYW5JZCxcbiAgICBjYW5jZWxsYXRpb25fZGF0ZTogY2FuY2VsRGF0ZSxcbiAgICBub3RpZmljYXRpb25fdHlwZTogc3RhdHVzLFxuICAgIGxhdGVzdF9yZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuICAgIGxhdGVzdF9yZWNlaXB0X2luZm86IGxhdGVzdEluZm8sXG4gICAgbGF0ZXN0X2V4cGlyZWRfcmVjZWlwdDogZXhwaXJlZFJlY2VpcHQsXG4gICAgbGF0ZXN0X2V4cGlyZWRfcmVjZWlwdF9pbmZvOiBleHBpcmVkSW5mbyxcbiAgICBvcmlnaW5hbF90cmFuc2FjdGlvbl9pZDogdHJhbnNhY3Rpb25JZFxuICB9ID0gc3Vic2NyaXB0aW9uVXBkYXRlO1xuICBjb25zdCBmb3JtYXRTdGF0dXM6IHN0cmluZyA9IChzdGF0dXMgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgcmVjZWlwdEluZm86IFBheW1lbnRJT1NTdWJzY3JpcHRpb25JbmZvW10gPSBsYXRlc3RJbmZvIHx8IGV4cGlyZWRJbmZvO1xuICBjb25zdCBpZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcGF5bWVudC0ke3RyYW5zYWN0aW9uSWR9YCk7XG5cbiAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIGNhbmNlbERhdGUsXG4gICAgaXNWYWxpZDogcmVjZWlwdEluZm9bMF0uZXhwaXJlc19kYXRlX21zID4gbm93LFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgcGxhbklkLFxuICAgIHJlY2VpcHQ6IGxhdGVzdFJlY2VpcHQgfHwgZXhwaXJlZFJlY2VpcHQsXG4gICAgc3RhdHVzOiBmb3JtYXRTdGF0dXNcbiAgfTtcbiAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfa2V5OiBpZCxcbiAgICBhZGRlZDogbm93LFxuICAgIHR5cGU6ICdpb3NfcGF5bWVudCdcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3RyYW5zYWN0aW9uSWQ6ICR7dHJhbnNhY3Rpb25JZH19XG4gICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgVVBEQVRFICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zXG4gICAgIExJTUlUIDFgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoKSA9PiBudWxsKVxuICAgIC5jYXRjaCgoZGJFcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBkYkVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG4vLyBleHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoXG4vLyAgIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4vLyAgIGFwcCxcbi8vICAgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uXG4vLyApOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbi8vICAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkSW9zSW5BcHAnO1xuLy8gICBjb25zdCB7aXNQcm9kdWN0aW9uLCByZWNlaXB0fSA9IHN1YnNjcmlwdGlvbjtcbi8vICAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuXG4vLyAgIGNvbnN0IHByb2R1Y3Rpb25Ib3N0OiBzdHJpbmcgPSAnYnV5Lml0dW5lcy5hcHBsZS5jb20nO1xuLy8gICBjb25zdCBzYW5kYm94SG9zdDogc3RyaW5nID0gJ3NhbmRib3guaXR1bmVzLmFwcGxlLmNvbSc7XG4vLyAgIGNvbnN0IGVuZHBvaW50OiBzdHJpbmcgPSBpc1Byb2R1Y3Rpb24gPyBwcm9kdWN0aW9uSG9zdCA6IHNhbmRib3hIb3N0O1xuLy8gICBjb25zdCB2ZXJpZnlVcmw6IHN0cmluZyA9IGBodHRwczovLyR7ZW5kcG9pbnR9L3ZlcmlmeVJlY2VpcHRgO1xuLy8gICBjb25zdCBwYXlsb2FkOiBvYmplY3QgPSB7XG4vLyAgICAgcGFzc3dvcmQ6IGFwcC5pYXAsXG4vLyAgICAgJ3JlY2VpcHQtZGF0YSc6IGRlY29kZVVSSUNvbXBvbmVudChyZWNlaXB0KVxuLy8gICB9O1xuLy8gICBjb25zdCBvcHRpb25zOiBvYmplY3QgPSB7XG4vLyAgICAgaGVhZGVyczoge1xuLy8gICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnXG4vLyAgICAgfVxuLy8gICB9O1xuXG4vLyAgIHJldHVybiBwb3N0KHZlcmlmeVVybCwgcGF5bG9hZCwgb3B0aW9ucylcbi8vICAgICAudGhlbigocmVzdWx0cykgPT4ge1xuLy8gICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UocmVzdWx0cyk7XG4vLyAgICAgICBjb25zdCB7XG4vLyAgICAgICAgIGxhdGVzdF9yZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuLy8gICAgICAgICBsYXRlc3RfcmVjZWlwdF9pbmZvOiBsYXRlc3RJbmZvLFxuLy8gICAgICAgICBzdGF0dXNcbi8vICAgICAgIH0gPSBqc29uO1xuXG4vLyAgICAgICBjb25zdCB7XG4vLyAgICAgICAgIGlzX3RyaWFsX3BlcmlvZDogdHJpYWxQZXJpb2QsXG4vLyAgICAgICAgIG9yaWdpbmFsX3B1cmNoYXNlX2RhdGVfbXM6IGFkZGVkLFxuLy8gICAgICAgICBleHBpcmVzX2RhdGU6IGV4cGlyZXMsXG4vLyAgICAgICAgIHByb2R1Y3RfaWQ6IHBsYW5JZCxcbi8vICAgICAgICAgdHJhbnNhY3Rpb25faWQ6IHRyYW5zYWN0aW9uSWRcbi8vICAgICAgIH0gPSBsYXRlc3RJbmZvO1xuXG4vLyAgICAgICBpZihzdGF0dXMgPT09IDAgfHwgc3RhdHVzID09PSAyMTAwNikge1xuLy8gICAgICAgICBjb25zdCBpZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcGF5bWVudC0ke3RyYW5zYWN0aW9uSWR9YCk7XG4vLyAgICAgICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbi8vICAgICAgICAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuLy8gICAgICAgICAgIGV4cGlyZXMsXG4vLyAgICAgICAgICAgaXNUcmlhbDogdHJpYWxQZXJpb2QgPT09ICd0cnVlJyxcbi8vICAgICAgICAgICBpc1ZhbGlkOiBleHBpcmVzID4gbm93LFxuLy8gICAgICAgICAgIG1vZGlmaWVkOiBub3csXG4vLyAgICAgICAgICAgcGxhbklkLFxuLy8gICAgICAgICAgIHJlY2VpcHQ6IGxhdGVzdFJlY2VpcHQsXG4vLyAgICAgICAgICAgdHJhbnNhY3Rpb25JZCxcbi8vICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuLy8gICAgICAgICB9O1xuLy8gICAgICAgICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4vLyAgICAgICAgICAgLi4udXBkYXRlLFxuLy8gICAgICAgICAgIF9rZXk6IGlkLFxuLy8gICAgICAgICAgIGFkZGVkLFxuLy8gICAgICAgICAgIHR5cGU6ICdpb3NfcGF5bWVudCdcbi8vICAgICAgICAgfTtcblxuLy8gICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7dHJhbnNhY3Rpb25JZDogJHt0cmFuc2FjdGlvbklkfX1cbi8vICAgICAgICAgICAgICAgSU5TRVJUICR7aW5zZXJ0fVxuLy8gICAgICAgICAgICAgICBVUERBVEUgJHt1cGRhdGV9IElOIHN1YnNjcmlwdGlvbnNcbi8vICAgICAgICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbi8vICAgICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbi8vICAgICAgICAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuLy8gICAgICAgICAgIC50aGVuKCh1cGRhdGVkU3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHVwZGF0ZWRTdWJzY3JpcHRpb24pXG4vLyAgICAgICAgICAgLmNhdGNoKChkYkVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuLy8gICAgICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4vLyAgICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuLy8gICAgICAgICAgIH0sIGRiRXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAvLyBFcnJvcnNcbi8vICAgICAgIGNvbnN0IGVycm9yOiBQYXltZW50SU9TSW5BcHBFcnJvciA9IGdldElvc0luQXBwRXJyb3IocmVzdWx0cy5zdGF0dXMpO1xuXG4vLyAgICAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbi8vICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbi8vICAgICAgICAgbGFiZWw6ICdwYXltZW50X2Vycm9yJyxcbi8vICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbi8vICAgICAgICAgdmFsdWU6IGVycm9yLmlkXG4vLyAgICAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuLy8gICAgIH0pO1xuLy8gfTtcblxuZXhwb3J0IGNvbnN0IGdldElvc1N1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc1N1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgcyBJTiBzdWJzY3JpcHRpb25zXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMudHlwZSA9PSBcImlvc19wYXltZW50XCJcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiBzYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCwgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHthZGRlZCA9IG5vdywgcGxhbklkLCByZWNlaXB0LCB0cmFuc2FjdGlvbklkLCB0cmlhbEVuZH0gPSBzdWJzY3JpcHRpb247XG4gIGNvbnN0IHN1YnNjcmlwdGlvbklkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBzdWJzY3JpcHRpb24tJHt0cmFuc2FjdGlvbklkfWApO1xuICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgX2tleTogc3Vic2NyaXB0aW9uSWQsXG4gICAgYWRkZWQsXG4gICAgbW9kaWZpZWQ6IG5vdyxcbiAgICBwbGFuSWQsXG4gICAgcmVjZWlwdCxcbiAgICB0cmFuc2FjdGlvbklkLFxuICAgIHRyaWFsRW5kLFxuICAgIHR5cGU6ICdpb3Nfc3Vic2NyaXB0aW9uJyxcbiAgICB1c2VySWQ6IHNlc3Npb25JZFxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYElOU0VSVCAke2luc2VydH0gSU4gc3Vic2NyaXB0aW9ucyBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXBkYXRlZFN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbikgPT4gdXBkYXRlZFN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NJbkFwcCA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBzIElOIHN1YnNjcmlwdGlvblxuICAgICAgRklMVEVSIHMudXNlcklkID09ICR7c2Vzc2lvbklkfSAmJiBzLnR5cGUgPT0gXCJpb3NcIlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFRLGNBQUFBLE1BQWlCLGVBQ3pCLE9BQVEsT0FBQUMsTUFBVSxXQVVsQixPQUFRLGNBQUFDLE1BQWlCLHVCQUN6QixPQUFRLFNBQUFD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ICJsb2dFcnJvciIsICJldmVudENhdGVnb3J5IiwgImdldElvc0luQXBwRXJyb3IiLCAic3RhdHVzQ29kZSIsICJpb3NTdWJzY3JpcHRpb25VcGRhdGUiLCAiZGF0YWJhc2VOYW1lIiwgInN1YnNjcmlwdGlvblVwZGF0ZSIsICJhY3Rpb24iLCAicGxhbklkIiwgImNhbmNlbERhdGUiLCAic3RhdHVzIiwgImxhdGVzdFJlY2VpcHQiLCAibGF0ZXN0SW5mbyIsICJleHBpcmVkUmVjZWlwdCIsICJleHBpcmVkSW5mbyIsICJ0cmFuc2FjdGlvbklkIiwgImZvcm1hdFN0YXR1cyIsICJub3ciLCAicmVjZWlwdEluZm8iLCAiaWQiLCAidXBkYXRlIiwgImluc2VydCIsICJhcWxRcnkiLCAiZGJFcnJvciIsICJnZXRJb3NTdWJzY3JpcHRpb24iLCAiY29udGV4dCIsICJzZXNzaW9uSWQiLCAiY3Vyc29yIiwgInN1YnNjcmlwdGlvbiIsICJlcnJvciIsICJhZGRJb3NJbkFwcCIsICJhZGRlZCIsICJyZWNlaXB0IiwgInRyaWFsRW5kIiwgInVwZGF0ZWRTdWJzY3JpcHRpb24iLCAiZ2V0SW9zSW5BcHAiXQp9Cg==
@@ -1,122 +1,7 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var locations_exports = {};
19
- __export(locations_exports, {
20
- addLocation: () => addLocation,
21
- getFieldVal: () => getFieldVal,
22
- getLocation: () => getLocation
23
- });
24
- module.exports = __toCommonJS(locations_exports);
25
- var import_rip_hunter = require("@nlabs/rip-hunter");
26
- var import_utils = require("@nlabs/utils");
27
- var import_arangojs = require("arangojs");
28
- var import_config = require("../config");
29
- var import_error = require("../types/error.types");
30
- var import_analyticsUtils = require("../utils/analyticsUtils");
31
- const eventCategory = "locations";
32
- const getFieldVal = (addressComponents, name) => {
33
- const { short_name: shortName = "" } = addressComponents.find((addressField) => {
34
- const types = addressField.types || [];
35
- return types.findIndex((fieldType) => fieldType === name) >= 0;
36
- }) || {};
37
- return shortName;
38
- };
39
- const addLocation = (context, location) => {
40
- const action = "add";
41
- const { database, session: { userId: sessionId } } = context;
42
- const { address, itemId, itemType } = location;
43
- const geocodeUrl = import_config.Config.get("google.geocode.url");
44
- const params = {
45
- address,
46
- key: import_config.Config.get("google.geocode.key")
47
- };
48
- const url = `${geocodeUrl}?${(0, import_rip_hunter.queryString)(params)}`;
49
- return (0, import_rip_hunter.get)(url).then((json) => {
50
- const { results = [], status = "" } = json;
51
- if (status === "OK" && results.length) {
52
- const geodata = results[0];
53
- const addressComponents = geodata?.address_components || [];
54
- const streetNumber = getFieldVal(addressComponents, "street_number");
55
- const route = getFieldVal(addressComponents, "route");
56
- const now = Date.now();
57
- const formatItemType = (0, import_utils.parseChar)(itemType).toLowerCase();
58
- const formatItemId = (0, import_utils.parseId)(itemId);
59
- const googleId = geodata?.place_id || "";
60
- const update = {};
61
- const insert = {
62
- _key: (0, import_utils.createHash)(`post-${sessionId}`),
63
- added: now,
64
- city: getFieldVal(addressComponents, "locality"),
65
- country: getFieldVal(addressComponents, "country"),
66
- formatted: geodata?.formatted_address,
67
- googleId,
68
- latitude: geodata?.geometry.location.lat,
69
- longitude: geodata?.geometry.location.lng,
70
- state: getFieldVal(addressComponents, "administrative_area_level_1"),
71
- street: [streetNumber, route].filter((obj) => obj).join(" "),
72
- zip: getFieldVal(addressComponents, "postal_code")
73
- };
74
- const aqlQry = import_arangojs.aql`UPSERT {googleId: ${googleId}}
75
- INSERT ${insert}
76
- UPDATE ${update}
77
- IN locations RETURN NEW`;
78
- return database.query(aqlQry).then((cursor) => cursor.next()).then((updatedLocation) => {
79
- let itemDocId;
80
- const { _key: updatedLocationKey } = updatedLocation;
81
- switch (formatItemType) {
82
- case "posts":
83
- itemDocId = `posts/${formatItemId}`;
84
- break;
85
- default:
86
- itemDocId = "";
87
- }
88
- if (itemDocId) {
89
- const edgeCollection = database.collection("hasLocation");
90
- const locationId = updatedLocationKey;
91
- const locationDocId = `locations/${locationId}`;
92
- const edgeId = (0, import_utils.createHash)(`hasLocation-${locationId}-${sessionId}`);
93
- const edge = { _from: itemDocId, _key: edgeId, _to: locationDocId };
94
- return edgeCollection.save(edge, { returnNew: true }).then(() => updatedLocation);
95
- }
96
- return updatedLocation;
97
- }).catch((error) => (0, import_analyticsUtils.logError)({
98
- action,
99
- category: eventCategory,
100
- label: import_error.ErrorTypes.DATABASE_ERROR
101
- }, error, context).then(() => null));
102
- }
103
- return null;
104
- });
105
- };
106
- const getLocation = (context, locationId) => {
107
- const { database } = context;
108
- const formatId = (0, import_utils.parseId)(locationId);
109
- const aqlQry = import_arangojs.aql`FOR l IN locations
110
- FILTER l._key == ${formatId}
111
- RETURN l`;
112
- return database.query(aqlQry).then((cursor) => cursor.next()).catch((error) => {
113
- throw error;
114
- });
115
- };
116
- // Annotate the CommonJS export names for ESM import in node:
117
- 0 && (module.exports = {
118
- addLocation,
119
- getFieldVal,
120
- getLocation
121
- });
122
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbG9jYXRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXQgYXMgaHR0cEdldCwgcXVlcnlTdHJpbmd9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHtHb29nbGVNYXBzQWRkcmVzc1R5cGUsIEdvb2dsZU1hcHNSZXN1bHRUeXBlfSBmcm9tICcuLi90eXBlcy9nb29nbGUudHlwZXMnO1xuaW1wb3J0IHtMb2NhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL2xvY2F0aW9ucy50eXBlcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscyc7XG5cbmltcG9ydCB0eXBlIHtFZGdlVHlwZX0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMnO1xuaW1wb3J0IHR5cGUge0VkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcy9jb2xsZWN0aW9ucyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdsb2NhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGRWYWwgPSAoYWRkcmVzc0NvbXBvbmVudHM6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZVtdLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7c2hvcnRfbmFtZTogc2hvcnROYW1lID0gJyd9ID0gYWRkcmVzc0NvbXBvbmVudHMuZmluZCgoYWRkcmVzc0ZpZWxkOiBHb29nbGVNYXBzQWRkcmVzc1R5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlcyA9IGFkZHJlc3NGaWVsZC50eXBlcyB8fCBbXTtcbiAgICByZXR1cm4gdHlwZXMuZmluZEluZGV4KChmaWVsZFR5cGU6IHN0cmluZykgPT4gZmllbGRUeXBlID09PSBuYW1lKSA+PSAwO1xuICB9KSB8fCB7fTtcblxuICByZXR1cm4gc2hvcnROYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGQnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge2FkZHJlc3MsIGl0ZW1JZCwgaXRlbVR5cGV9ID0gbG9jYXRpb247XG4gIGNvbnN0IGdlb2NvZGVVcmw6IHN0cmluZyA9IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLnVybCcpO1xuICBjb25zdCBwYXJhbXM6IG9iamVjdCA9IHtcbiAgICBhZGRyZXNzLFxuICAgIGtleTogQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUua2V5JylcbiAgfTtcbiAgY29uc3QgdXJsOiBzdHJpbmcgPSBgJHtnZW9jb2RlVXJsfT8ke3F1ZXJ5U3RyaW5nKHBhcmFtcyl9YDtcblxuICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgIGNvbnN0IHtyZXN1bHRzID0gW10sIHN0YXR1cyA9ICcnfSA9IGpzb247XG5cbiAgICAgIGlmKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBnZW9kYXRhOiBHb29nbGVNYXBzUmVzdWx0VHlwZSA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnRzOiBHb29nbGVNYXBzQWRkcmVzc1R5cGVbXSA9IGdlb2RhdGE/LmFkZHJlc3NfY29tcG9uZW50cyB8fCBbXTtcblxuICAgICAgICAvLyBTdHJlZXRcbiAgICAgICAgY29uc3Qgc3RyZWV0TnVtYmVyOiBzdHJpbmcgPSBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3N0cmVldF9udW1iZXInKTtcbiAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAncm91dGUnKTtcblxuICAgICAgICAvLyBMb2NhdGlvblxuICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gSXRlbVxuICAgICAgICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlSWQ6IHN0cmluZyA9IGdlb2RhdGE/LnBsYWNlX2lkIHx8ICcnO1xuICAgICAgICBjb25zdCB1cGRhdGU6IExvY2F0aW9uVHlwZSA9IHt9O1xuICAgICAgICBjb25zdCBpbnNlcnQ6IExvY2F0aW9uVHlwZSA9IHtcbiAgICAgICAgICBfa2V5OiBjcmVhdGVIYXNoKGBwb3N0LSR7c2Vzc2lvbklkfWApLFxuICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgY2l0eTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdsb2NhbGl0eScpLFxuICAgICAgICAgIGNvdW50cnk6IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAnY291bnRyeScpLFxuICAgICAgICAgIGZvcm1hdHRlZDogZ2VvZGF0YT8uZm9ybWF0dGVkX2FkZHJlc3MsXG4gICAgICAgICAgZ29vZ2xlSWQsXG4gICAgICAgICAgbGF0aXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxhdCxcbiAgICAgICAgICBsb25naXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxuZyxcbiAgICAgICAgICBzdGF0ZTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEnKSxcbiAgICAgICAgICBzdHJlZXQ6IFtzdHJlZXROdW1iZXIsIHJvdXRlXS5maWx0ZXIoKG9iaikgPT4gb2JqKS5qb2luKCcgJyksXG4gICAgICAgICAgemlwOiBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3Bvc3RhbF9jb2RlJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2dvb2dsZUlkOiAke2dvb2dsZUlkfX1cbiAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICAgIElOIGxvY2F0aW9ucyBSRVRVUk4gTkVXYDtcblxuICAgICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgICAgLnRoZW4oKHVwZGF0ZWRMb2NhdGlvbjogTG9jYXRpb25UeXBlKSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbURvY0lkOiBzdHJpbmc7XG4gICAgICAgICAgICBjb25zdCB7X2tleTogdXBkYXRlZExvY2F0aW9uS2V5fSA9IHVwZGF0ZWRMb2NhdGlvbjtcblxuICAgICAgICAgICAgc3dpdGNoKGZvcm1hdEl0ZW1UeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3Bvc3RzJzpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSBgcG9zdHMvJHtmb3JtYXRJdGVtSWR9YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpdGVtRG9jSWQgPSAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSB2YWxpZCBpdGVtIGRvYyBpZCwgY3JlYXRlIGFuIGVkZ2VcbiAgICAgICAgICAgIGlmKGl0ZW1Eb2NJZCkge1xuICAgICAgICAgICAgICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSBkYXRhYmFzZS5jb2xsZWN0aW9uKCdoYXNMb2NhdGlvbicpO1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbklkOiBzdHJpbmcgPSB1cGRhdGVkTG9jYXRpb25LZXk7XG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uRG9jSWQ6IHN0cmluZyA9IGBsb2NhdGlvbnMvJHtsb2NhdGlvbklkfWA7XG4gICAgICAgICAgICAgIGNvbnN0IGVkZ2VJZCA9IGNyZWF0ZUhhc2goYGhhc0xvY2F0aW9uLSR7bG9jYXRpb25JZH0tJHtzZXNzaW9uSWR9YCk7XG4gICAgICAgICAgICAgIGNvbnN0IGVkZ2U6IEVkZ2VUeXBlID0ge19mcm9tOiBpdGVtRG9jSWQsIF9rZXk6IGVkZ2VJZCwgX3RvOiBsb2NhdGlvbkRvY0lkfTtcblxuICAgICAgICAgICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCB7cmV0dXJuTmV3OiB0cnVlfSkudGhlbigoKSA9PiB1cGRhdGVkTG9jYXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UganVzdCByZXR1cm4gdGhlIG5ldyBsb2NhdGlvblxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZWRMb2NhdGlvbjtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgICAgICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMb2NhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsb2NhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobG9jYXRpb25JZCk7XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgbCBJTiBsb2NhdGlvbnNcbiAgICBGSUxURVIgbC5fa2V5ID09ICR7Zm9ybWF0SWR9XG4gICAgUkVUVVJOIGxgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLHdCQUEwQztBQUMxQyxtQkFBNkM7QUFDN0Msc0JBQWtCO0FBR2xCLG9CQUFxQjtBQUVyQixtQkFBeUI7QUFHekIsNEJBQXVCO0FBS3ZCLE1BQU0sZ0JBQXdCO0FBRXZCLE1BQU0sY0FBYyxDQUFDLG1CQUE0QyxTQUF5QjtBQUMvRixRQUFNLEVBQUMsWUFBWSxZQUFZLEdBQUUsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLGlCQUF3QztBQUNuRyxVQUFNLFFBQVEsYUFBYSxTQUFTLENBQUM7QUFDckMsV0FBTyxNQUFNLFVBQVUsQ0FBQyxjQUFzQixjQUFjLElBQUksS0FBSztBQUFBLEVBQ3ZFLENBQUMsS0FBSyxDQUFDO0FBRVAsU0FBTztBQUNUO0FBRU8sTUFBTSxjQUFjLENBQUMsU0FBcUIsYUFBa0Q7QUFDakcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLEVBQUMsU0FBUyxRQUFRLFNBQVEsSUFBSTtBQUNwQyxRQUFNLGFBQXFCLHFCQUFPLElBQUksb0JBQW9CO0FBQzFELFFBQU0sU0FBaUI7QUFBQSxJQUNyQjtBQUFBLElBQ0EsS0FBSyxxQkFBTyxJQUFJLG9CQUFvQjtBQUFBLEVBQ3RDO0FBQ0EsUUFBTSxNQUFjLEdBQUcsVUFBVSxRQUFJLCtCQUFZLE1BQU0sQ0FBQztBQUV4RCxhQUFPLGtCQUFBQSxLQUFRLEdBQUcsRUFDZixLQUFLLENBQUMsU0FBUztBQUNkLFVBQU0sRUFBQyxVQUFVLENBQUMsR0FBRyxTQUFTLEdBQUUsSUFBSTtBQUVwQyxRQUFHLFdBQVcsUUFBUSxRQUFRLFFBQVE7QUFDcEMsWUFBTSxVQUFnQyxRQUFRLENBQUM7QUFDL0MsWUFBTSxvQkFBNkMsU0FBUyxzQkFBc0IsQ0FBQztBQUduRixZQUFNLGVBQXVCLFlBQVksbUJBQW1CLGVBQWU7QUFDM0UsWUFBTSxRQUFnQixZQUFZLG1CQUFtQixPQUFPO0FBRzVELFlBQU0sTUFBYyxLQUFLLElBQUk7QUFHN0IsWUFBTSxxQkFBeUIsd0JBQVUsUUFBUSxFQUFFLFlBQVk7QUFDL0QsWUFBTSxtQkFBdUIsc0JBQVEsTUFBTTtBQUMzQyxZQUFNLFdBQW1CLFNBQVMsWUFBWTtBQUM5QyxZQUFNLFNBQXVCLENBQUM7QUFDOUIsWUFBTSxTQUF1QjtBQUFBLFFBQzNCLFVBQU0seUJBQVcsUUFBUSxTQUFTLEVBQUU7QUFBQSxRQUNwQyxPQUFPO0FBQUEsUUFDUCxNQUFNLFlBQVksbUJBQW1CLFVBQVU7QUFBQSxRQUMvQyxTQUFTLFlBQVksbUJBQW1CLFNBQVM7QUFBQSxRQUNqRCxXQUFXLFNBQVM7QUFBQSxRQUNwQjtBQUFBLFFBQ0EsVUFBVSxTQUFTLFNBQVMsU0FBUztBQUFBLFFBQ3JDLFdBQVcsU0FBUyxTQUFTLFNBQVM7QUFBQSxRQUN0QyxPQUFPLFlBQVksbUJBQW1CLDZCQUE2QjtBQUFBLFFBQ25FLFFBQVEsQ0FBQyxjQUFjLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsS0FBSyxHQUFHO0FBQUEsUUFDM0QsS0FBSyxZQUFZLG1CQUFtQixhQUFhO0FBQUEsTUFDbkQ7QUFDQSxZQUFNLFNBQW1CLHdDQUF3QixRQUFRO0FBQUEscUJBQzVDLE1BQU07QUFBQSxxQkFDTixNQUFNO0FBQUE7QUFHbkIsYUFBTyxTQUFTLE1BQU0sTUFBTSxFQUN6QixLQUFLLENBQUMsV0FBVyxPQUFPLEtBQUssQ0FBQyxFQUM5QixLQUFLLENBQUMsb0JBQWtDO0FBQ3ZDLFlBQUk7QUFDSixjQUFNLEVBQUMsTUFBTSxtQkFBa0IsSUFBSTtBQUVuQyxnQkFBTyxnQkFBZ0I7QUFBQSxVQUNyQixLQUFLO0FBQ0gsd0JBQVksU0FBUyxZQUFZO0FBQ2pDO0FBQUEsVUFDRjtBQUNFLHdCQUFZO0FBQUEsUUFDaEI7QUFHQSxZQUFHLFdBQVc7QUFDWixnQkFBTSxpQkFBaUMsU0FBUyxXQUFXLGFBQWE7QUFDeEUsZ0JBQU0sYUFBcUI7QUFDM0IsZ0JBQU0sZ0JBQXdCLGFBQWEsVUFBVTtBQUNyRCxnQkFBTSxhQUFTLHlCQUFXLGVBQWUsVUFBVSxJQUFJLFNBQVMsRUFBRTtBQUNsRSxnQkFBTSxPQUFpQixFQUFDLE9BQU8sV0FBVyxNQUFNLFFBQVEsS0FBSyxjQUFhO0FBRTFFLGlCQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxLQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sZUFBZTtBQUFBLFFBQ2hGO0FBR0EsZUFBTztBQUFBLE1BQ1QsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxjQUFpQixnQ0FBUztBQUFBLFFBQ2hDO0FBQUEsUUFDQSxVQUFVO0FBQUEsUUFDVixPQUFPLHdCQUFXO0FBQUEsTUFDcEIsR0FBRyxPQUFPLE9BQU8sRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDO0FBQUEsSUFDdkM7QUFFQSxXQUFPO0FBQUEsRUFDVCxDQUFDO0FBQ0w7QUFFTyxNQUFNLGNBQWMsQ0FBQyxTQUFxQixlQUE4QztBQUM3RixRQUFNLEVBQUMsU0FBUSxJQUFJO0FBQ25CLFFBQU0sZUFBbUIsc0JBQVEsVUFBVTtBQUUzQyxRQUFNLFNBQW1CO0FBQUEsdUJBQ0osUUFBUTtBQUFBO0FBRzdCLFNBQU8sU0FBUyxNQUFNLE1BQU0sRUFDekIsS0FBSyxDQUFDLFdBQVcsT0FBTyxLQUFLLENBQUMsRUFDOUIsTUFBTSxDQUFDLFVBQWlCO0FBQ3ZCLFVBQU07QUFBQSxFQUNSLENBQUM7QUFDTDsiLAogICJuYW1lcyI6IFsiaHR0cEdldCJdCn0K
1
+ import{get as P,queryString as S}from"@nlabs/rip-hunter";import{createHash as u,parseChar as j,parseId as T}from"@nlabs/utils";import{aql as I}from"arangojs";import{Config as f}from"../config";import{ErrorTypes as F}from"../types/error.types";import{logError as O}from"../utils/analyticsUtils";import{useDb as d}from"../utils/arangodbUtils";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=`${_}?${S(A)}`;return P(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=j(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}`),v={_from:p,_key:U,_to:Q};return M.save(v,{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,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbG9jYXRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXQgYXMgaHR0cEdldCwgcXVlcnlTdHJpbmd9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzJztcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSAnLi4vdHlwZXMvZXJyb3IudHlwZXMnO1xuaW1wb3J0IHtHb29nbGVNYXBzQWRkcmVzc1R5cGUsIEdvb2dsZU1hcHNSZXN1bHRUeXBlfSBmcm9tICcuLi90eXBlcy9nb29nbGUudHlwZXMnO1xuaW1wb3J0IHtMb2NhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL2xvY2F0aW9ucy50eXBlcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi91dGlscy9hcmFuZ29kYlV0aWxzJztcblxuaW1wb3J0IHR5cGUge0VkZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcyc7XG5pbXBvcnQgdHlwZSB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb25zJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2xvY2F0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBnZXRGaWVsZFZhbCA9IChhZGRyZXNzQ29tcG9uZW50czogR29vZ2xlTWFwc0FkZHJlc3NUeXBlW10sIG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtzaG9ydF9uYW1lOiBzaG9ydE5hbWUgPSAnJ30gPSBhZGRyZXNzQ29tcG9uZW50cy5maW5kKChhZGRyZXNzRmllbGQ6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZSkgPT4ge1xuICAgIGNvbnN0IHR5cGVzID0gYWRkcmVzc0ZpZWxkLnR5cGVzIHx8IFtdO1xuICAgIHJldHVybiB0eXBlcy5maW5kSW5kZXgoKGZpZWxkVHlwZTogc3RyaW5nKSA9PiBmaWVsZFR5cGUgPT09IG5hbWUpID49IDA7XG4gIH0pIHx8IHt9O1xuXG4gIHJldHVybiBzaG9ydE5hbWU7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkTG9jYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYXRpb246IExvY2F0aW9uVHlwZSk6IFByb21pc2U8TG9jYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZCc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge2FkZHJlc3MsIGl0ZW1JZCwgaXRlbVR5cGV9ID0gbG9jYXRpb247XG4gIGNvbnN0IGdlb2NvZGVVcmw6IHN0cmluZyA9IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLnVybCcpO1xuICBjb25zdCBwYXJhbXM6IG9iamVjdCA9IHtcbiAgICBhZGRyZXNzLFxuICAgIGtleTogQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUua2V5JylcbiAgfTtcbiAgY29uc3QgdXJsOiBzdHJpbmcgPSBgJHtnZW9jb2RlVXJsfT8ke3F1ZXJ5U3RyaW5nKHBhcmFtcyl9YDtcblxuICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgIGNvbnN0IHtyZXN1bHRzID0gW10sIHN0YXR1cyA9ICcnfSA9IGpzb247XG5cbiAgICAgIGlmKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBnZW9kYXRhOiBHb29nbGVNYXBzUmVzdWx0VHlwZSA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnRzOiBHb29nbGVNYXBzQWRkcmVzc1R5cGVbXSA9IGdlb2RhdGE/LmFkZHJlc3NfY29tcG9uZW50cyB8fCBbXTtcblxuICAgICAgICAvLyBTdHJlZXRcbiAgICAgICAgY29uc3Qgc3RyZWV0TnVtYmVyOiBzdHJpbmcgPSBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3N0cmVldF9udW1iZXInKTtcbiAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAncm91dGUnKTtcblxuICAgICAgICAvLyBMb2NhdGlvblxuICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gSXRlbVxuICAgICAgICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlSWQ6IHN0cmluZyA9IGdlb2RhdGE/LnBsYWNlX2lkIHx8ICcnO1xuICAgICAgICBjb25zdCB1cGRhdGU6IExvY2F0aW9uVHlwZSA9IHt9O1xuICAgICAgICBjb25zdCBpbnNlcnQ6IExvY2F0aW9uVHlwZSA9IHtcbiAgICAgICAgICBfa2V5OiBjcmVhdGVIYXNoKGBwb3N0LSR7c2Vzc2lvbklkfWApLFxuICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgY2l0eTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdsb2NhbGl0eScpLFxuICAgICAgICAgIGNvdW50cnk6IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAnY291bnRyeScpLFxuICAgICAgICAgIGZvcm1hdHRlZDogZ2VvZGF0YT8uZm9ybWF0dGVkX2FkZHJlc3MsXG4gICAgICAgICAgZ29vZ2xlSWQsXG4gICAgICAgICAgbGF0aXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxhdCxcbiAgICAgICAgICBsb25naXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxuZyxcbiAgICAgICAgICBzdGF0ZTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEnKSxcbiAgICAgICAgICBzdHJlZXQ6IFtzdHJlZXROdW1iZXIsIHJvdXRlXS5maWx0ZXIoKG9iaikgPT4gb2JqKS5qb2luKCcgJyksXG4gICAgICAgICAgemlwOiBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3Bvc3RhbF9jb2RlJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2dvb2dsZUlkOiAke2dvb2dsZUlkfX1cbiAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICAgIElOIGxvY2F0aW9ucyBSRVRVUk4gTkVXYDtcblxuICAgICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2VOYW1lKS5xdWVyeShhcWxRcnkpXG4gICAgICAgICAgLnRoZW4oKGN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgICAudGhlbigodXBkYXRlZExvY2F0aW9uOiBMb2NhdGlvblR5cGUpID0+IHtcbiAgICAgICAgICAgIGxldCBpdGVtRG9jSWQ6IHN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IHtfa2V5OiB1cGRhdGVkTG9jYXRpb25LZXl9ID0gdXBkYXRlZExvY2F0aW9uO1xuXG4gICAgICAgICAgICBzd2l0Y2goZm9ybWF0SXRlbVR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAncG9zdHMnOlxuICAgICAgICAgICAgICAgIGl0ZW1Eb2NJZCA9IGBwb3N0cy8ke2Zvcm1hdEl0ZW1JZH1gO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGl0ZW1Eb2NJZCA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHZhbGlkIGl0ZW0gZG9jIGlkLCBjcmVhdGUgYW4gZWRnZVxuICAgICAgICAgICAgaWYoaXRlbURvY0lkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVkZ2VDb2xsZWN0aW9uOiBFZGdlQ29sbGVjdGlvbiA9IHVzZURiKGRhdGFiYXNlTmFtZSkuY29sbGVjdGlvbignaGFzTG9jYXRpb24nKTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25JZDogc3RyaW5nID0gdXBkYXRlZExvY2F0aW9uS2V5O1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbkRvY0lkOiBzdHJpbmcgPSBgbG9jYXRpb25zLyR7bG9jYXRpb25JZH1gO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGBoYXNMb2NhdGlvbi0ke2xvY2F0aW9uSWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlOiBFZGdlVHlwZSA9IHtfZnJvbTogaXRlbURvY0lkLCBfa2V5OiBlZGdlSWQsIF90bzogbG9jYXRpb25Eb2NJZH07XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLnNhdmUoZWRnZSwge3JldHVybk5ldzogdHJ1ZX0pLnRoZW4oKCkgPT4gdXBkYXRlZExvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGp1c3QgcmV0dXJuIHRoZSBuZXcgbG9jYXRpb25cbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkTG9jYXRpb247XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUlxuICAgICAgICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TG9jYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxMb2NhdGlvblR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChsb2NhdGlvbklkKTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBsIElOIGxvY2F0aW9uc1xuICAgIEZJTFRFUiBsLl9rZXkgPT0gJHtmb3JtYXRJZH1cbiAgICBSRVRVUk4gbGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUlBLE9BQVEsT0FBT0EsRUFBUyxlQUFBQyxNQUFrQixvQkFDMUMsT0FBUSxjQUFBQyxFQUFZLGFBQUFDLEVBQVcsV0FBQUMsTUFBYyxlQUM3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QUFlLEtBQUtJLEVBQU0sQ0FBQyxVQUFXLEVBQUksQ0FBQyxFQUFFLEtBQUssSUFBTVAsQ0FBZSxDQUNoRixDQUdBLE9BQU9BLENBQ1QsQ0FBQyxFQUNBLE1BQU9RLEdBQWlCM0MsRUFBUyxDQUNoQyxhQUNBLFNBQVVFLEVBQ1YsTUFBT0gsRUFBVyxjQUNwQixFQUFHNEMsRUFBT2pDLENBQU8sRUFBRSxLQUFLLElBQU0sSUFBSSxDQUFDLENBQ3ZDLENBRUEsT0FBTyxJQUNULENBQUMsQ0FDTCxFQUVha0MsRUFBYyxDQUFDbEMsRUFBcUI2QixJQUE4QyxDQUM3RixLQUFNLENBQUMsYUFBQTNCLENBQVksRUFBSUYsRUFDakJtQyxFQUFtQmpELEVBQVEyQyxDQUFVLEVBRXJDTixFQUFtQnBDO0FBQUEsdUJBQ0pnRCxDQUFRO0FBQUEsY0FHN0IsT0FBTzVDLEVBQU1XLENBQVksRUFBRSxNQUFNcUIsQ0FBTSxFQUNwQyxLQUFNQyxHQUFXQSxFQUFPLEtBQUssQ0FBQyxFQUM5QixNQUFPUyxHQUFpQixDQUN2QixNQUFNQSxDQUNSLENBQUMsQ0FDTCIsCiAgIm5hbWVzIjogWyJodHRwR2V0IiwgInF1ZXJ5U3RyaW5nIiwgImNyZWF0ZUhhc2giLCAicGFyc2VDaGFyIiwgInBhcnNlSWQiLCAiYXFsIiwgIkNvbmZpZyIsICJFcnJvclR5cGVzIiwgImxvZ0Vycm9yIiwgInVzZURiIiwgImV2ZW50Q2F0ZWdvcnkiLCAiZ2V0RmllbGRWYWwiLCAiYWRkcmVzc0NvbXBvbmVudHMiLCAibmFtZSIsICJzaG9ydE5hbWUiLCAiYWRkcmVzc0ZpZWxkIiwgImZpZWxkVHlwZSIsICJhZGRMb2NhdGlvbiIsICJjb250ZXh0IiwgImxvY2F0aW9uIiwgImRhdGFiYXNlTmFtZSIsICJzZXNzaW9uSWQiLCAiYWRkcmVzcyIsICJpdGVtSWQiLCAiaXRlbVR5cGUiLCAiZ2VvY29kZVVybCIsICJwYXJhbXMiLCAidXJsIiwgImpzb24iLCAicmVzdWx0cyIsICJzdGF0dXMiLCAiZ2VvZGF0YSIsICJzdHJlZXROdW1iZXIiLCAicm91dGUiLCAibm93IiwgImZvcm1hdEl0ZW1UeXBlIiwgImZvcm1hdEl0ZW1JZCIsICJnb29nbGVJZCIsICJ1cGRhdGUiLCAiaW5zZXJ0IiwgIm9iaiIsICJhcWxRcnkiLCAiY3Vyc29yIiwgInVwZGF0ZWRMb2NhdGlvbiIsICJpdGVtRG9jSWQiLCAidXBkYXRlZExvY2F0aW9uS2V5IiwgImVkZ2VDb2xsZWN0aW9uIiwgImxvY2F0aW9uSWQiLCAibG9jYXRpb25Eb2NJZCIsICJlZGdlSWQiLCAiZWRnZSIsICJlcnJvciIsICJnZXRMb2NhdGlvbiIsICJmb3JtYXRJZCJdCn0K