@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,196 @@
1
+ import { Key } from '../cryptography/cryptography.types';
2
+ import { AccessLevel } from '../category/category.types';
3
+ import { JWK } from 'node-jose';
4
+ import { ContactCardName, TrustedPartyDetails } from '../users/profile.types';
5
+ export interface PlainInitiatorRootKeyCipher {
6
+ nonce: string;
7
+ oneTimePrk: object;
8
+ otKey: object;
9
+ initiatorContactCard?: {
10
+ plainOwnerCipherDataJson: any;
11
+ plainSharedCipherDataJson: any;
12
+ };
13
+ initiator: {
14
+ message?: KeyExchangeMessage;
15
+ contactCard?: {
16
+ plainSharedCipherDataJson: TrustedPartyDetails;
17
+ };
18
+ };
19
+ }
20
+ export interface SharedContactCardInput {
21
+ plainCipherDataJson?: any;
22
+ plainSharedCipherDataJson?: any;
23
+ sharedCipherKey?: object;
24
+ }
25
+ export interface PreparedPermissions {
26
+ categories?: {
27
+ categoryId: string;
28
+ accessLevel: AccessLevel;
29
+ }[];
30
+ records?: {
31
+ recordId: string;
32
+ accessLevel: AccessLevel;
33
+ }[];
34
+ }
35
+ export interface KeyExchangeMessage {
36
+ name?: string;
37
+ email?: string;
38
+ message?: string;
39
+ permissions?: PreparedPermissions;
40
+ }
41
+ export interface PlainOtKeyCipher {
42
+ nonce: string;
43
+ initiator: {
44
+ oneTimePbk: object;
45
+ pbk: object;
46
+ sigPbk: object;
47
+ profile?: {
48
+ username?: string;
49
+ };
50
+ message?: KeyExchangeMessage;
51
+ contactCard?: {
52
+ plainSharedCipherDataJson: TrustedPartyDetails;
53
+ };
54
+ };
55
+ }
56
+ export interface DecryptedOtk {
57
+ plainOtKeyCipher: PlainOtKeyCipher;
58
+ otKey: JWK.Key;
59
+ }
60
+ export interface PlainInitiatorOneTimePbkCipher {
61
+ nonce: string;
62
+ sharedKey: object;
63
+ mkSharedKey: object;
64
+ responder: {
65
+ pbk: object;
66
+ sigPbk: object;
67
+ profile?: {
68
+ username?: string;
69
+ };
70
+ message?: KeyExchangeMessage;
71
+ contactCard?: {
72
+ plainSharedCipherDataJson: TrustedPartyDetails;
73
+ sharedCipherKey: object;
74
+ };
75
+ };
76
+ }
77
+ export declare enum OtkState {
78
+ OTK_INITIATED = "OTK_INITIATED",
79
+ OTK_ACCEPTED = "OTK_ACCEPTED",
80
+ OTK_COMPLETED = "OTK_COMPLETED"
81
+ }
82
+ export interface KeyExchangeContactCardInput {
83
+ ownerPlainData?: {
84
+ name: ContactCardName;
85
+ };
86
+ plainOwnerCipherDataJson: any;
87
+ plainSharedCipherDataJson: TrustedPartyDetails;
88
+ }
89
+ export interface InitiateOtkInput {
90
+ email?: string;
91
+ message?: KeyExchangeMessage;
92
+ contactCard?: KeyExchangeContactCardInput;
93
+ upgrade?: boolean;
94
+ }
95
+ export interface RespondOtkInput {
96
+ id: string;
97
+ token: string;
98
+ decryptedOtk: DecryptedOtk;
99
+ message?: KeyExchangeMessage;
100
+ initiatorContactCard?: {
101
+ plainReceiverCipherDataJson: any;
102
+ };
103
+ responderContactCard?: KeyExchangeContactCardInput;
104
+ }
105
+ export declare enum KeyExchangeState {
106
+ IN_PROGRESS = "IN_PROGRESS",
107
+ COMPLETED = "COMPLETED",
108
+ DECLINED = "DECLINED",
109
+ CANCELLED = "CANCELLED"
110
+ }
111
+ export declare enum KeyExchangeMode {
112
+ OTK = "OTK"
113
+ }
114
+ export interface Otk {
115
+ id: string;
116
+ state: OtkState;
117
+ otKeyParams: string;
118
+ otKeyCipher: string;
119
+ sharedKey: Key;
120
+ mkSharedKey: Key;
121
+ initiatorSigPxk: Key;
122
+ responderSigPxk: Key;
123
+ initiatorOneTimePbkCipher: string;
124
+ responderPbkCipher?: string;
125
+ }
126
+ export interface KeyExchange {
127
+ id: string;
128
+ state: KeyExchangeState;
129
+ mode: KeyExchangeMode;
130
+ created: string;
131
+ modified: string;
132
+ isInitiator: boolean;
133
+ initiator: {
134
+ id: string;
135
+ username: string;
136
+ };
137
+ responder: {
138
+ id: string;
139
+ username: string;
140
+ };
141
+ initiatorActionRequired?: boolean;
142
+ responderActionRequired?: boolean;
143
+ responderEmailAddress?: string;
144
+ token?: string;
145
+ tokenExpiryTime?: string;
146
+ isExpired?: boolean;
147
+ otk?: Otk;
148
+ initiatorRootKeyCipher: string;
149
+ }
150
+ export interface DecryptedKeyExchange extends KeyExchange {
151
+ decryptedOtk?: DecryptedOtk;
152
+ message?: KeyExchangeMessage;
153
+ contactCard?: TrustedPartyDetails;
154
+ myMessage?: KeyExchangeMessage;
155
+ myContactCard?: TrustedPartyDetails;
156
+ }
157
+ export interface GetKeyExchangeOptions {
158
+ otKeyK?: string;
159
+ token?: string;
160
+ }
161
+ export interface RespondOtk {
162
+ keyExchange: KeyExchange;
163
+ userSharedKey: UserSharedKey;
164
+ tp: {
165
+ id: string;
166
+ };
167
+ }
168
+ export interface CompleteOtk {
169
+ keyExchange: KeyExchange;
170
+ userSharedKey: UserSharedKey;
171
+ tp: {
172
+ id: string;
173
+ };
174
+ }
175
+ export interface UserSharedKey {
176
+ userSigPrk: Key;
177
+ sharedKey: Key;
178
+ mkSharedKey?: Key;
179
+ mkPxk?: Key;
180
+ mkReshareRequestCipher?: string;
181
+ mkReshareResponseCipher?: string;
182
+ mkReshareRequestSent?: boolean;
183
+ mkReshareResponseSent?: boolean;
184
+ }
185
+ export interface GetKeyExchangeListOptions {
186
+ orderBy?: 'created' | '-created' | 'modified' | '-modified' | 'expiry_time' | '-expiry_time';
187
+ isExpired?: boolean;
188
+ initiatorActionRequired?: boolean;
189
+ responderActionRequired?: boolean;
190
+ initiator?: string;
191
+ responder?: string;
192
+ state?: 'IN_PROGRESS' | 'COMPLETED' | 'DECLINED' | 'CANCELLED';
193
+ }
194
+ export interface PlainResponderPbkCipher {
195
+ otKey: object;
196
+ }
@@ -0,0 +1,125 @@
1
+ import { JWK } from 'node-jose';
2
+ import { Connection, DateTime, ID, LrEmail, OtKeyCipherClearJson2 } from './types';
3
+ export declare type KeyExchangeState2 = 'IN_PROGRESS' | 'COMPLETED' | 'DECLINED' | 'CANCELLED' | 'DELETED';
4
+ export interface KeyExchangeFragment {
5
+ id: ID;
6
+ token: string;
7
+ state: KeyExchangeState2;
8
+ mode: 'OTK';
9
+ isInitiator: boolean;
10
+ initiator: {
11
+ id: ID;
12
+ username: string;
13
+ };
14
+ responder: {
15
+ id: ID;
16
+ username: string;
17
+ };
18
+ created: DateTime;
19
+ modified: DateTime;
20
+ tokenExpiryTime: DateTime;
21
+ isExpired: boolean;
22
+ initiatorRootKeyCipher: string;
23
+ initiatorRootKeyCipherClearJson: any;
24
+ initiatorActionRequired: boolean;
25
+ responderActionRequired: boolean;
26
+ responderEmailAddress: LrEmail;
27
+ otk: {
28
+ state: 'OTK_INITIATED' | 'OTK_ACCEPTED' | 'OTK_COMPLETED';
29
+ otKeyParams: string;
30
+ otKeyCipher: string;
31
+ otKey?: JWK.Key;
32
+ otKeyCipherClearJson?: OtKeyCipherClearJson2;
33
+ sharedKey: {
34
+ id: ID;
35
+ };
36
+ mkSharedKey: {
37
+ id: ID;
38
+ };
39
+ initiatorSigPxk: {
40
+ id: ID;
41
+ };
42
+ responderSigPxk: {
43
+ id: ID;
44
+ };
45
+ initiatorOneTimePbkCipher: string;
46
+ initiatorOneTimePbkCipherClearJson: any;
47
+ responderPbkCipher: string;
48
+ };
49
+ }
50
+ export declare const KeyExchangeFragment: import("../_common/ast").TypedDocumentNode<KeyExchangeFragment>;
51
+ export interface UserSharedKeyFragment {
52
+ userSigPrk: {
53
+ id: ID;
54
+ };
55
+ otherSigPbk: {
56
+ id: ID;
57
+ };
58
+ sharedKey: {
59
+ id: ID;
60
+ };
61
+ mkSharedKey: {
62
+ id: ID;
63
+ };
64
+ }
65
+ export declare const UserSharedKeyFragment: import("../_common/ast").TypedDocumentNode<UserSharedKeyFragment>;
66
+ export interface KeyExchangesQuery2 {
67
+ keyExchanges: Connection<KeyExchangeFragment>;
68
+ }
69
+ export declare const KeyExchangesQuery2: import("../_common/ast").TypedDocumentNode<KeyExchangesQuery2>;
70
+ export interface KeyExchangeQuery2 {
71
+ keyExchange: KeyExchangeFragment;
72
+ }
73
+ export declare const KeyExchangeQuery2: import("../_common/ast").TypedDocumentNode<KeyExchangeQuery2>;
74
+ export interface KeyExchangeTokenQuery2 {
75
+ keyExchange: KeyExchangeFragment;
76
+ }
77
+ export declare const KeyExchangeTokenQuery2: import("../_common/ast").TypedDocumentNode<KeyExchangeTokenQuery2>;
78
+ export interface CancelKeyExchangeMutation {
79
+ cancelKeyExchange: {
80
+ keyExchange: {
81
+ id: ID;
82
+ };
83
+ };
84
+ }
85
+ export declare const CancelKeyExchangeMutation: import("../_common/ast").TypedDocumentNode<CancelKeyExchangeMutation>;
86
+ export interface DeclineKeyExchangeMutation {
87
+ declineKeyExchange: {
88
+ keyExchange: {
89
+ id: ID;
90
+ };
91
+ };
92
+ }
93
+ export declare const DeclineKeyExchangeMutation: import("../_common/ast").TypedDocumentNode<DeclineKeyExchangeMutation>;
94
+ export interface InitiateKeyExchangeOtkMutation {
95
+ initiateKeyExchangeOtk: {
96
+ keyExchange: KeyExchangeFragment;
97
+ };
98
+ }
99
+ export declare const InitiateKeyExchangeOtkMutation: import("../_common/ast").TypedDocumentNode<InitiateKeyExchangeOtkMutation>;
100
+ export interface RespondKeyExchangeOtkMutation {
101
+ respondKeyExchangeOtk: {
102
+ keyExchange: KeyExchangeFragment;
103
+ userSharedKey: UserSharedKeyFragment;
104
+ tp: {
105
+ id: ID;
106
+ };
107
+ };
108
+ }
109
+ export declare const RespondKeyExchangeOtkMutation: import("../_common/ast").TypedDocumentNode<RespondKeyExchangeOtkMutation>;
110
+ export interface CompleteKeyExchangeOtkMutation {
111
+ completeKeyExchangeOtk: {
112
+ keyExchange: KeyExchangeFragment;
113
+ userSharedKey: UserSharedKeyFragment;
114
+ tp: {
115
+ id: ID;
116
+ };
117
+ };
118
+ }
119
+ export declare const CompleteKeyExchangeOtkMutation: import("../_common/ast").TypedDocumentNode<CompleteKeyExchangeOtkMutation>;
120
+ export interface CurrentUserSharedKeyQuery2 {
121
+ currentUserSharedKey: {
122
+ userSharedKey: UserSharedKeyFragment;
123
+ };
124
+ }
125
+ export declare const CurrentUserSharedKeyQuery2: import("../_common/ast").TypedDocumentNode<CurrentUserSharedKeyQuery2>;
@@ -0,0 +1,187 @@
1
+ import { NgZone } from '@angular/core';
2
+ import { JWK } from 'node-jose';
3
+ import { EncryptionService } from '../cryptography/encryption.service';
4
+ import { KeyFactoryService } from '../cryptography/key-factory.service';
5
+ import { KeyGraphService } from '../cryptography/key-graph.service';
6
+ import { KeyService } from '../cryptography/key.service';
7
+ import { UserService } from './../users/user.service';
8
+ import { OwnerPlainDataJson } from './contact-card2.service';
9
+ import { CancelKeyExchangeMutation, CompleteKeyExchangeOtkMutation, CurrentUserSharedKeyQuery2, DeclineKeyExchangeMutation, InitiateKeyExchangeOtkMutation, KeyExchangeFragment, KeyExchangeState2, RespondKeyExchangeOtkMutation } from './key-exchange2.gql';
10
+ import { LrGraphQLService, LrMutation } from './lr-graphql';
11
+ import { ContactCardSharedCipherData, OtKeyCipherClearJson2 } from './types';
12
+ /**
13
+ * The decrypted content of the one-time key cipher;
14
+ * When user supplies this information the lib doesn't need to do another API call
15
+ * to fetch the key exchange node. And since the typical use case is to display
16
+ * some information to the user, the key exchange node would already have been
17
+ * fetched and decrypted.
18
+ */
19
+ export interface DecryptedOtk2 {
20
+ otKeyCipherClearJson: OtKeyCipherClearJson2;
21
+ otKey: JWK.Key;
22
+ }
23
+ export interface ContactCardReceiverCipherData {
24
+ receiverCipherDataClearJson: any;
25
+ }
26
+ export interface ContactCardOwnerPlainData {
27
+ ownerPlainDataJson: OwnerPlainDataJson;
28
+ }
29
+ export interface ContactCardOwnerCipherData {
30
+ ownerCipherDataClearJson: any;
31
+ }
32
+ /**
33
+ * Sending contact card information from the owner to the receiver.
34
+ */
35
+ export declare type SendContactCardInput = ContactCardOwnerPlainData & ContactCardOwnerCipherData & ContactCardSharedCipherData;
36
+ export interface InitiateOtkInput2 {
37
+ email?: string;
38
+ message?: any;
39
+ contactCard?: SendContactCardInput;
40
+ upgrade?: boolean;
41
+ }
42
+ export interface RespondOtkInput2 {
43
+ keyExchangeId: string;
44
+ token: string;
45
+ decryptedOtk: DecryptedOtk2;
46
+ message?: any;
47
+ initiatorContactCard?: ContactCardReceiverCipherData;
48
+ responderContactCard?: SendContactCardInput;
49
+ }
50
+ export interface CompleteOtkInput2 {
51
+ keyExchangeId: string;
52
+ initiatorRootKeyCipher: string;
53
+ initiatorOneTimePbkCipher: string;
54
+ responderContactCard?: ContactCardReceiverCipherData;
55
+ initiatorContactCard?: ContactCardOwnerCipherData;
56
+ }
57
+ export interface InitiatorRootKeyCipherClearJson2 {
58
+ nonce: string;
59
+ oneTimePrk: object;
60
+ otKey: object;
61
+ initiatorContactCard?: ContactCardOwnerCipherData & ContactCardSharedCipherData;
62
+ initiator: {
63
+ message?: any;
64
+ contactCard?: ContactCardSharedCipherData;
65
+ };
66
+ }
67
+ export interface InitiatorOneTimePbkCipherClearJson {
68
+ nonce: string;
69
+ sharedKey: object;
70
+ mkSharedKey: object;
71
+ responder: {
72
+ pbk: object;
73
+ sigPbk: object;
74
+ message?: any;
75
+ contactCard?: ContactCardSharedCipherData & {
76
+ sharedCipherKey: object;
77
+ };
78
+ };
79
+ }
80
+ export interface GetKeyExchangeOptions2 {
81
+ otKeyK?: string;
82
+ token?: string;
83
+ }
84
+ export declare class KeyExchange2Service {
85
+ private ngZone;
86
+ private keyFactory;
87
+ private keyService;
88
+ private encryptionService;
89
+ private userService;
90
+ private keyGraph;
91
+ private lrGraphQL;
92
+ private readonly CLIENT_NONCE_LENGTH;
93
+ constructor(ngZone: NgZone, keyFactory: KeyFactoryService, keyService: KeyService, encryptionService: EncryptionService, userService: UserService, keyGraph: KeyGraphService, lrGraphQL: LrGraphQLService);
94
+ private getOtKey;
95
+ private decryptOtk;
96
+ private decryptResponseCipher;
97
+ private decryptKeyExchangeAsInitiator;
98
+ private decryptKeyExchangeAsResponder;
99
+ decryptKeyExchange(keyExchange: KeyExchangeFragment, otKeyK?: string): Promise<KeyExchangeFragment>;
100
+ getKeyExchanges({ state }?: {
101
+ state?: KeyExchangeState2;
102
+ }): Promise<KeyExchangeFragment[]>;
103
+ /**
104
+ * @param id If the current user can responder the key exchange if they are either the initiator or the receiver.
105
+ * @param token If not signed in, or not the initiator or responder, 'token' must be given.
106
+ * @param otKeyK Is the raw one-time key (string). If the responder is explicitly specified at time of initiation, then
107
+ * it's possible to have the otKey wrapped by the public key of the responder. In which case, the otKeyK is not needed.
108
+ */
109
+ getKeyExchange(id: string, { otKeyK, token }?: GetKeyExchangeOptions2): Promise<KeyExchangeFragment>;
110
+ getCurrentUserSharedKey(input: {
111
+ username?: string;
112
+ userId?: string;
113
+ }): Promise<CurrentUserSharedKeyQuery2>;
114
+ cancelKeyExchange(id: string): Promise<LrMutation<CancelKeyExchangeMutation, {
115
+ input: {
116
+ id: string;
117
+ };
118
+ }>>;
119
+ cancelKeyExchangeMutation(id: string): LrMutation<CancelKeyExchangeMutation, {
120
+ input: {
121
+ id: string;
122
+ };
123
+ }>;
124
+ declineKeyExchange(id: string, token: string): Promise<LrMutation<DeclineKeyExchangeMutation, {
125
+ input: {
126
+ id: string;
127
+ token: string;
128
+ };
129
+ }>>;
130
+ declineKeyExchangeMutation(id: string, token: string): LrMutation<DeclineKeyExchangeMutation, {
131
+ input: {
132
+ id: string;
133
+ token: string;
134
+ };
135
+ }>;
136
+ initiateOtk({ message, email, contactCard, upgrade, }?: InitiateOtkInput2): Promise<{
137
+ lrMutation: LrMutation<InitiateKeyExchangeOtkMutation, {
138
+ input: {
139
+ initiatorRootKeyCipher: string;
140
+ initiatorPxkId: string;
141
+ initiatorSigPxkId: string;
142
+ otKeyParams: string;
143
+ otKeyCipher: string;
144
+ sendEmail: {
145
+ email: string;
146
+ rawOtKey: string;
147
+ };
148
+ createTp: boolean;
149
+ initiatorPlainDataSig: string;
150
+ upgrade: boolean;
151
+ };
152
+ }>;
153
+ otKeyK: string;
154
+ }>;
155
+ respondOtk({ keyExchangeId, token, decryptedOtk, message, initiatorContactCard, responderContactCard, }: RespondOtkInput2): Promise<LrMutation<RespondKeyExchangeOtkMutation, {
156
+ input: {
157
+ keyExchangeId: string;
158
+ keyExchangeToken: string;
159
+ rootKeyId: string;
160
+ masterKeyId: string;
161
+ responderPxkId: string;
162
+ responderSigPxkId: string;
163
+ signedInitiatorPbk: string;
164
+ signedInitiatorSigPbk: string;
165
+ rkWrappedSharedKey: string;
166
+ mkWrappedMkSharedKey: string;
167
+ initiatorOneTimePbkCipher: string;
168
+ initiatorContactCard: any;
169
+ responderContactCard: any;
170
+ };
171
+ }>>;
172
+ completeOtk({ keyExchangeId, initiatorRootKeyCipher, initiatorOneTimePbkCipher, responderContactCard, initiatorContactCard, }: CompleteOtkInput2): Promise<LrMutation<CompleteKeyExchangeOtkMutation, {
173
+ input: {
174
+ keyExchangeId: string;
175
+ rootKeyId: string;
176
+ masterKeyId: string;
177
+ initiatorSigPxkId: string;
178
+ signedResponderPbk: string;
179
+ signedResponderSigPbk: string;
180
+ rkWrappedSharedKey: string;
181
+ mkWrappedMkSharedKey: string;
182
+ responderContactCardCipher: any;
183
+ initiatorContactCardCipher: any;
184
+ initiatorContactCardSharedCipher: any;
185
+ };
186
+ }>>;
187
+ }
@@ -0,0 +1,27 @@
1
+ import { DateTime, LockState, UUID } from './types';
2
+ export interface LockFragmentResult {
3
+ created: DateTime;
4
+ modified: DateTime;
5
+ version?: UUID;
6
+ expiryTime: DateTime;
7
+ state: LockState;
8
+ }
9
+ export declare const LockFragment: import("../_common/ast").TypedDocumentNode<LockFragmentResult>;
10
+ export interface UpdateLockMutationResult {
11
+ updateLock: {
12
+ lock: LockFragmentResult;
13
+ };
14
+ }
15
+ export declare const UpdateLockMutation: import("../_common/ast").TypedDocumentNode<UpdateLockMutationResult>;
16
+ export interface AcquireLockMutationResult {
17
+ acquireLock: {
18
+ lock: LockFragmentResult;
19
+ };
20
+ }
21
+ export declare const AcquireLockMutation: import("../_common/ast").TypedDocumentNode<AcquireLockMutationResult>;
22
+ export interface ReleaseLockMutationResult {
23
+ releaseLock: {
24
+ lock: LockFragmentResult;
25
+ };
26
+ }
27
+ export declare const ReleaseLockMutation: import("../_common/ast").TypedDocumentNode<ReleaseLockMutationResult>;
@@ -0,0 +1,25 @@
1
+ import { Injector, NgZone } from '@angular/core';
2
+ import { LrMutation, LrService } from './lr-graphql';
3
+ export declare class LockService extends LrService {
4
+ private ngZone;
5
+ private injector;
6
+ constructor(ngZone: NgZone, injector: Injector);
7
+ updateLockMutation(resourceId: string, version: string): LrMutation<import("./lock.gql").UpdateLockMutationResult, {
8
+ input: {
9
+ resourceId: string;
10
+ version: string;
11
+ };
12
+ }>;
13
+ acquireLockMutation(resourceId: string, timeoutMs: number): LrMutation<import("./lock.gql").AcquireLockMutationResult, {
14
+ input: {
15
+ resourceId: string;
16
+ timeoutMs: number;
17
+ };
18
+ }>;
19
+ releaseLockMutation(resourceId: string, version: string): LrMutation<import("./lock.gql").ReleaseLockMutationResult, {
20
+ input: {
21
+ resourceId: string;
22
+ version: string;
23
+ };
24
+ }>;
25
+ }
@@ -0,0 +1,15 @@
1
+ import { Apollo } from 'apollo-angular';
2
+ import { QueryOptions, MutationOptions } from '@apollo/client/core';
3
+ import { KeyGraphService } from '../cryptography/key-graph.service';
4
+ export declare class LrApolloService {
5
+ private apollo;
6
+ private keyGraph;
7
+ constructor(apollo: Apollo, keyGraph: KeyGraphService);
8
+ private addKeys;
9
+ query<T, V = {
10
+ [key: string]: any;
11
+ }>(options: QueryOptions<V>): Promise<T>;
12
+ mutate<T extends any, V = {
13
+ [key: string]: any;
14
+ }>(options: MutationOptions<T, V>): Promise<T>;
15
+ }
@@ -0,0 +1,5 @@
1
+ export * from './lr-graphql.service';
2
+ export * from './lr-merged-mutation';
3
+ export * from './lr-mutation';
4
+ export * from './lr-mutation-base';
5
+ export * from './lr.service';
@@ -0,0 +1,60 @@
1
+ import { NgZone } from '@angular/core';
2
+ import { Apollo } from 'apollo-angular';
3
+ import { QueryOptions, MutationOptions, OperationVariables, FetchPolicy } from '@apollo/client/core';
4
+ import { MutationBaseOptions } from '@apollo/client/core/watchQueryOptions';
5
+ import { KeyGraphService } from '../../cryptography/key-graph.service';
6
+ import { TypedDocumentNode } from '../../_common/ast';
7
+ import { ProcessorOptions, QueryProcessorService } from '../query-processor';
8
+ import { LrMutationBase } from './lr-mutation-base';
9
+ import { LrMergedMutation } from './lr-merged-mutation';
10
+ export interface LrQueryOptions<T, TVariables> extends QueryOptions<TVariables> {
11
+ query: TypedDocumentNode<T>;
12
+ includeKeyGraph?: boolean;
13
+ processorOptions?: ProcessorOptions;
14
+ }
15
+ export interface LrMutationOptions<T = {
16
+ [key: string]: any;
17
+ }, TVariables = OperationVariables> extends MutationBaseOptions<T, TVariables> {
18
+ context?: any;
19
+ fetchPolicy?: FetchPolicy;
20
+ includeKeyGraph?: boolean;
21
+ }
22
+ export interface LrApolloMutationOptions<T, TVariables = OperationVariables> extends MutationOptions<T, TVariables> {
23
+ mutation: TypedDocumentNode<T>;
24
+ includeKeyGraph?: boolean;
25
+ processorOptions?: ProcessorOptions;
26
+ }
27
+ interface LrGraphQLServiceStats {
28
+ queryCount: number;
29
+ mutationCount: number;
30
+ }
31
+ export declare class LrGraphQLService {
32
+ private ngZone;
33
+ private apollo;
34
+ private keyGraph;
35
+ private queryProcessor;
36
+ private stats;
37
+ constructor(ngZone: NgZone, apollo: Apollo, keyGraph: KeyGraphService, queryProcessor: QueryProcessorService);
38
+ query<T, V = {
39
+ [key: string]: any;
40
+ }>(options: LrQueryOptions<T, V>): Promise<T>;
41
+ private lrMutateImpl;
42
+ apolloMutate<T extends any, TVariables = {
43
+ [key: string]: any;
44
+ }>(options: LrApolloMutationOptions<T, TVariables>): Promise<T>;
45
+ statsSnapshot(): LrGraphQLServiceStats;
46
+ private addKeys;
47
+ private isIncludeKeyGraph;
48
+ lrMutate<T1, TVariables1, T2, TVariables2>(lrMutations: [LrMutationMayAsync<T1, TVariables1>, LrMutationMayAsync<T2, TVariables2>], options?: LrMutationOptions): Promise<[T1, T2]>;
49
+ lrMutate<T1, TVariables1, T2, TVariables2, T3, TVariables3>(lrMutations: [LrMutationMayAsync<T1, TVariables1>, LrMutationMayAsync<T2, TVariables2>, LrMutationMayAsync<T3, TVariables3>], options?: LrMutationOptions): Promise<[T1, T2, T3]>;
50
+ lrMutate<T1, TVariables1, T2, TVariables2, T3, TVariables3, T4, TVariables4>(lrMutations: [LrMutationMayAsync<T1, TVariables1>, LrMutationMayAsync<T2, TVariables2>, LrMutationMayAsync<T3, TVariables3>, LrMutationMayAsync<T4, TVariables4>], options?: LrMutationOptions): Promise<[T1, T2, T3, T4]>;
51
+ lrMutate<T1, TVariables1, T2, TVariables2, T3, TVariables3, T4, TVariables4, T5, TVariables5>(lrMutations: [LrMutationMayAsync<T1, TVariables1>, LrMutationMayAsync<T2, TVariables2>, LrMutationMayAsync<T3, TVariables3>, LrMutationMayAsync<T4, TVariables4>, LrMutationMayAsync<T5, TVariables5>], options?: LrMutationOptions): Promise<[T1, T2, T3, T4, T5]>;
52
+ lrMutate<T, TVariables = {
53
+ [key: string]: any;
54
+ }>(lrMutation: LrMutationMayAsync<T, TVariables>, options?: LrMutationOptions<T, TVariables>): Promise<T>;
55
+ lrMutate<T, TVariables = {
56
+ [key: string]: any;
57
+ }>(lrMutations: LrMutationMayAsync<T, TVariables>[] | LrMutationMayAsync<T, TVariables>, options?: LrMutationOptions): any;
58
+ }
59
+ declare type LrMutationMayAsync<T, TVariables> = LrMutationBase<T, TVariables> | Promise<LrMutationBase<T, TVariables>> | LrMergedMutation<T> | Promise<LrMergedMutation<T>>;
60
+ export {};
@@ -0,0 +1,27 @@
1
+ import { LrMutationBase } from './lr-mutation-base';
2
+ export declare class LrMergedMutation<T> extends LrMutationBase<T> {
3
+ readonly lrMutations: LrMutationBase<any>[];
4
+ readonly descendants: Set<LrMutationBase<any>>;
5
+ protected prefixes: string[];
6
+ constructor(lrMutations: LrMutationBase<any>[]);
7
+ static create<T1, T2>(lrMutations: [LrMutationBase<T1> | LrMergedMutation<T1>, LrMutationBase<T2> | LrMergedMutation<T2>]): LrMergedMutation<[T1, T2]>;
8
+ static create<T1, T2, T3>(lrMutations: [LrMutationBase<T1> | LrMergedMutation<T1>, LrMutationBase<T2> | LrMergedMutation<T2>, LrMutationBase<T3> | LrMergedMutation<T3>]): LrMergedMutation<[T1, T2, T3]>;
9
+ static create<T1, T2, T3, T4>(lrMutations: [LrMutationBase<T1> | LrMergedMutation<T1>, LrMutationBase<T2> | LrMergedMutation<T2>, LrMutationBase<T3> | LrMergedMutation<T3>, LrMutationBase<T4> | LrMergedMutation<T4>]): LrMergedMutation<[T1, T2, T3, T4]>;
10
+ static create<T1, T2, T3, T4, T5>(lrMutations: [LrMutationBase<T1> | LrMergedMutation<T1>, LrMutationBase<T2> | LrMergedMutation<T2>, LrMutationBase<T3> | LrMergedMutation<T3>, LrMutationBase<T4> | LrMergedMutation<T4>, LrMutationBase<T5> | LrMergedMutation<T5>]): LrMergedMutation<[T1, T2, T3, T4, T5]>;
11
+ static create(lrMutations: LrMutationBase<any>[]): LrMergedMutation<any[]>;
12
+ private getDescendants;
13
+ resolve(value: any): void;
14
+ reject(reason?: any): void;
15
+ setExecuted(): void;
16
+ private renameVariableDefinition;
17
+ private renameVariableDefinitions;
18
+ private renameArgument;
19
+ private renameField;
20
+ private renameFragmentSpread;
21
+ private processSelection;
22
+ private processSelectionSet;
23
+ private renameSelections;
24
+ private renameFragmentDefinition;
25
+ private renameFragmentDefinitions;
26
+ private merge;
27
+ }