@lifeready/core 9.0.7 → 10.0.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 (225) hide show
  1. package/fesm2022/lifeready-core.mjs +10522 -0
  2. package/fesm2022/lifeready-core.mjs.map +1 -0
  3. package/package.json +21 -16
  4. package/types/lifeready-core.d.ts +5329 -0
  5. package/bundles/lifeready-core.umd.js +0 -13231
  6. package/bundles/lifeready-core.umd.js.map +0 -1
  7. package/bundles/lifeready-core.umd.min.js +0 -2
  8. package/bundles/lifeready-core.umd.min.js.map +0 -1
  9. package/esm2015/lib/_common/ast.js +0 -41
  10. package/esm2015/lib/_common/deferred-promise.js +0 -24
  11. package/esm2015/lib/_common/exceptions.js +0 -186
  12. package/esm2015/lib/_common/index.js +0 -3
  13. package/esm2015/lib/_common/kc-lodash.js +0 -11
  14. package/esm2015/lib/_common/key.js +0 -28
  15. package/esm2015/lib/_common/queries.gql.js +0 -43
  16. package/esm2015/lib/_common/run-outside-angular.js +0 -80
  17. package/esm2015/lib/_common/storage.js +0 -28
  18. package/esm2015/lib/_common/types.js +0 -2
  19. package/esm2015/lib/_common/utils.js +0 -73
  20. package/esm2015/lib/api/lr-apollo.service.js +0 -47
  21. package/esm2015/lib/api/lr-graphql/index.js +0 -6
  22. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +0 -170
  23. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +0 -216
  24. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +0 -51
  25. package/esm2015/lib/api/lr-graphql/lr-mutation.js +0 -91
  26. package/esm2015/lib/api/lr-graphql/lr.service.js +0 -18
  27. package/esm2015/lib/api/query-processor/common-processors.service.js +0 -94
  28. package/esm2015/lib/api/query-processor/index.js +0 -3
  29. package/esm2015/lib/api/query-processor/query-processor.service.js +0 -307
  30. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +0 -110
  31. package/esm2015/lib/api/types/graphql.types.js +0 -8
  32. package/esm2015/lib/api/types/index.js +0 -3
  33. package/esm2015/lib/api/types/lr-graphql.types.js +0 -182
  34. package/esm2015/lib/auth/auth.config.js +0 -57
  35. package/esm2015/lib/auth/auth.gql.private.js +0 -85
  36. package/esm2015/lib/auth/auth.service.js +0 -616
  37. package/esm2015/lib/auth/auth.types.js +0 -19
  38. package/esm2015/lib/contact-card/contact-card.gql.js +0 -79
  39. package/esm2015/lib/contact-card/contact-card.service.js +0 -156
  40. package/esm2015/lib/contact-card/contact-card2.gql.js +0 -29
  41. package/esm2015/lib/contact-card/contact-card2.service.js +0 -103
  42. package/esm2015/lib/encryption/encryption.service.js +0 -188
  43. package/esm2015/lib/file-upload/file-upload.service.js +0 -70
  44. package/esm2015/lib/file-upload/file-upload.types.js +0 -2
  45. package/esm2015/lib/idle/idle.service.js +0 -159
  46. package/esm2015/lib/idle/idle.types.js +0 -7
  47. package/esm2015/lib/item/item.gql.js +0 -166
  48. package/esm2015/lib/item/item.gql.private.js +0 -41
  49. package/esm2015/lib/item/item.service.js +0 -662
  50. package/esm2015/lib/item/item.types.js +0 -2
  51. package/esm2015/lib/key/key-factory.service.js +0 -226
  52. package/esm2015/lib/key/key-graph.service.js +0 -314
  53. package/esm2015/lib/key/key-meta.service.js +0 -153
  54. package/esm2015/lib/key/key.service.js +0 -124
  55. package/esm2015/lib/key/key.types.js +0 -16
  56. package/esm2015/lib/key-exchange/key-exchange.gql.js +0 -174
  57. package/esm2015/lib/key-exchange/key-exchange.service.js +0 -496
  58. package/esm2015/lib/lbop/lbop.service.js +0 -351
  59. package/esm2015/lib/life-ready.config.js +0 -96
  60. package/esm2015/lib/life-ready.module.js +0 -42
  61. package/esm2015/lib/lock/lock.gql.js +0 -40
  62. package/esm2015/lib/lock/lock.service.js +0 -64
  63. package/esm2015/lib/notification/notification.gql.js +0 -43
  64. package/esm2015/lib/notification/notification.service.js +0 -118
  65. package/esm2015/lib/password/password.gql.js +0 -28
  66. package/esm2015/lib/password/password.service.js +0 -309
  67. package/esm2015/lib/persist/persist.service.js +0 -181
  68. package/esm2015/lib/plan/plan.gql.js +0 -91
  69. package/esm2015/lib/plan/plan.service.js +0 -191
  70. package/esm2015/lib/plan/plan.types.js +0 -2
  71. package/esm2015/lib/profile/profile-details.service.js +0 -261
  72. package/esm2015/lib/profile/profile.gql.js +0 -170
  73. package/esm2015/lib/profile/profile.service.js +0 -166
  74. package/esm2015/lib/profile/profile.types.js +0 -45
  75. package/esm2015/lib/register/register.service.js +0 -173
  76. package/esm2015/lib/register/register.types.js +0 -3
  77. package/esm2015/lib/reminder/reminder.gql.js +0 -27
  78. package/esm2015/lib/reminder/reminder.service.js +0 -85
  79. package/esm2015/lib/reminder/reminder.types.js +0 -2
  80. package/esm2015/lib/scenario/scenario.constants.js +0 -2
  81. package/esm2015/lib/scenario/scenario.controller.js +0 -34
  82. package/esm2015/lib/scenario/scenario.gql.js +0 -90
  83. package/esm2015/lib/scenario/scenario.private.gql.js +0 -200
  84. package/esm2015/lib/scenario/scenario.service.js +0 -679
  85. package/esm2015/lib/scenario/scenario.types.js +0 -2
  86. package/esm2015/lib/server-config/server-config.gql.js +0 -9
  87. package/esm2015/lib/server-config/server-config.service.js +0 -41
  88. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +0 -119
  89. package/esm2015/lib/shared-contact-card/shared-contact-card2.gql.js +0 -41
  90. package/esm2015/lib/shared-contact-card/shared-contact-card2.service.js +0 -117
  91. package/esm2015/lib/slip39/slip39.service.js +0 -167
  92. package/esm2015/lib/time/time.service.js +0 -152
  93. package/esm2015/lib/tp-assembly/tp-assembly.js +0 -363
  94. package/esm2015/lib/tp-assembly/tp-assembly.private.gql.js +0 -22
  95. package/esm2015/lib/tp-assembly/tp-assembly.types.js +0 -2
  96. package/esm2015/lib/tp-password-reset/tp-password-reset-request.service.js +0 -98
  97. package/esm2015/lib/tp-password-reset/tp-password-reset-user.service.js +0 -121
  98. package/esm2015/lib/tp-password-reset/tp-password-reset.constants.js +0 -4
  99. package/esm2015/lib/tp-password-reset/tp-password-reset.controller.js +0 -34
  100. package/esm2015/lib/tp-password-reset/tp-password-reset.gql.js +0 -74
  101. package/esm2015/lib/tp-password-reset/tp-password-reset.private.gql.js +0 -166
  102. package/esm2015/lib/tp-password-reset/tp-password-reset.private.service.js +0 -54
  103. package/esm2015/lib/tp-password-reset/tp-password-reset.service.js +0 -110
  104. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +0 -2
  105. package/esm2015/lib/trusted-party/trusted-party.gql.js +0 -96
  106. package/esm2015/lib/trusted-party/trusted-party.gql.private.js +0 -51
  107. package/esm2015/lib/trusted-party/trusted-party.service.js +0 -461
  108. package/esm2015/lib/trusted-party/trusted-party.types.js +0 -2
  109. package/esm2015/lib/two-factor/two-factor.service.js +0 -74
  110. package/esm2015/lib/user/user.gql.js +0 -32
  111. package/esm2015/lib/user/user.service.js +0 -58
  112. package/esm2015/lib/user/user.types.js +0 -2
  113. package/esm2015/lib/web-crypto/web-crypto.service.js +0 -29
  114. package/esm2015/lifeready-core.js +0 -17
  115. package/esm2015/public-api.js +0 -60
  116. package/fesm2015/lifeready-core.js +0 -10970
  117. package/fesm2015/lifeready-core.js.map +0 -1
  118. package/lib/_common/ast.d.ts +0 -11
  119. package/lib/_common/deferred-promise.d.ts +0 -12
  120. package/lib/_common/exceptions.d.ts +0 -126
  121. package/lib/_common/index.d.ts +0 -2
  122. package/lib/_common/kc-lodash.d.ts +0 -5
  123. package/lib/_common/key.d.ts +0 -14
  124. package/lib/_common/queries.gql.d.ts +0 -4
  125. package/lib/_common/run-outside-angular.d.ts +0 -14
  126. package/lib/_common/storage.d.ts +0 -13
  127. package/lib/_common/types.d.ts +0 -15
  128. package/lib/_common/utils.d.ts +0 -12
  129. package/lib/api/lr-apollo.service.d.ts +0 -15
  130. package/lib/api/lr-graphql/index.d.ts +0 -5
  131. package/lib/api/lr-graphql/lr-graphql.service.d.ts +0 -81
  132. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +0 -46
  133. package/lib/api/lr-graphql/lr-mutation-base.d.ts +0 -28
  134. package/lib/api/lr-graphql/lr-mutation.d.ts +0 -48
  135. package/lib/api/lr-graphql/lr.service.d.ts +0 -9
  136. package/lib/api/query-processor/common-processors.service.d.ts +0 -36
  137. package/lib/api/query-processor/index.d.ts +0 -2
  138. package/lib/api/query-processor/query-processor.service.d.ts +0 -18
  139. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +0 -15
  140. package/lib/api/types/graphql.types.d.ts +0 -30
  141. package/lib/api/types/index.d.ts +0 -2
  142. package/lib/api/types/lr-graphql.types.d.ts +0 -807
  143. package/lib/auth/auth.config.d.ts +0 -5
  144. package/lib/auth/auth.gql.private.d.ts +0 -25
  145. package/lib/auth/auth.service.d.ts +0 -72
  146. package/lib/auth/auth.types.d.ts +0 -70
  147. package/lib/contact-card/contact-card.gql.d.ts +0 -7
  148. package/lib/contact-card/contact-card.service.d.ts +0 -53
  149. package/lib/contact-card/contact-card2.gql.d.ts +0 -25
  150. package/lib/contact-card/contact-card2.service.d.ts +0 -64
  151. package/lib/encryption/encryption.service.d.ts +0 -42
  152. package/lib/file-upload/file-upload.service.d.ts +0 -15
  153. package/lib/file-upload/file-upload.types.d.ts +0 -5
  154. package/lib/idle/idle.service.d.ts +0 -47
  155. package/lib/idle/idle.types.d.ts +0 -10
  156. package/lib/item/item.gql.d.ts +0 -134
  157. package/lib/item/item.gql.private.d.ts +0 -35
  158. package/lib/item/item.service.d.ts +0 -201
  159. package/lib/item/item.types.d.ts +0 -95
  160. package/lib/key/key-factory.service.d.ts +0 -40
  161. package/lib/key/key-graph.service.d.ts +0 -41
  162. package/lib/key/key-meta.service.d.ts +0 -51
  163. package/lib/key/key.service.d.ts +0 -36
  164. package/lib/key/key.types.d.ts +0 -86
  165. package/lib/key-exchange/key-exchange.gql.d.ts +0 -141
  166. package/lib/key-exchange/key-exchange.service.d.ts +0 -179
  167. package/lib/lbop/lbop.service.d.ts +0 -99
  168. package/lib/life-ready.config.d.ts +0 -26
  169. package/lib/life-ready.module.d.ts +0 -5
  170. package/lib/lock/lock.gql.d.ts +0 -27
  171. package/lib/lock/lock.service.d.ts +0 -34
  172. package/lib/notification/notification.gql.d.ts +0 -37
  173. package/lib/notification/notification.service.d.ts +0 -64
  174. package/lib/password/password.gql.d.ts +0 -3
  175. package/lib/password/password.service.d.ts +0 -79
  176. package/lib/persist/persist.service.d.ts +0 -31
  177. package/lib/plan/plan.gql.d.ts +0 -69
  178. package/lib/plan/plan.service.d.ts +0 -111
  179. package/lib/plan/plan.types.d.ts +0 -16
  180. package/lib/profile/profile-details.service.d.ts +0 -20
  181. package/lib/profile/profile.gql.d.ts +0 -21
  182. package/lib/profile/profile.service.d.ts +0 -32
  183. package/lib/profile/profile.types.d.ts +0 -121
  184. package/lib/register/register.service.d.ts +0 -25
  185. package/lib/register/register.types.d.ts +0 -6
  186. package/lib/reminder/reminder.gql.d.ts +0 -23
  187. package/lib/reminder/reminder.service.d.ts +0 -33
  188. package/lib/reminder/reminder.types.d.ts +0 -17
  189. package/lib/scenario/scenario.constants.d.ts +0 -1
  190. package/lib/scenario/scenario.controller.d.ts +0 -10
  191. package/lib/scenario/scenario.gql.d.ts +0 -78
  192. package/lib/scenario/scenario.private.gql.d.ts +0 -16
  193. package/lib/scenario/scenario.service.d.ts +0 -655
  194. package/lib/scenario/scenario.types.d.ts +0 -64
  195. package/lib/server-config/server-config.gql.d.ts +0 -5
  196. package/lib/server-config/server-config.service.d.ts +0 -9
  197. package/lib/shared-contact-card/shared-contact-card.service.d.ts +0 -33
  198. package/lib/shared-contact-card/shared-contact-card2.gql.d.ts +0 -36
  199. package/lib/shared-contact-card/shared-contact-card2.service.d.ts +0 -45
  200. package/lib/slip39/slip39.service.d.ts +0 -42
  201. package/lib/time/time.service.d.ts +0 -26
  202. package/lib/tp-assembly/tp-assembly.d.ts +0 -177
  203. package/lib/tp-assembly/tp-assembly.private.gql.d.ts +0 -5
  204. package/lib/tp-assembly/tp-assembly.types.d.ts +0 -40
  205. package/lib/tp-password-reset/tp-password-reset-request.service.d.ts +0 -16
  206. package/lib/tp-password-reset/tp-password-reset-user.service.d.ts +0 -29
  207. package/lib/tp-password-reset/tp-password-reset.constants.d.ts +0 -3
  208. package/lib/tp-password-reset/tp-password-reset.controller.d.ts +0 -10
  209. package/lib/tp-password-reset/tp-password-reset.gql.d.ts +0 -63
  210. package/lib/tp-password-reset/tp-password-reset.private.gql.d.ts +0 -163
  211. package/lib/tp-password-reset/tp-password-reset.private.service.d.ts +0 -59
  212. package/lib/tp-password-reset/tp-password-reset.service.d.ts +0 -112
  213. package/lib/tp-password-reset/tp-password-reset.types.d.ts +0 -40
  214. package/lib/trusted-party/trusted-party.gql.d.ts +0 -85
  215. package/lib/trusted-party/trusted-party.gql.private.d.ts +0 -40
  216. package/lib/trusted-party/trusted-party.service.d.ts +0 -192
  217. package/lib/trusted-party/trusted-party.types.d.ts +0 -31
  218. package/lib/two-factor/two-factor.service.d.ts +0 -15
  219. package/lib/user/user.gql.d.ts +0 -8
  220. package/lib/user/user.service.d.ts +0 -9
  221. package/lib/user/user.types.d.ts +0 -16
  222. package/lib/web-crypto/web-crypto.service.d.ts +0 -5
  223. package/lifeready-core.d.ts +0 -16
  224. package/lifeready-core.metadata.json +0 -1
  225. package/public-api.d.ts +0 -56
