@nlabs/reaktor 0.8.0 → 0.9.0

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 (198) hide show
  1. package/.eslintrc +10 -0
  2. package/.prettierrc.js +4 -0
  3. package/README.md +1 -1
  4. package/coverage/actions/groups.ts.html +1039 -0
  5. package/coverage/actions/images.ts.html +2500 -0
  6. package/coverage/actions/index.html +131 -0
  7. package/coverage/actions/tags.ts.html +1000 -0
  8. package/coverage/adapters/arangoAdapter.ts.html +151 -0
  9. package/coverage/adapters/index.html +146 -0
  10. package/coverage/adapters/reaktorAdapter.ts.html +127 -0
  11. package/coverage/adapters/tagAdapter.ts.html +160 -0
  12. package/coverage/base.css +224 -0
  13. package/coverage/block-navigation.js +87 -0
  14. package/coverage/clover.xml +6 -0
  15. package/coverage/coverage-final.json +1 -0
  16. package/coverage/favicon.png +0 -0
  17. package/coverage/index.html +176 -0
  18. package/coverage/lcov-report/base.css +224 -0
  19. package/coverage/lcov-report/block-navigation.js +87 -0
  20. package/coverage/lcov-report/favicon.png +0 -0
  21. package/coverage/lcov-report/index.html +101 -0
  22. package/coverage/lcov-report/prettify.css +1 -0
  23. package/coverage/lcov-report/prettify.js +2 -0
  24. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  25. package/coverage/lcov-report/sorter.js +196 -0
  26. package/coverage/lcov.info +0 -0
  27. package/coverage/mocks/file.ts.html +118 -0
  28. package/coverage/mocks/group.ts.html +145 -0
  29. package/coverage/mocks/image.ts.html +136 -0
  30. package/coverage/mocks/index.html +146 -0
  31. package/coverage/mocks/post.ts.html +169 -0
  32. package/coverage/mocks/tag.ts.html +121 -0
  33. package/coverage/mocks/user.ts.html +268 -0
  34. package/coverage/prettify.css +1 -0
  35. package/coverage/prettify.js +2 -0
  36. package/coverage/sort-arrow-sprite.png +0 -0
  37. package/coverage/sorter.js +196 -0
  38. package/coverage/types/error.ts.html +145 -0
  39. package/coverage/types/index.html +116 -0
  40. package/coverage/utils/adapterUtils.ts.html +151 -0
  41. package/coverage/utils/analyticsUtils.ts.html +292 -0
  42. package/coverage/utils/arangodbUtils.ts.html +463 -0
  43. package/coverage/utils/index.html +146 -0
  44. package/jest.setup.js +0 -0
  45. package/jpg:- +0 -0
  46. package/lib/actions/apps.d.ts +25 -0
  47. package/lib/actions/apps.js +252 -0
  48. package/lib/actions/conversations.d.ts +14 -0
  49. package/lib/actions/conversations.js +131 -126
  50. package/lib/actions/dynamodb.d.ts +8 -0
  51. package/lib/actions/dynamodb.js +35 -32
  52. package/lib/actions/email.d.ts +5 -0
  53. package/lib/actions/email.js +23 -53
  54. package/lib/actions/files.d.ts +19 -0
  55. package/lib/actions/files.js +188 -202
  56. package/lib/actions/groups.d.ts +14 -0
  57. package/lib/actions/groups.js +38 -36
  58. package/lib/actions/images.d.ts +26 -0
  59. package/lib/actions/images.js +236 -229
  60. package/lib/actions/index.d.ts +21 -0
  61. package/lib/actions/index.js +3 -1
  62. package/lib/actions/ios.d.ts +7 -0
  63. package/lib/actions/ios.js +11 -10
  64. package/lib/actions/locations.d.ts +5 -0
  65. package/lib/actions/locations.js +29 -37
  66. package/lib/actions/messages.d.ts +13 -0
  67. package/lib/actions/messages.js +10 -10
  68. package/lib/actions/notifications.d.ts +5 -0
  69. package/lib/actions/notifications.js +1 -1
  70. package/lib/actions/payments.d.ts +10 -0
  71. package/lib/actions/payments.js +27 -26
  72. package/lib/actions/posts.d.ts +19 -0
  73. package/lib/actions/posts.js +176 -156
  74. package/lib/actions/reactions.d.ts +30 -0
  75. package/lib/actions/reactions.js +30 -28
  76. package/lib/actions/s3.d.ts +7 -0
  77. package/lib/actions/s3.js +37 -32
  78. package/lib/actions/search.d.ts +3 -0
  79. package/lib/actions/search.js +11 -9
  80. package/lib/actions/sms.d.ts +3 -0
  81. package/lib/actions/sms.js +58 -34
  82. package/lib/actions/statistics.d.ts +3 -0
  83. package/lib/actions/statistics.js +21 -18
  84. package/lib/actions/subscription.d.ts +7 -0
  85. package/lib/actions/subscription.js +24 -21
  86. package/lib/actions/tags.d.ts +29 -0
  87. package/lib/actions/tags.js +129 -198
  88. package/lib/actions/users.d.ts +47 -0
  89. package/lib/actions/users.js +188 -194
  90. package/lib/actions/websockets.d.ts +19 -0
  91. package/lib/actions/websockets.js +60 -34
  92. package/lib/adapters/arangoAdapter.d.ts +2 -0
  93. package/lib/adapters/arangoAdapter.js +46 -0
  94. package/lib/adapters/fileAdapter.d.ts +3 -0
  95. package/lib/adapters/fileAdapter.js +76 -0
  96. package/lib/adapters/postAdapter.d.ts +2 -0
  97. package/lib/adapters/postAdapter.js +70 -0
  98. package/lib/adapters/reaktorAdapter.d.ts +6 -0
  99. package/lib/adapters/reaktorAdapter.js +44 -0
  100. package/lib/adapters/tagAdapter.d.ts +2 -0
  101. package/lib/adapters/tagAdapter.js +50 -0
  102. package/lib/adapters/userAdapter.d.ts +2 -0
  103. package/lib/adapters/userAdapter.js +110 -0
  104. package/lib/config.d.ts +20 -0
  105. package/lib/config.js +14 -15
  106. package/lib/index.d.ts +5 -0
  107. package/lib/lambdas/actions/websockets.d.ts +6 -0
  108. package/lib/lambdas/actions/websockets.js +7 -7
  109. package/lib/lambdas/authorizer.d.ts +20 -0
  110. package/lib/lambdas/authorizer.js +1 -1
  111. package/lib/lambdas/connection.d.ts +12 -0
  112. package/lib/lambdas/connection.js +5 -4
  113. package/lib/lambdas/utils/message.d.ts +1 -0
  114. package/lib/lambdas/utils/websocket.d.ts +7 -0
  115. package/lib/lambdas/utils/websocket.js +8 -6
  116. package/lib/mocks/conversation.d.ts +8 -0
  117. package/lib/mocks/conversation.js +35 -0
  118. package/lib/mocks/file.d.ts +11 -0
  119. package/lib/mocks/file.js +38 -0
  120. package/lib/mocks/group.d.ts +17 -0
  121. package/lib/mocks/group.js +47 -0
  122. package/lib/mocks/image.d.ts +3 -0
  123. package/lib/mocks/image.js +43 -0
  124. package/lib/mocks/nlabs.png +0 -0
  125. package/lib/mocks/post.d.ts +38 -0
  126. package/lib/mocks/post.js +55 -0
  127. package/lib/mocks/tag.d.ts +2 -0
  128. package/lib/mocks/tag.js +37 -0
  129. package/lib/mocks/user.d.ts +4 -0
  130. package/lib/mocks/user.js +88 -0
  131. package/lib/templates/email/layout.d.ts +2 -0
  132. package/lib/templates/email/passwordForgot.d.ts +2 -0
  133. package/lib/templates/email/passwordRecovery.d.ts +2 -0
  134. package/lib/templates/email/verifyEmail.d.ts +2 -0
  135. package/lib/templates/email/welcome.d.ts +2 -0
  136. package/lib/templates/sms/passwordForgot.d.ts +2 -0
  137. package/lib/templates/sms/passwordRecovery.d.ts +2 -0
  138. package/lib/templates/sms/verifyEmail.d.ts +2 -0
  139. package/lib/templates/sms/verifyPhone.d.ts +2 -0
  140. package/lib/templates/sms/welcome.d.ts +2 -0
  141. package/lib/types/apps.d.ts +46 -0
  142. package/lib/types/apps.js +17 -1
  143. package/lib/types/arangodb.d.ts +30 -0
  144. package/lib/types/arangodb.js +1 -1
  145. package/lib/types/auth.d.ts +7 -0
  146. package/lib/types/auth.js +1 -1
  147. package/lib/types/connections.d.ts +7 -0
  148. package/lib/types/connections.js +1 -1
  149. package/lib/types/conversations.d.ts +29 -0
  150. package/lib/types/conversations.js +1 -1
  151. package/lib/types/email.d.ts +13 -0
  152. package/lib/types/email.js +1 -1
  153. package/lib/types/error.d.ts +20 -0
  154. package/lib/types/error.js +44 -0
  155. package/lib/types/files.d.ts +26 -0
  156. package/lib/types/files.js +1 -1
  157. package/lib/types/google.d.ts +29 -0
  158. package/lib/types/google.js +1 -1
  159. package/lib/types/groups.d.ts +21 -0
  160. package/lib/types/groups.js +1 -1
  161. package/lib/types/images.d.ts +51 -0
  162. package/lib/types/images.js +1 -1
  163. package/lib/types/index.d.ts +18 -0
  164. package/lib/types/locations.d.ts +20 -0
  165. package/lib/types/locations.js +1 -1
  166. package/lib/types/messages.d.ts +16 -0
  167. package/lib/types/messages.js +1 -1
  168. package/lib/types/notifications.d.ts +17 -0
  169. package/lib/types/notifications.js +1 -1
  170. package/lib/types/payments.d.ts +112 -0
  171. package/lib/types/payments.js +1 -1
  172. package/lib/types/posts.d.ts +31 -0
  173. package/lib/types/posts.js +1 -1
  174. package/lib/types/statistics.d.ts +3 -0
  175. package/lib/types/statistics.js +1 -1
  176. package/lib/types/tags.d.ts +10 -0
  177. package/lib/types/tags.js +1 -1
  178. package/lib/types/users.d.ts +76 -0
  179. package/lib/types/users.js +1 -1
  180. package/lib/types/websocket.d.ts +13 -0
  181. package/lib/types/websocket.js +1 -1
  182. package/lib/utils/adapterUtils.d.ts +1 -0
  183. package/lib/utils/adapterUtils.js +45 -0
  184. package/lib/utils/analyticsUtils.d.ts +21 -0
  185. package/lib/utils/analyticsUtils.js +72 -0
  186. package/lib/utils/arangodbUtils.d.ts +65 -0
  187. package/lib/utils/arangodbUtils.js +144 -0
  188. package/lib/utils/auth.d.ts +20 -0
  189. package/lib/utils/auth.js +13 -30
  190. package/lib/utils/index.d.ts +5 -0
  191. package/lib/utils/index.js +7 -9
  192. package/lib/utils/session.d.ts +16 -0
  193. package/lib/utils/session.js +11 -2
  194. package/package.json +12 -5
  195. package/lib/utils/analytics.js +0 -88
  196. package/lib/utils/arangodb.js +0 -118
  197. package/lib/utils/graphql.js +0 -46
  198. package/lib/utils/objects.js +0 -59
@@ -0,0 +1,21 @@
1
+ export * from './apps';
2
+ export * from './conversations';
3
+ export * from './dynamodb';
4
+ export * from './email';
5
+ export * from './files';
6
+ export * from './groups';
7
+ export * from './images';
8
+ export * from './ios';
9
+ export * from './locations';
10
+ export * from './messages';
11
+ export * from './notifications';
12
+ export * from './payments';
13
+ export * from './posts';
14
+ export * from './reactions';
15
+ export * from './s3';
16
+ export * from './search';
17
+ export * from './sms';
18
+ export * from './subscription';
19
+ export * from './tags';
20
+ export * from './users';
21
+ export * from './websockets';
@@ -14,6 +14,7 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var actions_exports = {};
16
16
  module.exports = __toCommonJS(actions_exports);
17
+ __reExport(actions_exports, require("./apps"), module.exports);
17
18
  __reExport(actions_exports, require("./conversations"), module.exports);
18
19
  __reExport(actions_exports, require("./dynamodb"), module.exports);
19
20
  __reExport(actions_exports, require("./email"), module.exports);
@@ -36,6 +37,7 @@ __reExport(actions_exports, require("./users"), module.exports);
36
37
  __reExport(actions_exports, require("./websockets"), module.exports);
37
38
  // Annotate the CommonJS export names for ESM import in node:
38
39
  0 && (module.exports = {
40
+ ...require("./apps"),
39
41
  ...require("./conversations"),
40
42
  ...require("./dynamodb"),
41
43
  ...require("./email"),
@@ -57,4 +59,4 @@ __reExport(actions_exports, require("./websockets"), module.exports);
57
59
  ...require("./users"),
58
60
  ...require("./websockets")
59
61
  });
