@lifeready/core 0.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +62 -0
  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 +2 -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 +333 -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 +266 -0
  98. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
  99. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +300 -0
  100. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
  101. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
  102. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
  103. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
  104. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
  105. package/esm2015/lib/users/profile-details.service.js +214 -0
  106. package/esm2015/lib/users/profile.gql.js +97 -0
  107. package/esm2015/lib/users/profile.service.js +169 -0
  108. package/esm2015/lib/users/profile.types.js +34 -0
  109. package/esm2015/lib/users/user.gql.js +60 -0
  110. package/esm2015/lib/users/user.service.js +79 -0
  111. package/esm2015/lib/users/user.types.js +5 -0
  112. package/esm2015/lifeready-core.js +10 -0
  113. package/esm2015/public-api.js +81 -0
  114. package/fesm2015/lifeready-core.js +13290 -0
  115. package/fesm2015/lifeready-core.js.map +1 -0
  116. package/lib/_common/ast.d.ts +11 -0
  117. package/lib/_common/deferred-promise.d.ts +12 -0
  118. package/lib/_common/exceptions.d.ts +109 -0
  119. package/lib/_common/queries.gql.d.ts +10 -0
  120. package/lib/_common/run-outside-angular.d.ts +14 -0
  121. package/lib/_common/types.d.ts +10 -0
  122. package/lib/_common/utils.d.ts +3 -0
  123. package/lib/api/contact-card.gql.d.ts +7 -0
  124. package/lib/api/contact-card.service.d.ts +52 -0
  125. package/lib/api/contact-card2.gql.d.ts +34 -0
  126. package/lib/api/contact-card2.service.d.ts +49 -0
  127. package/lib/api/file.service.d.ts +18 -0
  128. package/lib/api/item2.gql.d.ts +96 -0
  129. package/lib/api/item2.service.d.ts +177 -0
  130. package/lib/api/key-exchange.gql.d.ts +9 -0
  131. package/lib/api/key-exchange.service.d.ts +39 -0
  132. package/lib/api/key-exchange.types.d.ts +196 -0
  133. package/lib/api/key-exchange2.gql.d.ts +125 -0
  134. package/lib/api/key-exchange2.service.d.ts +187 -0
  135. package/lib/api/lock.gql.d.ts +27 -0
  136. package/lib/api/lock.service.d.ts +25 -0
  137. package/lib/api/lr-apollo.service.d.ts +15 -0
  138. package/lib/api/lr-graphql/index.d.ts +5 -0
  139. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
  140. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
  141. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
  142. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
  143. package/lib/api/lr-graphql/lr.service.d.ts +9 -0
  144. package/lib/api/message.service.d.ts +58 -0
  145. package/lib/api/persist.service.d.ts +31 -0
  146. package/lib/api/query-processor/common-processors.service.d.ts +36 -0
  147. package/lib/api/query-processor/index.d.ts +2 -0
  148. package/lib/api/query-processor/query-processor.service.d.ts +18 -0
  149. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
  150. package/lib/api/shared-contact-card.service.d.ts +33 -0
  151. package/lib/api/shared-contact-card2.gql.d.ts +36 -0
  152. package/lib/api/shared-contact-card2.service.d.ts +45 -0
  153. package/lib/api/time.service.d.ts +16 -0
  154. package/lib/api/types/graphql.types.d.ts +29 -0
  155. package/lib/api/types/index.d.ts +2 -0
  156. package/lib/api/types/lr-graphql.types.d.ts +385 -0
  157. package/lib/auth/auth.config.d.ts +5 -0
  158. package/lib/auth/auth.gql.d.ts +15 -0
  159. package/lib/auth/auth.types.d.ts +66 -0
  160. package/lib/auth/idle.service.d.ts +40 -0
  161. package/lib/auth/idle.types.d.ts +10 -0
  162. package/lib/auth/lbop.service.d.ts +91 -0
  163. package/lib/auth/life-ready-auth.service.d.ts +46 -0
  164. package/lib/auth/password.service.d.ts +78 -0
  165. package/lib/auth/register.service.d.ts +25 -0
  166. package/lib/auth/two-factor.service.d.ts +15 -0
  167. package/lib/category/category-meta.service.d.ts +23 -0
  168. package/lib/category/category.gql.d.ts +45 -0
  169. package/lib/category/category.service.d.ts +67 -0
  170. package/lib/category/category.types.d.ts +79 -0
  171. package/lib/cryptography/cryptography.types.d.ts +83 -0
  172. package/lib/cryptography/encryption.service.d.ts +41 -0
  173. package/lib/cryptography/key-factory.service.d.ts +38 -0
  174. package/lib/cryptography/key-graph.service.d.ts +33 -0
  175. package/lib/cryptography/key-meta.service.d.ts +44 -0
  176. package/lib/cryptography/key.service.d.ts +36 -0
  177. package/lib/cryptography/slip39.service.d.ts +43 -0
  178. package/lib/cryptography/web-crypto.service.d.ts +5 -0
  179. package/lib/life-ready.config.d.ts +14 -0
  180. package/lib/life-ready.module.d.ts +5 -0
  181. package/lib/plan/plan.gql.d.ts +11 -0
  182. package/lib/plan/plan.service.d.ts +33 -0
  183. package/lib/plan/plan.types.d.ts +31 -0
  184. package/lib/record/record-attachment.service.d.ts +16 -0
  185. package/lib/record/record.gql.d.ts +14 -0
  186. package/lib/record/record.service.d.ts +25 -0
  187. package/lib/record/record.types.d.ts +57 -0
  188. package/lib/record-type/record-type.service.d.ts +11 -0
  189. package/lib/record-type/record-type.types.d.ts +50 -0
  190. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
  191. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
  192. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
  193. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
  194. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
  195. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
  196. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
  197. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
  198. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
  199. package/lib/scenario/scenario-setup.service.d.ts +22 -0
  200. package/lib/scenario/scenario.gql.d.ts +34 -0
  201. package/lib/scenario/scenario.service.d.ts +58 -0
  202. package/lib/scenario/scenario.types.d.ts +217 -0
  203. package/lib/search/search.gql.d.ts +1 -0
  204. package/lib/search/search.service.d.ts +25 -0
  205. package/lib/search/search.types.d.ts +20 -0
  206. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
  207. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +41 -0
  208. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
  209. package/lib/trusted-parties/tp-password-reset.service.d.ts +131 -0
  210. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
  211. package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
  212. package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
  213. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
  214. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
  215. package/lib/users/profile-details.service.d.ts +21 -0
  216. package/lib/users/profile.gql.d.ts +11 -0
  217. package/lib/users/profile.service.d.ts +35 -0
  218. package/lib/users/profile.types.d.ts +96 -0
  219. package/lib/users/user.gql.d.ts +9 -0
  220. package/lib/users/user.service.d.ts +12 -0
  221. package/lib/users/user.types.d.ts +23 -0
  222. package/lifeready-core.d.ts +9 -0
  223. package/lifeready-core.metadata.json +1 -0
  224. package/package.json +29 -0
  225. package/public-api.d.ts +77 -0
