@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,40 @@
1
+ // Abstract Syntax Tree
2
+ import gql from 'graphql-tag';
3
+ import { LrBadArgumentException, LrBadLogicException } from './exceptions';
4
+ export function getAstOperation(astDocument, operation) {
5
+ const operations = astDocument.definitions.filter((def) => def.kind === 'OperationDefinition');
6
+ if (operations.length > 1) {
7
+ throw new LrBadLogicException(`There can be only one '${operation}' operation, instead there are ${operations.length}`);
8
+ }
9
+ return operations[0];
10
+ }
11
+ export function getQuery(doc) {
12
+ return getAstOperation(doc, 'query');
13
+ }
14
+ export function getMutation(doc) {
15
+ return getAstOperation(doc, 'mutation');
16
+ }
17
+ export function getFragments(doc) {
18
+ return doc.definitions.filter((def) => def.kind === 'FragmentDefinition');
19
+ }
20
+ export function getFragment(astDocument) {
21
+ const fragments = getFragments(astDocument);
22
+ if (fragments.length > 1) {
23
+ throw new LrBadArgumentException('GraphQL document can only contain one fragment.');
24
+ }
25
+ return fragments[0];
26
+ }
27
+ export function name(value) {
28
+ return {
29
+ kind: 'Name',
30
+ value,
31
+ };
32
+ }
33
+ export function getAliasOrName(field) {
34
+ var _a;
35
+ return ((_a = field.alias) === null || _a === void 0 ? void 0 : _a.value) || field.name.value;
36
+ }
37
+ export function gqlTyped(literals, ...placeholders) {
38
+ return gql(literals, ...placeholders);
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN0LmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvX2NvbW1vbi9hc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUJBQXVCO0FBVXZCLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUM5QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0UsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsV0FBVyxFQUNYLFNBQTRCO0lBRTVCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUMvQyxDQUFDLEdBQTRCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQ3JFLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3pCLE1BQU0sSUFBSSxtQkFBbUIsQ0FDM0IsMEJBQTBCLFNBQVMsa0NBQWtDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FDekYsQ0FBQztLQUNIO0lBRUQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBaUI7SUFDeEMsT0FBTyxlQUFlLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQWlCO0lBQzNDLE9BQU8sZUFBZSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFpQjtJQUM1QyxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUMzQixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxvQkFBb0IsQ0FDZixDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLFdBQXlCO0lBQ25ELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxzQkFBc0IsQ0FDOUIsaURBQWlELENBQ2xELENBQUM7S0FDSDtJQUNELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQWE7SUFDaEMsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFnQjs7SUFDN0MsT0FBTyxPQUFBLEtBQUssQ0FBQyxLQUFLLDBDQUFFLEtBQUssS0FBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztBQUNoRCxDQUFDO0FBTUQsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsUUFBa0QsRUFDbEQsR0FBRyxZQUFtQjtJQUV0QixPQUFPLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxZQUFZLENBQXlCLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFic3RyYWN0IFN5bnRheCBUcmVlXHJcblxyXG5pbXBvcnQge1xyXG4gIERvY3VtZW50Tm9kZSxcclxuICBGaWVsZE5vZGUsXHJcbiAgRnJhZ21lbnREZWZpbml0aW9uTm9kZSxcclxuICBOYW1lTm9kZSxcclxuICBPcGVyYXRpb25EZWZpbml0aW9uTm9kZSxcclxuICBPcGVyYXRpb25UeXBlTm9kZSxcclxufSBmcm9tICdncmFwaHFsJztcclxuaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XHJcbmltcG9ydCB7IExyQmFkQXJndW1lbnRFeGNlcHRpb24sIExyQmFkTG9naWNFeGNlcHRpb24gfSBmcm9tICcuL2V4Y2VwdGlvbnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFzdE9wZXJhdGlvbihcclxuICBhc3REb2N1bWVudCxcclxuICBvcGVyYXRpb246IE9wZXJhdGlvblR5cGVOb2RlXHJcbik6IE9wZXJhdGlvbkRlZmluaXRpb25Ob2RlIHtcclxuICBjb25zdCBvcGVyYXRpb25zID0gYXN0RG9jdW1lbnQuZGVmaW5pdGlvbnMuZmlsdGVyKFxyXG4gICAgKGRlZjogT3BlcmF0aW9uRGVmaW5pdGlvbk5vZGUpID0+IGRlZi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbidcclxuICApO1xyXG5cclxuICBpZiAob3BlcmF0aW9ucy5sZW5ndGggPiAxKSB7XHJcbiAgICB0aHJvdyBuZXcgTHJCYWRMb2dpY0V4Y2VwdGlvbihcclxuICAgICAgYFRoZXJlIGNhbiBiZSBvbmx5IG9uZSAnJHtvcGVyYXRpb259JyBvcGVyYXRpb24sIGluc3RlYWQgdGhlcmUgYXJlICR7b3BlcmF0aW9ucy5sZW5ndGh9YFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBvcGVyYXRpb25zWzBdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcnkoZG9jOiBEb2N1bWVudE5vZGUpOiBPcGVyYXRpb25EZWZpbml0aW9uTm9kZSB7XHJcbiAgcmV0dXJuIGdldEFzdE9wZXJhdGlvbihkb2MsICdxdWVyeScpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXV0YXRpb24oZG9jOiBEb2N1bWVudE5vZGUpOiBPcGVyYXRpb25EZWZpbml0aW9uTm9kZSB7XHJcbiAgcmV0dXJuIGdldEFzdE9wZXJhdGlvbihkb2MsICdtdXRhdGlvbicpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RnJhZ21lbnRzKGRvYzogRG9jdW1lbnROb2RlKTogRnJhZ21lbnREZWZpbml0aW9uTm9kZVtdIHtcclxuICByZXR1cm4gZG9jLmRlZmluaXRpb25zLmZpbHRlcihcclxuICAgIChkZWYpID0+IGRlZi5raW5kID09PSAnRnJhZ21lbnREZWZpbml0aW9uJ1xyXG4gICkgYXMgRnJhZ21lbnREZWZpbml0aW9uTm9kZVtdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RnJhZ21lbnQoYXN0RG9jdW1lbnQ6IERvY3VtZW50Tm9kZSk6IEZyYWdtZW50RGVmaW5pdGlvbk5vZGUge1xyXG4gIGNvbnN0IGZyYWdtZW50cyA9IGdldEZyYWdtZW50cyhhc3REb2N1bWVudCk7XHJcbiAgaWYgKGZyYWdtZW50cy5sZW5ndGggPiAxKSB7XHJcbiAgICB0aHJvdyBuZXcgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbihcclxuICAgICAgJ0dyYXBoUUwgZG9jdW1lbnQgY2FuIG9ubHkgY29udGFpbiBvbmUgZnJhZ21lbnQuJ1xyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIGZyYWdtZW50c1swXTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5hbWUodmFsdWU6IHN0cmluZyk6IE5hbWVOb2RlIHtcclxuICByZXR1cm4ge1xyXG4gICAga2luZDogJ05hbWUnLFxyXG4gICAgdmFsdWUsXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFsaWFzT3JOYW1lKGZpZWxkOiBGaWVsZE5vZGUpIHtcclxuICByZXR1cm4gZmllbGQuYWxpYXM/LnZhbHVlIHx8IGZpZWxkLm5hbWUudmFsdWU7XHJcbn1cclxuXHJcbi8vIENvbGxvY2F0ZXMgdGhlIHR5cGUgd2l0aCB0aGUgZG9jdW1lbnQuXHJcbi8qIHRzbGludDpkaXNhYmxlOm5vLWVtcHR5LWludGVyZmFjZSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkRG9jdW1lbnROb2RlPFQ+IGV4dGVuZHMgRG9jdW1lbnROb2RlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ3FsVHlwZWQ8VCA9IGFueT4oXHJcbiAgbGl0ZXJhbHM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPiB8IFJlYWRvbmx5PHN0cmluZz4sXHJcbiAgLi4ucGxhY2Vob2xkZXJzOiBhbnlbXVxyXG4pOiBUeXBlZERvY3VtZW50Tm9kZTxUPiB7XHJcbiAgcmV0dXJuIGdxbChsaXRlcmFscywgLi4ucGxhY2Vob2xkZXJzKSBhcyBUeXBlZERvY3VtZW50Tm9kZTxUPjtcclxufVxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ export class DeferredPromise {
2
+ constructor() {
3
+ /* tslint:disable: variable-name */
4
+ this._fulfilled = false;
5
+ this.promise = new Promise((resolve, reject) => {
6
+ this._resolve = resolve;
7
+ this._reject = reject;
8
+ }).finally(() => {
9
+ // finally() simply gets called on both then() and catch(). The promise
10
+ // chain continues on.
11
+ this._fulfilled = true;
12
+ });
13
+ }
14
+ get resolve() {
15
+ return this._resolve;
16
+ }
17
+ get reject() {
18
+ return this._reject;
19
+ }
20
+ get fulfilled() {
21
+ return this._fulfilled;
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXJyZWQtcHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy90ZXN0L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vZGVmZXJyZWQtcHJvbWlzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZUFBZTtJQVMxQjtRQUhBLG1DQUFtQztRQUMzQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNkLHVFQUF1RTtZQUN2RSxzQkFBc0I7WUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZXNvbHZlUHJvbWlzZTxUPiA9ICh2YWx1ZT86IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZDtcclxuZXhwb3J0IHR5cGUgUmVqZWN0UHJvbWlzZSA9IChyZWFzb24/OiBhbnkpID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVmZXJyZWRQcm9taXNlPFQ+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgcHJvbWlzZTogUHJvbWlzZTxUPjtcclxuICAvKiB0c2xpbnQ6ZGlzYWJsZTogdmFyaWFibGUtbmFtZSAqL1xyXG4gIHByaXZhdGUgX3Jlc29sdmU6IFJlc29sdmVQcm9taXNlPFQ+O1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOiB2YXJpYWJsZS1uYW1lICovXHJcbiAgcHJpdmF0ZSBfcmVqZWN0OiBSZWplY3RQcm9taXNlO1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOiB2YXJpYWJsZS1uYW1lICovXHJcbiAgcHJpdmF0ZSBfZnVsZmlsbGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5wcm9taXNlID0gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLl9yZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgICAgdGhpcy5fcmVqZWN0ID0gcmVqZWN0O1xyXG4gICAgfSkuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgIC8vIGZpbmFsbHkoKSBzaW1wbHkgZ2V0cyBjYWxsZWQgb24gYm90aCB0aGVuKCkgYW5kIGNhdGNoKCkuIFRoZSBwcm9taXNlXHJcbiAgICAgIC8vIGNoYWluIGNvbnRpbnVlcyBvbi5cclxuICAgICAgdGhpcy5fZnVsZmlsbGVkID0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc29sdmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVzb2x2ZTtcclxuICB9XHJcblxyXG4gIGdldCByZWplY3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVqZWN0O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZ1bGZpbGxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9mdWxmaWxsZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,157 @@
1
+ export function handleApolloError(errors) {
2
+ if (!errors || !errors.length)
3
+ return;
4
+ const lrErrors = errors.map((x) => ({
5
+ code: x.extensions && x.extensions.code,
6
+ source: x.extensions && x.extensions.source,
7
+ message: x.message,
8
+ debug: {
9
+ locations: x.locations,
10
+ path: x.path,
11
+ },
12
+ }));
13
+ throw new LrException(...lrErrors);
14
+ }
15
+ export class LrError {
16
+ }
17
+ export class LrException {
18
+ constructor(...errors) {
19
+ this.errors = errors;
20
+ }
21
+ toString() {
22
+ return this.errors.map((t) => JSON.stringify(t, null, 2));
23
+ }
24
+ }
25
+ export var LrApiErrorCode;
26
+ (function (LrApiErrorCode) {
27
+ LrApiErrorCode["ARCHIVED_RESOURCE"] = "ARCHIVED_RESOURCE";
28
+ LrApiErrorCode["BAD_ARGUMENT"] = "BAD_ARGUMENT";
29
+ LrApiErrorCode["BAD_SIGNATURE"] = "BAD_SIGNATURE";
30
+ LrApiErrorCode["BAD_STATE"] = "BAD_STATE";
31
+ LrApiErrorCode["CHANGED_PERMISSIONS"] = "CHANGED_PERMISSIONS";
32
+ LrApiErrorCode["CONCURRENT_ACCESS"] = "CONCURRENT_ACCESS";
33
+ LrApiErrorCode["CONFIG_ERROR"] = "CONFIG_ERROR";
34
+ LrApiErrorCode["CYCLE_DETECTED"] = "CYCLE_DETECTED";
35
+ LrApiErrorCode["EXPIRED"] = "EXPIRED";
36
+ LrApiErrorCode["INVALID_TOKEN"] = "INVALID_TOKEN";
37
+ LrApiErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
38
+ LrApiErrorCode["JSON_DECODE_ERROR"] = "JSON_DECODE_ERROR";
39
+ LrApiErrorCode["KEY_MISMATCH"] = "KEY_MISMATCH";
40
+ LrApiErrorCode["LIMIT_REACHED"] = "LIMIT_REACHED";
41
+ LrApiErrorCode["LOCKED"] = "LOCKED";
42
+ LrApiErrorCode["LOGIC_ERROR"] = "LOGIC_ERROR";
43
+ LrApiErrorCode["LR_DEBUG_ONLY"] = "LR_DEBUG_ONLY";
44
+ LrApiErrorCode["MIN_DELAY"] = "MIN_DELAY";
45
+ LrApiErrorCode["MISSING_FIELD"] = "MISSING_FIELD";
46
+ LrApiErrorCode["MISSING_FIELD_VALUE"] = "MISSING_FIELD_VALUE";
47
+ LrApiErrorCode["MISSING_QUERY_PARAM"] = "MISSING_QUERY_PARAM";
48
+ LrApiErrorCode["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
49
+ LrApiErrorCode["OBJECT_DOES_NOT_EXIST"] = "OBJECT_DOES_NOT_EXIST";
50
+ LrApiErrorCode["OBJECT_EXISTS"] = "OBJECT_EXISTS";
51
+ LrApiErrorCode["RANGE_ERROR"] = "RANGE_ERROR";
52
+ LrApiErrorCode["TRUSTED_PARTY_NOT_FOUND"] = "TRUSTED_PARTY_NOT_FOUND";
53
+ LrApiErrorCode["UNAUTHENTICATED_USER"] = "UNAUTHENTICATED_USER";
54
+ LrApiErrorCode["USER_NOT_FOUND"] = "USER_NOT_FOUND";
55
+ LrApiErrorCode["VERSION_MISMATCH"] = "VERSION_MISMATCH";
56
+ LrApiErrorCode["WRONG_PERMISSIONS"] = "WRONG_PERMISSIONS";
57
+ })(LrApiErrorCode || (LrApiErrorCode = {}));
58
+ export var LrErrorCode;
59
+ (function (LrErrorCode) {
60
+ LrErrorCode["BadTimeSync"] = "LrBadTimeSync";
61
+ LrErrorCode["ReceiveClaimMismatch"] = "LrReceiveClaimMismatch";
62
+ LrErrorCode["BadState"] = "LrBadState";
63
+ LrErrorCode["BadSignature"] = "LrBadSignature";
64
+ LrErrorCode["Auth"] = "LrAuth";
65
+ LrErrorCode["BadArgument"] = "LrBadArgument";
66
+ LrErrorCode["SuspiciousException"] = "LrSuspiciousException";
67
+ LrErrorCode["NotFound"] = "LrNotFound";
68
+ LrErrorCode["BadLogic"] = "LrBadLogicException";
69
+ LrErrorCode["CodeMismatch"] = "LrCodeMismatchException";
70
+ LrErrorCode["ConcurrentAccess"] = "LrConcurrentAccessException";
71
+ LrErrorCode["BadRequest"] = "LrBadRequestException";
72
+ LrErrorCode["Encryption"] = "LrEncryptionGoBad";
73
+ LrErrorCode["Locked"] = "LrLockedException";
74
+ })(LrErrorCode || (LrErrorCode = {}));
75
+ export class LrBadArgumentException extends LrException {
76
+ constructor(message) {
77
+ super({ code: LrErrorCode.BadArgument, message });
78
+ }
79
+ }
80
+ export class LrSuspiciousException extends LrException {
81
+ constructor(message) {
82
+ super({ code: LrErrorCode.BadArgument, message });
83
+ }
84
+ }
85
+ export class LrNotFoundException extends LrException {
86
+ constructor(message) {
87
+ super({ code: LrErrorCode.NotFound, message });
88
+ }
89
+ }
90
+ export class LrBadLogicException extends LrException {
91
+ constructor(message) {
92
+ super({ code: LrErrorCode.BadLogic, message });
93
+ }
94
+ }
95
+ export class LrCodeMismatchException extends LrException {
96
+ constructor(message) {
97
+ super({ code: LrErrorCode.CodeMismatch, message });
98
+ }
99
+ }
100
+ export class LrConcurrentAccessException extends LrException {
101
+ constructor(message) {
102
+ super({ code: LrErrorCode.ConcurrentAccess, message });
103
+ }
104
+ }
105
+ export class LrLockedException extends LrException {
106
+ constructor(message) {
107
+ super({ code: LrErrorCode.Locked, message });
108
+ }
109
+ }
110
+ export class LrBadRequestException extends LrException {
111
+ constructor(message) {
112
+ super({ code: LrErrorCode.BadRequest, message });
113
+ }
114
+ }
115
+ export class LrAuthException extends LrException {
116
+ constructor(message) {
117
+ super({ code: LrErrorCode.Auth, message });
118
+ }
119
+ }
120
+ export class LrEncryptionException extends LrException {
121
+ constructor(message) {
122
+ super({ code: LrErrorCode.Encryption, message });
123
+ }
124
+ }
125
+ export class LrUnsupportedException extends LrException {
126
+ constructor(message) {
127
+ super({
128
+ code: 'LrUnsupportedException',
129
+ message,
130
+ });
131
+ }
132
+ }
133
+ export class LrExpiredCodeException extends LrException {
134
+ constructor(message) {
135
+ super({
136
+ code: 'LrExpiredCodeException',
137
+ message,
138
+ });
139
+ }
140
+ }
141
+ export class LrExpiredException extends LrException {
142
+ constructor(message) {
143
+ super({
144
+ code: 'LrExpiredException',
145
+ message,
146
+ });
147
+ }
148
+ }
149
+ export class LrBadStateException extends LrException {
150
+ constructor(message) {
151
+ super({
152
+ code: 'LrBadStateException',
153
+ message,
154
+ });
155
+ }
156
+ }
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy90ZXN0L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vZXhjZXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBbUM7SUFDbkUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTztJQUV0QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksRUFBRSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUN2QyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU07UUFDM0MsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1FBQ2xCLEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBZ0I7WUFDN0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFnQjtTQUN6QjtLQUNGLENBQUMsQ0FBQyxDQUFDO0lBRUosTUFBTSxJQUFJLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLE9BQU8sT0FBTztDQVduQjtBQUVELE1BQU0sT0FBTyxXQUFXO0lBR3RCLFlBQVksR0FBRyxNQUFpQjtRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQUVELE1BQU0s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VztJQUNsRCxZQUFZLE9BQU87UUFDakIsS0FBSyxDQUFDO1lBQ0osSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JhcGhRTEVycm9yIH0gZnJvbSAnZ3JhcGhxbCc7XHJcbmltcG9ydCB7IGRlYnVnbG9nIH0gZnJvbSAndXRpbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQXBvbGxvRXJyb3IoZXJyb3JzOiBSZWFkb25seUFycmF5PEdyYXBoUUxFcnJvcj4pIHtcclxuICBpZiAoIWVycm9ycyB8fCAhZXJyb3JzLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBsckVycm9ycyA9IGVycm9ycy5tYXAoKHgpID0+ICh7XHJcbiAgICBjb2RlOiB4LmV4dGVuc2lvbnMgJiYgeC5leHRlbnNpb25zLmNvZGUsXHJcbiAgICBzb3VyY2U6IHguZXh0ZW5zaW9ucyAmJiB4LmV4dGVuc2lvbnMuc291cmNlLFxyXG4gICAgbWVzc2FnZTogeC5tZXNzYWdlLFxyXG4gICAgZGVidWc6IHtcclxuICAgICAgbG9jYXRpb25zOiB4LmxvY2F0aW9ucyBhcyBhbnksXHJcbiAgICAgIHBhdGg6IHgucGF0aCBhcyBzdHJpbmdbXSxcclxuICAgIH0sXHJcbiAgfSkpO1xyXG5cclxuICB0aHJvdyBuZXcgTHJFeGNlcHRpb24oLi4ubHJFcnJvcnMpO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJFcnJvciB7XHJcbiAgY29kZT86IHN0cmluZztcclxuICBzb3VyY2U/OiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG4gIGRlYnVnPzoge1xyXG4gICAgbG9jYXRpb25zOiB7XHJcbiAgICAgIGxpbmU6IG51bWJlcjtcclxuICAgICAgY29sdW1uOiBudW1iZXI7XHJcbiAgICB9W107XHJcbiAgICBwYXRoOiBzdHJpbmdbXTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJFeGNlcHRpb24ge1xyXG4gIHB1YmxpYyBlcnJvcnM6IExyRXJyb3JbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoLi4uZXJyb3JzOiBMckVycm9yW10pIHtcclxuICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvU3RyaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLm1hcCgodCkgPT4gSlNPTi5zdHJpbmdpZnkodCwgbnVsbCwgMikpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGVudW0gTHJBcGlFcnJvckNvZGUge1xyXG4gIEFSQ0hJVkVEX1JFU09VUkNFID0gJ0FSQ0hJVkVEX1JFU09VUkNFJyxcclxuICBCQURfQVJHVU1FTlQgPSAnQkFEX0FSR1VNRU5UJyxcclxuICBCQURfU0lHTkFUVVJFID0gJ0JBRF9TSUdOQVRVUkUnLFxyXG4gIEJBRF9TVEFURSA9ICdCQURfU1RBVEUnLFxyXG4gIENIQU5HRURfUEVSTUlTU0lPTlMgPSAnQ0hBTkdFRF9QRVJNSVNTSU9OUycsXHJcbiAgQ09OQ1VSUkVOVF9BQ0NFU1MgPSAnQ09OQ1VSUkVOVF9BQ0NFU1MnLFxyXG4gIENPTkZJR19FUlJPUiA9ICdDT05GSUdfRVJST1InLFxyXG4gIENZQ0xFX0RFVEVDVEVEID0gJ0NZQ0xFX0RFVEVDVEVEJyxcclxuICBFWFBJUkVEID0gJ0VYUElSRUQnLFxyXG4gIElOVkFMSURfVE9LRU4gPSAnSU5WQUxJRF9UT0tFTicsXHJcbiAgSU5URVJOQUxfRVJST1IgPSAnSU5URVJOQUxfRVJST1InLFxyXG4gIEpTT05fREVDT0RFX0VSUk9SID0gJ0pTT05fREVDT0RFX0VSUk9SJyxcclxuICBLRVlfTUlTTUFUQ0ggPSAnS0VZX01JU01BVENIJyxcclxuICBMSU1JVF9SRUFDSEVEID0gJ0xJTUlUX1JFQUNIRUQnLFxyXG4gIExPQ0tFRCA9ICdMT0NLRUQnLFxyXG4gIExPR0lDX0VSUk9SID0gJ0xPR0lDX0VSUk9SJyxcclxuICBMUl9ERUJVR19PTkxZID0gJ0xSX0RFQlVHX09OTFknLFxyXG4gIE1JTl9ERUxBWSA9ICdNSU5fREVMQVknLFxyXG4gIE1JU1NJTkdfRklFTEQgPSAnTUlTU0lOR19GSUVMRCcsXHJcbiAgTUlTU0lOR19GSUVMRF9WQUxVRSA9ICdNSVNTSU5HX0ZJRUxEX1ZBTFVFJyxcclxuICBNSVNTSU5HX1FVRVJZX1BBUkFNID0gJ01JU1NJTkdfUVVFUllfUEFSQU0nLFxyXG4gIE5PVF9JTVBMRU1FTlRFRCA9ICdOT1RfSU1QTEVNRU5URUQnLFxyXG4gIE9CSkVDVF9ET0VTX05PVF9FWElTVCA9ICdPQkpFQ1RfRE9FU19OT1RfRVhJU1QnLFxyXG4gIE9CSkVDVF9FWElTVFMgPSAnT0JKRUNUX0VYSVNUUycsXHJcbiAgUkFOR0VfRVJST1IgPSAnUkFOR0VfRVJST1InLFxyXG4gIFRSVVNURURfUEFSVFlfTk9UX0ZPVU5EID0gJ1RSVVNURURfUEFSVFlfTk9UX0ZPVU5EJyxcclxuICBVTkFVVEhFTlRJQ0FURURfVVNFUiA9ICdVTkFVVEhFTlRJQ0FURURfVVNFUicsXHJcbiAgVVNFUl9OT1RfRk9VTkQgPSAnVVNFUl9OT1RfRk9VTkQnLFxyXG4gIFZFUlNJT05fTUlTTUFUQ0ggPSAnVkVSU0lPTl9NSVNNQVRDSCcsXHJcbiAgV1JPTkdfUEVSTUlTU0lPTlMgPSAnV1JPTkdfUEVSTUlTU0lPTlMnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBMckVycm9yQ29kZSB7XHJcbiAgQmFkVGltZVN5bmMgPSAnTHJCYWRUaW1lU3luYycsXHJcbiAgUmVjZWl2ZUNsYWltTWlzbWF0Y2ggPSAnTHJSZWNlaXZlQ2xhaW1NaXNtYXRjaCcsXHJcbiAgQmFkU3RhdGUgPSAnTHJCYWRTdGF0ZScsXHJcbiAgQmFkU2lnbmF0dXJlID0gJ0xyQmFkU2lnbmF0dXJlJyxcclxuICBBdXRoID0gJ0xyQXV0aCcsXHJcbiAgQmFkQXJndW1lbnQgPSAnTHJCYWRBcmd1bWVudCcsXHJcbiAgU3VzcGljaW91c0V4Y2VwdGlvbiA9ICdMclN1c3BpY2lvdXNFeGNlcHRpb24nLFxyXG4gIE5vdEZvdW5kID0gJ0xyTm90Rm91bmQnLFxyXG4gIEJhZExvZ2ljID0gJ0xyQmFkTG9naWNFeGNlcHRpb24nLFxyXG4gIENvZGVNaXNtYXRjaCA9ICdMckNvZGVNaXNtYXRjaEV4Y2VwdGlvbicsXHJcbiAgQ29uY3VycmVudEFjY2VzcyA9ICdMckNvbmN1cnJlbnRBY2Nlc3NFeGNlcHRpb24nLFxyXG4gIEJhZFJlcXVlc3QgPSAnTHJCYWRSZXF1ZXN0RXhjZXB0aW9uJyxcclxuICBFbmNyeXB0aW9uID0gJ0xyRW5jcnlwdGlvbkdvQmFkJyxcclxuICBMb2NrZWQgPSAnTHJMb2NrZWRFeGNlcHRpb24nLFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJCYWRBcmd1bWVudEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkJhZEFyZ3VtZW50LCBtZXNzYWdlIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExyU3VzcGljaW91c0V4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkJhZEFyZ3VtZW50LCBtZXNzYWdlIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExyTm90Rm91bmRFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xyXG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5Ob3RGb3VuZCwgbWVzc2FnZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMckJhZExvZ2ljRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xyXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQmFkTG9naWMsIG1lc3NhZ2UgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJDb2RlTWlzbWF0Y2hFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xyXG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5Db2RlTWlzbWF0Y2gsIG1lc3NhZ2UgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJDb25jdXJyZW50QWNjZXNzRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xyXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuQ29uY3VycmVudEFjY2VzcywgbWVzc2FnZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMckxvY2tlZEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkxvY2tlZCwgbWVzc2FnZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMckJhZFJlcXVlc3RFeGNlcHRpb24gZXh0ZW5kcyBMckV4Y2VwdGlvbiB7XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZSkge1xyXG4gICAgc3VwZXIoeyBjb2RlOiBMckVycm9yQ29kZS5CYWRSZXF1ZXN0LCBtZXNzYWdlIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExyQXV0aEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7IGNvZGU6IExyRXJyb3JDb2RlLkF1dGgsIG1lc3NhZ2UgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJFbmNyeXB0aW9uRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xyXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgIHN1cGVyKHsgY29kZTogTHJFcnJvckNvZGUuRW5jcnlwdGlvbiwgbWVzc2FnZSB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMclVuc3VwcG9ydGVkRXhjZXB0aW9uIGV4dGVuZHMgTHJFeGNlcHRpb24ge1xyXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UpIHtcclxuICAgIHN1cGVyKHtcclxuICAgICAgY29kZTogJ0xyVW5zdXBwb3J0ZWRFeGNlcHRpb24nLFxyXG4gICAgICBtZXNzYWdlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJFeHBpcmVkQ29kZUV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7XHJcbiAgICAgIGNvZGU6ICdMckV4cGlyZWRDb2RlRXhjZXB0aW9uJyxcclxuICAgICAgbWVzc2FnZSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExyRXhwaXJlZEV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7XHJcbiAgICAgIGNvZGU6ICdMckV4cGlyZWRFeGNlcHRpb24nLFxyXG4gICAgICBtZXNzYWdlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTHJCYWRTdGF0ZUV4Y2VwdGlvbiBleHRlbmRzIExyRXhjZXB0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihtZXNzYWdlKSB7XHJcbiAgICBzdXBlcih7XHJcbiAgICAgIGNvZGU6ICdMckJhZFN0YXRlRXhjZXB0aW9uJyxcclxuICAgICAgbWVzc2FnZSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,190 @@
1
+ import gql from 'graphql-tag';
2
+ const KeyGraphFragmentBase = `
3
+ {
4
+ keys {
5
+ id
6
+ }
7
+ keyLinks {
8
+ keyId
9
+ wrappingKeyId
10
+ wrappedKey
11
+ }
12
+ passKeys {
13
+ id
14
+ }
15
+ passKeyLinks {
16
+ keyId
17
+ passKeyId
18
+ wrappedKey
19
+ }
20
+ __typename
21
+ }
22
+ `;
23
+ export const KeyGraphFragment = gql `
24
+ fragment KeyGraphFragment on KeyGraphType ${KeyGraphFragmentBase}
25
+ `;
26
+ export const KeyGraphField = `keyGraph ${KeyGraphFragmentBase}`;
27
+ export const FetchKeyGraphField = `keyGraph: fetchKeyGraph ${KeyGraphFragmentBase}`;
28
+ export const FileQuery = gql `
29
+ query File($id: LrRelayIdInput!, $cachedKeyIds: [LrRelayIdInput!]) {
30
+ file(id: $id) {
31
+ id
32
+ keyId
33
+ currentVersion {
34
+ id
35
+ operation
36
+ state {
37
+ keyId
38
+ plainMeta
39
+ cipherMeta
40
+ contentResource
41
+ }
42
+ }
43
+ versions {
44
+ edges {
45
+ node {
46
+ id
47
+ state {
48
+ keyId
49
+ plainMeta
50
+ cipherMeta
51
+ contentResource
52
+ }
53
+ }
54
+ }
55
+ }
56
+ parentDirectoryLinks {
57
+ edges {
58
+ node {
59
+ parentDirectory {
60
+ id
61
+ plainMeta
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ keyGraph(cachedKeyIds: $cachedKeyIds) {
68
+ ...KeyGraphFragment
69
+ }
70
+ }
71
+ ${KeyGraphFragment}
72
+ `;
73
+ export const DirectoryQuery = gql `
74
+ query Directory($id: LrRelayIdInput!, $cachedKeyIds: [LrRelayIdInput!]) {
75
+ directory(id: $id) {
76
+ id
77
+ keyId
78
+ plainMeta
79
+ cipherMeta
80
+ }
81
+ keyGraph(cachedKeyIds: $cachedKeyIds) {
82
+ ...KeyGraphFragment
83
+ }
84
+ }
85
+ ${KeyGraphFragment}
86
+ `;
87
+ export const CreateFileQuery = gql `
88
+ mutation CreateFile($input: CreateFileInput!) {
89
+ createFile(input: $input) {
90
+ file {
91
+ id
92
+ }
93
+ }
94
+ }
95
+ `;
96
+ export const UpdateFileQuery = gql `
97
+ mutation UpdateFile($input: UpdateFileInput!) {
98
+ updateFile(input: $input) {
99
+ file {
100
+ id
101
+ currentVersion {
102
+ id
103
+ state {
104
+ id
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ `;
111
+ export const RevertFileQuery = gql `
112
+ mutation RevertFile($input: RevertFileInput!) {
113
+ revertFile(input: $input) {
114
+ file {
115
+ id
116
+ currentVersion {
117
+ id
118
+ state {
119
+ id
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ `;
126
+ export const MoveFileQuery = gql `
127
+ mutation MoveFile(
128
+ $fileId: LrRelayIdInput!
129
+ $fromParentDirectoryId: LrRelayIdInput!
130
+ $toParentDirectoryId: LrRelayIdInput!
131
+ $wrappingKeyId: LrRelayIdInput!
132
+ $wrappedKey: String!
133
+ ) {
134
+ moveFile(
135
+ input: {
136
+ fileId: $fileId
137
+ fromParentDirectoryId: $fromParentDirectoryId
138
+ toParentDirectoryId: $toParentDirectoryId
139
+ wrappingKeyId: $wrappingKeyId
140
+ wrappedKey: $wrappedKey
141
+ }
142
+ ) {
143
+ file {
144
+ id
145
+ parentDirectoryLinks {
146
+ edges {
147
+ node {
148
+ parentDirectory {
149
+ plainMeta
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ `;
158
+ export const MoveDirectoryQuery = gql `
159
+ mutation MoveDirectory(
160
+ $directoryId: LrRelayIdInput!
161
+ $fromParentDirectoryId: LrRelayIdInput
162
+ $toParentDirectoryId: LrRelayIdInput!
163
+ $wrappedKey: String!
164
+ $wrappingKeyId: LrRelayIdInput!
165
+ ) {
166
+ moveDirectory(
167
+ input: {
168
+ directoryId: $directoryId
169
+ fromParentDirectoryId: $fromParentDirectoryId
170
+ toParentDirectoryId: $toParentDirectoryId
171
+ wrappedKey: $wrappedKey
172
+ wrappingKeyId: $wrappingKeyId
173
+ }
174
+ ) {
175
+ directory {
176
+ id
177
+ parentDirectoryLinks {
178
+ edges {
179
+ node {
180
+ parentDirectory {
181
+ plainMeta
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ `;
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5ncWwuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL3F1ZXJpZXMuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQztBQUU5QixNQUFNLG9CQUFvQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CNUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTs0Q0FDUyxvQkFBb0I7Q0FDL0QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLG9CQUFvQixFQUFFLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsMkJBQTJCLG9CQUFvQixFQUFFLENBQUM7QUFFcEYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTJDeEIsZ0JBQWdCO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7SUFZN0IsZ0JBQWdCO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVFqQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Q0FjakMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7O0NBY2pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0IvQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBK0JwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XHJcblxyXG5jb25zdCBLZXlHcmFwaEZyYWdtZW50QmFzZSA9IGBcclxue1xyXG4gIGtleXMge1xyXG4gICAgaWRcclxuICB9XHJcbiAga2V5TGlua3Mge1xyXG4gICAga2V5SWRcclxuICAgIHdyYXBwaW5nS2V5SWRcclxuICAgIHdyYXBwZWRLZXlcclxuICB9XHJcbiAgcGFzc0tleXMge1xyXG4gICAgaWRcclxuICB9XHJcbiAgcGFzc0tleUxpbmtzIHtcclxuICAgIGtleUlkXHJcbiAgICBwYXNzS2V5SWRcclxuICAgIHdyYXBwZWRLZXlcclxuICB9XHJcbiAgX190eXBlbmFtZVxyXG59XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgS2V5R3JhcGhGcmFnbWVudCA9IGdxbGBcclxuZnJhZ21lbnQgS2V5R3JhcGhGcmFnbWVudCBvbiBLZXlHcmFwaFR5cGUgJHtLZXlHcmFwaEZyYWdtZW50QmFzZX1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBLZXlHcmFwaEZpZWxkID0gYGtleUdyYXBoICR7S2V5R3JhcGhGcmFnbWVudEJhc2V9YDtcclxuXHJcbmV4cG9ydCBjb25zdCBGZXRjaEtleUdyYXBoRmllbGQgPSBga2V5R3JhcGg6IGZldGNoS2V5R3JhcGggJHtLZXlHcmFwaEZyYWdtZW50QmFzZX1gO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZpbGVRdWVyeSA9IGdxbGBcclxuICBxdWVyeSBGaWxlKCRpZDogTHJSZWxheUlkSW5wdXQhLCAkY2FjaGVkS2V5SWRzOiBbTHJSZWxheUlkSW5wdXQhXSkge1xyXG4gICAgZmlsZShpZDogJGlkKSB7XHJcbiAgICAgIGlkXHJcbiAgICAgIGtleUlkXHJcbiAgICAgIGN1cnJlbnRWZXJzaW9uIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIG9wZXJhdGlvblxyXG4gICAgICAgIHN0YXRlIHtcclxuICAgICAgICAgIGtleUlkXHJcbiAgICAgICAgICBwbGFpbk1ldGFcclxuICAgICAgICAgIGNpcGhlck1ldGFcclxuICAgICAgICAgIGNvbnRlbnRSZXNvdXJjZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB2ZXJzaW9ucyB7XHJcbiAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICAgIHN0YXRlIHtcclxuICAgICAgICAgICAgICBrZXlJZFxyXG4gICAgICAgICAgICAgIHBsYWluTWV0YVxyXG4gICAgICAgICAgICAgIGNpcGhlck1ldGFcclxuICAgICAgICAgICAgICBjb250ZW50UmVzb3VyY2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBwYXJlbnREaXJlY3RvcnlMaW5rcyB7XHJcbiAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgIHBhcmVudERpcmVjdG9yeSB7XHJcbiAgICAgICAgICAgICAgaWRcclxuICAgICAgICAgICAgICBwbGFpbk1ldGFcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAga2V5R3JhcGgoY2FjaGVkS2V5SWRzOiAkY2FjaGVkS2V5SWRzKSB7XHJcbiAgICAgIC4uLktleUdyYXBoRnJhZ21lbnRcclxuICAgIH1cclxuICB9XHJcbiAgJHtLZXlHcmFwaEZyYWdtZW50fVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IERpcmVjdG9yeVF1ZXJ5ID0gZ3FsYFxyXG4gIHF1ZXJ5IERpcmVjdG9yeSgkaWQ6IExyUmVsYXlJZElucHV0ISwgJGNhY2hlZEtleUlkczogW0xyUmVsYXlJZElucHV0IV0pIHtcclxuICAgIGRpcmVjdG9yeShpZDogJGlkKSB7XHJcbiAgICAgIGlkXHJcbiAgICAgIGtleUlkXHJcbiAgICAgIHBsYWluTWV0YVxyXG4gICAgICBjaXBoZXJNZXRhXHJcbiAgICB9XHJcbiAgICBrZXlHcmFwaChjYWNoZWRLZXlJZHM6ICRjYWNoZWRLZXlJZHMpIHtcclxuICAgICAgLi4uS2V5R3JhcGhGcmFnbWVudFxyXG4gICAgfVxyXG4gIH1cclxuICAke0tleUdyYXBoRnJhZ21lbnR9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ3JlYXRlRmlsZVF1ZXJ5ID0gZ3FsYFxyXG4gIG11dGF0aW9uIENyZWF0ZUZpbGUoJGlucHV0OiBDcmVhdGVGaWxlSW5wdXQhKSB7XHJcbiAgICBjcmVhdGVGaWxlKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgZmlsZSB7XHJcbiAgICAgICAgaWRcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVcGRhdGVGaWxlUXVlcnkgPSBncWxgXHJcbiAgbXV0YXRpb24gVXBkYXRlRmlsZSgkaW5wdXQ6IFVwZGF0ZUZpbGVJbnB1dCEpIHtcclxuICAgIHVwZGF0ZUZpbGUoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICBmaWxlIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIGN1cnJlbnRWZXJzaW9uIHtcclxuICAgICAgICAgIGlkXHJcbiAgICAgICAgICBzdGF0ZSB7XHJcbiAgICAgICAgICAgIGlkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJldmVydEZpbGVRdWVyeSA9IGdxbGBcclxuICBtdXRhdGlvbiBSZXZlcnRGaWxlKCRpbnB1dDogUmV2ZXJ0RmlsZUlucHV0ISkge1xyXG4gICAgcmV2ZXJ0RmlsZShpbnB1dDogJGlucHV0KSB7XHJcbiAgICAgIGZpbGUge1xyXG4gICAgICAgIGlkXHJcbiAgICAgICAgY3VycmVudFZlcnNpb24ge1xyXG4gICAgICAgICAgaWRcclxuICAgICAgICAgIHN0YXRlIHtcclxuICAgICAgICAgICAgaWRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgTW92ZUZpbGVRdWVyeSA9IGdxbGBcclxuICBtdXRhdGlvbiBNb3ZlRmlsZShcclxuICAgICRmaWxlSWQ6IExyUmVsYXlJZElucHV0IVxyXG4gICAgJGZyb21QYXJlbnREaXJlY3RvcnlJZDogTHJSZWxheUlkSW5wdXQhXHJcbiAgICAkdG9QYXJlbnREaXJlY3RvcnlJZDogTHJSZWxheUlkSW5wdXQhXHJcbiAgICAkd3JhcHBpbmdLZXlJZDogTHJSZWxheUlkSW5wdXQhXHJcbiAgICAkd3JhcHBlZEtleTogU3RyaW5nIVxyXG4gICkge1xyXG4gICAgbW92ZUZpbGUoXHJcbiAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgZmlsZUlkOiAkZmlsZUlkXHJcbiAgICAgICAgZnJvbVBhcmVudERpcmVjdG9yeUlkOiAkZnJvbVBhcmVudERpcmVjdG9yeUlkXHJcbiAgICAgICAgdG9QYXJlbnREaXJlY3RvcnlJZDogJHRvUGFyZW50RGlyZWN0b3J5SWRcclxuICAgICAgICB3cmFwcGluZ0tleUlkOiAkd3JhcHBpbmdLZXlJZFxyXG4gICAgICAgIHdyYXBwZWRLZXk6ICR3cmFwcGVkS2V5XHJcbiAgICAgIH1cclxuICAgICkge1xyXG4gICAgICBmaWxlIHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHBhcmVudERpcmVjdG9yeUxpbmtzIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgICAgcGFyZW50RGlyZWN0b3J5IHtcclxuICAgICAgICAgICAgICAgIHBsYWluTWV0YVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBNb3ZlRGlyZWN0b3J5UXVlcnkgPSBncWxgXHJcbiAgbXV0YXRpb24gTW92ZURpcmVjdG9yeShcclxuICAgICRkaXJlY3RvcnlJZDogTHJSZWxheUlkSW5wdXQhXHJcbiAgICAkZnJvbVBhcmVudERpcmVjdG9yeUlkOiBMclJlbGF5SWRJbnB1dFxyXG4gICAgJHRvUGFyZW50RGlyZWN0b3J5SWQ6IExyUmVsYXlJZElucHV0IVxyXG4gICAgJHdyYXBwZWRLZXk6IFN0cmluZyFcclxuICAgICR3cmFwcGluZ0tleUlkOiBMclJlbGF5SWRJbnB1dCFcclxuICApIHtcclxuICAgIG1vdmVEaXJlY3RvcnkoXHJcbiAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgZGlyZWN0b3J5SWQ6ICRkaXJlY3RvcnlJZFxyXG4gICAgICAgIGZyb21QYXJlbnREaXJlY3RvcnlJZDogJGZyb21QYXJlbnREaXJlY3RvcnlJZFxyXG4gICAgICAgIHRvUGFyZW50RGlyZWN0b3J5SWQ6ICR0b1BhcmVudERpcmVjdG9yeUlkXHJcbiAgICAgICAgd3JhcHBlZEtleTogJHdyYXBwZWRLZXlcclxuICAgICAgICB3cmFwcGluZ0tleUlkOiAkd3JhcHBpbmdLZXlJZFxyXG4gICAgICB9XHJcbiAgICApIHtcclxuICAgICAgZGlyZWN0b3J5IHtcclxuICAgICAgICBpZFxyXG4gICAgICAgIHBhcmVudERpcmVjdG9yeUxpbmtzIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgICAgcGFyZW50RGlyZWN0b3J5IHtcclxuICAgICAgICAgICAgICAgIHBsYWluTWV0YVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuYDtcclxuIl19
@@ -0,0 +1,79 @@
1
+ import { LrBadLogicException } from '../_common/exceptions';
2
+ /**
3
+ * If you wish to change the behaviour of those, you'll need to create a derived
4
+ * class and override the methods.
5
+ * However, can't figure out a way to call the super() in the derived class ctor, error says
6
+ * the super call can't be in tested function.
7
+ */
8
+ export const EXCLUDE_METHODS = [
9
+ 'constructor',
10
+ 'ngOnChanges',
11
+ 'ngOnInit',
12
+ 'ngDoCheck',
13
+ 'ngAfterContentInit',
14
+ 'ngAfterContentChecked',
15
+ 'ngAfterViewInit',
16
+ 'ngAfterViewChecked',
17
+ 'ngOnDestroy',
18
+ ];
19
+ // Patch all methods of the class.
20
+ //
21
+ // Note, this will not patch functions in the base class, it only
22
+ // patches the function defined in the current class because it's
23
+ // using getOwnPropertyNames(). You should be using composition for
24
+ // services anyway.
25
+ //
26
+ // Ref: https://stackoverflow.com/a/44409244
27
+ // The above approach might be a bit old. Now that we have ngZone.runOutsideAngular(),
28
+ // we should probably use that and not touch any angular zone internals. But the approach
29
+ // above doesn't require injecting ngZone.
30
+ //
31
+ // Ref: https://github.com/2ng/run-outside-angular/blob/master/src/run-outside-angular.ts
32
+ export function RunOutsideAngular({ ngZoneName, exceptLastPromise = true, excludeMethods = [], patchSetters = true, }) {
33
+ return (target) => {
34
+ function run(original, args) {
35
+ if (!this[ngZoneName]) {
36
+ throw new LrBadLogicException(`RunOutsideAngular decorator requires that ${target.name} inject NgZone as ${ngZoneName}`);
37
+ }
38
+ // runOutsideAngular() synchronously runs the callback and returns the result.
39
+ const result = this[ngZoneName].runOutsideAngular(() => original.apply(this, args));
40
+ if (exceptLastPromise && (result === null || result === void 0 ? void 0 : result.then)) {
41
+ // Bring back into zone which will trigger change detection properly.
42
+ // If this doesn't work, then we'll have to trigger change detection explicitly.
43
+ return Promise.resolve(result);
44
+ }
45
+ else {
46
+ return result;
47
+ }
48
+ }
49
+ // There should be no reason to run any of the ones in EXCLUDE_METHODS outside angular.
50
+ // So we always exclude them from patching. You can always explicit implement these ones differently.
51
+ excludeMethods = [...excludeMethods, ...EXCLUDE_METHODS];
52
+ const methods = Object.getOwnPropertyNames(target.prototype);
53
+ methods
54
+ .filter((method) => !excludeMethods.includes(method))
55
+ .forEach((method) => {
56
+ // Patch setters
57
+ // Note that setters do not return any thing. But they can still issue async calls.
58
+ // These async calls are not visible to the wrapper. So we can't issue change detection
59
+ // for setters when they are running outside angular.
60
+ if (patchSetters &&
61
+ Object.getOwnPropertyDescriptor(target.prototype, method).set) {
62
+ const original = Object.getOwnPropertyDescriptor(target.prototype, method).set;
63
+ Object.defineProperty(target.prototype, method, {
64
+ set(...args) {
65
+ return run.apply(this, [original, args]);
66
+ },
67
+ });
68
+ }
69
+ if (typeof target.prototype[method] === 'function') {
70
+ const original = target.prototype[method];
71
+ target.prototype[method] = function (...args) {
72
+ return run.apply(this, [original, args]);
73
+ };
74
+ }
75
+ });
76
+ return target;
77
+ };
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLW91dHNpZGUtYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy90ZXN0L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL19jb21tb24vcnVuLW91dHNpZGUtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQTBCNUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsYUFBYTtJQUNiLGFBQWE7SUFDYixVQUFVO0lBQ1YsV0FBVztJQUNYLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQixhQUFhO0NBQ2QsQ0FBQztBQUVGLGtDQUFrQztBQUNsQyxFQUFFO0FBQ0YsaUVBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSxtRUFBbUU7QUFDbkUsbUJBQW1CO0FBQ25CLEVBQUU7QUFDRiw0Q0FBNEM7QUFDNUMsc0ZBQXNGO0FBQ3RGLHlGQUF5RjtBQUN6RiwwQ0FBMEM7QUFDMUMsRUFBRTtBQUNGLHlGQUF5RjtBQUN6RixNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFDaEMsVUFBVSxFQUNWLGlCQUFpQixHQUFHLElBQUksRUFDeEIsY0FBYyxHQUFHLEVBQUUsRUFDbkIsWUFBWSxHQUFHLElBQUksR0FDSztJQUN4QixPQUFPLENBQUMsTUFBVyxFQUFFLEVBQUU7UUFDckIsU0FBUyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUk7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDckIsTUFBTSxJQUFJLG1CQUFtQixDQUMzQiw2Q0FBNkMsTUFBTSxDQUFDLElBQUkscUJBQXFCLFVBQVUsRUFBRSxDQUMxRixDQUFDO2FBQ0g7WUFDRCw4RUFBOEU7WUFDOUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUNyRCxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDM0IsQ0FBQztZQUVGLElBQUksaUJBQWlCLEtBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUksQ0FBQSxFQUFFO2dCQUNyQyxxRUFBcUU7Z0JBQ3JFLGdGQUFnRjtnQkFDaEYsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNMLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7UUFDSCxDQUFDO1FBRUQsdUZBQXVGO1FBQ3ZGLHFHQUFxRztRQUNyRyxjQUFjLEdBQUcsQ0FBQyxHQUFHLGNBQWMsRUFBRSxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBRXpELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0QsT0FBTzthQUNKLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BELE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2xCLGdCQUFnQjtZQUNoQixtRkFBbUY7WUFDbkYsdUZBQXVGO1lBQ3ZGLHFEQUFxRDtZQUNyRCxJQUNFLFlBQVk7Z0JBQ1osTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUM3RDtnQkFDQSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQzlDLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLE1BQU0sQ0FDUCxDQUFDLEdBQUcsQ0FBQztnQkFFTixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFO29CQUM5QyxHQUFHLENBQUMsR0FBRyxJQUFJO3dCQUNULE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDM0MsQ0FBQztpQkFDRixDQUFDLENBQUM7YUFDSjtZQUVELElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFMUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxVQUFTLEdBQUcsSUFBSTtvQkFDekMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExyQmFkTG9naWNFeGNlcHRpb24gfSBmcm9tICcuLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSdW5PdXRzaWRlQW5ndWxhckNvbmZpZyB7XHJcbiAgbmdab25lTmFtZTogc3RyaW5nO1xyXG4gIC8vIElmIHRydWUsIGEgc2luZ2xlIGNoYW5nZSBkZXRlY3Rpb24gaXMgdHJpZ2dlcmVkIG9uIHJlc29sdmUgb2YgdGhlIFByb21pc2UgcmV0dXJuZWRcclxuICAvLyBmcm9tIHRoZSBmdW5jdGlvbi5cclxuICAvLyBlbHNlLCB0aGUgZW50aXJlIGZ1bmN0aW9uIGlzIHJ1biBvdXRzaWRlIG9mIHpvbmUuXHJcbiAgLy8gTm90ZSB0aGF0IGlmIHRoaXMgaXMgZGlzYWJsZWQsIHRoZW4gY2hhbmdlIGRldGVjdGlvbiBpcyBub3QgdHJpZ2dlcmVkIGV2ZW4gaWYgeW91XHJcbiAgLy8gdXNlIGFzeW5jIHBpcGVzIHRvIHN1YnNjcmliZSB0byBvYnNlcnZhYmxlcyBvbiB0aGUgcmVzdWx0aW5nIHByb21pc2UuIFRoaXMgaXMgYmVjYXVzZVxyXG4gIC8vIGFzeW5jIHBpcGVzIG9ubHkgX21hcmtzXyBhIGNvbXBvbmVudCBmb3IgY2hhbmdlIGRldGVjdGlvbiwgaXQgZG9lc24ndCBhY3R1YWxseSBfdHJpZ2dlcl9cclxuICAvLyB0aGUgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS5cclxuICBleGNlcHRMYXN0UHJvbWlzZT86IGJvb2xlYW47XHJcbiAgLy8gQW55IG1ldGhvZCBvciBwcm9wZXJ0eSB5b3Ugd2lzaCB0byBleGNsdWRlIGZyb20gcGF0Y2guIFRoZSBtZXRob2RzIGluIEVYQ0xVREVfTUVUSE9EUyBhcmVcclxuICAvLyBuZXZlciBwYXRjaGVkLlxyXG4gIGV4Y2x1ZGVNZXRob2RzPzogc3RyaW5nW107XHJcbiAgLy8gSWYgdHJ1ZSwgcGF0Y2ggdGhlIHNldHRlcnMgYXMgd2VsbC4gU2V0dGluZ3MgYXJlIHNvbWVcclxuICAvLyBOb3RlIHRoYXQgc2V0dGVycyBkbyBub3QgcmV0dXJuIGFueSB0aGluZy4gQnV0IHRoZXkgY2FuIHN0aWxsIGlzc3VlIGFzeW5jIGNhbGxzLlxyXG4gIC8vIFRoZXNlIGFzeW5jIGNhbGxzIGFyZSBub3QgdmlzaWJsZSB0byB0aGUgd3JhcHBlci4gU28gd2UgY2FuJ3QgaXNzdWUgY2hhbmdlIGRldGVjdGlvblxyXG4gIC8vIGZvciBzZXR0ZXJzIHdoZW4gdGhleSBhcmUgcnVubmluZyBvdXRzaWRlIGFuZ3VsYXIuXHJcbiAgLy8gTm90ZSB0aGF0IGdldHRlcnMgYXJlIG5vdCBwYXRjaGVkIGJlY2F1c2UgZ2V0dGVyIGFuZCBzZXR0ZXIgbXVzdCB1c2UgdGhlIHNhbWUgdHlwZS4gU28gaWZcclxuICAvLyB0aGUgZ2V0dGVyIHJldHVybnMgYSBwcm9taXNlLCB0aGVuIHRoZSBzZXR0aW5nIG11c3QgYWx3YXkgdGFrZSBhIHByb21pc2UuIEl0IGRvZXNuJ3QgbWFrZVxyXG4gIC8vIG11Y2ggc2Vuc2UgdG8gdXNlIGdldHRlcnMgYW5kIHNldHRlcnMgdGhpcyB3YXkuIEFuZCBpZiBnZXR0ZXIgcmV0dXJucyBhIHZhbHVlLCB0aGVuIHRoZXJlJ3NcclxuICAvLyBubyBuZWVkIHRvIHBhdGNoIGl0IHRvIHJ1biBvdXRzaWRlIGFuZ3VsYXIuXHJcbiAgcGF0Y2hTZXR0ZXJzPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIElmIHlvdSB3aXNoIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRob3NlLCB5b3UnbGwgbmVlZCB0byBjcmVhdGUgYSBkZXJpdmVkXHJcbiAqIGNsYXNzIGFuZCBvdmVycmlkZSB0aGUgbWV0aG9kcy5cclxuICogSG93ZXZlciwgY2FuJ3QgZmlndXJlIG91dCBhIHdheSB0byBjYWxsIHRoZSBzdXBlcigpIGluIHRoZSBkZXJpdmVkIGNsYXNzIGN0b3IsIGVycm9yIHNheXNcclxuICogdGhlIHN1cGVyIGNhbGwgY2FuJ3QgYmUgaW4gdGVzdGVkIGZ1bmN0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEVYQ0xVREVfTUVUSE9EUyA9IFtcclxuICAnY29uc3RydWN0b3InLFxyXG4gICduZ09uQ2hhbmdlcycsXHJcbiAgJ25nT25Jbml0JyxcclxuICAnbmdEb0NoZWNrJyxcclxuICAnbmdBZnRlckNvbnRlbnRJbml0JyxcclxuICAnbmdBZnRlckNvbnRlbnRDaGVja2VkJyxcclxuICAnbmdBZnRlclZpZXdJbml0JyxcclxuICAnbmdBZnRlclZpZXdDaGVja2VkJyxcclxuICAnbmdPbkRlc3Ryb3knLFxyXG5dO1xyXG5cclxuLy8gUGF0Y2ggYWxsIG1ldGhvZHMgb2YgdGhlIGNsYXNzLlxyXG4vL1xyXG4vLyBOb3RlLCB0aGlzIHdpbGwgbm90IHBhdGNoIGZ1bmN0aW9ucyBpbiB0aGUgYmFzZSBjbGFzcywgaXQgb25seVxyXG4vLyBwYXRjaGVzIHRoZSBmdW5jdGlvbiBkZWZpbmVkIGluIHRoZSBjdXJyZW50IGNsYXNzIGJlY2F1c2UgaXQnc1xyXG4vLyB1c2luZyBnZXRPd25Qcm9wZXJ0eU5hbWVzKCkuIFlvdSBzaG91bGQgYmUgdXNpbmcgY29tcG9zaXRpb24gZm9yXHJcbi8vIHNlcnZpY2VzIGFueXdheS5cclxuLy9cclxuLy8gUmVmOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDQ0MDkyNDRcclxuLy8gVGhlIGFib3ZlIGFwcHJvYWNoIG1pZ2h0IGJlIGEgYml0IG9sZC4gTm93IHRoYXQgd2UgaGF2ZSBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKSxcclxuLy8gd2Ugc2hvdWxkIHByb2JhYmx5IHVzZSB0aGF0IGFuZCBub3QgdG91Y2ggYW55IGFuZ3VsYXIgem9uZSBpbnRlcm5hbHMuIEJ1dCB0aGUgYXBwcm9hY2hcclxuLy8gYWJvdmUgZG9lc24ndCByZXF1aXJlIGluamVjdGluZyBuZ1pvbmUuXHJcbi8vXHJcbi8vIFJlZjogaHR0cHM6Ly9naXRodWIuY29tLzJuZy9ydW4tb3V0c2lkZS1hbmd1bGFyL2Jsb2IvbWFzdGVyL3NyYy9ydW4tb3V0c2lkZS1hbmd1bGFyLnRzXHJcbmV4cG9ydCBmdW5jdGlvbiBSdW5PdXRzaWRlQW5ndWxhcih7XHJcbiAgbmdab25lTmFtZSxcclxuICBleGNlcHRMYXN0UHJvbWlzZSA9IHRydWUsXHJcbiAgZXhjbHVkZU1ldGhvZHMgPSBbXSxcclxuICBwYXRjaFNldHRlcnMgPSB0cnVlLFxyXG59OiBSdW5PdXRzaWRlQW5ndWxhckNvbmZpZykge1xyXG4gIHJldHVybiAodGFyZ2V0OiBhbnkpID0+IHtcclxuICAgIGZ1bmN0aW9uIHJ1bihvcmlnaW5hbCwgYXJncykge1xyXG4gICAgICBpZiAoIXRoaXNbbmdab25lTmFtZV0pIHtcclxuICAgICAgICB0aHJvdyBuZXcgTHJCYWRMb2dpY0V4Y2VwdGlvbihcclxuICAgICAgICAgIGBSdW5PdXRzaWRlQW5ndWxhciBkZWNvcmF0b3IgcmVxdWlyZXMgdGhhdCAke3RhcmdldC5uYW1lfSBpbmplY3QgTmdab25lIGFzICR7bmdab25lTmFtZX1gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBydW5PdXRzaWRlQW5ndWxhcigpIHN5bmNocm9ub3VzbHkgcnVucyB0aGUgY2FsbGJhY2sgYW5kIHJldHVybnMgdGhlIHJlc3VsdC5cclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpc1tuZ1pvbmVOYW1lXS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PlxyXG4gICAgICAgIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3MpXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoZXhjZXB0TGFzdFByb21pc2UgJiYgcmVzdWx0Py50aGVuKSB7XHJcbiAgICAgICAgLy8gQnJpbmcgYmFjayBpbnRvIHpvbmUgd2hpY2ggd2lsbCB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gcHJvcGVybHkuXHJcbiAgICAgICAgLy8gSWYgdGhpcyBkb2Vzbid0IHdvcmssIHRoZW4gd2UnbGwgaGF2ZSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gZXhwbGljaXRseS5cclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZXJlIHNob3VsZCBiZSBubyByZWFzb24gdG8gcnVuIGFueSBvZiB0aGUgb25lcyBpbiBFWENMVURFX01FVEhPRFMgb3V0c2lkZSBhbmd1bGFyLlxyXG4gICAgLy8gU28gd2UgYWx3YXlzIGV4Y2x1ZGUgdGhlbSBmcm9tIHBhdGNoaW5nLiBZb3UgY2FuIGFsd2F5cyBleHBsaWNpdCBpbXBsZW1lbnQgdGhlc2Ugb25lcyBkaWZmZXJlbnRseS5cclxuICAgIGV4Y2x1ZGVNZXRob2RzID0gWy4uLmV4Y2x1ZGVNZXRob2RzLCAuLi5FWENMVURFX01FVEhPRFNdO1xyXG5cclxuICAgIGNvbnN0IG1ldGhvZHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQucHJvdG90eXBlKTtcclxuXHJcbiAgICBtZXRob2RzXHJcbiAgICAgIC5maWx0ZXIoKG1ldGhvZCkgPT4gIWV4Y2x1ZGVNZXRob2RzLmluY2x1ZGVzKG1ldGhvZCkpXHJcbiAgICAgIC5mb3JFYWNoKChtZXRob2QpID0+IHtcclxuICAgICAgICAvLyBQYXRjaCBzZXR0ZXJzXHJcbiAgICAgICAgLy8gTm90ZSB0aGF0IHNldHRlcnMgZG8gbm90IHJldHVybiBhbnkgdGhpbmcuIEJ1dCB0aGV5IGNhbiBzdGlsbCBpc3N1ZSBhc3luYyBjYWxscy5cclxuICAgICAgICAvLyBUaGVzZSBhc3luYyBjYWxscyBhcmUgbm90IHZpc2libGUgdG8gdGhlIHdyYXBwZXIuIFNvIHdlIGNhbid0IGlzc3VlIGNoYW5nZSBkZXRlY3Rpb25cclxuICAgICAgICAvLyBmb3Igc2V0dGVycyB3aGVuIHRoZXkgYXJlIHJ1bm5pbmcgb3V0c2lkZSBhbmd1bGFyLlxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHBhdGNoU2V0dGVycyAmJlxyXG4gICAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQucHJvdG90eXBlLCBtZXRob2QpLnNldFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxyXG4gICAgICAgICAgICB0YXJnZXQucHJvdG90eXBlLFxyXG4gICAgICAgICAgICBtZXRob2RcclxuICAgICAgICAgICkuc2V0O1xyXG5cclxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQucHJvdG90eXBlLCBtZXRob2QsIHtcclxuICAgICAgICAgICAgc2V0KC4uLmFyZ3MpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gcnVuLmFwcGx5KHRoaXMsIFtvcmlnaW5hbCwgYXJnc10pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHRhcmdldC5wcm90b3R5cGVbbWV0aG9kXSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0YXJnZXQucHJvdG90eXBlW21ldGhvZF07XHJcblxyXG4gICAgICAgICAgdGFyZ2V0LnByb3RvdHlwZVttZXRob2RdID0gZnVuY3Rpb24oLi4uYXJncykge1xyXG4gICAgICAgICAgICByZXR1cm4gcnVuLmFwcGx5KHRoaXMsIFtvcmlnaW5hbCwgYXJnc10pO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNLZXlHcmFwaCB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9jcnlwdG9ncmFwaHkudHlwZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFZGdlPFQ+IHtcclxuICBub2RlOiBUO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhhc0VkZ2VzPFQ+IHtcclxuICBlZGdlczogRWRnZTxUPltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhhc0tleUdyYXBoRWRnZXM8VD4gZXh0ZW5kcyBIYXNLZXlHcmFwaCB7XHJcbiAgbGlzdDogSGFzRWRnZXM8VD47XHJcbn1cclxuIl19
@@ -0,0 +1,44 @@
1
+ // Promise.all always returns a promise, even if all the values are not async.
2
+ // During processing of deep hierarchies of nested objects we don't always need to
3
+ // promote everything to a promise.
4
+ export function promiseAllMayAsync(values) {
5
+ if (!Array.isArray(values)) {
6
+ throw new Error('not array');
7
+ }
8
+ if (values.some((value) => value === null || value === void 0 ? void 0 : value.then)) {
9
+ const ret = Promise.all(values);
10
+ return ret;
11
+ }
12
+ else {
13
+ return values;
14
+ }
15
+ }
16
+ function remap(obj, values) {
17
+ const ret = {};
18
+ for (const [i, key] of Object.keys(obj).entries()) {
19
+ ret[key] = values[i];
20
+ }
21
+ return ret;
22
+ }
23
+ export function mapValuesMayAsync(obj,
24
+ // callback can either return a Promise, or a value.
25
+ // The Promise<any> type is redundant but it shows that it can return a promise
26
+ callback) {
27
+ const values = promiseAllMayAsync(Object.entries(obj).map(([key, value]) => callback(value, key, obj)));
28
+ if (values.then) {
29
+ return values.then((resolvedValues) => remap(obj, resolvedValues));
30
+ }
31
+ else {
32
+ return remap(obj, values);
33
+ }
34
+ }
35
+ export function mapValuesAsync(obj,
36
+ // callback can either return a Promise, or a value.
37
+ // The Promise<any> type is redundant but it shows that it can return a promise
38
+ // By default, it returns the value without any process, so you can use
39
+ // this to simply wait for all promises in an object to resolve.
40
+ callback) {
41
+ const values = Promise.all(Object.entries(obj).map(([key, value]) => callback ? callback(value, key, obj) : value));
42
+ return values.then((resolvedValues) => remap(obj, resolvedValues));
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fY29tbW9uL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhFQUE4RTtBQUM5RSxrRkFBa0Y7QUFFbEYsbUNBQW1DO0FBQ25DLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFhO0lBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDOUI7SUFDRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsRUFBRTtRQUN2QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxDQUFDO0tBQ1o7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU07SUFDeEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2YsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDakQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0QjtJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsR0FBVztBQUNYLG9EQUFvRDtBQUNwRCwrRUFBK0U7QUFDL0UsUUFBc0U7SUFFdEUsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQ3JFLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDZixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztLQUNwRTtTQUFNO1FBQ0wsT0FBTyxLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzNCO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLEdBQVc7QUFDWCxvREFBb0Q7QUFDcEQsK0VBQStFO0FBQy9FLHVFQUF1RTtBQUN2RSxnRUFBZ0U7QUFDaEUsUUFBdUU7SUFFdkUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQ3ZDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FDN0MsQ0FDRixDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFByb21pc2UuYWxsIGFsd2F5cyByZXR1cm5zIGEgcHJvbWlzZSwgZXZlbiBpZiBhbGwgdGhlIHZhbHVlcyBhcmUgbm90IGFzeW5jLlxyXG4vLyBEdXJpbmcgcHJvY2Vzc2luZyBvZiBkZWVwIGhpZXJhcmNoaWVzIG9mIG5lc3RlZCBvYmplY3RzIHdlIGRvbid0IGFsd2F5cyBuZWVkIHRvXHJcblxyXG4vLyBwcm9tb3RlIGV2ZXJ5dGhpbmcgdG8gYSBwcm9taXNlLlxyXG5leHBvcnQgZnVuY3Rpb24gcHJvbWlzZUFsbE1heUFzeW5jKHZhbHVlczogYW55W10pOiBQcm9taXNlPGFueT4gfCBhbnkge1xyXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBhcnJheScpO1xyXG4gIH1cclxuICBpZiAodmFsdWVzLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZT8udGhlbikpIHtcclxuICAgIGNvbnN0IHJldCA9IFByb21pc2UuYWxsKHZhbHVlcyk7XHJcbiAgICByZXR1cm4gcmV0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVtYXAob2JqLCB2YWx1ZXMpIHtcclxuICBjb25zdCByZXQgPSB7fTtcclxuICBmb3IgKGNvbnN0IFtpLCBrZXldIG9mIE9iamVjdC5rZXlzKG9iaikuZW50cmllcygpKSB7XHJcbiAgICByZXRba2V5XSA9IHZhbHVlc1tpXTtcclxuICB9XHJcbiAgcmV0dXJuIHJldDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1hcFZhbHVlc01heUFzeW5jKFxyXG4gIG9iajogb2JqZWN0LFxyXG4gIC8vIGNhbGxiYWNrIGNhbiBlaXRoZXIgcmV0dXJuIGEgUHJvbWlzZSwgb3IgYSB2YWx1ZS5cclxuICAvLyBUaGUgUHJvbWlzZTxhbnk+IHR5cGUgaXMgcmVkdW5kYW50IGJ1dCBpdCBzaG93cyB0aGF0IGl0IGNhbiByZXR1cm4gYSBwcm9taXNlXHJcbiAgY2FsbGJhY2s6ICh2YWx1ZTogYW55LCBrZXk6IHN0cmluZywgb2JqOiBvYmplY3QpID0+IGFueSB8IFByb21pc2U8YW55PlxyXG4pOiBQcm9taXNlPGFueT4gfCBhbnkge1xyXG4gIGNvbnN0IHZhbHVlcyA9IHByb21pc2VBbGxNYXlBc3luYyhcclxuICAgIE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IGNhbGxiYWNrKHZhbHVlLCBrZXksIG9iaikpXHJcbiAgKTtcclxuXHJcbiAgaWYgKHZhbHVlcy50aGVuKSB7XHJcbiAgICByZXR1cm4gdmFsdWVzLnRoZW4oKHJlc29sdmVkVmFsdWVzKSA9PiByZW1hcChvYmosIHJlc29sdmVkVmFsdWVzKSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiByZW1hcChvYmosIHZhbHVlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwVmFsdWVzQXN5bmMoXHJcbiAgb2JqOiBvYmplY3QsXHJcbiAgLy8gY2FsbGJhY2sgY2FuIGVpdGhlciByZXR1cm4gYSBQcm9taXNlLCBvciBhIHZhbHVlLlxyXG4gIC8vIFRoZSBQcm9taXNlPGFueT4gdHlwZSBpcyByZWR1bmRhbnQgYnV0IGl0IHNob3dzIHRoYXQgaXQgY2FuIHJldHVybiBhIHByb21pc2VcclxuICAvLyBCeSBkZWZhdWx0LCBpdCByZXR1cm5zIHRoZSB2YWx1ZSB3aXRob3V0IGFueSBwcm9jZXNzLCBzbyB5b3UgY2FuIHVzZVxyXG4gIC8vIHRoaXMgdG8gc2ltcGx5IHdhaXQgZm9yIGFsbCBwcm9taXNlcyBpbiBhbiBvYmplY3QgdG8gcmVzb2x2ZS5cclxuICBjYWxsYmFjaz86ICh2YWx1ZTogYW55LCBrZXk6IHN0cmluZywgb2JqOiBvYmplY3QpID0+IGFueSB8IFByb21pc2U8YW55PlxyXG4pOiBQcm9taXNlPGFueT4ge1xyXG4gIGNvbnN0IHZhbHVlcyA9IFByb21pc2UuYWxsKFxyXG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5tYXAoKFtrZXksIHZhbHVlXSkgPT5cclxuICAgICAgY2FsbGJhY2sgPyBjYWxsYmFjayh2YWx1ZSwga2V5LCBvYmopIDogdmFsdWVcclxuICAgIClcclxuICApO1xyXG5cclxuICByZXR1cm4gdmFsdWVzLnRoZW4oKHJlc29sdmVkVmFsdWVzKSA9PiByZW1hcChvYmosIHJlc29sdmVkVmFsdWVzKSk7XHJcbn1cclxuIl19