@lifeready/core 1.0.21 → 1.0.23

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 (277) hide show
  1. package/bundles/lifeready-core.umd.js +10612 -10527
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +1 -15
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/ast.js +2 -1
  6. package/esm2015/lib/_common/deferred-promise.js +1 -1
  7. package/esm2015/lib/_common/exceptions.js +1 -1
  8. package/esm2015/lib/_common/queries.gql.js +1 -1
  9. package/esm2015/lib/_common/run-outside-angular.js +3 -2
  10. package/esm2015/lib/_common/types.js +2 -1
  11. package/esm2015/lib/_common/utils.js +2 -1
  12. package/esm2015/lib/api/lr-apollo.service.js +4 -3
  13. package/esm2015/lib/api/lr-graphql/index.js +1 -1
  14. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +9 -8
  15. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +5 -6
  16. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +1 -1
  17. package/esm2015/lib/api/lr-graphql/lr-mutation.js +3 -3
  18. package/esm2015/lib/api/lr-graphql/lr.service.js +1 -1
  19. package/esm2015/lib/api/query-processor/common-processors.service.js +4 -3
  20. package/esm2015/lib/api/query-processor/index.js +1 -1
  21. package/esm2015/lib/api/query-processor/query-processor.service.js +5 -4
  22. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +8 -7
  23. package/esm2015/lib/api/types/graphql.types.js +2 -1
  24. package/esm2015/lib/api/types/index.js +1 -1
  25. package/esm2015/lib/api/types/lr-graphql.types.js +1 -1
  26. package/esm2015/lib/auth/auth.config.js +1 -1
  27. package/esm2015/lib/auth/auth.gql.js +1 -28
  28. package/esm2015/lib/auth/auth.types.js +1 -1
  29. package/esm2015/lib/auth/life-ready-auth.service.js +36 -32
  30. package/esm2015/lib/category/category-meta.service.js +1 -1
  31. package/esm2015/lib/category/category.gql.js +3 -2
  32. package/esm2015/lib/category/category.service.js +9 -8
  33. package/esm2015/lib/category/category.types.js +1 -1
  34. package/esm2015/lib/contact-card/contact-card.gql.js +79 -0
  35. package/esm2015/lib/contact-card/contact-card.service.js +156 -0
  36. package/esm2015/lib/contact-card/contact-card2.gql.js +29 -0
  37. package/esm2015/lib/contact-card/contact-card2.service.js +103 -0
  38. package/esm2015/lib/encryption/encryption.service.js +190 -0
  39. package/esm2015/lib/file-upload/file-upload.service.js +74 -0
  40. package/esm2015/lib/file-upload/file-upload.types.js +2 -0
  41. package/esm2015/lib/idle/idle.service.js +168 -0
  42. package/esm2015/lib/idle/idle.types.js +7 -0
  43. package/esm2015/lib/item2/item2.gql.js +127 -0
  44. package/esm2015/lib/item2/item2.gql.private.js +23 -0
  45. package/esm2015/lib/item2/item2.service.js +519 -0
  46. package/esm2015/lib/item2/item2.types.js +2 -0
  47. package/esm2015/lib/key/key-factory.service.js +237 -0
  48. package/esm2015/lib/key/key-graph.service.js +300 -0
  49. package/esm2015/lib/key/key-meta.service.js +201 -0
  50. package/esm2015/lib/{cryptography → key}/key.service.js +4 -4
  51. package/esm2015/lib/key/key.types.js +11 -0
  52. package/esm2015/lib/key-exchange/key-exchange.gql.js +188 -0
  53. package/esm2015/lib/key-exchange/key-exchange.service.js +441 -0
  54. package/esm2015/lib/key-exchange/key-exchange.types.js +7 -0
  55. package/esm2015/lib/key-exchange/key-exchange2.gql.js +171 -0
  56. package/esm2015/lib/key-exchange/key-exchange2.service.js +500 -0
  57. package/esm2015/lib/lbop/lbop.service.js +357 -0
  58. package/esm2015/lib/life-ready.config.js +2 -1
  59. package/esm2015/lib/life-ready.module.js +2 -27
  60. package/esm2015/lib/lock/lock.gql.js +40 -0
  61. package/esm2015/lib/lock/lock.service.js +64 -0
  62. package/esm2015/lib/message/message.gql.js +32 -0
  63. package/esm2015/lib/message/message.service.js +118 -0
  64. package/esm2015/lib/message/message.types.js +2 -0
  65. package/esm2015/lib/notification/notification.gql.js +1 -1
  66. package/esm2015/lib/notification/notification.service.js +2 -2
  67. package/esm2015/lib/password/password.gql.js +28 -0
  68. package/esm2015/lib/password/password.service.js +316 -0
  69. package/esm2015/lib/persist/persist.service.js +181 -0
  70. package/esm2015/lib/plan/plan.gql.js +1 -1
  71. package/esm2015/lib/plan/plan.service.js +3 -2
  72. package/esm2015/lib/plan/plan.types.js +1 -1
  73. package/esm2015/lib/profile/profile-details.service.js +215 -0
  74. package/esm2015/lib/profile/profile.gql.js +98 -0
  75. package/esm2015/lib/profile/profile.service.js +170 -0
  76. package/esm2015/lib/profile/profile.types.js +34 -0
  77. package/esm2015/lib/record/record-attachment.service.js +16 -15
  78. package/esm2015/lib/record/record.gql.js +1 -1
  79. package/esm2015/lib/record/record.service.js +8 -8
  80. package/esm2015/lib/record/record.types.js +1 -1
  81. package/esm2015/lib/record-type/record-type.service.js +1 -1
  82. package/esm2015/lib/record-type/record-type.types.js +1 -1
  83. package/esm2015/lib/register/register.service.js +173 -0
  84. package/esm2015/lib/scenario/scenario.constants.js +1 -1
  85. package/esm2015/lib/scenario/scenario.controller.js +2 -2
  86. package/esm2015/lib/scenario/scenario.gql.js +1 -1
  87. package/esm2015/lib/scenario/scenario.private.gql.js +198 -0
  88. package/esm2015/lib/scenario/scenario.service.js +19 -17
  89. package/esm2015/lib/scenario/scenario.types.js +2 -1
  90. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +119 -0
  91. package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +41 -0
  92. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +117 -0
  93. package/esm2015/lib/slip39/slip39.service.js +167 -0
  94. package/esm2015/lib/time/time.service.js +146 -0
  95. package/esm2015/lib/tp-assembly/tp-assembly.js +365 -0
  96. package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +22 -0
  97. package/esm2015/lib/tp-assembly/tp-assembly.types.js +2 -0
  98. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +100 -0
  99. package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +118 -0
  100. package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +4 -0
  101. package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +34 -0
  102. package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +74 -0
  103. package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +165 -0
  104. package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +54 -0
  105. package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +92 -0
  106. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +2 -0
  107. package/esm2015/lib/trusted-party/trusted-party.gql.js +148 -0
  108. package/esm2015/lib/trusted-party/trusted-party.service.js +327 -0
  109. package/esm2015/lib/trusted-party/trusted-party.types.js +41 -0
  110. package/esm2015/lib/trusted-party/trusted-party2.gql.js +64 -0
  111. package/esm2015/lib/trusted-party/trusted-party2.gql.private.js +25 -0
  112. package/esm2015/lib/trusted-party/trusted-party2.service.js +224 -0
  113. package/esm2015/lib/trusted-party/trusted-party2.types.js +2 -0
  114. package/esm2015/lib/two-factor/two-factor.service.js +74 -0
  115. package/esm2015/lib/user/user.gql.js +60 -0
  116. package/esm2015/lib/user/user.service.js +80 -0
  117. package/esm2015/lib/user/user.types.js +2 -0
  118. package/esm2015/lib/web-crypto/web-crypto.service.js +29 -0
  119. package/esm2015/lifeready-core.js +15 -13
  120. package/esm2015/public-api.js +49 -51
  121. package/fesm2015/lifeready-core.js +8764 -8737
  122. package/fesm2015/lifeready-core.js.map +1 -1
  123. package/lib/_common/types.d.ts +3 -1
  124. package/lib/_common/utils.d.ts +2 -2
  125. package/lib/api/lr-apollo.service.d.ts +2 -2
  126. package/lib/api/lr-graphql/lr-graphql.service.d.ts +26 -8
  127. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +22 -4
  128. package/lib/api/lr-graphql/lr-mutation.d.ts +1 -2
  129. package/lib/api/query-processor/common-processors.service.d.ts +1 -1
  130. package/lib/api/query-processor/query-processor.service.d.ts +1 -1
  131. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +2 -2
  132. package/lib/api/types/lr-graphql.types.d.ts +14 -3
  133. package/lib/auth/auth.gql.d.ts +0 -3
  134. package/lib/auth/auth.types.d.ts +5 -5
  135. package/lib/auth/life-ready-auth.service.d.ts +13 -13
  136. package/lib/category/category.gql.d.ts +1 -1
  137. package/lib/category/category.service.d.ts +3 -3
  138. package/lib/{api → contact-card}/contact-card.service.d.ts +9 -9
  139. package/lib/contact-card/contact-card2.gql.d.ts +25 -0
  140. package/lib/contact-card/contact-card2.service.d.ts +64 -0
  141. package/lib/{cryptography → encryption}/encryption.service.d.ts +10 -9
  142. package/lib/{api/file.service.d.ts → file-upload/file-upload.service.d.ts} +5 -8
  143. package/lib/file-upload/file-upload.types.d.ts +5 -0
  144. package/lib/{auth → idle}/idle.service.d.ts +6 -6
  145. package/lib/{items2 → item2}/item2.gql.d.ts +16 -16
  146. package/lib/{items2 → item2}/item2.service.d.ts +34 -35
  147. package/lib/{cryptography → key}/key-factory.service.d.ts +4 -3
  148. package/lib/{cryptography → key}/key-graph.service.d.ts +6 -6
  149. package/lib/{cryptography → key}/key-meta.service.d.ts +1 -1
  150. package/lib/{cryptography → key}/key.service.d.ts +2 -2
  151. package/lib/{cryptography/cryptography.types.d.ts → key/key.types.d.ts} +13 -17
  152. package/lib/{api → key-exchange}/key-exchange.service.d.ts +5 -5
  153. package/lib/{api → key-exchange}/key-exchange.types.d.ts +4 -4
  154. package/lib/{api → key-exchange}/key-exchange2.gql.d.ts +1 -1
  155. package/lib/{api → key-exchange}/key-exchange2.service.d.ts +82 -29
  156. package/lib/{auth → lbop}/lbop.service.d.ts +7 -7
  157. package/lib/life-ready.config.d.ts +1 -1
  158. package/lib/{api → lock}/lock.gql.d.ts +1 -1
  159. package/lib/{api → lock}/lock.service.d.ts +1 -1
  160. package/lib/message/message.gql.d.ts +13 -0
  161. package/lib/message/message.service.d.ts +36 -0
  162. package/lib/message/message.types.d.ts +12 -0
  163. package/lib/notification/notification.service.d.ts +3 -2
  164. package/lib/password/password.gql.d.ts +3 -0
  165. package/lib/{auth → password}/password.service.d.ts +9 -9
  166. package/lib/{api → persist}/persist.service.d.ts +3 -3
  167. package/lib/plan/plan.service.d.ts +3 -2
  168. package/lib/plan/plan.types.d.ts +2 -1
  169. package/lib/{users → profile}/profile-details.service.d.ts +3 -3
  170. package/lib/{users → profile}/profile.gql.d.ts +2 -2
  171. package/lib/{users → profile}/profile.service.d.ts +6 -6
  172. package/lib/{users → profile}/profile.types.d.ts +3 -2
  173. package/lib/record/record-attachment.service.d.ts +6 -6
  174. package/lib/record/record.service.d.ts +3 -3
  175. package/lib/{auth → register}/register.service.d.ts +4 -4
  176. package/lib/scenario/scenario.controller.d.ts +1 -1
  177. package/lib/scenario/scenario.service.d.ts +105 -5
  178. package/lib/scenario/scenario.types.d.ts +1 -1
  179. package/lib/{api → shared-contact-card}/shared-contact-card.service.d.ts +9 -9
  180. package/lib/{api → shared-contact-card}/shared-contact-card2.gql.d.ts +1 -1
  181. package/lib/{api → shared-contact-card}/shared-contact-card2.service.d.ts +6 -6
  182. package/lib/{cryptography → slip39}/slip39.service.d.ts +0 -1
  183. package/lib/{trusted-parties → tp-assembly}/tp-assembly.d.ts +7 -7
  184. package/lib/{trusted-parties → tp-assembly}/tp-assembly.types.d.ts +3 -3
  185. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-request.service.d.ts +5 -9
  186. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset-user.service.d.ts +7 -13
  187. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.controller.d.ts +1 -1
  188. package/lib/tp-password-reset/tp-password-reset.gql.d.ts +63 -0
  189. package/lib/{trusted-parties/tp-password-reset.gql.d.ts → tp-password-reset/tp-password-reset.private.gql.d.ts} +1 -63
  190. package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +59 -0
  191. package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.service.d.ts +6 -89
  192. package/lib/tp-password-reset/tp-password-reset.types.d.ts +40 -0
  193. package/lib/{trusted-parties → trusted-party}/trusted-party.service.d.ts +7 -7
  194. package/lib/{trusted-parties → trusted-party}/trusted-party.types.d.ts +2 -3
  195. package/lib/{trusted-parties → trusted-party}/trusted-party2.gql.d.ts +0 -22
  196. package/lib/trusted-party/trusted-party2.gql.private.d.ts +23 -0
  197. package/lib/{trusted-parties → trusted-party}/trusted-party2.service.d.ts +11 -35
  198. package/lib/trusted-party/trusted-party2.types.d.ts +12 -0
  199. package/lib/{users → user}/user.gql.d.ts +1 -1
  200. package/lib/{users → user}/user.service.d.ts +1 -1
  201. package/lib/{users → user}/user.types.d.ts +1 -1
  202. package/lifeready-core.d.ts +14 -12
  203. package/lifeready-core.metadata.json +1 -1
  204. package/package.json +2 -2
  205. package/public-api.d.ts +48 -50
  206. package/esm2015/lib/api/contact-card.gql.js +0 -79
  207. package/esm2015/lib/api/contact-card.service.js +0 -154
  208. package/esm2015/lib/api/contact-card2.gql.js +0 -60
  209. package/esm2015/lib/api/contact-card2.service.js +0 -103
  210. package/esm2015/lib/api/file.service.js +0 -74
  211. package/esm2015/lib/api/key-exchange.gql.js +0 -188
  212. package/esm2015/lib/api/key-exchange.service.js +0 -442
  213. package/esm2015/lib/api/key-exchange.types.js +0 -7
  214. package/esm2015/lib/api/key-exchange2.gql.js +0 -171
  215. package/esm2015/lib/api/key-exchange2.service.js +0 -480
  216. package/esm2015/lib/api/lock.gql.js +0 -40
  217. package/esm2015/lib/api/lock.service.js +0 -64
  218. package/esm2015/lib/api/message.service.js +0 -138
  219. package/esm2015/lib/api/persist.service.js +0 -181
  220. package/esm2015/lib/api/shared-contact-card.service.js +0 -119
  221. package/esm2015/lib/api/shared-contact-card2.gql.js +0 -41
  222. package/esm2015/lib/api/shared-contact-card2.service.js +0 -117
  223. package/esm2015/lib/api/time.service.js +0 -146
  224. package/esm2015/lib/auth/idle.service.js +0 -168
  225. package/esm2015/lib/auth/idle.types.js +0 -7
  226. package/esm2015/lib/auth/lbop.service.js +0 -355
  227. package/esm2015/lib/auth/password.service.js +0 -315
  228. package/esm2015/lib/auth/register.service.js +0 -172
  229. package/esm2015/lib/auth/two-factor.service.js +0 -74
  230. package/esm2015/lib/cryptography/cryptography.types.js +0 -11
  231. package/esm2015/lib/cryptography/encryption.service.js +0 -189
  232. package/esm2015/lib/cryptography/key-factory.service.js +0 -237
  233. package/esm2015/lib/cryptography/key-graph.service.js +0 -299
  234. package/esm2015/lib/cryptography/key-meta.service.js +0 -200
  235. package/esm2015/lib/cryptography/slip39.service.js +0 -169
  236. package/esm2015/lib/cryptography/web-crypto.service.js +0 -29
  237. package/esm2015/lib/items2/item2.gql.js +0 -127
  238. package/esm2015/lib/items2/item2.gql.private.js +0 -23
  239. package/esm2015/lib/items2/item2.service.js +0 -516
  240. package/esm2015/lib/items2/item2.types.js +0 -1
  241. package/esm2015/lib/scenario/scenario.gql.private.js +0 -198
  242. package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +0 -22
  243. package/esm2015/lib/trusted-parties/tp-assembly.js +0 -365
  244. package/esm2015/lib/trusted-parties/tp-assembly.types.js +0 -1
  245. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +0 -113
  246. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +0 -129
  247. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +0 -4
  248. package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +0 -34
  249. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +0 -237
  250. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +0 -95
  251. package/esm2015/lib/trusted-parties/trusted-party.gql.js +0 -148
  252. package/esm2015/lib/trusted-parties/trusted-party.service.js +0 -326
  253. package/esm2015/lib/trusted-parties/trusted-party.types.js +0 -41
  254. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +0 -87
  255. package/esm2015/lib/trusted-parties/trusted-party2.service.js +0 -218
  256. package/esm2015/lib/users/profile-details.service.js +0 -214
  257. package/esm2015/lib/users/profile.gql.js +0 -97
  258. package/esm2015/lib/users/profile.service.js +0 -169
  259. package/esm2015/lib/users/profile.types.js +0 -34
  260. package/esm2015/lib/users/user.gql.js +0 -60
  261. package/esm2015/lib/users/user.service.js +0 -79
  262. package/esm2015/lib/users/user.types.js +0 -1
  263. package/lib/api/contact-card2.gql.d.ts +0 -34
  264. package/lib/api/contact-card2.service.d.ts +0 -50
  265. package/lib/api/message.service.d.ts +0 -59
  266. /package/lib/{api → contact-card}/contact-card.gql.d.ts +0 -0
  267. /package/lib/{auth → idle}/idle.types.d.ts +0 -0
  268. /package/lib/{items2 → item2}/item2.gql.private.d.ts +0 -0
  269. /package/lib/{items2 → item2}/item2.types.d.ts +0 -0
  270. /package/lib/{api → key-exchange}/key-exchange.gql.d.ts +0 -0
  271. /package/lib/scenario/{scenario.gql.private.d.ts → scenario.private.gql.d.ts} +0 -0
  272. /package/lib/{api → time}/time.service.d.ts +0 -0
  273. /package/lib/{trusted-parties/tp-assembly.gql.private.d.ts → tp-assembly/tp-assembly.private.gql.d.ts} +0 -0
  274. /package/lib/{trusted-parties → tp-password-reset}/tp-password-reset.constants.d.ts +0 -0
  275. /package/lib/{trusted-parties → trusted-party}/trusted-party.gql.d.ts +0 -0
  276. /package/lib/{auth → two-factor}/two-factor.service.d.ts +0 -0
  277. /package/lib/{cryptography → web-crypto}/web-crypto.service.d.ts +0 -0
