@lifeready/core 1.0.1 → 1.0.2

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 (380) hide show
  1. package/README.md +62 -62
  2. package/bundles/lifeready-core.umd.js +15939 -0
  3. package/bundles/lifeready-core.umd.js.map +1 -0
  4. package/bundles/lifeready-core.umd.min.js +16 -0
  5. package/bundles/lifeready-core.umd.min.js.map +1 -0
  6. package/esm2015/lib/_common/ast.js +40 -0
  7. package/esm2015/lib/_common/deferred-promise.js +24 -0
  8. package/esm2015/lib/_common/exceptions.js +157 -0
  9. package/esm2015/lib/_common/queries.gql.js +190 -0
  10. package/esm2015/lib/_common/run-outside-angular.js +79 -0
  11. package/esm2015/lib/_common/types.js +1 -0
  12. package/esm2015/lib/_common/utils.js +44 -0
  13. package/esm2015/lib/api/contact-card.gql.js +79 -0
  14. package/esm2015/lib/api/contact-card.service.js +154 -0
  15. package/esm2015/lib/api/contact-card2.gql.js +60 -0
  16. package/esm2015/lib/api/contact-card2.service.js +103 -0
  17. package/esm2015/lib/api/file.service.js +74 -0
  18. package/esm2015/lib/api/item2.gql.js +110 -0
  19. package/esm2015/lib/api/item2.service.js +311 -0
  20. package/esm2015/lib/api/key-exchange.gql.js +188 -0
  21. package/esm2015/lib/api/key-exchange.service.js +442 -0
  22. package/esm2015/lib/api/key-exchange.types.js +18 -0
  23. package/esm2015/lib/api/key-exchange2.gql.js +171 -0
  24. package/esm2015/lib/api/key-exchange2.service.js +479 -0
  25. package/esm2015/lib/api/lock.gql.js +40 -0
  26. package/esm2015/lib/api/lock.service.js +64 -0
  27. package/esm2015/lib/api/lr-apollo.service.js +46 -0
  28. package/esm2015/lib/api/lr-graphql/index.js +6 -0
  29. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
  30. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
  31. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
  32. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
  33. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
  34. package/esm2015/lib/api/message.service.js +138 -0
  35. package/esm2015/lib/api/persist.service.js +181 -0
  36. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
  37. package/esm2015/lib/api/query-processor/index.js +3 -0
  38. package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
  39. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
  40. package/esm2015/lib/api/shared-contact-card.service.js +119 -0
  41. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
  42. package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
  43. package/esm2015/lib/api/time.service.js +146 -0
  44. package/esm2015/lib/api/types/graphql.types.js +7 -0
  45. package/esm2015/lib/api/types/index.js +3 -0
  46. package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
  47. package/esm2015/lib/auth/auth.config.js +57 -0
  48. package/esm2015/lib/auth/auth.gql.js +48 -0
  49. package/esm2015/lib/auth/auth.types.js +27 -0
  50. package/esm2015/lib/auth/idle.service.js +168 -0
  51. package/esm2015/lib/auth/idle.types.js +7 -0
  52. package/esm2015/lib/auth/lbop.service.js +355 -0
  53. package/esm2015/lib/auth/life-ready-auth.service.js +500 -0
  54. package/esm2015/lib/auth/password.service.js +320 -0
  55. package/esm2015/lib/auth/register.service.js +172 -0
  56. package/esm2015/lib/auth/two-factor.service.js +74 -0
  57. package/esm2015/lib/category/category-meta.service.js +99 -0
  58. package/esm2015/lib/category/category.gql.js +406 -0
  59. package/esm2015/lib/category/category.service.js +390 -0
  60. package/esm2015/lib/category/category.types.js +29 -0
  61. package/esm2015/lib/cryptography/cryptography.types.js +11 -0
  62. package/esm2015/lib/cryptography/encryption.service.js +189 -0
  63. package/esm2015/lib/cryptography/key-factory.service.js +237 -0
  64. package/esm2015/lib/cryptography/key-graph.service.js +280 -0
  65. package/esm2015/lib/cryptography/key-meta.service.js +200 -0
  66. package/esm2015/lib/cryptography/key.service.js +124 -0
  67. package/esm2015/lib/cryptography/slip39.service.js +169 -0
  68. package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
  69. package/esm2015/lib/life-ready.config.js +84 -0
  70. package/esm2015/lib/life-ready.module.js +74 -0
  71. package/esm2015/lib/plan/plan.gql.js +123 -0
  72. package/esm2015/lib/plan/plan.service.js +149 -0
  73. package/esm2015/lib/plan/plan.types.js +11 -0
  74. package/esm2015/lib/record/record-attachment.service.js +101 -0
  75. package/esm2015/lib/record/record.gql.js +179 -0
  76. package/esm2015/lib/record/record.service.js +206 -0
  77. package/esm2015/lib/record/record.types.js +15 -0
  78. package/esm2015/lib/record-type/record-type.service.js +75 -0
  79. package/esm2015/lib/record-type/record-type.types.js +28 -0
  80. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
  81. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
  82. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
  83. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
  84. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
  85. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
  86. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
  87. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
  88. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
  89. package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
  90. package/esm2015/lib/scenario/scenario.gql.js +368 -0
  91. package/esm2015/lib/scenario/scenario.service.js +611 -0
  92. package/esm2015/lib/scenario/scenario.types.js +64 -0
  93. package/esm2015/lib/search/search.gql.js +62 -0
  94. package/esm2015/lib/search/search.service.js +156 -0
  95. package/esm2015/lib/search/search.types.js +6 -0
  96. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
  97. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -0
  98. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -0
  99. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
  100. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -0
  101. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
  102. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
  103. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
  104. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
  105. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
  106. package/esm2015/lib/users/profile-details.service.js +214 -0
  107. package/esm2015/lib/users/profile.gql.js +97 -0
  108. package/esm2015/lib/users/profile.service.js +169 -0
  109. package/esm2015/lib/users/profile.types.js +34 -0
  110. package/esm2015/lib/users/user.gql.js +60 -0
  111. package/esm2015/lib/users/user.service.js +79 -0
  112. package/esm2015/lib/users/user.types.js +5 -0
  113. package/esm2015/lifeready-core.js +10 -0
  114. package/esm2015/public-api.js +81 -0
  115. package/fesm2015/lifeready-core.js +13314 -0
  116. package/fesm2015/lifeready-core.js.map +1 -0
  117. package/lib/_common/ast.d.ts +11 -0
  118. package/lib/_common/deferred-promise.d.ts +12 -0
  119. package/lib/_common/exceptions.d.ts +109 -0
  120. package/lib/_common/queries.gql.d.ts +10 -0
  121. package/lib/_common/run-outside-angular.d.ts +14 -0
  122. package/{src/lib/_common/types.ts → lib/_common/types.d.ts} +10 -13
  123. package/lib/_common/utils.d.ts +3 -0
  124. package/lib/api/contact-card.gql.d.ts +7 -0
  125. package/lib/api/contact-card.service.d.ts +52 -0
  126. package/lib/api/contact-card2.gql.d.ts +34 -0
  127. package/lib/api/contact-card2.service.d.ts +49 -0
  128. package/lib/api/file.service.d.ts +18 -0
  129. package/lib/api/item2.gql.d.ts +96 -0
  130. package/lib/api/item2.service.d.ts +177 -0
  131. package/lib/api/key-exchange.gql.d.ts +9 -0
  132. package/lib/api/key-exchange.service.d.ts +39 -0
  133. package/lib/api/key-exchange.types.d.ts +196 -0
  134. package/lib/api/key-exchange2.gql.d.ts +125 -0
  135. package/lib/api/key-exchange2.service.d.ts +187 -0
  136. package/lib/api/lock.gql.d.ts +27 -0
  137. package/lib/api/lock.service.d.ts +25 -0
  138. package/lib/api/lr-apollo.service.d.ts +15 -0
  139. package/{src/lib/api/lr-graphql/index.ts → lib/api/lr-graphql/index.d.ts} +5 -5
  140. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
  141. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
  142. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
  143. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
  144. package/lib/api/lr-graphql/lr.service.d.ts +9 -0
  145. package/lib/api/message.service.d.ts +58 -0
  146. package/lib/api/persist.service.d.ts +31 -0
  147. package/lib/api/query-processor/common-processors.service.d.ts +36 -0
  148. package/{src/lib/api/query-processor/index.ts → lib/api/query-processor/index.d.ts} +2 -2
  149. package/lib/api/query-processor/query-processor.service.d.ts +18 -0
  150. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
  151. package/lib/api/shared-contact-card.service.d.ts +33 -0
  152. package/lib/api/shared-contact-card2.gql.d.ts +36 -0
  153. package/lib/api/shared-contact-card2.service.d.ts +45 -0
  154. package/lib/api/time.service.d.ts +16 -0
  155. package/lib/api/types/graphql.types.d.ts +29 -0
  156. package/{src/lib/api/types/index.ts → lib/api/types/index.d.ts} +2 -2
  157. package/lib/api/types/lr-graphql.types.d.ts +385 -0
  158. package/lib/auth/auth.config.d.ts +5 -0
  159. package/lib/auth/auth.gql.d.ts +15 -0
  160. package/lib/auth/auth.types.d.ts +66 -0
  161. package/lib/auth/idle.service.d.ts +40 -0
  162. package/lib/auth/idle.types.d.ts +10 -0
  163. package/lib/auth/lbop.service.d.ts +91 -0
  164. package/lib/auth/life-ready-auth.service.d.ts +59 -0
  165. package/lib/auth/password.service.d.ts +78 -0
  166. package/lib/auth/register.service.d.ts +25 -0
  167. package/lib/auth/two-factor.service.d.ts +15 -0
  168. package/lib/category/category-meta.service.d.ts +23 -0
  169. package/lib/category/category.gql.d.ts +45 -0
  170. package/lib/category/category.service.d.ts +67 -0
  171. package/lib/category/category.types.d.ts +79 -0
  172. package/lib/cryptography/cryptography.types.d.ts +83 -0
  173. package/lib/cryptography/encryption.service.d.ts +41 -0
  174. package/lib/cryptography/key-factory.service.d.ts +38 -0
  175. package/lib/cryptography/key-graph.service.d.ts +33 -0
  176. package/lib/cryptography/key-meta.service.d.ts +44 -0
  177. package/lib/cryptography/key.service.d.ts +36 -0
  178. package/lib/cryptography/slip39.service.d.ts +43 -0
  179. package/lib/cryptography/web-crypto.service.d.ts +5 -0
  180. package/lib/life-ready.config.d.ts +14 -0
  181. package/lib/life-ready.module.d.ts +5 -0
  182. package/lib/plan/plan.gql.d.ts +11 -0
  183. package/lib/plan/plan.service.d.ts +33 -0
  184. package/lib/plan/plan.types.d.ts +31 -0
  185. package/lib/record/record-attachment.service.d.ts +16 -0
  186. package/lib/record/record.gql.d.ts +14 -0
  187. package/lib/record/record.service.d.ts +25 -0
  188. package/lib/record/record.types.d.ts +57 -0
  189. package/lib/record-type/record-type.service.d.ts +11 -0
  190. package/lib/record-type/record-type.types.d.ts +50 -0
  191. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
  192. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
  193. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
  194. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
  195. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
  196. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
  197. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
  198. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
  199. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
  200. package/lib/scenario/scenario-setup.service.d.ts +22 -0
  201. package/lib/scenario/scenario.gql.d.ts +34 -0
  202. package/lib/scenario/scenario.service.d.ts +58 -0
  203. package/lib/scenario/scenario.types.d.ts +217 -0
  204. package/lib/search/search.gql.d.ts +1 -0
  205. package/lib/search/search.service.d.ts +25 -0
  206. package/lib/search/search.types.d.ts +20 -0
  207. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
  208. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -0
  209. package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -0
  210. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
  211. package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -0
  212. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
  213. package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
  214. package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
  215. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
  216. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
  217. package/lib/users/profile-details.service.d.ts +21 -0
  218. package/lib/users/profile.gql.d.ts +11 -0
  219. package/lib/users/profile.service.d.ts +35 -0
  220. package/lib/users/profile.types.d.ts +96 -0
  221. package/lib/users/user.gql.d.ts +9 -0
  222. package/lib/users/user.service.d.ts +12 -0
  223. package/lib/users/user.types.d.ts +23 -0
  224. package/lifeready-core.d.ts +9 -0
  225. package/lifeready-core.metadata.json +1 -0
  226. package/package.json +29 -21
  227. package/{src/public-api.ts → public-api.d.ts} +77 -96
  228. package/karma.conf.js +0 -32
  229. package/ng-package.json +0 -26
  230. package/src/lib/_common/ast.ts +0 -75
  231. package/src/lib/_common/deferred-promise.ts +0 -35
  232. package/src/lib/_common/exceptions.ts +0 -189
  233. package/src/lib/_common/queries.gql.ts +0 -200
  234. package/src/lib/_common/run-outside-angular.ts +0 -125
  235. package/src/lib/_common/tests.ts +0 -82
  236. package/src/lib/_common/utils.ts +0 -57
  237. package/src/lib/api/api-mutation.spec.ts +0 -547
  238. package/src/lib/api/api-query.spec.ts +0 -40
  239. package/src/lib/api/contact-card.gql.ts +0 -85
  240. package/src/lib/api/contact-card.service.spec.ts +0 -249
  241. package/src/lib/api/contact-card.service.ts +0 -228
  242. package/src/lib/api/contact-card2.gql.ts +0 -93
  243. package/src/lib/api/contact-card2.service.spec.ts +0 -297
  244. package/src/lib/api/contact-card2.service.ts +0 -139
  245. package/src/lib/api/file.service.spec.ts +0 -14
  246. package/src/lib/api/file.service.ts +0 -81
  247. package/src/lib/api/item2.gql.ts +0 -211
  248. package/src/lib/api/item2.service.spec.ts +0 -1043
  249. package/src/lib/api/item2.service.ts +0 -481
  250. package/src/lib/api/key-exchange.gql.ts +0 -196
  251. package/src/lib/api/key-exchange.service.spec.ts +0 -470
  252. package/src/lib/api/key-exchange.service.ts +0 -731
  253. package/src/lib/api/key-exchange.types.ts +0 -235
  254. package/src/lib/api/key-exchange2.gql.ts +0 -310
  255. package/src/lib/api/key-exchange2.service.spec.ts +0 -892
  256. package/src/lib/api/key-exchange2.service.ts +0 -875
  257. package/src/lib/api/lock.gql.ts +0 -67
  258. package/src/lib/api/lock.service.spec.ts +0 -549
  259. package/src/lib/api/lock.service.ts +0 -57
  260. package/src/lib/api/lr-apollo.service.spec.ts +0 -27
  261. package/src/lib/api/lr-apollo.service.ts +0 -43
  262. package/src/lib/api/lr-graphql/lr-graphql.service.ts +0 -313
  263. package/src/lib/api/lr-graphql/lr-merged-mutation.ts +0 -377
  264. package/src/lib/api/lr-graphql/lr-mutation-base.ts +0 -67
  265. package/src/lib/api/lr-graphql/lr-mutation.ts +0 -74
  266. package/src/lib/api/lr-graphql/lr.service.ts +0 -28
  267. package/src/lib/api/message.service.spec.ts +0 -20
  268. package/src/lib/api/message.service.ts +0 -210
  269. package/src/lib/api/persist.service.spec.ts +0 -209
  270. package/src/lib/api/persist.service.ts +0 -220
  271. package/src/lib/api/query-processor/common-processors.service.ts +0 -148
  272. package/src/lib/api/query-processor/query-processor.service.ts +0 -240
  273. package/src/lib/api/query-processor/tp-password-reset-processor.service.ts +0 -177
  274. package/src/lib/api/shared-contact-card.service.ts +0 -156
  275. package/src/lib/api/shared-contact-card2.gql.ts +0 -76
  276. package/src/lib/api/shared-contact-card2.service.ts +0 -154
  277. package/src/lib/api/time.service.spec.ts +0 -48
  278. package/src/lib/api/time.service.ts +0 -155
  279. package/src/lib/api/types/graphql.types.ts +0 -48
  280. package/src/lib/api/types/lr-graphql.types.ts +0 -467
  281. package/src/lib/auth/auth.config.ts +0 -83
  282. package/src/lib/auth/auth.gql.ts +0 -62
  283. package/src/lib/auth/auth.types.ts +0 -79
  284. package/src/lib/auth/idle.service.spec.ts +0 -119
  285. package/src/lib/auth/idle.service.ts +0 -208
  286. package/src/lib/auth/idle.types.ts +0 -11
  287. package/src/lib/auth/lbop.service.spec.ts +0 -56
  288. package/src/lib/auth/lbop.service.ts +0 -539
  289. package/src/lib/auth/life-ready-auth.service.spec.ts +0 -70
  290. package/src/lib/auth/life-ready-auth.service.ts +0 -454
  291. package/src/lib/auth/password.service.spec.ts +0 -51
  292. package/src/lib/auth/password.service.ts +0 -438
  293. package/src/lib/auth/register.service.spec.ts +0 -31
  294. package/src/lib/auth/register.service.ts +0 -181
  295. package/src/lib/auth/two-factor.service.spec.ts +0 -21
  296. package/src/lib/auth/two-factor.service.ts +0 -69
  297. package/src/lib/category/category-meta.service.spec.ts +0 -28
  298. package/src/lib/category/category-meta.service.ts +0 -125
  299. package/src/lib/category/category.gql.ts +0 -449
  300. package/src/lib/category/category.service.spec.ts +0 -26
  301. package/src/lib/category/category.service.ts +0 -498
  302. package/src/lib/category/category.types.ts +0 -89
  303. package/src/lib/cryptography/cryptography.types.ts +0 -108
  304. package/src/lib/cryptography/encryption.service.spec.ts +0 -125
  305. package/src/lib/cryptography/encryption.service.ts +0 -243
  306. package/src/lib/cryptography/key-factory.service.spec.ts +0 -15
  307. package/src/lib/cryptography/key-factory.service.ts +0 -303
  308. package/src/lib/cryptography/key-graph.service.spec.ts +0 -16
  309. package/src/lib/cryptography/key-graph.service.ts +0 -354
  310. package/src/lib/cryptography/key-meta.service.spec.ts +0 -40
  311. package/src/lib/cryptography/key-meta.service.ts +0 -254
  312. package/src/lib/cryptography/key.service.spec.ts +0 -16
  313. package/src/lib/cryptography/key.service.ts +0 -154
  314. package/src/lib/cryptography/slip39.service.spec.ts +0 -44
  315. package/src/lib/cryptography/slip39.service.ts +0 -204
  316. package/src/lib/cryptography/web-crypto.service.ts +0 -22
  317. package/src/lib/life-ready.config.ts +0 -127
  318. package/src/lib/life-ready.module.ts +0 -81
  319. package/src/lib/plan/plan.gql.ts +0 -133
  320. package/src/lib/plan/plan.service.spec.ts +0 -294
  321. package/src/lib/plan/plan.service.ts +0 -198
  322. package/src/lib/plan/plan.types.ts +0 -37
  323. package/src/lib/record/record-attachment.service.spec.ts +0 -31
  324. package/src/lib/record/record-attachment.service.ts +0 -101
  325. package/src/lib/record/record.gql.ts +0 -192
  326. package/src/lib/record/record.service.spec.ts +0 -598
  327. package/src/lib/record/record.service.ts +0 -236
  328. package/src/lib/record/record.types.ts +0 -86
  329. package/src/lib/record-type/record-type.service.spec.ts +0 -16
  330. package/src/lib/record-type/record-type.service.ts +0 -71
  331. package/src/lib/record-type/record-type.types.ts +0 -58
  332. package/src/lib/scenario/approvals/scenario-approval.gql.ts +0 -112
  333. package/src/lib/scenario/approvals/scenario-approval.types.ts +0 -85
  334. package/src/lib/scenario/approvals/scenario-approver.service.spec.ts +0 -16
  335. package/src/lib/scenario/approvals/scenario-approver.service.ts +0 -422
  336. package/src/lib/scenario/claimants/scenario-claimant.gql.ts +0 -56
  337. package/src/lib/scenario/claimants/scenario-claimant.service.spec.ts +0 -16
  338. package/src/lib/scenario/claimants/scenario-claimant.service.ts +0 -100
  339. package/src/lib/scenario/claimants/scenario-claimant.types.ts +0 -21
  340. package/src/lib/scenario/receivers/scenario-receiver.gql.ts +0 -157
  341. package/src/lib/scenario/receivers/scenario-receiver.service.spec.ts +0 -16
  342. package/src/lib/scenario/receivers/scenario-receiver.service.ts +0 -278
  343. package/src/lib/scenario/receivers/scenario-receiver.types.ts +0 -66
  344. package/src/lib/scenario/scenario-setup.service.spec.ts +0 -22
  345. package/src/lib/scenario/scenario-setup.service.ts +0 -369
  346. package/src/lib/scenario/scenario.gql.ts +0 -404
  347. package/src/lib/scenario/scenario.service.spec.ts +0 -1586
  348. package/src/lib/scenario/scenario.service.ts +0 -811
  349. package/src/lib/scenario/scenario.types.ts +0 -258
  350. package/src/lib/search/search.gql.ts +0 -62
  351. package/src/lib/search/search.service.spec.ts +0 -57
  352. package/src/lib/search/search.service.ts +0 -174
  353. package/src/lib/search/search.types.ts +0 -24
  354. package/src/lib/trusted-parties/tp-password-reset-request.service.ts +0 -140
  355. package/src/lib/trusted-parties/tp-password-reset-user.service.ts +0 -359
  356. package/src/lib/trusted-parties/tp-password-reset.gql.ts +0 -453
  357. package/src/lib/trusted-parties/tp-password-reset.service.spec.ts +0 -602
  358. package/src/lib/trusted-parties/tp-password-reset.service.ts +0 -482
  359. package/src/lib/trusted-parties/trusted-party.gql.ts +0 -159
  360. package/src/lib/trusted-parties/trusted-party.service.spec.ts +0 -1008
  361. package/src/lib/trusted-parties/trusted-party.service.ts +0 -394
  362. package/src/lib/trusted-parties/trusted-party.types.ts +0 -119
  363. package/src/lib/trusted-parties/trusted-party2.gql.ts +0 -165
  364. package/src/lib/trusted-parties/trusted-party2.service.spec.ts +0 -1782
  365. package/src/lib/trusted-parties/trusted-party2.service.ts +0 -272
  366. package/src/lib/users/profile-details.service.spec.ts +0 -45
  367. package/src/lib/users/profile-details.service.ts +0 -278
  368. package/src/lib/users/profile.gql.ts +0 -108
  369. package/src/lib/users/profile.service.spec.ts +0 -97
  370. package/src/lib/users/profile.service.ts +0 -224
  371. package/src/lib/users/profile.types.ts +0 -101
  372. package/src/lib/users/user.gql.ts +0 -69
  373. package/src/lib/users/user.service.spec.ts +0 -161
  374. package/src/lib/users/user.service.ts +0 -72
  375. package/src/lib/users/user.types.ts +0 -27
  376. package/src/test.ts +0 -21
  377. package/tsconfig.lib.json +0 -21
  378. package/tsconfig.lib.prod.json +0 -6
  379. package/tsconfig.spec.json +0 -10
  380. package/tslint.json +0 -17