@@ -1,19 +0,0 @@
1
- export var RecoveryStatus;
2
- (function (RecoveryStatus) {
3
- RecoveryStatus["NONE"] = "NONE";
4
- RecoveryStatus["NEW_PASSWORD"] = "NEW_PASSWORD";
5
- RecoveryStatus["OLD_PASSWORD"] = "OLD_PASSWORD";
6
- })(RecoveryStatus || (RecoveryStatus = {}));
7
- export var PasswordChangeStatus;
8
- (function (PasswordChangeStatus) {
9
- PasswordChangeStatus["IN_PROGRESS"] = "IN_PROGRESS";
10
- PasswordChangeStatus["RECOVERY"] = "RECOVERY";
11
- })(PasswordChangeStatus || (PasswordChangeStatus = {}));
12
- export var CognitoChallengeName;
13
- (function (CognitoChallengeName) {
14
- CognitoChallengeName["NEW_PASSWORD_REQUIRED"] = "NEW_PASSWORD_REQUIRED";
15
- CognitoChallengeName["SMS_MFA"] = "SMS_MFA";
16
- CognitoChallengeName["SOFTWARE_TOKEN_MFA"] = "SOFTWARE_TOKEN_MFA";
17
- CognitoChallengeName["MFA_SETUP"] = "MFA_SETUP";
18
- })(CognitoChallengeName || (CognitoChallengeName = {}));
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9hdXRoL2F1dGgudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUNBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsK0JBQWEsQ0FBQTtJQUNiLCtDQUE2QixDQUFBO0lBQzdCLCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFKVyxjQUFjLEtBQWQsY0FBYyxRQUl6QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsbURBQTJCLENBQUE7SUFDM0IsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0I7QUFZRCxNQUFNLENBQU4sSUFBWSxvQkFLWDtBQUxELFdBQVksb0JBQW9CO0lBQzlCLHVFQUErQyxDQUFBO0lBQy9DLDJDQUFtQixDQUFBO0lBQ25CLGlFQUF5QyxDQUFBO0lBQ3pDLCtDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFMVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29nbml0b1VzZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBDb2duaXRvVXNlckF0dHJpYnV0ZSB9IGZyb20gJ2FtYXpvbi1jb2duaXRvLWlkZW50aXR5LWpzJztcbmltcG9ydCB7IEpXSyB9IGZyb20gJ25vZGUtam9zZSc7XG5pbXBvcnQge1xuICBJRCxcbiAgSlNPTk9iamVjdCxcbiAgVHBDbGFpbVN0YXRlLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92YWxOb2RlLFxuICBUcFBhc3N3b3JkUmVzZXRVc2VyQXBwcm92ZXIsXG4gIFRwUGFzc3dvcmRSZXNldFVzZXJBc3NlbWJseSxcbiAgVHBQYXNzd29yZFJlc2V0VXNlclN1YkFzc2VtYmx5LFxuICBVc2VyTm9kZSxcbn0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IFBhc3NJZHBQYXJhbXMsIFBhc3NLZXlQYXJhbXMgfSBmcm9tICcuLi9rZXkva2V5LnR5cGVzJztcblxuZXhwb3J0IHR5cGUgQXV0aFVzZXIgPSBQaWNrPFJlcXVpcmVkPFVzZXJOb2RlPiwgJ3VzZXJuYW1lJz4gJiB7XG4gIGlkPzogSUQ7IC8vIFRoZSByZXNldCB1c2VyIGRvZXMgbm90IHJldHVybiBhbiBpZC5cbiAgc3ViOiBzdHJpbmc7XG4gIGxvZ2luRW1haWw6IHN0cmluZztcbiAgcmVzZXRVc2VyOiBudWxsIHwge1xuICAgIHN0YXRlOiBUcENsYWltU3RhdGU7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBMb2dvdXRMaXN0ZW5lciA9ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT3B0aW9ucyB7XG4gIC8vIElmIHRydWUsIGNvbXBsZXRlIGFueSBUUCBwYXNzd29yZCByZXNldCByZXF1ZXN0cyByaWdodCBhZnRlciBsb2dpbi5cbiAgLy8gVGhpcyBpcyBtYWlubHkgZm9yIGRlYnVnZ2luZyBhbmQgdGVzdGluZyBwdXJwb3Nlcy5cbiAgdHBQYXNzd29yZFJlc2V0QXV0b0NvbXBsZXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gUmVjb3ZlcnlTdGF0dXMge1xuICBOT05FID0gJ05PTkUnLFxuICBORVdfUEFTU1dPUkQgPSAnTkVXX1BBU1NXT1JEJyxcbiAgT0xEX1BBU1NXT1JEID0gJ09MRF9QQVNTV09SRCcsXG59XG5cbmV4cG9ydCBlbnVtIFBhc3N3b3JkQ2hhbmdlU3RhdHVzIHtcbiAgSU5fUFJPR1JFU1MgPSAnSU5fUFJPR1JFU1MnLFxuICBSRUNPVkVSWSA9ICdSRUNPVkVSWScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFzc0lkcFJlc3VsdCB7XG4gIHBhc3N3b3JkQ2hhbmdlU3RhdHVzPzogUGFzc3dvcmRDaGFuZ2VTdGF0dXM7XG4gIGN1cnJlbnRQYXNzSWRwUGFyYW1zOiBQYXNzSWRwUGFyYW1zO1xuICBuZXdQYXNzSWRwUGFyYW1zOiBQYXNzSWRwUGFyYW1zO1xuICB0cFBhc3N3b3JkUmVzZXQ6IHtcbiAgICBwYXNzSWRwUGFyYW1zOiBQYXNzSWRwUGFyYW1zO1xuICAgIHJlc2V0VXNlcm5hbWU6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGVudW0gQ29nbml0b0NoYWxsZW5nZU5hbWUge1xuICBORVdfUEFTU1dPUkRfUkVRVUlSRUQgPSAnTkVXX1BBU1NXT1JEX1JFUVVJUkVEJyxcbiAgU01TX01GQSA9ICdTTVNfTUZBJyxcbiAgU09GVFdBUkVfVE9LRU5fTUZBID0gJ1NPRlRXQVJFX1RPS0VOX01GQScsXG4gIE1GQV9TRVRVUCA9ICdNRkFfU0VUVVAnLFxufVxuXG5leHBvcnQgdHlwZSBMckNvZ25pdG9Vc2VyID0gQ29nbml0b1VzZXIgJiB7XG4gIC8vIFRoZXNlIGFyZSBtaXNzaW5nIHR5cGVzLiBCdWcgaW4gdGhlIGxpYiBiYXNpY2FsbHkuXG4gIGNoYWxsZW5nZU5hbWU6IENvZ25pdG9DaGFsbGVuZ2VOYW1lO1xuICBjaGFsbGVuZ2VQYXJhbTogSlNPTk9iamVjdDtcbn07XG5cbmV4cG9ydCB0eXBlIExyQ29nbml0b1VzZXJBdHRyaWJ1dGUgPSBDb2duaXRvVXNlckF0dHJpYnV0ZTtcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpbkNoYWxsZW5nZSB7XG4gIGNvZ25pdG9Vc2VyOiBMckNvZ25pdG9Vc2VyO1xuICAvLyBJbiB0aGUgZXZlbnQgYSBwYXNzd29yZCBjaGFuZ2UgcHJvY2VzcyBoYXMgZmFpbGVkLCB3ZSBuZWVkIHRvIGtub3dcbiAgLy8gaWYgdGhlIG5ldyBvciBvbGQgcGFzc3dvcmQgd2FzIHVzZWQuIFRoaXMgYWxsb3dzIHVzIHRvIHRyYWNrIGl0LlxuICByZWNvdmVyeVN0YXR1czogUmVjb3ZlcnlTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5SZXN1bHQge1xuICBjaGFsbGVuZ2U/OiBMb2dpbkNoYWxsZW5nZTtcbiAgdXNlcj86IEF1dGhVc2VyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3NLZXlCdW5kbGUge1xuICBwYXNzS2V5UGFyYW1zOiBQYXNzS2V5UGFyYW1zO1xuICBwYXNzS2V5OiBKV0suS2V5O1xuICBwYXNzSWRwUGFyYW1zOiBQYXNzSWRwUGFyYW1zO1xuICBwYXNzSWRwOiBKV0suS2V5O1xuICBwYXNzSWRwVmVyaWZpZXI6IEpXSy5LZXk7XG4gIHdyYXBwZWRQYXNzSWRwVmVyaWZpZXJQcms6IFJlY29yZDxzdHJpbmcsIEpTT05PYmplY3Q+O1xufVxuXG5leHBvcnQgdHlwZSBSZXNldFVzZXIgPSBQaWNrPFxuICBSZXF1aXJlZDxUcFBhc3N3b3JkUmVzZXRVc2VyPixcbiAgJ3VzZXJuYW1lJyB8ICdzdGF0ZScgfCAnYXBwcm92YWxzJ1xuPiAmIHtcbiAgYXNzZW1ibHk6IFBpY2s8XG4gICAgUmVxdWlyZWQ8VHBQYXNzd29yZFJlc2V0VXNlckFzc2VtYmx5PixcbiAgICAnc2luZ2xlUmVqZWN0JyB8ICdxdW9ydW0nXG4gID4gJiB7XG4gICAgc3ViQXNzZW1ibGllczogKFBpY2s8XG4gICAgICBSZXF1aXJlZDxUcFBhc3N3b3JkUmVzZXRVc2VyU3ViQXNzZW1ibHk+LFxuICAgICAgJ3NpbmdsZVJlamVjdCcgfCAncXVvcnVtJ1xuICAgID4gJiB7XG4gICAgICBhcHByb3ZlcnM6IFBpY2s8XG4gICAgICAgIFJlcXVpcmVkPFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3Zlcj4sXG4gICAgICAgICduYW1lJyB8ICdlbWFpbCcgfCAnc3RhdGUnXG4gICAgICA+W107XG4gICAgfSlbXTtcbiAgfTtcbiAgYXBwcm92YWxzOiBQaWNrPFxuICAgIFJlcXVpcmVkPFRwUGFzc3dvcmRSZXNldFVzZXJBcHByb3ZhbE5vZGU+LFxuICAgIHwgJ2lkJ1xuICAgIHwgJ21vZGlmaWVkJ1xuICAgIHwgJ2FwcHJvdmVyRW1haWwnXG4gICAgfCAncmVjZWl2ZXJDaXBoZXInXG4gICAgfCAncmVjZWl2ZXJDaXBoZXJQYXJ0aWFsQXNzZW1ibHlLZXknXG4gID47XG59O1xuIl19
@@ -1,79 +0,0 @@
1
- import { KeyGraphField } from '../_common/queries.gql';
2
- import gql from 'graphql-tag';
3
- export const ContactCardFields = `
4
- id
5
- publicData
6
- publicSearchable
7
- cipherData
8
- key {
9
- id
10
- }
11
- `;
12
- export const ContactCardQuery = gql `
13
- query ContactCardQuery(
14
- $id: LrRelayIdInput!
15
- ) {
16
- contactCard (
17
- id: $id
18
- ) {
19
- ${ContactCardFields}
20
- }
21
- ${KeyGraphField}
22
- }`;
23
- export const SearchContactCardQuery = gql `
24
- query SearchContactCardQuery(
25
- $publicSearchable: LrJSONFilter!
26
- ) {
27
- searchContactCards(
28
- publicSearchable: $publicSearchable
29
- orderBy: "created"
30
- ) {
31
- edges {
32
- node {
33
- ${ContactCardFields}
34
- }
35
- }
36
- }
37
- ${KeyGraphField}
38
- }`;
39
- export const ContactCardListQuery = gql `
40
- query ContactCardListQuery {
41
- contactCards(
42
- orderBy: "created"
43
- ) {
44
- edges {
45
- node {
46
- ${ContactCardFields}
47
- }
48
- }
49
- }
50
- ${KeyGraphField}
51
- }`;
52
- export const CreateContactCardMutation = gql `
53
- mutation CreateContactCardMutation(
54
- $input: CreateContactCardInput!
55
- ) {
56
- createContactCard(input: $input) {
57
- contactCard {
58
- ${ContactCardFields}
59
- }
60
- }
61
- }`;
62
- export const UpdateContactCardMutation = gql `
63
- mutation UpdateContactCardMutation(
64
- $input: UpdateContactCardInput!
65
- ) {
66
- updateContactCard(input: $input) {
67
- contactCard {
68
- ${ContactCardFields}
69
- }
70
- }
71
- }`;
72
- export const DeleteContactCardMutation = gql `
73
- mutation DeleteContactCardMutation($input: DeleteContactCardInput!) {
74
- deleteContactCard(input: $input) {
75
- id
76
- }
77
- }
78
- `;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLmdxbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb250YWN0LWNhcmQvY29udGFjdC1jYXJkLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHOzs7Ozs7OztDQVFoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O0lBTy9CLGlCQUFpQjs7RUFFbkIsYUFBYTtFQUNiLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7VUFVL0IsaUJBQWlCOzs7O0lBSXZCLGFBQWE7RUFDZixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7O1VBTzdCLGlCQUFpQjs7OztJQUl2QixhQUFhO0VBQ2YsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQTs7Ozs7O1FBTXBDLGlCQUFpQjs7O0VBR3ZCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUE7Ozs7OztRQU1wQyxpQkFBaUI7OztFQUd2QixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleUdyYXBoRmllbGQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcbmltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuXG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRGaWVsZHMgPSBgXG5pZFxucHVibGljRGF0YVxucHVibGljU2VhcmNoYWJsZVxuY2lwaGVyRGF0YVxua2V5IHtcbiAgaWRcbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZFF1ZXJ5ID0gZ3FsYFxucXVlcnkgQ29udGFjdENhcmRRdWVyeShcbiRpZDogTHJSZWxheUlkSW5wdXQhXG4pIHtcbmNvbnRhY3RDYXJkIChcbiAgaWQ6ICRpZFxuKSB7XG4gICR7Q29udGFjdENhcmRGaWVsZHN9XG59XG4ke0tleUdyYXBoRmllbGR9XG59YDtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaENvbnRhY3RDYXJkUXVlcnkgPSBncWxgXG5xdWVyeSBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5KFxuICAkcHVibGljU2VhcmNoYWJsZTogTHJKU09ORmlsdGVyIVxuKSB7XG4gIHNlYXJjaENvbnRhY3RDYXJkcyhcbiAgICBwdWJsaWNTZWFyY2hhYmxlOiAkcHVibGljU2VhcmNoYWJsZVxuICAgIG9yZGVyQnk6IFwiY3JlYXRlZFwiXG4gICkge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke0NvbnRhY3RDYXJkRmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAke0tleUdyYXBoRmllbGR9XG59YDtcblxuZXhwb3J0IGNvbnN0IENvbnRhY3RDYXJkTGlzdFF1ZXJ5ID0gZ3FsYFxucXVlcnkgQ29udGFjdENhcmRMaXN0UXVlcnkge1xuICBjb250YWN0Q2FyZHMoXG4gICAgb3JkZXJCeTogXCJjcmVhdGVkXCJcbiAgKSB7XG4gICAgZWRnZXMge1xuICAgICAgbm9kZSB7XG4gICAgICAgICR7Q29udGFjdENhcmRGaWVsZHN9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICR7S2V5R3JhcGhGaWVsZH1cbn1gO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbGBcbm11dGF0aW9uIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24oXG4gICRpbnB1dDogQ3JlYXRlQ29udGFjdENhcmRJbnB1dCFcbikge1xuICBjcmVhdGVDb250YWN0Q2FyZChpbnB1dDogJGlucHV0KSB7XG4gICAgY29udGFjdENhcmQge1xuICAgICAgJHtDb250YWN0Q2FyZEZpZWxkc31cbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgY29uc3QgVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbGBcbm11dGF0aW9uIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24oXG4gICRpbnB1dDogVXBkYXRlQ29udGFjdENhcmRJbnB1dCFcbikge1xuICB1cGRhdGVDb250YWN0Q2FyZChpbnB1dDogJGlucHV0KSB7XG4gICAgY29udGFjdENhcmQge1xuICAgICAgJHtDb250YWN0Q2FyZEZpZWxkc31cbiAgICB9XG4gIH1cbn1gO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbigkaW5wdXQ6IERlbGV0ZUNvbnRhY3RDYXJkSW5wdXQhKSB7XG4gICAgZGVsZXRlQ29udGFjdENhcmQoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbmA7XG4iXX0=
@@ -1,156 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- /* eslint-disable @typescript-eslint/ban-types */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- import { Injectable } from '@angular/core';
5
- import { LrApolloService } from '../api/lr-apollo.service';
6
- import { EncryptionService } from '../encryption/encryption.service';
7
- import { KeyFactoryService } from '../key/key-factory.service';
8
- import { KeyGraphService } from '../key/key-graph.service';
9
- import { KeyMetaService } from '../key/key-meta.service';
10
- import { KeyService } from '../key/key.service';
11
- import { ContactCardListQuery, ContactCardQuery, CreateContactCardMutation, DeleteContactCardMutation, SearchContactCardQuery, UpdateContactCardMutation, } from './contact-card.gql';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../key/key-factory.service";
14
- import * as i2 from "../key/key.service";
15
- import * as i3 from "../api/lr-apollo.service";
16
- import * as i4 from "../key/key-graph.service";
17
- import * as i5 from "../encryption/encryption.service";
18
- import * as i6 from "../key/key-meta.service";
19
- export class ContactCard {
20
- }
21
- export class ContactCardService {
22
- constructor(keyFactory, keyService, lrApollo, keyGraph, encryptionService, keyMetaService) {
23
- this.keyFactory = keyFactory;
24
- this.keyService = keyService;
25
- this.lrApollo = lrApollo;
26
- this.keyGraph = keyGraph;
27
- this.encryptionService = encryptionService;
28
- this.keyMetaService = keyMetaService;
29
- }
30
- decryptContactCard(cc) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const ret = Object.assign(Object.assign({}, cc), { publicDataJson: JSON.parse(cc.publicData), publicSearchableJson: JSON.parse(cc.publicSearchable) });
33
- if (cc.key) {
34
- const key = yield this.keyGraph.getJwkKey(cc.key.id);
35
- // TODO: verify signature
36
- ret.plainCipherDataJson = yield this.encryptionService.decrypt(key, cc.cipherData);
37
- }
38
- return ret;
39
- });
40
- }
41
- decryptContactCardEdges(hasEdges) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- return Promise.all(hasEdges.edges.map((edge) => __awaiter(this, void 0, void 0, function* () {
44
- const cc = edge.node;
45
- return yield this.decryptContactCard(cc);
46
- })));
47
- });
48
- }
49
- // { "filter": [{ "contains": { "a": true } }] }
50
- searchContactCard(publicSearchable) {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- const data = yield this.lrApollo.query({
53
- query: SearchContactCardQuery,
54
- variables: {
55
- publicSearchable: JSON.stringify(publicSearchable),
56
- },
57
- });
58
- return yield this.decryptContactCardEdges(data.searchContactCards);
59
- });
60
- }
61
- getContactCardList() {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- const data = yield this.lrApollo.query({
64
- query: ContactCardListQuery,
65
- });
66
- return yield this.decryptContactCardEdges(data.contactCards);
67
- });
68
- }
69
- getContactCard(id) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const data = yield this.lrApollo.query({
72
- query: ContactCardQuery,
73
- variables: {
74
- id,
75
- },
76
- });
77
- return yield this.decryptContactCard(data.contactCard);
78
- });
79
- }
80
- prepareContactCardInput(input) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const sigPxk = this.keyService.currentSigPxk;
83
- const publicDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicDataJson));
84
- const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
85
- const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
86
- return {
87
- sigPxkId: sigPxk.id,
88
- publicDataSig,
89
- publicSearchableSig,
90
- plainDataSig,
91
- };
92
- });
93
- }
94
- createContactCard(input) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- // Get encryption key
97
- const rootKey = this.keyService.currentRootKey;
98
- const key = yield this.keyFactory.createKey();
99
- const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
100
- const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
101
- const params = yield this.prepareContactCardInput(input);
102
- const data = yield this.lrApollo.mutate({
103
- mutation: CreateContactCardMutation,
104
- variables: {
105
- input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
106
- cipherData }),
107
- },
108
- });
109
- return data.createContactCard.contactCard;
110
- });
111
- }
112
- updateContactCard(input) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- // Get encryption key
115
- const cc = yield this.getContactCard(input.id);
116
- const key = yield this.keyGraph.getJwkKey(cc.key.id);
117
- const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
118
- const params = yield this.prepareContactCardInput(input);
119
- const data = yield this.lrApollo.mutate({
120
- mutation: UpdateContactCardMutation,
121
- variables: {
122
- input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
123
- },
124
- });
125
- return data.updateContactCard.contactCard;
126
- });
127
- }
128
- deleteContactCard(id) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- const data = yield this.lrApollo.mutate({
131
- mutation: DeleteContactCardMutation,
132
- variables: {
133
- input: {
134
- id,
135
- },
136
- },
137
- });
138
- return data.deleteContactCard.id;
139
- });
140
- }
141
- }
142
- ContactCardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContactCardService_Factory() { return new ContactCardService(i0.ɵɵinject(i1.KeyFactoryService), i0.ɵɵinject(i2.KeyService), i0.ɵɵinject(i3.LrApolloService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.EncryptionService), i0.ɵɵinject(i6.KeyMetaService)); }, token: ContactCardService, providedIn: "root" });
143
- ContactCardService.decorators = [
144
- { type: Injectable, args: [{
145
- providedIn: 'root',
146
- },] }
147
- ];
148
- ContactCardService.ctorParameters = () => [
149
- { type: KeyFactoryService },
150
- { type: KeyService },
151
- { type: LrApolloService },
152
- { type: KeyGraphService },
153
- { type: EncryptionService },
154
- { type: KeyMetaService }
155
- ];
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29udGFjdC1jYXJkL2NvbnRhY3QtY2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpREFBaUQ7QUFDakQsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSWhELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHlCQUF5QixHQUMxQixNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQWM1QixNQUFNLE9BQU8sV0FBVztDQWdCdkI7QUFnQkQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLFVBQTZCLEVBQzdCLFVBQXNCLEVBQ3RCLFFBQXlCLEVBQ3pCLFFBQXlCLEVBQ3pCLGlCQUFvQyxFQUNwQyxjQUE4QjtRQUw5QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsbUJB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WUFJZixlQUFlO1lBRmYsaUJBQWlCO1lBR2pCLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xuaW1wb3J0IHsgSlNPTk9iamVjdCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleU1ldGFTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2tleS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBIYXNLZXlHcmFwaCwgS2V5IH0gZnJvbSAnLi4va2V5L2tleS50eXBlcyc7XG5pbXBvcnQgeyBNYWluQ29udGFjdENhcmRQbGFpbkZpZWxkcyB9IGZyb20gJy4uL3Byb2ZpbGUvcHJvZmlsZS50eXBlcyc7XG5pbXBvcnQgeyBIYXNFZGdlcyB9IGZyb20gJy4uL19jb21tb24vdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ29udGFjdENhcmRMaXN0UXVlcnksXG4gIENvbnRhY3RDYXJkUXVlcnksXG4gIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIFNlYXJjaENvbnRhY3RDYXJkUXVlcnksXG4gIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG59IGZyb20gJy4vY29udGFjdC1jYXJkLmdxbCc7XG5cbmludGVyZmFjZSBDb250YWN0Q2FyZFF1ZXJ5IGV4dGVuZHMgSGFzS2V5R3JhcGgge1xuICBjb250YWN0Q2FyZDogQ29udGFjdENhcmQ7XG59XG5cbmludGVyZmFjZSBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5IGV4dGVuZHMgSGFzS2V5R3JhcGgge1xuICBzZWFyY2hDb250YWN0Q2FyZHM6IEhhc0VkZ2VzPENvbnRhY3RDYXJkPjtcbn1cblxuaW50ZXJmYWNlIENvbnRhY3RDYXJkTGlzdFF1ZXJ5IGV4dGVuZHMgSGFzS2V5R3JhcGgge1xuICBjb250YWN0Q2FyZHM6IEhhc0VkZ2VzPENvbnRhY3RDYXJkPjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhY3RDYXJkIHtcbiAgaWQ6IHN0cmluZztcbiAga2V5OiBLZXk7XG4gIHNpZ1B4azogS2V5O1xuICBwdWJsaWNEYXRhOiBzdHJpbmc7XG4gIHB1YmxpY0RhdGFTaWc6IHN0cmluZztcbiAgcHVibGljU2VhcmNoYWJsZTogc3RyaW5nO1xuICBwdWJsaWNTZWFyY2hhYmxlU2lnOiBzdHJpbmc7XG4gIHBsYWluRGF0YTogc3RyaW5nO1xuICBwbGFpbkRhdGFTaWc6IHN0cmluZztcbiAgY2lwaGVyRGF0YTogc3RyaW5nO1xuICAvLyBQYXJzZS9kZWNyeXB0ZWQgdmVyc2lvbnMgb2YgdGhlIGFib3ZlLlxuICBwdWJsaWNEYXRhSnNvbjogSlNPTk9iamVjdDtcbiAgcHVibGljU2VhcmNoYWJsZUpzb246IEpTT05PYmplY3Q7XG4gIHBsYWluQ2lwaGVyRGF0YUpzb246IEpTT05PYmplY3Q7XG4gIHBsYWluRGF0YUpzb246IEpTT05PYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udGFjdENhcmRJbnB1dCB7XG4gIHB1YmxpY0RhdGFKc29uOiBKU09OT2JqZWN0O1xuICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogSlNPTk9iamVjdDtcbiAgcGxhaW5DaXBoZXJEYXRhSnNvbjogSlNPTk9iamVjdDtcbiAgcGxhaW5EYXRhSnNvbjogTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29udGFjdENhcmRJbnB1dCBleHRlbmRzIENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQge1xuICBpZDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFjdENhcmRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGtleU1ldGFTZXJ2aWNlOiBLZXlNZXRhU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgZGVjcnlwdENvbnRhY3RDYXJkKGNjOiBDb250YWN0Q2FyZCk6IFByb21pc2U8Q29udGFjdENhcmQ+IHtcbiAgICBjb25zdCByZXQgPSB7XG4gICAgICAuLi5jYyxcbiAgICAgIHB1YmxpY0RhdGFKc29uOiBKU09OLnBhcnNlKGNjLnB1YmxpY0RhdGEpLFxuICAgICAgcHVibGljU2VhcmNoYWJsZUpzb246IEpTT04ucGFyc2UoY2MucHVibGljU2VhcmNoYWJsZSksXG4gICAgfTtcblxuICAgIGlmIChjYy5rZXkpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0SndrS2V5KGNjLmtleS5pZCk7XG4gICAgICAvLyBUT0RPOiB2ZXJpZnkgc2lnbmF0dXJlXG4gICAgICByZXQucGxhaW5DaXBoZXJEYXRhSnNvbiA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAga2V5LFxuICAgICAgICBjYy5jaXBoZXJEYXRhXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBhc3luYyBkZWNyeXB0Q29udGFjdENhcmRFZGdlcyhcbiAgICBoYXNFZGdlczogSGFzRWRnZXM8Q29udGFjdENhcmQ+XG4gICk6IFByb21pc2U8Q29udGFjdENhcmRbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGhhc0VkZ2VzLmVkZ2VzLm1hcChhc3luYyAoZWRnZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGNjID0gZWRnZS5ub2RlIGFzIENvbnRhY3RDYXJkO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5kZWNyeXB0Q29udGFjdENhcmQoY2MpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8geyBcImZpbHRlclwiOiBbeyBcImNvbnRhaW5zXCI6IHsgXCJhXCI6IHRydWUgfSB9XSB9XG4gIGFzeW5jIHNlYXJjaENvbnRhY3RDYXJkKHB1YmxpY1NlYXJjaGFibGU6IG9iamVjdCk6IFByb21pc2U8Q29udGFjdENhcmRbXT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PFNlYXJjaENvbnRhY3RDYXJkUXVlcnk+KHtcbiAgICAgIHF1ZXJ5OiBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHB1YmxpY1NlYXJjaGFibGU6IEpTT04uc3RyaW5naWZ5KHB1YmxpY1NlYXJjaGFibGUpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZEVkZ2VzKGRhdGEuc2VhcmNoQ29udGFjdENhcmRzKTtcbiAgfVxuXG4gIGFzeW5jIGdldENvbnRhY3RDYXJkTGlzdCgpOiBQcm9taXNlPENvbnRhY3RDYXJkW10+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxDb250YWN0Q2FyZExpc3RRdWVyeT4oe1xuICAgICAgcXVlcnk6IENvbnRhY3RDYXJkTGlzdFF1ZXJ5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZGVjcnlwdENvbnRhY3RDYXJkRWRnZXMoZGF0YS5jb250YWN0Q2FyZHMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29udGFjdENhcmQoaWQ6IHN0cmluZyk6IFByb21pc2U8Q29udGFjdENhcmQ+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxDb250YWN0Q2FyZFF1ZXJ5Pih7XG4gICAgICBxdWVyeTogQ29udGFjdENhcmRRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kZWNyeXB0Q29udGFjdENhcmQoZGF0YS5jb250YWN0Q2FyZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDb250YWN0Q2FyZElucHV0KFxuICAgIGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2lnUHhrID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRTaWdQeGs7XG4gICAgY29uc3QgcHVibGljRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY0RhdGFKc29uKVxuICAgICk7XG4gICAgY29uc3QgcHVibGljU2VhcmNoYWJsZVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY1NlYXJjaGFibGVKc29uKVxuICAgICk7XG4gICAgY29uc3QgcGxhaW5EYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucGxhaW5EYXRhSnNvbilcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNpZ1B4a0lkOiBzaWdQeGsuaWQsXG4gICAgICBwdWJsaWNEYXRhU2lnLFxuICAgICAgcHVibGljU2VhcmNoYWJsZVNpZyxcbiAgICAgIHBsYWluRGF0YVNpZyxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ29udGFjdENhcmQoaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQpOiBQcm9taXNlPENvbnRhY3RDYXJkPiB7XG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XG4gICAgY29uc3Qgcm9vdEtleSA9IHRoaXMua2V5U2VydmljZS5jdXJyZW50Um9vdEtleTtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XG4gICAgY29uc3Qgd3JhcHBlZEtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgcm9vdEtleS5qd2ssXG4gICAgICBrZXkudG9KU09OKHRydWUpXG4gICAgKTtcbiAgICBjb25zdCBjaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBrZXksXG4gICAgICBpbnB1dC5wbGFpbkNpcGhlckRhdGFKc29uXG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQpO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHtcbiAgICAgIGNyZWF0ZUNvbnRhY3RDYXJkOiB7IGNvbnRhY3RDYXJkOiBDb250YWN0Q2FyZCB9O1xuICAgIH0+KHtcbiAgICAgIG11dGF0aW9uOiBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHJvb3RLZXkuaWQsXG4gICAgICAgICAgd3JhcHBlZEtleSxcbiAgICAgICAgICBjaXBoZXJEYXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhLmNyZWF0ZUNvbnRhY3RDYXJkLmNvbnRhY3RDYXJkO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQ29udGFjdENhcmQoaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQpOiBQcm9taXNlPENvbnRhY3RDYXJkPiB7XG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XG4gICAgY29uc3QgY2MgPSBhd2FpdCB0aGlzLmdldENvbnRhY3RDYXJkKGlucHV0LmlkKTtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEp3a0tleShjYy5rZXkuaWQpO1xuICAgIGNvbnN0IGNpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIGtleSxcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XG5cbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8e1xuICAgICAgdXBkYXRlQ29udGFjdENhcmQ6IHsgY29udGFjdENhcmQ6IENvbnRhY3RDYXJkIH07XG4gICAgfT4oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgaWQ6IGlucHV0LmlkLFxuICAgICAgICAgIGNpcGhlckRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhdGEudXBkYXRlQ29udGFjdENhcmQuY29udGFjdENhcmQ7XG4gIH1cblxuICBhc3luYyBkZWxldGVDb250YWN0Q2FyZChpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8YW55Pih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhLmRlbGV0ZUNvbnRhY3RDYXJkLmlkO1xuICB9XG59XG4iXX0=
@@ -1,29 +0,0 @@
1
- import { gqlTyped } from '../_common/ast';
2
- export const CreateContactCardMutation = gqlTyped `
3
- mutation CreateContactCardMutation(
4
- $input: CreateContactCardInput!
5
- ) {
6
- createContactCard(input: $input) {
7
- contactCard {
8
- id
9
- }
10
- }
11
- }
12
- `;
13
- export const UpdateContactCardMutation = gqlTyped `
14
- mutation UpdateContactCardMutation($input: UpdateContactCardInput!) {
15
- updateContactCard(input: $input) {
16
- contactCard {
17
- id
18
- }
19
- }
20
- }
21
- `;
22
- export const DeleteContactCardMutation = gqlTyped `
23
- mutation DeleteContactCardMutation($input: DeleteContactCardInput!) {
24
- deleteContactCard(input: $input) {
25
- id
26
- }
27
- }
28
- `;
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29udGFjdC1jYXJkL2NvbnRhY3QtY2FyZDIuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVMxQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQWlDOzs7Ozs7Ozs7O0NBVWpGLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQWlDOzs7Ozs7OztDQVFqRixDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsUUFBUSxDQUFpQzs7Ozs7O0NBTWpGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRCB9IGZyb20gJy4uL2FwaS90eXBlcyc7XG5pbXBvcnQgeyBncWxUeXBlZCB9IGZyb20gJy4uL19jb21tb24vYXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uUmVzdWx0IHtcbiAgY3JlYXRlQ29udGFjdENhcmQ6IHtcbiAgICBjb250YWN0Q2FyZDoge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbFR5cGVkPENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbihcbiAgJGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0IVxuKSB7XG4gIGNyZWF0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcbiAgICBjb250YWN0Q2FyZCB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uUmVzdWx0IHtcbiAgdXBkYXRlQ29udGFjdENhcmQ6IHtcbiAgICBjb250YWN0Q2FyZDoge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbFR5cGVkPFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbigkaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQhKSB7XG4gIHVwZGF0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcbiAgICBjb250YWN0Q2FyZCB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uUmVzdWx0IHtcbiAgZGVsZXRlQ29udGFjdENhcmQ6IHtcbiAgICBkZWxldGVDb250YWN0Q2FyZDoge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbFR5cGVkPERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb25SZXN1bHQ+YFxubXV0YXRpb24gRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbigkaW5wdXQ6IERlbGV0ZUNvbnRhY3RDYXJkSW5wdXQhKSB7XG4gIGRlbGV0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcbiAgICBpZFxuICB9XG59XG5gO1xuIl19
@@ -1,103 +0,0 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { Injectable, NgZone } from '@angular/core';
3
- import { LrMutation } from '../api/lr-graphql';
4
- import { EncryptionService } from '../encryption/encryption.service';
5
- import { KeyFactoryService } from '../key/key-factory.service';
6
- import { KeyGraphService } from '../key/key-graph.service';
7
- import { KeyMetaService } from '../key/key-meta.service';
8
- import { KeyService } from '../key/key.service';
9
- import { RunOutsideAngular } from '../_common/run-outside-angular';
10
- import { CreateContactCardMutation, DeleteContactCardMutation, UpdateContactCardMutation, } from './contact-card2.gql';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../key/key-factory.service";
13
- import * as i2 from "../key/key.service";
14
- import * as i3 from "../encryption/encryption.service";
15
- import * as i4 from "../key/key-graph.service";
16
- import * as i5 from "../key/key-meta.service";
17
- export class OwnerPlainDataJson {
18
- }
19
- let ContactCard2Service = class ContactCard2Service {
20
- constructor(keyFactory, keyService, encryptionService, keyGraph, keyMetaService, ngZone) {
21
- this.keyFactory = keyFactory;
22
- this.keyService = keyService;
23
- this.encryptionService = encryptionService;
24
- this.keyGraph = keyGraph;
25
- this.keyMetaService = keyMetaService;
26
- this.ngZone = ngZone;
27
- }
28
- createContactCard(input) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- // Get encryption key
31
- const rootKey = this.keyService.currentRootKey;
32
- const key = yield this.keyFactory.createKey();
33
- const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
34
- const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
35
- const params = yield this.prepareContactCardInput(input);
36
- return new LrMutation({
37
- mutation: CreateContactCardMutation,
38
- variables: {
39
- input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
40
- cipherData }),
41
- },
42
- });
43
- });
44
- }
45
- updateContactCard(input) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- // Get encryption key
48
- const cipherData = yield this.keyGraph.encryptToString(input.keyId, input.plainCipherDataJson);
49
- const params = yield this.prepareContactCardInput(input);
50
- return new LrMutation({
51
- mutation: UpdateContactCardMutation,
52
- variables: {
53
- input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
54
- },
55
- });
56
- });
57
- }
58
- deleteContactCard(id) {
59
- return new LrMutation({
60
- mutation: DeleteContactCardMutation,
61
- variables: {
62
- input: {
63
- id,
64
- },
65
- },
66
- });
67
- }
68
- prepareContactCardInput(input) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const sigPxk = this.keyService.currentSigPxk;
71
- const publicDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicDataJson));
72
- const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
73
- const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
74
- return {
75
- sigPxkId: sigPxk.id,
76
- publicDataSig,
77
- publicSearchableSig,
78
- plainDataSig,
79
- };
80
- });
81
- }
82
- };
83
- ContactCard2Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContactCard2Service_Factory() { return new ContactCard2Service(i0.ɵɵinject(i1.KeyFactoryService), i0.ɵɵinject(i2.KeyService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.KeyMetaService), i0.ɵɵinject(i0.NgZone)); }, token: ContactCard2Service, providedIn: "root" });
84
- ContactCard2Service.decorators = [
85
- { type: Injectable, args: [{
86
- providedIn: 'root',
87
- },] }
88
- ];
89
- ContactCard2Service.ctorParameters = () => [
90
- { type: KeyFactoryService },
91
- { type: KeyService },
92
- { type: EncryptionService },
93
- { type: KeyGraphService },
94
- { type: KeyMetaService },
95
- { type: NgZone }
96
- ];
97
- ContactCard2Service = __decorate([
98
- RunOutsideAngular({
99
- ngZoneName: 'ngZone',
100
- })
101
- ], ContactCard2Service);
102
- export { ContactCard2Service };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvbnRhY3QtY2FyZC9jb250YWN0LWNhcmQyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDMUIsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQW1CN0IsTUFBTSxPQUFPLGtCQUFrQjtDQUU5QjtJQWFZLG1CQUFtQixTQUFuQixtQkFBbUI7SUFDOUIsWUFDVSxVQUE2QixFQUM3QixVQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsTUFBYztRQUxkLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUUsaUJBQWlCLENBQUMsS0FBOEI7O1lBQ3BELHFCQUFxQjtZQUNyQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztZQUMvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDcEQsT0FBTyxDQUFDLEdBQUcsRUFDWCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDO1lBQ0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDcEQsR0FBRyxFQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FDMUIsQ0FBQztZQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXpELE9BQU8sSUFBSSxVQUFVLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFNBQVMsRUFBRTtvQkFDVCxLQUFLLGtDQUNBLE1BQU0sS0FDVCxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFDekIsVUFBVTt3QkFDVixVQUFVLEdBQ1g7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyxpQkFBaUIsQ0FBQyxLQUE4Qjs7WUFDcEQscUJBQXFCO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQ3BELEtBQUssQ0FBQyxLQUFLLEVBQ1gsS0FBSyxDQUFDLG1CQUFtQixDQUMxQixDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekQsT0FBTyxJQUFJLFVBQVUsQ0FBQztnQkFDcEIsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsU0FBUyxFQUFFO29CQUNULEtBQUssa0NBQ0EsTUFBTSxLQUNULEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUNaLFVBQVUsR0FDWDtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVELGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixRQUFRLEVBQUUseUJBQXlCO1lBQ25DLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUU7b0JBQ0wsRUFBRTtpQkFDSDthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVhLHVCQUF1QixDQUFDLEtBQThCOztZQUNsRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUNsQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQ3BFLENBQUM7WUFDRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQ3hDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUMxRSxDQUFDO1lBQ0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDakMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUNuRSxDQUFDO1lBRUYsT0FBTztnQkFDTCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ25CLGFBQWE7Z0JBQ2IsbUJBQW1CO2dCQUNuQixZQUFZO2FBQ2IsQ0FBQztRQUNKLENBQUM7S0FBQTtDQUNGLENBQUE7OztZQTVGQSxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQTNDUSxpQkFBaUI7WUFHakIsVUFBVTtZQUpWLGlCQUFpQjtZQUVqQixlQUFlO1lBQ2YsY0FBYztZQU5GLE1BQU07O0FBZ0RkLG1CQUFtQjtJQU4vQixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsbUJBQW1CLENBeUYvQjtTQXpGWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExyTXV0YXRpb24gfSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XG5pbXBvcnQgeyBKU09OT2JqZWN0IH0gZnJvbSAnLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5TWV0YVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LW1ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS5zZXJ2aWNlJztcbmltcG9ydCB7IE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG59IGZyb20gJy4vY29udGFjdC1jYXJkMi5ncWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyIHtcbiAgcHVibGljRGF0YUpzb246IEpTT05PYmplY3Q7XG4gIHB1YmxpY1NlYXJjaGFibGVKc29uOiBKU09OT2JqZWN0O1xuICBwbGFpbkNpcGhlckRhdGFKc29uOiBKU09OT2JqZWN0O1xuICBwbGFpbkRhdGFKc29uOiBNYWluQ29udGFjdENhcmRQbGFpbkZpZWxkcztcbn1cblxuLy8gVGhlc2UgY29udGFjdCBuYW1lIGZpZWxkcyBhcmUgZW5mb3JjZWQgYnkgdGhlIHNlcnZlciBzbyB0aGF0IGl0IGNhbiBzZW5kIG91dCBlbWFpbHMgd2l0aFxuLy8gYXBwcm9wcmlhdGUgZm9ybWF0LlxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZE5hbWUyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xuICBsYXN0TmFtZT86IHN0cmluZztcbiAgLy8gYWRkaXRpb25hbCBmaWVsZHMgYXJlIG5vdCBhbGxvd2VkIGJ5IHRoZSBzZXJ2ZXJcbn1cblxuZXhwb3J0IGNsYXNzIE93bmVyUGxhaW5EYXRhSnNvbiB7XG4gIG5hbWU6IENvbnRhY3RDYXJkTmFtZTI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29udGFjdENhcmRJbnB1dDIgZXh0ZW5kcyBDcmVhdGVDb250YWN0Q2FyZElucHV0MiB7XG4gIGlkOiBzdHJpbmc7XG4gIGtleUlkOiBzdHJpbmc7XG59XG5cbkBSdW5PdXRzaWRlQW5ndWxhcih7XG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDb250YWN0Q2FyZDJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5TWV0YVNlcnZpY2U6IEtleU1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnRhY3RDYXJkKGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0Mikge1xuICAgIC8vIEdldCBlbmNyeXB0aW9uIGtleVxuICAgIGNvbnN0IHJvb3RLZXkgPSB0aGlzLmtleVNlcnZpY2UuY3VycmVudFJvb3RLZXk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHJvb3RLZXkuandrLFxuICAgICAga2V5LnRvSlNPTih0cnVlKVxuICAgICk7XG4gICAgY29uc3QgY2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAga2V5LFxuICAgICAgaW5wdXQucGxhaW5DaXBoZXJEYXRhSnNvblxuICAgICk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCB0aGlzLnByZXBhcmVDb250YWN0Q2FyZElucHV0KGlucHV0KTtcblxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxuICAgICAgICAgIHdyYXBwZWRLZXksXG4gICAgICAgICAgY2lwaGVyRGF0YSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVDb250YWN0Q2FyZChpbnB1dDogVXBkYXRlQ29udGFjdENhcmRJbnB1dDIpIHtcbiAgICAvLyBHZXQgZW5jcnlwdGlvbiBrZXlcbiAgICBjb25zdCBjaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBpbnB1dC5rZXlJZCxcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgaWQ6IGlucHV0LmlkLFxuICAgICAgICAgIGNpcGhlckRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlQ29udGFjdENhcmQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIGlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyKSB7XG4gICAgY29uc3Qgc2lnUHhrID0gdGhpcy5rZXlTZXJ2aWNlLmN1cnJlbnRTaWdQeGs7XG4gICAgY29uc3QgcHVibGljRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY0RhdGFKc29uKVxuICAgICk7XG4gICAgY29uc3QgcHVibGljU2VhcmNoYWJsZVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY1NlYXJjaGFibGVKc29uKVxuICAgICk7XG4gICAgY29uc3QgcGxhaW5EYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucGxhaW5EYXRhSnNvbilcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNpZ1B4a0lkOiBzaWdQeGsuaWQsXG4gICAgICBwdWJsaWNEYXRhU2lnLFxuICAgICAgcHVibGljU2VhcmNoYWJsZVNpZyxcbiAgICAgIHBsYWluRGF0YVNpZyxcbiAgICB9O1xuICB9XG59XG4iXX0=