@@ -0,0 +1,357 @@
1
+ import { __awaiter } from "tslib";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { HttpClient } from '@angular/common/http';
4
+ import { Inject, Injectable } from '@angular/core';
5
+ import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
6
+ import gql from 'graphql-tag';
7
+ import { Slip39Helper } from 'slip39';
8
+ import { LrApolloService } from '../api/lr-apollo.service';
9
+ import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
10
+ import { EncryptionService } from '../encryption/encryption.service';
11
+ import { KeyFactoryService as KFS } from '../key/key-factory.service';
12
+ import { KeyGraphService } from '../key/key-graph.service';
13
+ import { KeyService } from '../key/key.service';
14
+ import { LR_CONFIG } from '../life-ready.config';
15
+ import { PasswordService } from '../password/password.service';
16
+ import { LrBadLogicException, LrException } from '../_common/exceptions';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../life-ready.config";
19
+ import * as i2 from "@angular/common/http";
20
+ import * as i3 from "../api/lr-apollo.service";
21
+ import * as i4 from "@aws-amplify/auth/lib-esm/Auth";
22
+ import * as i5 from "../auth/life-ready-auth.service";
23
+ import * as i6 from "../key/key-factory.service";
24
+ import * as i7 from "../key/key.service";
25
+ import * as i8 from "../encryption/encryption.service";
26
+ import * as i9 from "../key/key-graph.service";
27
+ import * as i10 from "../password/password.service";
28
+ export const CreateLbopQuery = gql `
29
+ mutation CreateLbop($input: CreateLbopInput!) {
30
+ createLbop(input: $input) {
31
+ lbop {
32
+ id
33
+ }
34
+ }
35
+ }
36
+ `;
37
+ export const DeleteLbopQuery = gql `
38
+ mutation DeleteLbop($input: DeleteLbopInput!) {
39
+ deleteLbop(input: $input) {
40
+ id
41
+ }
42
+ }
43
+ `;
44
+ export const UpdateLbopQuery = gql `
45
+ mutation UpdateLbop($input: UpdateLbopInput!) {
46
+ updateLbop(input: $input) {
47
+ lbop {
48
+ id
49
+ }
50
+ }
51
+ }
52
+ `;
53
+ export const LbopQuery = gql `
54
+ query Lbop($id: LrRelayIdInput!) {
55
+ lbop(id: $id) {
56
+ id
57
+ cipherMeta
58
+ }
59
+ }
60
+ `;
61
+ export const LbopsQuery = gql `
62
+ query Lbops {
63
+ lbops {
64
+ edges {
65
+ node {
66
+ id
67
+ cipherMeta
68
+ }
69
+ }
70
+ }
71
+ }
72
+ `;
73
+ export class LbopService {
74
+ constructor(config, http, lrApollo, auth, authService, keyFactory, keyService, encryptionService, keyGraph, passwordService) {
75
+ this.config = config;
76
+ this.http = http;
77
+ this.lrApollo = lrApollo;
78
+ this.auth = auth;
79
+ this.authService = authService;
80
+ this.keyFactory = keyFactory;
81
+ this.keyService = keyService;
82
+ this.encryptionService = encryptionService;
83
+ this.keyGraph = keyGraph;
84
+ this.passwordService = passwordService;
85
+ this.CLIENT_NONCE_LENGTH = 32;
86
+ // There are 1024 words (10 bits), so 25 words should give ~256 bits of entropy.
87
+ this.LBOP_WORDS = 25;
88
+ }
89
+ getPartial(lbopString) {
90
+ return lbopString.split(' ')[0];
91
+ }
92
+ remove(id) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const res = yield this.lrApollo.mutate({
95
+ mutation: DeleteLbopQuery,
96
+ variables: {
97
+ input: {
98
+ id,
99
+ },
100
+ },
101
+ });
102
+ return res.deleteLbop.id;
103
+ });
104
+ }
105
+ update({ id, name }) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ const lbop = yield this.get(id);
108
+ lbop.name = name;
109
+ const masterKey = yield this.keyService.getCurrentMasterKey();
110
+ const cipherMeta = yield this.encryptionService.encrypt(masterKey.jwk, lbop);
111
+ const res = yield this.lrApollo.mutate({
112
+ mutation: UpdateLbopQuery,
113
+ variables: {
114
+ input: {
115
+ id,
116
+ cipherMeta: JSON.stringify(cipherMeta),
117
+ },
118
+ },
119
+ });
120
+ return res.updateLbop;
121
+ });
122
+ }
123
+ get(id) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ const res = yield this.lrApollo.query({
126
+ query: LbopQuery,
127
+ variables: {
128
+ id,
129
+ },
130
+ });
131
+ const masterKey = yield this.keyService.getCurrentMasterKey();
132
+ const plainCipherMeta = yield this.encryptionService.decrypt(masterKey.jwk, JSON.parse(res.lbop.cipherMeta));
133
+ return Object.assign({ id: res.id }, plainCipherMeta);
134
+ });
135
+ }
136
+ list() {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ const res = yield this.lrApollo.query({
139
+ query: LbopsQuery,
140
+ });
141
+ const masterKey = yield this.keyService.getCurrentMasterKey();
142
+ return Promise.all(res.lbops.edges.map((edge) => __awaiter(this, void 0, void 0, function* () {
143
+ const plainCipherMeta = yield this.encryptionService.decrypt(masterKey.jwk, JSON.parse(edge.node.cipherMeta));
144
+ return Object.assign({ id: edge.node.id }, plainCipherMeta);
145
+ })));
146
+ });
147
+ }
148
+ create({ name }) {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ if (Slip39Helper.WORD_LIST.length !== 1024) {
151
+ throw new LrBadLogicException('Slip39Helper.WORD_LIST.length != 1024');
152
+ }
153
+ // Get existing to make sure there are not duplicate first words
154
+ const lbops = yield this.list();
155
+ // Generate new one
156
+ let lbopString;
157
+ // eslint-disable-next-line no-constant-condition
158
+ while (true) {
159
+ lbopString = this.keyFactory
160
+ .randomChoices(Slip39Helper.WORD_LIST, this.LBOP_WORDS)
161
+ .join(' ');
162
+ const partial = this.getPartial(lbopString);
163
+ if (!lbops.some((lbop) => lbop.partial === partial)) {
164
+ break;
165
+ }
166
+ }
167
+ const lbopKeyParams = yield this.keyFactory.createLbopKeyParams();
168
+ const lbopKey = (yield this.keyFactory.deriveLbopKey(Object.assign({ password: lbopString }, lbopKeyParams))).jwk;
169
+ const lbopKeyVerifier = yield this.keyFactory.createSignKey();
170
+ const wrappedLbopKeyVerifier = yield this.encryptionService.encrypt(lbopKey, lbopKeyVerifier.toJSON(true));
171
+ // Re-encrypt master key with new key
172
+ const currentUser = yield this.authService.getUser();
173
+ const masterKey = yield this.keyGraph.getKey(currentUser.currentUserKey.masterKey.id);
174
+ const wrappedMasterKey = yield this.encryptionService.encrypt(lbopKey, masterKey.jwk.toJSON(true));
175
+ const meta = Object.assign(Object.assign({}, (name && { name })), { partial: this.getPartial(lbopString) });
176
+ const cipherMeta = yield this.encryptionService.encrypt(masterKey.jwk, meta);
177
+ const res = yield this.lrApollo.mutate({
178
+ mutation: CreateLbopQuery,
179
+ variables: {
180
+ input: {
181
+ cipherMeta: JSON.stringify(cipherMeta),
182
+ lbopKeyParams: JSON.stringify(lbopKeyParams),
183
+ lbopKeyVerifier: JSON.stringify(lbopKeyVerifier.toJSON(true)),
184
+ wrappedLbopKeyVerifier: JSON.stringify(wrappedLbopKeyVerifier),
185
+ masterKeyId: currentUser.currentUserKey.masterKey.id,
186
+ wrappedMasterKey: JSON.stringify(wrappedMasterKey),
187
+ },
188
+ },
189
+ });
190
+ return Object.assign(Object.assign({}, res.createLbop.lbop), { lbopString });
191
+ });
192
+ }
193
+ // --------------------------------------------------------------------------------------------------------------------
194
+ // --------------------------------------------------------------------------------------------------------------------
195
+ // Flow below are for password reset via LBOP
196
+ //
197
+ // --Potential Failure Point xxx--
198
+ //
199
+ // Look for the above and you can test by interrupting at these points.
200
+ //
201
+ // The LBOP reset process can be restarted at any point before the call to "set-password/". Once "set-password/" has been
202
+ // called, we assume the client has a short period of time to change the Idp password to the one they've chosen. The "set-password/"
203
+ // will set the Idp password to a temporary random password. The user can no longer login using their current password. If the Idp
204
+ // password change process does not complete or takes longer than the lockout period, the account will not be accessible and a new
205
+ // LBOP password reset must be carried out.
206
+ // --------------------------------------------------------------------------------------------------------------------
207
+ // --------------------------------------------------------------------------------------------------------------------
208
+ verifyLbops(challengeResult, lbopString) {
209
+ return __awaiter(this, void 0, void 0, function* () {
210
+ const clientNonce = this.keyFactory.randomString(this.CLIENT_NONCE_LENGTH);
211
+ for (const lbop of challengeResult.lbops) {
212
+ const lbopKey = (yield this.keyFactory.deriveLbopKey(Object.assign({ password: lbopString }, lbop.lbopKeyParams))).jwk;
213
+ // If decoding successful then it's the correct lbop
214
+ try {
215
+ const lbopKeyVerifier = (yield this.encryptionService.decrypt(lbopKey, lbop.wrappedLbopKeyVerifier));
216
+ // Force a bad signature.
217
+ // const serverNonce = challengeResult.challenge.serverNonce + "1",
218
+ const serverNonce = challengeResult.challenge.serverNonce;
219
+ const signedChallenge = yield this.encryptionService.sign(lbopKeyVerifier, {
220
+ serverNonce,
221
+ clientNonce,
222
+ });
223
+ return {
224
+ lbop,
225
+ signedChallenge,
226
+ lbopKey,
227
+ };
228
+ }
229
+ catch (error) {
230
+ continue;
231
+ }
232
+ }
233
+ throw new LrException({
234
+ source: 'LBOP',
235
+ code: 'INVALID_PASSPHRASE',
236
+ message: 'Invalid passphrase.',
237
+ });
238
+ });
239
+ }
240
+ verifyContact(params) {
241
+ return __awaiter(this, void 0, void 0, function* () {
242
+ const ret = this.http
243
+ .post(`${this.config.authUrl}users/lbop-reset/verify-contact/`, params)
244
+ .toPromise();
245
+ // --Potential Failure Point 1 --
246
+ // The contact verifications are throttled. But otherwise harmless.
247
+ return ret;
248
+ });
249
+ }
250
+ confirmContact(params) {
251
+ return __awaiter(this, void 0, void 0, function* () {
252
+ return this.http
253
+ .post(`${this.config.authUrl}cove/respond/`, {
254
+ claim_id: params.claimId,
255
+ v_code: params.vCode,
256
+ })
257
+ .toPromise();
258
+ // --Potential Failure Point 2 --
259
+ // A verified claim for a contact does not prevent new ones from being generated. So it should be fine to just start again.
260
+ });
261
+ }
262
+ verify(params) {
263
+ return __awaiter(this, void 0, void 0, function* () {
264
+ const challengeResult = yield this.http
265
+ .post(`${this.config.authUrl}users/lbop-reset/get-challenge/`, {
266
+ claimId: params.claimId,
267
+ claimToken: params.claimToken,
268
+ })
269
+ .toPromise();
270
+ // --Potential Failure Point 3 --
271
+ // This does not lock anything. A second call to "get-challenge/" will create a new challenge amd invalidate the first one.
272
+ const { signedChallenge, lbop, lbopKey } = yield this.verifyLbops(challengeResult, params.lbop);
273
+ const res = yield this.http
274
+ .post(`${this.config.authUrl}users/lbop-reset/verify-challenge/`, {
275
+ lbopId: lbop.lbopId,
276
+ signedChallenge,
277
+ })
278
+ .toPromise();
279
+ // --Potential Failure Point 4 --
280
+ // This does not lock anything. So ok to restart.
281
+ return {
282
+ lbopId: lbop.lbopId,
283
+ verifiedToken: res.verifiedToken,
284
+ masterKeyId: res.masterKeyId,
285
+ masterKey: yield KFS.asKey(yield this.encryptionService.decrypt(lbopKey, res.wrappedMasterKey)),
286
+ };
287
+ });
288
+ }
289
+ setPassword(params) {
290
+ return __awaiter(this, void 0, void 0, function* () {
291
+ // Generate the new password derived keys
292
+ const passKeyBundle = yield this.passwordService.createPassKeyBundle(params.newPassword);
293
+ // Re-encrypt master key with new key
294
+ const newWrappedMasterKey = yield this.encryptionService.encrypt(passKeyBundle.passKey, params.masterKey.toJSON(true));
295
+ const result = yield this.http
296
+ .post(`${this.config.authUrl}users/lbop-reset/set-password/`, {
297
+ lbopId: params.lbopId,
298
+ verifiedToken: params.verifiedToken,
299
+ masterKeyId: params.masterKeyId,
300
+ newWrappedMasterKey,
301
+ newPassKey: {
302
+ passKeyParams: passKeyBundle.passKeyParams,
303
+ passIdpParams: passKeyBundle.passIdpParams,
304
+ passIdpVerifierPbk: passKeyBundle.passIdpVerifier.toJSON(),
305
+ wrappedPassIdpVerifierPrk: passKeyBundle.wrappedPassIdpVerifierPrk,
306
+ },
307
+ })
308
+ .toPromise();
309
+ // --Potential Failure Point 5 --
310
+ // A timed mutex is locked. The Idp password change must occur within a period of time.
311
+ // If interrupted here, the user can not login with their old password again. They must
312
+ // start the whole LBOP password reset process again.
313
+ // This call will go through the LR proxy which is OK since the LR server knows
314
+ // the temporary password anyway.
315
+ let user = yield this.auth.signIn(result.username, result.idpPassword, {
316
+ noProxy: 'true',
317
+ });
318
+ if (user.challengeName !== 'NEW_PASSWORD_REQUIRED') {
319
+ throw new LrException({
320
+ message: 'Internal error. Expecting Cognito to have done a password reset.',
321
+ });
322
+ }
323
+ // --Potential Failure Point 6 --
324
+ // Must restart the LBOP password reset process again.
325
+ // Set new password on Idp
326
+ user = yield this.auth.completeNewPassword(user, this.passwordService.getPassIdpString(passKeyBundle.passIdp), {});
327
+ // --Potential Failure Point 7 --
328
+ // Must restart the LBOP password reset process again.
329
+ yield this.auth.signOut();
330
+ return yield this.http
331
+ .post(`${this.config.authUrl}users/lbop-reset/complete/`, {
332
+ lbopId: params.lbopId,
333
+ setPasswordToken: result.setPasswordToken,
334
+ })
335
+ .toPromise();
336
+ });
337
+ }
338
+ }
339
+ LbopService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LbopService_Factory() { return new LbopService(i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.LrApolloService), i0.ɵɵinject(i4.AuthClass), i0.ɵɵinject(i5.LifeReadyAuthService), i0.ɵɵinject(i6.KeyFactoryService), i0.ɵɵinject(i7.KeyService), i0.ɵɵinject(i8.EncryptionService), i0.ɵɵinject(i9.KeyGraphService), i0.ɵɵinject(i10.PasswordService)); }, token: LbopService, providedIn: "root" });
340
+ LbopService.decorators = [
341
+ { type: Injectable, args: [{
342
+ providedIn: 'root',
343
+ },] }
344
+ ];
345
+ LbopService.ctorParameters = () => [
346
+ { type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
347
+ { type: HttpClient },
348
+ { type: LrApolloService },
349
+ { type: AuthClass },
350
+ { type: LifeReadyAuthService },
351
+ { type: KFS },
352
+ { type: KeyService },
353
+ { type: EncryptionService },
354
+ { type: KeyGraphService },
355
+ { type: PasswordService }
356
+ ];
357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGJvcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2xib3AvbGJvcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFFOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixJQUFJLEdBQUcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFtQixTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7QUF5RXpFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7O0NBUWpDLENBQUM7QUFNRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFB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QUNELFNBQVMsRUFBRSxDQUFDO1FBQ2pCLENBQUM7S0FBQTs7OztZQTVYRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FPSSxNQUFNLFNBQUMsU0FBUztZQW5LWixVQUFVO1lBTVYsZUFBZTtZQUpmLFNBQVM7WUFLVCxvQkFBb0I7WUFFQyxHQUFHO1lBRXhCLFVBQVU7WUFIVixpQkFBaUI7WUFFakIsZUFBZTtZQUdmLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoQ2xhc3MgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aC9saWItZXNtL0F1dGgnO1xuaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xuaW1wb3J0IHsgU2xpcDM5SGVscGVyIH0gZnJvbSAnc2xpcDM5JztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBMaWZlUmVhZHlBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvbGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9lbmNyeXB0aW9uL2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSBhcyBLRlMgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBMaWZlUmVhZHlDb25maWcsIExSX0NPTkZJRyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7IFBhc3N3b3JkU2VydmljZSB9IGZyb20gJy4uL3Bhc3N3b3JkL3Bhc3N3b3JkLnNlcnZpY2UnO1xuaW1wb3J0IHsgTHJCYWRMb2dpY0V4Y2VwdGlvbiwgTHJFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuXG5pbnRlcmZhY2UgU2V0UGFzc3dvcmRBcGlSZXN1bHQge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBpZHBQYXNzd29yZDogc3RyaW5nO1xuICBzZXRQYXNzd29yZFRva2VuOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0UGFzc3dvcmRQYXJhbXMge1xuICBsYm9wSWQ6IHN0cmluZztcbiAgbmV3UGFzc3dvcmQ6IHN0cmluZztcbiAgdmVyaWZpZWRUb2tlbjogc3RyaW5nO1xuICBtYXN0ZXJLZXlJZDogc3RyaW5nO1xuICBtYXN0ZXJLZXk6IEpXSy5LZXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5Q29udGFjdFBhcmFtcyB7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlDb250YWN0UmVzdWx0IHtcbiAgLy8gVGhlIGNsYWltX2lkIGlkZW50aWZpZXMgdGhlIEVtYWlsL1NNUyBjb25maXJtYXRpb25cbiAgY2xhaW1JZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1Db250YWN0UGFyYW1zIHtcbiAgY2xhaW1JZDogc3RyaW5nO1xuICB2Q29kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm1Db250YWN0UmVzdWx0IHtcbiAgLy8gVGhlIHRva2VuIHRvIHByb3ZlIHRoZSBjbGllbnQgaGFkIHRoZSBjb3JyZWN0IGNvbmZpcm1hdGlvbiBjb2RlLlxuICB0b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeVBhcmFtcyB7XG4gIGNsYWltSWQ6IHN0cmluZztcbiAgY2xhaW1Ub2tlbjogc3RyaW5nO1xuICBsYm9wOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5UmVzdWx0IHtcbiAgLy8gdXNlcklkOiBzdHJpbmc7XG4gIGxib3BJZDogc3RyaW5nO1xuICB2ZXJpZmllZFRva2VuOiBzdHJpbmc7XG4gIG1hc3RlcktleUlkOiBzdHJpbmc7XG4gIG1hc3RlcktleTogSldLLktleTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFsbGVuZ2VSZXN1bHQge1xuICBjaGFsbGVuZ2U6IGFueTtcbiAgbGJvcHM6IGFueTtcbiAgLy8gdXNlcklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGJvcCB7XG4gIGlkOiBzdHJpbmc7XG4gIHBhcnRpYWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGxib3BTdHJpbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlTGJvcFBhcmFtcyB7XG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDcmVhdGVMYm9wUXVlcnkge1xuICBjcmVhdGVMYm9wOiB7XG4gICAgbGJvcDogTGJvcDtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IENyZWF0ZUxib3BRdWVyeSA9IGdxbGBcbiAgbXV0YXRpb24gQ3JlYXRlTGJvcCgkaW5wdXQ6IENyZWF0ZUxib3BJbnB1dCEpIHtcbiAgICBjcmVhdGVMYm9wKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGxib3Age1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuaW50ZXJmYWNlIERlbGV0ZUxib3BRdWVyeSB7XG4gIGRlbGV0ZUxib3A6IExib3A7XG59XG5cbmV4cG9ydCBjb25zdCBEZWxldGVMYm9wUXVlcnkgPSBncWxgXG4gIG11dGF0aW9uIERlbGV0ZUxib3AoJGlucHV0OiBEZWxldGVMYm9wSW5wdXQhKSB7XG4gICAgZGVsZXRlTGJvcChpbnB1dDogJGlucHV0KSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVMYm9wUGFyYW1zIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVXBkYXRlTGJvcFF1ZXJ5IHtcbiAgdXBkYXRlTGJvcDogTGJvcDtcbn1cblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUxib3BRdWVyeSA9IGdxbGBcbiAgbXV0YXRpb24gVXBkYXRlTGJvcCgkaW5wdXQ6IFVwZGF0ZUxib3BJbnB1dCEpIHtcbiAgICB1cGRhdGVMYm9wKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGxib3Age1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IExib3BRdWVyeSA9IGdxbGBcbiAgcXVlcnkgTGJvcCgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xuICAgIGxib3AoaWQ6ICRpZCkge1xuICAgICAgaWRcbiAgICAgIGNpcGhlck1ldGFcbiAgICB9XG4gIH1cbmA7XG5cbmludGVyZmFjZSBMYm9wc1F1ZXJ5IHtcbiAgbGJvcHM6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IExib3BzUXVlcnkgPSBncWxgXG4gIHF1ZXJ5IExib3BzIHtcbiAgICBsYm9wcyB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIGlkXG4gICAgICAgICAgY2lwaGVyTWV0YVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGJvcFNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IENMSUVOVF9OT05DRV9MRU5HVEggPSAzMjtcbiAgLy8gVGhlcmUgYXJlIDEwMjQgd29yZHMgKDEwIGJpdHMpLCBzbyAyNSB3b3JkcyBzaG91bGQgZ2l2ZSB+MjU2IGJpdHMgb2YgZW50cm9weS5cbiAgcHJpdmF0ZSByZWFkb25seSBMQk9QX1dPUkRTID0gMjU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMUl9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbHJBcG9sbG86IExyQXBvbGxvU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhDbGFzcyxcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBMaWZlUmVhZHlBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtGUyxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFzc3dvcmRTZXJ2aWNlOiBQYXNzd29yZFNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0UGFydGlhbChsYm9wU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBsYm9wU3RyaW5nLnNwbGl0KCcgJylbMF07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPGFueT4oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUxib3BRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiByZXMuZGVsZXRlTGJvcC5pZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGUoeyBpZCwgbmFtZSB9OiBVcGRhdGVMYm9wUGFyYW1zKTogUHJvbWlzZTxMYm9wPiB7XG4gICAgY29uc3QgbGJvcCA9IGF3YWl0IHRoaXMuZ2V0KGlkKTtcbiAgICBsYm9wLm5hbWUgPSBuYW1lO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRNYXN0ZXJLZXkoKTtcbiAgICBjb25zdCBjaXBoZXJNZXRhID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxuICAgICAgbWFzdGVyS2V5Lmp3ayxcbiAgICAgIGxib3BcbiAgICApO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8VXBkYXRlTGJvcFF1ZXJ5Pih7XG4gICAgICBtdXRhdGlvbjogVXBkYXRlTGJvcFF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY2lwaGVyTWV0YTogSlNPTi5zdHJpbmdpZnkoY2lwaGVyTWV0YSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcy51cGRhdGVMYm9wO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldChpZDogc3RyaW5nKTogUHJvbWlzZTxMYm9wPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcbiAgICAgIHF1ZXJ5OiBMYm9wUXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRNYXN0ZXJLZXkoKTtcblxuICAgIGNvbnN0IHBsYWluQ2lwaGVyTWV0YSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgIG1hc3RlcktleS5qd2ssXG4gICAgICBKU09OLnBhcnNlKHJlcy5sYm9wLmNpcGhlck1ldGEpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogcmVzLmlkLFxuICAgICAgLi4ucGxhaW5DaXBoZXJNZXRhLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdCgpOiBQcm9taXNlPExib3BbXT4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8TGJvcHNRdWVyeT4oe1xuICAgICAgcXVlcnk6IExib3BzUXVlcnksXG4gICAgfSk7XG5cbiAgICBjb25zdCBtYXN0ZXJLZXkgPSBhd2FpdCB0aGlzLmtleVNlcnZpY2UuZ2V0Q3VycmVudE1hc3RlcktleSgpO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgcmVzLmxib3BzLmVkZ2VzLm1hcChhc3luYyAoZWRnZSkgPT4ge1xuICAgICAgICBjb25zdCBwbGFpbkNpcGhlck1ldGEgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQoXG4gICAgICAgICAgbWFzdGVyS2V5Lmp3ayxcbiAgICAgICAgICBKU09OLnBhcnNlKGVkZ2Uubm9kZS5jaXBoZXJNZXRhKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiBlZGdlLm5vZGUuaWQsXG4gICAgICAgICAgLi4ucGxhaW5DaXBoZXJNZXRhLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSh7IG5hbWUgfTogQ3JlYXRlTGJvcFBhcmFtcyk6IFByb21pc2U8TGJvcD4ge1xuICAgIGlmIChTbGlwMzlIZWxwZXIuV09SRF9MSVNULmxlbmd0aCAhPT0gMTAyNCkge1xuICAgICAgdGhyb3cgbmV3IExyQmFkTG9naWNFeGNlcHRpb24oJ1NsaXAzOUhlbHBlci5XT1JEX0xJU1QubGVuZ3RoICE9IDEwMjQnKTtcbiAgICB9XG5cbiAgICAvLyBHZXQgZXhpc3RpbmcgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBub3QgZHVwbGljYXRlIGZpcnN0IHdvcmRzXG4gICAgY29uc3QgbGJvcHMgPSBhd2FpdCB0aGlzLmxpc3QoKTtcblxuICAgIC8vIEdlbmVyYXRlIG5ldyBvbmVcbiAgICBsZXQgbGJvcFN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc3RhbnQtY29uZGl0aW9uXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGxib3BTdHJpbmcgPSB0aGlzLmtleUZhY3RvcnlcbiAgICAgICAgLnJhbmRvbUNob2ljZXMoU2xpcDM5SGVscGVyLldPUkRfTElTVCwgdGhpcy5MQk9QX1dPUkRTKVxuICAgICAgICAuam9pbignICcpO1xuICAgICAgY29uc3QgcGFydGlhbCA9IHRoaXMuZ2V0UGFydGlhbChsYm9wU3RyaW5nKTtcblxuICAgICAgaWYgKCFsYm9wcy5zb21lKChsYm9wKSA9PiBsYm9wLnBhcnRpYWwgPT09IHBhcnRpYWwpKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGxib3BLZXlQYXJhbXMgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlTGJvcEtleVBhcmFtcygpO1xuICAgIGNvbnN0IGxib3BLZXkgPSAoXG4gICAgICBhd2FpdCB0aGlzLmtleUZhY3RvcnkuZGVyaXZlTGJvcEtleSh7XG4gICAgICAgIHBhc3N3b3JkOiBsYm9wU3RyaW5nLFxuICAgICAgICAuLi5sYm9wS2V5UGFyYW1zLFxuICAgICAgfSlcbiAgICApLmp3aztcblxuICAgIGNvbnN0IGxib3BLZXlWZXJpZmllciA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVTaWduS2V5KCk7XG4gICAgY29uc3Qgd3JhcHBlZExib3BLZXlWZXJpZmllciA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChcbiAgICAgIGxib3BLZXksXG4gICAgICBsYm9wS2V5VmVyaWZpZXIudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIC8vIFJlLWVuY3J5cHQgbWFzdGVyIGtleSB3aXRoIG5ldyBrZXlcbiAgICBjb25zdCBjdXJyZW50VXNlciA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIGNvbnN0IG1hc3RlcktleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0S2V5KFxuICAgICAgY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkubWFzdGVyS2V5LmlkXG4gICAgKTtcbiAgICBjb25zdCB3cmFwcGVkTWFzdGVyS2V5ID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxuICAgICAgbGJvcEtleSxcbiAgICAgIG1hc3RlcktleS5qd2sudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAuLi4obmFtZSAmJiB7IG5hbWUgfSksXG4gICAgICBwYXJ0aWFsOiB0aGlzLmdldFBhcnRpYWwobGJvcFN0cmluZyksXG4gICAgfTtcbiAgICBjb25zdCBjaXBoZXJNZXRhID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5lbmNyeXB0KFxuICAgICAgbWFzdGVyS2V5Lmp3ayxcbiAgICAgIG1ldGFcbiAgICApO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8Q3JlYXRlTGJvcFF1ZXJ5Pih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlTGJvcFF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgY2lwaGVyTWV0YTogSlNPTi5zdHJpbmdpZnkoY2lwaGVyTWV0YSksXG4gICAgICAgICAgbGJvcEtleVBhcmFtczogSlNPTi5zdHJpbmdpZnkobGJvcEtleVBhcmFtcyksXG4gICAgICAgICAgbGJvcEtleVZlcmlmaWVyOiBKU09OLnN0cmluZ2lmeShsYm9wS2V5VmVyaWZpZXIudG9KU09OKHRydWUpKSxcbiAgICAgICAgICB3cmFwcGVkTGJvcEtleVZlcmlmaWVyOiBKU09OLnN0cmluZ2lmeSh3cmFwcGVkTGJvcEtleVZlcmlmaWVyKSxcbiAgICAgICAgICBtYXN0ZXJLZXlJZDogY3VycmVudFVzZXIuY3VycmVudFVzZXJLZXkubWFzdGVyS2V5LmlkLFxuICAgICAgICAgIHdyYXBwZWRNYXN0ZXJLZXk6IEpTT04uc3RyaW5naWZ5KHdyYXBwZWRNYXN0ZXJLZXkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXMuY3JlYXRlTGJvcC5sYm9wLFxuICAgICAgbGJvcFN0cmluZyxcbiAgICB9O1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gRmxvdyBiZWxvdyBhcmUgZm9yIHBhc3N3b3JkIHJlc2V0IHZpYSBMQk9QXG4gIC8vXG4gIC8vIC0tUG90ZW50aWFsIEZhaWx1cmUgUG9pbnQgeHh4LS1cbiAgLy9cbiAgLy8gTG9vayBmb3IgdGhlIGFib3ZlIGFuZCB5b3UgY2FuIHRlc3QgYnkgaW50ZXJydXB0aW5nIGF0IHRoZXNlIHBvaW50cy5cbiAgLy9cbiAgLy8gVGhlIExCT1AgcmVzZXQgcHJvY2VzcyBjYW4gYmUgcmVzdGFydGVkIGF0IGFueSBwb2ludCBiZWZvcmUgdGhlIGNhbGwgdG8gXCJzZXQtcGFzc3dvcmQvXCIuIE9uY2UgXCJzZXQtcGFzc3dvcmQvXCIgaGFzIGJlZW5cbiAgLy8gY2FsbGVkLCB3ZSBhc3N1bWUgdGhlIGNsaWVudCBoYXMgYSBzaG9ydCBwZXJpb2Qgb2YgdGltZSB0byBjaGFuZ2UgdGhlIElkcCBwYXNzd29yZCB0byB0aGUgb25lIHRoZXkndmUgY2hvc2VuLiBUaGUgXCJzZXQtcGFzc3dvcmQvXCJcbiAgLy8gd2lsbCBzZXQgdGhlIElkcCBwYXNzd29yZCB0byBhIHRlbXBvcmFyeSByYW5kb20gcGFzc3dvcmQuIFRoZSB1c2VyIGNhbiBubyBsb25nZXIgbG9naW4gdXNpbmcgdGhlaXIgY3VycmVudCBwYXNzd29yZC4gSWYgdGhlIElkcFxuICAvLyBwYXNzd29yZCBjaGFuZ2UgcHJvY2VzcyBkb2VzIG5vdCBjb21wbGV0ZSBvciB0YWtlcyBsb25nZXIgdGhhbiB0aGUgbG9ja291dCBwZXJpb2QsIHRoZSBhY2NvdW50IHdpbGwgbm90IGJlIGFjY2Vzc2libGUgYW5kIGEgbmV3XG4gIC8vIExCT1AgcGFzc3dvcmQgcmVzZXQgbXVzdCBiZSBjYXJyaWVkIG91dC5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcHJpdmF0ZSBhc3luYyB2ZXJpZnlMYm9wcyhcbiAgICBjaGFsbGVuZ2VSZXN1bHQ6IENoYWxsZW5nZVJlc3VsdCxcbiAgICBsYm9wU3RyaW5nOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx7IGxib3A6IGFueTsgc2lnbmVkQ2hhbGxlbmdlOiBhbnk7IGxib3BLZXk6IEpXSy5LZXkgfT4ge1xuICAgIGNvbnN0IGNsaWVudE5vbmNlID0gdGhpcy5rZXlGYWN0b3J5LnJhbmRvbVN0cmluZyh0aGlzLkNMSUVOVF9OT05DRV9MRU5HVEgpO1xuXG4gICAgZm9yIChjb25zdCBsYm9wIG9mIGNoYWxsZW5nZVJlc3VsdC5sYm9wcykge1xuICAgICAgY29uc3QgbGJvcEtleSA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmRlcml2ZUxib3BLZXkoe1xuICAgICAgICAgIHBhc3N3b3JkOiBsYm9wU3RyaW5nLFxuICAgICAgICAgIC4uLmxib3AubGJvcEtleVBhcmFtcyxcbiAgICAgICAgfSlcbiAgICAgICkuandrO1xuXG4gICAgICAvLyBJZiBkZWNvZGluZyBzdWNjZXNzZnVsIHRoZW4gaXQncyB0aGUgY29ycmVjdCBsYm9wXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBsYm9wS2V5VmVyaWZpZXIgPSAoYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxuICAgICAgICAgIGxib3BLZXksXG4gICAgICAgICAgbGJvcC53cmFwcGVkTGJvcEtleVZlcmlmaWVyXG4gICAgICAgICkpIGFzIGFueTtcblxuICAgICAgICAvLyBGb3JjZSBhIGJhZCBzaWduYXR1cmUuXG4gICAgICAgIC8vIGNvbnN0IHNlcnZlck5vbmNlID0gY2hhbGxlbmdlUmVzdWx0LmNoYWxsZW5nZS5zZXJ2ZXJOb25jZSArIFwiMVwiLFxuXG4gICAgICAgIGNvbnN0IHNlcnZlck5vbmNlID0gY2hhbGxlbmdlUmVzdWx0LmNoYWxsZW5nZS5zZXJ2ZXJOb25jZTtcblxuICAgICAgICBjb25zdCBzaWduZWRDaGFsbGVuZ2UgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oXG4gICAgICAgICAgbGJvcEtleVZlcmlmaWVyLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlcnZlck5vbmNlLFxuICAgICAgICAgICAgY2xpZW50Tm9uY2UsXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGJvcCxcbiAgICAgICAgICBzaWduZWRDaGFsbGVuZ2UsXG4gICAgICAgICAgbGJvcEtleSxcbiAgICAgICAgfTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgTHJFeGNlcHRpb24oe1xuICAgICAgc291cmNlOiAnTEJPUCcsXG4gICAgICBjb2RlOiAnSU5WQUxJRF9QQVNTUEhSQVNFJyxcbiAgICAgIG1lc3NhZ2U6ICdJbnZhbGlkIHBhc3NwaHJhc2UuJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2ZXJpZnlDb250YWN0KFxuICAgIHBhcmFtczogVmVyaWZ5Q29udGFjdFBhcmFtc1xuICApOiBQcm9taXNlPFZlcmlmeUNvbnRhY3RSZXN1bHQ+IHtcbiAgICBjb25zdCByZXQgPSB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PFZlcmlmeUNvbnRhY3RSZXN1bHQ+KFxuICAgICAgICBgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfXVzZXJzL2xib3AtcmVzZXQvdmVyaWZ5LWNvbnRhY3QvYCxcbiAgICAgICAgcGFyYW1zXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDEgLS1cbiAgICAvLyBUaGUgY29udGFjdCB2ZXJpZmljYXRpb25zIGFyZSB0aHJvdHRsZWQuIEJ1dCBvdGhlcndpc2UgaGFybWxlc3MuXG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNvbmZpcm1Db250YWN0KFxuICAgIHBhcmFtczogQ29uZmlybUNvbnRhY3RQYXJhbXNcbiAgKTogUHJvbWlzZTxDb25maXJtQ29udGFjdFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PENvbmZpcm1Db250YWN0UmVzdWx0PihgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfWNvdmUvcmVzcG9uZC9gLCB7XG4gICAgICAgIGNsYWltX2lkOiBwYXJhbXMuY2xhaW1JZCxcbiAgICAgICAgdl9jb2RlOiBwYXJhbXMudkNvZGUsXG4gICAgICB9KVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgLy8gLS1Qb3RlbnRpYWwgRmFpbHVyZSBQb2ludCAyIC0tXG4gICAgLy8gQSB2ZXJpZmllZCBjbGFpbSBmb3IgYSBjb250YWN0IGRvZXMgbm90IHByZXZlbnQgbmV3IG9uZXMgZnJvbSBiZWluZyBnZW5lcmF0ZWQuIFNvIGl0IHNob3VsZCBiZSBmaW5lIHRvIGp1c3Qgc3RhcnQgYWdhaW4uXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmVyaWZ5KHBhcmFtczogVmVyaWZ5UGFyYW1zKTogUHJvbWlzZTxWZXJpZnlSZXN1bHQ+IHtcbiAgICBjb25zdCBjaGFsbGVuZ2VSZXN1bHQgPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PENoYWxsZW5nZVJlc3VsdD4oXG4gICAgICAgIGAke3RoaXMuY29uZmlnLmF1dGhVcmx9dXNlcnMvbGJvcC1yZXNldC9nZXQtY2hhbGxlbmdlL2AsXG4gICAgICAgIHtcbiAgICAgICAgICBjbGFpbUlkOiBwYXJhbXMuY2xhaW1JZCxcbiAgICAgICAgICBjbGFpbVRva2VuOiBwYXJhbXMuY2xhaW1Ub2tlbixcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgLy8gLS1Qb3RlbnRpYWwgRmFpbHVyZSBQb2ludCAzIC0tXG4gICAgLy8gVGhpcyBkb2VzIG5vdCBsb2NrIGFueXRoaW5nLiBBIHNlY29uZCBjYWxsIHRvIFwiZ2V0LWNoYWxsZW5nZS9cIiB3aWxsIGNyZWF0ZSBhIG5ldyBjaGFsbGVuZ2UgYW1kIGludmFsaWRhdGUgdGhlIGZpcnN0IG9uZS5cbiAgICBjb25zdCB7IHNpZ25lZENoYWxsZW5nZSwgbGJvcCwgbGJvcEtleSB9ID0gYXdhaXQgdGhpcy52ZXJpZnlMYm9wcyhcbiAgICAgIGNoYWxsZW5nZVJlc3VsdCxcbiAgICAgIHBhcmFtcy5sYm9wXG4gICAgKTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfXVzZXJzL2xib3AtcmVzZXQvdmVyaWZ5LWNoYWxsZW5nZS9gLCB7XG4gICAgICAgIGxib3BJZDogbGJvcC5sYm9wSWQsXG4gICAgICAgIHNpZ25lZENoYWxsZW5nZSxcbiAgICAgIH0pXG4gICAgICAudG9Qcm9taXNlKCk7XG5cbiAgICAvLyAtLVBvdGVudGlhbCBGYWlsdXJlIFBvaW50IDQgLS1cbiAgICAvLyBUaGlzIGRvZXMgbm90IGxvY2sgYW55dGhpbmcuIFNvIG9rIHRvIHJlc3RhcnQuXG5cbiAgICByZXR1cm4ge1xuICAgICAgbGJvcElkOiBsYm9wLmxib3BJZCxcbiAgICAgIHZlcmlmaWVkVG9rZW46IHJlcy52ZXJpZmllZFRva2VuLFxuICAgICAgbWFzdGVyS2V5SWQ6IHJlcy5tYXN0ZXJLZXlJZCxcbiAgICAgIG1hc3RlcktleTogYXdhaXQgS0ZTLmFzS2V5KFxuICAgICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHQobGJvcEtleSwgcmVzLndyYXBwZWRNYXN0ZXJLZXkpXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0UGFzc3dvcmQocGFyYW1zOiBTZXRQYXNzd29yZFBhcmFtcyk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gR2VuZXJhdGUgdGhlIG5ldyBwYXNzd29yZCBkZXJpdmVkIGtleXNcbiAgICBjb25zdCBwYXNzS2V5QnVuZGxlID0gYXdhaXQgdGhpcy5wYXNzd29yZFNlcnZpY2UuY3JlYXRlUGFzc0tleUJ1bmRsZShcbiAgICAgIHBhcmFtcy5uZXdQYXNzd29yZFxuICAgICk7XG5cbiAgICAvLyBSZS1lbmNyeXB0IG1hc3RlciBrZXkgd2l0aCBuZXcga2V5XG4gICAgY29uc3QgbmV3V3JhcHBlZE1hc3RlcktleSA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZW5jcnlwdChcbiAgICAgIHBhc3NLZXlCdW5kbGUucGFzc0tleSxcbiAgICAgIHBhcmFtcy5tYXN0ZXJLZXkudG9KU09OKHRydWUpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8U2V0UGFzc3dvcmRBcGlSZXN1bHQ+KFxuICAgICAgICBgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfXVzZXJzL2xib3AtcmVzZXQvc2V0LXBhc3N3b3JkL2AsXG4gICAgICAgIHtcbiAgICAgICAgICBsYm9wSWQ6IHBhcmFtcy5sYm9wSWQsXG4gICAgICAgICAgdmVyaWZpZWRUb2tlbjogcGFyYW1zLnZlcmlmaWVkVG9rZW4sXG4gICAgICAgICAgbWFzdGVyS2V5SWQ6IHBhcmFtcy5tYXN0ZXJLZXlJZCxcbiAgICAgICAgICBuZXdXcmFwcGVkTWFzdGVyS2V5LFxuICAgICAgICAgIG5ld1Bhc3NLZXk6IHtcbiAgICAgICAgICAgIHBhc3NLZXlQYXJhbXM6IHBhc3NLZXlCdW5kbGUucGFzc0tleVBhcmFtcyxcbiAgICAgICAgICAgIHBhc3NJZHBQYXJhbXM6IHBhc3NLZXlCdW5kbGUucGFzc0lkcFBhcmFtcyxcbiAgICAgICAgICAgIHBhc3NJZHBWZXJpZmllclBiazogcGFzc0tleUJ1bmRsZS5wYXNzSWRwVmVyaWZpZXIudG9KU09OKCksXG4gICAgICAgICAgICB3cmFwcGVkUGFzc0lkcFZlcmlmaWVyUHJrOiBwYXNzS2V5QnVuZGxlLndyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcmssXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgLy8gLS1Qb3RlbnRpYWwgRmFpbHVyZSBQb2ludCA1IC0tXG4gICAgLy8gQSB0aW1lZCBtdXRleCBpcyBsb2NrZWQuIFRoZSBJZHAgcGFzc3dvcmQgY2hhbmdlIG11c3Qgb2NjdXIgd2l0aGluIGEgcGVyaW9kIG9mIHRpbWUuXG4gICAgLy8gSWYgaW50ZXJydXB0ZWQgaGVyZSwgdGhlIHVzZXIgY2FuIG5vdCBsb2dpbiB3aXRoIHRoZWlyIG9sZCBwYXNzd29yZCBhZ2Fpbi4gVGhleSBtdXN0XG4gICAgLy8gc3RhcnQgdGhlIHdob2xlIExCT1AgcGFzc3dvcmQgcmVzZXQgcHJvY2VzcyBhZ2Fpbi5cblxuICAgIC8vIFRoaXMgY2FsbCB3aWxsIGdvIHRocm91Z2ggdGhlIExSIHByb3h5IHdoaWNoIGlzIE9LIHNpbmNlIHRoZSBMUiBzZXJ2ZXIga25vd3NcbiAgICAvLyB0aGUgdGVtcG9yYXJ5IHBhc3N3b3JkIGFueXdheS5cbiAgICBsZXQgdXNlciA9IGF3YWl0IHRoaXMuYXV0aC5zaWduSW4ocmVzdWx0LnVzZXJuYW1lLCByZXN1bHQuaWRwUGFzc3dvcmQsIHtcbiAgICAgIG5vUHJveHk6ICd0cnVlJyxcbiAgICB9KTtcblxuICAgIGlmICh1c2VyLmNoYWxsZW5nZU5hbWUgIT09ICdORVdfUEFTU1dPUkRfUkVRVUlSRUQnKSB7XG4gICAgICB0aHJvdyBuZXcgTHJFeGNlcHRpb24oe1xuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICdJbnRlcm5hbCBlcnJvci4gRXhwZWN0aW5nIENvZ25pdG8gdG8gaGF2ZSBkb25lIGEgcGFzc3dvcmQgcmVzZXQuJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC0tUG90ZW50aWFsIEZhaWx1cmUgUG9pbnQgNiAtLVxuICAgIC8vIE11c3QgcmVzdGFydCB0aGUgTEJPUCBwYXNzd29yZCByZXNldCBwcm9jZXNzIGFnYWluLlxuXG4gICAgLy8gU2V0IG5ldyBwYXNzd29yZCBvbiBJZHBcbiAgICB1c2VyID0gYXdhaXQgdGhpcy5hdXRoLmNvbXBsZXRlTmV3UGFzc3dvcmQoXG4gICAgICB1c2VyLFxuICAgICAgdGhpcy5wYXNzd29yZFNlcnZpY2UuZ2V0UGFzc0lkcFN0cmluZyhwYXNzS2V5QnVuZGxlLnBhc3NJZHApLFxuICAgICAge31cbiAgICApO1xuXG4gICAgLy8gLS1Qb3RlbnRpYWwgRmFpbHVyZSBQb2ludCA3IC0tXG4gICAgLy8gTXVzdCByZXN0YXJ0IHRoZSBMQk9QIHBhc3N3b3JkIHJlc2V0IHByb2Nlc3MgYWdhaW4uXG5cbiAgICBhd2FpdCB0aGlzLmF1dGguc2lnbk91dCgpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmNvbmZpZy5hdXRoVXJsfXVzZXJzL2xib3AtcmVzZXQvY29tcGxldGUvYCwge1xuICAgICAgICBsYm9wSWQ6IHBhcmFtcy5sYm9wSWQsXG4gICAgICAgIHNldFBhc3N3b3JkVG9rZW46IHJlc3VsdC5zZXRQYXNzd29yZFRva2VuLFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  import { InjectionToken } from '@angular/core';
3
4
  import { ApolloLink, createHttpLink, from, InMemoryCache, } from '@apollo/client/core';
4
5
  import { setContext } from '@apollo/client/link/context';
@@ -81,4 +82,4 @@ export const configureApollo = (config, auth) => {
81
82
  });