@@ -0,0 +1,64 @@
1
+ // Glossary
2
+ // - Subject: the user that the scenario applies to
3
+ // - Approver: the user that can approve a scenario
4
+ // - Approver sub-assembly: a group of approvers that must reach quorum for the sub-assembly to be considered approved
5
+ // - Approver assembly: a group of sub-assemblies that must reach quorum for the assembly to be considered approved
6
+ // - Receiver: a user that will receive the released information
7
+ // - Claimant: a user that can start the process of release of information
8
+ export var ScenarioState;
9
+ (function (ScenarioState) {
10
+ // Can not be claimed when DISABLED. Scenarios can be created in this state, then
11
+ // set to ENABLED once setup is complete.
12
+ ScenarioState["DISABLED"] = "DISABLED";
13
+ // Can be claimed when ENABLED. It sits in this state until claimed.
14
+ ScenarioState["ENABLED"] = "ENABLED";
15
+ // Claimant has initiated a claim.
16
+ ScenarioState["CLAIMED"] = "CLAIMED";
17
+ // Approvers have approved this scenario
18
+ ScenarioState["APPROVED"] = "APPROVED";
19
+ ScenarioState["REJECTED"] = "REJECTED";
20
+ })(ScenarioState || (ScenarioState = {}));
21
+ export var ScenarioClaimState;
22
+ (function (ScenarioClaimState) {
23
+ ScenarioClaimState["Claimed"] = "CLAIMED";
24
+ ScenarioClaimState["Approved"] = "APPROVED";
25
+ ScenarioClaimState["Expired"] = "EXPIRED";
26
+ ScenarioClaimState["Rejected"] = "REJECTED";
27
+ ScenarioClaimState["Cancelled"] = "CANCELLED";
28
+ ScenarioClaimState["Reset"] = "RESET";
29
+ })(ScenarioClaimState || (ScenarioClaimState = {}));
30
+ export var ApproverClaimState;
31
+ (function (ApproverClaimState) {
32
+ ApproverClaimState["Claimed"] = "CLAIMED";
33
+ ApproverClaimState["Approved"] = "APPROVED";
34
+ ApproverClaimState["Rejected"] = "REJECTED";
35
+ })(ApproverClaimState || (ApproverClaimState = {}));
36
+ export class NewScenario {
37
+ }
38
+ export class NewScenarioClaimant {
39
+ }
40
+ export class NewScenarioApprovalGroup {
41
+ }
42
+ export class NewScenarioApprover {
43
+ }
44
+ export class NewScenarioReceiver {
45
+ }
46
+ export class UpdateScenario {
47
+ }
48
+ export class UpdatedScenarioClaimant {
49
+ }
50
+ export class UpdatedScenarioApprovalGroup {
51
+ }
52
+ export class UpdatedScenarioApprover {
53
+ }
54
+ export class UpdatedScenarioReceiver {
55
+ }
56
+ export class ScenarioSummary {
57
+ }
58
+ export class ScenarioClaim {
59
+ }
60
+ export class SharedScenarioSummary {
61
+ }
62
+ export class SharedScenario {
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8udHlwZXMuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zY2VuYXJpby9zY2VuYXJpby50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxXQUFXO0FBQ1gsbURBQW1EO0FBQ25ELG1EQUFtRDtBQUNuRCxzSEFBc0g7QUFDdEgsbUhBQW1IO0FBQ25ILGdFQUFnRTtBQUNoRSwwRUFBMEU7QUFFMUUsTUFBTSxDQUFOLElBQVksYUFXWDtBQVhELFdBQVksYUFBYTtJQUN2QixpRkFBaUY7SUFDakYseUNBQXlDO0lBQ3pDLHNDQUFxQixDQUFBO0lBQ3JCLG9FQUFvRTtJQUNwRSxvQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBa0M7SUFDbEMsb0NBQW1CLENBQUE7SUFDbkIsd0NBQXdDO0lBQ3hDLHNDQUFxQixDQUFBO0lBQ3JCLHNDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFYVyxhQUFhLEtBQWIsYUFBYSxRQVd4QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQU9YO0FBUEQsV0FBWSxrQkFBa0I7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsNkNBQXVCLENBQUE7SUFDdkIscUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBUFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQU83QjtBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIseUNBQW1CLENBQUE7SUFDbkIsMkNBQXFCLENBQUE7SUFDckIsMkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRCxNQUFNLE9BQU8sV0FBVztDQU12QjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FJL0I7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0NBS3BDO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtDQUkvQjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FLL0I7QUFFRCxNQUFNLE9BQU8sY0FBYztDQVkxQjtBQUVELE1BQU0sT0FBTyx1QkFBdUI7Q0FNbkM7QUFFRCxNQUFNLE9BQU8sNEJBQTRCO0NBT3hDO0FBRUQsTUFBTSxPQUFPLHVCQUF1QjtDQU1uQztBQUVELE1BQU0sT0FBTyx1QkFBdUI7Q0FPbkM7QUFFRCxNQUFNLE9BQU8sZUFBZTtDQVMzQjtBQUVELE1BQU0sT0FBTyxhQUFhO0NBT3pCO0FBRUQsTUFBTSxPQUFPLHFCQUFxQjtDQU9qQztBQUVELE1BQU0sT0FBTyxjQUFjO0NBaUIxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZXBhcmVkUGVybWlzc2lvbnMgfSBmcm9tICcuLi9hcGkva2V5LWV4Y2hhbmdlLnR5cGVzJztcclxuaW1wb3J0IHsgS2V5IH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2NyeXB0b2dyYXBoeS50eXBlcyc7XHJcbmltcG9ydCB7IFNlY3JldFNoYXJlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L3NsaXAzOS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJ1c3RlZFBhcnR5IH0gZnJvbSAnLi4vdHJ1c3RlZC1wYXJ0aWVzL3RydXN0ZWQtcGFydHkudHlwZXMnO1xyXG5pbXBvcnQgeyBBcHByb3ZhbEdyb3VwIH0gZnJvbSAnLi9hcHByb3ZhbHMvc2NlbmFyaW8tYXBwcm92YWwudHlwZXMnO1xyXG5pbXBvcnQgeyBDbGFpbWFudCB9IGZyb20gJy4vY2xhaW1hbnRzL3NjZW5hcmlvLWNsYWltYW50LnR5cGVzJztcclxuaW1wb3J0IHsgUmVjZWl2ZXIgfSBmcm9tICcuL3JlY2VpdmVycy9zY2VuYXJpby1yZWNlaXZlci50eXBlcyc7XHJcblxyXG4vLyBHbG9zc2FyeVxyXG4vLyAtIFN1YmplY3Q6IHRoZSB1c2VyIHRoYXQgdGhlIHNjZW5hcmlvIGFwcGxpZXMgdG9cclxuLy8gLSBBcHByb3ZlcjogdGhlIHVzZXIgdGhhdCBjYW4gYXBwcm92ZSBhIHNjZW5hcmlvXHJcbi8vIC0gQXBwcm92ZXIgc3ViLWFzc2VtYmx5OiBhIGdyb3VwIG9mIGFwcHJvdmVycyB0aGF0IG11c3QgcmVhY2ggcXVvcnVtIGZvciB0aGUgc3ViLWFzc2VtYmx5IHRvIGJlIGNvbnNpZGVyZWQgYXBwcm92ZWRcclxuLy8gLSBBcHByb3ZlciBhc3NlbWJseTogYSBncm91cCBvZiBzdWItYXNzZW1ibGllcyB0aGF0IG11c3QgcmVhY2ggcXVvcnVtIGZvciB0aGUgYXNzZW1ibHkgdG8gYmUgY29uc2lkZXJlZCBhcHByb3ZlZFxyXG4vLyAtIFJlY2VpdmVyOiBhIHVzZXIgdGhhdCB3aWxsIHJlY2VpdmUgdGhlIHJlbGVhc2VkIGluZm9ybWF0aW9uXHJcbi8vIC0gQ2xhaW1hbnQ6IGEgdXNlciB0aGF0IGNhbiBzdGFydCB0aGUgcHJvY2VzcyBvZiByZWxlYXNlIG9mIGluZm9ybWF0aW9uXHJcblxyXG5leHBvcnQgZW51bSBTY2VuYXJpb1N0YXRlIHtcclxuICAvLyBDYW4gbm90IGJlIGNsYWltZWQgd2hlbiBESVNBQkxFRC4gU2NlbmFyaW9zIGNhbiBiZSBjcmVhdGVkIGluIHRoaXMgc3RhdGUsIHRoZW5cclxuICAvLyBzZXQgdG8gRU5BQkxFRCBvbmNlIHNldHVwIGlzIGNvbXBsZXRlLlxyXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcclxuICAvLyBDYW4gYmUgY2xhaW1lZCB3aGVuIEVOQUJMRUQuIEl0IHNpdHMgaW4gdGhpcyBzdGF0ZSB1bnRpbCBjbGFpbWVkLlxyXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXHJcbiAgLy8gQ2xhaW1hbnQgaGFzIGluaXRpYXRlZCBhIGNsYWltLlxyXG4gIENMQUlNRUQgPSAnQ0xBSU1FRCcsXHJcbiAgLy8gQXBwcm92ZXJzIGhhdmUgYXBwcm92ZWQgdGhpcyBzY2VuYXJpb1xyXG4gIEFQUFJPVkVEID0gJ0FQUFJPVkVEJyxcclxuICBSRUpFQ1RFRCA9ICdSRUpFQ1RFRCcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNjZW5hcmlvQ2xhaW1TdGF0ZSB7XHJcbiAgQ2xhaW1lZCA9ICdDTEFJTUVEJyxcclxuICBBcHByb3ZlZCA9ICdBUFBST1ZFRCcsXHJcbiAgRXhwaXJlZCA9ICdFWFBJUkVEJyxcclxuICBSZWplY3RlZCA9ICdSRUpFQ1RFRCcsXHJcbiAgQ2FuY2VsbGVkID0gJ0NBTkNFTExFRCcsXHJcbiAgUmVzZXQgPSAnUkVTRVQnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBBcHByb3ZlckNsYWltU3RhdGUge1xyXG4gIENsYWltZWQgPSAnQ0xBSU1FRCcsXHJcbiAgQXBwcm92ZWQgPSAnQVBQUk9WRUQnLFxyXG4gIFJlamVjdGVkID0gJ1JFSkVDVEVEJyxcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5ld1NjZW5hcmlvIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZXZlbnQ6IHN0cmluZztcclxuICBjbGFpbWFudHM6IE5ld1NjZW5hcmlvQ2xhaW1hbnRbXTtcclxuICBhcHByb3ZhbEdyb3VwczogTmV3U2NlbmFyaW9BcHByb3ZhbEdyb3VwW107XHJcbiAgcmVjZWl2ZXJzOiBOZXdTY2VuYXJpb1JlY2VpdmVyW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOZXdTY2VuYXJpb0NsYWltYW50IHtcclxuICB0cnVzdGVkUGFydHlJZDogc3RyaW5nO1xyXG4gIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5ld1NjZW5hcmlvQXBwcm92YWxHcm91cCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHF1b3J1bTogbnVtYmVyO1xyXG4gIHNpbmdsZVJlamVjdDogYm9vbGVhbjtcclxuICBhcHByb3ZlcnM6IE5ld1NjZW5hcmlvQXBwcm92ZXJbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5ld1NjZW5hcmlvQXBwcm92ZXIge1xyXG4gIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmc7XHJcbiAgdHJ1c3RlZFBhcnR5U2hhcmVkS2V5SWQ6IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTmV3U2NlbmFyaW9SZWNlaXZlciB7XHJcbiAgdHJ1c3RlZFBhcnR5SWQ6IHN0cmluZztcclxuICB0cnVzdGVkUGFydHlTaGFyZWRLZXlJZDogc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25zOiBQcmVwYXJlZFBlcm1pc3Npb25zO1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVcGRhdGVTY2VuYXJpbyB7XHJcbiAgc2NlbmFyaW9JZDogc3RyaW5nO1xyXG4gIGtleUlkOiBzdHJpbmc7XHJcbiAgYXNzZW1ibHlLZXlJZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBldmVudDogc3RyaW5nO1xyXG4gIGNsYWltYW50czogVXBkYXRlZFNjZW5hcmlvQ2xhaW1hbnRbXTtcclxuICBkZWxldGVkQ2xhaW1hbnRJZHM6IHN0cmluZ1tdO1xyXG4gIGFwcHJvdmFsR3JvdXBzOiBVcGRhdGVkU2NlbmFyaW9BcHByb3ZhbEdyb3VwW107XHJcbiAgZGVsZXRlZEdyb3VwSWRzOiBzdHJpbmdbXTtcclxuICByZWNlaXZlcnM6IFVwZGF0ZWRTY2VuYXJpb1JlY2VpdmVyW107XHJcbiAgZGVsZXRlZFJlY2VpdmVySWRzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVwZGF0ZWRTY2VuYXJpb0NsYWltYW50IHtcclxuICBjbGFpbWFudElkPzogc3RyaW5nO1xyXG4gIGtleUlkPzogc3RyaW5nO1xyXG4gIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmc7XHJcbiAgdHJ1c3RlZFBhcnR5U2hhcmVkS2V5SWQ6IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXBkYXRlZFNjZW5hcmlvQXBwcm92YWxHcm91cCB7XHJcbiAgc3ViQXNzZW1ibHlJZD86IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcXVvcnVtOiBudW1iZXI7XHJcbiAgc2luZ2xlUmVqZWN0OiBib29sZWFuO1xyXG4gIGFwcHJvdmVyczogVXBkYXRlZFNjZW5hcmlvQXBwcm92ZXJbXTtcclxuICBkZWxldGVkQXBwcm92ZXJJZHM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXBkYXRlZFNjZW5hcmlvQXBwcm92ZXIge1xyXG4gIGFwcHJvdmVySWQ/OiBzdHJpbmc7XHJcbiAga2V5SWQ/OiBzdHJpbmc7XHJcbiAgdHJ1c3RlZFBhcnR5SWQ6IHN0cmluZztcclxuICB0cnVzdGVkUGFydHlTaGFyZWRLZXlJZDogc3RyaW5nO1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBVcGRhdGVkU2NlbmFyaW9SZWNlaXZlciB7XHJcbiAgcmVjZWl2ZXJJZD86IHN0cmluZztcclxuICBrZXlJZD86IHN0cmluZztcclxuICB0cnVzdGVkUGFydHlJZDogc3RyaW5nO1xyXG4gIHRydXN0ZWRQYXJ0eVNoYXJlZEtleUlkOiBzdHJpbmc7XHJcbiAgcGVybWlzc2lvbnM6IFByZXBhcmVkUGVybWlzc2lvbnM7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjZW5hcmlvU3VtbWFyeSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzdGF0dXM6IFNjZW5hcmlvU3RhdGU7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGV2ZW50OiBzdHJpbmc7XHJcbiAgY2xhaW1JZD86IHN0cmluZztcclxuICBjbGFpbVN0YXR1cz86IFNjZW5hcmlvQ2xhaW1TdGF0ZTtcclxuICBjcmVhdGVkT246IHN0cmluZyB8IERhdGU7XHJcbiAgbGFzdE1vZGlmaWVkOiBzdHJpbmcgfCBEYXRlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2NlbmFyaW9DbGFpbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzdGF0ZTogU2NlbmFyaW9DbGFpbVN0YXRlO1xyXG4gIHRyaWdnZXJlZEJ5OiBUcnVzdGVkUGFydHk7XHJcbiAgdHJpZ2dlcmVkT246IHN0cmluZztcclxuICBsYXN0TW9kaWZpZWQ6IHN0cmluZztcclxuICBzY2VuYXJpbzogU2NlbmFyaW9TdW1tYXJ5O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2hhcmVkU2NlbmFyaW9TdW1tYXJ5IHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHN0YXR1czogU2NlbmFyaW9TdGF0ZTtcclxuICBldmVudDogc3RyaW5nO1xyXG5cclxuICB0cnVzdGVkUGFydHk6IFRydXN0ZWRQYXJ0eTtcclxuICBjbGFpbVN0YXR1cz86IFNjZW5hcmlvQ2xhaW1TdGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNoYXJlZFNjZW5hcmlvIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHN0YXR1czogU2NlbmFyaW9TdGF0ZTtcclxuICBldmVudDogc3RyaW5nO1xyXG5cclxuICB0cnVzdGVkUGFydHk6IFRydXN0ZWRQYXJ0eTtcclxuICBpc0NsYWltYW50OiBib29sZWFuO1xyXG4gIGNsYWltYW50TWVzc2FnZT86IHN0cmluZztcclxuICBpc0FwcHJvdmVyOiBib29sZWFuO1xyXG4gIGFwcHJvdmVyTWVzc2FnZXM/OiBzdHJpbmdbXTtcclxuICBpc1JlY2VpdmVyOiBib29sZWFuO1xyXG4gIHJlY2VpdmVyTWVzc2FnZT86IHN0cmluZztcclxuICByZWNlaXZlcktleUlkPzogc3RyaW5nO1xyXG4gIHJlY2VpdmVyUGJrSWQ/OiBzdHJpbmc7XHJcbiAgcmVjZWl2ZXJEaXJlY3Rvcmllcz86IHsgaWQ6IHN0cmluZzsgd3JhcHBlZEl0ZW1LZXk6IHN0cmluZyB9W107XHJcblxyXG4gIGNsYWltPzogU2hhcmVkU2NlbmFyaW9DbGFpbTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRTY2VuYXJpb0NsYWltIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGlzQ2xhaW1hbnQ6IGJvb2xlYW47XHJcbiAgc3RhdHVzOiBTY2VuYXJpb0NsYWltU3RhdGU7XHJcbiAgYXNBcHByb3ZlcnM/OiBTaGFyZWRTY2VuYXJpb0NsYWltQXBwcm92ZXJbXTtcclxuICBhc1JlY2VpdmVyPzoge1xyXG4gICAgcmVjZWl2ZWQ6IGJvb2xlYW47XHJcbiAgICBjaXBoZXJzOiBzdHJpbmdbXTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNjZW5hcmlvQ2xhaW1BcHByb3ZlciB7XHJcbiAgYXBwcm92ZXJJZDogc3RyaW5nO1xyXG4gIGFwcHJvdmVyS2V5OiBzdHJpbmc7XHJcbiAgc3RhdHVzOiBBcHByb3ZlckNsYWltU3RhdGU7XHJcbiAgcmVjZWl2ZXJzOiB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgcGJrSWQ6IHN0cmluZztcclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2NlbmFyaW8ge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAga2V5SWQ6IHN0cmluZztcclxuICBhc3NlbWJseUtleUlkOiBzdHJpbmc7XHJcbiAgYXNzZW1ibHlRdW9ydW06IG51bWJlcjtcclxuICBzdGF0dXM6IFNjZW5hcmlvU3RhdGU7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGV2ZW50OiBzdHJpbmc7XHJcbiAgY2xhaW1hbnRzOiBDbGFpbWFudFtdO1xyXG4gIGFwcHJvdmVyR3JvdXBzOiBBcHByb3ZhbEdyb3VwW107XHJcbiAgcmVjZWl2ZXJzOiBSZWNlaXZlcltdO1xyXG4gIGNsYWltOiB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgc3RhdHVzOiBTY2VuYXJpb0NsYWltU3RhdGU7XHJcbiAgICBjbGFpbWFudDogQ2xhaW1hbnQ7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTY2VuYXJpb0lucHV0IHtcclxuICBwbGFpblN1YmplY3RDaXBoZXJEYXRhOiBvYmplY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2NlbmFyaW9JbnB1dCB7XHJcbiAgc2NlbmFyaW9JZDogc3RyaW5nO1xyXG4gIGtleUlkOiBzdHJpbmc7XHJcbiAgcGxhaW5TdWJqZWN0Q2lwaGVyRGF0YTogb2JqZWN0O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxBc3NlbWJseUtleSB7XHJcbiAgc2xpcDM5OiB7XHJcbiAgICBzaGFyZTogU2VjcmV0U2hhcmU7XHJcbiAgICAvLyBNYWlubHkgZm9yIGRlYnVnZ2luZy5cclxuICAgIHN1YkFzc2VtYmx5OiB7XHJcbiAgICAgIHF1b3J1bTogbnVtYmVyO1xyXG4gICAgICBzaXplOiBudW1iZXI7XHJcbiAgICB9O1xyXG4gIH07XHJcbiAgYXNzZW1ibHlLZXlQYXJhbXM6IG9iamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDbGFpbVJlY2VpdmVyIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHBiazogS2V5O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENsYWltQXBwcm92ZXIge1xyXG4gIHJlY2VpdmVyczoge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHBiazogS2V5O1xyXG4gIH1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDbGFpbUFwcHJvdmFsIHtcclxuICByZWNlaXZlclBia0NpcGhlcjogc3RyaW5nO1xyXG4gIHBsYWluUmVjZWl2ZXJQYmtDaXBoZXI6IHtcclxuICAgIHBhcnRpYWxBc3NlbWJseUtleTogUGFydGlhbEFzc2VtYmx5S2V5O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkQ2xhaW1SZWNlaXZlciB7XHJcbiAgcmVjZWl2ZWQ6IGJvb2xlYW47XHJcbiAgYXBwcm92YWxzOiBTaGFyZWRDbGFpbUFwcHJvdmFsW107XHJcbn1cclxuIl19
@@ -0,0 +1,62 @@
1
+ import gql from 'graphql-tag';
2
+ import { KeyGraphFragment } from '../_common/queries.gql';
3
+ const MAX_CATEGORY_DEPTH = 4;
4
+ const DEFAULT_CATEGORY_DEPTH = 4;
5
+ export const SearchRecordContentsQuery = gql `
6
+ query GetRecordContents(
7
+ $id: LrRelayIdInput!
8
+ $depth: Int
9
+ $first: Int
10
+ $after: String
11
+ $recordContentFilter: LrJSONFilter!
12
+ ) {
13
+ category: directory(id: $id) {
14
+ descendantDirectories(depth: $depth) {
15
+ recordContents: files(
16
+ first: $first
17
+ after: $after
18
+ plainMeta: $recordContentFilter
19
+ orderBy: "-created"
20
+ ) {
21
+ edges {
22
+ node {
23
+ currentVersion {
24
+ state {
25
+ keyId
26
+ plainMeta
27
+ cipherMeta
28
+ contentResource
29
+ }
30
+ }
31
+ nParentDirectoryLinks(n: 1) {
32
+ list {
33
+ parentDirectory {
34
+ id
35
+ keyId
36
+ created
37
+ modified
38
+ archived
39
+ plainMeta
40
+ cipherMeta
41
+ nParentDirectoryLinks(n: 3) {
42
+ list {
43
+ parentDirectory {
44
+ id
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ keyGraph {
57
+ ...KeyGraphFragment
58
+ }
59
+ }
60
+ ${KeyGraphFragment}
61
+ `;
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmdxbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy90ZXN0L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9zZWFyY2guZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQUM3QixNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUF1RHhDLGdCQUFnQjtDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XHJcbmltcG9ydCB7IEtleUdyYXBoRnJhZ21lbnQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcclxuY29uc3QgTUFYX0NBVEVHT1JZX0RFUFRIID0gNDtcclxuY29uc3QgREVGQVVMVF9DQVRFR09SWV9ERVBUSCA9IDQ7XHJcblxyXG5leHBvcnQgY29uc3QgU2VhcmNoUmVjb3JkQ29udGVudHNRdWVyeSA9IGdxbGBcclxuICBxdWVyeSBHZXRSZWNvcmRDb250ZW50cyhcclxuICAgICRpZDogTHJSZWxheUlkSW5wdXQhXHJcbiAgICAkZGVwdGg6IEludFxyXG4gICAgJGZpcnN0OiBJbnRcclxuICAgICRhZnRlcjogU3RyaW5nXHJcbiAgICAkcmVjb3JkQ29udGVudEZpbHRlcjogTHJKU09ORmlsdGVyIVxyXG4gICkge1xyXG4gICAgY2F0ZWdvcnk6IGRpcmVjdG9yeShpZDogJGlkKSB7XHJcbiAgICAgIGRlc2NlbmRhbnREaXJlY3RvcmllcyhkZXB0aDogJGRlcHRoKSB7XHJcbiAgICAgICAgcmVjb3JkQ29udGVudHM6IGZpbGVzKFxyXG4gICAgICAgICAgZmlyc3Q6ICRmaXJzdFxyXG4gICAgICAgICAgYWZ0ZXI6ICRhZnRlclxyXG4gICAgICAgICAgcGxhaW5NZXRhOiAkcmVjb3JkQ29udGVudEZpbHRlclxyXG4gICAgICAgICAgb3JkZXJCeTogXCItY3JlYXRlZFwiXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBlZGdlcyB7XHJcbiAgICAgICAgICAgIG5vZGUge1xyXG4gICAgICAgICAgICAgIGN1cnJlbnRWZXJzaW9uIHtcclxuICAgICAgICAgICAgICAgIHN0YXRlIHtcclxuICAgICAgICAgICAgICAgICAga2V5SWRcclxuICAgICAgICAgICAgICAgICAgcGxhaW5NZXRhXHJcbiAgICAgICAgICAgICAgICAgIGNpcGhlck1ldGFcclxuICAgICAgICAgICAgICAgICAgY29udGVudFJlc291cmNlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIG5QYXJlbnREaXJlY3RvcnlMaW5rcyhuOiAxKSB7XHJcbiAgICAgICAgICAgICAgICBsaXN0IHtcclxuICAgICAgICAgICAgICAgICAgcGFyZW50RGlyZWN0b3J5IHtcclxuICAgICAgICAgICAgICAgICAgICBpZFxyXG4gICAgICAgICAgICAgICAgICAgIGtleUlkXHJcbiAgICAgICAgICAgICAgICAgICAgY3JlYXRlZFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkXHJcbiAgICAgICAgICAgICAgICAgICAgYXJjaGl2ZWRcclxuICAgICAgICAgICAgICAgICAgICBwbGFpbk1ldGFcclxuICAgICAgICAgICAgICAgICAgICBjaXBoZXJNZXRhXHJcbiAgICAgICAgICAgICAgICAgICAgblBhcmVudERpcmVjdG9yeUxpbmtzKG46IDMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGxpc3Qge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnREaXJlY3Rvcnkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGtleUdyYXBoIHtcclxuICAgICAgLi4uS2V5R3JhcGhGcmFnbWVudFxyXG4gICAgfVxyXG4gIH1cclxuICAke0tleUdyYXBoRnJhZ21lbnR9XHJcbmA7XHJcbiJdfQ==
@@ -0,0 +1,156 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable, NgZone } from '@angular/core';
3
+ import { LrApolloService } from '../api/lr-apollo.service';
4
+ import { CategoryService } from '../category/category.service';
5
+ import { KeyGraphService } from '../cryptography/key-graph.service';
6
+ import { RecordFieldType } from '../record-type/record-type.types';
7
+ import { RecordContentFilter } from '../record/record.gql';
8
+ import { RunOutsideAngular } from '../_common/run-outside-angular';
9
+ import { SearchRecordContentsQuery } from './search.gql';
10
+ import { SearchItemType } from './search.types';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../api/lr-apollo.service";
13
+ import * as i2 from "../category/category.service";
14
+ import * as i3 from "../cryptography/key-graph.service";
15
+ function debugPopulateCategory(categoryService, recordService, keyFactory, categoryId, recordsPerCategory) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ const tasks = [];
18
+ const category = yield categoryService.getCategory(categoryId);
19
+ // Create records
20
+ for (let i = category.records.length; i < recordsPerCategory; ++i) {
21
+ const name = `${category.category.name}+${keyFactory.randomString(16)}`;
22
+ console.log('Creating record: ', name);
23
+ yield recordService.createRecord({
24
+ categoryIds: [category.category.id],
25
+ name,
26
+ recordType: {
27
+ id: '1',
28
+ version: 1,
29
+ name: 'Vehicle Details',
30
+ },
31
+ fields: [
32
+ {
33
+ id: '1-vin',
34
+ type: RecordFieldType.Text,
35
+ label: 'VIN Number',
36
+ value: '1234567890',
37
+ },
38
+ {
39
+ id: '1-location',
40
+ type: RecordFieldType.Text,
41
+ label: 'Location',
42
+ value: '10'.repeat(1000),
43
+ },
44
+ ],
45
+ });
46
+ }
47
+ // Delete records
48
+ for (let i = category.records.length; i > recordsPerCategory; --i) {
49
+ const id = category.records[i - 1].id;
50
+ console.log('Deleting record: ', id);
51
+ yield recordService.deleteRecord(id);
52
+ }
53
+ });
54
+ }
55
+ export function debugPopulateRecords(categoryService, recordService, keyFactory, recordsPerCategory) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ const pillars = yield categoryService.getCategories();
58
+ // For each category, added records
59
+ for (const pillar of pillars) {
60
+ const category = yield categoryService.getCategory(pillar.id);
61
+ for (const subCategory of category.subCategories) {
62
+ if (subCategory.allowRecords) {
63
+ yield debugPopulateCategory(categoryService, recordService, keyFactory, subCategory.id, recordsPerCategory);
64
+ }
65
+ }
66
+ }
67
+ });
68
+ }
69
+ let SearchService = class SearchService {
70
+ constructor(ngZone, lrApollo, categoryService, keyGraph) {
71
+ this.ngZone = ngZone;
72
+ this.lrApollo = lrApollo;
73
+ this.categoryService = categoryService;
74
+ this.keyGraph = keyGraph;
75
+ this.vaultItems = {};
76
+ }
77
+ mapRecordContent(recordContent) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const record = recordContent.nParentDirectoryLinks.list[0].parentDirectory;
80
+ const state = recordContent.currentVersion.state;
81
+ const plainCipherMeta = state.cipherMeta &&
82
+ (yield this.keyGraph.decryptFromString(state.keyId, state.cipherMeta));
83
+ return {
84
+ type: SearchItemType.RECORD,
85
+ id: record.id,
86
+ created: new Date(record.created),
87
+ modified: new Date(record.modified),
88
+ archived: record.archived,
89
+ plainMeta: state.plainMeta &&
90
+ JSON.parse(recordContent.currentVersion.state.plainMeta),
91
+ plainCipherMeta,
92
+ parentCategoryId: record.nParentDirectoryLinks.list[0].parentDirectory.id,
93
+ };
94
+ });
95
+ }
96
+ mapRecordContents(edges) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ return Promise.all(edges.map((edge) => this.mapRecordContent(edge.node)));
99
+ });
100
+ }
101
+ load() {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ const defaultVault = yield this.categoryService.getDefaultVault();
104
+ let start;
105
+ let end;
106
+ start = Date.now();
107
+ this.recordContentsResult = yield this.lrApollo.query({
108
+ query: SearchRecordContentsQuery,
109
+ variables: {
110
+ id: defaultVault.id,
111
+ depth: 5,
112
+ first: null,
113
+ after: null,
114
+ recordContentFilter: RecordContentFilter,
115
+ },
116
+ });
117
+ end = Date.now();
118
+ console.log('Search API time (s): ', (end - start) / 1000);
119
+ start = Date.now();
120
+ // try {
121
+ const items = yield this.mapRecordContents(this.recordContentsResult.category.descendantDirectories.recordContents
122
+ .edges);
123
+ for (const item of items) {
124
+ this.vaultItems[item.id] = item;
125
+ }
126
+ end = Date.now();
127
+ console.log('Search mapCategory time (s): ', (end - start) / 1000);
128
+ });
129
+ }
130
+ refresh() {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ yield this.load();
133
+ console.log(Object.values(this.vaultItems));
134
+ return this.vaultItems;
135
+ });
136
+ }
137
+ };
138
+ SearchService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SearchService_Factory() { return new SearchService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.LrApolloService), i0.ɵɵinject(i2.CategoryService), i0.ɵɵinject(i3.KeyGraphService)); }, token: SearchService, providedIn: "root" });
139
+ SearchService.decorators = [
140
+ { type: Injectable, args: [{
141
+ providedIn: 'root',
142
+ },] }
143
+ ];
144
+ SearchService.ctorParameters = () => [
145
+ { type: NgZone },
146
+ { type: LrApolloService },
147
+ { type: CategoryService },
148
+ { type: KeyGraphService }
149
+ ];
150
+ SearchService = __decorate([
151
+ RunOutsideAngular({
152
+ ngZoneName: 'ngZone',
153
+ })
154
+ ], SearchService);
155
+ export { SearchService };
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUU1RCxTQUFlLHFCQUFxQixDQUNsQyxlQUFnQyxFQUNoQyxhQUE0QixFQUM1QixVQUE2QixFQUM3QixVQUFrQixFQUNsQixrQkFBMEI7O1FBRTFCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQWUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0QsaUJBQWlCO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ2pFLE1BQU0sSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksVUFBVSxD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O1lBRWYsZUFBZTs7QUF3RlgsYUFBYTtJQU56QixpQkFBaUIsQ0FBQztRQUNqQixVQUFVLEVBQUUsUUFBUTtLQUNyQixDQUFDO0dBSVcsYUFBYSxDQWlGekI7U0FqRlksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMckFwb2xsb1NlcnZpY2UgfSBmcm9tICcuLi9hcGkvbHItYXBvbGxvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWZhY3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZ3JhcGguc2VydmljZSc7XHJcbmltcG9ydCB7IFJlY29yZEZpZWxkVHlwZSB9IGZyb20gJy4uL3JlY29yZC10eXBlL3JlY29yZC10eXBlLnR5cGVzJztcclxuaW1wb3J0IHsgUmVjb3JkQ29udGVudEZpbHRlciB9IGZyb20gJy4uL3JlY29yZC9yZWNvcmQuZ3FsJztcclxuaW1wb3J0IHsgUmVjb3JkU2VydmljZSB9IGZyb20gJy4uL3JlY29yZC9yZWNvcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHsgU2VhcmNoUmVjb3JkQ29udGVudHNRdWVyeSB9IGZyb20gJy4vc2VhcmNoLmdxbCc7XHJcbmltcG9ydCB7IFNlYXJjaEl0ZW0sIFNlYXJjaEl0ZW1UeXBlIH0gZnJvbSAnLi9zZWFyY2gudHlwZXMnO1xyXG5cclxuYXN5bmMgZnVuY3Rpb24gZGVidWdQb3B1bGF0ZUNhdGVnb3J5KFxyXG4gIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlLFxyXG4gIHJlY29yZFNlcnZpY2U6IFJlY29yZFNlcnZpY2UsXHJcbiAga2V5RmFjdG9yeTogS2V5RmFjdG9yeVNlcnZpY2UsXHJcbiAgY2F0ZWdvcnlJZDogc3RyaW5nLFxyXG4gIHJlY29yZHNQZXJDYXRlZ29yeTogbnVtYmVyXHJcbikge1xyXG4gIGNvbnN0IHRhc2tzID0gW107XHJcblxyXG4gIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3J5KGNhdGVnb3J5SWQpO1xyXG5cclxuICAvLyBDcmVhdGUgcmVjb3Jkc1xyXG4gIGZvciAobGV0IGkgPSBjYXRlZ29yeS5yZWNvcmRzLmxlbmd0aDsgaSA8IHJlY29yZHNQZXJDYXRlZ29yeTsgKytpKSB7XHJcbiAgICBjb25zdCBuYW1lID0gYCR7Y2F0ZWdvcnkuY2F0ZWdvcnkubmFtZX0rJHtrZXlGYWN0b3J5LnJhbmRvbVN0cmluZygxNil9YDtcclxuICAgIGNvbnNvbGUubG9nKCdDcmVhdGluZyByZWNvcmQ6ICcsIG5hbWUpO1xyXG4gICAgYXdhaXQgcmVjb3JkU2VydmljZS5jcmVhdGVSZWNvcmQoe1xyXG4gICAgICBjYXRlZ29yeUlkczogW2NhdGVnb3J5LmNhdGVnb3J5LmlkXSxcclxuICAgICAgbmFtZSxcclxuICAgICAgcmVjb3JkVHlwZToge1xyXG4gICAgICAgIGlkOiAnMScsXHJcbiAgICAgICAgdmVyc2lvbjogMSxcclxuICAgICAgICBuYW1lOiAnVmVoaWNsZSBEZXRhaWxzJyxcclxuICAgICAgfSxcclxuICAgICAgZmllbGRzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWQ6ICcxLXZpbicsXHJcbiAgICAgICAgICB0eXBlOiBSZWNvcmRGaWVsZFR5cGUuVGV4dCxcclxuICAgICAgICAgIGxhYmVsOiAnVklOIE51bWJlcicsXHJcbiAgICAgICAgICB2YWx1ZTogJzEyMzQ1Njc4OTAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaWQ6ICcxLWxvY2F0aW9uJyxcclxuICAgICAgICAgIHR5cGU6IFJlY29yZEZpZWxkVHlwZS5UZXh0LFxyXG4gICAgICAgICAgbGFiZWw6ICdMb2NhdGlvbicsXHJcbiAgICAgICAgICB2YWx1ZTogJzEwJy5yZXBlYXQoMTAwMCksXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgLy8gYXR0YWNobWVudHNcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gRGVsZXRlIHJlY29yZHNcclxuICBmb3IgKGxldCBpID0gY2F0ZWdvcnkucmVjb3Jkcy5sZW5ndGg7IGkgPiByZWNvcmRzUGVyQ2F0ZWdvcnk7IC0taSkge1xyXG4gICAgY29uc3QgaWQgPSBjYXRlZ29yeS5yZWNvcmRzW2kgLSAxXS5pZDtcclxuICAgIGNvbnNvbGUubG9nKCdEZWxldGluZyByZWNvcmQ6ICcsIGlkKTtcclxuICAgIGF3YWl0IHJlY29yZFNlcnZpY2UuZGVsZXRlUmVjb3JkKGlkKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWJ1Z1BvcHVsYXRlUmVjb3JkcyhcclxuICBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZSxcclxuICByZWNvcmRTZXJ2aWNlOiBSZWNvcmRTZXJ2aWNlLFxyXG4gIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxyXG4gIHJlY29yZHNQZXJDYXRlZ29yeTogbnVtYmVyXHJcbikge1xyXG4gIGNvbnN0IHBpbGxhcnMgPSBhd2FpdCBjYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpO1xyXG5cclxuICAvLyBGb3IgZWFjaCBjYXRlZ29yeSwgYWRkZWQgcmVjb3Jkc1xyXG4gIGZvciAoY29uc3QgcGlsbGFyIG9mIHBpbGxhcnMpIHtcclxuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3J5KHBpbGxhci5pZCk7XHJcbiAgICBmb3IgKGNvbnN0IHN1YkNhdGVnb3J5IG9mIGNhdGVnb3J5LnN1YkNhdGVnb3JpZXMpIHtcclxuICAgICAgaWYgKHN1YkNhdGVnb3J5LmFsbG93UmVjb3Jkcykge1xyXG4gICAgICAgIGF3YWl0IGRlYnVnUG9wdWxhdGVDYXRlZ29yeShcclxuICAgICAgICAgIGNhdGVnb3J5U2VydmljZSxcclxuICAgICAgICAgIHJlY29yZFNlcnZpY2UsXHJcbiAgICAgICAgICBrZXlGYWN0b3J5LFxyXG4gICAgICAgICAgc3ViQ2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgICByZWNvcmRzUGVyQ2F0ZWdvcnlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xyXG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XHJcbiAgdmF1bHRJdGVtczogeyBbaXRlbUlkOiBzdHJpbmddOiBTZWFyY2hJdGVtIH0gPSB7fTtcclxuICByZWNvcmRDb250ZW50c1Jlc3VsdDogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIGxyQXBvbGxvOiBMckFwb2xsb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNhdGVnb3J5U2VydmljZTogQ2F0ZWdvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGFzeW5jIG1hcFJlY29yZENvbnRlbnQocmVjb3JkQ29udGVudDogYW55KTogUHJvbWlzZTxTZWFyY2hJdGVtPiB7XHJcbiAgICBjb25zdCByZWNvcmQgPSByZWNvcmRDb250ZW50Lm5QYXJlbnREaXJlY3RvcnlMaW5rcy5saXN0WzBdLnBhcmVudERpcmVjdG9yeTtcclxuICAgIGNvbnN0IHN0YXRlID0gcmVjb3JkQ29udGVudC5jdXJyZW50VmVyc2lvbi5zdGF0ZTtcclxuXHJcbiAgICBjb25zdCBwbGFpbkNpcGhlck1ldGEgPVxyXG4gICAgICBzdGF0ZS5jaXBoZXJNZXRhICYmXHJcbiAgICAgIChhd2FpdCB0aGlzLmtleUdyYXBoLmRlY3J5cHRGcm9tU3RyaW5nPGFueT4oXHJcbiAgICAgICAgc3RhdGUua2V5SWQsXHJcbiAgICAgICAgc3RhdGUuY2lwaGVyTWV0YVxyXG4gICAgICApKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiBTZWFyY2hJdGVtVHlwZS5SRUNPUkQsXHJcbiAgICAgIGlkOiByZWNvcmQuaWQsXHJcbiAgICAgIGNyZWF0ZWQ6IG5ldyBEYXRlKHJlY29yZC5jcmVhdGVkKSxcclxuICAgICAgbW9kaWZpZWQ6IG5ldyBEYXRlKHJlY29yZC5tb2RpZmllZCksXHJcbiAgICAgIGFyY2hpdmVkOiByZWNvcmQuYXJjaGl2ZWQsXHJcbiAgICAgIHBsYWluTWV0YTpcclxuICAgICAgICBzdGF0ZS5wbGFpbk1ldGEgJiZcclxuICAgICAgICBKU09OLnBhcnNlKHJlY29yZENvbnRlbnQuY3VycmVudFZlcnNpb24uc3RhdGUucGxhaW5NZXRhKSxcclxuICAgICAgcGxhaW5DaXBoZXJNZXRhLFxyXG4gICAgICBwYXJlbnRDYXRlZ29yeUlkOiByZWNvcmQublBhcmVudERpcmVjdG9yeUxpbmtzLmxpc3RbMF0ucGFyZW50RGlyZWN0b3J5LmlkLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgbWFwUmVjb3JkQ29udGVudHMoZWRnZXM6IGFueVtdKTogUHJvbWlzZTxTZWFyY2hJdGVtW10+IHtcclxuICAgIHJldHVybiBQcm9taXNlLmFsbChlZGdlcy5tYXAoKGVkZ2UpID0+IHRoaXMubWFwUmVjb3JkQ29udGVudChlZGdlLm5vZGUpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGxvYWQoKSB7XHJcbiAgICBjb25zdCBkZWZhdWx0VmF1bHQgPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXREZWZhdWx0VmF1bHQoKTtcclxuICAgIGxldCBzdGFydDtcclxuICAgIGxldCBlbmQ7XHJcblxyXG4gICAgc3RhcnQgPSBEYXRlLm5vdygpO1xyXG5cclxuICAgIHRoaXMucmVjb3JkQ29udGVudHNSZXN1bHQgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PGFueT4oe1xyXG4gICAgICBxdWVyeTogU2VhcmNoUmVjb3JkQ29udGVudHNRdWVyeSxcclxuICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgaWQ6IGRlZmF1bHRWYXVsdC5pZCxcclxuICAgICAgICBkZXB0aDogNSxcclxuICAgICAgICBmaXJzdDogbnVsbCxcclxuICAgICAgICBhZnRlcjogbnVsbCxcclxuICAgICAgICByZWNvcmRDb250ZW50RmlsdGVyOiBSZWNvcmRDb250ZW50RmlsdGVyLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgZW5kID0gRGF0ZS5ub3coKTtcclxuICAgIGNvbnNvbGUubG9nKCdTZWFyY2ggQVBJIHRpbWUgKHMpOiAnLCAoZW5kIC0gc3RhcnQpIC8gMTAwMCk7XHJcblxyXG4gICAgc3RhcnQgPSBEYXRlLm5vdygpO1xyXG4gICAgLy8gdHJ5IHtcclxuICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgdGhpcy5tYXBSZWNvcmRDb250ZW50cyhcclxuICAgICAgdGhpcy5yZWNvcmRDb250ZW50c1Jlc3VsdC5jYXRlZ29yeS5kZXNjZW5kYW50RGlyZWN0b3JpZXMucmVjb3JkQ29udGVudHNcclxuICAgICAgICAuZWRnZXNcclxuICAgICk7XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgdGhpcy52YXVsdEl0ZW1zW2l0ZW0uaWRdID0gaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICBlbmQgPSBEYXRlLm5vdygpO1xyXG4gICAgY29uc29sZS5sb2coJ1NlYXJjaCBtYXBDYXRlZ29yeSB0aW1lIChzKTogJywgKGVuZCAtIHN0YXJ0KSAvIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlZnJlc2goKSB7XHJcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhPYmplY3QudmFsdWVzKHRoaXMudmF1bHRJdGVtcykpO1xyXG4gICAgcmV0dXJuIHRoaXMudmF1bHRJdGVtcztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,6 @@
1
+ export var SearchItemType;
2
+ (function (SearchItemType) {
3
+ SearchItemType["RECORD"] = "RECORD";
4
+ SearchItemType["CATEGORY"] = "CATEGORY";
5
+ })(SearchItemType || (SearchItemType = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoL3NlYXJjaC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLG1DQUFpQixDQUFBO0lBQ2pCLHVDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xyXG5cclxuZXhwb3J0IGVudW0gU2VhcmNoSXRlbVR5cGUge1xyXG4gIFJFQ09SRCA9ICdSRUNPUkQnLFxyXG4gIENBVEVHT1JZID0gJ0NBVEVHT1JZJyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZWNvcmRBdHRhY2htZW50IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBTZWFyY2hJdGVtVHlwZTtcclxuICBjcmVhdGVkOiBEYXRlO1xyXG4gIG1vZGlmaWVkOiBEYXRlO1xyXG4gIGFyY2hpdmVkOiBib29sZWFuO1xyXG4gIHBsYWluTWV0YTogYW55O1xyXG4gIHBsYWluQ2lwaGVyTWV0YTogYW55O1xyXG4gIHBhcmVudENhdGVnb3J5SWQ/OiBzdHJpbmc7XHJcbiAgYXR0YWNobWVudHM/OiBTZWFyY2hSZWNvcmRBdHRhY2htZW50W107XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFNlYXJjaFJlc3VsdHMgPSBGdXNlLkZ1c2VSZXN1bHQ8U2VhcmNoSXRlbT5bXTtcclxuIl19
@@ -0,0 +1,112 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { Injectable, Injector, NgZone } from '@angular/core';
3
+ import { JWK } from 'node-jose';
4
+ import { LrMergedMutation, LrMutation, LrService, } from '../api/lr-graphql';
5
+ import { TpAssemblyState, TpClaimApproverState } from '../api/types';
6
+ import { EncryptionService } from '../cryptography/encryption.service';
7
+ import { LrBadStateException } from '../_common/exceptions';
8
+ import { RunOutsideAngular } from '../_common/run-outside-angular';
9
+ import { ApproveTpPasswordResetRequestMutation, RejectTpPasswordResetRequestMutation, SharedTpPasswordResetQuery, SharedTpPasswordResetsQuery, } from './tp-password-reset.gql';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../cryptography/encryption.service";
12
+ let TpPasswordResetRequestService = class TpPasswordResetRequestService extends LrService {
13
+ constructor(ngZone, injector, encryptionService) {
14
+ super(injector);
15
+ this.ngZone = ngZone;
16
+ this.injector = injector;
17
+ this.encryptionService = encryptionService;
18
+ }
19
+ getSharedResets() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ return (yield this.query({
22
+ query: SharedTpPasswordResetsQuery,
23
+ })).sharedTpPasswordResets;
24
+ });
25
+ }
26
+ getSharedReset(id) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return (yield this.query({
29
+ query: SharedTpPasswordResetQuery,
30
+ variables: {
31
+ id,
32
+ },
33
+ })).sharedTpPasswordReset;
34
+ });
35
+ }
36
+ activeRequestOrRaise(sharedReset) {
37
+ const state = sharedReset.sharedRequest.claim.state;
38
+ if (state !== TpAssemblyState.CLAIMED) {
39
+ throw new LrBadStateException(`Claim is already in ${state} state.`);
40
+ }
41
+ }
42
+ rejectRequest(sharedResetId) {
43
+ return this.mutate(this.rejectRequestMutation(sharedResetId));
44
+ }
45
+ rejectRequestMutation(sharedResetId) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const sharedReset = yield this.getSharedReset(sharedResetId);
48
+ this.activeRequestOrRaise(sharedReset);
49
+ return LrMergedMutation.create(sharedReset.sharedRequest.claim.asClaimApprovers.edges
50
+ .filter((edge) => edge.node.state === TpClaimApproverState.CLAIMED)
51
+ .map((edge) => new LrMutation({
52
+ mutation: RejectTpPasswordResetRequestMutation,
53
+ variables: { input: { claimApproverId: edge.node.id } },
54
+ })));
55
+ });
56
+ }
57
+ // ?? TODO The return from this should not be any.
58
+ approveRequest(sharedResetId, pbkFingerPrint) {
59
+ return this.mutate(this.approveRequestMutation(sharedResetId, pbkFingerPrint));
60
+ }
61
+ approveRequestMutation(sharedResetId, pbkFingerPrint) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const sharedReset = yield this.getSharedReset(sharedResetId);
64
+ this.activeRequestOrRaise(sharedReset);
65
+ const pbk = yield JWK.asKey(JSON.parse(sharedReset.sharedRequest.pxk.pbk));
66
+ console.log(pbk.toJSON());
67
+ // TODO <AZ> Verify pbk against pbkFingerPrint
68
+ const claimApprovers = sharedReset.sharedRequest.claim.asClaimApprovers.edges.filter((edge) => edge.node.state === TpClaimApproverState.CLAIMED);
69
+ // A single approver may belong to multiple sub-assemblies. We approve them all here in a single
70
+ // transaction.
71
+ return LrMergedMutation.create(yield Promise.all(claimApprovers.map((approverEdge) => __awaiter(this, void 0, void 0, function* () {
72
+ const ca = approverEdge.node;
73
+ const input = {
74
+ claimApproverId: ca.id,
75
+ receiverApprovals: yield Promise.all(ca.receiverApprovals.edges.map((receiverEdge) => __awaiter(this, void 0, void 0, function* () {
76
+ const ra = receiverEdge.node;
77
+ return {
78
+ receiverApprovalId: ra.id,
79
+ receiverCipher: '',
80
+ receiverCipherPartialAssemblyKey: yield this.encryptionService.encryptToString(pbk, ca.sharedCipherPartialAssemblyKeyClearJson),
81
+ };
82
+ }))),
83
+ };
84
+ console.log(input);
85
+ return new LrMutation({
86
+ mutation: ApproveTpPasswordResetRequestMutation,
87
+ variables: {
88
+ input,
89
+ },
90
+ });
91
+ }))));
92
+ });
93
+ }
94
+ };
95
+ TpPasswordResetRequestService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TpPasswordResetRequestService_Factory() { return new TpPasswordResetRequestService(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.EncryptionService)); }, token: TpPasswordResetRequestService, providedIn: "root" });
96
+ TpPasswordResetRequestService.decorators = [
97
+ { type: Injectable, args: [{
98
+ providedIn: 'root',
99
+ },] }
100
+ ];
101
+ TpPasswordResetRequestService.ctorParameters = () => [
102
+ { type: NgZone },
103
+ { type: Injector },
104
+ { type: EncryptionService }
105
+ ];
106
+ TpPasswordResetRequestService = __decorate([
107
+ RunOutsideAngular({
108
+ ngZoneName: 'ngZone',
109
+ })
110
+ ], TpPasswordResetRequestService);
111
+ export { TpPasswordResetRequestService };
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHAtcGFzc3dvcmQtcmVzZXQtcmVxdWVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvdHJ1c3RlZC1wYXJ0aWVzL3RwLXBhc3N3b3JkLXJlc2V0LXJlcXVlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixVQUFVLEVBRVYsU0FBUyxHQUNWLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQ0wscUNBQXFDLEVBQ3JDLG9DQUFvQyxFQUNwQywwQkFBMEIsRUFDMUIsMkJBQTJCLEdBQzVCLE1BQU0seUJBQXlCLENBQUM7OztJQVFwQiw2QkFBNkIsU0FBN0IsNkJBQThCLFNBQVEsU0FBUztJQUMxRCxZQUNVLE1BQWMsRUFDZCxRQUFrQixFQUNsQixpQkFBb0M7UUFFNUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSlIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUc5QyxDQUFDO0lBRUssZUFBZTs7WUFDbkIsT0FBTyxDQUNMLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztn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eEMsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDN0IsTUFBTSxLQUFLLEdBQUc7b0JBQ1osZUFBZSxFQUFFLEVBQUUsQ0FBQyxFQUFFO29CQUN0QixpQkFBaUIsRUFBRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2xDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQU8sWUFBWSxFQUFFLEVBQUU7d0JBQ3BELE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7d0JBQzdCLE9BQU87NEJBQ0wsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLEVBQUU7NEJBQ3pCLGNBQWMsRUFBRSxFQUFFOzRCQUNsQixnQ0FBZ0MsRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQzVFLEdBQUcsRUFDSCxFQUFFLENBQUMsdUNBQXVDLENBQzNDO3lCQUNGLENBQUM7b0JBQ0osQ0FBQyxDQUFBLENBQUMsQ0FDSDtpQkFDRixDQUFDO2dCQUVGLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRW5CLE9BQU8sSUFBSSxVQUFVLENBQUM7b0JBQ3BCLFFBQVEsRUFBRSxxQ0FBcUM7b0JBQy9DLFNBQVMsRUFBRTt3QkFDVCxLQUFLO3FCQUNOO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQSxDQUFDLENBQ0gsQ0FDRixDQUFDO1FBQ0osQ0FBQztLQUFBO0NBQ0YsQ0FBQTs7O1lBcEhBLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBekI4QixNQUFNO1lBQWhCLFFBQVE7WUFVcEIsaUJBQWlCOztBQWdCYiw2QkFBNkI7SUFOekMsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLDZCQUE2QixDQWlIekM7U0FqSFksNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKV0sgfSBmcm9tICdub2RlLWpvc2UnO1xyXG5pbXBvcnQge1xyXG4gIExyR3JhcGhRTFNlcnZpY2UsXHJcbiAgTHJNZXJnZWRNdXRhdGlvbixcclxuICBMck11dGF0aW9uLFxyXG4gIExyTXV0YXRpb25CYXNlLFxyXG4gIExyU2VydmljZSxcclxufSBmcm9tICcuLi9hcGkvbHItZ3JhcGhxbCc7XHJcbmltcG9ydCB7IFRwQXNzZW1ibHlTdGF0ZSwgVHBDbGFpbUFwcHJvdmVyU3RhdGUgfSBmcm9tICcuLi9hcGkvdHlwZXMnO1xyXG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9lbmNyeXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMckJhZFN0YXRlRXhjZXB0aW9uIH0gZnJvbSAnLi4vX2NvbW1vbi9leGNlcHRpb25zJztcclxuaW1wb3J0IHsgUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuLi9fY29tbW9uL3J1bi1vdXRzaWRlLWFuZ3VsYXInO1xyXG5pbXBvcnQge1xyXG4gIEFwcHJvdmVUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXHJcbiAgUmVqZWN0VHBQYXNzd29yZFJlc2V0UmVxdWVzdE11dGF0aW9uLFxyXG4gIFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5LFxyXG4gIFNoYXJlZFRwUGFzc3dvcmRSZXNldHNRdWVyeSxcclxufSBmcm9tICcuL3RwLXBhc3N3b3JkLXJlc2V0LmdxbCc7XHJcblxyXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xyXG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHBQYXNzd29yZFJlc2V0UmVxdWVzdFNlcnZpY2UgZXh0ZW5kcyBMclNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGluamVjdG9yKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldFNoYXJlZFJlc2V0cygpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGF3YWl0IHRoaXMucXVlcnkoe1xyXG4gICAgICAgIHF1ZXJ5OiBTaGFyZWRUcFBhc3N3b3JkUmVzZXRzUXVlcnksXHJcbiAgICAgIH0pXHJcbiAgICApLnNoYXJlZFRwUGFzc3dvcmRSZXNldHM7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRTaGFyZWRSZXNldChpZCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgYXdhaXQgdGhpcy5xdWVyeSh7XHJcbiAgICAgICAgcXVlcnk6IFNoYXJlZFRwUGFzc3dvcmRSZXNldFF1ZXJ5LFxyXG4gICAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgICAgaWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgICkuc2hhcmVkVHBQYXNzd29yZFJlc2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmVSZXF1ZXN0T3JSYWlzZShzaGFyZWRSZXNldCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3RhdGUgPSBzaGFyZWRSZXNldC5zaGFyZWRSZXF1ZXN0LmNsYWltLnN0YXRlO1xyXG4gICAgaWYgKHN0YXRlICE9PSBUcEFzc2VtYmx5U3RhdGUuQ0xBSU1FRCkge1xyXG4gICAgICB0aHJvdyBuZXcgTHJCYWRTdGF0ZUV4Y2VwdGlvbihgQ2xhaW0gaXMgYWxyZWFkeSBpbiAke3N0YXRlfSBzdGF0ZS5gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlamVjdFJlcXVlc3Qoc2hhcmVkUmVzZXRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUodGhpcy5yZWplY3RSZXF1ZXN0TXV0YXRpb24oc2hhcmVkUmVzZXRJZCkpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVqZWN0UmVxdWVzdE11dGF0aW9uKHNoYXJlZFJlc2V0SWQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2hhcmVkUmVzZXQgPSBhd2FpdCB0aGlzLmdldFNoYXJlZFJlc2V0KHNoYXJlZFJlc2V0SWQpO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlUmVxdWVzdE9yUmFpc2Uoc2hhcmVkUmVzZXQpO1xyXG5cclxuICAgIHJldHVybiBMck1lcmdlZE11dGF0aW9uLmNyZWF0ZShcclxuICAgICAgc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5jbGFpbS5hc0NsYWltQXBwcm92ZXJzLmVkZ2VzXHJcbiAgICAgICAgLmZpbHRlcigoZWRnZSkgPT4gZWRnZS5ub2RlLnN0YXRlID09PSBUcENsYWltQXBwcm92ZXJTdGF0ZS5DTEFJTUVEKVxyXG4gICAgICAgIC5tYXAoXHJcbiAgICAgICAgICAoZWRnZSkgPT5cclxuICAgICAgICAgICAgbmV3IExyTXV0YXRpb24oe1xyXG4gICAgICAgICAgICAgIG11dGF0aW9uOiBSZWplY3RUcFBhc3N3b3JkUmVzZXRSZXF1ZXN0TXV0YXRpb24sXHJcbiAgICAgICAgICAgICAgdmFyaWFibGVzOiB7IGlucHV0OiB7IGNsYWltQXBwcm92ZXJJZDogZWRnZS5ub2RlLmlkIH0gfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gPz8gVE9ETyBUaGUgcmV0dXJuIGZyb20gdGhpcyBzaG91bGQgbm90IGJlIGFueS5cclxuICBhcHByb3ZlUmVxdWVzdChzaGFyZWRSZXNldElkOiBzdHJpbmcsIHBia0ZpbmdlclByaW50Pzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tdXRhdGUoXHJcbiAgICAgIHRoaXMuYXBwcm92ZVJlcXVlc3RNdXRhdGlvbihzaGFyZWRSZXNldElkLCBwYmtGaW5nZXJQcmludClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBhcHByb3ZlUmVxdWVzdE11dGF0aW9uKHNoYXJlZFJlc2V0SWQ6IHN0cmluZywgcGJrRmluZ2VyUHJpbnQ/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNoYXJlZFJlc2V0ID0gYXdhaXQgdGhpcy5nZXRTaGFyZWRSZXNldChzaGFyZWRSZXNldElkKTtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVJlcXVlc3RPclJhaXNlKHNoYXJlZFJlc2V0KTtcclxuXHJcbiAgICBjb25zdCBwYmsgPSBhd2FpdCBKV0suYXNLZXkoSlNPTi5wYXJzZShzaGFyZWRSZXNldC5zaGFyZWRSZXF1ZXN0LnB4ay5wYmspKTtcclxuICAgIGNvbnNvbGUubG9nKHBiay50b0pTT04oKSk7XHJcblxyXG4gICAgLy8gVE9ETyA8QVo+IFZlcmlmeSBwYmsgYWdhaW5zdCBwYmtGaW5nZXJQcmludFxyXG5cclxuICAgIGNvbnN0IGNsYWltQXBwcm92ZXJzID0gc2hhcmVkUmVzZXQuc2hhcmVkUmVxdWVzdC5jbGFpbS5hc0NsYWltQXBwcm92ZXJzLmVkZ2VzLmZpbHRlcihcclxuICAgICAgKGVkZ2UpID0+IGVkZ2Uubm9kZS5zdGF0ZSA9PT0gVHBDbGFpbUFwcHJvdmVyU3RhdGUuQ0xBSU1FRFxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBBIHNpbmdsZSBhcHByb3ZlciBtYXkgYmVsb25nIHRvIG11bHRpcGxlIHN1Yi1hc3NlbWJsaWVzLiBXZSBhcHByb3ZlIHRoZW0gYWxsIGhlcmUgaW4gYSBzaW5nbGVcclxuICAgIC8vIHRyYW5zYWN0aW9uLlxyXG4gICAgcmV0dXJuIExyTWVyZ2VkTXV0YXRpb24uY3JlYXRlKFxyXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgICBjbGFpbUFwcHJvdmVycy5tYXAoYXN5bmMgKGFwcHJvdmVyRWRnZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY2EgPSBhcHByb3ZlckVkZ2Uubm9kZTtcclxuICAgICAgICAgIGNvbnN0IGlucHV0ID0ge1xyXG4gICAgICAgICAgICBjbGFpbUFwcHJvdmVySWQ6IGNhLmlkLFxyXG4gICAgICAgICAgICByZWNlaXZlckFwcHJvdmFsczogYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgICAgICAgICAgY2EucmVjZWl2ZXJBcHByb3ZhbHMuZWRnZXMubWFwKGFzeW5jIChyZWNlaXZlckVkZ2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJhID0gcmVjZWl2ZXJFZGdlLm5vZGU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICByZWNlaXZlckFwcHJvdmFsSWQ6IHJhLmlkLFxyXG4gICAgICAgICAgICAgICAgICByZWNlaXZlckNpcGhlcjogJycsXHJcbiAgICAgICAgICAgICAgICAgIHJlY2VpdmVyQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5OiBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRUb1N0cmluZyhcclxuICAgICAgICAgICAgICAgICAgICBwYmssXHJcbiAgICAgICAgICAgICAgICAgICAgY2Euc2hhcmVkQ2lwaGVyUGFydGlhbEFzc2VtYmx5S2V5Q2xlYXJKc29uXHJcbiAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKGlucHV0KTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gbmV3IExyTXV0YXRpb24oe1xyXG4gICAgICAgICAgICBtdXRhdGlvbjogQXBwcm92ZVRwUGFzc3dvcmRSZXNldFJlcXVlc3RNdXRhdGlvbixcclxuICAgICAgICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgICAgICAgaW5wdXQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=