@lifeready/core 1.0.2 → 1.0.4

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 -62
  2. package/bundles/lifeready-core.umd.js +15445 -15445
  3. package/bundles/lifeready-core.umd.js.map +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/ast.js +40 -40
  6. package/esm2015/lib/_common/deferred-promise.js +24 -24
  7. package/esm2015/lib/_common/exceptions.js +157 -157
  8. package/esm2015/lib/_common/queries.gql.js +190 -190
  9. package/esm2015/lib/_common/run-outside-angular.js +79 -79
  10. package/esm2015/lib/_common/types.js +1 -1
  11. package/esm2015/lib/_common/utils.js +44 -44
  12. package/esm2015/lib/api/contact-card.gql.js +79 -79
  13. package/esm2015/lib/api/contact-card.service.js +154 -154
  14. package/esm2015/lib/api/contact-card2.gql.js +60 -60
  15. package/esm2015/lib/api/contact-card2.service.js +103 -103
  16. package/esm2015/lib/api/file.service.js +74 -74
  17. package/esm2015/lib/api/item2.gql.js +110 -110
  18. package/esm2015/lib/api/item2.service.js +311 -311
  19. package/esm2015/lib/api/key-exchange.gql.js +188 -188
  20. package/esm2015/lib/api/key-exchange.service.js +442 -442
  21. package/esm2015/lib/api/key-exchange.types.js +18 -18
  22. package/esm2015/lib/api/key-exchange2.gql.js +171 -171
  23. package/esm2015/lib/api/key-exchange2.service.js +479 -479
  24. package/esm2015/lib/api/lock.gql.js +40 -40
  25. package/esm2015/lib/api/lock.service.js +64 -64
  26. package/esm2015/lib/api/lr-apollo.service.js +46 -46
  27. package/esm2015/lib/api/lr-graphql/index.js +6 -6
  28. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -155
  29. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -213
  30. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -51
  31. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -48
  32. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -18
  33. package/esm2015/lib/api/message.service.js +138 -138
  34. package/esm2015/lib/api/persist.service.js +181 -181
  35. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -93
  36. package/esm2015/lib/api/query-processor/index.js +3 -3
  37. package/esm2015/lib/api/query-processor/query-processor.service.js +192 -192
  38. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -109
  39. package/esm2015/lib/api/shared-contact-card.service.js +119 -119
  40. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -41
  41. package/esm2015/lib/api/shared-contact-card2.service.js +117 -117
  42. package/esm2015/lib/api/time.service.js +146 -146
  43. package/esm2015/lib/api/types/graphql.types.js +7 -7
  44. package/esm2015/lib/api/types/index.js +3 -3
  45. package/esm2015/lib/api/types/lr-graphql.types.js +71 -71
  46. package/esm2015/lib/auth/auth.config.js +57 -57
  47. package/esm2015/lib/auth/auth.gql.js +48 -48
  48. package/esm2015/lib/auth/auth.types.js +27 -27
  49. package/esm2015/lib/auth/idle.service.js +168 -168
  50. package/esm2015/lib/auth/idle.types.js +7 -7
  51. package/esm2015/lib/auth/lbop.service.js +355 -355
  52. package/esm2015/lib/auth/life-ready-auth.service.js +500 -500
  53. package/esm2015/lib/auth/password.service.js +320 -320
  54. package/esm2015/lib/auth/register.service.js +172 -172
  55. package/esm2015/lib/auth/two-factor.service.js +74 -74
  56. package/esm2015/lib/category/category-meta.service.js +99 -99
  57. package/esm2015/lib/category/category.gql.js +406 -406
  58. package/esm2015/lib/category/category.service.js +390 -390
  59. package/esm2015/lib/category/category.types.js +29 -29
  60. package/esm2015/lib/cryptography/cryptography.types.js +11 -11
  61. package/esm2015/lib/cryptography/encryption.service.js +189 -189
  62. package/esm2015/lib/cryptography/key-factory.service.js +237 -237
  63. package/esm2015/lib/cryptography/key-graph.service.js +280 -280
  64. package/esm2015/lib/cryptography/key-meta.service.js +200 -200
  65. package/esm2015/lib/cryptography/key.service.js +124 -124
  66. package/esm2015/lib/cryptography/slip39.service.js +169 -169
  67. package/esm2015/lib/cryptography/web-crypto.service.js +29 -29
  68. package/esm2015/lib/life-ready.config.js +84 -84
  69. package/esm2015/lib/life-ready.module.js +74 -74
  70. package/esm2015/lib/plan/plan.gql.js +123 -123
  71. package/esm2015/lib/plan/plan.service.js +149 -149
  72. package/esm2015/lib/plan/plan.types.js +11 -11
  73. package/esm2015/lib/record/record-attachment.service.js +101 -101
  74. package/esm2015/lib/record/record.gql.js +179 -179
  75. package/esm2015/lib/record/record.service.js +206 -206
  76. package/esm2015/lib/record/record.types.js +15 -15
  77. package/esm2015/lib/record-type/record-type.service.js +75 -75
  78. package/esm2015/lib/record-type/record-type.types.js +28 -28
  79. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -105
  80. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -1
  81. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -300
  82. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -52
  83. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -97
  84. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -1
  85. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -150
  86. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -229
  87. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -1
  88. package/esm2015/lib/scenario/scenario-setup.service.js +269 -269
  89. package/esm2015/lib/scenario/scenario.gql.js +368 -368
  90. package/esm2015/lib/scenario/scenario.service.js +611 -611
  91. package/esm2015/lib/scenario/scenario.types.js +64 -64
  92. package/esm2015/lib/search/search.gql.js +62 -62
  93. package/esm2015/lib/search/search.service.js +156 -156
  94. package/esm2015/lib/search/search.types.js +6 -6
  95. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -112
  96. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -129
  97. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -4
  98. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -232
  99. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -299
  100. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -148
  101. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -326
  102. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -41
  103. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -87
  104. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -215
  105. package/esm2015/lib/users/profile-details.service.js +214 -214
  106. package/esm2015/lib/users/profile.gql.js +97 -97
  107. package/esm2015/lib/users/profile.service.js +169 -169
  108. package/esm2015/lib/users/profile.types.js +34 -34
  109. package/esm2015/lib/users/user.gql.js +60 -60
  110. package/esm2015/lib/users/user.service.js +79 -79
  111. package/esm2015/lib/users/user.types.js +5 -5
  112. package/esm2015/lifeready-core.js +10 -10
  113. package/esm2015/public-api.js +81 -81
  114. package/fesm2015/lifeready-core.js +13088 -13088
  115. package/fesm2015/lifeready-core.js.map +1 -1
  116. package/lib/_common/ast.d.ts +11 -11
  117. package/lib/_common/deferred-promise.d.ts +12 -12
  118. package/lib/_common/exceptions.d.ts +109 -109
  119. package/lib/_common/queries.gql.d.ts +10 -10
  120. package/lib/_common/run-outside-angular.d.ts +14 -14
  121. package/lib/_common/types.d.ts +10 -10
  122. package/lib/_common/utils.d.ts +3 -3
  123. package/lib/api/contact-card.gql.d.ts +7 -7
  124. package/lib/api/contact-card.service.d.ts +52 -52
  125. package/lib/api/contact-card2.gql.d.ts +34 -34
  126. package/lib/api/contact-card2.service.d.ts +49 -49
  127. package/lib/api/file.service.d.ts +18 -18
  128. package/lib/api/item2.gql.d.ts +96 -96
  129. package/lib/api/item2.service.d.ts +177 -177
  130. package/lib/api/key-exchange.gql.d.ts +9 -9
  131. package/lib/api/key-exchange.service.d.ts +39 -39
  132. package/lib/api/key-exchange.types.d.ts +196 -196
  133. package/lib/api/key-exchange2.gql.d.ts +125 -125
  134. package/lib/api/key-exchange2.service.d.ts +187 -187
  135. package/lib/api/lock.gql.d.ts +27 -27
  136. package/lib/api/lock.service.d.ts +25 -25
  137. package/lib/api/lr-apollo.service.d.ts +15 -15
  138. package/lib/api/lr-graphql/index.d.ts +5 -5
  139. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -60
  140. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -27
  141. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -28
  142. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -8
  143. package/lib/api/lr-graphql/lr.service.d.ts +9 -9
  144. package/lib/api/message.service.d.ts +58 -58
  145. package/lib/api/persist.service.d.ts +31 -31
  146. package/lib/api/query-processor/common-processors.service.d.ts +36 -36
  147. package/lib/api/query-processor/index.d.ts +2 -2
  148. package/lib/api/query-processor/query-processor.service.d.ts +18 -18
  149. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -15
  150. package/lib/api/shared-contact-card.service.d.ts +33 -33
  151. package/lib/api/shared-contact-card2.gql.d.ts +36 -36
  152. package/lib/api/shared-contact-card2.service.d.ts +45 -45
  153. package/lib/api/time.service.d.ts +16 -16
  154. package/lib/api/types/graphql.types.d.ts +29 -29
  155. package/lib/api/types/index.d.ts +2 -2
  156. package/lib/api/types/lr-graphql.types.d.ts +385 -385
  157. package/lib/auth/auth.config.d.ts +5 -5
  158. package/lib/auth/auth.gql.d.ts +15 -15
  159. package/lib/auth/auth.types.d.ts +66 -66
  160. package/lib/auth/idle.service.d.ts +40 -40
  161. package/lib/auth/idle.types.d.ts +10 -10
  162. package/lib/auth/lbop.service.d.ts +91 -91
  163. package/lib/auth/life-ready-auth.service.d.ts +59 -59
  164. package/lib/auth/password.service.d.ts +78 -78
  165. package/lib/auth/register.service.d.ts +25 -25
  166. package/lib/auth/two-factor.service.d.ts +15 -15
  167. package/lib/category/category-meta.service.d.ts +23 -23
  168. package/lib/category/category.gql.d.ts +45 -45
  169. package/lib/category/category.service.d.ts +67 -67
  170. package/lib/category/category.types.d.ts +79 -79
  171. package/lib/cryptography/cryptography.types.d.ts +83 -83
  172. package/lib/cryptography/encryption.service.d.ts +41 -41
  173. package/lib/cryptography/key-factory.service.d.ts +38 -38
  174. package/lib/cryptography/key-graph.service.d.ts +33 -33
  175. package/lib/cryptography/key-meta.service.d.ts +44 -44
  176. package/lib/cryptography/key.service.d.ts +36 -36
  177. package/lib/cryptography/slip39.service.d.ts +43 -43
  178. package/lib/cryptography/web-crypto.service.d.ts +5 -5
  179. package/lib/life-ready.config.d.ts +14 -14
  180. package/lib/life-ready.module.d.ts +5 -5
  181. package/lib/plan/plan.gql.d.ts +11 -11
  182. package/lib/plan/plan.service.d.ts +33 -33
  183. package/lib/plan/plan.types.d.ts +31 -31
  184. package/lib/record/record-attachment.service.d.ts +16 -16
  185. package/lib/record/record.gql.d.ts +14 -14
  186. package/lib/record/record.service.d.ts +25 -25
  187. package/lib/record/record.types.d.ts +57 -57
  188. package/lib/record-type/record-type.service.d.ts +11 -11
  189. package/lib/record-type/record-type.types.d.ts +50 -50
  190. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -7
  191. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -63
  192. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -32
  193. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -5
  194. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -17
  195. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -18
  196. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -8
  197. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -30
  198. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -54
  199. package/lib/scenario/scenario-setup.service.d.ts +22 -22
  200. package/lib/scenario/scenario.gql.d.ts +34 -34
  201. package/lib/scenario/scenario.service.d.ts +58 -58
  202. package/lib/scenario/scenario.types.d.ts +217 -217
  203. package/lib/search/search.gql.d.ts +1 -1
  204. package/lib/search/search.service.d.ts +25 -25
  205. package/lib/search/search.types.d.ts +20 -20
  206. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -20
  207. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -35
  208. package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -3
  209. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -218
  210. package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -130
  211. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -9
  212. package/lib/trusted-parties/trusted-party.service.d.ts +44 -44
  213. package/lib/trusted-parties/trusted-party.types.d.ts +102 -102
  214. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -79
  215. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -114
  216. package/lib/users/profile-details.service.d.ts +21 -21
  217. package/lib/users/profile.gql.d.ts +11 -11
  218. package/lib/users/profile.service.d.ts +35 -35
  219. package/lib/users/profile.types.d.ts +96 -96
  220. package/lib/users/user.gql.d.ts +9 -9
  221. package/lib/users/user.service.d.ts +12 -12
  222. package/lib/users/user.types.d.ts +23 -23
  223. package/lifeready-core.d.ts +9 -9
  224. package/package.json +1 -1
  225. package/public-api.d.ts +77 -77