@@ -0,0 +1,79 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLmdxbC5qcyIsInNvdXJjZVJvb3QiOiIvb3B0L2F0bGFzc2lhbi9waXBlbGluZXMvYWdlbnQvYnVpbGQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvYXBpL2NvbnRhY3QtY2FyZC5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRzs7Ozs7Ozs7Q0FRaEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztJQU8vQixpQkFBaUI7O0VBRW5CLGFBQWE7RUFDYixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O1VBVS9CLGlCQUFpQjs7OztJQUl2QixhQUFhO0VBQ2YsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7OztVQU83QixpQkFBaUI7Ozs7SUFJdkIsYUFBYTtFQUNmLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUE7Ozs7OztRQU1wQyxpQkFBaUI7OztFQUd2QixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7UUFNcEMsaUJBQWlCOzs7RUFHdkIsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQTs7Ozs7O0NBTTNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlHcmFwaEZpZWxkIH0gZnJvbSAnLi4vX2NvbW1vbi9xdWVyaWVzLmdxbCc7XG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcblxuZXhwb3J0IGNvbnN0IENvbnRhY3RDYXJkRmllbGRzID0gYFxuaWRcbnB1YmxpY0RhdGFcbnB1YmxpY1NlYXJjaGFibGVcbmNpcGhlckRhdGFcbmtleSB7XG4gIGlkXG59XG5gO1xuXG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRRdWVyeSA9IGdxbGBcbnF1ZXJ5IENvbnRhY3RDYXJkUXVlcnkoXG4kaWQ6IExyUmVsYXlJZElucHV0IVxuKSB7XG5jb250YWN0Q2FyZCAoXG4gIGlkOiAkaWRcbikge1xuICAke0NvbnRhY3RDYXJkRmllbGRzfVxufVxuJHtLZXlHcmFwaEZpZWxkfVxufWA7XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5ID0gZ3FsYFxucXVlcnkgU2VhcmNoQ29udGFjdENhcmRRdWVyeShcbiAgJHB1YmxpY1NlYXJjaGFibGU6IExySlNPTkZpbHRlciFcbikge1xuICBzZWFyY2hDb250YWN0Q2FyZHMoXG4gICAgcHVibGljU2VhcmNoYWJsZTogJHB1YmxpY1NlYXJjaGFibGVcbiAgICBvcmRlckJ5OiBcImNyZWF0ZWRcIlxuICApIHtcbiAgICBlZGdlcyB7XG4gICAgICBub2RlIHtcbiAgICAgICAgJHtDb250YWN0Q2FyZEZpZWxkc31cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJHtLZXlHcmFwaEZpZWxkfVxufWA7XG5cbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZExpc3RRdWVyeSA9IGdxbGBcbnF1ZXJ5IENvbnRhY3RDYXJkTGlzdFF1ZXJ5IHtcbiAgY29udGFjdENhcmRzKFxuICAgIG9yZGVyQnk6IFwiY3JlYXRlZFwiXG4gICkge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke0NvbnRhY3RDYXJkRmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAke0tleUdyYXBoRmllbGR9XG59YDtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxgXG5tdXRhdGlvbiBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uKFxuICAkaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQhXG4pIHtcbiAgY3JlYXRlQ29udGFjdENhcmQoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGNvbnRhY3RDYXJkIHtcbiAgICAgICR7Q29udGFjdENhcmRGaWVsZHN9XG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxgXG5tdXRhdGlvbiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uKFxuICAkaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQhXG4pIHtcbiAgdXBkYXRlQ29udGFjdENhcmQoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGNvbnRhY3RDYXJkIHtcbiAgICAgICR7Q29udGFjdENhcmRGaWVsZHN9XG4gICAgfVxuICB9XG59YDtcblxuZXhwb3J0IGNvbnN0IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24oJGlucHV0OiBEZWxldGVDb250YWN0Q2FyZElucHV0ISkge1xuICAgIGRlbGV0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGlkXG4gICAgfVxuICB9XG5gO1xuIl19
@@ -0,0 +1,154 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { EncryptionService } from '../cryptography/encryption.service';
4
+ import { KeyGraphService } from '../cryptography/key-graph.service';
5
+ import { KeyService } from '../cryptography/key.service';
6
+ import { LrApolloService } from './lr-apollo.service';
7
+ import { SearchContactCardQuery, ContactCardListQuery, ContactCardQuery, CreateContactCardMutation, UpdateContactCardMutation, DeleteContactCardMutation, } from './contact-card.gql';
8
+ import { KeyFactoryService } from '../cryptography/key-factory.service';
9
+ import { KeyMetaService } from '../cryptography/key-meta.service';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../cryptography/key-factory.service";
12
+ import * as i2 from "../cryptography/key.service";
13
+ import * as i3 from "./lr-apollo.service";
14
+ import * as i4 from "../cryptography/key-graph.service";
15
+ import * as i5 from "../cryptography/encryption.service";
16
+ import * as i6 from "../cryptography/key-meta.service";
17
+ export class ContactCard {
18
+ }
19
+ export class ContactCardService {
20
+ constructor(keyFactory, keyService, lrApollo, keyGraph, encryptionService, keyMetaService) {
21
+ this.keyFactory = keyFactory;
22
+ this.keyService = keyService;
23
+ this.lrApollo = lrApollo;
24
+ this.keyGraph = keyGraph;
25
+ this.encryptionService = encryptionService;
26
+ this.keyMetaService = keyMetaService;
27
+ }
28
+ decryptContactCard(cc) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const ret = Object.assign(Object.assign({}, cc), { publicDataJson: JSON.parse(cc.publicData), publicSearchableJson: JSON.parse(cc.publicSearchable) });
31
+ if (cc.key) {
32
+ const key = yield this.keyGraph.getJwkKey(cc.key.id);
33
+ // TODO: verify signature
34
+ ret.plainCipherDataJson = yield this.encryptionService.decrypt(key, cc.cipherData);
35
+ }
36
+ return ret;
37
+ });
38
+ }
39
+ decryptContactCardEdges(hasEdges) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return Promise.all(hasEdges.edges.map((edge) => __awaiter(this, void 0, void 0, function* () {
42
+ const cc = edge.node;
43
+ return yield this.decryptContactCard(cc);
44
+ })));
45
+ });
46
+ }
47
+ // { "filter": [{ "contains": { "a": true } }] }
48
+ searchContactCard(publicSearchable) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ const data = yield this.lrApollo.query({
51
+ query: SearchContactCardQuery,
52
+ variables: {
53
+ publicSearchable: JSON.stringify(publicSearchable),
54
+ },
55
+ });
56
+ return yield this.decryptContactCardEdges(data.searchContactCards);
57
+ });
58
+ }
59
+ getContactCardList() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const data = yield this.lrApollo.query({
62
+ query: ContactCardListQuery,
63
+ });
64
+ return yield this.decryptContactCardEdges(data.contactCards);
65
+ });
66
+ }
67
+ getContactCard(id) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const data = yield this.lrApollo.query({
70
+ query: ContactCardQuery,
71
+ variables: {
72
+ id,
73
+ },
74
+ });
75
+ return yield this.decryptContactCard(data.contactCard);
76
+ });
77
+ }
78
+ prepareContactCardInput(input) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const sigPxk = yield this.keyService.getCurrentSigPxk();
81
+ const publicDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicDataJson));
82
+ const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
83
+ const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
84
+ return {
85
+ sigPxkId: sigPxk.id,
86
+ publicDataSig,
87
+ publicSearchableSig,
88
+ plainDataSig,
89
+ };
90
+ });
91
+ }
92
+ createContactCard(input) {
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ // Get encryption key
95
+ const rootKey = yield this.keyService.getCurrentRootKey();
96
+ const key = yield this.keyFactory.createKey();
97
+ const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
98
+ const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
99
+ const params = yield this.prepareContactCardInput(input);
100
+ const data = yield this.lrApollo.mutate({
101
+ mutation: CreateContactCardMutation,
102
+ variables: {
103
+ input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
104
+ cipherData }),
105
+ },
106
+ });
107
+ return data.createContactCard.contactCard;
108
+ });
109
+ }
110
+ updateContactCard(input) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ // Get encryption key
113
+ const cc = yield this.getContactCard(input.id);
114
+ const key = yield this.keyGraph.getJwkKey(cc.key.id);
115
+ const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
116
+ const params = yield this.prepareContactCardInput(input);
117
+ const data = yield this.lrApollo.mutate({
118
+ mutation: UpdateContactCardMutation,
119
+ variables: {
120
+ input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
121
+ },
122
+ });
123
+ return data.updateContactCard.contactCard;
124
+ });
125
+ }
126
+ deleteContactCard(id) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ const data = yield this.lrApollo.mutate({
129
+ mutation: DeleteContactCardMutation,
130
+ variables: {
131
+ input: {
132
+ id,
133
+ },
134
+ },
135
+ });
136
+ return data.deleteContactCard.id;
137
+ });
138
+ }
139
+ }
140
+ 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" });
141
+ ContactCardService.decorators = [
142
+ { type: Injectable, args: [{
143
+ providedIn: 'root',
144
+ },] }
145
+ ];
146
+ ContactCardService.ctorParameters = () => [
147
+ { type: KeyFactoryService },
148
+ { type: KeyService },
149
+ { type: LrApolloService },
150
+ { type: KeyGraphService },
151
+ { type: EncryptionService },
152
+ { type: KeyMetaService }
153
+ ];
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9jb250YWN0LWNhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDMUIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBY2xFLE1BQU0sT0FBTyxXQUFXO0NBZ0J2QjtBQWdCRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsVUFBNkIsRUFDN0IsVUFBc0IsRUFDdEIsUUFBeUIsRUFDekIsUUFBeUIsRUFDekIsaUJBQW9DLEVBQ3BDLGNBQThCO1FBTDlCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FB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RVYsZUFBZTtZQUhmLGVBQWU7WUFEZixpQkFBaUI7WUFlakIsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhhc0tleUdyYXBoLCBLZXkgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvY3J5cHRvZ3JhcGh5LnR5cGVzJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBIYXNFZGdlcyB9IGZyb20gJy4uL19jb21tb24vdHlwZXMnO1xuaW1wb3J0IHsgTHJBcG9sbG9TZXJ2aWNlIH0gZnJvbSAnLi9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQge1xuICBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5LFxuICBDb250YWN0Q2FyZExpc3RRdWVyeSxcbiAgQ29udGFjdENhcmRRdWVyeSxcbiAgQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbixcbn0gZnJvbSAnLi9jb250YWN0LWNhcmQuZ3FsJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHMgfSBmcm9tICcuLi91c2Vycy9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IEtleU1ldGFTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1tZXRhLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQ29udGFjdENhcmRRdWVyeSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgY29udGFjdENhcmQ6IENvbnRhY3RDYXJkO1xufVxuXG5pbnRlcmZhY2UgU2VhcmNoQ29udGFjdENhcmRRdWVyeSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgc2VhcmNoQ29udGFjdENhcmRzOiBIYXNFZGdlczxDb250YWN0Q2FyZD47XG59XG5cbmludGVyZmFjZSBDb250YWN0Q2FyZExpc3RRdWVyeSBleHRlbmRzIEhhc0tleUdyYXBoIHtcbiAgY29udGFjdENhcmRzOiBIYXNFZGdlczxDb250YWN0Q2FyZD47XG59XG5cbmV4cG9ydCBjbGFzcyBDb250YWN0Q2FyZCB7XG4gIGlkOiBzdHJpbmc7XG4gIGtleTogS2V5O1xuICBzaWdQeGs6IEtleTtcbiAgcHVibGljRGF0YTogc3RyaW5nO1xuICBwdWJsaWNEYXRhU2lnOiBzdHJpbmc7XG4gIHB1YmxpY1NlYXJjaGFibGU6IHN0cmluZztcbiAgcHVibGljU2VhcmNoYWJsZVNpZzogc3RyaW5nO1xuICBwbGFpbkRhdGE6IHN0cmluZztcbiAgcGxhaW5EYXRhU2lnOiBzdHJpbmc7XG4gIGNpcGhlckRhdGE6IHN0cmluZztcbiAgLy8gUGFyc2UvZGVjcnlwdGVkIHZlcnNpb25zIG9mIHRoZSBhYm92ZS5cbiAgcHVibGljRGF0YUpzb246IGFueTtcbiAgcHVibGljU2VhcmNoYWJsZUpzb246IGFueTtcbiAgcGxhaW5DaXBoZXJEYXRhSnNvbjogYW55O1xuICBwbGFpbkRhdGFKc29uOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udGFjdENhcmRJbnB1dCB7XG4gIHB1YmxpY0RhdGFKc29uOiBhbnk7XG4gIHB1YmxpY1NlYXJjaGFibGVKc29uOiBhbnk7XG4gIHBsYWluQ2lwaGVyRGF0YUpzb246IGFueTtcbiAgcGxhaW5EYXRhSnNvbjogTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29udGFjdENhcmRJbnB1dCBleHRlbmRzIENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQge1xuICBpZDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGFjdENhcmRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5R3JhcGg6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGtleU1ldGFTZXJ2aWNlOiBLZXlNZXRhU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgZGVjcnlwdENvbnRhY3RDYXJkKGNjOiBDb250YWN0Q2FyZCk6IFByb21pc2U8Q29udGFjdENhcmQ+IHtcbiAgICBjb25zdCByZXQgPSB7XG4gICAgICAuLi5jYyxcbiAgICAgIHB1YmxpY0RhdGFKc29uOiBKU09OLnBhcnNlKGNjLnB1YmxpY0RhdGEpLFxuICAgICAgcHVibGljU2VhcmNoYWJsZUpzb246IEpTT04ucGFyc2UoY2MucHVibGljU2VhcmNoYWJsZSksXG4gICAgfTtcblxuICAgIGlmIChjYy5rZXkpIHtcbiAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZ2V0SndrS2V5KGNjLmtleS5pZCk7XG4gICAgICAvLyBUT0RPOiB2ZXJpZnkgc2lnbmF0dXJlXG4gICAgICByZXQucGxhaW5DaXBoZXJEYXRhSnNvbiA9IGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2UuZGVjcnlwdChcbiAgICAgICAga2V5LFxuICAgICAgICBjYy5jaXBoZXJEYXRhXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBhc3luYyBkZWNyeXB0Q29udGFjdENhcmRFZGdlcyhcbiAgICBoYXNFZGdlczogSGFzRWRnZXM8Q29udGFjdENhcmQ+XG4gICk6IFByb21pc2U8Q29udGFjdENhcmRbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGhhc0VkZ2VzLmVkZ2VzLm1hcChhc3luYyAoZWRnZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGNjID0gZWRnZS5ub2RlIGFzIENvbnRhY3RDYXJkO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5kZWNyeXB0Q29udGFjdENhcmQoY2MpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLy8geyBcImZpbHRlclwiOiBbeyBcImNvbnRhaW5zXCI6IHsgXCJhXCI6IHRydWUgfSB9XSB9XG4gIGFzeW5jIHNlYXJjaENvbnRhY3RDYXJkKHB1YmxpY1NlYXJjaGFibGU6IG9iamVjdCk6IFByb21pc2U8Q29udGFjdENhcmRbXT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PFNlYXJjaENvbnRhY3RDYXJkUXVlcnk+KHtcbiAgICAgIHF1ZXJ5OiBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHB1YmxpY1NlYXJjaGFibGU6IEpTT04uc3RyaW5naWZ5KHB1YmxpY1NlYXJjaGFibGUpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZEVkZ2VzKGRhdGEuc2VhcmNoQ29udGFjdENhcmRzKTtcbiAgfVxuXG4gIGFzeW5jIGdldENvbnRhY3RDYXJkTGlzdCgpOiBQcm9taXNlPENvbnRhY3RDYXJkW10+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxDb250YWN0Q2FyZExpc3RRdWVyeT4oe1xuICAgICAgcXVlcnk6IENvbnRhY3RDYXJkTGlzdFF1ZXJ5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZGVjcnlwdENvbnRhY3RDYXJkRWRnZXMoZGF0YS5jb250YWN0Q2FyZHMpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q29udGFjdENhcmQoaWQ6IHN0cmluZyk6IFByb21pc2U8Q29udGFjdENhcmQ+IHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxDb250YWN0Q2FyZFF1ZXJ5Pih7XG4gICAgICBxdWVyeTogQ29udGFjdENhcmRRdWVyeSxcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kZWNyeXB0Q29udGFjdENhcmQoZGF0YS5jb250YWN0Q2FyZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDb250YWN0Q2FyZElucHV0KFxuICAgIGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2lnUHhrID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRTaWdQeGsoKTtcbiAgICBjb25zdCBwdWJsaWNEYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucHVibGljRGF0YUpzb24pXG4gICAgKTtcbiAgICBjb25zdCBwdWJsaWNTZWFyY2hhYmxlU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucHVibGljU2VhcmNoYWJsZUpzb24pXG4gICAgKTtcbiAgICBjb25zdCBwbGFpbkRhdGFTaWcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihzaWdQeGsuandrLCBpbnB1dC5wbGFpbkRhdGFKc29uKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2lnUHhrSWQ6IHNpZ1B4ay5pZCxcbiAgICAgIHB1YmxpY0RhdGFTaWcsXG4gICAgICBwdWJsaWNTZWFyY2hhYmxlU2lnLFxuICAgICAgcGxhaW5EYXRhU2lnLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBjcmVhdGVDb250YWN0Q2FyZChpbnB1dDogQ3JlYXRlQ29udGFjdENhcmRJbnB1dCk6IFByb21pc2U8Q29udGFjdENhcmQ+IHtcbiAgICAvLyBHZXQgZW5jcnlwdGlvbiBrZXlcbiAgICBjb25zdCByb290S2V5ID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRSb290S2V5KCk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlGYWN0b3J5LmNyZWF0ZUtleSgpO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIHJvb3RLZXkuandrLFxuICAgICAga2V5LnRvSlNPTih0cnVlKVxuICAgICk7XG4gICAgY29uc3QgY2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAga2V5LFxuICAgICAgaW5wdXQucGxhaW5DaXBoZXJEYXRhSnNvblxuICAgICk7XG5cbiAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCB0aGlzLnByZXBhcmVDb250YWN0Q2FyZElucHV0KGlucHV0KTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTx7XG4gICAgICBjcmVhdGVDb250YWN0Q2FyZDogeyBjb250YWN0Q2FyZDogQ29udGFjdENhcmQgfTtcbiAgICB9Pih7XG4gICAgICBtdXRhdGlvbjogQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbixcbiAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICBpbnB1dDoge1xuICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxuICAgICAgICAgIHdyYXBwZWRLZXksXG4gICAgICAgICAgY2lwaGVyRGF0YSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YS5jcmVhdGVDb250YWN0Q2FyZC5jb250YWN0Q2FyZDtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUNvbnRhY3RDYXJkKGlucHV0OiBVcGRhdGVDb250YWN0Q2FyZElucHV0KTogUHJvbWlzZTxDb250YWN0Q2FyZD4ge1xuICAgIC8vIEdldCBlbmNyeXB0aW9uIGtleVxuICAgIGNvbnN0IGNjID0gYXdhaXQgdGhpcy5nZXRDb250YWN0Q2FyZChpbnB1dC5pZCk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5nZXRKd2tLZXkoY2Mua2V5LmlkKTtcbiAgICBjb25zdCBjaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICBrZXksXG4gICAgICBpbnB1dC5wbGFpbkNpcGhlckRhdGFKc29uXG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQpO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHtcbiAgICAgIHVwZGF0ZUNvbnRhY3RDYXJkOiB7IGNvbnRhY3RDYXJkOiBDb250YWN0Q2FyZCB9O1xuICAgIH0+KHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgIGlkOiBpbnB1dC5pZCxcbiAgICAgICAgICBjaXBoZXJEYXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhLnVwZGF0ZUNvbnRhY3RDYXJkLmNvbnRhY3RDYXJkO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQ29udGFjdENhcmQoaWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPGFueT4oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGF0YS5kZWxldGVDb250YWN0Q2FyZC5pZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,60 @@
1
+ import { gqlTyped } from '../_common/ast';
2
+ export const ContactCardFragment = gqlTyped `
3
+ fragment ContactCardFragment on ContactCardNode {
4
+ id
5
+ publicData
6
+ publicSearchable
7
+ cipherData
8
+ key {
9
+ id
10
+ }
11
+ }
12
+ `;
13
+ export const CreateContactCardMutation = gqlTyped `
14
+ mutation CreateContactCardMutation(
15
+ $input: CreateContactCardInput!
16
+ ) {
17
+ createContactCard(input: $input) {
18
+ contactCard {
19
+ id
20
+ }
21
+ }
22
+ }
23
+ `;
24
+ export const UpdateContactCardMutation = gqlTyped `
25
+ mutation UpdateContactCardMutation($input: UpdateContactCardInput!) {
26
+ updateContactCard(input: $input) {
27
+ contactCard {
28
+ id
29
+ }
30
+ }
31
+ }
32
+ `;
33
+ export const DeleteContactCardMutation = gqlTyped `
34
+ mutation DeleteContactCardMutation($input: DeleteContactCardInput!) {
35
+ deleteContactCard(input: $input) {
36
+ id
37
+ }
38
+ }
39
+ `;
40
+ export const ContactCardsQuery = gqlTyped `
41
+ query ContactCardsQuery {
42
+ contactCards(orderBy: "created") {
43
+ edges {
44
+ node {
45
+ ...ContactCardFragment
46
+ }
47
+ }
48
+ }
49
+ }
50
+ ${ContactCardFragment}
51
+ `;
52
+ export const ContactCardQuery = gqlTyped `
53
+ query ContactCardQuery($id: LrRelayIdInput!) {
54
+ contactCard(id: $id) {
55
+ ...ContactCardFragment
56
+ }
57
+ }
58
+ ${ContactCardFragment}
59
+ `;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5ncWwuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9jb250YWN0LWNhcmQyLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFpQjs7Ozs7Ozs7OztDQVUzRCxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsUUFBUSxDQUEyQjs7Ozs7Ozs7OztDQVUzRSxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsUUFBUSxDQUEyQjs7Ozs7Ozs7Q0FRM0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBMkI7Ozs7OztDQU0zRSxDQUFDO0FBS0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFtQjs7Ozs7Ozs7OztJQVV4RCxtQkFBbUI7Q0FDdEIsQ0FBQztBQUtGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBa0I7Ozs7OztJQU10RCxtQkFBbUI7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3Rpb24sIENvbnRhY3RDYXJkTm9kZSwgSUQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi4vX2NvbW1vbi9hc3QnO1xuXG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRGcmFnbWVudCA9IGdxbFR5cGVkPENvbnRhY3RDYXJkTm9kZT5gXG4gIGZyYWdtZW50IENvbnRhY3RDYXJkRnJhZ21lbnQgb24gQ29udGFjdENhcmROb2RlIHtcbiAgICBpZFxuICAgIHB1YmxpY0RhdGFcbiAgICBwdWJsaWNTZWFyY2hhYmxlXG4gICAgY2lwaGVyRGF0YVxuICAgIGtleSB7XG4gICAgICAgIGlkXG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24ge1xuICBjcmVhdGVDb250YWN0Q2FyZDoge1xuICAgIGNvbnRhY3RDYXJkOiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uID0gZ3FsVHlwZWQ8Q3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbj5gXG4gIG11dGF0aW9uIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24oXG4gICAgJGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0IVxuICApIHtcbiAgICBjcmVhdGVDb250YWN0Q2FyZChpbnB1dDogJGlucHV0KSB7XG4gICAgICBjb250YWN0Q2FyZCB7XG4gICAgICAgIGlkXG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24ge1xuICB1cGRhdGVDb250YWN0Q2FyZDoge1xuICAgIGNvbnRhY3RDYXJkOiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uID0gZ3FsVHlwZWQ8VXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbj5gXG4gIG11dGF0aW9uIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24oJGlucHV0OiBVcGRhdGVDb250YWN0Q2FyZElucHV0ISkge1xuICAgIHVwZGF0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGNvbnRhY3RDYXJkIHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbiB7XG4gIGRlbGV0ZUNvbnRhY3RDYXJkOiB7XG4gICAgZGVsZXRlQ29udGFjdENhcmQ6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxUeXBlZDxEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uPmBcbiAgbXV0YXRpb24gRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbigkaW5wdXQ6IERlbGV0ZUNvbnRhY3RDYXJkSW5wdXQhKSB7XG4gICAgZGVsZXRlQ29udGFjdENhcmQoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdENhcmRzUXVlcnkge1xuICBjb250YWN0Q2FyZHM6IENvbm5lY3Rpb248Q29udGFjdENhcmROb2RlPjtcbn1cbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZHNRdWVyeSA9IGdxbFR5cGVkPENvbnRhY3RDYXJkc1F1ZXJ5PmBcbiAgcXVlcnkgQ29udGFjdENhcmRzUXVlcnkge1xuICAgIGNvbnRhY3RDYXJkcyhvcmRlckJ5OiBcImNyZWF0ZWRcIikge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICAuLi5Db250YWN0Q2FyZEZyYWdtZW50XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJHtDb250YWN0Q2FyZEZyYWdtZW50fVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZFF1ZXJ5IHtcbiAgY29udGFjdENhcmQ6IENvbnRhY3RDYXJkTm9kZTtcbn1cbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZFF1ZXJ5ID0gZ3FsVHlwZWQ8Q29udGFjdENhcmRRdWVyeT5gXG4gIHF1ZXJ5IENvbnRhY3RDYXJkUXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgICBjb250YWN0Q2FyZChpZDogJGlkKSB7XG4gICAgICAuLi5Db250YWN0Q2FyZEZyYWdtZW50XG4gICAgfVxuICB9XG4gICR7Q29udGFjdENhcmRGcmFnbWVudH1cbmA7XG4iXX0=
@@ -0,0 +1,103 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable, NgZone } from '@angular/core';
3
+ import { EncryptionService } from '../cryptography/encryption.service';
4
+ import { KeyFactoryService } from '../cryptography/key-factory.service';
5
+ import { KeyGraphService } from '../cryptography/key-graph.service';
6
+ import { KeyMetaService } from '../cryptography/key-meta.service';
7
+ import { KeyService } from '../cryptography/key.service';
8
+ import { RunOutsideAngular } from '../_common/run-outside-angular';
9
+ import { CreateContactCardMutation, DeleteContactCardMutation, UpdateContactCardMutation, } from './contact-card2.gql';
10
+ import { LrMutation } from './lr-graphql';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../cryptography/key-factory.service";
13
+ import * as i2 from "../cryptography/key.service";
14
+ import * as i3 from "../cryptography/encryption.service";
15
+ import * as i4 from "../cryptography/key-graph.service";
16
+ import * as i5 from "../cryptography/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 = yield this.keyService.getCurrentRootKey();
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 = yield this.keyService.getCurrentSigPxk();
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvY29udGFjdC1jYXJkMi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDMUIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBbUIxQyxNQUFNLE9BQU8sa0JBQWtCO0NBRTlCO0lBYVksbUJBQW1CLFNBQW5CLG1CQUFtQjtJQUM5QixZQUNVLFVBQTZCLEVBQzdCLFVBQXNCLEVBQ3RCLGlCQUFvQyxFQUNwQyxRQUF5QixFQUN6QixjQUE4QixFQUM5QixNQUFjO1FBTGQsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixX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QU07YUFDbkI7OztZQTVDUSxpQkFBaUI7WUFHakIsVUFBVTtZQUpWLGlCQUFpQjtZQUVqQixlQUFlO1lBQ2YsY0FBYztZQUpGLE1BQU07O0FBK0NkLG1CQUFtQjtJQU4vQixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsbUJBQW1CLENBMkYvQjtTQTNGWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2VuY3J5cHRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZ3JhcGguc2VydmljZSc7XG5pbXBvcnQgeyBLZXlNZXRhU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHMgfSBmcm9tICcuLi91c2Vycy9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcbmltcG9ydCB7XG4gIENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG59IGZyb20gJy4vY29udGFjdC1jYXJkMi5ncWwnO1xuaW1wb3J0IHsgTHJNdXRhdGlvbiB9IGZyb20gJy4vbHItZ3JhcGhxbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udGFjdENhcmRJbnB1dDIge1xuICBwdWJsaWNEYXRhSnNvbjogYW55O1xuICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogYW55O1xuICBwbGFpbkNpcGhlckRhdGFKc29uOiBhbnk7XG4gIHBsYWluRGF0YUpzb246IE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzO1xufVxuXG4vLyBUaGVzZSBjb250YWN0IG5hbWUgZmllbGRzIGFyZSBlbmZvcmNlZCBieSB0aGUgc2VydmVyIHNvIHRoYXQgaXQgY2FuIHNlbmQgb3V0IGVtYWlscyB3aXRoXG4vLyBhcHByb3ByaWF0ZSBmb3JtYXQuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkTmFtZTIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICAvLyBhZGRpdGlvbmFsIGZpZWxkcyBhcmUgbm90IGFsbG93ZWQgYnkgdGhlIHNlcnZlclxufVxuXG5leHBvcnQgY2xhc3MgT3duZXJQbGFpbkRhdGFKc29uIHtcbiAgbmFtZTogQ29udGFjdENhcmROYW1lMjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb250YWN0Q2FyZElucHV0MiBleHRlbmRzIENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyIHtcbiAgaWQ6IHN0cmluZztcbiAga2V5SWQ6IHN0cmluZztcbn1cblxuQFJ1bk91dHNpZGVBbmd1bGFyKHtcbiAgbmdab25lTmFtZTogJ25nWm9uZScsXG59KVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRhY3RDYXJkMlNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5U2VydmljZTogS2V5U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlNZXRhU2VydmljZTogS2V5TWV0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgYXN5bmMgY3JlYXRlQ29udGFjdENhcmQoaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyKSB7XG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XG4gICAgY29uc3Qgcm9vdEtleSA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50Um9vdEtleSgpO1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXG4gICAgICByb290S2V5Lmp3ayxcbiAgICAgIGtleS50b0pTT04odHJ1ZSlcbiAgICApO1xuICAgIGNvbnN0IGNpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcbiAgICAgIGtleSxcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cbiAgICApO1xuXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XG5cbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgd3JhcHBpbmdLZXlJZDogcm9vdEtleS5pZCxcbiAgICAgICAgICB3cmFwcGVkS2V5LFxuICAgICAgICAgIGNpcGhlckRhdGEsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlQ29udGFjdENhcmQoaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQyKSB7XG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XG4gICAgY29uc3QgY2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxuICAgICAgaW5wdXQua2V5SWQsXG4gICAgICBpbnB1dC5wbGFpbkNpcGhlckRhdGFKc29uXG4gICAgKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMucHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoaW5wdXQpO1xuXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgIGlkOiBpbnB1dC5pZCxcbiAgICAgICAgICBjaXBoZXJEYXRhLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZUNvbnRhY3RDYXJkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xuICAgICAgbXV0YXRpb246IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByZXBhcmVDb250YWN0Q2FyZElucHV0KFxuICAgIGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0MlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHNpZ1B4ayA9IGF3YWl0IHRoaXMua2V5U2VydmljZS5nZXRDdXJyZW50U2lnUHhrKCk7XG4gICAgY29uc3QgcHVibGljRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY0RhdGFKc29uKVxuICAgICk7XG4gICAgY29uc3QgcHVibGljU2VhcmNoYWJsZVNpZyA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAgYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5zaWduKHNpZ1B4ay5qd2ssIGlucHV0LnB1YmxpY1NlYXJjaGFibGVKc29uKVxuICAgICk7XG4gICAgY29uc3QgcGxhaW5EYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucGxhaW5EYXRhSnNvbilcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNpZ1B4a0lkOiBzaWdQeGsuaWQsXG4gICAgICBwdWJsaWNEYXRhU2lnLFxuICAgICAgcHVibGljU2VhcmNoYWJsZVNpZyxcbiAgICAgIHBsYWluRGF0YVNpZyxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { __awaiter } from "tslib";
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Injectable, Inject } from '@angular/core';
4
+ import { LR_CONFIG } from '../life-ready.config';
5
+ import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../life-ready.config";
8
+ import * as i2 from "@angular/common/http";
9
+ import * as i3 from "../auth/life-ready-auth.service";
10
+ export class FileService {
11
+ constructor(config, http, lrAuth) {
12
+ this.config = config;
13
+ this.http = http;
14
+ this.lrAuth = lrAuth;
15
+ }
16
+ downloadEncryptedFile(fileStateNodeId) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ return JSON.parse(yield this.downloadEncryptedFile2(fileStateNodeId));
19
+ });
20
+ }
21
+ downloadEncryptedFile2(fileStateNodeId) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const url = `${this.config.apiUrl}files/download/?file_state_node_id=${fileStateNodeId}`;
24
+ const content = yield this.http
25
+ .get(url, {
26
+ responseType: 'text',
27
+ headers: {
28
+ Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
29
+ },
30
+ })
31
+ .toPromise();
32
+ return content;
33
+ });
34
+ }
35
+ loadFile(file) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ return new Promise((resolve, reject) => {
38
+ const reader = new FileReader();
39
+ reader.onload = () => {
40
+ // OK to type cast here since we are using readAsArrayBuffer.
41
+ resolve(reader.result);
42
+ };
43
+ reader.readAsArrayBuffer(file);
44
+ });
45
+ });
46
+ }
47
+ uploadEncryptedFile(options) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const { encryptedContent, fileName } = options;
50
+ const formData = new FormData();
51
+ formData.append('content', new Blob([encryptedContent]), fileName);
52
+ const { content_resource } = yield this.http
53
+ .post(`${this.config.apiUrl}files/upload/`, formData, {
54
+ headers: {
55
+ Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
56
+ },
57
+ })
58
+ .toPromise();
59
+ return content_resource;
60
+ });
61
+ }
62
+ }
63
+ FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.LifeReadyAuthService)); }, token: FileService, providedIn: "root" });
64
+ FileService.decorators = [
65
+ { type: Injectable, args: [{
66
+ providedIn: 'root',
67
+ },] }
68
+ ];
69
+ FileService.ctorParameters = () => [
70
+ { type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
71
+ { type: HttpClient },
72
+ { type: LifeReadyAuthService }
73
+ ];
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBbUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFjdkUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDNkIsTUFBdUIsRUFDMUMsSUFBZ0IsRUFDaEIsTUFBNEI7UUFGVCxXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUMxQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQXNCO0lBQ25DLENBQUM7SUFFRSxxQkFBcUIsQ0FBQyxlQUF1Qjs7WUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztLQUFBO0lBRUssc0JBQXNCLENBQUMsZUFBdUI7O1lBQ2xELE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxlQUFlLEVBQUUsQ0FBQztZQUV6RixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUM1QixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNSLFlBQVksRUFBRSxNQUFNO2dCQUNwQixPQUFPLEVBQUU7b0JBQ1AsYUFBYSxFQUFFLFVBQVUsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUM1QixDQUFDLGlCQUFpQixFQUFFLEVBQUU7aUJBQ3hCO2FBQ0YsQ0FBQztpQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUVmLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtJQUVLLFFBQVEsQ0FBQyxJQUFVOztZQUN2QixPQUFPLElBQUksT0FBTyxDQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsNkRBQTZEO29CQUM3RCxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQXFCLENBQUMsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVLLG1CQUFtQixDQUN2QixPQUFtQzs7WUFFbkMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUUvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQ3pDLElBQUksQ0FDSCxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxlQUFlLEVBQ3BDLFFBQVEsRUFDUjtnQkFDRSxPQUFPLEVBQUU7b0JBQ1AsYUFBYSxFQUFFLFVBQVUsQ0FDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUM1QixDQUFDLGlCQUFpQixFQUFFLEVBQUU7aUJBQ3hCO2FBQ0YsQ0FDRjtpQkFDQSxTQUFTLEVBQUUsQ0FBQztZQUVmLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQztLQUFBOzs7O1lBakVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQUdJLE1BQU0sU0FBQyxTQUFTO1lBbkJaLFVBQVU7WUFHVixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMUl9DT05GSUcsIExpZmVSZWFkeUNvbmZpZyB9IGZyb20gJy4uL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7IExpZmVSZWFkeUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9saWZlLXJlYWR5LWF1dGguc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEZpbGVDb250ZW50Q29udGV4dCA9ICdGSUxFX1NUQVRFJztcblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRFbmNyeXB0ZWRGaWxlT3B0aW9ucyB7XG4gIGVuY3J5cHRlZENvbnRlbnQ6IHN0cmluZztcbiAgLy8gVE9ETyBBZGQgaW4gdGhlIGNvbnRleHQgZmllbGQgYW5kIG1ha2UgaXQgbWFuZGF0b3J5XG4gIC8vIGNvbnRleHQ6IEZpbGVDb250ZW50Q29udGV4dDtcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTFJfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTGlmZVJlYWR5Q29uZmlnLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGxyQXV0aDogTGlmZVJlYWR5QXV0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGRvd25sb2FkRW5jcnlwdGVkRmlsZShmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgdGhpcy5kb3dubG9hZEVuY3J5cHRlZEZpbGUyKGZpbGVTdGF0ZU5vZGVJZCkpO1xuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfWZpbGVzL2Rvd25sb2FkLz9maWxlX3N0YXRlX25vZGVfaWQ9JHtmaWxlU3RhdGVOb2RlSWR9YDtcblxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmh0dHBcbiAgICAgIC5nZXQodXJsLCB7XG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAkeyhcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubHJBdXRoLmdldFVzZXIoKVxuICAgICAgICAgICkuZ2V0QWNjZXNzSnd0VG9rZW4oKX1gLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgYXN5bmMgbG9hZEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QXJyYXlCdWZmZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAvLyBPSyB0byB0eXBlIGNhc3QgaGVyZSBzaW5jZSB3ZSBhcmUgdXNpbmcgcmVhZEFzQXJyYXlCdWZmZXIuXG4gICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBBcnJheUJ1ZmZlcik7XG4gICAgICB9O1xuICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBsb2FkRW5jcnlwdGVkRmlsZShcbiAgICBvcHRpb25zOiBVcGxvYWRFbmNyeXB0ZWRGaWxlT3B0aW9uc1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgZW5jcnlwdGVkQ29udGVudCwgZmlsZU5hbWUgfSA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnY29udGVudCcsIG5ldyBCbG9iKFtlbmNyeXB0ZWRDb250ZW50XSksIGZpbGVOYW1lKTtcblxuICAgIGNvbnN0IHsgY29udGVudF9yZXNvdXJjZSB9ID0gYXdhaXQgdGhpcy5odHRwXG4gICAgICAucG9zdDx7IGNvbnRlbnRfcmVzb3VyY2UgfT4oXG4gICAgICAgIGAke3RoaXMuY29uZmlnLmFwaVVybH1maWxlcy91cGxvYWQvYCxcbiAgICAgICAgZm9ybURhdGEsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7KFxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxyQXV0aC5nZXRVc2VyKClcbiAgICAgICAgICAgICkuZ2V0QWNjZXNzSnd0VG9rZW4oKX1gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcblxuICAgIHJldHVybiBjb250ZW50X3Jlc291cmNlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,110 @@
1
+ import { gqlTyped } from '../_common/ast';
2
+ export const DirectoryKeyQuery = gqlTyped `
3
+ query DirectoryKeyQuery($id: LrRelayIdInput!) {
4
+ directory(id: $id) {
5
+ keyId
6
+ }
7
+ }
8
+ `;
9
+ export const FileKeyQuery = gqlTyped `
10
+ query FileKeyQuery($id: LrRelayIdInput!) {
11
+ file(id: $id) {
12
+ keyId
13
+ }
14
+ }
15
+ `;
16
+ export const FileStateKeyQuery = gqlTyped `
17
+ query FileStateKeyQuery($id: LrRelayIdInput!) {
18
+ fileState(id: $id) {
19
+ keyId
20
+ }
21
+ }
22
+ `;
23
+ export const CreateDirectoryMutation = gqlTyped `
24
+ mutation CreateDirectoryMutation($input: CreateDirectoryInput!) {
25
+ createDirectory(input: $input) {
26
+ directory {
27
+ id
28
+ }
29
+ }
30
+ }
31
+ `;
32
+ export const UpdateDirectoryMutation = gqlTyped `
33
+ mutation UpdateDirectoryMutation($input: UpdateDirectoryInput!) {
34
+ updateDirectory(input: $input) {
35
+ directory {
36
+ id
37
+ modified
38
+ }
39
+ }
40
+ }
41
+ `;
42
+ export const DeleteDirectoryMutation = gqlTyped `
43
+ mutation DeleteDirectoryMutation($input: DeleteDirectoryInput!) {
44
+ deleteDirectory(input: $input) {
45
+ id
46
+ }
47
+ }
48
+ `;
49
+ export const CreateFileMutation = gqlTyped `
50
+ mutation CreateFileMutation($input: CreateFileInput!) {
51
+ createFile(input: $input) {
52
+ file {
53
+ id
54
+ }
55
+ }
56
+ }
57
+ `;
58
+ export const UpdateFileMutation = gqlTyped `
59
+ mutation UpdateFileMutation($input: UpdateFileInput!) {
60
+ updateFile(input: $input) {
61
+ file {
62
+ id
63
+ }
64
+ }
65
+ }
66
+ `;
67
+ export const DeleteFileMutation = gqlTyped `
68
+ mutation DeleteFileMutation($input: DeleteFileInput!) {
69
+ deleteFile(input: $input) {
70
+ id
71
+ }
72
+ }
73
+ `;
74
+ export const ArchiveDirectoryMutation = gqlTyped `
75
+ mutation ArchiveDirectoryMutation($input: ArchiveDirectoryInput!) {
76
+ archiveDirectory(input: $input) {
77
+ directory {
78
+ id
79
+ }
80
+ }
81
+ }
82
+ `;
83
+ export const UnarchiveDirectoryMutation = gqlTyped `
84
+ mutation UnarchiveDirectoryMutation($input: UnarchiveDirectoryInput!) {
85
+ unarchiveDirectory(input: $input) {
86
+ directory {
87
+ id
88
+ }
89
+ }
90
+ }
91
+ `;
92
+ export const ChangeDirectoryParentsMutation = gqlTyped `
93
+ mutation ChangeDirectoryParentsMutation($input: ChangeDirectoryParentsInput!) {
94
+ changeDirectoryParents(input: $input) {
95
+ directory {
96
+ id
97
+ }
98
+ }
99
+ }
100
+ `;
101
+ export const ChangeFileParentsMutation = gqlTyped `
102
+ mutation ChangeFileParentsMutation($input: ChangeFileParentsInput!) {
103
+ changeFileParents(input: $input) {
104
+ file {
105
+ id
106
+ }
107
+ }
108
+ }
109
+ `;
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbTIuZ3FsLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvaXRlbTIuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVcxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQW1COzs7Ozs7Q0FNM0QsQ0FBQztBQU9GLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQWM7Ozs7OztDQU1qRCxDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFtQjs7Ozs7O0NBTTNELENBQUM7QUFZRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQXlCOzs7Ozs7OztDQVF2RSxDQUFDO0FBVUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsUUFBUSxDQUF5Qjs7Ozs7Ozs7O0NBU3ZFLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxRQUFRLENBQXlCOzs7Ozs7Q0FNdkUsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBb0I7Ozs7Ozs7O0NBUTdELENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQW9COzs7Ozs7OztDQVE3RCxDQUFDO0FBT0YsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFvQjs7Ozs7O0NBTTdELENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxRQUFRLENBQTBCOzs7Ozs7OztDQVF6RSxDQUFDO0FBU0YsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsUUFBUSxDQUE0Qjs7Ozs7Ozs7Q0FRN0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLFFBQVEsQ0FBc0M7Ozs7Ozs7O0NBUTNGLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQWlDOzs7Ozs7OztDQVFqRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3FsVHlwZWQgfSBmcm9tICcuLi9fY29tbW9uL2FzdCc7XG5pbXBvcnQgeyBEYXRlVGltZSwgSUQgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFF1ZXJpZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeUtleVF1ZXJ5IHtcbiAgZGlyZWN0b3J5OiB7XG4gICAga2V5SWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IERpcmVjdG9yeUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RGlyZWN0b3J5S2V5UXVlcnk+YFxucXVlcnkgRGlyZWN0b3J5S2V5UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgZGlyZWN0b3J5KGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVLZXlRdWVyeSB7XG4gIGZpbGU6IHtcbiAgICBrZXlJZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgRmlsZUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RmlsZUtleVF1ZXJ5PmBcbnF1ZXJ5IEZpbGVLZXlRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xuICBmaWxlKGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVTdGF0ZUtleVF1ZXJ5IHtcbiAgZmlsZVN0YXRlOiB7XG4gICAga2V5SWQ6IElEO1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEZpbGVTdGF0ZUtleVF1ZXJ5ID0gZ3FsVHlwZWQ8RmlsZVN0YXRlS2V5UXVlcnk+YFxucXVlcnkgRmlsZVN0YXRlS2V5UXVlcnkoJGlkOiBMclJlbGF5SWRJbnB1dCEpIHtcbiAgZmlsZVN0YXRlKGlkOiAkaWQpIHtcbiAgICBrZXlJZFxuICB9XG59XG5gO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTXV0YXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEaXJlY3RvcnlNdXRhdGlvbiB7XG4gIGNyZWF0ZURpcmVjdG9yeToge1xuICAgIGRpcmVjdG9yeToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgQ3JlYXRlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxUeXBlZDxDcmVhdGVEaXJlY3RvcnlNdXRhdGlvbj5gXG5tdXRhdGlvbiBDcmVhdGVEaXJlY3RvcnlNdXRhdGlvbigkaW5wdXQ6IENyZWF0ZURpcmVjdG9yeUlucHV0ISkge1xuICBjcmVhdGVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGRpcmVjdG9yeSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVEaXJlY3RvcnlNdXRhdGlvbiB7XG4gIHVwZGF0ZURpcmVjdG9yeToge1xuICAgIGRpcmVjdG9yeToge1xuICAgICAgaWQ6IElEO1xuICAgICAgbW9kaWZpZWQ6IERhdGVUaW1lO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgVXBkYXRlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxUeXBlZDxVcGRhdGVEaXJlY3RvcnlNdXRhdGlvbj5gXG5tdXRhdGlvbiBVcGRhdGVEaXJlY3RvcnlNdXRhdGlvbigkaW5wdXQ6IFVwZGF0ZURpcmVjdG9yeUlucHV0ISkge1xuICB1cGRhdGVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGRpcmVjdG9yeSB7XG4gICAgICBpZFxuICAgICAgbW9kaWZpZWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRGlyZWN0b3J5TXV0YXRpb24ge1xuICBkZWxldGVEaXJlY3Rvcnk6IHtcbiAgICBpZDogSUQ7XG4gIH07XG59XG5leHBvcnQgY29uc3QgRGVsZXRlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxUeXBlZDxEZWxldGVEaXJlY3RvcnlNdXRhdGlvbj5gXG5tdXRhdGlvbiBEZWxldGVEaXJlY3RvcnlNdXRhdGlvbigkaW5wdXQ6IERlbGV0ZURpcmVjdG9yeUlucHV0ISkge1xuICBkZWxldGVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGlkXG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRmlsZU11dGF0aW9uIHtcbiAgY3JlYXRlRmlsZToge1xuICAgIGZpbGU6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENyZWF0ZUZpbGVNdXRhdGlvbiA9IGdxbFR5cGVkPENyZWF0ZUZpbGVNdXRhdGlvbj5gXG5tdXRhdGlvbiBDcmVhdGVGaWxlTXV0YXRpb24oJGlucHV0OiBDcmVhdGVGaWxlSW5wdXQhKSB7XG4gIGNyZWF0ZUZpbGUoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGZpbGUge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlRmlsZU11dGF0aW9uIHtcbiAgdXBkYXRlRmlsZToge1xuICAgIGZpbGU6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IFVwZGF0ZUZpbGVNdXRhdGlvbiA9IGdxbFR5cGVkPFVwZGF0ZUZpbGVNdXRhdGlvbj5gXG5tdXRhdGlvbiBVcGRhdGVGaWxlTXV0YXRpb24oJGlucHV0OiBVcGRhdGVGaWxlSW5wdXQhKSB7XG4gIHVwZGF0ZUZpbGUoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGZpbGUge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlRmlsZU11dGF0aW9uIHtcbiAgZGVsZXRlRmlsZToge1xuICAgIGlkOiBJRDtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBEZWxldGVGaWxlTXV0YXRpb24gPSBncWxUeXBlZDxEZWxldGVGaWxlTXV0YXRpb24+YFxubXV0YXRpb24gRGVsZXRlRmlsZU11dGF0aW9uKCRpbnB1dDogRGVsZXRlRmlsZUlucHV0ISkge1xuICBkZWxldGVGaWxlKGlucHV0OiAkaW5wdXQpIHtcbiAgICBpZFxuICB9XG59XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbiB7XG4gIGFyY2hpdmVEaXJlY3Rvcnk6IHtcbiAgICBkaXJlY3Rvcnk6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbiA9IGdxbFR5cGVkPEFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbj5gXG5tdXRhdGlvbiBBcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24oJGlucHV0OiBBcmNoaXZlRGlyZWN0b3J5SW5wdXQhKSB7XG4gIGFyY2hpdmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGRpcmVjdG9yeSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBVbmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbiB7XG4gIHVuYXJjaGl2ZURpcmVjdG9yeToge1xuICAgIGRpcmVjdG9yeToge1xuICAgICAgaWQ6IElEO1xuICAgIH07XG4gIH07XG59XG5leHBvcnQgY29uc3QgVW5hcmNoaXZlRGlyZWN0b3J5TXV0YXRpb24gPSBncWxUeXBlZDxVbmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbj5gXG5tdXRhdGlvbiBVbmFyY2hpdmVEaXJlY3RvcnlNdXRhdGlvbigkaW5wdXQ6IFVuYXJjaGl2ZURpcmVjdG9yeUlucHV0ISkge1xuICB1bmFyY2hpdmVEaXJlY3RvcnkoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGRpcmVjdG9yeSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb25SZXN1bHQge1xuICB1bmFyY2hpdmVEaXJlY3Rvcnk6IHtcbiAgICBkaXJlY3Rvcnk6IHtcbiAgICAgIGlkOiBJRDtcbiAgICB9O1xuICB9O1xufVxuZXhwb3J0IGNvbnN0IENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvbiA9IGdxbFR5cGVkPENoYW5nZURpcmVjdG9yeVBhcmVudHNNdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzTXV0YXRpb24oJGlucHV0OiBDaGFuZ2VEaXJlY3RvcnlQYXJlbnRzSW5wdXQhKSB7XG4gIGNoYW5nZURpcmVjdG9yeVBhcmVudHMoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGRpcmVjdG9yeSB7XG4gICAgICBpZFxuICAgIH1cbiAgfVxufVxuYDtcblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uUmVzdWx0IHtcbiAgdW5hcmNoaXZlRGlyZWN0b3J5OiB7XG4gICAgZGlyZWN0b3J5OiB7XG4gICAgICBpZDogSUQ7XG4gICAgfTtcbiAgfTtcbn1cbmV4cG9ydCBjb25zdCBDaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uID0gZ3FsVHlwZWQ8Q2hhbmdlRmlsZVBhcmVudHNNdXRhdGlvblJlc3VsdD5gXG5tdXRhdGlvbiBDaGFuZ2VGaWxlUGFyZW50c011dGF0aW9uKCRpbnB1dDogQ2hhbmdlRmlsZVBhcmVudHNJbnB1dCEpIHtcbiAgY2hhbmdlRmlsZVBhcmVudHMoaW5wdXQ6ICRpbnB1dCkge1xuICAgIGZpbGUge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbn1cbmA7XG4iXX0=