@lifeready/core 6.0.5 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/bundles/lifeready-core.umd.js +3485 -7369
  2. package/bundles/lifeready-core.umd.js.map +1 -1
  3. package/bundles/lifeready-core.umd.min.js +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/auth2/auth.config.js +57 -0
  6. package/esm2015/lib/auth2/auth2.gql.private.js +8 -1
  7. package/esm2015/lib/auth2/auth2.service.js +3 -4
  8. package/esm2015/lib/auth2/auth2.types.js +1 -1
  9. package/esm2015/lib/encryption/encryption.service.js +7 -6
  10. package/esm2015/lib/file-upload/file-upload.service.js +4 -4
  11. package/esm2015/lib/idle/idle.service.js +1 -2
  12. package/esm2015/lib/item2/item2.service.js +17 -46
  13. package/esm2015/lib/key/key-graph.service.js +3 -3
  14. package/esm2015/lib/key/key-meta.service.js +16 -64
  15. package/esm2015/lib/key/key.types.js +6 -1
  16. package/esm2015/lib/key-exchange/key-exchange2.service.js +6 -25
  17. package/esm2015/lib/life-ready.module.js +2 -9
  18. package/esm2015/lib/password/password.service.js +1 -1
  19. package/esm2015/lib/profile/profile-details.service.js +120 -75
  20. package/esm2015/lib/profile/profile.gql.js +134 -1
  21. package/esm2015/lib/profile/profile.service.js +8 -5
  22. package/esm2015/lib/profile/profile.types.js +14 -3
  23. package/esm2015/lib/shared-contact-card/shared-contact-card.service.js +2 -2
  24. package/esm2015/lib/tp-password-reset/tp-password-reset.types.js +1 -1
  25. package/esm2015/lib/trusted-party/trusted-party2.service.js +3 -7
  26. package/esm2015/lifeready-core.js +7 -9
  27. package/esm2015/public-api.js +2 -20
  28. package/fesm2015/lifeready-core.js +3223 -6588
  29. package/fesm2015/lifeready-core.js.map +1 -1
  30. package/lib/auth2/auth2.gql.private.d.ts +15 -2
  31. package/lib/auth2/auth2.service.d.ts +1 -1
  32. package/lib/auth2/auth2.types.d.ts +19 -2
  33. package/lib/file-upload/file-upload.service.d.ts +2 -2
  34. package/lib/item2/item2.service.d.ts +12 -75
  35. package/lib/key/key-meta.service.d.ts +8 -1
  36. package/lib/key/key.types.d.ts +4 -1
  37. package/lib/key-exchange/key-exchange2.service.d.ts +5 -66
  38. package/lib/password/password.service.d.ts +1 -1
  39. package/lib/profile/profile-details.service.d.ts +10 -11
  40. package/lib/profile/profile.gql.d.ts +12 -0
  41. package/lib/profile/profile.service.d.ts +1 -3
  42. package/lib/profile/profile.types.d.ts +31 -4
  43. package/lib/shared-contact-card/shared-contact-card.service.d.ts +1 -2
  44. package/lib/tp-password-reset/tp-password-reset.types.d.ts +3 -3
  45. package/lib/trusted-party/trusted-party2.service.d.ts +2 -7
  46. package/lifeready-core.d.ts +6 -8
  47. package/lifeready-core.metadata.json +1 -1
  48. package/package.json +1 -1
  49. package/public-api.d.ts +1 -19
  50. package/esm2015/lib/auth/auth.config.js +0 -57
  51. package/esm2015/lib/auth/auth.gql.js +0 -16
  52. package/esm2015/lib/auth/auth.types.js +0 -18
  53. package/esm2015/lib/auth/life-ready-auth.service.js +0 -568
  54. package/esm2015/lib/category/category-meta.service.js +0 -99
  55. package/esm2015/lib/category/category.gql.js +0 -385
  56. package/esm2015/lib/category/category.service.js +0 -361
  57. package/esm2015/lib/category/category.types.js +0 -29
  58. package/esm2015/lib/key-exchange/key-exchange.gql.js +0 -188
  59. package/esm2015/lib/key-exchange/key-exchange.service.js +0 -436
  60. package/esm2015/lib/key-exchange/key-exchange.types.js +0 -7
  61. package/esm2015/lib/message/message.gql.js +0 -32
  62. package/esm2015/lib/message/message.service.js +0 -118
  63. package/esm2015/lib/message/message.types.js +0 -2
  64. package/esm2015/lib/plan/plan.gql.js +0 -123
  65. package/esm2015/lib/plan/plan.service.js +0 -150
  66. package/esm2015/lib/plan/plan.types.js +0 -11
  67. package/esm2015/lib/record/record-attachment.service.js +0 -102
  68. package/esm2015/lib/record/record.gql.js +0 -182
  69. package/esm2015/lib/record/record.service.js +0 -194
  70. package/esm2015/lib/record/record.types.js +0 -15
  71. package/esm2015/lib/record-type/record-type.service.js +0 -75
  72. package/esm2015/lib/record-type/record-type.types.js +0 -28
  73. package/esm2015/lib/trusted-party/trusted-party.gql.js +0 -148
  74. package/esm2015/lib/trusted-party/trusted-party.service.js +0 -308
  75. package/esm2015/lib/trusted-party/trusted-party.types.js +0 -41
  76. package/lib/auth/auth.gql.d.ts +0 -12
  77. package/lib/auth/auth.types.d.ts +0 -52
  78. package/lib/auth/life-ready-auth.service.d.ts +0 -73
  79. package/lib/category/category-meta.service.d.ts +0 -23
  80. package/lib/category/category.gql.d.ts +0 -44
  81. package/lib/category/category.service.d.ts +0 -66
  82. package/lib/category/category.types.d.ts +0 -75
  83. package/lib/key-exchange/key-exchange.gql.d.ts +0 -9
  84. package/lib/key-exchange/key-exchange.service.d.ts +0 -37
  85. package/lib/key-exchange/key-exchange.types.d.ts +0 -188
  86. package/lib/message/message.gql.d.ts +0 -13
  87. package/lib/message/message.service.d.ts +0 -36
  88. package/lib/message/message.types.d.ts +0 -12
  89. package/lib/plan/plan.gql.d.ts +0 -11
  90. package/lib/plan/plan.service.d.ts +0 -34
  91. package/lib/plan/plan.types.d.ts +0 -32
  92. package/lib/record/record-attachment.service.d.ts +0 -16
  93. package/lib/record/record.gql.d.ts +0 -14
  94. package/lib/record/record.service.d.ts +0 -25
  95. package/lib/record/record.types.d.ts +0 -56
  96. package/lib/record-type/record-type.service.d.ts +0 -11
  97. package/lib/record-type/record-type.types.d.ts +0 -50
  98. package/lib/trusted-party/trusted-party.gql.d.ts +0 -9
  99. package/lib/trusted-party/trusted-party.service.d.ts +0 -43
  100. package/lib/trusted-party/trusted-party.types.d.ts +0 -101
  101. /package/lib/{auth → auth2}/auth.config.d.ts +0 -0