82
83
  return Object.assign({ link: from([retryLink, promoteGqlErrors, authLink, httpLink]), cache: new InMemoryCache(), defaultOptions }, config.apolloConfig);
83
84
  };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2xpZmUtcmVhZHkuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFFTCxVQUFVLEVBQ1YsY0FBYyxFQUVkLElBQUksRUFDSixhQUFhLEdBQ2QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQWtCLFNBQVMsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQWE3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBdUIsRUFDdkIsSUFBZSxFQUNXLEVBQUU7SUFDNUIsTUFBTSxjQUFjLEdBQW1CO1FBQ3JDLFVBQVUsRUFBRTtZQUNWLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLO1NBQ25CO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLFVBQVU7WUFDdkIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7UUFDRCxNQUFNLEVBQUU7WUFDTixXQUFXLEVBQUUsS0FBSztTQUNuQjtLQUNGLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1FBQ25ELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztR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QyxZQUFZLEVBQ3RCO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQge1xuICBBcG9sbG9DbGllbnRPcHRpb25zLFxuICBBcG9sbG9MaW5rLFxuICBjcmVhdGVIdHRwTGluayxcbiAgRGVmYXVsdE9wdGlvbnMsXG4gIGZyb20sXG4gIEluTWVtb3J5Q2FjaGUsXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgc2V0Q29udGV4dCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvY29udGV4dCc7XG5pbXBvcnQgeyBSZXRyeUxpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3JldHJ5JztcbmltcG9ydCB7IExyQXBpRXJyb3JDb2RlIH0gZnJvbSAnLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgR3JhcGhRTEVycm9yIH0gZnJvbSAnZ3JhcGhxbCc7XG5cbmV4cG9ydCBjb25zdCBMUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TGlmZVJlYWR5Q29uZmlnPignTFIuQVVUSCcpO1xuY29uc3QgUkVUUllfRVJST1JfQ09ERVMgPSBbTHJBcGlFcnJvckNvZGUuQ09OQ1VSUkVOVF9BQ0NFU1NdO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpZmVSZWFkeUNvbmZpZyB7XG4gIGF1dGhVcmw6IHN0cmluZztcbiAgYXBpVXJsOiBzdHJpbmc7XG4gIGFwb2xsb1VybDogc3RyaW5nO1xuICB1c2VyUG9vbElkOiBzdHJpbmc7XG4gIHVzZXJQb29sV2ViQ2xpZW50SWQ6IHN0cmluZztcbiAgYXBvbGxvQ29uZmlnPzogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+O1xuICAvLyBNYWlubHkgdG8gYWxsb3cgbG9jYWxob3N0IHRvIG5vdCBuZWVkaW5nIHRoaXMuIERlZmF1bHQgdG8gZmFsc3lcbiAgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZUFwb2xsbyA9IChcbiAgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gIGF1dGg6IEF1dGhDbGFzc1xuKTogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+ID0+IHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IERlZmF1bHRPcHRpb25zID0ge1xuICAgIHdhdGNoUXVlcnk6IHtcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxuICAgIH0sXG4gICAgcXVlcnk6IHtcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxuICAgIH0sXG4gICAgbXV0YXRlOiB7XG4gICAgICBlcnJvclBvbGljeTogJ2FsbCcsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBhdXRoTGluayA9IHNldENvbnRleHQoYXN5bmMgKF8sIHsgaGVhZGVycyB9KSA9PiB7XG4gICAgbGV0IGFjY2Vzc0p3dCA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIGFjY2Vzc0p3dCA9IChhd2FpdCBhdXRoLmN1cnJlbnRTZXNzaW9uKCkpLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zb2xlLmxvZygnVXNlciBub3Qgc2lnbmVkIGluJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgYXV0aG9yaXphdGlvbjogYWNjZXNzSnd0ID8gYEJlYXJlciAke2FjY2Vzc0p3dC5qd3RUb2tlbn1gIDogJycsXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4gIC8vIFdlIGFyZSBvbmx5IHJldHJ5aW5nIG9uIGNlcnRhaW4gZXJyb3JzLCBsaWtlIHRoZSBDT05DVVJSRU5UX0FDQ0VTUyBncWxcbiAgLy8gZXJyb3Igd2hpY2ggaW5kaWNhdGVzIERCIHJhY2UgY29uZGl0aW9uLiBTbyBjYW4gYmUgc2FmZWx5IHJldHJpZWQuXG4gIGNvbnN0IHJldHJ5SWYgPSAoZXJyb3IsIF8pID0+IHtcbiAgICAvLyBUaGUgUmV0cnlMaW5rIGlzIGNhbGxlZCBvbiBuZXR3b3JrIGVycm9yIGFzIHdlbGwsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGZvciBHcmFwaFFMIGVycm9ycy5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBHcmFwaFFMRXJyb3JFeGNlcHRpb24pIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXJyb3IuZXJyb3JzLnNvbWUoKGUpID0+IFJFVFJZX0VSUk9SX0NPREVTLmluY2x1ZGVzKGUuZXh0ZW5zaW9ucz8uY29kZSkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IHJldHJ5TGluayA9IG5ldyBSZXRyeUxpbmsoe1xuICAgIGRlbGF5OiB7XG4gICAgICBpbml0aWFsOiAzMDAsXG4gICAgICBtYXg6IEluZmluaXR5LFxuICAgICAgaml0dGVyOiB0cnVlLFxuICAgIH0sXG4gICAgYXR0ZW1wdHM6IHtcbiAgICAgIG1heDogMyxcbiAgICAgIHJldHJ5SWYsXG4gICAgfSxcbiAgfSk7XG5cbiAgY2xhc3MgR3JhcGhRTEVycm9yRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvcnM6IHJlYWRvbmx5IEdyYXBoUUxFcnJvcltdKSB7XG4gICAgICBzdXBlcihlcnJvcnMubWFwKChlKSA9PiBlLm1lc3NhZ2UpLmpvaW4oJywgJykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRocm93IGV4Y2VwdGlvbiBvbiBncWwgZXJyb3JzIHdoaWNoIGVmZmVjdGl2ZWx5IHByb21vdGVzIGl0IHRvIGEgbmV0d29ya1xuICAvLyBlcnJvciwgd2hpY2ggY2FuIHRoZW4gYmUgaGFuZGxlZCBieSB0aGUgUmV0cnlMaW5rLlxuICBjb25zdCBwcm9tb3RlR3FsRXJyb3JzID0gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbiwgZm9yd2FyZCkgPT4ge1xuICAgIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbikubWFwKChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLmVycm9ycykge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBkYXRhLmVycm9ycy5maWx0ZXIoKGUpID0+XG4gICAgICAgICAgUkVUUllfRVJST1JfQ09ERVMuaW5jbHVkZXMoZS5leHRlbnNpb25zPy5jb2RlKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3JFeGNlcHRpb24oZGF0YS5lcnJvcnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgaHR0cExpbmsgPSBjcmVhdGVIdHRwTGluayh7XG4gICAgdXJpOiBjb25maWcuYXBvbGxvVXJsLFxuICAgIC8vIFNlbmRpbmcgdGhlIHNlc3Npb25pZCBjb29raWUgc28gdGhhdCB0aGUgc2VydmVyIGNhbiB1c2Ugc2Vzc2lvbiBkYXRhIHdoZW4gbmVlZGVkLlxuICAgIC8vIGVnLiBzZXR0aW5nIHRoZSBzZXNzaW9uIGVuY3J5cHRpb24ga2V5LlxuICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgbGluazogZnJvbShbcmV0cnlMaW5rLCBwcm9tb3RlR3FsRXJyb3JzLCBhdXRoTGluaywgaHR0cExpbmtdKSxcbiAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKSxcbiAgICBkZWZhdWx0T3B0aW9ucyxcbiAgICAuLi5jb25maWcuYXBvbGxvQ29uZmlnLFxuICB9O1xufTtcbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbGlmZS1yZWFkeS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFFTCxVQUFVLEVBQ1YsY0FBYyxFQUVkLElBQUksRUFDSixhQUFhLEdBQ2QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQWtCLFNBQVMsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQWE3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBdUIsRUFDdkIsSUFBZSxFQUNXLEVBQUU7SUFDNUIsTUFBTSxjQUFjLEdBQW1CO1FBQ3JDLFVBQVUsRUFBRTtZQUNWLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLO1NBQ25CO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLFVBQVU7WUFDdkIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7UUFDRCxNQUFNLEVBQUU7WUFDTixXQUFXLEVBQUUsS0FBSztTQUNuQjtLQUNGLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1FBQ25ELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJ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Q3RCO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwb2xsb0NsaWVudE9wdGlvbnMsXG4gIEFwb2xsb0xpbmssXG4gIGNyZWF0ZUh0dHBMaW5rLFxuICBEZWZhdWx0T3B0aW9ucyxcbiAgZnJvbSxcbiAgSW5NZW1vcnlDYWNoZSxcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBzZXRDb250ZXh0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9jb250ZXh0JztcbmltcG9ydCB7IFJldHJ5TGluayB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvcmV0cnknO1xuaW1wb3J0IHsgQXV0aENsYXNzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgvbGliLWVzbS9BdXRoJztcbmltcG9ydCB7IEdyYXBoUUxFcnJvciB9IGZyb20gJ2dyYXBocWwnO1xuaW1wb3J0IHsgTHJBcGlFcnJvckNvZGUgfSBmcm9tICcuL19jb21tb24vZXhjZXB0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBMUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TGlmZVJlYWR5Q29uZmlnPignTFIuQVVUSCcpO1xuY29uc3QgUkVUUllfRVJST1JfQ09ERVMgPSBbTHJBcGlFcnJvckNvZGUuQ09OQ1VSUkVOVF9BQ0NFU1NdO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpZmVSZWFkeUNvbmZpZyB7XG4gIGF1dGhVcmw6IHN0cmluZztcbiAgYXBpVXJsOiBzdHJpbmc7XG4gIGFwb2xsb1VybDogc3RyaW5nO1xuICB1c2VyUG9vbElkOiBzdHJpbmc7XG4gIHVzZXJQb29sV2ViQ2xpZW50SWQ6IHN0cmluZztcbiAgYXBvbGxvQ29uZmlnPzogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+O1xuICAvLyBNYWlubHkgdG8gYWxsb3cgbG9jYWxob3N0IHRvIG5vdCBuZWVkaW5nIHRoaXMuIERlZmF1bHQgdG8gZmFsc3lcbiAgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZUFwb2xsbyA9IChcbiAgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gIGF1dGg6IEF1dGhDbGFzc1xuKTogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+ID0+IHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IERlZmF1bHRPcHRpb25zID0ge1xuICAgIHdhdGNoUXVlcnk6IHtcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxuICAgIH0sXG4gICAgcXVlcnk6IHtcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxuICAgIH0sXG4gICAgbXV0YXRlOiB7XG4gICAgICBlcnJvclBvbGljeTogJ2FsbCcsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBhdXRoTGluayA9IHNldENvbnRleHQoYXN5bmMgKF8sIHsgaGVhZGVycyB9KSA9PiB7XG4gICAgbGV0IGFjY2Vzc0p3dCA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIGFjY2Vzc0p3dCA9IChhd2FpdCBhdXRoLmN1cnJlbnRTZXNzaW9uKCkpLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zb2xlLmxvZygnVXNlciBub3Qgc2lnbmVkIGluJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgYXV0aG9yaXphdGlvbjogYWNjZXNzSnd0ID8gYEJlYXJlciAke2FjY2Vzc0p3dC5qd3RUb2tlbn1gIDogJycsXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4gIC8vIFdlIGFyZSBvbmx5IHJldHJ5aW5nIG9uIGNlcnRhaW4gZXJyb3JzLCBsaWtlIHRoZSBDT05DVVJSRU5UX0FDQ0VTUyBncWxcbiAgLy8gZXJyb3Igd2hpY2ggaW5kaWNhdGVzIERCIHJhY2UgY29uZGl0aW9uLiBTbyBjYW4gYmUgc2FmZWx5IHJldHJpZWQuXG4gIGNvbnN0IHJldHJ5SWYgPSAoZXJyb3IsIF8pID0+IHtcbiAgICAvLyBUaGUgUmV0cnlMaW5rIGlzIGNhbGxlZCBvbiBuZXR3b3JrIGVycm9yIGFzIHdlbGwsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGZvciBHcmFwaFFMIGVycm9ycy5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBHcmFwaFFMRXJyb3JFeGNlcHRpb24pIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXJyb3IuZXJyb3JzLnNvbWUoKGUpID0+IFJFVFJZX0VSUk9SX0NPREVTLmluY2x1ZGVzKGUuZXh0ZW5zaW9ucz8uY29kZSkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IHJldHJ5TGluayA9IG5ldyBSZXRyeUxpbmsoe1xuICAgIGRlbGF5OiB7XG4gICAgICBpbml0aWFsOiAzMDAsXG4gICAgICBtYXg6IEluZmluaXR5LFxuICAgICAgaml0dGVyOiB0cnVlLFxuICAgIH0sXG4gICAgYXR0ZW1wdHM6IHtcbiAgICAgIG1heDogMyxcbiAgICAgIHJldHJ5SWYsXG4gICAgfSxcbiAgfSk7XG5cbiAgY2xhc3MgR3JhcGhRTEVycm9yRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvcnM6IHJlYWRvbmx5IEdyYXBoUUxFcnJvcltdKSB7XG4gICAgICBzdXBlcihlcnJvcnMubWFwKChlKSA9PiBlLm1lc3NhZ2UpLmpvaW4oJywgJykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRocm93IGV4Y2VwdGlvbiBvbiBncWwgZXJyb3JzIHdoaWNoIGVmZmVjdGl2ZWx5IHByb21vdGVzIGl0IHRvIGEgbmV0d29ya1xuICAvLyBlcnJvciwgd2hpY2ggY2FuIHRoZW4gYmUgaGFuZGxlZCBieSB0aGUgUmV0cnlMaW5rLlxuICBjb25zdCBwcm9tb3RlR3FsRXJyb3JzID0gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbiwgZm9yd2FyZCkgPT4ge1xuICAgIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbikubWFwKChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLmVycm9ycykge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBkYXRhLmVycm9ycy5maWx0ZXIoKGUpID0+XG4gICAgICAgICAgUkVUUllfRVJST1JfQ09ERVMuaW5jbHVkZXMoZS5leHRlbnNpb25zPy5jb2RlKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3JFeGNlcHRpb24oZGF0YS5lcnJvcnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgaHR0cExpbmsgPSBjcmVhdGVIdHRwTGluayh7XG4gICAgdXJpOiBjb25maWcuYXBvbGxvVXJsLFxuICAgIC8vIFNlbmRpbmcgdGhlIHNlc3Npb25pZCBjb29raWUgc28gdGhhdCB0aGUgc2VydmVyIGNhbiB1c2Ugc2Vzc2lvbiBkYXRhIHdoZW4gbmVlZGVkLlxuICAgIC8vIGVnLiBzZXR0aW5nIHRoZSBzZXNzaW9uIGVuY3J5cHRpb24ga2V5LlxuICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgbGluazogZnJvbShbcmV0cnlMaW5rLCBwcm9tb3RlR3FsRXJyb3JzLCBhdXRoTGluaywgaHR0cExpbmtdKSxcbiAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKSxcbiAgICBkZWZhdWx0T3B0aW9ucyxcbiAgICAuLi5jb25maWcuYXBvbGxvQ29uZmlnLFxuICB9O1xufTtcbiJdfQ==