@@ -1,84 +1,84 @@
1
- import { __awaiter } from "tslib";
2
- import { InjectionToken } from '@angular/core';
3
- import { ApolloLink, createHttpLink, from, InMemoryCache, } from '@apollo/client/core';
4
- import { setContext } from '@apollo/client/link/context';
5
- import { RetryLink } from '@apollo/client/link/retry';
6
- import { LrApiErrorCode } from './_common/exceptions';
7
- export const LR_CONFIG = new InjectionToken('LR.AUTH');
8
- const RETRY_ERROR_CODES = [LrApiErrorCode.CONCURRENT_ACCESS];
9
- export const configureApollo = (config, auth) => {
10
- const defaultOptions = {
11
- watchQuery: {
12
- fetchPolicy: 'no-cache',
13
- errorPolicy: 'all',
14
- },
15
- query: {
16
- fetchPolicy: 'no-cache',
17
- errorPolicy: 'all',
18
- },
19
- mutate: {
20
- errorPolicy: 'all',
21
- },
22
- };
23
- const authLink = setContext((_, { headers }) => __awaiter(void 0, void 0, void 0, function* () {
24
- let accessJwt = null;
25
- try {
26
- accessJwt = (yield auth.currentSession()).getAccessToken();
27
- }
28
- catch (_a) {
29
- console.log('User not signed in');
30
- }
31
- return {
32
- headers: Object.assign(Object.assign({}, headers), { authorization: accessJwt ? `Bearer ${accessJwt.jwtToken}` : '' }),
33
- };
34
- }));
35
- // We are only retrying on certain errors, like the CONCURRENT_ACCESS gql
36
- // error which indicates DB race condition. So can be safely retried.
37
- const retryIf = (error, _) => {
38
- // The RetryLink is called on network error as well, so we need to filter for GraphQL errors.
39
- if (error instanceof GraphQLErrorException) {
40
- if (error.errors.some((e) => { var _a; return RETRY_ERROR_CODES.includes((_a = e.extensions) === null || _a === void 0 ? void 0 : _a.code); })) {
41
- return true;
42
- }
43
- }
44
- return false;
45
- };
46
- const retryLink = new RetryLink({
47
- delay: {
48
- initial: 300,
49
- max: Infinity,
50
- jitter: true,
51
- },
52
- attempts: {
53
- max: 3,
54
- retryIf,
55
- },
56
- });
57
- class GraphQLErrorException extends Error {
58
- constructor(errors) {
59
- super(errors.map((e) => e.message).join(', '));
60
- this.errors = errors;
61
- }
62
- }
63
- // Throw exception on gql errors which effectively promotes it to a network
64
- // error, which can then be handled by the RetryLink.
65
- const promoteGqlErrors = new ApolloLink((operation, forward) => {
66
- return forward(operation).map((data) => {
67
- if (data && data.errors) {
68
- const errors = data.errors.filter((e) => { var _a; return RETRY_ERROR_CODES.includes((_a = e.extensions) === null || _a === void 0 ? void 0 : _a.code); });
69
- if (errors.length > 0) {
70
- throw new GraphQLErrorException(data.errors);
71
- }
72
- }
73
- return data;
74
- });
75
- });
76
- const httpLink = createHttpLink({
77
- uri: config.apolloUrl,
78
- // Sending the sessionid cookie so that the server can use session data when needed.
79
- // eg. setting the session encryption key.
80
- credentials: 'include',
81
- });
82
- return Object.assign({ link: from([retryLink, promoteGqlErrors, authLink, httpLink]), cache: new InMemoryCache(), defaultOptions }, config.apolloConfig);
83
- };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2xpZmUtcmVhZHkuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFFTCxVQUFVLEVBQ1YsY0FBYyxFQUVkLElBQUksRUFDSixhQUFhLEdBQ2QsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd0RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQWtCLFNBQVMsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQWE3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBdUIsRUFDdkIsSUFBZSxFQUNXLEVBQUU7SUFDNUIsTUFBTSxjQUFjLEdBQW1CO1FBQ3JDLFVBQVUsRUFBRTtZQUNWLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLO1NBQ25CO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLFVBQVU7WUFDdkIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7UUFDRCxNQUFNLEVBQUU7WUFDTixXQUFXLEVBQUUsS0FBSztTQUNuQjtLQUNGLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO1FBQ25ELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQztR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QyxZQUFZLEVBQ3RCO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhDbGFzcyB9IGZyb20gJ0Bhd3MtYW1wbGlmeS9hdXRoL2xpYi1lc20vQXV0aCc7XG5pbXBvcnQge1xuICBBcG9sbG9DbGllbnRPcHRpb25zLFxuICBBcG9sbG9MaW5rLFxuICBjcmVhdGVIdHRwTGluayxcbiAgRGVmYXVsdE9wdGlvbnMsXG4gIGZyb20sXG4gIEluTWVtb3J5Q2FjaGUsXG59IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgc2V0Q29udGV4dCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2xpbmsvY29udGV4dCc7XG5pbXBvcnQgeyBSZXRyeUxpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3JldHJ5JztcbmltcG9ydCB7IExyQXBpRXJyb3JDb2RlIH0gZnJvbSAnLi9fY29tbW9uL2V4Y2VwdGlvbnMnO1xuaW1wb3J0IHsgR3JhcGhRTEVycm9yIH0gZnJvbSAnZ3JhcGhxbCc7XG5cbmV4cG9ydCBjb25zdCBMUl9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TGlmZVJlYWR5Q29uZmlnPignTFIuQVVUSCcpO1xuY29uc3QgUkVUUllfRVJST1JfQ09ERVMgPSBbTHJBcGlFcnJvckNvZGUuQ09OQ1VSUkVOVF9BQ0NFU1NdO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpZmVSZWFkeUNvbmZpZyB7XG4gIGF1dGhVcmw6IHN0cmluZztcbiAgYXBpVXJsOiBzdHJpbmc7XG4gIGFwb2xsb1VybDogc3RyaW5nO1xuICB1c2VyUG9vbElkOiBzdHJpbmc7XG4gIHVzZXJQb29sV2ViQ2xpZW50SWQ6IHN0cmluZztcbiAgYXBvbGxvQ29uZmlnPzogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+O1xuICAvLyBNYWlubHkgdG8gYWxsb3cgbG9jYWxob3N0IHRvIG5vdCBuZWVkaW5nIHRoaXMuIERlZmF1bHQgdG8gZmFsc3lcbiAgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZUFwb2xsbyA9IChcbiAgY29uZmlnOiBMaWZlUmVhZHlDb25maWcsXG4gIGF1dGg6IEF1dGhDbGFzc1xuKTogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+ID0+IHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IERlZmF1bHRPcHRpb25zID0ge1xuICAgIHdhdGNoUXVlcnk6IHtcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxuICAgIH0sXG4gICAgcXVlcnk6IHtcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxuICAgIH0sXG4gICAgbXV0YXRlOiB7XG4gICAgICBlcnJvclBvbGljeTogJ2FsbCcsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBhdXRoTGluayA9IHNldENvbnRleHQoYXN5bmMgKF8sIHsgaGVhZGVycyB9KSA9PiB7XG4gICAgbGV0IGFjY2Vzc0p3dCA9IG51bGw7XG4gICAgdHJ5IHtcbiAgICAgIGFjY2Vzc0p3dCA9IChhd2FpdCBhdXRoLmN1cnJlbnRTZXNzaW9uKCkpLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBjb25zb2xlLmxvZygnVXNlciBub3Qgc2lnbmVkIGluJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgYXV0aG9yaXphdGlvbjogYWNjZXNzSnd0ID8gYEJlYXJlciAke2FjY2Vzc0p3dC5qd3RUb2tlbn1gIDogJycsXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4gIC8vIFdlIGFyZSBvbmx5IHJldHJ5aW5nIG9uIGNlcnRhaW4gZXJyb3JzLCBsaWtlIHRoZSBDT05DVVJSRU5UX0FDQ0VTUyBncWxcbiAgLy8gZXJyb3Igd2hpY2ggaW5kaWNhdGVzIERCIHJhY2UgY29uZGl0aW9uLiBTbyBjYW4gYmUgc2FmZWx5IHJldHJpZWQuXG4gIGNvbnN0IHJldHJ5SWYgPSAoZXJyb3IsIF8pID0+IHtcbiAgICAvLyBUaGUgUmV0cnlMaW5rIGlzIGNhbGxlZCBvbiBuZXR3b3JrIGVycm9yIGFzIHdlbGwsIHNvIHdlIG5lZWQgdG8gZmlsdGVyIGZvciBHcmFwaFFMIGVycm9ycy5cbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBHcmFwaFFMRXJyb3JFeGNlcHRpb24pIHtcbiAgICAgIGlmIChcbiAgICAgICAgZXJyb3IuZXJyb3JzLnNvbWUoKGUpID0+IFJFVFJZX0VSUk9SX0NPREVTLmluY2x1ZGVzKGUuZXh0ZW5zaW9ucz8uY29kZSkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGNvbnN0IHJldHJ5TGluayA9IG5ldyBSZXRyeUxpbmsoe1xuICAgIGRlbGF5OiB7XG4gICAgICBpbml0aWFsOiAzMDAsXG4gICAgICBtYXg6IEluZmluaXR5LFxuICAgICAgaml0dGVyOiB0cnVlLFxuICAgIH0sXG4gICAgYXR0ZW1wdHM6IHtcbiAgICAgIG1heDogMyxcbiAgICAgIHJldHJ5SWYsXG4gICAgfSxcbiAgfSk7XG5cbiAgY2xhc3MgR3JhcGhRTEVycm9yRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvcnM6IHJlYWRvbmx5IEdyYXBoUUxFcnJvcltdKSB7XG4gICAgICBzdXBlcihlcnJvcnMubWFwKChlKSA9PiBlLm1lc3NhZ2UpLmpvaW4oJywgJykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRocm93IGV4Y2VwdGlvbiBvbiBncWwgZXJyb3JzIHdoaWNoIGVmZmVjdGl2ZWx5IHByb21vdGVzIGl0IHRvIGEgbmV0d29ya1xuICAvLyBlcnJvciwgd2hpY2ggY2FuIHRoZW4gYmUgaGFuZGxlZCBieSB0aGUgUmV0cnlMaW5rLlxuICBjb25zdCBwcm9tb3RlR3FsRXJyb3JzID0gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbiwgZm9yd2FyZCkgPT4ge1xuICAgIHJldHVybiBmb3J3YXJkKG9wZXJhdGlvbikubWFwKChkYXRhKSA9PiB7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLmVycm9ycykge1xuICAgICAgICBjb25zdCBlcnJvcnMgPSBkYXRhLmVycm9ycy5maWx0ZXIoKGUpID0+XG4gICAgICAgICAgUkVUUllfRVJST1JfQ09ERVMuaW5jbHVkZXMoZS5leHRlbnNpb25zPy5jb2RlKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBHcmFwaFFMRXJyb3JFeGNlcHRpb24oZGF0YS5lcnJvcnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgaHR0cExpbmsgPSBjcmVhdGVIdHRwTGluayh7XG4gICAgdXJpOiBjb25maWcuYXBvbGxvVXJsLFxuICAgIC8vIFNlbmRpbmcgdGhlIHNlc3Npb25pZCBjb29raWUgc28gdGhhdCB0aGUgc2VydmVyIGNhbiB1c2Ugc2Vzc2lvbiBkYXRhIHdoZW4gbmVlZGVkLlxuICAgIC8vIGVnLiBzZXR0aW5nIHRoZSBzZXNzaW9uIGVuY3J5cHRpb24ga2V5LlxuICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgbGluazogZnJvbShbcmV0cnlMaW5rLCBwcm9tb3RlR3FsRXJyb3JzLCBhdXRoTGluaywgaHR0cExpbmtdKSxcbiAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKSxcbiAgICBkZWZhdWx0T3B0aW9ucyxcbiAgICAuLi5jb25maWcuYXBvbGxvQ29uZmlnLFxuICB9O1xufTtcbiJdfQ==
1
+ import { __awaiter } from "tslib";
2
+ import { InjectionToken } from '@angular/core';
3
+ import { ApolloLink, createHttpLink, from, InMemoryCache, } from '@apollo/client/core';
4
+ import { setContext } from '@apollo/client/link/context';
5
+ import { RetryLink } from '@apollo/client/link/retry';
6
+ import { LrApiErrorCode } from './_common/exceptions';
7
+ export const LR_CONFIG = new InjectionToken('LR.AUTH');
8
+ const RETRY_ERROR_CODES = [LrApiErrorCode.CONCURRENT_ACCESS];
9
+ export const configureApollo = (config, auth) => {
10
+ const defaultOptions = {
11
+ watchQuery: {
12
+ fetchPolicy: 'no-cache',
13
+ errorPolicy: 'all',
14
+ },
15
+ query: {
16
+ fetchPolicy: 'no-cache',
17
+ errorPolicy: 'all',
18
+ },
19
+ mutate: {
20
+ errorPolicy: 'all',
21
+ },
22
+ };
23
+ const authLink = setContext((_, { headers }) => __awaiter(void 0, void 0, void 0, function* () {
24
+ let accessJwt = null;
25
+ try {
26
+ accessJwt = (yield auth.currentSession()).getAccessToken();
27
+ }
28
+ catch (_a) {
29
+ console.log('User not signed in');
30
+ }
31
+ return {
32
+ headers: Object.assign(Object.assign({}, headers), { authorization: accessJwt ? `Bearer ${accessJwt.jwtToken}` : '' }),
33
+ };
34
+ }));
35
+ // We are only retrying on certain errors, like the CONCURRENT_ACCESS gql
36
+ // error which indicates DB race condition. So can be safely retried.
37
+ const retryIf = (error, _) => {
38
+ // The RetryLink is called on network error as well, so we need to filter for GraphQL errors.
39
+ if (error instanceof GraphQLErrorException) {
40
+ if (error.errors.some((e) => { var _a; return RETRY_ERROR_CODES.includes((_a = e.extensions) === null || _a === void 0 ? void 0 : _a.code); })) {
41
+ return true;
42
+ }
43
+ }
44
+ return false;
45
+ };
46
+ const retryLink = new RetryLink({
47
+ delay: {
48
+ initial: 300,
49
+ max: Infinity,
50
+ jitter: true,
51
+ },
52
+ attempts: {
53
+ max: 3,
54
+ retryIf,
55
+ },
56
+ });
57
+ class GraphQLErrorException extends Error {
58
+ constructor(errors) {
59
+ super(errors.map((e) => e.message).join(', '));
60
+ this.errors = errors;
61
+ }
62
+ }
63
+ // Throw exception on gql errors which effectively promotes it to a network
64
+ // error, which can then be handled by the RetryLink.
65
+ const promoteGqlErrors = new ApolloLink((operation, forward) => {
66
+ return forward(operation).map((data) => {
67
+ if (data && data.errors) {
68
+ const errors = data.errors.filter((e) => { var _a; return RETRY_ERROR_CODES.includes((_a = e.extensions) === null || _a === void 0 ? void 0 : _a.code); });
69
+ if (errors.length > 0) {
70
+ throw new GraphQLErrorException(data.errors);
71
+ }
72
+ }
73
+ return data;
74
+ });
75
+ });
76
+ const httpLink = createHttpLink({
77
+ uri: config.apolloUrl,
78
+ // Sending the sessionid cookie so that the server can use session data when needed.
79
+ // eg. setting the session encryption key.
80
+ credentials: 'include',
81
+ });
82
+ return Object.assign({ link: from([retryLink, promoteGqlErrors, authLink, httpLink]), cache: new InMemoryCache(), defaultOptions }, config.apolloConfig);
83
+ };
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5jb25maWcuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvbmV3cmVwby9rYy1jbGllbnQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbGlmZS1yZWFkeS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsT0FBTyxFQUVMLFVBQVUsRUFDVixjQUFjLEVBRWQsSUFBSSxFQUNKLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3RELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsU0FBUyxDQUFDLENBQUM7QUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBYTdELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixNQUF1QixFQUN2QixJQUFlLEVBQ1csRUFBRTtJQUM1QixNQUFNLGNBQWMsR0FBbUI7UUFDckMsVUFBVSxFQUFFO1lBQ1YsV0FBVyxFQUFFLFVBQVU7WUFDdkIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7UUFDRCxLQUFLLEVBQUU7WUFDTCxXQUFXLEVBQUUsVUFBVTtZQUN2QixXQUFXLEVBQUUsS0FBSztTQUNuQjtRQUNELE1BQU0sRUFBRTtZQUNOLFdBQVcsRUFBRSxLQUFLO1NBQ25CO0tBQ0YsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7UUFDbkQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElB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RUFDdEI7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdXRoQ2xhc3MgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aC9saWItZXNtL0F1dGgnO1xyXG5pbXBvcnQge1xyXG4gIEFwb2xsb0NsaWVudE9wdGlvbnMsXHJcbiAgQXBvbGxvTGluayxcclxuICBjcmVhdGVIdHRwTGluayxcclxuICBEZWZhdWx0T3B0aW9ucyxcclxuICBmcm9tLFxyXG4gIEluTWVtb3J5Q2FjaGUsXHJcbn0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XHJcbmltcG9ydCB7IHNldENvbnRleHQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL2NvbnRleHQnO1xyXG5pbXBvcnQgeyBSZXRyeUxpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3JldHJ5JztcclxuaW1wb3J0IHsgTHJBcGlFcnJvckNvZGUgfSBmcm9tICcuL19jb21tb24vZXhjZXB0aW9ucyc7XHJcbmltcG9ydCB7IEdyYXBoUUxFcnJvciB9IGZyb20gJ2dyYXBocWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExSX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMaWZlUmVhZHlDb25maWc+KCdMUi5BVVRIJyk7XHJcbmNvbnN0IFJFVFJZX0VSUk9SX0NPREVTID0gW0xyQXBpRXJyb3JDb2RlLkNPTkNVUlJFTlRfQUNDRVNTXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGlmZVJlYWR5Q29uZmlnIHtcclxuICBhdXRoVXJsOiBzdHJpbmc7XHJcbiAgYXBpVXJsOiBzdHJpbmc7XHJcbiAgYXBvbGxvVXJsOiBzdHJpbmc7XHJcbiAgdXNlclBvb2xJZDogc3RyaW5nO1xyXG4gIHVzZXJQb29sV2ViQ2xpZW50SWQ6IHN0cmluZztcclxuICBhcG9sbG9Db25maWc/OiBBcG9sbG9DbGllbnRPcHRpb25zPGFueT47XHJcbiAgLy8gTWFpbmx5IHRvIGFsbG93IGxvY2FsaG9zdCB0byBub3QgbmVlZGluZyB0aGlzLiBEZWZhdWx0IHRvIGZhbHN5XHJcbiAgZGlzYWJsZVNlc3Npb25FbmNyeXB0aW9uS2V5PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNvbmZpZ3VyZUFwb2xsbyA9IChcclxuICBjb25maWc6IExpZmVSZWFkeUNvbmZpZyxcclxuICBhdXRoOiBBdXRoQ2xhc3NcclxuKTogQXBvbGxvQ2xpZW50T3B0aW9uczxhbnk+ID0+IHtcclxuICBjb25zdCBkZWZhdWx0T3B0aW9uczogRGVmYXVsdE9wdGlvbnMgPSB7XHJcbiAgICB3YXRjaFF1ZXJ5OiB7XHJcbiAgICAgIGZldGNoUG9saWN5OiAnbm8tY2FjaGUnLFxyXG4gICAgICBlcnJvclBvbGljeTogJ2FsbCcsXHJcbiAgICB9LFxyXG4gICAgcXVlcnk6IHtcclxuICAgICAgZmV0Y2hQb2xpY3k6ICduby1jYWNoZScsXHJcbiAgICAgIGVycm9yUG9saWN5OiAnYWxsJyxcclxuICAgIH0sXHJcbiAgICBtdXRhdGU6IHtcclxuICAgICAgZXJyb3JQb2xpY3k6ICdhbGwnLFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjb25zdCBhdXRoTGluayA9IHNldENvbnRleHQoYXN5bmMgKF8sIHsgaGVhZGVycyB9KSA9PiB7XHJcbiAgICBsZXQgYWNjZXNzSnd0ID0gbnVsbDtcclxuICAgIHRyeSB7XHJcbiAgICAgIGFjY2Vzc0p3dCA9IChhd2FpdCBhdXRoLmN1cnJlbnRTZXNzaW9uKCkpLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgY29uc29sZS5sb2coJ1VzZXIgbm90IHNpZ25lZCBpbicpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAuLi5oZWFkZXJzLFxyXG4gICAgICAgIGF1dGhvcml6YXRpb246IGFjY2Vzc0p3dCA/IGBCZWFyZXIgJHthY2Nlc3NKd3Quand0VG9rZW59YCA6ICcnLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9KTtcclxuXHJcbiAgLy8gV2UgYXJlIG9ubHkgcmV0cnlpbmcgb24gY2VydGFpbiBlcnJvcnMsIGxpa2UgdGhlIENPTkNVUlJFTlRfQUNDRVNTIGdxbFxyXG4gIC8vIGVycm9yIHdoaWNoIGluZGljYXRlcyBEQiByYWNlIGNvbmRpdGlvbi4gU28gY2FuIGJlIHNhZmVseSByZXRyaWVkLlxyXG4gIGNvbnN0IHJldHJ5SWYgPSAoZXJyb3IsIF8pID0+IHtcclxuICAgIC8vIFRoZSBSZXRyeUxpbmsgaXMgY2FsbGVkIG9uIG5ldHdvcmsgZXJyb3IgYXMgd2VsbCwgc28gd2UgbmVlZCB0byBmaWx0ZXIgZm9yIEdyYXBoUUwgZXJyb3JzLlxyXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgR3JhcGhRTEVycm9yRXhjZXB0aW9uKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBlcnJvci5lcnJvcnMuc29tZSgoZSkgPT4gUkVUUllfRVJST1JfQ09ERVMuaW5jbHVkZXMoZS5leHRlbnNpb25zPy5jb2RlKSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfTtcclxuXHJcbiAgY29uc3QgcmV0cnlMaW5rID0gbmV3IFJldHJ5TGluayh7XHJcbiAgICBkZWxheToge1xyXG4gICAgICBpbml0aWFsOiAzMDAsXHJcbiAgICAgIG1heDogSW5maW5pdHksXHJcbiAgICAgIGppdHRlcjogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBhdHRlbXB0czoge1xyXG4gICAgICBtYXg6IDMsXHJcbiAgICAgIHJldHJ5SWYsXHJcbiAgICB9LFxyXG4gIH0pO1xyXG5cclxuICBjbGFzcyBHcmFwaFFMRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JzOiByZWFkb25seSBHcmFwaFFMRXJyb3JbXSkge1xyXG4gICAgICBzdXBlcihlcnJvcnMubWFwKChlKSA9PiBlLm1lc3NhZ2UpLmpvaW4oJywgJykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVGhyb3cgZXhjZXB0aW9uIG9uIGdxbCBlcnJvcnMgd2hpY2ggZWZmZWN0aXZlbHkgcHJvbW90ZXMgaXQgdG8gYSBuZXR3b3JrXHJcbiAgLy8gZXJyb3IsIHdoaWNoIGNhbiB0aGVuIGJlIGhhbmRsZWQgYnkgdGhlIFJldHJ5TGluay5cclxuICBjb25zdCBwcm9tb3RlR3FsRXJyb3JzID0gbmV3IEFwb2xsb0xpbmsoKG9wZXJhdGlvbiwgZm9yd2FyZCkgPT4ge1xyXG4gICAgcmV0dXJuIGZvcndhcmQob3BlcmF0aW9uKS5tYXAoKGRhdGEpID0+IHtcclxuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5lcnJvcnMpIHtcclxuICAgICAgICBjb25zdCBlcnJvcnMgPSBkYXRhLmVycm9ycy5maWx0ZXIoKGUpID0+XHJcbiAgICAgICAgICBSRVRSWV9FUlJPUl9DT0RFUy5pbmNsdWRlcyhlLmV4dGVuc2lvbnM/LmNvZGUpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhRTEVycm9yRXhjZXB0aW9uKGRhdGEuZXJyb3JzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgY29uc3QgaHR0cExpbmsgPSBjcmVhdGVIdHRwTGluayh7XHJcbiAgICB1cmk6IGNvbmZpZy5hcG9sbG9VcmwsXHJcbiAgICAvLyBTZW5kaW5nIHRoZSBzZXNzaW9uaWQgY29va2llIHNvIHRoYXQgdGhlIHNlcnZlciBjYW4gdXNlIHNlc3Npb24gZGF0YSB3aGVuIG5lZWRlZC5cclxuICAgIC8vIGVnLiBzZXR0aW5nIHRoZSBzZXNzaW9uIGVuY3J5cHRpb24ga2V5LlxyXG4gICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGxpbms6IGZyb20oW3JldHJ5TGluaywgcHJvbW90ZUdxbEVycm9ycywgYXV0aExpbmssIGh0dHBMaW5rXSksXHJcbiAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKSxcclxuICAgIGRlZmF1bHRPcHRpb25zLFxyXG4gICAgLi4uY29uZmlnLmFwb2xsb0NvbmZpZyxcclxuICB9O1xyXG59O1xyXG4iXX0=
@@ -1,74 +1,74 @@
1
- import { HttpClientModule } from '@angular/common/http';
2
- import { APP_INITIALIZER, NgModule } from '@angular/core';
3
- import Auth from '@aws-amplify/auth';
4
- import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
5
- import { APOLLO_OPTIONS } from 'apollo-angular';
6
- import { CookieService } from 'ngx-cookie-service';
7
- import { FileService } from './api/file.service';
8
- import { ProfileService } from './users/profile.service';
9
- import { configureAmplifyAuth } from './auth/auth.config';
10
- import { initialiseAuth, LifeReadyAuthService, } from './auth/life-ready-auth.service';
11
- import { PasswordService } from './auth/password.service';
12
- import { RegisterService } from './auth/register.service';
13
- import { EncryptionService } from './cryptography/encryption.service';
14
- import { KeyGraphService } from './cryptography/key-graph.service';
15
- import { KeyService } from './cryptography/key.service';
16
- import { KeyFactoryService } from './cryptography/key-factory.service';
17
- import { WebCryptoService } from './cryptography/web-crypto.service';
18
- import { configureApollo, LR_CONFIG, } from './life-ready.config';
19
- import { TimeService } from './api/time.service';
20
- import { NgIdleKeepaliveModule } from '@ng-idle/keepalive';
21
- export class LifeReadyModule {
22
- static forRoot(config) {
23
- return {
24
- ngModule: LifeReadyModule,
25
- providers: [
26
- {
27
- provide: LR_CONFIG,
28
- useValue: config,
29
- },
30
- {
31
- provide: AuthClass,
32
- useValue: Auth,
33
- },
34
- {
35
- provide: APP_INITIALIZER,
36
- useFactory: configureAmplifyAuth,
37
- deps: [LR_CONFIG, AuthClass],
38
- multi: true,
39
- },
40
- {
41
- provide: APP_INITIALIZER,
42
- useFactory: initialiseAuth,
43
- deps: [LifeReadyAuthService],
44
- multi: true,
45
- },
46
- {
47
- provide: APOLLO_OPTIONS,
48
- useFactory: configureApollo,
49
- deps: [LR_CONFIG, AuthClass],
50
- },
51
- ],
52
- };
53
- }
54
- }
55
- LifeReadyModule.decorators = [
56
- { type: NgModule, args: [{
57
- imports: [HttpClientModule, NgIdleKeepaliveModule.forRoot()],
58
- providers: [
59
- CookieService,
60
- TimeService,
61
- FileService,
62
- ProfileService,
63
- RegisterService,
64
- LifeReadyAuthService,
65
- PasswordService,
66
- WebCryptoService,
67
- EncryptionService,
68
- KeyGraphService,
69
- KeyService,
70
- KeyFactoryService,
71
- ],
72
- },] }
73
- ];
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2xpZmUtcmVhZHkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLElBQUksTUFBTSxtQkFBbUIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFDTCxjQUFjLEVBQ2Qsb0JBQW9CLEdBQ3JCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxlQUFlLEVBRWYsU0FBUyxHQUNWLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBbUIzRCxNQUFNLE9BQU8sZUFBZTtJQUNuQixNQUFNLENBQUMsT0FBTyxDQUNuQixNQUF1QjtRQUV2QixPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxTQUFTO29CQUNsQixRQUFRLEVBQUUsTUFBTTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsb0JBQW9CO29CQUNoQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO29CQUM1QixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLGNBQWM7b0JBQzFCLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUM1QixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsY0FBYztvQkFDdkIsVUFBVSxFQUFFLGVBQWU7b0JBQzNCLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7aUJBQzdCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBbkRGLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDNUQsU0FBUyxFQUFFO29CQUNULGFBQWE7b0JBQ2IsV0FBVztvQkFDWCxXQUFXO29CQUNYLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixvQkFBb0I7b0JBQ3BCLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQixpQkFBaUI7b0JBQ2pCLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixpQkFBaUI7aUJBQ2xCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IEF1dGggZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgnO1xuaW1wb3J0IHsgQXV0aENsYXNzIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgvbGliLWVzbS9BdXRoJztcbmltcG9ydCB7IEFQT0xMT19PUFRJT05TIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBGaWxlU2VydmljZSB9IGZyb20gJy4vYXBpL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9maWxlU2VydmljZSB9IGZyb20gJy4vdXNlcnMvcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbmZpZ3VyZUFtcGxpZnlBdXRoIH0gZnJvbSAnLi9hdXRoL2F1dGguY29uZmlnJztcbmltcG9ydCB7XG4gIGluaXRpYWxpc2VBdXRoLFxuICBMaWZlUmVhZHlBdXRoU2VydmljZSxcbn0gZnJvbSAnLi9hdXRoL2xpZmUtcmVhZHktYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhc3N3b3JkU2VydmljZSB9IGZyb20gJy4vYXV0aC9wYXNzd29yZC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZ2lzdGVyU2VydmljZSB9IGZyb20gJy4vYXV0aC9yZWdpc3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG9ncmFwaHkvZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoU2VydmljZSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZSc7XG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQ3J5cHRvU2VydmljZSB9IGZyb20gJy4vY3J5cHRvZ3JhcGh5L3dlYi1jcnlwdG8uc2VydmljZSc7XG5pbXBvcnQge1xuICBjb25maWd1cmVBcG9sbG8sXG4gIExpZmVSZWFkeUNvbmZpZyxcbiAgTFJfQ09ORklHLFxufSBmcm9tICcuL2xpZmUtcmVhZHkuY29uZmlnJztcbmltcG9ydCB7IFRpbWVTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvdGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5nSWRsZUtlZXBhbGl2ZU1vZHVsZSB9IGZyb20gJ0BuZy1pZGxlL2tlZXBhbGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBOZ0lkbGVLZWVwYWxpdmVNb2R1bGUuZm9yUm9vdCgpXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29va2llU2VydmljZSxcbiAgICBUaW1lU2VydmljZSxcbiAgICBGaWxlU2VydmljZSxcbiAgICBQcm9maWxlU2VydmljZSxcbiAgICBSZWdpc3RlclNlcnZpY2UsXG4gICAgTGlmZVJlYWR5QXV0aFNlcnZpY2UsXG4gICAgUGFzc3dvcmRTZXJ2aWNlLFxuICAgIFdlYkNyeXB0b1NlcnZpY2UsXG4gICAgRW5jcnlwdGlvblNlcnZpY2UsXG4gICAgS2V5R3JhcGhTZXJ2aWNlLFxuICAgIEtleVNlcnZpY2UsXG4gICAgS2V5RmFjdG9yeVNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIExpZmVSZWFkeU1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChcbiAgICBjb25maWc6IExpZmVSZWFkeUNvbmZpZ1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPExpZmVSZWFkeU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTGlmZVJlYWR5TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBMUl9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEF1dGhDbGFzcyxcbiAgICAgICAgICB1c2VWYWx1ZTogQXV0aCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVBbXBsaWZ5QXV0aCxcbiAgICAgICAgICBkZXBzOiBbTFJfQ09ORklHLCBBdXRoQ2xhc3NdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpc2VBdXRoLFxuICAgICAgICAgIGRlcHM6IFtMaWZlUmVhZHlBdXRoU2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUE9MTE9fT1BUSU9OUyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVBcG9sbG8sXG4gICAgICAgICAgZGVwczogW0xSX0NPTkZJRywgQXV0aENsYXNzXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
1
+ import { HttpClientModule } from '@angular/common/http';
2
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
3
+ import Auth from '@aws-amplify/auth';
4
+ import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';
5
+ import { APOLLO_OPTIONS } from 'apollo-angular';
6
+ import { CookieService } from 'ngx-cookie-service';
7
+ import { FileService } from './api/file.service';
8
+ import { ProfileService } from './users/profile.service';
9
+ import { configureAmplifyAuth } from './auth/auth.config';
10
+ import { initialiseAuth, LifeReadyAuthService, } from './auth/life-ready-auth.service';
11
+ import { PasswordService } from './auth/password.service';
12
+ import { RegisterService } from './auth/register.service';
13
+ import { EncryptionService } from './cryptography/encryption.service';
14
+ import { KeyGraphService } from './cryptography/key-graph.service';
15
+ import { KeyService } from './cryptography/key.service';
16
+ import { KeyFactoryService } from './cryptography/key-factory.service';
17
+ import { WebCryptoService } from './cryptography/web-crypto.service';
18
+ import { configureApollo, LR_CONFIG, } from './life-ready.config';
19
+ import { TimeService } from './api/time.service';
20
+ import { NgIdleKeepaliveModule } from '@ng-idle/keepalive';
21
+ export class LifeReadyModule {
22
+ static forRoot(config) {
23
+ return {
24
+ ngModule: LifeReadyModule,
25
+ providers: [
26
+ {
27
+ provide: LR_CONFIG,
28
+ useValue: config,
29
+ },
30
+ {
31
+ provide: AuthClass,
32
+ useValue: Auth,
33
+ },
34
+ {
35
+ provide: APP_INITIALIZER,
36
+ useFactory: configureAmplifyAuth,
37
+ deps: [LR_CONFIG, AuthClass],
38
+ multi: true,
39
+ },
40
+ {
41
+ provide: APP_INITIALIZER,
42
+ useFactory: initialiseAuth,
43
+ deps: [LifeReadyAuthService],
44
+ multi: true,
45
+ },
46
+ {
47
+ provide: APOLLO_OPTIONS,
48
+ useFactory: configureApollo,
49
+ deps: [LR_CONFIG, AuthClass],
50
+ },
51
+ ],
52
+ };
53
+ }
54
+ }
55
+ LifeReadyModule.decorators = [
56
+ { type: NgModule, args: [{
57
+ imports: [HttpClientModule, NgIdleKeepaliveModule.forRoot()],
58
+ providers: [
59
+ CookieService,
60
+ TimeService,
61
+ FileService,
62
+ ProfileService,
63
+ RegisterService,
64
+ LifeReadyAuthService,
65
+ PasswordService,
66
+ WebCryptoService,
67
+ EncryptionService,
68
+ KeyGraphService,
69
+ KeyService,
70
+ KeyFactoryService,
71
+ ],
72
+ },] }
73
+ ];
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZS1yZWFkeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvbmV3cmVwby9rYy1jbGllbnQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvbGlmZS1yZWFkeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUQsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsR0FDckIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUNMLGVBQWUsRUFFZixTQUFTLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFtQjNELE1BQU0sT0FBTyxlQUFlO0lBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQ25CLE1BQXVCO1FBRXZCLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFNBQVM7b0JBQ2xCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsU0FBUztvQkFDbEIsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxvQkFBb0I7b0JBQ2hDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7b0JBQzVCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsY0FBYztvQkFDMUIsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQzVCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxjQUFjO29CQUN2QixVQUFVLEVBQUUsZUFBZTtvQkFDM0IsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQztpQkFDN0I7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFuREYsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM1RCxTQUFTLEVBQUU7b0JBQ1QsYUFBYTtvQkFDYixXQUFXO29CQUNYLFdBQVc7b0JBQ1gsY0FBYztvQkFDZCxlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGlCQUFpQjtvQkFDakIsZUFBZTtvQkFDZixVQUFVO29CQUNWLGlCQUFpQjtpQkFDbEI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IEF1dGggZnJvbSAnQGF3cy1hbXBsaWZ5L2F1dGgnO1xyXG5pbXBvcnQgeyBBdXRoQ2xhc3MgfSBmcm9tICdAYXdzLWFtcGxpZnkvYXV0aC9saWItZXNtL0F1dGgnO1xyXG5pbXBvcnQgeyBBUE9MTE9fT1BUSU9OUyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9hcGkvZmlsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZmlsZVNlcnZpY2UgfSBmcm9tICcuL3VzZXJzL3Byb2ZpbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IGNvbmZpZ3VyZUFtcGxpZnlBdXRoIH0gZnJvbSAnLi9hdXRoL2F1dGguY29uZmlnJztcclxuaW1wb3J0IHtcclxuICBpbml0aWFsaXNlQXV0aCxcclxuICBMaWZlUmVhZHlBdXRoU2VydmljZSxcclxufSBmcm9tICcuL2F1dGgvbGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXNzd29yZFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvcGFzc3dvcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlZ2lzdGVyU2VydmljZSB9IGZyb20gJy4vYXV0aC9yZWdpc3Rlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuL2NyeXB0b2dyYXBoeS9lbmNyeXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuL2NyeXB0b2dyYXBoeS9rZXktZ3JhcGguc2VydmljZSc7XHJcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG9ncmFwaHkva2V5LWZhY3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlYkNyeXB0b1NlcnZpY2UgfSBmcm9tICcuL2NyeXB0b2dyYXBoeS93ZWItY3J5cHRvLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIGNvbmZpZ3VyZUFwb2xsbyxcclxuICBMaWZlUmVhZHlDb25maWcsXHJcbiAgTFJfQ09ORklHLFxyXG59IGZyb20gJy4vbGlmZS1yZWFkeS5jb25maWcnO1xyXG5pbXBvcnQgeyBUaW1lU2VydmljZSB9IGZyb20gJy4vYXBpL3RpbWUuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nSWRsZUtlZXBhbGl2ZU1vZHVsZSB9IGZyb20gJ0BuZy1pZGxlL2tlZXBhbGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBOZ0lkbGVLZWVwYWxpdmVNb2R1bGUuZm9yUm9vdCgpXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvb2tpZVNlcnZpY2UsXHJcbiAgICBUaW1lU2VydmljZSxcclxuICAgIEZpbGVTZXJ2aWNlLFxyXG4gICAgUHJvZmlsZVNlcnZpY2UsXHJcbiAgICBSZWdpc3RlclNlcnZpY2UsXHJcbiAgICBMaWZlUmVhZHlBdXRoU2VydmljZSxcclxuICAgIFBhc3N3b3JkU2VydmljZSxcclxuICAgIFdlYkNyeXB0b1NlcnZpY2UsXHJcbiAgICBFbmNyeXB0aW9uU2VydmljZSxcclxuICAgIEtleUdyYXBoU2VydmljZSxcclxuICAgIEtleVNlcnZpY2UsXHJcbiAgICBLZXlGYWN0b3J5U2VydmljZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlmZVJlYWR5TW9kdWxlIHtcclxuICBwdWJsaWMgc3RhdGljIGZvclJvb3QoXHJcbiAgICBjb25maWc6IExpZmVSZWFkeUNvbmZpZ1xyXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TGlmZVJlYWR5TW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTGlmZVJlYWR5TW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMUl9DT05GSUcsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQXV0aENsYXNzLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IEF1dGgsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVBbXBsaWZ5QXV0aCxcclxuICAgICAgICAgIGRlcHM6IFtMUl9DT05GSUcsIEF1dGhDbGFzc10sXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGluaXRpYWxpc2VBdXRoLFxyXG4gICAgICAgICAgZGVwczogW0xpZmVSZWFkeUF1dGhTZXJ2aWNlXSxcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBPTExPX09QVElPTlMsXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVBcG9sbG8sXHJcbiAgICAgICAgICBkZXBzOiBbTFJfQ09ORklHLCBBdXRoQ2xhc3NdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,123 +1,123 @@
1
- import gql from 'graphql-tag';
2
- export const CreateStripeCheckoutSessionMutation = gql `
3
- mutation CreateStripeCheckoutSession(
4
- $priceId: String!
5
- $successUrl: String!
6
- $cancelUrl: String!
7
- ) {
8
- createStripeCheckoutSession(
9
- input: {
10
- priceId: $priceId
11
- successUrl: $successUrl
12
- cancelUrl: $cancelUrl
13
- }
14
- ) {
15
- sessionId
16
- }
17
- }
18
- `;
19
- export const CreateStripeBillingPortalSessionMutation = gql `
20
- mutation CreateStripeBillingPortalSession($returnUrl: String!) {
21
- createStripeBillingPortalSession(input: { returnUrl: $returnUrl }) {
22
- sessionUrl
23
- }
24
- }
25
- `;
26
- export const planFields = `
27
- name
28
- data
29
- state
30
- `;
31
- export const CreateUserIssuedPlanMutation = gql `
32
- mutation CreateUserIssuedPlan($input: CreateUserIssuedPlanInput!){
33
- createUserIssuedPlan(input: $input) {
34
- userIssuedPlan {
35
- id
36
- plan {
37
- ${planFields}
38
- }
39
- token
40
- tokenExpiryTime
41
- planPeriodEnd
42
- planPeriodEndAfterSeconds
43
- }
44
- }
45
- }`;
46
- export const DeleteUserIssuedPlanMutation = gql `
47
- mutation DeleteUserIssuedPlan($input: DeleteUserIssuedPlanInput!) {
48
- deleteUserIssuedPlan(input: $input) {
49
- id
50
- }
51
- }
52
- `;
53
- export const UserIssuablePlansQuery = gql `
54
- query UserIssuablePlans {
55
- userIssuablePlans {
56
- plan {
57
- ${planFields}
58
- }
59
- }
60
- }
61
- `;
62
- // Put other fields in as needed.
63
- export const UserIssuedPlansQuery = gql `
64
- query UserIssuedPlans {
65
- userIssuedPlans {
66
- edges {
67
- node {
68
- id
69
- }
70
- }
71
- }
72
- }
73
- `;
74
- export const UserIssuedPlanQuery = gql `
75
- query UserIssuedPlan(
76
- $id: LrRelayIdInput!
77
- $token: String
78
- ) {
79
- userIssuedPlan(
80
- id: $id
81
- token: $token
82
- ) {
83
- id
84
- plan {
85
- ${planFields}
86
- }
87
- planPeriodEnd
88
- planPeriodEndAfterSeconds
89
- }
90
- }
91
- `;
92
- export const AssociateUserIssuedPlanMutation = gql `
93
- mutation AssociateUserIssuedPlan($input: AssociateUserIssuedPlanInput!){
94
- associateUserIssuedPlan(input: $input) {
95
- userPlan {
96
- id
97
- plan {
98
- ${planFields}
99
- }
100
- periodEnd
101
- }
102
- }
103
- }`;
104
- export const UserPlansQuery = gql `
105
- query UserPlans {
106
- userPlans {
107
- id
108
- periodEnd
109
- plan {
110
- ${planFields}
111
- }
112
- }
113
- }
114
- `;
115
- export const StripeQuery = gql `
116
- query Stripe {
117
- stripe {
118
- id
119
- customer
120
- }
121
- }
122
- `;
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5ncWwuanMiLCJzb3VyY2VSb290IjoiL29wdC9hdGxhc3NpYW4vcGlwZWxpbmVzL2FnZW50L2J1aWxkL3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL3BsYW4vcGxhbi5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7OztDQWdCckQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdDQUF3QyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O0NBTTFELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7Ozs7Q0FJekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQTs7Ozs7O1VBTXJDLFVBQVU7Ozs7Ozs7O0VBUWxCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxHQUFHLENBQUE7Ozs7OztDQU05QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxDQUFBOzs7O1FBSWpDLFVBQVU7Ozs7Q0FJakIsQ0FBQztBQUVGLGlDQUFpQztBQUNqQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Q0FVdEMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7UUFXOUIsVUFBVTs7Ozs7O0NBTWpCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxHQUFHLENBQUE7Ozs7OztVQU14QyxVQUFVOzs7OztFQUtsQixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQTs7Ozs7O1FBTXpCLFVBQVU7Ozs7Q0FJakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7Q0FPN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBncWwgZnJvbSAnZ3JhcGhxbC10YWcnO1xuXG5leHBvcnQgY29uc3QgQ3JlYXRlU3RyaXBlQ2hlY2tvdXRTZXNzaW9uTXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENyZWF0ZVN0cmlwZUNoZWNrb3V0U2Vzc2lvbihcbiAgICAkcHJpY2VJZDogU3RyaW5nIVxuICAgICRzdWNjZXNzVXJsOiBTdHJpbmchXG4gICAgJGNhbmNlbFVybDogU3RyaW5nIVxuICApIHtcbiAgICBjcmVhdGVTdHJpcGVDaGVja291dFNlc3Npb24oXG4gICAgICBpbnB1dDoge1xuICAgICAgICBwcmljZUlkOiAkcHJpY2VJZFxuICAgICAgICBzdWNjZXNzVXJsOiAkc3VjY2Vzc1VybFxuICAgICAgICBjYW5jZWxVcmw6ICRjYW5jZWxVcmxcbiAgICAgIH1cbiAgICApIHtcbiAgICAgIHNlc3Npb25JZFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVN0cmlwZUJpbGxpbmdQb3J0YWxTZXNzaW9uTXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIENyZWF0ZVN0cmlwZUJpbGxpbmdQb3J0YWxTZXNzaW9uKCRyZXR1cm5Vcmw6IFN0cmluZyEpIHtcbiAgICBjcmVhdGVTdHJpcGVCaWxsaW5nUG9ydGFsU2Vzc2lvbihpbnB1dDogeyByZXR1cm5Vcmw6ICRyZXR1cm5VcmwgfSkge1xuICAgICAgc2Vzc2lvblVybFxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IHBsYW5GaWVsZHMgPSBgXG4gIG5hbWVcbiAgZGF0YVxuICBzdGF0ZVxuYDtcblxuZXhwb3J0IGNvbnN0IENyZWF0ZVVzZXJJc3N1ZWRQbGFuTXV0YXRpb24gPSBncWxgXG5tdXRhdGlvbiBDcmVhdGVVc2VySXNzdWVkUGxhbigkaW5wdXQ6IENyZWF0ZVVzZXJJc3N1ZWRQbGFuSW5wdXQhKXtcbiAgY3JlYXRlVXNlcklzc3VlZFBsYW4oaW5wdXQ6ICRpbnB1dCkge1xuICAgIHVzZXJJc3N1ZWRQbGFuIHtcbiAgICAgIGlkXG4gICAgICBwbGFuIHtcbiAgICAgICAgJHtwbGFuRmllbGRzfVxuICAgICAgfVxuICAgICAgdG9rZW5cbiAgICAgIHRva2VuRXhwaXJ5VGltZVxuICAgICAgcGxhblBlcmlvZEVuZFxuICAgICAgcGxhblBlcmlvZEVuZEFmdGVyU2Vjb25kc1xuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVVc2VySXNzdWVkUGxhbk11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBEZWxldGVVc2VySXNzdWVkUGxhbigkaW5wdXQ6IERlbGV0ZVVzZXJJc3N1ZWRQbGFuSW5wdXQhKSB7XG4gICAgZGVsZXRlVXNlcklzc3VlZFBsYW4oaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBVc2VySXNzdWFibGVQbGFuc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgVXNlcklzc3VhYmxlUGxhbnMge1xuICB1c2VySXNzdWFibGVQbGFucyB7XG4gICAgcGxhbiB7XG4gICAgICAke3BsYW5GaWVsZHN9XG4gICAgfVxuICB9XG59XG5gO1xuXG4vLyBQdXQgb3RoZXIgZmllbGRzIGluIGFzIG5lZWRlZC5cbmV4cG9ydCBjb25zdCBVc2VySXNzdWVkUGxhbnNRdWVyeSA9IGdxbGBcbiAgcXVlcnkgVXNlcklzc3VlZFBsYW5zIHtcbiAgICB1c2VySXNzdWVkUGxhbnMge1xuICAgICAgZWRnZXMge1xuICAgICAgICBub2RlIHtcbiAgICAgICAgICBpZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVXNlcklzc3VlZFBsYW5RdWVyeSA9IGdxbGBcbnF1ZXJ5IFVzZXJJc3N1ZWRQbGFuKFxuICAkaWQ6IExyUmVsYXlJZElucHV0IVxuICAkdG9rZW46IFN0cmluZ1xuKSB7XG4gIHVzZXJJc3N1ZWRQbGFuKFxuICAgIGlkOiAkaWRcbiAgICB0b2tlbjogJHRva2VuXG4gICkge1xuICAgIGlkXG4gICAgcGxhbiB7XG4gICAgICAke3BsYW5GaWVsZHN9XG4gICAgfVxuICAgIHBsYW5QZXJpb2RFbmRcbiAgICBwbGFuUGVyaW9kRW5kQWZ0ZXJTZWNvbmRzXG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBBc3NvY2lhdGVVc2VySXNzdWVkUGxhbk11dGF0aW9uID0gZ3FsYFxubXV0YXRpb24gQXNzb2NpYXRlVXNlcklzc3VlZFBsYW4oJGlucHV0OiBBc3NvY2lhdGVVc2VySXNzdWVkUGxhbklucHV0ISl7XG4gIGFzc29jaWF0ZVVzZXJJc3N1ZWRQbGFuKGlucHV0OiAkaW5wdXQpIHtcbiAgICB1c2VyUGxhbiB7XG4gICAgICBpZFxuICAgICAgcGxhbiB7XG4gICAgICAgICR7cGxhbkZpZWxkc31cbiAgICAgIH1cbiAgICAgIHBlcmlvZEVuZFxuICAgIH1cbiAgfVxufWA7XG5cbmV4cG9ydCBjb25zdCBVc2VyUGxhbnNRdWVyeSA9IGdxbGBcbnF1ZXJ5IFVzZXJQbGFucyB7XG4gIHVzZXJQbGFucyB7XG4gICAgaWRcbiAgICBwZXJpb2RFbmRcbiAgICBwbGFuIHtcbiAgICAgICR7cGxhbkZpZWxkc31cbiAgICB9XG4gIH1cbn1cbmA7XG5cbmV4cG9ydCBjb25zdCBTdHJpcGVRdWVyeSA9IGdxbGBcbiAgcXVlcnkgU3RyaXBlIHtcbiAgICBzdHJpcGUge1xuICAgICAgaWRcbiAgICAgIGN1c3RvbWVyXG4gICAgfVxuICB9XG5gO1xuIl19
1
+ import gql from 'graphql-tag';
2
+ export const CreateStripeCheckoutSessionMutation = gql `
3
+ mutation CreateStripeCheckoutSession(
4
+ $priceId: String!
5
+ $successUrl: String!
6
+ $cancelUrl: String!
7
+ ) {
8
+ createStripeCheckoutSession(
9
+ input: {
10
+ priceId: $priceId
11
+ successUrl: $successUrl
12
+ cancelUrl: $cancelUrl
13
+ }
14
+ ) {
15
+ sessionId
16
+ }
17
+ }
18
+ `;
19
+ export const CreateStripeBillingPortalSessionMutation = gql `
20
+ mutation CreateStripeBillingPortalSession($returnUrl: String!) {
21
+ createStripeBillingPortalSession(input: { returnUrl: $returnUrl }) {
22
+ sessionUrl
23
+ }
24
+ }
25
+ `;
26
+ export const planFields = `
27
+ name
28
+ data
29
+ state
30
+ `;
31
+ export const CreateUserIssuedPlanMutation = gql `
32
+ mutation CreateUserIssuedPlan($input: CreateUserIssuedPlanInput!){
33
+ createUserIssuedPlan(input: $input) {
34
+ userIssuedPlan {
35
+ id
36
+ plan {
37
+ ${planFields}
38
+ }
39
+ token
40
+ tokenExpiryTime
41
+ planPeriodEnd
42
+ planPeriodEndAfterSeconds
43
+ }
44
+ }
45
+ }`;
46
+ export const DeleteUserIssuedPlanMutation = gql `
47
+ mutation DeleteUserIssuedPlan($input: DeleteUserIssuedPlanInput!) {
48
+ deleteUserIssuedPlan(input: $input) {
49
+ id
50
+ }
51
+ }
52
+ `;
53
+ export const UserIssuablePlansQuery = gql `
54
+ query UserIssuablePlans {
55
+ userIssuablePlans {
56
+ plan {
57
+ ${planFields}
58
+ }
59
+ }
60
+ }
61
+ `;
62
+ // Put other fields in as needed.
63
+ export const UserIssuedPlansQuery = gql `
64
+ query UserIssuedPlans {
65
+ userIssuedPlans {
66
+ edges {
67
+ node {
68
+ id
69
+ }
70
+ }
71
+ }
72
+ }
73
+ `;
74
+ export const UserIssuedPlanQuery = gql `
75
+ query UserIssuedPlan(
76
+ $id: LrRelayIdInput!
77
+ $token: String
78
+ ) {
79
+ userIssuedPlan(
80
+ id: $id
81
+ token: $token
82
+ ) {
83
+ id
84
+ plan {
85
+ ${planFields}
86
+ }
87
+ planPeriodEnd
88
+ planPeriodEndAfterSeconds
89
+ }
90
+ }
91
+ `;
92
+ export const AssociateUserIssuedPlanMutation = gql `
93
+ mutation AssociateUserIssuedPlan($input: AssociateUserIssuedPlanInput!){
94
+ associateUserIssuedPlan(input: $input) {
95
+ userPlan {
96
+ id
97
+ plan {
98
+ ${planFields}
99
+ }
100
+ periodEnd
101
+ }
102
+ }
103
+ }`;
104
+ export const UserPlansQuery = gql `
105
+ query UserPlans {
106
+ userPlans {
107
+ id
108
+ periodEnd
109
+ plan {
110
+ ${planFields}
111
+ }
112
+ }
113
+ }
114
+ `;
115
+ export const StripeQuery = gql `
116
+ query Stripe {
117
+ stripe {
118
+ id
119
+ customer
120
+ }
121
+ }
122
+ `;
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5ncWwuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvbmV3cmVwby9rYy1jbGllbnQvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvcGxhbi9wbGFuLmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JyRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0NBQXdDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNMUQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRzs7OztDQUl6QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7VUFNckMsVUFBVTs7Ozs7Ozs7RUFRbEIsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEdBQUcsQ0FBQTs7Ozs7O0NBTTlDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUE7Ozs7UUFJakMsVUFBVTs7OztDQUlqQixDQUFDO0FBRUYsaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztDQVV0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7OztRQVc5QixVQUFVOzs7Ozs7Q0FNakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQTs7Ozs7O1VBTXhDLFVBQVU7Ozs7O0VBS2xCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFBOzs7Ozs7UUFNekIsVUFBVTs7OztDQUlqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQTs7Ozs7OztDQU83QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdxbCBmcm9tICdncmFwaHFsLXRhZyc7XHJcblxyXG5leHBvcnQgY29uc3QgQ3JlYXRlU3RyaXBlQ2hlY2tvdXRTZXNzaW9uTXV0YXRpb24gPSBncWxgXHJcbiAgbXV0YXRpb24gQ3JlYXRlU3RyaXBlQ2hlY2tvdXRTZXNzaW9uKFxyXG4gICAgJHByaWNlSWQ6IFN0cmluZyFcclxuICAgICRzdWNjZXNzVXJsOiBTdHJpbmchXHJcbiAgICAkY2FuY2VsVXJsOiBTdHJpbmchXHJcbiAgKSB7XHJcbiAgICBjcmVhdGVTdHJpcGVDaGVja291dFNlc3Npb24oXHJcbiAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgcHJpY2VJZDogJHByaWNlSWRcclxuICAgICAgICBzdWNjZXNzVXJsOiAkc3VjY2Vzc1VybFxyXG4gICAgICAgIGNhbmNlbFVybDogJGNhbmNlbFVybFxyXG4gICAgICB9XHJcbiAgICApIHtcclxuICAgICAgc2Vzc2lvbklkXHJcbiAgICB9XHJcbiAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGNvbnN0IENyZWF0ZVN0cmlwZUJpbGxpbmdQb3J0YWxTZXNzaW9uTXV0YXRpb24gPSBncWxgXHJcbiAgbXV0YXRpb24gQ3JlYXRlU3RyaXBlQmlsbGluZ1BvcnRhbFNlc3Npb24oJHJldHVyblVybDogU3RyaW5nISkge1xyXG4gICAgY3JlYXRlU3RyaXBlQmlsbGluZ1BvcnRhbFNlc3Npb24oaW5wdXQ6IHsgcmV0dXJuVXJsOiAkcmV0dXJuVXJsIH0pIHtcclxuICAgICAgc2Vzc2lvblVybFxyXG4gICAgfVxyXG4gIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBwbGFuRmllbGRzID0gYFxyXG4gIG5hbWVcclxuICBkYXRhXHJcbiAgc3RhdGVcclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBDcmVhdGVVc2VySXNzdWVkUGxhbk11dGF0aW9uID0gZ3FsYFxyXG5tdXRhdGlvbiBDcmVhdGVVc2VySXNzdWVkUGxhbigkaW5wdXQ6IENyZWF0ZVVzZXJJc3N1ZWRQbGFuSW5wdXQhKXtcclxuICBjcmVhdGVVc2VySXNzdWVkUGxhbihpbnB1dDogJGlucHV0KSB7XHJcbiAgICB1c2VySXNzdWVkUGxhbiB7XHJcbiAgICAgIGlkXHJcbiAgICAgIHBsYW4ge1xyXG4gICAgICAgICR7cGxhbkZpZWxkc31cclxuICAgICAgfVxyXG4gICAgICB0b2tlblxyXG4gICAgICB0b2tlbkV4cGlyeVRpbWVcclxuICAgICAgcGxhblBlcmlvZEVuZFxyXG4gICAgICBwbGFuUGVyaW9kRW5kQWZ0ZXJTZWNvbmRzXHJcbiAgICB9XHJcbiAgfVxyXG59YDtcclxuXHJcbmV4cG9ydCBjb25zdCBEZWxldGVVc2VySXNzdWVkUGxhbk11dGF0aW9uID0gZ3FsYFxyXG4gIG11dGF0aW9uIERlbGV0ZVVzZXJJc3N1ZWRQbGFuKCRpbnB1dDogRGVsZXRlVXNlcklzc3VlZFBsYW5JbnB1dCEpIHtcclxuICAgIGRlbGV0ZVVzZXJJc3N1ZWRQbGFuKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgaWRcclxuICAgIH1cclxuICB9XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgVXNlcklzc3VhYmxlUGxhbnNRdWVyeSA9IGdxbGBcclxucXVlcnkgVXNlcklzc3VhYmxlUGxhbnMge1xyXG4gIHVzZXJJc3N1YWJsZVBsYW5zIHtcclxuICAgIHBsYW4ge1xyXG4gICAgICAke3BsYW5GaWVsZHN9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbmA7XHJcblxyXG4vLyBQdXQgb3RoZXIgZmllbGRzIGluIGFzIG5lZWRlZC5cclxuZXhwb3J0IGNvbnN0IFVzZXJJc3N1ZWRQbGFuc1F1ZXJ5ID0gZ3FsYFxyXG4gIHF1ZXJ5IFVzZXJJc3N1ZWRQbGFucyB7XHJcbiAgICB1c2VySXNzdWVkUGxhbnMge1xyXG4gICAgICBlZGdlcyB7XHJcbiAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICBpZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBVc2VySXNzdWVkUGxhblF1ZXJ5ID0gZ3FsYFxyXG5xdWVyeSBVc2VySXNzdWVkUGxhbihcclxuICAkaWQ6IExyUmVsYXlJZElucHV0IVxyXG4gICR0b2tlbjogU3RyaW5nXHJcbikge1xyXG4gIHVzZXJJc3N1ZWRQbGFuKFxyXG4gICAgaWQ6ICRpZFxyXG4gICAgdG9rZW46ICR0b2tlblxyXG4gICkge1xyXG4gICAgaWRcclxuICAgIHBsYW4ge1xyXG4gICAgICAke3BsYW5GaWVsZHN9XHJcbiAgICB9XHJcbiAgICBwbGFuUGVyaW9kRW5kXHJcbiAgICBwbGFuUGVyaW9kRW5kQWZ0ZXJTZWNvbmRzXHJcbiAgfVxyXG59XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQXNzb2NpYXRlVXNlcklzc3VlZFBsYW5NdXRhdGlvbiA9IGdxbGBcclxubXV0YXRpb24gQXNzb2NpYXRlVXNlcklzc3VlZFBsYW4oJGlucHV0OiBBc3NvY2lhdGVVc2VySXNzdWVkUGxhbklucHV0ISl7XHJcbiAgYXNzb2NpYXRlVXNlcklzc3VlZFBsYW4oaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgdXNlclBsYW4ge1xyXG4gICAgICBpZFxyXG4gICAgICBwbGFuIHtcclxuICAgICAgICAke3BsYW5GaWVsZHN9XHJcbiAgICAgIH1cclxuICAgICAgcGVyaW9kRW5kXHJcbiAgICB9XHJcbiAgfVxyXG59YDtcclxuXHJcbmV4cG9ydCBjb25zdCBVc2VyUGxhbnNRdWVyeSA9IGdxbGBcclxucXVlcnkgVXNlclBsYW5zIHtcclxuICB1c2VyUGxhbnMge1xyXG4gICAgaWRcclxuICAgIHBlcmlvZEVuZFxyXG4gICAgcGxhbiB7XHJcbiAgICAgICR7cGxhbkZpZWxkc31cclxuICAgIH1cclxuICB9XHJcbn1cclxuYDtcclxuXHJcbmV4cG9ydCBjb25zdCBTdHJpcGVRdWVyeSA9IGdxbGBcclxuICBxdWVyeSBTdHJpcGUge1xyXG4gICAgc3RyaXBlIHtcclxuICAgICAgaWRcclxuICAgICAgY3VzdG9tZXJcclxuICAgIH1cclxuICB9XHJcbmA7XHJcbiJdfQ==