@@ -1,148 +0,0 @@
1
- import gql from 'graphql-tag';
2
- import { KeyExchangeFields, UserSharedKeyFields, } from '../key-exchange/key-exchange.gql';
3
- import { SharedContactCardFields } from '../shared-contact-card/shared-contact-card.service';
4
- import { KeyGraphField } from '../_common/queries.gql';
5
- export const TrustedPartyProperties = `
6
- id
7
- user {
8
- id
9
- username
10
- }
11
- other{
12
- id
13
- username,
14
- features {
15
- shareVault
16
- }
17
- }
18
- sharedContactCard {
19
- ${SharedContactCardFields}
20
- }
21
- myContactCard {
22
- ${SharedContactCardFields}
23
- }
24
- sharedScenarios {
25
- edges {
26
- node {
27
- id
28
- }
29
- }
30
- }
31
- theirItems {
32
- directories {
33
- edges {
34
- node {
35
- id
36
- }
37
- }
38
- }
39
- }
40
- currentUserSharedKey {
41
- userSharedKey {
42
- keyExchange {
43
- ${KeyExchangeFields}
44
- }
45
- ${UserSharedKeyFields}
46
- }
47
- }`;
48
- export const GetTrustedPartiesQuery = gql `
49
- query GetTrustedPartiesQuery {
50
- tps {
51
- edges {
52
- node {
53
- ${TrustedPartyProperties}
54
- }
55
- }
56
- }
57
- ${KeyGraphField}
58
- }`;
59
- export const GetAllTrustedPartiesQuery = gql `
60
- query GetAllTrustedPartiesQuery($userId: ID, $isExpired: Boolean, $inviteState: String, $sentInviteState: String) {
61
- tps {
62
- edges {
63
- node {
64
- ${TrustedPartyProperties}
65
- }
66
- }
67
- }
68
- invites: keyExchanges(
69
- responder: $userId
70
- isExpired: $isExpired
71
- state: $inviteState
72
- orderBy: "state,-created"
73
- ) {
74
- edges {
75
- node {
76
- ${KeyExchangeFields}
77
- }
78
- }
79
- }
80
- sentInvites: keyExchanges(
81
- initiator: $userId
82
- isExpired: $isExpired
83
- state: $sentInviteState
84
- orderBy: "state,-created"
85
- ) {
86
- edges {
87
- node {
88
- ${KeyExchangeFields}
89
- }
90
- }
91
- }
92
- ${KeyGraphField}
93
- }`;
94
- export const GetTrustedPartyQuery = gql `
95
- query GetTrustedPartyQuery($partyId: LrRelayIdInput!) {
96
- tp(id: $partyId) {
97
- ${TrustedPartyProperties}
98
- }
99
- ${KeyGraphField}
100
- }`;
101
- export const DeclineTrustedPartyInvitationMutation = gql `
102
- mutation DeclineKeyExchange($input: DeclineKeyExchangeInput!) {
103
- declineKeyExchange(input: $input) {
104
- keyExchange {
105
- id
106
- }
107
- }
108
- }
109
- `;
110
- export const CancelTrustedPartyInvitationMutation = gql `
111
- mutation CancelKeyExchange($input: CancelKeyExchangeInput!) {
112
- cancelKeyExchange(input: $input) {
113
- keyExchange {
114
- id
115
- }
116
- }
117
- }
118
- `;
119
- export const DeleteTrustedPartyMutation = gql `
120
- mutation DeleteTpMutation($input: DeleteTpInput!) {
121
- deleteTp(input: $input) {
122
- id
123
- }
124
- }
125
- `;
126
- export const ShareCategoryMutation = gql `
127
- mutation ShareDirectory($input: ShareDirectoryInput!) {
128
- shareDirectory(input: $input) {
129
- tpSharedDirectory {
130
- item {
131
- plainMeta
132
- }
133
- }
134
- }
135
- }
136
- `;
137
- export const UnshareCategoryMutation = gql `
138
- mutation UnshareDirectory($input: UnshareDirectoryInput!) {
139
- unshareDirectory(input: $input) {
140
- tpSharedDirectory {
141
- item {
142
- plainMeta
143
- }
144
- }
145
- }
146
- }
147
- `;
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5ncWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvdHJ1c3RlZC1wYXJ0eS90cnVzdGVkLXBhcnR5LmdxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7O01BY2hDLHVCQUF1Qjs7O01BR3ZCLHVCQUF1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBcUJuQixpQkFBaUI7O1FBRW5CLG1CQUFtQjs7SUFFdkIsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7VUFLL0Isc0JBQXNCOzs7O0lBSTVCLGFBQWE7RUFDZixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7OztVQUtsQyxzQkFBc0I7Ozs7Ozs7Ozs7OztVQVl0QixpQkFBaUI7Ozs7Ozs7Ozs7OztVQVlqQixpQkFBaUI7Ozs7SUFJdkIsYUFBYTtFQUNmLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUE7OztNQUdqQyxzQkFBc0I7O0lBRXhCLGFBQWE7RUFDZixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF2RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FBRyxDQUFBOzs7Ozs7OztDQVF0RCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Q0FNNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztDQVV2QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7Ozs7O0NBVXpDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcbmltcG9ydCB7XG4gIEtleUV4Y2hhbmdlRmllbGRzLFxuICBVc2VyU2hhcmVkS2V5RmllbGRzLFxufSBmcm9tICcuLi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLmdxbCc7XG5pbXBvcnQgeyBTaGFyZWRDb250YWN0Q2FyZEZpZWxkcyB9IGZyb20gJy4uL3NoYXJlZC1jb250YWN0LWNhcmQvc2hhcmVkLWNvbnRhY3QtY2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUdyYXBoRmllbGQgfSBmcm9tICcuLi9fY29tbW9uL3F1ZXJpZXMuZ3FsJztcblxuZXhwb3J0IGNvbnN0IFRydXN0ZWRQYXJ0eVByb3BlcnRpZXMgPSBgXG4gIGlkXG4gIHVzZXIge1xuICAgIGlkXG4gICAgdXNlcm5hbWVcbiAgfVxuICBvdGhlcntcbiAgICBpZFxuICAgIHVzZXJuYW1lLFxuICAgIGZlYXR1cmVzIHtcbiAgICAgIHNoYXJlVmF1bHRcbiAgICB9XG4gIH1cbiAgc2hhcmVkQ29udGFjdENhcmQge1xuICAgICR7U2hhcmVkQ29udGFjdENhcmRGaWVsZHN9XG4gIH1cbiAgbXlDb250YWN0Q2FyZCB7XG4gICAgJHtTaGFyZWRDb250YWN0Q2FyZEZpZWxkc31cbiAgfVxuICBzaGFyZWRTY2VuYXJpb3Mge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuICB0aGVpckl0ZW1zIHtcbiAgICBkaXJlY3RvcmllcyB7XG4gICAgICBlZGdlcyB7XG4gICAgICAgIG5vZGUge1xuICAgICAgICAgIGlkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY3VycmVudFVzZXJTaGFyZWRLZXkge1xuICAgIHVzZXJTaGFyZWRLZXkge1xuICAgICAga2V5RXhjaGFuZ2Uge1xuICAgICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgICAgfVxuICAgICAgJHtVc2VyU2hhcmVkS2V5RmllbGRzfVxuICAgIH1cbiAgfWA7XG5cbmV4cG9ydCBjb25zdCBHZXRUcnVzdGVkUGFydGllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VHJ1c3RlZFBhcnRpZXNRdWVyeSB7XG4gIHRwcyB7XG4gICAgZWRnZXMge1xuICAgICAgbm9kZSB7XG4gICAgICAgICR7VHJ1c3RlZFBhcnR5UHJvcGVydGllc31cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJHtLZXlHcmFwaEZpZWxkfVxufWA7XG5cbmV4cG9ydCBjb25zdCBHZXRBbGxUcnVzdGVkUGFydGllc1F1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0QWxsVHJ1c3RlZFBhcnRpZXNRdWVyeSgkdXNlcklkOiBJRCwgJGlzRXhwaXJlZDogQm9vbGVhbiwgJGludml0ZVN0YXRlOiBTdHJpbmcsICRzZW50SW52aXRlU3RhdGU6IFN0cmluZykge1xuICB0cHMge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke1RydXN0ZWRQYXJ0eVByb3BlcnRpZXN9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGludml0ZXM6IGtleUV4Y2hhbmdlcyhcbiAgICByZXNwb25kZXI6ICR1c2VySWRcbiAgICBpc0V4cGlyZWQ6ICRpc0V4cGlyZWRcbiAgICBzdGF0ZTogJGludml0ZVN0YXRlXG4gICAgb3JkZXJCeTogXCJzdGF0ZSwtY3JlYXRlZFwiXG4gICkge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBzZW50SW52aXRlczoga2V5RXhjaGFuZ2VzKFxuICAgIGluaXRpYXRvcjogJHVzZXJJZFxuICAgIGlzRXhwaXJlZDogJGlzRXhwaXJlZFxuICAgIHN0YXRlOiAkc2VudEludml0ZVN0YXRlXG4gICAgb3JkZXJCeTogXCJzdGF0ZSwtY3JlYXRlZFwiXG4gICkge1xuICAgIGVkZ2VzIHtcbiAgICAgIG5vZGUge1xuICAgICAgICAke0tleUV4Y2hhbmdlRmllbGRzfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAke0tleUdyYXBoRmllbGR9XG59YDtcblxuZXhwb3J0IGNvbnN0IEdldFRydXN0ZWRQYXJ0eVF1ZXJ5ID0gZ3FsYFxucXVlcnkgR2V0VHJ1c3RlZFBhcnR5UXVlcnkoJHBhcnR5SWQ6IExyUmVsYXlJZElucHV0ISkge1xuICB0cChpZDogJHBhcnR5SWQpIHtcbiAgICAke1RydXN0ZWRQYXJ0eVByb3BlcnRpZXN9XG4gIH1cbiAgJHtLZXlHcmFwaEZpZWxkfVxufWA7XG5cbmV4cG9ydCBjb25zdCBEZWNsaW5lVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uID0gZ3FsYFxuICBtdXRhdGlvbiBEZWNsaW5lS2V5RXhjaGFuZ2UoJGlucHV0OiBEZWNsaW5lS2V5RXhjaGFuZ2VJbnB1dCEpIHtcbiAgICBkZWNsaW5lS2V5RXhjaGFuZ2UoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAga2V5RXhjaGFuZ2Uge1xuICAgICAgICBpZFxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENhbmNlbFRydXN0ZWRQYXJ0eUludml0YXRpb25NdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gQ2FuY2VsS2V5RXhjaGFuZ2UoJGlucHV0OiBDYW5jZWxLZXlFeGNoYW5nZUlucHV0ISkge1xuICAgIGNhbmNlbEtleUV4Y2hhbmdlKGlucHV0OiAkaW5wdXQpIHtcbiAgICAgIGtleUV4Y2hhbmdlIHtcbiAgICAgICAgaWRcbiAgICAgIH1cbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVUcnVzdGVkUGFydHlNdXRhdGlvbiA9IGdxbGBcbiAgbXV0YXRpb24gRGVsZXRlVHBNdXRhdGlvbigkaW5wdXQ6IERlbGV0ZVRwSW5wdXQhKSB7XG4gICAgZGVsZXRlVHAoaW5wdXQ6ICRpbnB1dCkge1xuICAgICAgaWRcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBTaGFyZUNhdGVnb3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIFNoYXJlRGlyZWN0b3J5KCRpbnB1dDogU2hhcmVEaXJlY3RvcnlJbnB1dCEpIHtcbiAgICBzaGFyZURpcmVjdG9yeShpbnB1dDogJGlucHV0KSB7XG4gICAgICB0cFNoYXJlZERpcmVjdG9yeSB7XG4gICAgICAgIGl0ZW0ge1xuICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVW5zaGFyZUNhdGVnb3J5TXV0YXRpb24gPSBncWxgXG4gIG11dGF0aW9uIFVuc2hhcmVEaXJlY3RvcnkoJGlucHV0OiBVbnNoYXJlRGlyZWN0b3J5SW5wdXQhKSB7XG4gICAgdW5zaGFyZURpcmVjdG9yeShpbnB1dDogJGlucHV0KSB7XG4gICAgICB0cFNoYXJlZERpcmVjdG9yeSB7XG4gICAgICAgIGl0ZW0ge1xuICAgICAgICAgIHBsYWluTWV0YVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5gO1xuIl19
@@ -1,308 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- import { HttpClient } from '@angular/common/http';
4
- import { Injectable } from '@angular/core';
5
- import { LrApolloService } from '../api/lr-apollo.service';
6
- import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
7
- import { EncryptionService } from '../encryption/encryption.service';
8
- import { KeyExchangeService } from '../key-exchange/key-exchange.service';
9
- import { KeyFactoryService } from '../key/key-factory.service';
10
- import { KeyGraphService } from '../key/key-graph.service';
11
- import { KeyService } from '../key/key.service';
12
- import { ContactCardName } from '../profile/profile.types';
13
- import { SharedContactCardService } from '../shared-contact-card/shared-contact-card.service';
14
- import { UserService } from '../user/user.service';
15
- import { CancelTrustedPartyInvitationMutation, DeclineTrustedPartyInvitationMutation, DeleteTrustedPartyMutation, GetAllTrustedPartiesQuery, GetTrustedPartiesQuery, GetTrustedPartyQuery, ShareCategoryMutation, UnshareCategoryMutation, } from './trusted-party.gql';
16
- import { TrustedPartyInviteStatus, TrustedPartyRoleType, TrustedPartyType, } from './trusted-party.types';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@angular/common/http";
19
- import * as i2 from "../api/lr-apollo.service";
20
- import * as i3 from "../shared-contact-card/shared-contact-card.service";
21
- import * as i4 from "../user/user.service";
22
- import * as i5 from "../auth/life-ready-auth.service";
23
- import * as i6 from "../key-exchange/key-exchange.service";
24
- import * as i7 from "../key/key-graph.service";
25
- import * as i8 from "../key/key.service";
26
- import * as i9 from "../key/key-factory.service";
27
- import * as i10 from "../encryption/encryption.service";
28
- export class TrustedPartyService {
29
- constructor(http, lrApollo, sharedContactCardService, userService, authService, keyExchangeService, keyGraphService, keyService, keyFactory, encryptionService) {
30
- this.http = http;
31
- this.lrApollo = lrApollo;
32
- this.sharedContactCardService = sharedContactCardService;
33
- this.userService = userService;
34
- this.authService = authService;
35
- this.keyExchangeService = keyExchangeService;
36
- this.keyGraphService = keyGraphService;
37
- this.keyService = keyService;
38
- this.keyFactory = keyFactory;
39
- this.encryptionService = encryptionService;
40
- }
41
- getTrustedParties() {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- const { tps } = yield this.lrApollo.query({
44
- query: GetTrustedPartiesQuery,
45
- });
46
- return yield Promise.all(tps.edges.map((x) => this.mapTrustedParty(x.node)));
47
- });
48
- }
49
- getAllTrustedParties() {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- const user = yield this.authService.getUser();
52
- const { tps, invites, sentInvites } = yield this.lrApollo.query({
53
- query: GetAllTrustedPartiesQuery,
54
- variables: {
55
- userId: user.id,
56
- isExpired: false,
57
- },
58
- });
59
- return {
60
- parties: (yield Promise.all(tps.edges.map((x) => this.mapTrustedParty(x.node)))).filter((x) => x),
61
- invites: (yield Promise.all(invites.edges.map((x) => __awaiter(this, void 0, void 0, function* () {
62
- return this.mapInvite(yield this.keyExchangeService.decryptKeyExchange(x.node));
63
- }))))
64
- .filter((x) => x.status !== TrustedPartyInviteStatus.Completed)
65
- .filter((x) => x.status !== TrustedPartyInviteStatus.Invited || x.actionRequired),
66
- sentInvites: (yield Promise.all(sentInvites.edges.map((x) => __awaiter(this, void 0, void 0, function* () {
67
- return this.mapInvite(yield this.keyExchangeService.decryptKeyExchange(x.node));
68
- })))).filter((x) => x.status !== TrustedPartyInviteStatus.Completed),
69
- };
70
- });
71
- }
72
- getTrustedParty(partyId) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- const { tp } = yield this.lrApollo.query({
75
- query: GetTrustedPartyQuery,
76
- variables: { partyId },
77
- });
78
- return yield this.mapTrustedParty(tp);
79
- });
80
- }
81
- getTrustedPartyRoles(roleType = TrustedPartyRoleType.General) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- if (!this.trustedPartyRoles) {
84
- this.trustedPartyRoles = yield this.http
85
- .get('/assets/meta/trusted-party-roles.json')
86
- .toPromise();
87
- }
88
- return Promise.resolve(this.trustedPartyRoles.filter((x) => x.roleType === roleType));
89
- });
90
- }
91
- inviteTrustedParty(invite) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- const params = {
94
- responderUsername: invite.party.username,
95
- email: invite.party.email,
96
- message: {
97
- name: invite.party.name,
98
- email: invite.party.email,
99
- message: invite.party.message,
100
- permissions: invite.permissions,
101
- },
102
- contactCard: {
103
- plainOwnerCipherDataJson: null,
104
- plainSharedCipherDataJson: invite.mySharedDetails,
105
- ownerPlainData: {
106
- name: new ContactCardName(invite.mySharedDetails.name),
107
- },
108
- },
109
- };
110
- yield this.keyExchangeService.initiateOtk(params);
111
- });
112
- }
113
- cancelInvitation(inviteId) {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- yield this.lrApollo.mutate({
116
- mutation: CancelTrustedPartyInvitationMutation,
117
- variables: {
118
- input: {
119
- id: inviteId,
120
- },
121
- },
122
- });
123
- });
124
- }
125
- getInvitation(inviteId, inviteToken, key) {
126
- return __awaiter(this, void 0, void 0, function* () {
127
- const exchange = yield this.keyExchangeService.getKeyExchange(inviteId, {
128
- token: inviteToken,
129
- otKeyK: key,
130
- });
131
- return this.mapInvite(exchange);
132
- });
133
- }
134
- acceptInvitation(invite) {
135
- return __awaiter(this, void 0, void 0, function* () {
136
- const params = {
137
- id: invite.inviteId,
138
- token: invite.inviteToken,
139
- decryptedOtk: invite.decryptedOtk,
140
- initiatorContactCard: null,
141
- responderContactCard: {
142
- plainOwnerCipherDataJson: null,
143
- plainSharedCipherDataJson: invite.mySharedDetails,
144
- ownerPlainData: {
145
- name: new ContactCardName(invite.mySharedDetails.name),
146
- },
147
- },
148
- };
149
- const { tp } = yield this.keyExchangeService.respondOtk(params);
150
- return tp.id;
151
- });
152
- }
153
- declineInvitation(inviteId, inviteToken) {
154
- return __awaiter(this, void 0, void 0, function* () {
155
- yield this.lrApollo.mutate({
156
- mutation: DeclineTrustedPartyInvitationMutation,
157
- variables: {
158
- input: {
159
- id: inviteId,
160
- token: inviteToken,
161
- },
162
- },
163
- });
164
- });
165
- }
166
- confirmInvitation(confirm) {
167
- return __awaiter(this, void 0, void 0, function* () {
168
- const { tp } = yield this.keyExchangeService.completeOtk(confirm.inviteId, confirm.initiatorRootKeyCipher, confirm.initiatorOneTimePbkCipher, null);
169
- return tp.id;
170
- });
171
- }
172
- removeTrustedParty(partyId) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- yield this.lrApollo.mutate({
175
- mutation: DeleteTrustedPartyMutation,
176
- variables: {
177
- input: {
178
- id: partyId,
179
- },
180
- },
181
- });
182
- });
183
- }
184
- setCategoryAccessLevel(categoryId, keyId, trustedParty, accessLevel) {
185
- return accessLevel
186
- ? this.shareDirectory(categoryId, keyId, trustedParty, accessLevel)
187
- : this.unshareDirectory(categoryId, trustedParty.id);
188
- }
189
- setRecordAccessLevel(recordId, keyId, trustedParty, accessLevel) {
190
- return accessLevel
191
- ? this.shareDirectory(recordId, keyId, trustedParty, accessLevel)
192
- : this.unshareDirectory(recordId, trustedParty.id);
193
- }
194
- shareDirectory(directoryId, keyId, trustedParty, accessLevel) {
195
- return __awaiter(this, void 0, void 0, function* () {
196
- const key = yield this.keyGraphService.getKey(keyId);
197
- const wrappingKey = yield this.keyGraphService.getKey(trustedParty.userSharedKey.sharedKey.id);
198
- const wrappedKey = yield this.encryptionService.encrypt(wrappingKey.jwk, key.jwk.toJSON(true));
199
- yield this.lrApollo.mutate({
200
- mutation: ShareCategoryMutation,
201
- variables: {
202
- input: {
203
- id: directoryId,
204
- tpId: trustedParty.id,
205
- accessRole: accessLevel,
206
- keyId: key.id,
207
- wrappingKeyId: wrappingKey.id,
208
- wrappedKey: JSON.stringify(wrappedKey),
209
- },
210
- },
211
- });
212
- });
213
- }
214
- unshareDirectory(directoryId, trustedPartyId) {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- yield this.lrApollo.mutate({
217
- mutation: UnshareCategoryMutation,
218
- variables: {
219
- input: {
220
- id: directoryId,
221
- tpId: trustedPartyId,
222
- },
223
- },
224
- });
225
- });
226
- }
227
- mapTrustedParty(tp) {
228
- var _a;
229
- return __awaiter(this, void 0, void 0, function* () {
230
- try {
231
- const contactCard = tp.sharedContactCard &&
232
- (yield this.sharedContactCardService.decryptTrustedPartyDetails(tp.sharedContactCard));
233
- const myContactCard = tp.myContactCard &&
234
- (yield this.sharedContactCardService.decryptSharedTrustedPartyDetails(tp.myContactCard));
235
- return {
236
- id: tp.id,
237
- type: TrustedPartyType.User,
238
- hasScenarios: !!tp.sharedScenarios.edges.length,
239
- hasSharedVault: !!tp.theirItems.directories.edges.length,
240
- name: contactCard && contactCard.name && contactCard.name.name,
241
- details: contactCard,
242
- mySharedDetails: myContactCard,
243
- userSharedKey: tp.currentUserSharedKey.userSharedKey,
244
- username: tp.other.username,
245
- features: {
246
- sharedVault: {
247
- hasAccess: (((_a = tp.other.features) === null || _a === void 0 ? void 0 : _a.shareVault) || ['noaccess'])[0] === 'access',
248
- },
249
- },
250
- };
251
- }
252
- catch (e) {
253
- console.error('Failed to decrypt Trusted Party.', e, tp);
254
- return null;
255
- }
256
- });
257
- }
258
- mapInvite(exchange) {
259
- var _a, _b;
260
- return __awaiter(this, void 0, void 0, function* () {
261
- const contactCard = exchange.contactCard;
262
- const name = exchange.isInitiator
263
- ? (_a = exchange.myMessage) === null || _a === void 0 ? void 0 : _a.name : contactCard && contactCard.name && contactCard.name.name;
264
- const email = exchange.isInitiator
265
- ? (_b = exchange.myMessage) === null || _b === void 0 ? void 0 : _b.email : (contactCard && contactCard.email) || exchange.responderEmailAddress;
266
- return {
267
- id: exchange.id,
268
- type: TrustedPartyType.User,
269
- status: exchange.state,
270
- token: exchange.token,
271
- tokenExpiry: exchange.tokenExpiryTime,
272
- decryptedOtk: exchange.decryptedOtk,
273
- name,
274
- email,
275
- isSender: exchange.isInitiator,
276
- actionRequired: exchange.isInitiator
277
- ? exchange.initiatorActionRequired
278
- : exchange.responderActionRequired,
279
- rootKeyCipher: exchange.initiatorRootKeyCipher,
280
- pbkCipher: exchange.otk.initiatorOneTimePbkCipher,
281
- isExpired: exchange.isExpired,
282
- details: contactCard,
283
- message: exchange.message,
284
- mySharedDetails: exchange.myContactCard,
285
- mySharedMessage: exchange.myMessage,
286
- };
287
- });
288
- }
289
- }
290
- TrustedPartyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TrustedPartyService_Factory() { return new TrustedPartyService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.LrApolloService), i0.ɵɵinject(i3.SharedContactCardService), i0.ɵɵinject(i4.UserService), i0.ɵɵinject(i5.LifeReadyAuthService), i0.ɵɵinject(i6.KeyExchangeService), i0.ɵɵinject(i7.KeyGraphService), i0.ɵɵinject(i8.KeyService), i0.ɵɵinject(i9.KeyFactoryService), i0.ɵɵinject(i10.EncryptionService)); }, token: TrustedPartyService, providedIn: "root" });
291
- TrustedPartyService.decorators = [
292
- { type: Injectable, args: [{
293
- providedIn: 'root',
294
- },] }
295
- ];
296
- TrustedPartyService.ctorParameters = () => [
297
- { type: HttpClient },
298
- { type: LrApolloService },
299
- { type: SharedContactCardService },
300
- { type: UserService },
301
- { type: LifeReadyAuthService },
302
- { type: KeyExchangeService },
303
- { type: KeyGraphService },
304
- { type: KeyService },
305
- { type: KeyFactoryService },
306
- { type: EncryptionService }
307
- ];
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3RydXN0ZWQtcGFydHkvdHJ1c3RlZC1wYXJ0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBSzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQywwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFPTCx3QkFBd0IsRUFFeEIsb0JBQW9CLEVBQ3BCLGdCQUFn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WUFOakIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4uL2FwaS9sci1hcG9sbG8uc2VydmljZSc7XG5pbXBvcnQgeyBMaWZlUmVhZHlBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvbGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjZXNzTGV2ZWwgfSBmcm9tICcuLi9jYXRlZ29yeS9jYXRlZ29yeS50eXBlcyc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUV4Y2hhbmdlU2VydmljZSB9IGZyb20gJy4uL2tleS1leGNoYW5nZS9rZXktZXhjaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQge1xuICBEZWNyeXB0ZWRLZXlFeGNoYW5nZSxcbiAgUmVzcG9uZE90a0lucHV0LFxufSBmcm9tICcuLi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLnR5cGVzJztcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4va2V5L2tleS1ncmFwaC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleVNlcnZpY2UgfSBmcm9tICcuLi9rZXkva2V5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGFjdENhcmROYW1lIH0gZnJvbSAnLi4vcHJvZmlsZS9wcm9maWxlLnR5cGVzJztcbmltcG9ydCB7IFNoYXJlZENvbnRhY3RDYXJkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC1jb250YWN0LWNhcmQvc2hhcmVkLWNvbnRhY3QtY2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ2FuY2VsVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uLFxuICBEZWNsaW5lVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uLFxuICBEZWxldGVUcnVzdGVkUGFydHlNdXRhdGlvbixcbiAgR2V0QWxsVHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnRpZXNRdWVyeSxcbiAgR2V0VHJ1c3RlZFBhcnR5UXVlcnksXG4gIFNoYXJlQ2F0ZWdvcnlNdXRhdGlvbixcbiAgVW5zaGFyZUNhdGVnb3J5TXV0YXRpb24sXG59IGZyb20gJy4vdHJ1c3RlZC1wYXJ0eS5ncWwnO1xuaW1wb3J0IHtcbiAgQWNjZXB0VHJ1c3RlZFBhcnR5SW52aXRlLFxuICBDb25maXJtVHJ1c3RlZFBhcnR5SW52aXRlLFxuICBJbnZpdGVUcnVzdGVkUGFydHksXG4gIFRydXN0ZWRQYXJ0aWVzLFxuICBUcnVzdGVkUGFydHksXG4gIFRydXN0ZWRQYXJ0eUludml0ZSxcbiAgVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzLFxuICBUcnVzdGVkUGFydHlSb2xlLFxuICBUcnVzdGVkUGFydHlSb2xlVHlwZSxcbiAgVHJ1c3RlZFBhcnR5VHlwZSxcbn0gZnJvbSAnLi90cnVzdGVkLXBhcnR5LnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eVNlcnZpY2Uge1xuICBwcml2YXRlIHRydXN0ZWRQYXJ0eVJvbGVzOiBUcnVzdGVkUGFydHlSb2xlW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbHJBcG9sbG86IExyQXBvbGxvU2VydmljZSxcbiAgICBwcml2YXRlIHNoYXJlZENvbnRhY3RDYXJkU2VydmljZTogU2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IExpZmVSZWFkeUF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUga2V5RXhjaGFuZ2VTZXJ2aWNlOiBLZXlFeGNoYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlHcmFwaFNlcnZpY2U6IEtleUdyYXBoU2VydmljZSxcbiAgICBwcml2YXRlIGtleVNlcnZpY2U6IEtleVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBrZXlGYWN0b3J5OiBLZXlGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGVuY3J5cHRpb25TZXJ2aWNlOiBFbmNyeXB0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFRydXN0ZWRQYXJ0aWVzKCk6IFByb21pc2U8VHJ1c3RlZFBhcnR5W10+IHtcbiAgICBjb25zdCB7IHRwcyB9ID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcbiAgICAgIHF1ZXJ5OiBHZXRUcnVzdGVkUGFydGllc1F1ZXJ5LFxuICAgIH0pO1xuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRwcy5lZGdlcy5tYXAoKHgpID0+IHRoaXMubWFwVHJ1c3RlZFBhcnR5KHgubm9kZSkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBbGxUcnVzdGVkUGFydGllcygpOiBQcm9taXNlPFRydXN0ZWRQYXJ0aWVzPiB7XG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIGNvbnN0IHsgdHBzLCBpbnZpdGVzLCBzZW50SW52aXRlcyB9ID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxhbnk+KHtcbiAgICAgIHF1ZXJ5OiBHZXRBbGxUcnVzdGVkUGFydGllc1F1ZXJ5LFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIHVzZXJJZDogdXNlci5pZCxcbiAgICAgICAgaXNFeHBpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFydGllczogKFxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbDxUcnVzdGVkUGFydHk+KFxuICAgICAgICAgIHRwcy5lZGdlcy5tYXAoKHgpID0+IHRoaXMubWFwVHJ1c3RlZFBhcnR5KHgubm9kZSkpXG4gICAgICAgIClcbiAgICAgICkuZmlsdGVyKCh4KSA9PiB4KSxcbiAgICAgIGludml0ZXM6IChcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGw8VHJ1c3RlZFBhcnR5SW52aXRlPihcbiAgICAgICAgICBpbnZpdGVzLmVkZ2VzLm1hcChhc3luYyAoeCkgPT5cbiAgICAgICAgICAgIHRoaXMubWFwSW52aXRlKFxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmtleUV4Y2hhbmdlU2VydmljZS5kZWNyeXB0S2V5RXhjaGFuZ2UoeC5ub2RlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgICAuZmlsdGVyKCh4KSA9PiB4LnN0YXR1cyAhPT0gVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzLkNvbXBsZXRlZClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgIHguc3RhdHVzICE9PSBUcnVzdGVkUGFydHlJbnZpdGVTdGF0dXMuSW52aXRlZCB8fCB4LmFjdGlvblJlcXVpcmVkXG4gICAgICAgICksXG4gICAgICBzZW50SW52aXRlczogKFxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbDxUcnVzdGVkUGFydHlJbnZpdGU+KFxuICAgICAgICAgIHNlbnRJbnZpdGVzLmVkZ2VzLm1hcChhc3luYyAoeCkgPT5cbiAgICAgICAgICAgIHRoaXMubWFwSW52aXRlKFxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmtleUV4Y2hhbmdlU2VydmljZS5kZWNyeXB0S2V5RXhjaGFuZ2UoeC5ub2RlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKS5maWx0ZXIoKHgpID0+IHguc3RhdHVzICE9PSBUcnVzdGVkUGFydHlJbnZpdGVTdGF0dXMuQ29tcGxldGVkKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRydXN0ZWRQYXJ0eShwYXJ0eUlkOiBzdHJpbmcpOiBQcm9taXNlPFRydXN0ZWRQYXJ0eT4ge1xuICAgIGNvbnN0IHsgdHAgfSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ucXVlcnk8YW55Pih7XG4gICAgICBxdWVyeTogR2V0VHJ1c3RlZFBhcnR5UXVlcnksXG4gICAgICB2YXJpYWJsZXM6IHsgcGFydHlJZCB9LFxuICAgIH0pO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm1hcFRydXN0ZWRQYXJ0eSh0cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VHJ1c3RlZFBhcnR5Um9sZXMoXG4gICAgcm9sZVR5cGU6IFRydXN0ZWRQYXJ0eVJvbGVUeXBlID0gVHJ1c3RlZFBhcnR5Um9sZVR5cGUuR2VuZXJhbFxuICApOiBQcm9taXNlPFRydXN0ZWRQYXJ0eVJvbGVbXT4ge1xuICAgIGlmICghdGhpcy50cnVzdGVkUGFydHlSb2xlcykge1xuICAgICAgdGhpcy50cnVzdGVkUGFydHlSb2xlcyA9IGF3YWl0IHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PFRydXN0ZWRQYXJ0eVJvbGVbXT4oJy9hc3NldHMvbWV0YS90cnVzdGVkLXBhcnR5LXJvbGVzLmpzb24nKVxuICAgICAgICAudG9Qcm9taXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoXG4gICAgICB0aGlzLnRydXN0ZWRQYXJ0eVJvbGVzLmZpbHRlcigoeCkgPT4geC5yb2xlVHlwZSA9PT0gcm9sZVR5cGUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbnZpdGVUcnVzdGVkUGFydHkoaW52aXRlOiBJbnZpdGVUcnVzdGVkUGFydHkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICByZXNwb25kZXJVc2VybmFtZTogaW52aXRlLnBhcnR5LnVzZXJuYW1lLFxuICAgICAgZW1haWw6IGludml0ZS5wYXJ0eS5lbWFpbCxcbiAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgbmFtZTogaW52aXRlLnBhcnR5Lm5hbWUsXG4gICAgICAgIGVtYWlsOiBpbnZpdGUucGFydHkuZW1haWwsXG4gICAgICAgIG1lc3NhZ2U6IGludml0ZS5wYXJ0eS5tZXNzYWdlLFxuICAgICAgICBwZXJtaXNzaW9uczogaW52aXRlLnBlcm1pc3Npb25zLFxuICAgICAgfSxcbiAgICAgIGNvbnRhY3RDYXJkOiB7XG4gICAgICAgIHBsYWluT3duZXJDaXBoZXJEYXRhSnNvbjogbnVsbCxcbiAgICAgICAgcGxhaW5TaGFyZWRDaXBoZXJEYXRhSnNvbjogaW52aXRlLm15U2hhcmVkRGV0YWlscyxcbiAgICAgICAgb3duZXJQbGFpbkRhdGE6IHtcbiAgICAgICAgICBuYW1lOiBuZXcgQ29udGFjdENhcmROYW1lKGludml0ZS5teVNoYXJlZERldGFpbHMubmFtZSksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgYXdhaXQgdGhpcy5rZXlFeGNoYW5nZVNlcnZpY2UuaW5pdGlhdGVPdGsocGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxJbnZpdGF0aW9uKGludml0ZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogQ2FuY2VsVHJ1c3RlZFBhcnR5SW52aXRhdGlvbk11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGludml0ZUlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRJbnZpdGF0aW9uKFxuICAgIGludml0ZUlkOiBzdHJpbmcsXG4gICAgaW52aXRlVG9rZW46IHN0cmluZyxcbiAgICBrZXk6IHN0cmluZ1xuICApOiBQcm9taXNlPFRydXN0ZWRQYXJ0eUludml0ZT4ge1xuICAgIGNvbnN0IGV4Y2hhbmdlID0gYXdhaXQgdGhpcy5rZXlFeGNoYW5nZVNlcnZpY2UuZ2V0S2V5RXhjaGFuZ2UoaW52aXRlSWQsIHtcbiAgICAgIHRva2VuOiBpbnZpdGVUb2tlbixcbiAgICAgIG90S2V5Szoga2V5LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMubWFwSW52aXRlKGV4Y2hhbmdlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhY2NlcHRJbnZpdGF0aW9uKFxuICAgIGludml0ZTogQWNjZXB0VHJ1c3RlZFBhcnR5SW52aXRlXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgcGFyYW1zOiBSZXNwb25kT3RrSW5wdXQgPSB7XG4gICAgICBpZDogaW52aXRlLmludml0ZUlkLFxuICAgICAgdG9rZW46IGludml0ZS5pbnZpdGVUb2tlbixcbiAgICAgIGRlY3J5cHRlZE90azogaW52aXRlLmRlY3J5cHRlZE90ayxcbiAgICAgIGluaXRpYXRvckNvbnRhY3RDYXJkOiBudWxsLFxuICAgICAgcmVzcG9uZGVyQ29udGFjdENhcmQ6IHtcbiAgICAgICAgcGxhaW5Pd25lckNpcGhlckRhdGFKc29uOiBudWxsLFxuICAgICAgICBwbGFpblNoYXJlZENpcGhlckRhdGFKc29uOiBpbnZpdGUubXlTaGFyZWREZXRhaWxzLFxuICAgICAgICBvd25lclBsYWluRGF0YToge1xuICAgICAgICAgIG5hbWU6IG5ldyBDb250YWN0Q2FyZE5hbWUoaW52aXRlLm15U2hhcmVkRGV0YWlscy5uYW1lKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHsgdHAgfSA9IGF3YWl0IHRoaXMua2V5RXhjaGFuZ2VTZXJ2aWNlLnJlc3BvbmRPdGsocGFyYW1zKTtcblxuICAgIHJldHVybiB0cC5pZDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWNsaW5lSW52aXRhdGlvbihcbiAgICBpbnZpdGVJZDogc3RyaW5nLFxuICAgIGludml0ZVRva2VuOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IERlY2xpbmVUcnVzdGVkUGFydHlJbnZpdGF0aW9uTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogaW52aXRlSWQsXG4gICAgICAgICAgdG9rZW46IGludml0ZVRva2VuLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjb25maXJtSW52aXRhdGlvbihcbiAgICBjb25maXJtOiBDb25maXJtVHJ1c3RlZFBhcnR5SW52aXRlXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyB0cCB9ID0gYXdhaXQgdGhpcy5rZXlFeGNoYW5nZVNlcnZpY2UuY29tcGxldGVPdGsoXG4gICAgICBjb25maXJtLmludml0ZUlkLFxuICAgICAgY29uZmlybS5pbml0aWF0b3JSb290S2V5Q2lwaGVyLFxuICAgICAgY29uZmlybS5pbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyLFxuICAgICAgbnVsbFxuICAgICk7XG4gICAgcmV0dXJuIHRwLmlkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbW92ZVRydXN0ZWRQYXJ0eShwYXJ0eUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogRGVsZXRlVHJ1c3RlZFBhcnR5TXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICBpZDogcGFydHlJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q2F0ZWdvcnlBY2Nlc3NMZXZlbChcbiAgICBjYXRlZ29yeUlkOiBzdHJpbmcsXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICB0cnVzdGVkUGFydHk6IFRydXN0ZWRQYXJ0eSxcbiAgICBhY2Nlc3NMZXZlbD86IEFjY2Vzc0xldmVsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhY2Nlc3NMZXZlbFxuICAgICAgPyB0aGlzLnNoYXJlRGlyZWN0b3J5KGNhdGVnb3J5SWQsIGtleUlkLCB0cnVzdGVkUGFydHksIGFjY2Vzc0xldmVsKVxuICAgICAgOiB0aGlzLnVuc2hhcmVEaXJlY3RvcnkoY2F0ZWdvcnlJZCwgdHJ1c3RlZFBhcnR5LmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRSZWNvcmRBY2Nlc3NMZXZlbChcbiAgICByZWNvcmRJZDogc3RyaW5nLFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgdHJ1c3RlZFBhcnR5OiBUcnVzdGVkUGFydHksXG4gICAgYWNjZXNzTGV2ZWw6IEFjY2Vzc0xldmVsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhY2Nlc3NMZXZlbFxuICAgICAgPyB0aGlzLnNoYXJlRGlyZWN0b3J5KHJlY29yZElkLCBrZXlJZCwgdHJ1c3RlZFBhcnR5LCBhY2Nlc3NMZXZlbClcbiAgICAgIDogdGhpcy51bnNoYXJlRGlyZWN0b3J5KHJlY29yZElkLCB0cnVzdGVkUGFydHkuaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaGFyZURpcmVjdG9yeShcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgdHJ1c3RlZFBhcnR5OiBUcnVzdGVkUGFydHksXG4gICAgYWNjZXNzTGV2ZWw6IEFjY2Vzc0xldmVsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5R3JhcGhTZXJ2aWNlLmdldEtleShrZXlJZCk7XG4gICAgY29uc3Qgd3JhcHBpbmdLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoU2VydmljZS5nZXRLZXkoXG4gICAgICB0cnVzdGVkUGFydHkudXNlclNoYXJlZEtleS5zaGFyZWRLZXkuaWRcbiAgICApO1xuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHQoXG4gICAgICB3cmFwcGluZ0tleS5qd2ssXG4gICAgICBrZXkuandrLnRvSlNPTih0cnVlKVxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZSh7XG4gICAgICBtdXRhdGlvbjogU2hhcmVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHRwSWQ6IHRydXN0ZWRQYXJ0eS5pZCxcbiAgICAgICAgICBhY2Nlc3NSb2xlOiBhY2Nlc3NMZXZlbCxcbiAgICAgICAgICBrZXlJZDoga2V5LmlkLFxuICAgICAgICAgIHdyYXBwaW5nS2V5SWQ6IHdyYXBwaW5nS2V5LmlkLFxuICAgICAgICAgIHdyYXBwZWRLZXk6IEpTT04uc3RyaW5naWZ5KHdyYXBwZWRLZXkpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdW5zaGFyZURpcmVjdG9yeShcbiAgICBkaXJlY3RvcnlJZDogc3RyaW5nLFxuICAgIHRydXN0ZWRQYXJ0eUlkOiBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGUoe1xuICAgICAgbXV0YXRpb246IFVuc2hhcmVDYXRlZ29yeU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgaWQ6IGRpcmVjdG9yeUlkLFxuICAgICAgICAgIHRwSWQ6IHRydXN0ZWRQYXJ0eUlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBtYXBUcnVzdGVkUGFydHkodHA6IGFueSk6IFByb21pc2U8VHJ1c3RlZFBhcnR5PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbnRhY3RDYXJkID1cbiAgICAgICAgdHAuc2hhcmVkQ29udGFjdENhcmQgJiZcbiAgICAgICAgKGF3YWl0IHRoaXMuc2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLmRlY3J5cHRUcnVzdGVkUGFydHlEZXRhaWxzKFxuICAgICAgICAgIHRwLnNoYXJlZENvbnRhY3RDYXJkXG4gICAgICAgICkpO1xuICAgICAgY29uc3QgbXlDb250YWN0Q2FyZCA9XG4gICAgICAgIHRwLm15Q29udGFjdENhcmQgJiZcbiAgICAgICAgKGF3YWl0IHRoaXMuc2hhcmVkQ29udGFjdENhcmRTZXJ2aWNlLmRlY3J5cHRTaGFyZWRUcnVzdGVkUGFydHlEZXRhaWxzKFxuICAgICAgICAgIHRwLm15Q29udGFjdENhcmRcbiAgICAgICAgKSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0cC5pZCxcbiAgICAgICAgdHlwZTogVHJ1c3RlZFBhcnR5VHlwZS5Vc2VyLCAvLyBUT0RPOiB3aGVuIHBhcnRuZXJzXG4gICAgICAgIGhhc1NjZW5hcmlvczogISF0cC5zaGFyZWRTY2VuYXJpb3MuZWRnZXMubGVuZ3RoLFxuICAgICAgICBoYXNTaGFyZWRWYXVsdDogISF0cC50aGVpckl0ZW1zLmRpcmVjdG9yaWVzLmVkZ2VzLmxlbmd0aCxcbiAgICAgICAgbmFtZTogY29udGFjdENhcmQgJiYgY29udGFjdENhcmQubmFtZSAmJiBjb250YWN0Q2FyZC5uYW1lLm5hbWUsXG4gICAgICAgIGRldGFpbHM6IGNvbnRhY3RDYXJkLFxuICAgICAgICBteVNoYXJlZERldGFpbHM6IG15Q29udGFjdENhcmQsXG4gICAgICAgIHVzZXJTaGFyZWRLZXk6IHRwLmN1cnJlbnRVc2VyU2hhcmVkS2V5LnVzZXJTaGFyZWRLZXksXG4gICAgICAgIHVzZXJuYW1lOiB0cC5vdGhlci51c2VybmFtZSxcbiAgICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgICBzaGFyZWRWYXVsdDoge1xuICAgICAgICAgICAgaGFzQWNjZXNzOlxuICAgICAgICAgICAgICAodHAub3RoZXIuZmVhdHVyZXM/LnNoYXJlVmF1bHQgfHwgWydub2FjY2VzcyddKVswXSA9PT0gJ2FjY2VzcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGRlY3J5cHQgVHJ1c3RlZCBQYXJ0eS4nLCBlLCB0cCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG1hcEludml0ZShcbiAgICBleGNoYW5nZTogRGVjcnlwdGVkS2V5RXhjaGFuZ2VcbiAgKTogUHJvbWlzZTxUcnVzdGVkUGFydHlJbnZpdGU+IHtcbiAgICBjb25zdCBjb250YWN0Q2FyZCA9IGV4Y2hhbmdlLmNvbnRhY3RDYXJkO1xuICAgIGNvbnN0IG5hbWUgPSBleGNoYW5nZS5pc0luaXRpYXRvclxuICAgICAgPyBleGNoYW5nZS5teU1lc3NhZ2U/Lm5hbWVcbiAgICAgIDogY29udGFjdENhcmQgJiYgY29udGFjdENhcmQubmFtZSAmJiBjb250YWN0Q2FyZC5uYW1lLm5hbWU7XG4gICAgY29uc3QgZW1haWwgPSBleGNoYW5nZS5pc0luaXRpYXRvclxuICAgICAgPyBleGNoYW5nZS5teU1lc3NhZ2U/LmVtYWlsXG4gICAgICA6IChjb250YWN0Q2FyZCAmJiBjb250YWN0Q2FyZC5lbWFpbCkgfHwgZXhjaGFuZ2UucmVzcG9uZGVyRW1haWxBZGRyZXNzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBleGNoYW5nZS5pZCxcbiAgICAgIHR5cGU6IFRydXN0ZWRQYXJ0eVR5cGUuVXNlciwgLy8gdG9kbyB3aGVuIHBhcnRuZXJzXG4gICAgICBzdGF0dXM6IGV4Y2hhbmdlLnN0YXRlIGFzIHVua25vd24gYXMgVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzLFxuICAgICAgdG9rZW46IGV4Y2hhbmdlLnRva2VuLFxuICAgICAgdG9rZW5FeHBpcnk6IGV4Y2hhbmdlLnRva2VuRXhwaXJ5VGltZSxcbiAgICAgIGRlY3J5cHRlZE90azogZXhjaGFuZ2UuZGVjcnlwdGVkT3RrLFxuICAgICAgbmFtZSxcbiAgICAgIGVtYWlsLFxuICAgICAgaXNTZW5kZXI6IGV4Y2hhbmdlLmlzSW5pdGlhdG9yLFxuICAgICAgYWN0aW9uUmVxdWlyZWQ6IGV4Y2hhbmdlLmlzSW5pdGlhdG9yXG4gICAgICAgID8gZXhjaGFuZ2UuaW5pdGlhdG9yQWN0aW9uUmVxdWlyZWRcbiAgICAgICAgOiBleGNoYW5nZS5yZXNwb25kZXJBY3Rpb25SZXF1aXJlZCxcbiAgICAgIHJvb3RLZXlDaXBoZXI6IGV4Y2hhbmdlLmluaXRpYXRvclJvb3RLZXlDaXBoZXIsXG4gICAgICBwYmtDaXBoZXI6IGV4Y2hhbmdlLm90ay5pbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyLFxuICAgICAgaXNFeHBpcmVkOiBleGNoYW5nZS5pc0V4cGlyZWQsXG4gICAgICBkZXRhaWxzOiBjb250YWN0Q2FyZCxcbiAgICAgIG1lc3NhZ2U6IGV4Y2hhbmdlLm1lc3NhZ2UsXG4gICAgICBteVNoYXJlZERldGFpbHM6IGV4Y2hhbmdlLm15Q29udGFjdENhcmQsXG4gICAgICBteVNoYXJlZE1lc3NhZ2U6IGV4Y2hhbmdlLm15TWVzc2FnZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { TrustedPartyDetails } from '../profile/profile.types';
2
- export class TrustedPartyRole {
3
- }
4
- export var TrustedPartyRoleType;
5
- (function (TrustedPartyRoleType) {
6
- TrustedPartyRoleType["General"] = "general";
7
- TrustedPartyRoleType["Scenario"] = "scenario";
8
- })(TrustedPartyRoleType || (TrustedPartyRoleType = {}));
9
- export var TrustedPartyType;
10
- (function (TrustedPartyType) {
11
- TrustedPartyType["User"] = "user";
12
- TrustedPartyType["Organisation"] = "organisation";
13
- })(TrustedPartyType || (TrustedPartyType = {}));
14
- export var TrustedPartyInviteStatus;
15
- (function (TrustedPartyInviteStatus) {
16
- TrustedPartyInviteStatus["Invited"] = "IN_PROGRESS";
17
- TrustedPartyInviteStatus["Cancelled"] = "CANCELLED";
18
- TrustedPartyInviteStatus["Declined"] = "DECLINED";
19
- TrustedPartyInviteStatus["Completed"] = "COMPLETED";
20
- })(TrustedPartyInviteStatus || (TrustedPartyInviteStatus = {}));
21
- export class TrustedParties {
22
- }
23
- export class SharedTrustedPartyDetails extends TrustedPartyDetails {
24
- }
25
- export class TrustedPartyInvite {
26
- }
27
- export class TPFeatures {
28
- }
29
- export class SharedVaultFeature {
30
- }
31
- export class TrustedParty {
32
- }
33
- export class FoundTrustedParty {
34
- }
35
- export class InviteTrustedParty {
36
- }
37
- export class AcceptTrustedPartyInvite {
38
- }
39
- export class ConfirmTrustedPartyInvite {
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3RlZC1wYXJ0eS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi90cnVzdGVkLXBhcnR5L3RydXN0ZWQtcGFydHkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHL0QsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUVELE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsMkNBQW1CLENBQUE7SUFDbkIsNkNBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0I7QUFFRCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLGlDQUFhLENBQUE7SUFDYixpREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUVELE1BQU0sQ0FBTixJQUFZLHdCQUtYO0FBTEQsV0FBWSx3QkFBd0I7SUFDbEMsbURBQXVCLENBQUE7SUFDdkIsbURBQXVCLENBQUE7SUFDdkIsaURBQXFCLENBQUE7SUFDckIsbURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUxXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFLbkM7QUFFRCxNQUFNLE9BQU8sY0FBYztDQUkxQjtBQUVELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxtQkFBbUI7Q0FJakU7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0NBb0I5QjtBQUVELE1BQU0sT0FBTyxVQUFVO0NBRXRCO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtDQUU5QjtBQUVELE1BQU0sT0FBTyxZQUFZO0NBWXhCO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQU03QjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7Q0FJOUI7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0NBS3BDO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtDQUlyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlY3J5cHRlZE90ayxcbiAgS2V5RXhjaGFuZ2VNZXNzYWdlLFxuICBQcmVwYXJlZFBlcm1pc3Npb25zLFxuICBVc2VyU2hhcmVkS2V5LFxufSBmcm9tICcuLi9rZXktZXhjaGFuZ2Uva2V5LWV4Y2hhbmdlLnR5cGVzJztcbmltcG9ydCB7IFRydXN0ZWRQYXJ0eURldGFpbHMgfSBmcm9tICcuLi9wcm9maWxlL3Byb2ZpbGUudHlwZXMnO1xuaW1wb3J0IHsgQWNjZXNzTGV2ZWwgfSBmcm9tICcuLy4uL2NhdGVnb3J5L2NhdGVnb3J5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eVJvbGUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHJvbGVUeXBlOiBUcnVzdGVkUGFydHlSb2xlVHlwZTtcbiAgY2F0ZWdvcmllczoge1xuICAgIGNhdGVnb3J5OiBzdHJpbmdbXTtcbiAgICBhY2Nlc3NMZXZlbDogQWNjZXNzTGV2ZWw7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGVudW0gVHJ1c3RlZFBhcnR5Um9sZVR5cGUge1xuICBHZW5lcmFsID0gJ2dlbmVyYWwnLFxuICBTY2VuYXJpbyA9ICdzY2VuYXJpbycsXG59XG5cbmV4cG9ydCBlbnVtIFRydXN0ZWRQYXJ0eVR5cGUge1xuICBVc2VyID0gJ3VzZXInLFxuICBPcmdhbmlzYXRpb24gPSAnb3JnYW5pc2F0aW9uJyxcbn1cblxuZXhwb3J0IGVudW0gVHJ1c3RlZFBhcnR5SW52aXRlU3RhdHVzIHtcbiAgSW52aXRlZCA9ICdJTl9QUk9HUkVTUycsXG4gIENhbmNlbGxlZCA9ICdDQU5DRUxMRUQnLFxuICBEZWNsaW5lZCA9ICdERUNMSU5FRCcsXG4gIENvbXBsZXRlZCA9ICdDT01QTEVURUQnLFxufVxuXG5leHBvcnQgY2xhc3MgVHJ1c3RlZFBhcnRpZXMge1xuICBwYXJ0aWVzOiBUcnVzdGVkUGFydHlbXTtcbiAgaW52aXRlczogVHJ1c3RlZFBhcnR5SW52aXRlW107XG4gIHNlbnRJbnZpdGVzOiBUcnVzdGVkUGFydHlJbnZpdGVbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFNoYXJlZFRydXN0ZWRQYXJ0eURldGFpbHMgZXh0ZW5kcyBUcnVzdGVkUGFydHlEZXRhaWxzIHtcbiAgaWQ6IHN0cmluZztcbiAgb3duZWRLZXlJZDogc3RyaW5nO1xuICBzaGFyZWRLZXlJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVHJ1c3RlZFBhcnR5SW52aXRlIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZTogVHJ1c3RlZFBhcnR5VHlwZTtcbiAgc3RhdHVzOiBUcnVzdGVkUGFydHlJbnZpdGVTdGF0dXM7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHRva2VuRXhwaXJ5OiBzdHJpbmcgfCBEYXRlO1xuICBpc0V4cGlyZWQ6IGJvb2xlYW47XG4gIGlzU2VuZGVyOiBib29sZWFuO1xuICBhY3Rpb25SZXF1aXJlZDogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuXG4gIGRldGFpbHM/OiBUcnVzdGVkUGFydHlEZXRhaWxzO1xuICBtZXNzYWdlPzogS2V5RXhjaGFuZ2VNZXNzYWdlO1xuICBteVNoYXJlZERldGFpbHM/OiBUcnVzdGVkUGFydHlEZXRhaWxzO1xuICBteVNoYXJlZE1lc3NhZ2U/OiBLZXlFeGNoYW5nZU1lc3NhZ2U7XG5cbiAgcm9vdEtleUNpcGhlcjogc3RyaW5nO1xuICBwYmtDaXBoZXI6IHN0cmluZztcbiAgZGVjcnlwdGVkT3RrOiBEZWNyeXB0ZWRPdGs7XG59XG5cbmV4cG9ydCBjbGFzcyBUUEZlYXR1cmVzIHtcbiAgc2hhcmVkVmF1bHQ6IFNoYXJlZFZhdWx0RmVhdHVyZTtcbn1cblxuZXhwb3J0IGNsYXNzIFNoYXJlZFZhdWx0RmVhdHVyZSB7XG4gIGhhc0FjY2VzczogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFRydXN0ZWRQYXJ0eSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IFRydXN0ZWRQYXJ0eVR5cGU7XG4gIG5hbWU6IHN0cmluZztcblxuICBoYXNTY2VuYXJpb3M6IGJvb2xlYW47XG4gIGhhc1NoYXJlZFZhdWx0OiBib29sZWFuO1xuICBkZXRhaWxzOiBUcnVzdGVkUGFydHlEZXRhaWxzO1xuICBteVNoYXJlZERldGFpbHM6IFNoYXJlZFRydXN0ZWRQYXJ0eURldGFpbHM7XG4gIHVzZXJTaGFyZWRLZXk6IFVzZXJTaGFyZWRLZXk7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGZlYXR1cmVzOiBUUEZlYXR1cmVzO1xufVxuXG5leHBvcnQgY2xhc3MgRm91bmRUcnVzdGVkUGFydHkge1xuICBpZDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBpc1RydXN0ZWRQYXJ0eTogYm9vbGVhbjtcbiAgaXNNZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEludml0ZVRydXN0ZWRQYXJ0eSB7XG4gIHBhcnR5OiB7IHVzZXJuYW1lPzogc3RyaW5nOyBlbWFpbD86IHN0cmluZzsgbmFtZT86IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZyB9O1xuICBwZXJtaXNzaW9ucz86IFByZXBhcmVkUGVybWlzc2lvbnM7XG4gIG15U2hhcmVkRGV0YWlsczogVHJ1c3RlZFBhcnR5RGV0YWlscztcbn1cblxuZXhwb3J0IGNsYXNzIEFjY2VwdFRydXN0ZWRQYXJ0eUludml0ZSB7XG4gIGludml0ZUlkOiBzdHJpbmc7XG4gIGludml0ZVRva2VuOiBzdHJpbmc7XG4gIGRlY3J5cHRlZE90azogRGVjcnlwdGVkT3RrO1xuICBteVNoYXJlZERldGFpbHM6IFRydXN0ZWRQYXJ0eURldGFpbHM7XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maXJtVHJ1c3RlZFBhcnR5SW52aXRlIHtcbiAgaW52aXRlSWQ6IHN0cmluZztcbiAgaW5pdGlhdG9yUm9vdEtleUNpcGhlcjogc3RyaW5nO1xuICBpbml0aWF0b3JPbmVUaW1lUGJrQ2lwaGVyOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,12 +0,0 @@
1
- export interface SetSessionEncryptionKeyMutation {
2
- setSessionEncryptionKey: {
3
- sessionEncryptionKey: string;
4
- };
5
- }
6
- export declare const SetSessionEncryptionKeyMutation: import("../_common/ast").TypedDocumentNode<SetSessionEncryptionKeyMutation>;
7
- export interface ClearSessionEncryptionKeyMutation {
8
- clearSessionEncryptionKey: {
9
- sessionEncryptionKey: string;
10
- };
11
- }
12
- export declare const ClearSessionEncryptionKeyMutation: import("../_common/ast").TypedDocumentNode<ClearSessionEncryptionKeyMutation>;
@@ -1,52 +0,0 @@
1
- import { CognitoUser } from '@aws-amplify/auth';
2
- import { JWK } from 'node-jose';
3
- import { JSONObject, TpPasswordResetUserNode, UserDeleteNode } from '../api/types';
4
- import { DateTime } from '../api/types/graphql.types';
5
- import { PassIdpParams, PassKeyParams } from '../key/key.types';
6
- import { UserPlan } from '../plan/plan.types';
7
- import { CurrentUserKey, Features, MainContactCard } from '../profile/profile.types';
8
- export interface PassKeyBundle {
9
- passKeyParams: PassKeyParams;
10
- passKey: JWK.Key;
11
- passIdpParams: PassIdpParams;
12
- passIdp: JWK.Key;
13
- passIdpVerifier: JWK.Key;
14
- wrappedPassIdpVerifierPrk: Record<string, JSONObject>;
15
- }
16
- export declare class CognitoChallengeUser extends CognitoUser {
17
- recoveryStatus: RecoveryStatus;
18
- challengeName: 'SMS_MFA' | 'SOFTWARE_TOKEN_MFA';
19
- challengeParam: JSONObject;
20
- isTpPasswordResetUser: boolean;
21
- }
22
- export declare class CurrentUser {
23
- id: string;
24
- sub: string;
25
- username: string;
26
- currentUserKey: CurrentUserKey;
27
- email: string;
28
- emailVerified: boolean;
29
- phone: string;
30
- phoneVerified: boolean;
31
- contactCard: MainContactCard;
32
- userDelete?: UserDeleteNode;
33
- userPlans: UserPlan[];
34
- features: Features;
35
- hasTPVaultAccess: boolean;
36
- sessionEncryptionKey: string;
37
- dateJoined: DateTime;
38
- }
39
- export interface TpPasswordResetUser extends TpPasswordResetUserNode {
40
- sub: string;
41
- }
42
- export declare class LoginResult {
43
- hasChallenge: boolean;
44
- challenge?: CognitoChallengeUser;
45
- user?: CurrentUser;
46
- resetUser?: TpPasswordResetUserNode;
47
- }
48
- export declare enum RecoveryStatus {
49
- NONE = "none",
50
- NEW_PASSWORD = "new-password",
51
- OLD_PASSWORD = "old-password"
52
- }