@@ -2,22 +2,11 @@ import { HttpClientModule } from '@angular/common/http';
2
2
  import { APP_INITIALIZER, NgModule } from '@angular/core';
3
3
  import Auth from '@aws-amplify/auth';
4
4
  import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
5
+ import { NgIdleKeepaliveModule } from '@ng-idle/keepalive';
5
6
  import { APOLLO_OPTIONS } from 'apollo-angular';
6
- import { CookieService } from 'ngx-cookie-service';
7
- import { FileService } from './api/file.service';
8
- import { ProfileService } from './users/profile.service';
9
7
  import { configureAmplifyAuth } from './auth/auth.config';
10
8
  import { initialiseAuth, LifeReadyAuthService, } from './auth/life-ready-auth.service';
11
- import { PasswordService } from './auth/password.service';
12
- import { RegisterService } from './auth/register.service';
13
- import { EncryptionService } from './cryptography/encryption.service';
14
- import { KeyGraphService } from './cryptography/key-graph.service';
15
- import { KeyService } from './cryptography/key.service';
16
- import { KeyFactoryService } from './cryptography/key-factory.service';
17
- import { WebCryptoService } from './cryptography/web-crypto.service';
18
9
  import { configureApollo, LR_CONFIG, } from './life-ready.config';
19
- import { TimeService } from './api/time.service';
20
- import { NgIdleKeepaliveModule } from '@ng-idle/keepalive';
21
10
  export class LifeReadyModule {
22
11
  static forRoot(config) {
23
12
  return {
@@ -55,20 +44,6 @@ export class LifeReadyModule {
55
44
  LifeReadyModule.decorators = [
56
45
  { type: NgModule, args: [{
57
46
  imports: [HttpClientModule, NgIdleKeepaliveModule.forRoot()],
58
- providers: [
59
- CookieService,
60
- TimeService,
61
- FileService,
62
- ProfileService,
63
- RegisterService,
64
- LifeReadyAuthService,
65
- PasswordService,
66
- WebCryptoService,
67
- EncryptionService,
68
- KeyGraphService,
69
- KeyService,
70
- KeyFactoryService,
71
- ],
72
47
  },] }
73
48
  ];
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2xpZmUtcmVhZHkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLElBQUksTUFBTSxtQkFBbUIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEdBQ3JCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxlQUFlLEVBRWYsU0FBUyxHQUNWLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBbUIzRCxNQUFNLE9BQU8sZUFBZTtJQUNuQixNQUFNLENBQUMsT0FBTyxDQUNuQixNQUF1QjtRQUV2QixPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxTQUFTO29CQUNsQixRQUFRLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsb0JBQW9CO29CQUNoQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO29CQUM1QixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLGNBQWM7b0JBQzFCLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUM1QixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsY0FBYztvQkFDdkIsVUFBVSxFQUFFLGVBQWU7b0JBQzNCLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBbkRGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDNUQsU0FBUyxFQUFFO29CQUNULGFBQWE7b0JBQ2IsV0FBVztvQkFDWCxXQUFXO29CQUNYLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixvQkFBb0I7b0JBQ3BCLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixpQkFBaUI7aUJBQ2xCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEF1dGggZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgnO1xuaW1wb3J0IHsgQXV0aENsYXNzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgvbGliLWVzbS9BdXRoJztcbmltcG9ydCB7IEFQT0xMT19PUFRJT05TIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4vYXBpL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJy4vdXNlcnMvcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbmZpZ3VyZUFtcGxpZnlBdXRoIH0gZnJvbSAnLi9hdXRoL2F1dGguY29uZmlnJztcbmltcG9ydCB7XG4gIGluaXRpYWxpc2VBdXRoLFxuICBMaWZlUmVhZHlBdXRoU2VydmljZSxcbn0gZnJvbSAnLi9hdXRoL2xpZmUtcmVhZHktYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhc3N3b3JkU2VydmljZSB9IGZyb20gJy4vYXV0aC9wYXNzd29yZC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZ2lzdGVyU2VydmljZSB9IGZyb20gJy4vYXV0aC9yZWdpc3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG9ncmFwaHkvZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQ3J5cHRvU2VydmljZSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5L3dlYi1jcnlwdG8uc2VydmljZSc7XG5pbXBvcnQge1xuICBjb25maWd1cmVBcG9sbG8sXG4gIExpZmVSZWFkeUNvbmZpZyxcbiAgTFJfQ09ORklHLFxufSBmcm9tICcuL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7IFRpbWVTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvdGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5nSWRsZUtlZXBhbGl2ZU1vZHVsZSB9IGZyb20gJ0BuZy1pZGxlL2tlZXBhbGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBOZ0lkbGVLZWVwYWxpdmVNb2R1bGUuZm9yUm9vdCgpXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29va2llU2VydmljZSxcbiAgICBUaW1lU2VydmljZSxcbiAgICBGaWxlU2VydmljZSxcbiAgICBQcm9maWxlU2VydmljZSxcbiAgICBSZWdpc3RlclNlcnZpY2UsXG4gICAgTGlmZVJlYWR5QXV0aFNlcnZpY2UsXG4gICAgUGFzc3dvcmRTZXJ2aWNlLFxuICAgIFdlYkNyeXB0b1NlcnZpY2UsXG4gICAgRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgS2V5R3JhcGhTZXJ2aWNlLFxuICAgIEtleVNlcnZpY2UsXG4gICAgS2V5RmFjdG9yeVNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpZmVSZWFkeU1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChcbiAgICBjb25maWc6IExpZmVSZWFkeUNvbmZpZ1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExpZmVSZWFkeU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTGlmZVJlYWR5TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMUl9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEF1dGhDbGFzcyxcbiAgICAgICAgICB1c2VWYWx1ZTogQXV0aCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVBbXBsaWZ5QXV0aCxcbiAgICAgICAgICBkZXBzOiBbTFJfQ09ORklHLCBBdXRoQ2xhc3NdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpc2VBdXRoLFxuICAgICAgICAgIGRlcHM6IFtMaWZlUmVhZHlBdXRoU2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUE9MTE9fT1BUSU9OUyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVBcG9sbG8sXG4gICAgICAgICAgZGVwczogW0xSX0NPTkZJRywgQXV0aENsYXNzXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbGlmZS1yZWFkeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsR0FDckIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsZUFBZSxFQUVmLFNBQVMsR0FDVixNQUFNLHFCQUFxQixDQUFDO0FBSzdCLE1BQU0sT0FBTyxlQUFlO0lBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQ25CLE1BQXVCO1FBRXZCLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsU0FBUztvQkFDbEIsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxvQkFBb0I7b0JBQ2hDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7b0JBQzVCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsY0FBYztvQkFDMUIsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQzVCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxjQUFjO29CQUN2QixVQUFVLEVBQUUsZUFBZTtvQkFDM0IsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0I7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFyQ0YsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBBdXRoIGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQgeyBOZ0lkbGVLZWVwYWxpdmVNb2R1bGUgfSBmcm9tICdAbmctaWRsZS9rZWVwYWxpdmUnO1xuaW1wb3J0IHsgQVBPTExPX09QVElPTlMgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBjb25maWd1cmVBbXBsaWZ5QXV0aCB9IGZyb20gJy4vYXV0aC9hdXRoLmNvbmZpZyc7XG5pbXBvcnQge1xuICBpbml0aWFsaXNlQXV0aCxcbiAgTGlmZVJlYWR5QXV0aFNlcnZpY2UsXG59IGZyb20gJy4vYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZSc7XG5pbXBvcnQge1xuICBjb25maWd1cmVBcG9sbG8sXG4gIExpZmVSZWFkeUNvbmZpZyxcbiAgTFJfQ09ORklHLFxufSBmcm9tICcuL2xpZmUtcmVhZHkuY29uZmlnJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGUsIE5nSWRsZUtlZXBhbGl2ZU1vZHVsZS5mb3JSb290KCldLFxufSlcbmV4cG9ydCBjbGFzcyBMaWZlUmVhZHlNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoXG4gICAgY29uZmlnOiBMaWZlUmVhZHlDb25maWdcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMaWZlUmVhZHlNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IExpZmVSZWFkeU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTFJfQ09ORklHLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBdXRoQ2xhc3MsXG4gICAgICAgICAgdXNlVmFsdWU6IEF1dGgsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogY29uZmlndXJlQW1wbGlmeUF1dGgsXG4gICAgICAgICAgZGVwczogW0xSX0NPTkZJRywgQXV0aENsYXNzXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBpbml0aWFsaXNlQXV0aCxcbiAgICAgICAgICBkZXBzOiBbTGlmZVJlYWR5QXV0aFNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBPTExPX09QVElPTlMsXG4gICAgICAgICAgdXNlRmFjdG9yeTogY29uZmlndXJlQXBvbGxvLFxuICAgICAgICAgIGRlcHM6IFtMUl9DT05GSUcsIEF1dGhDbGFzc10sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { gqlTyped } from '../_common/ast';
2
+ export const LockFragment = gqlTyped `
3
+ fragment LockFragment on LockField {
4
+ created
5
+ modified
6
+ version
7
+ expiryTime
8
+ state
9
+ }`;
10
+ export const UpdateLockMutation = gqlTyped `
11
+ mutation UpdateLockMutation($input: UpdateLockInput!) {
12
+ updateLock(input: $input) {
13
+ lock {
14
+ ...LockFragment
15
+ }
16
+ }
17
+ }
18
+ ${LockFragment}
19
+ `;
20
+ export const AcquireLockMutation = gqlTyped `
21
+ mutation AcquireLockMutation($input: AcquireLockInput!) {
22
+ acquireLock(input: $input) {
23
+ lock {
24
+ ...LockFragment
25
+ }
26
+ }
27
+ }
28
+ ${LockFragment}
29
+ `;
30
+ export const ReleaseLockMutation = gqlTyped `
31
+ mutation ReleaseLockMutation($input: ReleaseLockInput!) {
32
+ releaseLock(input: $input) {
33
+ lock {
34
+ ...LockFragment
35
+ }
36
+ }
37
+ }
38
+ ${LockFragment}
39
+ `;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvbG9jay9sb2NrLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFTMUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBb0I7Ozs7Ozs7RUFPdEQsQ0FBQztBQU9ILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBMEI7Ozs7Ozs7O0VBUWxFLFlBQVk7Q0FDYixDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUEyQjs7Ozs7Ozs7RUFRcEUsWUFBWTtDQUNiLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxRQUFRLENBQTJCOzs7Ozs7OztFQVFwRSxZQUFZO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lLCBMb2NrU3RhdGUsIFVVSUQgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xuaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9ja0ZyYWdtZW50UmVzdWx0IHtcbiAgY3JlYXRlZDogRGF0ZVRpbWU7XG4gIG1vZGlmaWVkOiBEYXRlVGltZTtcbiAgdmVyc2lvbj86IFVVSUQ7XG4gIGV4cGlyeVRpbWU6IERhdGVUaW1lO1xuICBzdGF0ZTogTG9ja1N0YXRlO1xufVxuZXhwb3J0IGNvbnN0IExvY2tGcmFnbWVudCA9IGdxbFR5cGVkPExvY2tGcmFnbWVudFJlc3VsdD5gXG5mcmFnbWVudCBMb2NrRnJhZ21lbnQgb24gTG9ja0ZpZWxkIHtcbiAgY3JlYXRlZFxuICBtb2RpZmllZFxuICB2ZXJzaW9uXG4gIGV4cGlyeVRpbWVcbiAgc3RhdGVcbn1gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUxvY2tNdXRhdGlvblJlc3VsdCB7XG4gIHVwZGF0ZUxvY2s6IHtcbiAgICBsb2NrOiBMb2NrRnJhZ21lbnRSZXN1bHQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgVXBkYXRlTG9ja011dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlTG9ja011dGF0aW9uUmVzdWx0PmBcbm11dGF0aW9uIFVwZGF0ZUxvY2tNdXRhdGlvbigkaW5wdXQ6IFVwZGF0ZUxvY2tJbnB1dCEpIHtcbiAgdXBkYXRlTG9jayhpbnB1dDogJGlucHV0KSB7XG4gICAgbG9jayB7XG4gICAgICAuLi5Mb2NrRnJhZ21lbnRcbiAgICB9XG4gIH1cbn1cbiR7TG9ja0ZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBBY3F1aXJlTG9ja011dGF0aW9uUmVzdWx0IHtcbiAgYWNxdWlyZUxvY2s6IHtcbiAgICBsb2NrOiBMb2NrRnJhZ21lbnRSZXN1bHQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgQWNxdWlyZUxvY2tNdXRhdGlvbiA9IGdxbFR5cGVkPEFjcXVpcmVMb2NrTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQWNxdWlyZUxvY2tNdXRhdGlvbigkaW5wdXQ6IEFjcXVpcmVMb2NrSW5wdXQhKSB7XG4gIGFjcXVpcmVMb2NrKGlucHV0OiAkaW5wdXQpIHtcbiAgICBsb2NrIHtcbiAgICAgIC4uLkxvY2tGcmFnbWVudFxuICAgIH1cbiAgfVxufVxuJHtMb2NrRnJhZ21lbnR9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbGVhc2VMb2NrTXV0YXRpb25SZXN1bHQge1xuICByZWxlYXNlTG9jazoge1xuICAgIGxvY2s6IExvY2tGcmFnbWVudFJlc3VsdDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBSZWxlYXNlTG9ja011dGF0aW9uID0gZ3FsVHlwZWQ8UmVsZWFzZUxvY2tNdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBSZWxlYXNlTG9ja011dGF0aW9uKCRpbnB1dDogUmVsZWFzZUxvY2tJbnB1dCEpIHtcbiAgcmVsZWFzZUxvY2soaW5wdXQ6ICRpbnB1dCkge1xuICAgIGxvY2sge1xuICAgICAgLi4uTG9ja0ZyYWdtZW50XG4gICAgfVxuICB9XG59XG4ke0xvY2tGcmFnbWVudH1cbmA7XG4iXX0=