60
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9keW5hbW9kYic7XG5leHBvcnQgKiBmcm9tICcuL2VtYWlsJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncm91cHMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pb3MnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXNzYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXltZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vczMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9zbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi90YWdzJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi93ZWJzb2NrZXRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUlBLDRCQUFjLDRCQUpkO0FBS0EsNEJBQWMsdUJBTGQ7QUFNQSw0QkFBYyxvQkFOZDtBQU9BLDRCQUFjLG9CQVBkO0FBUUEsNEJBQWMscUJBUmQ7QUFTQSw0QkFBYyxxQkFUZDtBQVVBLDRCQUFjLGtCQVZkO0FBV0EsNEJBQWMsd0JBWGQ7QUFZQSw0QkFBYyx1QkFaZDtBQWFBLDRCQUFjLDRCQWJkO0FBY0EsNEJBQWMsdUJBZGQ7QUFlQSw0QkFBYyxvQkFmZDtBQWdCQSw0QkFBYyx3QkFoQmQ7QUFpQkEsNEJBQWMsaUJBakJkO0FBa0JBLDRCQUFjLHFCQWxCZDtBQW1CQSw0QkFBYyxrQkFuQmQ7QUFvQkEsNEJBQWMsMkJBcEJkO0FBcUJBLDRCQUFjLG1CQXJCZDtBQXNCQSw0QkFBYyxvQkF0QmQ7QUF1QkEsNEJBQWMseUJBdkJkOyIsCiAgIm5hbWVzIjogW10KfQo=
62
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2FwcHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJzYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1vZGInO1xuZXhwb3J0ICogZnJvbSAnLi9lbWFpbCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXBzJztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vaW9zJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcGF5bWVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3N0cyc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWN0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3MzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoJztcbmV4cG9ydCAqIGZyb20gJy4vc21zJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdGFncyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic29ja2V0cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFJQSw0QkFBYyxtQkFKZDtBQUtBLDRCQUFjLDRCQUxkO0FBTUEsNEJBQWMsdUJBTmQ7QUFPQSw0QkFBYyxvQkFQZDtBQVFBLDRCQUFjLG9CQVJkO0FBU0EsNEJBQWMscUJBVGQ7QUFVQSw0QkFBYyxxQkFWZDtBQVdBLDRCQUFjLGtCQVhkO0FBWUEsNEJBQWMsd0JBWmQ7QUFhQSw0QkFBYyx1QkFiZDtBQWNBLDRCQUFjLDRCQWRkO0FBZUEsNEJBQWMsdUJBZmQ7QUFnQkEsNEJBQWMsb0JBaEJkO0FBaUJBLDRCQUFjLHdCQWpCZDtBQWtCQSw0QkFBYyxpQkFsQmQ7QUFtQkEsNEJBQWMscUJBbkJkO0FBb0JBLDRCQUFjLGtCQXBCZDtBQXFCQSw0QkFBYywyQkFyQmQ7QUFzQkEsNEJBQWMsbUJBdEJkO0FBdUJBLDRCQUFjLG9CQXZCZDtBQXdCQSw0QkFBYyx5QkF4QmQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,7 @@
1
+ import { Database } from 'arangojs';
2
+ import { ApiContext, PaymentIOSInAppError, PaymentIOSSubscriptionUpdate, PaymentSubscription } from '../types';
3
+ export declare const getIosInAppError: (statusCode: string) => PaymentIOSInAppError;
4
+ export declare const iosSubscriptionUpdate: (database: Database, subscriptionUpdate: PaymentIOSSubscriptionUpdate) => Promise<void>;
5
+ export declare const getIosSubscription: (context: ApiContext) => Promise<PaymentSubscription>;
6
+ export declare const addIosInApp: (context: ApiContext, subscription: PaymentSubscription) => Promise<PaymentSubscription>;
7
+ export declare const getIosInApp: (context: ApiContext) => Promise<PaymentSubscription>;
@@ -26,7 +26,8 @@ __export(ios_exports, {
26
26
  module.exports = __toCommonJS(ios_exports);
27
27
  var import_utils = require("@nlabs/utils");
28
28
  var import_arangojs = require("arangojs");
29
- var import_utils2 = require("../utils");
29
+ var import_analyticsUtils = require("../utils/analyticsUtils");
30
+ var import_error = require("../types/error");
30
31
  const eventCategory = "ios";
31
32
  const getIosInAppError = (statusCode) => {
32
33
  const codes = {
@@ -96,10 +97,10 @@ const iosSubscriptionUpdate = (database, subscriptionUpdate) => {
96
97
  INSERT ${insert}
97
98
  UPDATE ${update} IN subscriptions
98
99
  LIMIT 1`;
99
- return database.query(aqlQry).then(() => null).catch((dbError) => (0, import_utils2.logError)({
100
+ return database.query(aqlQry).then(() => null).catch((dbError) => (0, import_analyticsUtils.logError)({
100
101
  action,
101
102
  category: eventCategory,
102
- label: "db_error"
103
+ label: import_error.ErrorTypes.DATABASE_ERROR
103
104
  }, dbError, {}).then(() => null));
104
105
  };
105
106
  const getIosSubscription = (context) => {
@@ -109,10 +110,10 @@ const getIosSubscription = (context) => {
109
110
  FILTER s.userId == ${sessionId} && s.type == "ios_payment"
110
111
  LIMIT 1
111
112
  RETURN s`;
112
- return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription = {}) => subscription).catch((error) => (0, import_utils2.logError)({
113
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription) => subscription).catch((error) => (0, import_analyticsUtils.logError)({
113
114
  action,
114
115
  category: eventCategory,
115
- label: "db_error"
116
+ label: import_error.ErrorTypes.DATABASE_ERROR
116
117
  }, error, context).then(() => null));
117
118
  };
118
119
  const addIosInApp = (context, subscription) => {
@@ -133,10 +134,10 @@ const addIosInApp = (context, subscription) => {
133
134
  userId: sessionId
134
135
  };
135
136
  const aqlQry = import_arangojs.aql`INSERT ${insert} IN subscriptions RETURN NEW`;
136
- return database.query(aqlQry).then((cursor) => cursor.next()).then((updatedSubscription = {}) => updatedSubscription).catch((error) => (0, import_utils2.logError)({
137
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((updatedSubscription) => updatedSubscription).catch((error) => (0, import_analyticsUtils.logError)({
137
138
  action,
138
139
  category: eventCategory,
139
- label: "db_error"
140
+ label: import_error.ErrorTypes.DATABASE_ERROR
140
141
  }, error, context).then(() => null));
141
142
  };
142
143
  const getIosInApp = (context) => {
@@ -146,10 +147,10 @@ const getIosInApp = (context) => {
146
147
  FILTER s.userId == ${sessionId} && s.type == "ios"
147
148
  LIMIT 1
148
149
  RETURN s`;
149
- return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription = {}) => subscription).catch((error) => (0, import_utils2.logError)({
150
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((subscription) => subscription).catch((error) => (0, import_analyticsUtils.logError)({
150
151
  action,
151
152
  category: eventCategory,
152
- label: "db_error"
153
+ label: import_error.ErrorTypes.DATABASE_ERROR
153
154
  }, error, context).then(() => null));
154
155
  };
155
156
  // Annotate the CommonJS export names for ESM import in node:
@@ -160,4 +161,4 @@ const getIosInApp = (context) => {
160
161
  getIosSubscription,
161
162
  iosSubscriptionUpdate
162
163
  });
163
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW9zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUhhc2h9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuXG5pbXBvcnQge1xuICBBcGlDb250ZXh0LFxuICBQYXltZW50SU9TSW5BcHBFcnJvcixcbiAgUGF5bWVudElPU1N1YnNjcmlwdGlvbkluZm8sXG4gIFBheW1lbnRJT1NTdWJzY3JpcHRpb25VcGRhdGUsXG4gIFBheW1lbnRTdWJzY3JpcHRpb25cbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnaW9zJztcblxuZXhwb3J0IGNvbnN0IGdldElvc0luQXBwRXJyb3IgPSAoc3RhdHVzQ29kZTogc3RyaW5nKTogUGF5bWVudElPU0luQXBwRXJyb3IgPT4ge1xuICBjb25zdCBjb2RlcyA9IHtcbiAgICBbMF06IHtlcnJvcjogZmFsc2UsIG1lc3NhZ2U6ICdBY3RpdmUnLCB2YWxpZDogdHJ1ZX0sXG4gICAgWzIxMDAwXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfcmVjZWlwdF91bnJlYWRhYmxlJywgbWVzc2FnZTogJ0FwcCBzdG9yZSBjb3VsZCBub3QgcmVhZCcsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDAyXToge2Vycm9yOiB0cnVlLCBpZDogJ3BheW1lbnRfZGF0YV9tYWxmb3JtZWQnLCBtZXNzYWdlOiAnRGF0YSB3YXMgbWFsZm9ybWVkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDNdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9yZWNlaXB0X3VuYXV0aG9yaXplZCcsIG1lc3NhZ2U6ICdSZWNlaXB0IG5vdCBhdXRoZW50aWNhdGVkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDRdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlY3JldCcsIG1lc3NhZ2U6ICdTaGFyZWQgc2VjcmV0IGRvZXMgbm90IG1hdGNoJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDVdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9zZXJ2ZXJfdW5hdmFpbGFibGUnLCBtZXNzYWdlOiAnUmVjZWlwdCBzZXJ2ZXIgdW5hdmFpbGFibGUnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwNl06IHtcbiAgICAgIGVycm9yOiBmYWxzZSxcbiAgICAgIGlkOiAncGF5bWVudF9zdWJzY3JpcHRpb25fZXhwaXJlZCcsXG4gICAgICBtZXNzYWdlOiAnUmVjZWlwdCB2YWxpZCBidXQgc3ViIGV4cGlyZWQnLFxuICAgICAgdmFsaWQ6IHRydWVcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIHNwZWNpYWwgY2FzZSBmb3IgYXBwIHJldmlldyBoYW5kbGluZyAtIGZvcndhcmQgYW55IHJlcXVlc3QgdGhhdCBpcyBpbnRlbmRlZCBmb3IgdGhlIFNhbmRib3ggYnV0IHdhcyBzZW50IHRvXG4gICAgICogUHJvZHVjdGlvbiwgdGhpcyBpcyB3aGF0IHRoZSBhcHAgcmV2aWV3IHRlYW0gZG9lc1xuICAgICAqL1xuICAgIFsyMTAwN106IHtcbiAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgaWQ6ICdwYXltZW50X2ludmFsaWRfc2VydmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdTYW5kYm94IHJlY2VpcHQgc2VudCB0byBQcm9kdWN0aW9uIGVudmlyb25tZW50JyxcbiAgICAgIHJlZGlyZWN0OiB0cnVlLFxuICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgfSxcbiAgICBbMjEwMDhdOiB7XG4gICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgIGlkOiAncGF5bWVudF9pbnZhbGlkX3NlcnZlcicsXG4gICAgICBtZXNzYWdlOiAnUHJvZHVjdGlvbiByZWNlaXB0IHNlbnQgdG8gU2FuZGJveCBlbnZpcm9ubWVudCcsXG4gICAgICB2YWxpZDogZmFsc2VcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIGNvZGVzW3N0YXR1c0NvZGVdIHx8IHt9O1xufTtcblxuZXhwb3J0IGNvbnN0IGlvc1N1YnNjcmlwdGlvblVwZGF0ZSA9IChcbiAgZGF0YWJhc2U6IERhdGFiYXNlLFxuICBzdWJzY3JpcHRpb25VcGRhdGU6IFBheW1lbnRJT1NTdWJzY3JpcHRpb25VcGRhdGVcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdpb3NTdWJzY3JpcHRpb25VcGRhdGUnO1xuICBjb25zdCB7XG4gICAgYXV0b19yZW5ld19hZGFtX2lkOiBwbGFuSWQsXG4gICAgY2FuY2VsbGF0aW9uX2RhdGU6IGNhbmNlbERhdGUsXG4gICAgbm90aWZpY2F0aW9uX3R5cGU6IHN0YXR1cyxcbiAgICBsYXRlc3RfcmVjZWlwdDogbGF0ZXN0UmVjZWlwdCxcbiAgICBsYXRlc3RfcmVjZWlwdF9pbmZvOiBsYXRlc3RJbmZvLFxuICAgIGxhdGVzdF9leHBpcmVkX3JlY2VpcHQ6IGV4cGlyZWRSZWNlaXB0LFxuICAgIGxhdGVzdF9leHBpcmVkX3JlY2VpcHRfaW5mbzogZXhwaXJlZEluZm8sXG4gICAgb3JpZ2luYWxfdHJhbnNhY3Rpb25faWQ6IHRyYW5zYWN0aW9uSWRcbiAgfSA9IHN1YnNjcmlwdGlvblVwZGF0ZTtcbiAgY29uc3QgZm9ybWF0U3RhdHVzOiBzdHJpbmcgPSAoc3RhdHVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHJlY2VpcHRJbmZvOiBQYXltZW50SU9TU3Vic2NyaXB0aW9uSW5mb1tdID0gbGF0ZXN0SW5mbyB8fCBleHBpcmVkSW5mbztcbiAgY29uc3QgaWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHBheW1lbnQtJHt0cmFuc2FjdGlvbklkfWApO1xuXG4gIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICBjYW5jZWxEYXRlLFxuICAgIGlzVmFsaWQ6IHJlY2VpcHRJbmZvWzBdLmV4cGlyZXNfZGF0ZV9tcyA+IG5vdyxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIHBsYW5JZCxcbiAgICByZWNlaXB0OiBsYXRlc3RSZWNlaXB0IHx8IGV4cGlyZWRSZWNlaXB0LFxuICAgIHN0YXR1czogZm9ybWF0U3RhdHVzXG4gIH07XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAuLi51cGRhdGUsXG4gICAgX2tleTogaWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICB0eXBlOiAnaW9zX3BheW1lbnQnXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHt0cmFuc2FjdGlvbklkOiAke3RyYW5zYWN0aW9uSWR9fVxuICAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgIFVQREFURSAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc1xuICAgICBMSU1JVCAxYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKCgpID0+IG51bGwpXG4gICAgLmNhdGNoKChkYkVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGRiRXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbi8vIGV4cG9ydCBjb25zdCBhZGRJb3NJbkFwcCA9IChcbi8vICAgY29udGV4dDogQXBpQ29udGV4dCxcbi8vICAgYXBwLFxuLy8gICBzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb25cbi8vICk6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuLy8gICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGRJb3NJbkFwcCc7XG4vLyAgIGNvbnN0IHtpc1Byb2R1Y3Rpb24sIHJlY2VpcHR9ID0gc3Vic2NyaXB0aW9uO1xuLy8gICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbi8vICAgY29uc3QgcHJvZHVjdGlvbkhvc3Q6IHN0cmluZyA9ICdidXkuaXR1bmVzLmFwcGxlLmNvbSc7XG4vLyAgIGNvbnN0IHNhbmRib3hIb3N0OiBzdHJpbmcgPSAnc2FuZGJveC5pdHVuZXMuYXBwbGUuY29tJztcbi8vICAgY29uc3QgZW5kcG9pbnQ6IHN0cmluZyA9IGlzUHJvZHVjdGlvbiA/IHByb2R1Y3Rpb25Ib3N0IDogc2FuZGJveEhvc3Q7XG4vLyAgIGNvbnN0IHZlcmlmeVVybDogc3RyaW5nID0gYGh0dHBzOi8vJHtlbmRwb2ludH0vdmVyaWZ5UmVjZWlwdGA7XG4vLyAgIGNvbnN0IHBheWxvYWQ6IG9iamVjdCA9IHtcbi8vICAgICBwYXNzd29yZDogYXBwLmlhcCxcbi8vICAgICAncmVjZWlwdC1kYXRhJzogZGVjb2RlVVJJQ29tcG9uZW50KHJlY2VpcHQpXG4vLyAgIH07XG4vLyAgIGNvbnN0IG9wdGlvbnM6IG9iamVjdCA9IHtcbi8vICAgICBoZWFkZXJzOiB7XG4vLyAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcbi8vICAgICB9XG4vLyAgIH07XG5cbi8vICAgcmV0dXJuIHBvc3QodmVyaWZ5VXJsLCBwYXlsb2FkLCBvcHRpb25zKVxuLy8gICAgIC50aGVuKChyZXN1bHRzKSA9PiB7XG4vLyAgICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShyZXN1bHRzKTtcbi8vICAgICAgIGNvbnN0IHtcbi8vICAgICAgICAgbGF0ZXN0X3JlY2VpcHQ6IGxhdGVzdFJlY2VpcHQsXG4vLyAgICAgICAgIGxhdGVzdF9yZWNlaXB0X2luZm86IGxhdGVzdEluZm8sXG4vLyAgICAgICAgIHN0YXR1c1xuLy8gICAgICAgfSA9IGpzb247XG5cbi8vICAgICAgIGNvbnN0IHtcbi8vICAgICAgICAgaXNfdHJpYWxfcGVyaW9kOiB0cmlhbFBlcmlvZCxcbi8vICAgICAgICAgb3JpZ2luYWxfcHVyY2hhc2VfZGF0ZV9tczogYWRkZWQsXG4vLyAgICAgICAgIGV4cGlyZXNfZGF0ZTogZXhwaXJlcyxcbi8vICAgICAgICAgcHJvZHVjdF9pZDogcGxhbklkLFxuLy8gICAgICAgICB0cmFuc2FjdGlvbl9pZDogdHJhbnNhY3Rpb25JZFxuLy8gICAgICAgfSA9IGxhdGVzdEluZm87XG5cbi8vICAgICAgIGlmKHN0YXR1cyA9PT0gMCB8fCBzdGF0dXMgPT09IDIxMDA2KSB7XG4vLyAgICAgICAgIGNvbnN0IGlkOiBzdHJpbmcgPSBjcmVhdGVIYXNoKGBwYXltZW50LSR7dHJhbnNhY3Rpb25JZH1gKTtcbi8vICAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuLy8gICAgICAgICBjb25zdCB1cGRhdGU6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4vLyAgICAgICAgICAgZXhwaXJlcyxcbi8vICAgICAgICAgICBpc1RyaWFsOiB0cmlhbFBlcmlvZCA9PT0gJ3RydWUnLFxuLy8gICAgICAgICAgIGlzVmFsaWQ6IGV4cGlyZXMgPiBub3csXG4vLyAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbi8vICAgICAgICAgICBwbGFuSWQsXG4vLyAgICAgICAgICAgcmVjZWlwdDogbGF0ZXN0UmVjZWlwdCxcbi8vICAgICAgICAgICB0cmFuc2FjdGlvbklkLFxuLy8gICAgICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4vLyAgICAgICAgIH07XG4vLyAgICAgICAgIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbi8vICAgICAgICAgICAuLi51cGRhdGUsXG4vLyAgICAgICAgICAgX2tleTogaWQsXG4vLyAgICAgICAgICAgYWRkZWQsXG4vLyAgICAgICAgICAgdHlwZTogJ2lvc19wYXltZW50J1xuLy8gICAgICAgICB9O1xuXG4vLyAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHt0cmFuc2FjdGlvbklkOiAke3RyYW5zYWN0aW9uSWR9fVxuLy8gICAgICAgICAgICAgICBJTlNFUlQgJHtpbnNlcnR9XG4vLyAgICAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc1xuLy8gICAgICAgICAgICAgICBSRVRVUk4gTkVXYDtcblxuLy8gICAgICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuLy8gICAgICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuLy8gICAgICAgICAgIC50aGVuKCh1cGRhdGVkU3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHVwZGF0ZWRTdWJzY3JpcHRpb24pXG4vLyAgICAgICAgICAgLmNhdGNoKChkYkVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuLy8gICAgICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4vLyAgICAgICAgICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuLy8gICAgICAgICAgIH0sIGRiRXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xuLy8gICAgICAgfVxuXG4vLyAgICAgICAvLyBFcnJvcnNcbi8vICAgICAgIGNvbnN0IGVycm9yOiBQYXltZW50SU9TSW5BcHBFcnJvciA9IGdldElvc0luQXBwRXJyb3IocmVzdWx0cy5zdGF0dXMpO1xuXG4vLyAgICAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbi8vICAgICAgICAgYWN0aW9uLFxuLy8gICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbi8vICAgICAgICAgbGFiZWw6ICdwYXltZW50X2Vycm9yJyxcbi8vICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbi8vICAgICAgICAgdmFsdWU6IGVycm9yLmlkXG4vLyAgICAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuLy8gICAgIH0pO1xuLy8gfTtcblxuZXhwb3J0IGNvbnN0IGdldElvc1N1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc1N1YnNjcmlwdGlvbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBzIElOIHN1YnNjcmlwdGlvbnNcbiAgICAgIEZJTFRFUiBzLnVzZXJJZCA9PSAke3Nlc3Npb25JZH0gJiYgcy50eXBlID09IFwiaW9zX3BheW1lbnRcIlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHt9KSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCwgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qge2FkZGVkID0gbm93LCBwbGFuSWQsIHJlY2VpcHQsIHRyYW5zYWN0aW9uSWQsIHRyaWFsRW5kfSA9IHN1YnNjcmlwdGlvbjtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHN1YnNjcmlwdGlvbi0ke3RyYW5zYWN0aW9uSWR9YCk7XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICBfa2V5OiBzdWJzY3JpcHRpb25JZCxcbiAgICBhZGRlZCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIHBsYW5JZCxcbiAgICByZWNlaXB0LFxuICAgIHRyYW5zYWN0aW9uSWQsXG4gICAgdHJpYWxFbmQsXG4gICAgdHlwZTogJ2lvc19zdWJzY3JpcHRpb24nLFxuICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBzdWJzY3JpcHRpb25zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRTdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7fSkgPT4gdXBkYXRlZFN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRJb3NJbkFwcCA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHMgSU4gc3Vic2NyaXB0aW9uXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMudHlwZSA9PSBcImlvc1wiXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gc2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUF5QjtBQUN6QixzQkFBNEI7QUFXNUIsSUFBQUEsZ0JBQXVCO0FBRXZCLE1BQU0sZ0JBQXdCO0FBRXZCLE1BQU0sbUJBQW1CLENBQUMsZUFBNkM7QUFDNUUsUUFBTSxRQUFRO0FBQUEsSUFDWixDQUFDLENBQUMsR0FBRyxFQUFDLE9BQU8sT0FBTyxTQUFTLFVBQVUsT0FBTyxLQUFJO0FBQUEsSUFDbEQsQ0FBQyxJQUFLLEdBQUcsRUFBQyxPQUFPLE1BQU0sSUFBSSw4QkFBOEIsU0FBUyw0QkFBNEIsT0FBTyxNQUFLO0FBQUEsSUFDMUcsQ0FBQyxLQUFLLEdBQUcsRUFBQyxPQUFPLE1BQU0sSUFBSSwwQkFBMEIsU0FBUyxzQkFBc0IsT0FBTyxNQUFLO0FBQUEsSUFDaEcsQ0FBQyxLQUFLLEdBQUcsRUFBQyxPQUFPLE1BQU0sSUFBSSxnQ0FBZ0MsU0FBUyw2QkFBNkIsT0FBTyxNQUFLO0FBQUEsSUFDN0csQ0FBQyxLQUFLLEdBQUcsRUFBQyxPQUFPLE1BQU0sSUFBSSwwQkFBMEIsU0FBUyxnQ0FBZ0MsT0FBTyxNQUFLO0FBQUEsSUFDMUcsQ0FBQyxLQUFLLEdBQUcsRUFBQyxPQUFPLE1BQU0sSUFBSSw4QkFBOEIsU0FBUyw4QkFBOEIsT0FBTyxNQUFLO0FBQUEsSUFDNUcsQ0FBQyxLQUFLLEdBQUc7QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLElBQUk7QUFBQSxNQUNKLFNBQVM7QUFBQSxNQUNULE9BQU87QUFBQSxJQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUtBLENBQUMsS0FBSyxHQUFHO0FBQUEsTUFDUCxPQUFPO0FBQUEsTUFDUCxJQUFJO0FBQUEsTUFDSixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsTUFDVixPQUFPO0FBQUEsSUFDVDtBQUFBLElBQ0EsQ0FBQyxLQUFLLEdBQUc7QUFBQSxNQUNQLE9BQU87QUFBQSxNQUNQLElBQUk7QUFBQSxNQUNKLFNBQVM7QUFBQSxNQUNULE9BQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU8sTUFBTSxVQUFVLEtBQUssQ0FBQztBQUMvQjtBQUVPLE1BQU0sd0JBQXdCLENBQ25DLFVBQ0EsdUJBQ2tCO0FBQ2xCLFFBQU0sU0FBaUI7QUFDdkIsUUFBTTtBQUFBLElBQ0osb0JBQW9CO0FBQUEsSUFDcEIsbUJBQW1CO0FBQUEsSUFDbkIsbUJBQW1CO0FBQUEsSUFDbkIsZ0JBQWdCO0FBQUEsSUFDaEIscUJBQXFCO0FBQUEsSUFDckIsd0JBQXdCO0FBQUEsSUFDeEIsNkJBQTZCO0FBQUEsSUFDN0IseUJBQXlCO0FBQUEsRUFDM0IsSUFBSTtBQUNKLFFBQU0sZ0JBQXdCLFVBQVUsSUFBSSxZQUFZO0FBQ3hELFFBQU0sTUFBYyxLQUFLLElBQUk7QUFDN0IsUUFBTSxjQUE0QyxjQUFjO0FBQ2hFLFFBQU0sU0FBYSx5QkFBVyxXQUFXLGFBQWEsRUFBRTtBQUV4RCxRQUFNLFNBQThCO0FBQUEsSUFDbEM7QUFBQSxJQUNBLFNBQVMsWUFBWSxDQUFDLEVBQUUsa0JBQWtCO0FBQUEsSUFDMUMsVUFBVTtBQUFBLElBQ1Y7QUFBQSxJQUNBLFNBQVMsaUJBQWlCO0FBQUEsSUFDMUIsUUFBUTtBQUFBLEVBQ1Y7QUFDQSxRQUFNLFNBQThCO0FBQUEsSUFDbEMsR0FBRztBQUFBLElBQ0gsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBQ1AsTUFBTTtBQUFBLEVBQ1I7QUFDQSxRQUFNLFNBQW1CLDZDQUE2QixhQUFhO0FBQUEsY0FDdkQsTUFBTTtBQUFBLGNBQ04sTUFBTTtBQUFBO0FBR2xCLFNBQU8sU0FBUyxNQUFNLE1BQU0sRUFDekIsS0FBSyxNQUFNLElBQUksRUFDZixNQUFNLENBQUMsZ0JBQW1CLHdCQUFTO0FBQUEsSUFDbEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxFQUNULEdBQUcsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sSUFBSSxDQUFDO0FBQ3BDO0FBMEZPLE1BQU0scUJBQXFCLENBQUMsWUFBc0Q7QUFDdkYsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLFNBQW1CO0FBQUEsMkJBQ0EsU0FBUztBQUFBO0FBQUE7QUFJbEMsU0FBTyxTQUFTLE1BQU0sTUFBTSxFQUN6QixLQUFLLENBQUMsV0FBd0IsT0FBTyxLQUFLLENBQUMsRUFDM0MsS0FBSyxDQUFDLGVBQW9DLENBQUMsTUFBTSxZQUFZLEVBQzdELE1BQU0sQ0FBQyxjQUFpQix3QkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsRUFDVCxHQUFHLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDdkM7QUFFTyxNQUFNLGNBQWMsQ0FBQyxTQUFxQixpQkFBb0U7QUFDbkgsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLE1BQWMsS0FBSyxJQUFJO0FBQzdCLFFBQU0sRUFBQyxRQUFRLEtBQUssUUFBUSxTQUFTLGVBQWUsU0FBUSxJQUFJO0FBQ2hFLFFBQU0scUJBQXlCLHlCQUFXLGdCQUFnQixhQUFhLEVBQUU7QUFDekUsUUFBTSxTQUE4QjtBQUFBLElBQ2xDLE1BQU07QUFBQSxJQUNOO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLElBQ04sUUFBUTtBQUFBLEVBQ1Y7QUFDQSxRQUFNLFNBQW1CLDZCQUFhLE1BQU07QUFFNUMsU0FBTyxTQUFTLE1BQU0sTUFBTSxFQUN6QixLQUFLLENBQUMsV0FBd0IsT0FBTyxLQUFLLENBQUMsRUFDM0MsS0FBSyxDQUFDLHNCQUEyQyxDQUFDLE1BQU0sbUJBQW1CLEVBQzNFLE1BQU0sQ0FBQyxjQUFpQix3QkFBUztBQUFBLElBQ2hDO0FBQUEsSUFDQSxVQUFVO0FBQUEsSUFDVixPQUFPO0FBQUEsRUFDVCxHQUFHLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDdkM7QUFFTyxNQUFNLGNBQWMsQ0FBQyxZQUFzRDtBQUNoRixRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLFVBQVMsRUFBQyxJQUFJO0FBQ2pELFFBQU0sU0FBbUI7QUFBQSwyQkFDQSxTQUFTO0FBQUE7QUFBQTtBQUlsQyxTQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxLQUFLLENBQUMsZUFBb0MsQ0FBQyxNQUFNLFlBQVksRUFDN0QsTUFBTSxDQUFDLGNBQWlCLHdCQUFTO0FBQUEsSUFDaEM7QUFBQSxJQUNBLFVBQVU7QUFBQSxJQUNWLE9BQU87QUFBQSxFQUNULEdBQUcsT0FBTyxPQUFPLEVBQUUsS0FBSyxNQUFNLElBQUksQ0FBQztBQUN2QzsiLAogICJuYW1lcyI6IFsiaW1wb3J0X3V0aWxzIl0KfQo=
164
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvaW9zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge2NyZWF0ZUhhc2h9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9jdXJzb3InO1xuXG5pbXBvcnQge1xuICBBcGlDb250ZXh0LFxuICBQYXltZW50SU9TSW5BcHBFcnJvcixcbiAgUGF5bWVudElPU1N1YnNjcmlwdGlvbkluZm8sXG4gIFBheW1lbnRJT1NTdWJzY3JpcHRpb25VcGRhdGUsXG4gIFBheW1lbnRTdWJzY3JpcHRpb25cbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvcic7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdpb3MnO1xuXG5leHBvcnQgY29uc3QgZ2V0SW9zSW5BcHBFcnJvciA9IChzdGF0dXNDb2RlOiBzdHJpbmcpOiBQYXltZW50SU9TSW5BcHBFcnJvciA9PiB7XG4gIGNvbnN0IGNvZGVzID0ge1xuICAgIFswXToge2Vycm9yOiBmYWxzZSwgbWVzc2FnZTogJ0FjdGl2ZScsIHZhbGlkOiB0cnVlfSxcbiAgICBbMjEwMDBdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9yZWNlaXB0X3VucmVhZGFibGUnLCBtZXNzYWdlOiAnQXBwIHN0b3JlIGNvdWxkIG5vdCByZWFkJywgdmFsaWQ6IGZhbHNlfSxcbiAgICBbMjEwMDJdOiB7ZXJyb3I6IHRydWUsIGlkOiAncGF5bWVudF9kYXRhX21hbGZvcm1lZCcsIG1lc3NhZ2U6ICdEYXRhIHdhcyBtYWxmb3JtZWQnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwM106IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X3JlY2VpcHRfdW5hdXRob3JpemVkJywgbWVzc2FnZTogJ1JlY2VpcHQgbm90IGF1dGhlbnRpY2F0ZWQnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwNF06IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X2ludmFsaWRfc2VjcmV0JywgbWVzc2FnZTogJ1NoYXJlZCBzZWNyZXQgZG9lcyBub3QgbWF0Y2gnLCB2YWxpZDogZmFsc2V9LFxuICAgIFsyMTAwNV06IHtlcnJvcjogdHJ1ZSwgaWQ6ICdwYXltZW50X3NlcnZlcl91bmF2YWlsYWJsZScsIG1lc3NhZ2U6ICdSZWNlaXB0IHNlcnZlciB1bmF2YWlsYWJsZScsIHZhbGlkOiBmYWxzZX0sXG4gICAgWzIxMDA2XToge1xuICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgaWQ6ICdwYXltZW50X3N1YnNjcmlwdGlvbl9leHBpcmVkJyxcbiAgICAgIG1lc3NhZ2U6ICdSZWNlaXB0IHZhbGlkIGJ1dCBzdWIgZXhwaXJlZCcsXG4gICAgICB2YWxpZDogdHJ1ZVxuICAgIH0sXG4gICAgLyoqXG4gICAgICogc3BlY2lhbCBjYXNlIGZvciBhcHAgcmV2aWV3IGhhbmRsaW5nIC0gZm9yd2FyZCBhbnkgcmVxdWVzdCB0aGF0IGlzIGludGVuZGVkIGZvciB0aGUgU2FuZGJveCBidXQgd2FzIHNlbnQgdG9cbiAgICAgKiBQcm9kdWN0aW9uLCB0aGlzIGlzIHdoYXQgdGhlIGFwcCByZXZpZXcgdGVhbSBkb2VzXG4gICAgICovXG4gICAgWzIxMDA3XToge1xuICAgICAgZXJyb3I6IHRydWUsXG4gICAgICBpZDogJ3BheW1lbnRfaW52YWxpZF9zZXJ2ZXInLFxuICAgICAgbWVzc2FnZTogJ1NhbmRib3ggcmVjZWlwdCBzZW50IHRvIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQnLFxuICAgICAgcmVkaXJlY3Q6IHRydWUsXG4gICAgICB2YWxpZDogZmFsc2VcbiAgICB9LFxuICAgIFsyMTAwOF06IHtcbiAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgaWQ6ICdwYXltZW50X2ludmFsaWRfc2VydmVyJyxcbiAgICAgIG1lc3NhZ2U6ICdQcm9kdWN0aW9uIHJlY2VpcHQgc2VudCB0byBTYW5kYm94IGVudmlyb25tZW50JyxcbiAgICAgIHZhbGlkOiBmYWxzZVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gY29kZXNbc3RhdHVzQ29kZV0gfHwge307XG59O1xuXG5leHBvcnQgY29uc3QgaW9zU3Vic2NyaXB0aW9uVXBkYXRlID0gKFxuICBkYXRhYmFzZTogRGF0YWJhc2UsXG4gIHN1YnNjcmlwdGlvblVwZGF0ZTogUGF5bWVudElPU1N1YnNjcmlwdGlvblVwZGF0ZVxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2lvc1N1YnNjcmlwdGlvblVwZGF0ZSc7XG4gIGNvbnN0IHtcbiAgICBhdXRvX3JlbmV3X2FkYW1faWQ6IHBsYW5JZCxcbiAgICBjYW5jZWxsYXRpb25fZGF0ZTogY2FuY2VsRGF0ZSxcbiAgICBub3RpZmljYXRpb25fdHlwZTogc3RhdHVzLFxuICAgIGxhdGVzdF9yZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuICAgIGxhdGVzdF9yZWNlaXB0X2luZm86IGxhdGVzdEluZm8sXG4gICAgbGF0ZXN0X2V4cGlyZWRfcmVjZWlwdDogZXhwaXJlZFJlY2VpcHQsXG4gICAgbGF0ZXN0X2V4cGlyZWRfcmVjZWlwdF9pbmZvOiBleHBpcmVkSW5mbyxcbiAgICBvcmlnaW5hbF90cmFuc2FjdGlvbl9pZDogdHJhbnNhY3Rpb25JZFxuICB9ID0gc3Vic2NyaXB0aW9uVXBkYXRlO1xuICBjb25zdCBmb3JtYXRTdGF0dXM6IHN0cmluZyA9IChzdGF0dXMgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgcmVjZWlwdEluZm86IFBheW1lbnRJT1NTdWJzY3JpcHRpb25JbmZvW10gPSBsYXRlc3RJbmZvIHx8IGV4cGlyZWRJbmZvO1xuICBjb25zdCBpZDogc3RyaW5nID0gY3JlYXRlSGFzaChgcGF5bWVudC0ke3RyYW5zYWN0aW9uSWR9YCk7XG5cbiAgY29uc3QgdXBkYXRlOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIGNhbmNlbERhdGUsXG4gICAgaXNWYWxpZDogcmVjZWlwdEluZm9bMF0uZXhwaXJlc19kYXRlX21zID4gbm93LFxuICAgIG1vZGlmaWVkOiBub3csXG4gICAgcGxhbklkLFxuICAgIHJlY2VpcHQ6IGxhdGVzdFJlY2VpcHQgfHwgZXhwaXJlZFJlY2VpcHQsXG4gICAgc3RhdHVzOiBmb3JtYXRTdGF0dXNcbiAgfTtcbiAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgIC4uLnVwZGF0ZSxcbiAgICBfa2V5OiBpZCxcbiAgICBhZGRlZDogbm93LFxuICAgIHR5cGU6ICdpb3NfcGF5bWVudCdcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3RyYW5zYWN0aW9uSWQ6ICR7dHJhbnNhY3Rpb25JZH19XG4gICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgVVBEQVRFICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zXG4gICAgIExJTUlUIDFgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKCkgPT4gbnVsbClcbiAgICAuY2F0Y2goKGRiRXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZGJFcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcblxuLy8gZXhwb3J0IGNvbnN0IGFkZElvc0luQXBwID0gKFxuLy8gICBjb250ZXh0OiBBcGlDb250ZXh0LFxuLy8gICBhcHAsXG4vLyAgIHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvblxuLy8gKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4vLyAgIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbi8vICAgY29uc3Qge2lzUHJvZHVjdGlvbiwgcmVjZWlwdH0gPSBzdWJzY3JpcHRpb247XG4vLyAgIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcblxuLy8gICBjb25zdCBwcm9kdWN0aW9uSG9zdDogc3RyaW5nID0gJ2J1eS5pdHVuZXMuYXBwbGUuY29tJztcbi8vICAgY29uc3Qgc2FuZGJveEhvc3Q6IHN0cmluZyA9ICdzYW5kYm94Lml0dW5lcy5hcHBsZS5jb20nO1xuLy8gICBjb25zdCBlbmRwb2ludDogc3RyaW5nID0gaXNQcm9kdWN0aW9uID8gcHJvZHVjdGlvbkhvc3QgOiBzYW5kYm94SG9zdDtcbi8vICAgY29uc3QgdmVyaWZ5VXJsOiBzdHJpbmcgPSBgaHR0cHM6Ly8ke2VuZHBvaW50fS92ZXJpZnlSZWNlaXB0YDtcbi8vICAgY29uc3QgcGF5bG9hZDogb2JqZWN0ID0ge1xuLy8gICAgIHBhc3N3b3JkOiBhcHAuaWFwLFxuLy8gICAgICdyZWNlaXB0LWRhdGEnOiBkZWNvZGVVUklDb21wb25lbnQocmVjZWlwdClcbi8vICAgfTtcbi8vICAgY29uc3Qgb3B0aW9uczogb2JqZWN0ID0ge1xuLy8gICAgIGhlYWRlcnM6IHtcbi8vICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuLy8gICAgIH1cbi8vICAgfTtcblxuLy8gICByZXR1cm4gcG9zdCh2ZXJpZnlVcmwsIHBheWxvYWQsIG9wdGlvbnMpXG4vLyAgICAgLnRoZW4oKHJlc3VsdHMpID0+IHtcbi8vICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHJlc3VsdHMpO1xuLy8gICAgICAgY29uc3Qge1xuLy8gICAgICAgICBsYXRlc3RfcmVjZWlwdDogbGF0ZXN0UmVjZWlwdCxcbi8vICAgICAgICAgbGF0ZXN0X3JlY2VpcHRfaW5mbzogbGF0ZXN0SW5mbyxcbi8vICAgICAgICAgc3RhdHVzXG4vLyAgICAgICB9ID0ganNvbjtcblxuLy8gICAgICAgY29uc3Qge1xuLy8gICAgICAgICBpc190cmlhbF9wZXJpb2Q6IHRyaWFsUGVyaW9kLFxuLy8gICAgICAgICBvcmlnaW5hbF9wdXJjaGFzZV9kYXRlX21zOiBhZGRlZCxcbi8vICAgICAgICAgZXhwaXJlc19kYXRlOiBleHBpcmVzLFxuLy8gICAgICAgICBwcm9kdWN0X2lkOiBwbGFuSWQsXG4vLyAgICAgICAgIHRyYW5zYWN0aW9uX2lkOiB0cmFuc2FjdGlvbklkXG4vLyAgICAgICB9ID0gbGF0ZXN0SW5mbztcblxuLy8gICAgICAgaWYoc3RhdHVzID09PSAwIHx8IHN0YXR1cyA9PT0gMjEwMDYpIHtcbi8vICAgICAgICAgY29uc3QgaWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHBheW1lbnQtJHt0cmFuc2FjdGlvbklkfWApO1xuLy8gICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4vLyAgICAgICAgIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbi8vICAgICAgICAgICBleHBpcmVzLFxuLy8gICAgICAgICAgIGlzVHJpYWw6IHRyaWFsUGVyaW9kID09PSAndHJ1ZScsXG4vLyAgICAgICAgICAgaXNWYWxpZDogZXhwaXJlcyA+IG5vdyxcbi8vICAgICAgICAgICBtb2RpZmllZDogbm93LFxuLy8gICAgICAgICAgIHBsYW5JZCxcbi8vICAgICAgICAgICByZWNlaXB0OiBsYXRlc3RSZWNlaXB0LFxuLy8gICAgICAgICAgIHRyYW5zYWN0aW9uSWQsXG4vLyAgICAgICAgICAgdXNlcklkOiBzZXNzaW9uSWRcbi8vICAgICAgICAgfTtcbi8vICAgICAgICAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuLy8gICAgICAgICAgIC4uLnVwZGF0ZSxcbi8vICAgICAgICAgICBfa2V5OiBpZCxcbi8vICAgICAgICAgICBhZGRlZCxcbi8vICAgICAgICAgICB0eXBlOiAnaW9zX3BheW1lbnQnXG4vLyAgICAgICAgIH07XG5cbi8vICAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge3RyYW5zYWN0aW9uSWQ6ICR7dHJhbnNhY3Rpb25JZH19XG4vLyAgICAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbi8vICAgICAgICAgICAgICAgVVBEQVRFICR7dXBkYXRlfSBJTiBzdWJzY3JpcHRpb25zXG4vLyAgICAgICAgICAgICAgIFJFVFVSTiBORVdgO1xuXG4vLyAgICAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4vLyAgICAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4vLyAgICAgICAgICAgLnRoZW4oKHVwZGF0ZWRTdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7fSkgPT4gdXBkYXRlZFN1YnNjcmlwdGlvbilcbi8vICAgICAgICAgICAuY2F0Y2goKGRiRXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4vLyAgICAgICAgICAgICBhY3Rpb24sXG4vLyAgICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbi8vICAgICAgICAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4vLyAgICAgICAgICAgfSwgZGJFcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4vLyAgICAgICB9XG5cbi8vICAgICAgIC8vIEVycm9yc1xuLy8gICAgICAgY29uc3QgZXJyb3I6IFBheW1lbnRJT1NJbkFwcEVycm9yID0gZ2V0SW9zSW5BcHBFcnJvcihyZXN1bHRzLnN0YXR1cyk7XG5cbi8vICAgICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuLy8gICAgICAgICBhY3Rpb24sXG4vLyAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuLy8gICAgICAgICBsYWJlbDogJ3BheW1lbnRfZXJyb3InLFxuLy8gICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuLy8gICAgICAgICB2YWx1ZTogZXJyb3IuaWRcbi8vICAgICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4vLyAgICAgfSk7XG4vLyB9O1xuXG5leHBvcnQgY29uc3QgZ2V0SW9zU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SW9zU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHMgSU4gc3Vic2NyaXB0aW9uc1xuICAgICAgRklMVEVSIHMudXNlcklkID09ICR7c2Vzc2lvbklkfSAmJiBzLnR5cGUgPT0gXCJpb3NfcGF5bWVudFwiXG4gICAgICBMSU1JVCAxXG4gICAgICBSRVRVUk4gc2A7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkSW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCwgc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uKTogUHJvbWlzZTxQYXltZW50U3Vic2NyaXB0aW9uPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZElvc0luQXBwJztcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qge2FkZGVkID0gbm93LCBwbGFuSWQsIHJlY2VpcHQsIHRyYW5zYWN0aW9uSWQsIHRyaWFsRW5kfSA9IHN1YnNjcmlwdGlvbjtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZyA9IGNyZWF0ZUhhc2goYHN1YnNjcmlwdGlvbi0ke3RyYW5zYWN0aW9uSWR9YCk7XG4gIGNvbnN0IGluc2VydDogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICBfa2V5OiBzdWJzY3JpcHRpb25JZCxcbiAgICBhZGRlZCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIHBsYW5JZCxcbiAgICByZWNlaXB0LFxuICAgIHRyYW5zYWN0aW9uSWQsXG4gICAgdHJpYWxFbmQsXG4gICAgdHlwZTogJ2lvc19zdWJzY3JpcHRpb24nLFxuICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBzdWJzY3JpcHRpb25zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRTdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24pID0+IHVwZGF0ZWRTdWJzY3JpcHRpb24pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SW9zSW5BcHAgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJb3NJbkFwcCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBzIElOIHN1YnNjcmlwdGlvblxuICAgICAgRklMVEVSIHMudXNlcklkID09ICR7c2Vzc2lvbklkfSAmJiBzLnR5cGUgPT0gXCJpb3NcIlxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIHNgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHN1YnNjcmlwdGlvbjogUGF5bWVudFN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SXG4gICAgfSwgZXJyb3IsIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCkpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUJBQXlC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
@@ -0,0 +1,5 @@
1
+ import { ApiContext } from '../types/auth';
2
+ import { GoogleMapsAddressType } from '../types/google';
3
+ import { LocationType } from '../types/locations';
4
+ export declare const getFieldVal: (addressComponents: GoogleMapsAddressType[], name: string) => string;
5
+ export declare const addLocation: (context: ApiContext, location: LocationType) => Promise<LocationType>;
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all)
@@ -16,27 +14,27 @@ var __copyProps = (to, from, except, desc) => {
16
14
  }
17
15
  return to;
18
16
  };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
18
  var locations_exports = {};
29
19
  __export(locations_exports, {
30
- addLocation: () => addLocation
20
+ addLocation: () => addLocation,
21
+ getFieldVal: () => getFieldVal
31
22
  });
32
23
  module.exports = __toCommonJS(locations_exports);
33
24
  var import_rip_hunter = require("@nlabs/rip-hunter");
34
25
  var import_utils = require("@nlabs/utils");
35
26
  var import_arangojs = require("arangojs");
36
- var import_get = __toESM(require("lodash/get"));
37
27
  var import_config = require("../config");
38
- var import_utils2 = require("../utils");
28
+ var import_analyticsUtils = require("../utils/analyticsUtils");
29
+ var import_error = require("../types/error");
39
30
  const eventCategory = "locations";
31
+ const getFieldVal = (addressComponents, name) => {
32
+ const { short_name: shortName = "" } = addressComponents.find((addressField) => {
33
+ const types = addressField.types || [];
34
+ return types.findIndex((fieldType) => fieldType === name) >= 0;
35
+ }) || {};
36
+ return shortName;
37
+ };
40
38
  const addLocation = (context, location) => {
41
39
  const action = "add";
42
40
  const { database, session: { userId: sessionId } } = context;
@@ -51,39 +49,32 @@ const addLocation = (context, location) => {
51
49
  const { results = [], status = "" } = json;
52
50
  if (status === "OK" && results.length) {
53
51
  const geodata = results[0];
54
- const addressComponents = (0, import_get.default)(geodata, "address_components");
55
- const getFieldVal = (name) => {
56
- const { short_name: shortName = "" } = addressComponents.find((addressField) => {
57
- const types = addressField.types || [];
58
- return types.findIndex((fieldType) => fieldType === name) >= 0;
59
- }) || {};
60
- return shortName;
61
- };
62
- const streetNumber = getFieldVal("street_number");
63
- const route = getFieldVal("route");
52
+ const addressComponents = geodata?.address_components || [];
53
+ const streetNumber = getFieldVal(addressComponents, "street_number");
54
+ const route = getFieldVal(addressComponents, "route");
64
55
  const now = Date.now();
65
56
  const formatItemType = (0, import_utils.parseChar)(itemType).toLowerCase();
66
57
  const formatItemId = (0, import_utils.parseId)(itemId);
67
- const googleId = (0, import_get.default)(geodata, "place_id");
58
+ const googleId = geodata?.place_id || "";
68
59
  const update = {};
69
60
  const insert = {
70
61
  _key: (0, import_utils.createHash)(`post-${sessionId}`),
71
62
  added: now,
72
- city: getFieldVal("locality"),
73
- country: getFieldVal("country"),
74
- formatted: (0, import_get.default)(geodata, "formatted_address"),
63
+ city: getFieldVal(addressComponents, "locality"),
64
+ country: getFieldVal(addressComponents, "country"),
65
+ formatted: geodata?.formatted_address,
75
66
  googleId,
76
- latitude: (0, import_get.default)(geodata, "geometry.location.lat"),
77
- longitude: (0, import_get.default)(geodata, "geometry.location.lng"),
78
- state: getFieldVal("administrative_area_level_1"),
67
+ latitude: geodata?.geometry.location.lat,
68
+ longitude: geodata?.geometry.location.lng,
69
+ state: getFieldVal(addressComponents, "administrative_area_level_1"),
79
70
  street: [streetNumber, route].filter((obj) => obj).join(" "),
80
- zip: getFieldVal("postal_code")
71
+ zip: getFieldVal(addressComponents, "postal_code")
81
72
  };
82
73
  const aqlQry = import_arangojs.aql`UPSERT {googleId: ${googleId}}
83
74
  INSERT ${insert}
84
75
  UPDATE ${update}
85
76
  IN locations RETURN NEW`;
86
- return database.query(aqlQry).then((cursor) => cursor.next()).then((updatedLocation = {}) => {
77
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((updatedLocation) => {
87
78
  let itemDocId;
88
79
  const { _key: updatedLocationKey } = updatedLocation;
89
80
  switch (formatItemType) {
@@ -102,17 +93,18 @@ const addLocation = (context, location) => {
102
93
  return edgeCollection.save(edge, { returnNew: true }).then(() => updatedLocation);
103
94
  }
104
95
  return updatedLocation;
105
- }).catch((error) => (0, import_utils2.logError)({
96
+ }).catch((error) => (0, import_analyticsUtils.logError)({
106
97
  action,
107
98
  category: eventCategory,
108
- label: "db_error"
99
+ label: import_error.ErrorTypes.DATABASE_ERROR
109
100
  }, error, context).then(() => null));
110
101
  }
111
- return {};
102
+ return null;
112
103
  });
113
104
  };
114
105
  // Annotate the CommonJS export names for ESM import in node:
115
106
  0 && (module.exports = {
116
- addLocation
107
+ addLocation,
108
+ getFieldVal
117
109
  });
118
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbG9jYXRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXQgYXMgaHR0cEdldCwgcXVlcnlTdHJpbmd9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0VkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcy9jb2xsZWN0aW9uJztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2N1cnNvcic7XG5pbXBvcnQgZ2V0IGZyb20gJ2xvZGFzaC9nZXQnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge0dvb2dsZU1hcHNBZGRyZXNzVHlwZX0gZnJvbSAnLi4vdHlwZXMvZ29vZ2xlJztcbmltcG9ydCB7TG9jYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9sb2NhdGlvbnMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnbG9jYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGFkZExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGQnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge2FkZHJlc3MsIGl0ZW1JZCwgaXRlbVR5cGV9ID0gbG9jYXRpb247XG4gIGNvbnN0IGdlb2NvZGVVcmw6IHN0cmluZyA9IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLnVybCcpO1xuICBjb25zdCBwYXJhbXM6IG9iamVjdCA9IHtcbiAgICBhZGRyZXNzLFxuICAgIGtleTogQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUua2V5JylcbiAgfTtcbiAgY29uc3QgdXJsOiBzdHJpbmcgPSBgJHtnZW9jb2RlVXJsfT8ke3F1ZXJ5U3RyaW5nKHBhcmFtcyl9YDtcblxuICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgIGNvbnN0IHtyZXN1bHRzID0gW10sIHN0YXR1cyA9ICcnfSA9IGpzb247XG5cbiAgICAgIGlmKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBnZW9kYXRhOiBvYmplY3QgPSByZXN1bHRzWzBdO1xuICAgICAgICBjb25zdCBhZGRyZXNzQ29tcG9uZW50czogR29vZ2xlTWFwc0FkZHJlc3NUeXBlW10gPSBnZXQoZ2VvZGF0YSwgJ2FkZHJlc3NfY29tcG9uZW50cycpO1xuICAgICAgICBjb25zdCBnZXRGaWVsZFZhbCA9IChuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAgICAgICAgIGNvbnN0IHtzaG9ydF9uYW1lOiBzaG9ydE5hbWUgPSAnJ30gPSBhZGRyZXNzQ29tcG9uZW50cy5maW5kKChhZGRyZXNzRmllbGQ6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHlwZXMgPSBhZGRyZXNzRmllbGQudHlwZXMgfHwgW107XG4gICAgICAgICAgICByZXR1cm4gdHlwZXMuZmluZEluZGV4KChmaWVsZFR5cGU6IHN0cmluZykgPT4gZmllbGRUeXBlID09PSBuYW1lKSA+PSAwO1xuICAgICAgICAgIH0pIHx8IHt9O1xuXG4gICAgICAgICAgcmV0dXJuIHNob3J0TmFtZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBTdHJlZXRcbiAgICAgICAgY29uc3Qgc3RyZWV0TnVtYmVyOiBzdHJpbmcgPSBnZXRGaWVsZFZhbCgnc3RyZWV0X251bWJlcicpO1xuICAgICAgICBjb25zdCByb3V0ZTogc3RyaW5nID0gZ2V0RmllbGRWYWwoJ3JvdXRlJyk7XG5cbiAgICAgICAgLy8gTG9jYXRpb25cbiAgICAgICAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIC8vIEl0ZW1cbiAgICAgICAgY29uc3QgZm9ybWF0SXRlbVR5cGU6IHN0cmluZyA9IHBhcnNlQ2hhcihpdGVtVHlwZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgZm9ybWF0SXRlbUlkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW1JZCk7XG4gICAgICAgIGNvbnN0IGdvb2dsZUlkOiBzdHJpbmcgPSBnZXQoZ2VvZGF0YSwgJ3BsYWNlX2lkJyk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZTogTG9jYXRpb25UeXBlID0ge307XG4gICAgICAgIGNvbnN0IGluc2VydDogTG9jYXRpb25UeXBlID0ge1xuICAgICAgICAgIF9rZXk6IGNyZWF0ZUhhc2goYHBvc3QtJHtzZXNzaW9uSWR9YCksXG4gICAgICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgICAgICBjaXR5OiBnZXRGaWVsZFZhbCgnbG9jYWxpdHknKSxcbiAgICAgICAgICBjb3VudHJ5OiBnZXRGaWVsZFZhbCgnY291bnRyeScpLFxuICAgICAgICAgIGZvcm1hdHRlZDogZ2V0KGdlb2RhdGEsICdmb3JtYXR0ZWRfYWRkcmVzcycpLFxuICAgICAgICAgIGdvb2dsZUlkLFxuICAgICAgICAgIGxhdGl0dWRlOiBnZXQoZ2VvZGF0YSwgJ2dlb21ldHJ5LmxvY2F0aW9uLmxhdCcpLFxuICAgICAgICAgIGxvbmdpdHVkZTogZ2V0KGdlb2RhdGEsICdnZW9tZXRyeS5sb2NhdGlvbi5sbmcnKSxcbiAgICAgICAgICBzdGF0ZTogZ2V0RmllbGRWYWwoJ2FkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMScpLFxuICAgICAgICAgIHN0cmVldDogW3N0cmVldE51bWJlciwgcm91dGVdLmZpbHRlcigob2JqKSA9PiBvYmopLmpvaW4oJyAnKSxcbiAgICAgICAgICB6aXA6IGdldEZpZWxkVmFsKCdwb3N0YWxfY29kZScpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtnb29nbGVJZDogJHtnb29nbGVJZH19XG4gICAgICAgICAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgICAgICAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgICAgICAgICBJTiBsb2NhdGlvbnMgUkVUVVJOIE5FV2A7XG5cbiAgICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgICAgICAudGhlbigodXBkYXRlZExvY2F0aW9uOiBMb2NhdGlvblR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW1Eb2NJZDogc3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qge19rZXk6IHVwZGF0ZWRMb2NhdGlvbktleX0gPSB1cGRhdGVkTG9jYXRpb247XG5cbiAgICAgICAgICAgIHN3aXRjaChmb3JtYXRJdGVtVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdwb3N0cyc6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gYHBvc3RzLyR7Zm9ybWF0SXRlbUlkfWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgdmFsaWQgaXRlbSBkb2MgaWQsIGNyZWF0ZSBhbiBlZGdlXG4gICAgICAgICAgICBpZihpdGVtRG9jSWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbignaGFzTG9jYXRpb24nKTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25JZDogc3RyaW5nID0gdXBkYXRlZExvY2F0aW9uS2V5O1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbkRvY0lkOiBzdHJpbmcgPSBgbG9jYXRpb25zLyR7bG9jYXRpb25JZH1gO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGBoYXNMb2NhdGlvbi0ke2xvY2F0aW9uSWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlOiBhbnkgPSB7X2Zyb206IGl0ZW1Eb2NJZCwgX2tleTogZWRnZUlkLCBfdG86IGxvY2F0aW9uRG9jSWR9O1xuXG4gICAgICAgICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7fTtcbiAgICB9KTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsd0JBQTBDO0FBQzFDLG1CQUE2QztBQUM3QyxzQkFBa0I7QUFJbEIsaUJBQWdCO0FBRWhCLG9CQUFxQjtBQUlyQixJQUFBQSxnQkFBdUI7QUFFdkIsTUFBTSxnQkFBd0I7QUFFdkIsTUFBTSxjQUFjLENBQUMsU0FBcUIsYUFBa0Q7QUFDakcsUUFBTSxTQUFpQjtBQUN2QixRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLEVBQUMsU0FBUyxRQUFRLFNBQVEsSUFBSTtBQUNwQyxRQUFNLGFBQXFCLHFCQUFPLElBQUksb0JBQW9CO0FBQzFELFFBQU0sU0FBaUI7QUFBQSxJQUNyQjtBQUFBLElBQ0EsS0FBSyxxQkFBTyxJQUFJLG9CQUFvQjtBQUFBLEVBQ3RDO0FBQ0EsUUFBTSxNQUFjLEdBQUcsVUFBVSxRQUFJLCtCQUFZLE1BQU0sQ0FBQztBQUV4RCxhQUFPLGtCQUFBQyxLQUFRLEdBQUcsRUFDZixLQUFLLENBQUMsU0FBUztBQUNkLFVBQU0sRUFBQyxVQUFVLENBQUMsR0FBRyxTQUFTLEdBQUUsSUFBSTtBQUVwQyxRQUFHLFdBQVcsUUFBUSxRQUFRLFFBQVE7QUFDcEMsWUFBTSxVQUFrQixRQUFRLENBQUM7QUFDakMsWUFBTSx3QkFBNkMsV0FBQUMsU0FBSSxTQUFTLG9CQUFvQjtBQUNwRixZQUFNLGNBQWMsQ0FBQyxTQUF5QjtBQUM1QyxjQUFNLEVBQUMsWUFBWSxZQUFZLEdBQUUsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLGlCQUF3QztBQUNuRyxnQkFBTSxRQUFRLGFBQWEsU0FBUyxDQUFDO0FBQ3JDLGlCQUFPLE1BQU0sVUFBVSxDQUFDLGNBQXNCLGNBQWMsSUFBSSxLQUFLO0FBQUEsUUFDdkUsQ0FBQyxLQUFLLENBQUM7QUFFUCxlQUFPO0FBQUEsTUFDVDtBQUdBLFlBQU0sZUFBdUIsWUFBWSxlQUFlO0FBQ3hELFlBQU0sUUFBZ0IsWUFBWSxPQUFPO0FBR3pDLFlBQU0sTUFBYyxLQUFLLElBQUk7QUFHN0IsWUFBTSxxQkFBeUIsd0JBQVUsUUFBUSxFQUFFLFlBQVk7QUFDL0QsWUFBTSxtQkFBdUIsc0JBQVEsTUFBTTtBQUMzQyxZQUFNLGVBQW1CLFdBQUFBLFNBQUksU0FBUyxVQUFVO0FBQ2hELFlBQU0sU0FBdUIsQ0FBQztBQUM5QixZQUFNLFNBQXVCO0FBQUEsUUFDM0IsVUFBTSx5QkFBVyxRQUFRLFNBQVMsRUFBRTtBQUFBLFFBQ3BDLE9BQU87QUFBQSxRQUNQLE1BQU0sWUFBWSxVQUFVO0FBQUEsUUFDNUIsU0FBUyxZQUFZLFNBQVM7QUFBQSxRQUM5QixlQUFXLFdBQUFBLFNBQUksU0FBUyxtQkFBbUI7QUFBQSxRQUMzQztBQUFBLFFBQ0EsY0FBVSxXQUFBQSxTQUFJLFNBQVMsdUJBQXVCO0FBQUEsUUFDOUMsZUFBVyxXQUFBQSxTQUFJLFNBQVMsdUJBQXVCO0FBQUEsUUFDL0MsT0FBTyxZQUFZLDZCQUE2QjtBQUFBLFFBQ2hELFFBQVEsQ0FBQyxjQUFjLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLEVBQUUsS0FBSyxHQUFHO0FBQUEsUUFDM0QsS0FBSyxZQUFZLGFBQWE7QUFBQSxNQUNoQztBQUNBLFlBQU0sU0FBbUIsd0NBQXdCLFFBQVE7QUFBQSxxQkFDNUMsTUFBTTtBQUFBLHFCQUNOLE1BQU07QUFBQTtBQUduQixhQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxLQUFLLENBQUMsa0JBQWdDLENBQUMsTUFBTTtBQUM1QyxZQUFJO0FBQ0osY0FBTSxFQUFDLE1BQU0sbUJBQWtCLElBQUk7QUFFbkMsZ0JBQU8sZ0JBQWdCO0FBQUEsVUFDckIsS0FBSztBQUNILHdCQUFZLFNBQVMsWUFBWTtBQUNqQztBQUFBLFVBQ0Y7QUFDRSx3QkFBWTtBQUFBLFFBQ2hCO0FBR0EsWUFBRyxXQUFXO0FBQ1osZ0JBQU0saUJBQWlDLFNBQVMsV0FBVyxhQUFhO0FBQ3hFLGdCQUFNLGFBQXFCO0FBQzNCLGdCQUFNLGdCQUF3QixhQUFhLFVBQVU7QUFDckQsZ0JBQU0sYUFBUyx5QkFBVyxlQUFlLFVBQVUsSUFBSSxTQUFTLEVBQUU7QUFDbEUsZ0JBQU0sT0FBWSxFQUFDLE9BQU8sV0FBVyxNQUFNLFFBQVEsS0FBSyxjQUFhO0FBRXJFLGlCQUFPLGVBQWUsS0FBSyxNQUFNLEVBQUMsV0FBVyxLQUFJLENBQUMsRUFBRSxLQUFLLE1BQU0sZUFBZTtBQUFBLFFBQ2hGO0FBR0EsZUFBTztBQUFBLE1BQ1QsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxjQUFpQix3QkFBUztBQUFBLFFBQ2hDO0FBQUEsUUFDQSxVQUFVO0FBQUEsUUFDVixPQUFPO0FBQUEsTUFDVCxHQUFHLE9BQU8sT0FBTyxFQUFFLEtBQUssTUFBTSxJQUFJLENBQUM7QUFBQSxJQUN2QztBQUVBLFdBQU8sQ0FBQztBQUFBLEVBQ1YsQ0FBQztBQUNMOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfdXRpbHMiLCAiaHR0cEdldCIsICJnZXQiXQp9Cg==
110
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbG9jYXRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtnZXQgYXMgaHR0cEdldCwgcXVlcnlTdHJpbmd9IGZyb20gJ0BubGFicy9yaXAtaHVudGVyJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0VkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcy9jb2xsZWN0aW9uJztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2N1cnNvcic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7R29vZ2xlTWFwc0FkZHJlc3NUeXBlLCBHb29nbGVNYXBzUmVzdWx0VHlwZX0gZnJvbSAnLi4vdHlwZXMvZ29vZ2xlJztcbmltcG9ydCB7TG9jYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9sb2NhdGlvbnMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvcic7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdsb2NhdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RmllbGRWYWwgPSAoYWRkcmVzc0NvbXBvbmVudHM6IEdvb2dsZU1hcHNBZGRyZXNzVHlwZVtdLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7c2hvcnRfbmFtZTogc2hvcnROYW1lID0gJyd9ID0gYWRkcmVzc0NvbXBvbmVudHMuZmluZCgoYWRkcmVzc0ZpZWxkOiBHb29nbGVNYXBzQWRkcmVzc1R5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlcyA9IGFkZHJlc3NGaWVsZC50eXBlcyB8fCBbXTtcbiAgICByZXR1cm4gdHlwZXMuZmluZEluZGV4KChmaWVsZFR5cGU6IHN0cmluZykgPT4gZmllbGRUeXBlID09PSBuYW1lKSA+PSAwO1xuICB9KSB8fCB7fTtcblxuICByZXR1cm4gc2hvcnROYW1lO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZExvY2F0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2F0aW9uOiBMb2NhdGlvblR5cGUpOiBQcm9taXNlPExvY2F0aW9uVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdhZGQnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge2FkZHJlc3MsIGl0ZW1JZCwgaXRlbVR5cGV9ID0gbG9jYXRpb247XG4gIGNvbnN0IGdlb2NvZGVVcmw6IHN0cmluZyA9IENvbmZpZy5nZXQoJ2dvb2dsZS5nZW9jb2RlLnVybCcpO1xuICBjb25zdCBwYXJhbXM6IG9iamVjdCA9IHtcbiAgICBhZGRyZXNzLFxuICAgIGtleTogQ29uZmlnLmdldCgnZ29vZ2xlLmdlb2NvZGUua2V5JylcbiAgfTtcbiAgY29uc3QgdXJsOiBzdHJpbmcgPSBgJHtnZW9jb2RlVXJsfT8ke3F1ZXJ5U3RyaW5nKHBhcmFtcyl9YDtcblxuICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgIGNvbnN0IHtyZXN1bHRzID0gW10sIHN0YXR1cyA9ICcnfSA9IGpzb247XG5cbiAgICAgIGlmKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBnZW9kYXRhOiBHb29nbGVNYXBzUmVzdWx0VHlwZSA9IHJlc3VsdHNbMF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3NDb21wb25lbnRzOiBHb29nbGVNYXBzQWRkcmVzc1R5cGVbXSA9IGdlb2RhdGE/LmFkZHJlc3NfY29tcG9uZW50cyB8fCBbXTtcblxuICAgICAgICAvLyBTdHJlZXRcbiAgICAgICAgY29uc3Qgc3RyZWV0TnVtYmVyOiBzdHJpbmcgPSBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3N0cmVldF9udW1iZXInKTtcbiAgICAgICAgY29uc3Qgcm91dGU6IHN0cmluZyA9IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAncm91dGUnKTtcblxuICAgICAgICAvLyBMb2NhdGlvblxuICAgICAgICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gSXRlbVxuICAgICAgICBjb25zdCBmb3JtYXRJdGVtVHlwZTogc3RyaW5nID0gcGFyc2VDaGFyKGl0ZW1UeXBlKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBmb3JtYXRJdGVtSWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbUlkKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlSWQ6IHN0cmluZyA9IGdlb2RhdGE/LnBsYWNlX2lkIHx8ICcnO1xuICAgICAgICBjb25zdCB1cGRhdGU6IExvY2F0aW9uVHlwZSA9IHt9O1xuICAgICAgICBjb25zdCBpbnNlcnQ6IExvY2F0aW9uVHlwZSA9IHtcbiAgICAgICAgICBfa2V5OiBjcmVhdGVIYXNoKGBwb3N0LSR7c2Vzc2lvbklkfWApLFxuICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgY2l0eTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdsb2NhbGl0eScpLFxuICAgICAgICAgIGNvdW50cnk6IGdldEZpZWxkVmFsKGFkZHJlc3NDb21wb25lbnRzLCAnY291bnRyeScpLFxuICAgICAgICAgIGZvcm1hdHRlZDogZ2VvZGF0YT8uZm9ybWF0dGVkX2FkZHJlc3MsXG4gICAgICAgICAgZ29vZ2xlSWQsXG4gICAgICAgICAgbGF0aXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxhdCxcbiAgICAgICAgICBsb25naXR1ZGU6IGdlb2RhdGE/Lmdlb21ldHJ5LmxvY2F0aW9uLmxuZyxcbiAgICAgICAgICBzdGF0ZTogZ2V0RmllbGRWYWwoYWRkcmVzc0NvbXBvbmVudHMsICdhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEnKSxcbiAgICAgICAgICBzdHJlZXQ6IFtzdHJlZXROdW1iZXIsIHJvdXRlXS5maWx0ZXIoKG9iaikgPT4gb2JqKS5qb2luKCcgJyksXG4gICAgICAgICAgemlwOiBnZXRGaWVsZFZhbChhZGRyZXNzQ29tcG9uZW50cywgJ3Bvc3RhbF9jb2RlJylcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBVUFNFUlQge2dvb2dsZUlkOiAke2dvb2dsZUlkfX1cbiAgICAgICAgICAgIElOU0VSVCAke2luc2VydH1cbiAgICAgICAgICAgIFVQREFURSAke3VwZGF0ZX1cbiAgICAgICAgICAgIElOIGxvY2F0aW9ucyBSRVRVUk4gTkVXYDtcblxuICAgICAgICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAgIC50aGVuKCh1cGRhdGVkTG9jYXRpb246IExvY2F0aW9uVHlwZSkgPT4ge1xuICAgICAgICAgICAgbGV0IGl0ZW1Eb2NJZDogc3RyaW5nO1xuICAgICAgICAgICAgY29uc3Qge19rZXk6IHVwZGF0ZWRMb2NhdGlvbktleX0gPSB1cGRhdGVkTG9jYXRpb247XG5cbiAgICAgICAgICAgIHN3aXRjaChmb3JtYXRJdGVtVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdwb3N0cyc6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gYHBvc3RzLyR7Zm9ybWF0SXRlbUlkfWA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaXRlbURvY0lkID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgdmFsaWQgaXRlbSBkb2MgaWQsIGNyZWF0ZSBhbiBlZGdlXG4gICAgICAgICAgICBpZihpdGVtRG9jSWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbignaGFzTG9jYXRpb24nKTtcbiAgICAgICAgICAgICAgY29uc3QgbG9jYXRpb25JZDogc3RyaW5nID0gdXBkYXRlZExvY2F0aW9uS2V5O1xuICAgICAgICAgICAgICBjb25zdCBsb2NhdGlvbkRvY0lkOiBzdHJpbmcgPSBgbG9jYXRpb25zLyR7bG9jYXRpb25JZH1gO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlSWQgPSBjcmVhdGVIYXNoKGBoYXNMb2NhdGlvbi0ke2xvY2F0aW9uSWR9LSR7c2Vzc2lvbklkfWApO1xuICAgICAgICAgICAgICBjb25zdCBlZGdlOiBhbnkgPSB7X2Zyb206IGl0ZW1Eb2NJZCwgX2tleTogZWRnZUlkLCBfdG86IGxvY2F0aW9uRG9jSWR9O1xuXG4gICAgICAgICAgICAgIHJldHVybiBlZGdlQ29sbGVjdGlvbi5zYXZlKGVkZ2UsIHtyZXR1cm5OZXc6IHRydWV9KS50aGVuKCgpID0+IHVwZGF0ZWRMb2NhdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSBqdXN0IHJldHVybiB0aGUgbmV3IGxvY2F0aW9uXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZExvY2F0aW9uO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICAgICAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUEsd0JBQTBDO0FBQzFDLG1CQUE2QztBQUM3QyxzQkFBa0I7QUFLbEIsb0JBQXFCO0FBSXJCLDRCQUF1QjtBQUN2QixtQkFBeUI7QUFFekIsTUFBTSxnQkFBd0I7QUFFdkIsTUFBTSxjQUFjLENBQUMsbUJBQTRDLFNBQXlCO0FBQy9GLFFBQU0sRUFBQyxZQUFZLFlBQVksR0FBRSxJQUFJLGtCQUFrQixLQUFLLENBQUMsaUJBQXdDO0FBQ25HLFVBQU0sUUFBUSxhQUFhLFNBQVMsQ0FBQztBQUNyQyxXQUFPLE1BQU0sVUFBVSxDQUFDLGNBQXNCLGNBQWMsSUFBSSxLQUFLO0FBQUEsRUFDdkUsQ0FBQyxLQUFLLENBQUM7QUFFUCxTQUFPO0FBQ1Q7QUFFTyxNQUFNLGNBQWMsQ0FBQyxTQUFxQixhQUFrRDtBQUNqRyxRQUFNLFNBQWlCO0FBQ3ZCLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLFVBQVMsRUFBQyxJQUFJO0FBQ2pELFFBQU0sRUFBQyxTQUFTLFFBQVEsU0FBUSxJQUFJO0FBQ3BDLFFBQU0sYUFBcUIscUJBQU8sSUFBSSxvQkFBb0I7QUFDMUQsUUFBTSxTQUFpQjtBQUFBLElBQ3JCO0FBQUEsSUFDQSxLQUFLLHFCQUFPLElBQUksb0JBQW9CO0FBQUEsRUFDdEM7QUFDQSxRQUFNLE1BQWMsR0FBRyxVQUFVLFFB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
@@ -0,0 +1,13 @@
1
+ import { Database } from 'arangojs';
2
+ import type { ApiContext } from '../types/auth';
3
+ import type { MessageInputType, MessageType } from '../types/messages';
4
+ export declare const getMessages: (context: ApiContext, conversationId: string, { from, to }: {
5
+ from: any;
6
+ to: any;
7
+ }) => Promise<MessageType[]>;
8
+ export declare const updateMessage: (context: ApiContext, message: MessageInputType) => Promise<MessageType>;
9
+ export declare const saveMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
10
+ export declare const unsaveMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
11
+ export declare const deleteMessage: (context: ApiContext, messageId: string, conversationId: string) => Promise<MessageType>;
12
+ export declare const getMessage: (data: MessageType) => MessageType;
13
+ export declare const cleanMessages: (database: Database) => Promise<number>;
@@ -39,8 +39,8 @@ module.exports = __toCommonJS(messages_exports);
39
39
  var import_utils = require("@nlabs/utils");
40
40
  var import_arangojs = require("arangojs");
41
41
  var import_cloneDeep = __toESM(require("lodash/cloneDeep"));
42
- var import_utils2 = require("../utils");
43
- var import_conversations2 = require("./conversations");
42
+ var import_conversations = require("./conversations");
43
+ var import_arangodbUtils = require("../utils/arangodbUtils");
44
44
  const getMessages = (context, conversationId, { from, to }) => {
45
45
  const { database, session: { userId: sessionId } } = context;
46
46
  const formatConversationId = (0, import_utils.parseId)(conversationId);
@@ -54,7 +54,7 @@ const getMessages = (context, conversationId, { from, to }) => {
54
54
  if (!conversations.length) {
55
55
  return [];
56
56
  }
57
- const limit = (0, import_utils2.getLimit)(from, to);
57
+ const limit = (0, import_arangodbUtils.getLimit)(from, to);
58
58
  const aqlQry = `FOR m IN messages
59
59
  FILTER m.conversationId == "${formatConversationId}"
60
60
  SORT m.added DESC
@@ -110,13 +110,13 @@ const updateMessage = (context, message) => {
110
110
  const saveMessage = (context, messageId, conversationId) => {
111
111
  const { database, session: { userId: sessionId } } = context;
112
112
  const formatId = (0, import_utils.parseId)(messageId);
113
- return (0, import_conversations2.getConversation)(context, conversationId).then((conversation) => {
113
+ return (0, import_conversations.getConversation)(context, conversationId).then((conversation) => {
114
114
  const { _key: conversationKey } = conversation;
115
115
  const aqlQry = import_arangojs.aql`FOR m IN messages
116
116
  FILTER m._key == ${formatId} && m.to == ${conversationKey}
117
117
  UPDATE m WITH {saved: APPEND(m.saved, ${sessionId}, true)} IN messages
118
118
  RETURN NEW`;
119
- return database.query(aqlQry).then((cursor) => cursor.next()).then((message = {}) => {
119
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((message) => {
120
120
  if (message) {
121
121
  }
122
122
  return message;
@@ -128,13 +128,13 @@ const saveMessage = (context, messageId, conversationId) => {
128
128
  const unsaveMessage = (context, messageId, conversationId) => {
129
129
  const { database, session: { userId: sessionId } } = context;
130
130
  const formatId = (0, import_utils.parseId)(messageId);
131
- return (0, import_conversations2.getConversation)(context, conversationId).then((conversation) => {
131
+ return (0, import_conversations.getConversation)(context, conversationId).then((conversation) => {
132
132
  const { _key: conversationKey } = conversation;
133
133
  const aqlQry = import_arangojs.aql`FOR m IN messages
134
134
  FILTER m._key == ${formatId} && m.to == ${conversationKey}
135
135
  UPDATE m WITH {saved: REMOVE_VALUE(m.saved, ${sessionId})} IN messages
136
136
  RETURN NEW`;
137
- return database.query(aqlQry).then((cursor) => cursor.next()).then((message = {}) => {
137
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((message) => {
138
138
  if (message) {
139
139
  }
140
140
  return message;
@@ -146,13 +146,13 @@ const unsaveMessage = (context, messageId, conversationId) => {
146
146
  const deleteMessage = (context, messageId, conversationId) => {
147
147
  const { database, session: { userId: sessionId } } = context;
148
148
  const formatId = (0, import_utils.parseId)(messageId);
149
- return (0, import_conversations2.getConversation)(context, conversationId).then((conversation) => {
149
+ return (0, import_conversations.getConversation)(context, conversationId).then((conversation) => {
150
150
  const { _key: conversationKey } = conversation;
151
151
  const aqlQry = import_arangojs.aql`FOR m IN messages
152
152
  FILTER m._key == ${formatId} && m.to == ${conversationKey} && m.from == ${sessionId}
153
153
  REMOVE m IN messages
154
154
  RETURN OLD`;
155
- return database.query(aqlQry).then((cursor) => cursor.next()).then((message = {}) => {
155
+ return database.query(aqlQry).then((cursor) => cursor.next()).then((message) => {
156
156
  if (message) {
157
157
  }
158
158
  return message;
@@ -202,4 +202,4 @@ const cleanMessages = (database) => {
202
202
  unsaveMessage,
203
203
  updateMessage
204
204
  });
205
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbWVzc2FnZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5cbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQge01lc3NhZ2VJbnB1dFR5cGUsIE1lc3NhZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9tZXNzYWdlcyc7XG5pbXBvcnQge2dldExpbWl0fSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2dldENvbnZlcnNhdGlvbn0gZnJvbSAnLi9jb252ZXJzYXRpb25zJztcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGNvbnN0IGdldE1lc3NhZ2VzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsIHtmcm9tLCB0b30pOiBQcm9taXNlPE1lc3NhZ2VUeXBlW10+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdENvbnZlcnNhdGlvbklkOiBzdHJpbmcgPSBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKTtcbiAgY29uc3Qgc2Vzc2lvbkRvY0lkOiBzdHJpbmcgPSBgdXNlcnMvJHtzZXNzaW9uSWR9YDtcbiAgY29uc3QgY29udmVyc2F0aW9uRG9jSWQ6IHN0cmluZyA9IGBjb252ZXJzYXRpb25zLyR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9YDtcblxuICBjb25zdCBjb252ZXJzYXRpb25RcnkgPSBhcWxgRk9SIGUgSU4gaGFzQ29udmVyc2F0aW9uXG4gICAgRklMVEVSIGUuX2Zyb20gPT0gJHtzZXNzaW9uRG9jSWR9ICYmIGUuX3RvID09ICR7Y29udmVyc2F0aW9uRG9jSWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiBlYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoY29udmVyc2F0aW9uUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbnMpID0+IHtcbiAgICAgIGlmKCFjb252ZXJzYXRpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICAgICAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBGSUxURVIgbS5jb252ZXJzYXRpb25JZCA9PSBcIiR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9XCJcbiAgICAgICAgICBTT1JUIG0uYWRkZWQgREVTQ1xuICAgICAgICAgICR7bGltaXQuYXFsfVxuICAgICAgICAgIFNPUlQgbS5hZGRlZCBBU0NcbiAgICAgICAgICBMRVQgdXNlciA9IEZJUlNUKFxuICAgICAgICAgICAgRk9SIHUgSU4gdXNlcnNcbiAgICAgICAgICAgIEZJTFRFUiB1Ll9rZXkgPT0gbS51c2VySWRcbiAgICAgICAgICAgIExJTUlUIDFcbiAgICAgICAgICAgIFJFVFVSTiB1XG4gICAgICAgICAgKVxuICAgICAgICAgIFJFVFVSTiBNRVJHRShtLCB7dXNlcjogdXNlcn0pYDtcblxuICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlOiBNZXNzYWdlSW5wdXRUeXBlKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIGNvbnZlcnNhdGlvbklkLFxuICAgIGZpbGVzLFxuICAgIGltYWdlcyxcbiAgICBtZXNzYWdlSWQgPSBjcmVhdGVIYXNoKGBtZXNzYWdlLSR7c2Vzc2lvbklkfWApXG4gIH0gPSBtZXNzYWdlO1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG5cbiAgaWYoZm9ybWF0Q29udmVyc2F0aW9uSWQgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdyZXF1aXJlZF9jb252ZXJzYXRpb25JZCcpO1xuICB9XG5cbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCB1cGRhdGU6IE1lc3NhZ2VUeXBlID0ge1xuICAgIGNvbnRlbnQ6IHBhcnNlU3RyaW5nKG1lc3NhZ2UuY29udGVudCwgNjQwKSxcbiAgICBmaWxlczogZmlsZXMgfHwgW10sXG4gICAgaW1hZ2VzOiBpbWFnZXMgfHwgW10sXG4gICAgbW9kaWZpZWQ6IG5vd1xuICB9O1xuICBjb25zdCBmb3JtYXRNc2dJZDogc3RyaW5nID0gcGFyc2VJZChtZXNzYWdlSWQpO1xuICBjb25zdCBpbnNlcnQ6IE1lc3NhZ2VUeXBlID0ge1xuICAgIC4uLmNsb25lRGVlcCh1cGRhdGUpLFxuICAgIF9rZXk6IGZvcm1hdE1zZ0lkLFxuICAgIGFkZGVkOiBub3csXG4gICAgY29udmVyc2F0aW9uSWQ6IGZvcm1hdENvbnZlcnNhdGlvbklkLFxuICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke2Zvcm1hdE1zZ0lkfSwgY29udmVyc2F0aW9uSWQ6ICR7Zm9ybWF0Q29udmVyc2F0aW9uSWR9LCB1c2VySWQ6ICR7c2Vzc2lvbklkfX1cbiAgICBJTlNFUlQgJHtpbnNlcnR9XG4gICAgVVBEQVRFICR7dXBkYXRlfSBJTiBtZXNzYWdlc1xuICAgIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNhdmVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1lc3NhZ2VJZDogc3RyaW5nLCBjb252ZXJzYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZlcnNhdGlvbklkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgVVBEQVRFIG0gV0lUSCB7c2F2ZWQ6IEFQUEVORChtLnNhdmVkLCAke3Nlc3Npb25JZH0sIHRydWUpfSBJTiBtZXNzYWdlc1xuICAgICAgICBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgICAgaWYobWVzc2FnZSkge1xuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IHRvIG1lc3NhZ2UgYm94XG4gICAgICAgICAgICAvLyBjb25zdCBtZXNzYWdlOiBNZXNzYWdlVHlwZSA9IE1lc3NhZ2VzLmdldE1lc3NhZ2VPYmplY3QobWVzc2FnZSk7XG4gICAgICAgICAgICAvLyBpby50byhtZXNzYWdlLnRvSWQpLmVtaXQoJ21lc3NhZ2Vfc2F2ZScsIG1lc3NhZ2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCB1bnNhdmVNZXNzYWdlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIG1lc3NhZ2VJZDogc3RyaW5nLCBjb252ZXJzYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2UsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH19ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcblxuICByZXR1cm4gZ2V0Q29udmVyc2F0aW9uKGNvbnRleHQsIGNvbnZlcnNhdGlvbklkKVxuICAgIC50aGVuKChjb252ZXJzYXRpb246IENvbnZlcnNhdGlvblR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHtfa2V5OiBjb252ZXJzYXRpb25LZXl9ID0gY29udmVyc2F0aW9uO1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICAgIEZJTFRFUiBtLl9rZXkgPT0gJHtmb3JtYXRJZH0gJiYgbS50byA9PSAke2NvbnZlcnNhdGlvbktleX1cbiAgICAgICAgICBVUERBVEUgbSBXSVRIIHtzYXZlZDogUkVNT1ZFX1ZBTFVFKG0uc2F2ZWQsICR7c2Vzc2lvbklkfSl9IElOIG1lc3NhZ2VzXG4gICAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgIGlmKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbWVzc2FnZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlcy5nZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gaW8udG8obWVzc2FnZS5pZCkuZW1pdCgnbWVzc2FnZV91bnNhdmUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252ZXJzYXRpb25JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9ICYmIG0uZnJvbSA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUgPSB7fSkgPT4ge1xuICAgICAgICAgIGlmKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbWVzc2FnZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlcy5nZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gaW8udG8obWVzc2FnZS50b0lkKS5lbWl0KCdtZXNzYWdlX2RlbGV0ZScsIG1lc3NhZ2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlID0gKGRhdGE6IE1lc3NhZ2VUeXBlKTogTWVzc2FnZVR5cGUgPT4ge1xuICBjb25zdCB7XG4gICAgYWRkZWQsXG4gICAgY29udGVudCxcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBmaWxlcyxcbiAgICBfa2V5OiBtZXNzYWdlSWQsXG4gICAgcmVhZCxcbiAgICBzYXZlZCxcbiAgICB1c2VySWRcbiAgfSA9IGRhdGE7XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRlZCxcbiAgICBjb250ZW50LFxuICAgIGNvbnZlcnNhdGlvbklkLFxuICAgIGZpbGVzLFxuICAgIG1lc3NhZ2VJZCxcbiAgICByZWFkLFxuICAgIHNhdmVkLFxuICAgIHVzZXJJZFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFuTWVzc2FnZXMgPSAoZGF0YWJhc2U6IERhdGFiYXNlKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgLy8gUmVtb3ZlIGFsbCBtZXNzYWdlcyB0aGF0IGFyZSBvdmVyIDYwIGRheXMgYW5kIG5vdCBzYXZlZFxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIG0gSU4gbWVzc2FnZXNcbiAgICAgIEZJTFRFUiBtLmFkZGVkIDwgREFURV9USU1FU1RBTVAoREFURV9TVUJUUkFDVChEQVRFX05PVygpLCA2MCwgJ2RheScpKSAmJiBMRU5HVEgobS5zYXZlZCkgPiAwXG4gICAgICBSRU1PVkUgbSBJTiBtZXNzYWdlc1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0OiBNZXNzYWdlVHlwZVtdKSA9PiBsaXN0Lmxlbmd0aClcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUlBLG1CQUErQztBQUMvQyxzQkFBNEI7QUFHNUIsdUJBQXNCO0FBTXRCLElBQUFBLGdCQUF1QjtBQUN2QixJQUFBQyx3QkFBOEI7QUFJdkIsTUFBTSxjQUFjLENBQUMsU0FBcUIsZ0JBQXdCLEVBQUMsTUFBTSxHQUFFLE1BQThCO0FBQzlHLFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLFVBQVMsRUFBQyxJQUFJO0FBQ2pELFFBQU0sMkJBQStCLHNCQUFRLGNBQWM7QUFDM0QsUUFBTSxlQUF1QixTQUFTLFNBQVM7QUFDL0MsUUFBTSxvQkFBNEIsaUJBQWlCLG9CQUFvQjtBQUV2RSxRQUFNLGtCQUFrQjtBQUFBLHdCQUNGLFlBQVksZ0JBQWdCLGlCQUFpQjtBQUFBO0FBQUE7QUFJbkUsU0FBTyxTQUFTLE1BQU0sZUFBZSxFQUNsQyxLQUFLLENBQUMsV0FBd0IsT0FBTyxJQUFJLENBQUMsRUFDMUMsS0FBSyxDQUFDLGtCQUFrQjtBQUN2QixRQUFHLENBQUMsY0FBYyxRQUFRO0FBQ3hC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LFNBQVM7QUFBQTtBQUczRCxXQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxLQUFLLENBQUMsVUFBdUIsQ0FBQyxNQUFNO0FBQ25DLFVBQUcsU0FBUztBQUFBLE1BSVo7QUFFQSxhQUFPO0FBQUEsSUFDVCxDQUFDLEVBQ0EsTUFBTSxDQUFDLFVBQWlCO0FBQ3ZCLFlBQU07QUFBQSxJQUNSLENBQUM7QUFBQSxFQUNMLENBQUM7QUFDTDtBQUVPLE1BQU0sZ0JBQWdCLENBQUMsU0FBcUIsV0FBbUIsbUJBQWlEO0FBQ3JILFFBQU0sRUFBQyxVQUFVLFNBQVMsRUFBQyxRQUFRLFVBQVMsRUFBQyxJQUFJO0FBQ2pELFFBQU0sZUFBbUIsc0JBQVEsU0FBUztBQUUxQyxhQUFPLHVDQUFnQixTQUFTLGNBQWMsRUFDM0MsS0FBSyxDQUFDLGlCQUFtQztBQUN4QyxVQUFNLEVBQUMsTUFBTSxnQkFBZSxJQUFJO0FBQ2hDLFVBQU0sU0FBUztBQUFBLDJCQUNNLFFBQVEsZUFBZSxlQUFlLGlCQUFpQixTQUFTO0FBQUE7QUFBQTtBQUlyRixXQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxLQUFLLENBQUMsVUFBdUIsQ0FBQyxNQUFNO0FBQ25DLFVBQUcsU0FBUztBQUFBLE1BSVo7QUFFQSxhQUFPO0FBQUEsSUFDVCxDQUFDLEVBQ0EsTUFBTSxDQUFDLFVBQWlCO0FBQ3ZCLFlBQU07QUFBQSxJQUNSLENBQUM7QUFBQSxFQUNMLENBQUM7QUFDTDtBQUVPLE1BQU0sYUFBYSxDQUFDLFNBQW1DO0FBQzVELFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxNQUFNO0FBQUEsSUFDTjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUNGO0FBRU8sTUFBTSxnQkFBZ0IsQ0FBQyxhQUF3QztBQUVwRSxRQUFNLFNBQVM7QUFBQTtBQUFBO0FBQUE7QUFLZixTQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLElBQUksQ0FBQyxFQUMxQyxLQUFLLENBQUMsU0FBd0IsS0FBSyxNQUFNLEVBQ3pDLE1BQU0sQ0FBQyxVQUFpQjtBQUN2QixVQUFNO0FBQUEsRUFDUixDQUFDO0FBQ0w7IiwKICAibmFtZXMiOiBbImltcG9ydF91dGlscyIsICJpbXBvcnRfY29udmVyc2F0aW9ucyIsICJjbG9uZURlZXAiXQp9Cg==
205
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbWVzc2FnZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvY3Vyc29yJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoL2Nsb25lRGVlcCc7XG5cbmltcG9ydCB0eXBlIHtBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYic7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQgdHlwZSB7Q29udmVyc2F0aW9uVHlwZX0gZnJvbSAnLi4vdHlwZXMvY29udmVyc2F0aW9ucyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZUlucHV0VHlwZSwgTWVzc2FnZVR5cGV9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2VzJztcbmltcG9ydCB7Z2V0Q29udmVyc2F0aW9ufSBmcm9tICcuL2NvbnZlcnNhdGlvbnMnO1xuaW1wb3J0IHtnZXRMaW1pdH0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdtZXNzYWdlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRNZXNzYWdlcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBjb252ZXJzYXRpb25JZDogc3RyaW5nLCB7ZnJvbSwgdG99KTogUHJvbWlzZTxNZXNzYWdlVHlwZVtdPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRDb252ZXJzYXRpb25JZDogc3RyaW5nID0gcGFyc2VJZChjb252ZXJzYXRpb25JZCk7XG4gIGNvbnN0IHNlc3Npb25Eb2NJZDogc3RyaW5nID0gYHVzZXJzLyR7c2Vzc2lvbklkfWA7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkRvY0lkOiBzdHJpbmcgPSBgY29udmVyc2F0aW9ucy8ke2Zvcm1hdENvbnZlcnNhdGlvbklkfWA7XG5cbiAgY29uc3QgY29udmVyc2F0aW9uUXJ5ID0gYXFsYEZPUiBlIElOIGhhc0NvbnZlcnNhdGlvblxuICAgIEZJTFRFUiBlLl9mcm9tID09ICR7c2Vzc2lvbkRvY0lkfSAmJiBlLl90byA9PSAke2NvbnZlcnNhdGlvbkRvY0lkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gZWA7XG5cbiAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGNvbnZlcnNhdGlvblFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChjb252ZXJzYXRpb25zKSA9PiB7XG4gICAgICBpZighY29udmVyc2F0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsaW1pdDogQXJhbmdvRGJMaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgICAgIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uY29udmVyc2F0aW9uSWQgPT0gXCIke2Zvcm1hdENvbnZlcnNhdGlvbklkfVwiXG4gICAgICAgICAgU09SVCBtLmFkZGVkIERFU0NcbiAgICAgICAgICAke2xpbWl0LmFxbH1cbiAgICAgICAgICBTT1JUIG0uYWRkZWQgQVNDXG4gICAgICAgICAgTEVUIHVzZXIgPSBGSVJTVChcbiAgICAgICAgICAgIEZPUiB1IElOIHVzZXJzXG4gICAgICAgICAgICBGSUxURVIgdS5fa2V5ID09IG0udXNlcklkXG4gICAgICAgICAgICBMSU1JVCAxXG4gICAgICAgICAgICBSRVRVUk4gdVxuICAgICAgICAgIClcbiAgICAgICAgICBSRVRVUk4gTUVSR0UobSwge3VzZXI6IHVzZXJ9KWA7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZTogTWVzc2FnZUlucHV0VHlwZSk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBmaWxlcyxcbiAgICBpbWFnZXMsXG4gICAgbWVzc2FnZUlkID0gY3JlYXRlSGFzaChgbWVzc2FnZS0ke3Nlc3Npb25JZH1gKVxuICB9ID0gbWVzc2FnZTtcbiAgY29uc3QgZm9ybWF0Q29udmVyc2F0aW9uSWQ6IHN0cmluZyA9IHBhcnNlSWQoY29udmVyc2F0aW9uSWQpO1xuXG4gIGlmKGZvcm1hdENvbnZlcnNhdGlvbklkID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcigncmVxdWlyZWRfY29udmVyc2F0aW9uSWQnKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgdXBkYXRlOiBNZXNzYWdlVHlwZSA9IHtcbiAgICBjb250ZW50OiBwYXJzZVN0cmluZyhtZXNzYWdlLmNvbnRlbnQsIDY0MCksXG4gICAgZmlsZXM6IGZpbGVzIHx8IFtdLFxuICAgIGltYWdlczogaW1hZ2VzIHx8IFtdLFxuICAgIG1vZGlmaWVkOiBub3dcbiAgfTtcbiAgY29uc3QgZm9ybWF0TXNnSWQ6IHN0cmluZyA9IHBhcnNlSWQobWVzc2FnZUlkKTtcbiAgY29uc3QgaW5zZXJ0OiBNZXNzYWdlVHlwZSA9IHtcbiAgICAuLi5jbG9uZURlZXAodXBkYXRlKSxcbiAgICBfa2V5OiBmb3JtYXRNc2dJZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGNvbnZlcnNhdGlvbklkOiBmb3JtYXRDb252ZXJzYXRpb25JZCxcbiAgICB1c2VySWQ6IHNlc3Npb25JZFxuICB9O1xuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHtmb3JtYXRNc2dJZH0sIGNvbnZlcnNhdGlvbklkOiAke2Zvcm1hdENvbnZlcnNhdGlvbklkfSwgdXNlcklkOiAke3Nlc3Npb25JZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSAke3VwZGF0ZX0gSU4gbWVzc2FnZXNcbiAgICBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gZGF0YWJhc2UucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBzYXZlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252ZXJzYXRpb25JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9XG4gICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBBUFBFTkQobS5zYXZlZCwgJHtzZXNzaW9uSWR9LCB0cnVlKX0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE5FV2A7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9zYXZlJywgbWVzc2FnZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHVuc2F2ZU1lc3NhZ2UgPSAoY29udGV4dDogQXBpQ29udGV4dCwgbWVzc2FnZUlkOiBzdHJpbmcsIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE1lc3NhZ2VUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfX0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChtZXNzYWdlSWQpO1xuXG4gIHJldHVybiBnZXRDb252ZXJzYXRpb24oY29udGV4dCwgY29udmVyc2F0aW9uSWQpXG4gICAgLnRoZW4oKGNvbnZlcnNhdGlvbjogQ29udmVyc2F0aW9uVHlwZSkgPT4ge1xuICAgICAgY29uc3Qge19rZXk6IGNvbnZlcnNhdGlvbktleX0gPSBjb252ZXJzYXRpb247XG4gICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICAgICAgRklMVEVSIG0uX2tleSA9PSAke2Zvcm1hdElkfSAmJiBtLnRvID09ICR7Y29udmVyc2F0aW9uS2V5fVxuICAgICAgICAgIFVQREFURSBtIFdJVEgge3NhdmVkOiBSRU1PVkVfVkFMVUUobS5zYXZlZCwgJHtzZXNzaW9uSWR9KX0gSU4gbWVzc2FnZXNcbiAgICAgICAgICBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIGRhdGFiYXNlLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChtZXNzYWdlOiBNZXNzYWdlVHlwZSkgPT4ge1xuICAgICAgICAgIGlmKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIC8vIEJyb2FkY2FzdCB0byBtZXNzYWdlIGJveFxuICAgICAgICAgICAgLy8gY29uc3QgbWVzc2FnZTogTWVzc2FnZVR5cGUgPSBNZXNzYWdlcy5nZXRNZXNzYWdlT2JqZWN0KG1lc3NhZ2UpO1xuICAgICAgICAgICAgLy8gaW8udG8obWVzc2FnZS5pZCkuZW1pdCgnbWVzc2FnZV91bnNhdmUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlTWVzc2FnZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBtZXNzYWdlSWQ6IHN0cmluZywgY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8TWVzc2FnZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKG1lc3NhZ2VJZCk7XG5cbiAgcmV0dXJuIGdldENvbnZlcnNhdGlvbihjb250ZXh0LCBjb252ZXJzYXRpb25JZClcbiAgICAudGhlbigoY29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlKSA9PiB7XG4gICAgICBjb25zdCB7X2tleTogY29udmVyc2F0aW9uS2V5fSA9IGNvbnZlcnNhdGlvbjtcbiAgICAgIGNvbnN0IGFxbFFyeSA9IGFxbGBGT1IgbSBJTiBtZXNzYWdlc1xuICAgICAgICBGSUxURVIgbS5fa2V5ID09ICR7Zm9ybWF0SWR9ICYmIG0udG8gPT0gJHtjb252ZXJzYXRpb25LZXl9ICYmIG0uZnJvbSA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgICAgIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigobWVzc2FnZTogTWVzc2FnZVR5cGUpID0+IHtcbiAgICAgICAgICBpZihtZXNzYWdlKSB7XG4gICAgICAgICAgICAvLyBCcm9hZGNhc3QgdG8gbWVzc2FnZSBib3hcbiAgICAgICAgICAgIC8vIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2VUeXBlID0gTWVzc2FnZXMuZ2V0TWVzc2FnZU9iamVjdChtZXNzYWdlKTtcbiAgICAgICAgICAgIC8vIGlvLnRvKG1lc3NhZ2UudG9JZCkuZW1pdCgnbWVzc2FnZV9kZWxldGUnLCBtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVzc2FnZSA9IChkYXRhOiBNZXNzYWdlVHlwZSk6IE1lc3NhZ2VUeXBlID0+IHtcbiAgY29uc3Qge1xuICAgIGFkZGVkLFxuICAgIGNvbnRlbnQsXG4gICAgY29udmVyc2F0aW9uSWQsXG4gICAgZmlsZXMsXG4gICAgX2tleTogbWVzc2FnZUlkLFxuICAgIHJlYWQsXG4gICAgc2F2ZWQsXG4gICAgdXNlcklkXG4gIH0gPSBkYXRhO1xuXG4gIHJldHVybiB7XG4gICAgYWRkZWQsXG4gICAgY29udGVudCxcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBmaWxlcyxcbiAgICBtZXNzYWdlSWQsXG4gICAgcmVhZCxcbiAgICBzYXZlZCxcbiAgICB1c2VySWRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjbGVhbk1lc3NhZ2VzID0gKGRhdGFiYXNlOiBEYXRhYmFzZSk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gIC8vIFJlbW92ZSBhbGwgbWVzc2FnZXMgdGhhdCBhcmUgb3ZlciA2MCBkYXlzIGFuZCBub3Qgc2F2ZWRcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiBtIElOIG1lc3NhZ2VzXG4gICAgICBGSUxURVIgbS5hZGRlZCA8IERBVEVfVElNRVNUQU1QKERBVEVfU1VCVFJBQ1QoREFURV9OT1coKSwgNjAsICdkYXknKSkgJiYgTEVOR1RIKG0uc2F2ZWQpID4gMFxuICAgICAgUkVNT1ZFIG0gSU4gbWVzc2FnZXNcbiAgICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiBkYXRhYmFzZS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdDogTWVzc2FnZVR5cGVbXSkgPT4gbGlzdC5sZW5ndGgpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxtQkFBK0M7QUFDL0Msc0JBQTRCO0FBRzVCLHVCQUFzQjtBQU10QiwyQkFBOEI7QUFDOUIsMkJBQXVCO0FBSWhCLE1BQU0sY0FBYyxDQUFDLFNBQXFCLGdCQUF3QixFQUFDLE1BQU0sR0FBRSxNQUE4QjtBQUM5RyxRQUFNLEVBQUMsVUFBVSxTQUFTLEVBQUMsUUFBUSxVQUFTLEVBQUMsSUFBSTtBQUNqRCxRQUFNLDJCQUErQixzQkFBUSxjQUFjO0FBQzNELFFBQU0sZUFBdUIsU0FBUyxTQUFTO0FBQy9DLFFBQU0sb0JBQTRCLGlCQUFpQixvQkFBb0I7QUFFdkUsUUFBTSxrQkFBa0I7QUFBQSx3QkFDRixZQUFZLGdCQUFnQixpQkFBaUI7QUFBQTtBQUFBO0FBSW5FLFNBQU8sU0FBUyxNQUFNLGVBQWUsRUFDbEMsS0FBSyxDQUFDLFdBQXdCLE9BQU8sSUFBSSxDQUFDLEVBQzFDLEtBQUssQ0FBQyxrQkFBa0I7QUFDdkIsUUFBRyxDQUFDLGNBQWMsUUFB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QVM7QUFBQTtBQUczRCxXQUFPLFNBQVMsTUFBTSxNQUFNLEVBQ3pCLEtBQUssQ0FBQyxXQUF3QixPQUFPLEtBQUssQ0FBQyxFQUMzQyxLQUFLLENBQUMsWUFBeUI7QUFDOUIsVUFBRyxTQUFTO0FBQUEsTUFJWjtBQUVBLGFBQU87QUFBQSxJQUNULENBQUMsRUFDQSxNQUFNLENBQUMsVUFBaUI7QUFDdkIsWUFBTTtBQUFBLElBQ1IsQ0FBQztBQUFBLEVBQ0wsQ0FBQztBQUNMO0FBRU8sTUFBTSxnQkFBZ0IsQ0FBQyxTQUFxQixXQUFtQixtQkFBaUQ7QUFDckgsUUFBTSxFQUFDLFVBQVUsU0FBUyxFQUFDLFFBQVEsVUFBUyxFQUFDLElBQUk7QUFDakQsUUFBTSxlQUFtQixzQkFBUSxTQUFTO0FBRTFDLGFBQU8sc0NBQWdCLFNBQVMsY0FBYyxFQUMzQyxLQUFLLENBQUMsaUJBQW1DO0FBQ3hDLFVBQU0sRUFBQyxNQUFNLGdCQUFlLElBQUk7QUFDaEMsVUFBTSxTQUFTO0FBQUEsMkJBQ00sUUFBUSxlQUFlLGVBQWUsaUJBQWlCLFNBQVM7QUFBQTtBQUFBO0FBSXJGLFdBQU8sU0FBUyxNQUFNLE1BQU0sRUFDekIsS0FBSyxDQUFDLFdBQXdCLE9BQU8sS0FBSyxDQUFDLEVBQzNDLEtBQUssQ0FBQyxZQUF5QjtBQUM5QixVQUFHLFNBQVM7QUFBQSxNQUlaO0FBRUEsYUFBTztBQUFBLElBQ1QsQ0FBQyxFQUNBLE1BQU0sQ0FBQyxVQUFpQjtBQUN2QixZQUFNO0FBQUEsSUFDUixDQUFDO0FBQUEsRUFDTCxDQUFDO0FBQ0w7QUFFTyxNQUFNLGFBQWEsQ0FBQyxTQUFtQztBQUM1RCxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLElBQ047QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0Y7QUFDRjtBQUVPLE1BQU0sZ0JBQWdCLENBQUMsYUFBd0M7QUFFcEUsUUFBTSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBS2YsU0FBTyxTQUFTLE1BQU0sTUFBTSxFQUN6QixLQUFLLENBQUMsV0FBd0IsT0FBTyxJQUFJLENBQUMsRUFDMUMsS0FBSyxDQUFDLFNBQXdCLEtBQUssTUFBTSxFQUN6QyxNQUFNLENBQUMsVUFBaUI7QUFDdkIsVUFBTTtBQUFBLEVBQ1IsQ0FBQztBQUNMOyIsCiAgIm5hbWVzIjogWyJjbG9uZURlZXAiXQp9Cg==
@@ -0,0 +1,5 @@
1
+ import { Provider, Responses } from 'apn';
2
+ import type { NotificationType } from '../types/notifications';
3
+ export declare const getApnProvider: () => Provider;
4
+ export declare const pushNotification: (deviceTokens: string[], note: NotificationType) => Promise<Responses>;
5
+ export declare const clearBadges: (deviceTokens: string[]) => Promise<Responses>;
@@ -56,4 +56,4 @@ const clearBadges = (deviceTokens) => {
56
56
  getApnProvider,
57
57
  pushNotification
58
58
  });
59
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbm90aWZpY2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Tm90aWZpY2F0aW9uIGFzIEFQTk5vdGlmaWNhdGlvbiwgUHJvdmlkZXIsIFJlc3BvbnNlc30gZnJvbSAnYXBuJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge05vdGlmaWNhdGlvblR5cGV9IGZyb20gJy4uL3R5cGVzL25vdGlmaWNhdGlvbnMnO1xuXG4vLyBjb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnbm90aWZpY2F0aW9ucyc7XG5cbi8vIFB1c2ggTm90aWZpY2F0aW9uc1xuZXhwb3J0IGNvbnN0IGdldEFwblByb3ZpZGVyID0gKCk6IFByb3ZpZGVyID0+IG5ldyBQcm92aWRlcih7XG4gIGNhOiBDb25maWcuZ2V0KCdhcHAuYXBuLmNhJyksXG4gIGNlcnQ6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2VydCcpLFxuICBrZXk6IENvbmZpZy5nZXQoJ2FwcC5hcG4ua2V5JyksXG4gIHByb2R1Y3Rpb246IENvbmZpZy5nZXQoJ2Vudmlyb25tZW50JykgPT09ICdwcm9kJ1xufSk7XG5cbmV4cG9ydCBjb25zdCBwdXNoTm90aWZpY2F0aW9uID0gKGRldmljZVRva2Vuczogc3RyaW5nW10sIG5vdGU6IE5vdGlmaWNhdGlvblR5cGUpOiBQcm9taXNlPFJlc3BvbnNlcz4gPT4ge1xuICAvLyBQdXNoIG5vdGlmaWNhdGlvbiB0byBkZXZpY2VcbiAgY29uc3QgcHJvdmlkZXI6IFByb3ZpZGVyID0gZ2V0QXBuUHJvdmlkZXIoKTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uOiBBUE5Ob3RpZmljYXRpb24gPSBuZXcgQVBOTm90aWZpY2F0aW9uKCk7XG4gIG5vdGlmaWNhdGlvbi50b3BpYyA9IENvbmZpZy5nZXQoJ2FwcC5hcG4uaWQnKTtcbiAgbm90aWZpY2F0aW9uLmFsZXJ0ID0gbm90ZS5tZXNzYWdlO1xuXG4gIGlmKG5vdGUuZGF0YSkge1xuICAgIG5vdGlmaWNhdGlvbi5tdXRhYmxlQ29udGVudCA9IHRydWU7XG4gICAgbm90aWZpY2F0aW9uLnBheWxvYWQgPSBub3RlLmRhdGE7XG4gIH1cblxuICBpZihub3RlLmJhZGdlICE9PSB1bmRlZmluZWQpIHtcbiAgICBub3RpZmljYXRpb24uYmFkZ2UgPSBub3RlLmJhZGdlO1xuICB9XG5cbiAgcmV0dXJuIHByb3ZpZGVyLnNlbmQobm90aWZpY2F0aW9uLCBkZXZpY2VUb2tlbnMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFyQmFkZ2VzID0gKGRldmljZVRva2Vuczogc3RyaW5nW10pOiBQcm9taXNlPFJlc3BvbnNlcz4gPT4ge1xuICAvLyBQdXNoIG5vdGlmaWNhdGlvbiB0byBkZXZpY2VcbiAgY29uc3QgcHJvdmlkZXIgPSBnZXRBcG5Qcm92aWRlcigpO1xuICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgQVBOTm90aWZpY2F0aW9uKCk7XG4gIG5vdGlmaWNhdGlvbi5iYWRnZSA9IDA7XG5cbiAgcmV0dXJuIHByb3ZpZGVyLnNlbmQobm90aWZpY2F0aW9uLCBkZXZpY2VUb2tlbnMpO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSxpQkFBbUU7QUFFbkUsb0JBQXFCO0FBTWQsTUFBTSxpQkFBaUIsTUFBZ0IsSUFBSSxvQkFBUztBQUFBLEVBQ3pELElBQUkscUJBQU8sSUFBSSxZQUFZO0FBQUEsRUFDM0IsTUFBTSxxQkFBTyxJQUFJLGNBQWM7QUFBQSxFQUMvQixLQUFLLHFCQUFPLElBQUksYUFBYTtBQUFBLEVBQzdCLFlBQVkscUJBQU8sSUFBSSxhQUFhLE1BQU07QUFDNUMsQ0FBQztBQUVNLE1BQU0sbUJBQW1CLENBQUMsY0FBd0IsU0FBK0M7QUFFdEcsUUFBTSxXQUFxQixlQUFlO0FBQzFDLFFBQU0sZUFBZ0MsSUFBSSxXQUFBQSxhQUFnQjtBQUMxRCxlQUFhLFFBQVEscUJBQU8sSUFBSSxZQUFZO0FBQzVDLGVBQWEsUUFBUSxLQUFLO0FBRTFCLE1BQUcsS0FBSyxNQUFNO0FBQ1osaUJBQWEsaUJBQWlCO0FBQzlCLGlCQUFhLFVBQVUsS0FBSztBQUFBLEVBQzlCO0FBRUEsTUFBRyxLQUFLLFVBQVUsUUFBVztBQUMzQixpQkFBYSxRQUFRLEtBQUs7QUFBQSxFQUM1QjtBQUVBLFNBQU8sU0FBUyxLQUFLLGNBQWMsWUFBWTtBQUNqRDtBQUVPLE1BQU0sY0FBYyxDQUFDLGlCQUErQztBQUV6RSxRQUFNLFdBQVcsZUFBZTtBQUNoQyxRQUFNLGVBQWUsSUFBSSxXQUFBQSxhQUFnQjtBQUN6QyxlQUFhLFFBQVE7QUFFckIsU0FBTyxTQUFTLEtBQUssY0FBYyxZQUFZO0FBQ2pEOyIsCiAgIm5hbWVzIjogWyJBUE5Ob3RpZmljYXRpb24iXQp9Cg==
59
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2FjdGlvbnMvbm90aWZpY2F0aW9ucy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdub3RpZmljYXRpb25zJztcbi8vIFB1c2ggTm90aWZpY2F0aW9uc1xuaW1wb3J0IHtOb3RpZmljYXRpb24gYXMgQVBOTm90aWZpY2F0aW9uLCBQcm92aWRlciwgUmVzcG9uc2VzfSBmcm9tICdhcG4nO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB0eXBlIHtOb3RpZmljYXRpb25UeXBlfSBmcm9tICcuLi90eXBlcy9ub3RpZmljYXRpb25zJztcblxuZXhwb3J0IGNvbnN0IGdldEFwblByb3ZpZGVyID0gKCkgPT4gbmV3IFByb3ZpZGVyKHtcbiAgY2E6IENvbmZpZy5nZXQoJ2FwcC5hcG4uY2EnKSxcbiAgY2VydDogQ29uZmlnLmdldCgnYXBwLmFwbi5jZXJ0JyksXG4gIGtleTogQ29uZmlnLmdldCgnYXBwLmFwbi5rZXknKSxcbiAgcHJvZHVjdGlvbjogQ29uZmlnLmdldCgnZW52aXJvbm1lbnQnKSA9PT0gJ3Byb2QnXG59KTtcblxuZXhwb3J0IGNvbnN0IHB1c2hOb3RpZmljYXRpb24gPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSwgbm90ZTogTm90aWZpY2F0aW9uVHlwZSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlcjogUHJvdmlkZXIgPSBnZXRBcG5Qcm92aWRlcigpO1xuICBjb25zdCBub3RpZmljYXRpb246IEFQTk5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLnRvcGljID0gQ29uZmlnLmdldCgnYXBwLmFwbi5pZCcpO1xuICBub3RpZmljYXRpb24uYWxlcnQgPSBub3RlLm1lc3NhZ2U7XG5cbiAgaWYobm90ZS5kYXRhKSB7XG4gICAgbm90aWZpY2F0aW9uLm11dGFibGVDb250ZW50ID0gdHJ1ZTtcbiAgICBub3RpZmljYXRpb24ucGF5bG9hZCA9IG5vdGUuZGF0YTtcbiAgfVxuXG4gIGlmKG5vdGUuYmFkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIG5vdGlmaWNhdGlvbi5iYWRnZSA9IG5vdGUuYmFkZ2U7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJCYWRnZXMgPSAoZGV2aWNlVG9rZW5zOiBzdHJpbmdbXSk6IFByb21pc2U8UmVzcG9uc2VzPiA9PiB7XG4gIC8vIFB1c2ggbm90aWZpY2F0aW9uIHRvIGRldmljZVxuICBjb25zdCBwcm92aWRlciA9IGdldEFwblByb3ZpZGVyKCk7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBBUE5Ob3RpZmljYXRpb24oKTtcbiAgbm90aWZpY2F0aW9uLmJhZGdlID0gMDtcblxuICByZXR1cm4gcHJvdmlkZXIuc2VuZChub3RpZmljYXRpb24sIGRldmljZVRva2Vucyk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLGlCQUFtRTtBQUVuRSxvQkFBcUI7QUFHZCxNQUFNLGlCQUFpQixNQUFNLElBQUksb0JBQVM7QUFBQSxFQUMvQyxJQUFJLHFCQUFPLElBQUksWUFBWTtBQUFBLEVBQzNCLE1BQU0scUJBQU8sSUFBSSxjQUFjO0FBQUEsRUFDL0IsS0FBSyxxQkFBTyxJQUFJLGFBQWE7QUFBQSxFQUM3QixZQUFZLHFCQUFPLElBQUksYUFBYSxNQUFNO0FBQzVDLENBQUM7QUFFTSxNQUFNLG1CQUFtQixDQUFDLGNBQXdCLFNBQStDO0FBRXRHLFFBQU0sV0FBcUIsZUFBZTtBQUMxQyxRQUFNLGVBQWdDLElBQUksV0FBQUEsYUFBZ0I7QUFDMUQsZUFBYSxRQUFRLHFCQUFPLElBQUksWUFBWTtBQUM1QyxlQUFhLFFBQVEsS0FBSztBQUUxQixNQUFHLEtBQUssTUFBTTtBQUNaLGlCQUFhLGlCQUFpQjtBQUM5QixpQkFBYSxVQUFVLEtBQUs7QUFBQSxFQUM5QjtBQUVBLE1BQUcsS0FBSyxVQUFVLFFBQVc7QUFDM0IsaUJBQWEsUUFBUSxLQUFLO0FBQUEsRUFDNUI7QUFFQSxTQUFPLFNBQVMsS0FBSyxjQUFjLFlBQVk7QUFDakQ7QUFFTyxNQUFNLGNBQWMsQ0FBQyxpQkFBK0M7QUFFekUsUUFBTSxXQUFXLGVBQWU7QUFDaEMsUUFBTSxlQUFlLElBQUksV0FBQUEsYUFBZ0I7QUFDekMsZUFBYSxRQUFRO0FBRXJCLFNBQU8sU0FBUyxLQUFLLGNBQWMsWUFBWTtBQUNqRDsiLAogICJuYW1lcyI6IFsiQVBOTm90aWZpY2F0aW9uIl0KfQo=
@@ -0,0 +1,10 @@
1
+ import { ApiContext, PaymentBankAccount, PaymentCardType, PaymentCharge, PaymentTransfer, UserType } from '../types';
2
+ export declare const addCustomerAccount: (context: ApiContext) => Promise<boolean>;
3
+ export declare const addBankAccount: (context: ApiContext, bankAccount: PaymentBankAccount) => Promise<boolean>;
4
+ export declare const addCreditCard: (context: ApiContext, card: PaymentCardType) => Promise<UserType>;
5
+ export declare const updateCreditCard: (context: ApiContext, card: PaymentCardType) => Promise<PaymentCardType>;
6
+ export declare const getCreditCards: (context: ApiContext) => Promise<PaymentCardType[]>;
7
+ export declare const deleteCreditCard: (context: ApiContext, cardId: string) => Promise<boolean>;
8
+ export declare const deleteBankAccount: (context: ApiContext, bankId: string) => Promise<boolean>;
9
+ export declare const createPaymentTransfer: (context: ApiContext, transfer: PaymentTransfer) => Promise<PaymentTransfer>;
10
+ export declare const createPaymentHold: (context: ApiContext, payment: PaymentCharge) => Promise<PaymentCharge>;