@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.
- package/README.md +62 -0
- package/bundles/lifeready-core.umd.js +15939 -0
- package/bundles/lifeready-core.umd.js.map +1 -0
- package/bundles/lifeready-core.umd.min.js +2 -0
- package/bundles/lifeready-core.umd.min.js.map +1 -0
- package/esm2015/lib/_common/ast.js +40 -0
- package/esm2015/lib/_common/deferred-promise.js +24 -0
- package/esm2015/lib/_common/exceptions.js +157 -0
- package/esm2015/lib/_common/queries.gql.js +190 -0
- package/esm2015/lib/_common/run-outside-angular.js +79 -0
- package/esm2015/lib/_common/types.js +1 -0
- package/esm2015/lib/_common/utils.js +44 -0
- package/esm2015/lib/api/contact-card.gql.js +79 -0
- package/esm2015/lib/api/contact-card.service.js +154 -0
- package/esm2015/lib/api/contact-card2.gql.js +60 -0
- package/esm2015/lib/api/contact-card2.service.js +103 -0
- package/esm2015/lib/api/file.service.js +74 -0
- package/esm2015/lib/api/item2.gql.js +110 -0
- package/esm2015/lib/api/item2.service.js +311 -0
- package/esm2015/lib/api/key-exchange.gql.js +188 -0
- package/esm2015/lib/api/key-exchange.service.js +442 -0
- package/esm2015/lib/api/key-exchange.types.js +18 -0
- package/esm2015/lib/api/key-exchange2.gql.js +171 -0
- package/esm2015/lib/api/key-exchange2.service.js +479 -0
- package/esm2015/lib/api/lock.gql.js +40 -0
- package/esm2015/lib/api/lock.service.js +64 -0
- package/esm2015/lib/api/lr-apollo.service.js +46 -0
- package/esm2015/lib/api/lr-graphql/index.js +6 -0
- package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -0
- package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -0
- package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -0
- package/esm2015/lib/api/lr-graphql/lr.service.js +18 -0
- package/esm2015/lib/api/message.service.js +138 -0
- package/esm2015/lib/api/persist.service.js +181 -0
- package/esm2015/lib/api/query-processor/common-processors.service.js +93 -0
- package/esm2015/lib/api/query-processor/index.js +3 -0
- package/esm2015/lib/api/query-processor/query-processor.service.js +192 -0
- package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -0
- package/esm2015/lib/api/shared-contact-card.service.js +119 -0
- package/esm2015/lib/api/shared-contact-card2.gql.js +41 -0
- package/esm2015/lib/api/shared-contact-card2.service.js +117 -0
- package/esm2015/lib/api/time.service.js +146 -0
- package/esm2015/lib/api/types/graphql.types.js +7 -0
- package/esm2015/lib/api/types/index.js +3 -0
- package/esm2015/lib/api/types/lr-graphql.types.js +71 -0
- package/esm2015/lib/auth/auth.config.js +57 -0
- package/esm2015/lib/auth/auth.gql.js +48 -0
- package/esm2015/lib/auth/auth.types.js +27 -0
- package/esm2015/lib/auth/idle.service.js +168 -0
- package/esm2015/lib/auth/idle.types.js +7 -0
- package/esm2015/lib/auth/lbop.service.js +355 -0
- package/esm2015/lib/auth/life-ready-auth.service.js +333 -0
- package/esm2015/lib/auth/password.service.js +320 -0
- package/esm2015/lib/auth/register.service.js +172 -0
- package/esm2015/lib/auth/two-factor.service.js +74 -0
- package/esm2015/lib/category/category-meta.service.js +99 -0
- package/esm2015/lib/category/category.gql.js +406 -0
- package/esm2015/lib/category/category.service.js +390 -0
- package/esm2015/lib/category/category.types.js +29 -0
- package/esm2015/lib/cryptography/cryptography.types.js +11 -0
- package/esm2015/lib/cryptography/encryption.service.js +189 -0
- package/esm2015/lib/cryptography/key-factory.service.js +237 -0
- package/esm2015/lib/cryptography/key-graph.service.js +280 -0
- package/esm2015/lib/cryptography/key-meta.service.js +200 -0
- package/esm2015/lib/cryptography/key.service.js +124 -0
- package/esm2015/lib/cryptography/slip39.service.js +169 -0
- package/esm2015/lib/cryptography/web-crypto.service.js +29 -0
- package/esm2015/lib/life-ready.config.js +84 -0
- package/esm2015/lib/life-ready.module.js +74 -0
- package/esm2015/lib/plan/plan.gql.js +123 -0
- package/esm2015/lib/plan/plan.service.js +149 -0
- package/esm2015/lib/plan/plan.types.js +11 -0
- package/esm2015/lib/record/record-attachment.service.js +101 -0
- package/esm2015/lib/record/record.gql.js +179 -0
- package/esm2015/lib/record/record.service.js +206 -0
- package/esm2015/lib/record/record.types.js +15 -0
- package/esm2015/lib/record-type/record-type.service.js +75 -0
- package/esm2015/lib/record-type/record-type.types.js +28 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -0
- package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -0
- package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -0
- package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -0
- package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -0
- package/esm2015/lib/scenario/scenario-setup.service.js +269 -0
- package/esm2015/lib/scenario/scenario.gql.js +368 -0
- package/esm2015/lib/scenario/scenario.service.js +611 -0
- package/esm2015/lib/scenario/scenario.types.js +64 -0
- package/esm2015/lib/search/search.gql.js +62 -0
- package/esm2015/lib/search/search.service.js +156 -0
- package/esm2015/lib/search/search.types.js +6 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -0
- package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +266 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -0
- package/esm2015/lib/trusted-parties/tp-password-reset.service.js +300 -0
- package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -0
- package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -0
- package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -0
- package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -0
- package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -0
- package/esm2015/lib/users/profile-details.service.js +214 -0
- package/esm2015/lib/users/profile.gql.js +97 -0
- package/esm2015/lib/users/profile.service.js +169 -0
- package/esm2015/lib/users/profile.types.js +34 -0
- package/esm2015/lib/users/user.gql.js +60 -0
- package/esm2015/lib/users/user.service.js +79 -0
- package/esm2015/lib/users/user.types.js +5 -0
- package/esm2015/lifeready-core.js +10 -0
- package/esm2015/public-api.js +81 -0
- package/fesm2015/lifeready-core.js +13290 -0
- package/fesm2015/lifeready-core.js.map +1 -0
- package/lib/_common/ast.d.ts +11 -0
- package/lib/_common/deferred-promise.d.ts +12 -0
- package/lib/_common/exceptions.d.ts +109 -0
- package/lib/_common/queries.gql.d.ts +10 -0
- package/lib/_common/run-outside-angular.d.ts +14 -0
- package/lib/_common/types.d.ts +10 -0
- package/lib/_common/utils.d.ts +3 -0
- package/lib/api/contact-card.gql.d.ts +7 -0
- package/lib/api/contact-card.service.d.ts +52 -0
- package/lib/api/contact-card2.gql.d.ts +34 -0
- package/lib/api/contact-card2.service.d.ts +49 -0
- package/lib/api/file.service.d.ts +18 -0
- package/lib/api/item2.gql.d.ts +96 -0
- package/lib/api/item2.service.d.ts +177 -0
- package/lib/api/key-exchange.gql.d.ts +9 -0
- package/lib/api/key-exchange.service.d.ts +39 -0
- package/lib/api/key-exchange.types.d.ts +196 -0
- package/lib/api/key-exchange2.gql.d.ts +125 -0
- package/lib/api/key-exchange2.service.d.ts +187 -0
- package/lib/api/lock.gql.d.ts +27 -0
- package/lib/api/lock.service.d.ts +25 -0
- package/lib/api/lr-apollo.service.d.ts +15 -0
- package/lib/api/lr-graphql/index.d.ts +5 -0
- package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -0
- package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -0
- package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -0
- package/lib/api/lr-graphql/lr-mutation.d.ts +8 -0
- package/lib/api/lr-graphql/lr.service.d.ts +9 -0
- package/lib/api/message.service.d.ts +58 -0
- package/lib/api/persist.service.d.ts +31 -0
- package/lib/api/query-processor/common-processors.service.d.ts +36 -0
- package/lib/api/query-processor/index.d.ts +2 -0
- package/lib/api/query-processor/query-processor.service.d.ts +18 -0
- package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -0
- package/lib/api/shared-contact-card.service.d.ts +33 -0
- package/lib/api/shared-contact-card2.gql.d.ts +36 -0
- package/lib/api/shared-contact-card2.service.d.ts +45 -0
- package/lib/api/time.service.d.ts +16 -0
- package/lib/api/types/graphql.types.d.ts +29 -0
- package/lib/api/types/index.d.ts +2 -0
- package/lib/api/types/lr-graphql.types.d.ts +385 -0
- package/lib/auth/auth.config.d.ts +5 -0
- package/lib/auth/auth.gql.d.ts +15 -0
- package/lib/auth/auth.types.d.ts +66 -0
- package/lib/auth/idle.service.d.ts +40 -0
- package/lib/auth/idle.types.d.ts +10 -0
- package/lib/auth/lbop.service.d.ts +91 -0
- package/lib/auth/life-ready-auth.service.d.ts +46 -0
- package/lib/auth/password.service.d.ts +78 -0
- package/lib/auth/register.service.d.ts +25 -0
- package/lib/auth/two-factor.service.d.ts +15 -0
- package/lib/category/category-meta.service.d.ts +23 -0
- package/lib/category/category.gql.d.ts +45 -0
- package/lib/category/category.service.d.ts +67 -0
- package/lib/category/category.types.d.ts +79 -0
- package/lib/cryptography/cryptography.types.d.ts +83 -0
- package/lib/cryptography/encryption.service.d.ts +41 -0
- package/lib/cryptography/key-factory.service.d.ts +38 -0
- package/lib/cryptography/key-graph.service.d.ts +33 -0
- package/lib/cryptography/key-meta.service.d.ts +44 -0
- package/lib/cryptography/key.service.d.ts +36 -0
- package/lib/cryptography/slip39.service.d.ts +43 -0
- package/lib/cryptography/web-crypto.service.d.ts +5 -0
- package/lib/life-ready.config.d.ts +14 -0
- package/lib/life-ready.module.d.ts +5 -0
- package/lib/plan/plan.gql.d.ts +11 -0
- package/lib/plan/plan.service.d.ts +33 -0
- package/lib/plan/plan.types.d.ts +31 -0
- package/lib/record/record-attachment.service.d.ts +16 -0
- package/lib/record/record.gql.d.ts +14 -0
- package/lib/record/record.service.d.ts +25 -0
- package/lib/record/record.types.d.ts +57 -0
- package/lib/record-type/record-type.service.d.ts +11 -0
- package/lib/record-type/record-type.types.d.ts +50 -0
- package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -0
- package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -0
- package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -0
- package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -0
- package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -0
- package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -0
- package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -0
- package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -0
- package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -0
- package/lib/scenario/scenario-setup.service.d.ts +22 -0
- package/lib/scenario/scenario.gql.d.ts +34 -0
- package/lib/scenario/scenario.service.d.ts +58 -0
- package/lib/scenario/scenario.types.d.ts +217 -0
- package/lib/search/search.gql.d.ts +1 -0
- package/lib/search/search.service.d.ts +25 -0
- package/lib/search/search.types.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -0
- package/lib/trusted-parties/tp-password-reset-user.service.d.ts +41 -0
- package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -0
- package/lib/trusted-parties/tp-password-reset.service.d.ts +131 -0
- package/lib/trusted-parties/trusted-party.gql.d.ts +9 -0
- package/lib/trusted-parties/trusted-party.service.d.ts +44 -0
- package/lib/trusted-parties/trusted-party.types.d.ts +102 -0
- package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -0
- package/lib/trusted-parties/trusted-party2.service.d.ts +114 -0
- package/lib/users/profile-details.service.d.ts +21 -0
- package/lib/users/profile.gql.d.ts +11 -0
- package/lib/users/profile.service.d.ts +35 -0
- package/lib/users/profile.types.d.ts +96 -0
- package/lib/users/user.gql.d.ts +9 -0
- package/lib/users/user.service.d.ts +12 -0
- package/lib/users/user.types.d.ts +23 -0
- package/lifeready-core.d.ts +9 -0
- package/lifeready-core.metadata.json +1 -0
- package/package.json +29 -0
- package/public-api.d.ts +77 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { KeyGraphField } from '../_common/queries.gql';
|
|
2
|
+
import gql from 'graphql-tag';
|
|
3
|
+
export const ContactCardFields = `
|
|
4
|
+
id
|
|
5
|
+
publicData
|
|
6
|
+
publicSearchable
|
|
7
|
+
cipherData
|
|
8
|
+
key {
|
|
9
|
+
id
|
|
10
|
+
}
|
|
11
|
+
`;
|
|
12
|
+
export const ContactCardQuery = gql `
|
|
13
|
+
query ContactCardQuery(
|
|
14
|
+
$id: LrRelayIdInput!
|
|
15
|
+
) {
|
|
16
|
+
contactCard (
|
|
17
|
+
id: $id
|
|
18
|
+
) {
|
|
19
|
+
${ContactCardFields}
|
|
20
|
+
}
|
|
21
|
+
${KeyGraphField}
|
|
22
|
+
}`;
|
|
23
|
+
export const SearchContactCardQuery = gql `
|
|
24
|
+
query SearchContactCardQuery(
|
|
25
|
+
$publicSearchable: LrJSONFilter!
|
|
26
|
+
) {
|
|
27
|
+
searchContactCards(
|
|
28
|
+
publicSearchable: $publicSearchable
|
|
29
|
+
orderBy: "created"
|
|
30
|
+
) {
|
|
31
|
+
edges {
|
|
32
|
+
node {
|
|
33
|
+
${ContactCardFields}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
${KeyGraphField}
|
|
38
|
+
}`;
|
|
39
|
+
export const ContactCardListQuery = gql `
|
|
40
|
+
query ContactCardListQuery {
|
|
41
|
+
contactCards(
|
|
42
|
+
orderBy: "created"
|
|
43
|
+
) {
|
|
44
|
+
edges {
|
|
45
|
+
node {
|
|
46
|
+
${ContactCardFields}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
${KeyGraphField}
|
|
51
|
+
}`;
|
|
52
|
+
export const CreateContactCardMutation = gql `
|
|
53
|
+
mutation CreateContactCardMutation(
|
|
54
|
+
$input: CreateContactCardInput!
|
|
55
|
+
) {
|
|
56
|
+
createContactCard(input: $input) {
|
|
57
|
+
contactCard {
|
|
58
|
+
${ContactCardFields}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}`;
|
|
62
|
+
export const UpdateContactCardMutation = gql `
|
|
63
|
+
mutation UpdateContactCardMutation(
|
|
64
|
+
$input: UpdateContactCardInput!
|
|
65
|
+
) {
|
|
66
|
+
updateContactCard(input: $input) {
|
|
67
|
+
contactCard {
|
|
68
|
+
${ContactCardFields}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}`;
|
|
72
|
+
export const DeleteContactCardMutation = gql `
|
|
73
|
+
mutation DeleteContactCardMutation($input: DeleteContactCardInput!) {
|
|
74
|
+
deleteContactCard(input: $input) {
|
|
75
|
+
id
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLmdxbC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Qcm9qZWN0cy90ZXN0L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2FwaS9jb250YWN0LWNhcmQuZ3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7O0NBUWhDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7SUFPL0IsaUJBQWlCOztFQUVuQixhQUFhO0VBQ2IsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQTs7Ozs7Ozs7OztVQVUvQixpQkFBaUI7Ozs7SUFJdkIsYUFBYTtFQUNmLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7VUFPN0IsaUJBQWlCOzs7O0lBSXZCLGFBQWE7RUFDZixDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFBOzs7Ozs7UUFNcEMsaUJBQWlCOzs7RUFHdkIsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQTs7Ozs7O1FBTXBDLGlCQUFpQjs7O0VBR3ZCLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUE7Ozs7OztDQU0zQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5R3JhcGhGaWVsZCB9IGZyb20gJy4uL19jb21tb24vcXVlcmllcy5ncWwnO1xyXG5pbXBvcnQgZ3FsIGZyb20gJ2dyYXBocWwtdGFnJztcclxuXHJcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZEZpZWxkcyA9IGBcclxuaWRcclxucHVibGljRGF0YVxyXG5wdWJsaWNTZWFyY2hhYmxlXHJcbmNpcGhlckRhdGFcclxua2V5IHtcclxuICBpZFxyXG59XHJcbmA7XHJcblxyXG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRRdWVyeSA9IGdxbGBcclxucXVlcnkgQ29udGFjdENhcmRRdWVyeShcclxuJGlkOiBMclJlbGF5SWRJbnB1dCFcclxuKSB7XHJcbmNvbnRhY3RDYXJkIChcclxuICBpZDogJGlkXHJcbikge1xyXG4gICR7Q29udGFjdENhcmRGaWVsZHN9XHJcbn1cclxuJHtLZXlHcmFwaEZpZWxkfVxyXG59YDtcclxuXHJcbmV4cG9ydCBjb25zdCBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5ID0gZ3FsYFxyXG5xdWVyeSBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5KFxyXG4gICRwdWJsaWNTZWFyY2hhYmxlOiBMckpTT05GaWx0ZXIhXHJcbikge1xyXG4gIHNlYXJjaENvbnRhY3RDYXJkcyhcclxuICAgIHB1YmxpY1NlYXJjaGFibGU6ICRwdWJsaWNTZWFyY2hhYmxlXHJcbiAgICBvcmRlckJ5OiBcImNyZWF0ZWRcIlxyXG4gICkge1xyXG4gICAgZWRnZXMge1xyXG4gICAgICBub2RlIHtcclxuICAgICAgICAke0NvbnRhY3RDYXJkRmllbGRzfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICR7S2V5R3JhcGhGaWVsZH1cclxufWA7XHJcblxyXG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRMaXN0UXVlcnkgPSBncWxgXHJcbnF1ZXJ5IENvbnRhY3RDYXJkTGlzdFF1ZXJ5IHtcclxuICBjb250YWN0Q2FyZHMoXHJcbiAgICBvcmRlckJ5OiBcImNyZWF0ZWRcIlxyXG4gICkge1xyXG4gICAgZWRnZXMge1xyXG4gICAgICBub2RlIHtcclxuICAgICAgICAke0NvbnRhY3RDYXJkRmllbGRzfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gICR7S2V5R3JhcGhGaWVsZH1cclxufWA7XHJcblxyXG5leHBvcnQgY29uc3QgQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbiA9IGdxbGBcclxubXV0YXRpb24gQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbihcclxuICAkaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQhXHJcbikge1xyXG4gIGNyZWF0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcclxuICAgIGNvbnRhY3RDYXJkIHtcclxuICAgICAgJHtDb250YWN0Q2FyZEZpZWxkc31cclxuICAgIH1cclxuICB9XHJcbn1gO1xyXG5cclxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxgXHJcbm11dGF0aW9uIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24oXHJcbiAgJGlucHV0OiBVcGRhdGVDb250YWN0Q2FyZElucHV0IVxyXG4pIHtcclxuICB1cGRhdGVDb250YWN0Q2FyZChpbnB1dDogJGlucHV0KSB7XHJcbiAgICBjb250YWN0Q2FyZCB7XHJcbiAgICAgICR7Q29udGFjdENhcmRGaWVsZHN9XHJcbiAgICB9XHJcbiAgfVxyXG59YDtcclxuXHJcbmV4cG9ydCBjb25zdCBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uID0gZ3FsYFxyXG4gIG11dGF0aW9uIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24oJGlucHV0OiBEZWxldGVDb250YWN0Q2FyZElucHV0ISkge1xyXG4gICAgZGVsZXRlQ29udGFjdENhcmQoaW5wdXQ6ICRpbnB1dCkge1xyXG4gICAgICBpZFxyXG4gICAgfVxyXG4gIH1cclxuYDtcclxuIl19
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { EncryptionService } from '../cryptography/encryption.service';
|
|
4
|
+
import { KeyGraphService } from '../cryptography/key-graph.service';
|
|
5
|
+
import { KeyService } from '../cryptography/key.service';
|
|
6
|
+
import { LrApolloService } from './lr-apollo.service';
|
|
7
|
+
import { SearchContactCardQuery, ContactCardListQuery, ContactCardQuery, CreateContactCardMutation, UpdateContactCardMutation, DeleteContactCardMutation, } from './contact-card.gql';
|
|
8
|
+
import { KeyFactoryService } from '../cryptography/key-factory.service';
|
|
9
|
+
import { KeyMetaService } from '../cryptography/key-meta.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../cryptography/key-factory.service";
|
|
12
|
+
import * as i2 from "../cryptography/key.service";
|
|
13
|
+
import * as i3 from "./lr-apollo.service";
|
|
14
|
+
import * as i4 from "../cryptography/key-graph.service";
|
|
15
|
+
import * as i5 from "../cryptography/encryption.service";
|
|
16
|
+
import * as i6 from "../cryptography/key-meta.service";
|
|
17
|
+
export class ContactCard {
|
|
18
|
+
}
|
|
19
|
+
export class ContactCardService {
|
|
20
|
+
constructor(keyFactory, keyService, lrApollo, keyGraph, encryptionService, keyMetaService) {
|
|
21
|
+
this.keyFactory = keyFactory;
|
|
22
|
+
this.keyService = keyService;
|
|
23
|
+
this.lrApollo = lrApollo;
|
|
24
|
+
this.keyGraph = keyGraph;
|
|
25
|
+
this.encryptionService = encryptionService;
|
|
26
|
+
this.keyMetaService = keyMetaService;
|
|
27
|
+
}
|
|
28
|
+
decryptContactCard(cc) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const ret = Object.assign(Object.assign({}, cc), { publicDataJson: JSON.parse(cc.publicData), publicSearchableJson: JSON.parse(cc.publicSearchable) });
|
|
31
|
+
if (cc.key) {
|
|
32
|
+
const key = yield this.keyGraph.getJwkKey(cc.key.id);
|
|
33
|
+
// TODO: verify signature
|
|
34
|
+
ret.plainCipherDataJson = yield this.encryptionService.decrypt(key, cc.cipherData);
|
|
35
|
+
}
|
|
36
|
+
return ret;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
decryptContactCardEdges(hasEdges) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
return Promise.all(hasEdges.edges.map((edge) => __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const cc = edge.node;
|
|
43
|
+
return yield this.decryptContactCard(cc);
|
|
44
|
+
})));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// { "filter": [{ "contains": { "a": true } }] }
|
|
48
|
+
searchContactCard(publicSearchable) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const data = yield this.lrApollo.query({
|
|
51
|
+
query: SearchContactCardQuery,
|
|
52
|
+
variables: {
|
|
53
|
+
publicSearchable: JSON.stringify(publicSearchable),
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
return yield this.decryptContactCardEdges(data.searchContactCards);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
getContactCardList() {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const data = yield this.lrApollo.query({
|
|
62
|
+
query: ContactCardListQuery,
|
|
63
|
+
});
|
|
64
|
+
return yield this.decryptContactCardEdges(data.contactCards);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
getContactCard(id) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const data = yield this.lrApollo.query({
|
|
70
|
+
query: ContactCardQuery,
|
|
71
|
+
variables: {
|
|
72
|
+
id,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
return yield this.decryptContactCard(data.contactCard);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
prepareContactCardInput(input) {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const sigPxk = yield this.keyService.getCurrentSigPxk();
|
|
81
|
+
const publicDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicDataJson));
|
|
82
|
+
const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
|
|
83
|
+
const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
|
|
84
|
+
return {
|
|
85
|
+
sigPxkId: sigPxk.id,
|
|
86
|
+
publicDataSig,
|
|
87
|
+
publicSearchableSig,
|
|
88
|
+
plainDataSig,
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
createContactCard(input) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
// Get encryption key
|
|
95
|
+
const rootKey = yield this.keyService.getCurrentRootKey();
|
|
96
|
+
const key = yield this.keyFactory.createKey();
|
|
97
|
+
const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
|
|
98
|
+
const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
|
|
99
|
+
const params = yield this.prepareContactCardInput(input);
|
|
100
|
+
const data = yield this.lrApollo.mutate({
|
|
101
|
+
mutation: CreateContactCardMutation,
|
|
102
|
+
variables: {
|
|
103
|
+
input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
|
|
104
|
+
cipherData }),
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
return data.createContactCard.contactCard;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
updateContactCard(input) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
// Get encryption key
|
|
113
|
+
const cc = yield this.getContactCard(input.id);
|
|
114
|
+
const key = yield this.keyGraph.getJwkKey(cc.key.id);
|
|
115
|
+
const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
|
|
116
|
+
const params = yield this.prepareContactCardInput(input);
|
|
117
|
+
const data = yield this.lrApollo.mutate({
|
|
118
|
+
mutation: UpdateContactCardMutation,
|
|
119
|
+
variables: {
|
|
120
|
+
input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
return data.updateContactCard.contactCard;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
deleteContactCard(id) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
const data = yield this.lrApollo.mutate({
|
|
129
|
+
mutation: DeleteContactCardMutation,
|
|
130
|
+
variables: {
|
|
131
|
+
input: {
|
|
132
|
+
id,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
return data.deleteContactCard.id;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
ContactCardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContactCardService_Factory() { return new ContactCardService(i0.ɵɵinject(i1.KeyFactoryService), i0.ɵɵinject(i2.KeyService), i0.ɵɵinject(i3.LrApolloService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.EncryptionService), i0.ɵɵinject(i6.KeyMetaService)); }, token: ContactCardService, providedIn: "root" });
|
|
141
|
+
ContactCardService.decorators = [
|
|
142
|
+
{ type: Injectable, args: [{
|
|
143
|
+
providedIn: 'root',
|
|
144
|
+
},] }
|
|
145
|
+
];
|
|
146
|
+
ContactCardService.ctorParameters = () => [
|
|
147
|
+
{ type: KeyFactoryService },
|
|
148
|
+
{ type: KeyService },
|
|
149
|
+
{ type: LrApolloService },
|
|
150
|
+
{ type: KeyGraphService },
|
|
151
|
+
{ type: EncryptionService },
|
|
152
|
+
{ type: KeyMetaService }
|
|
153
|
+
];
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvY29udGFjdC1jYXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIseUJBQXlCLEdBQzFCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQWNsRSxNQUFNLE9BQU8sV0FBVztDQWdCdkI7QUFnQkQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLFVBQTZCLEVBQzdCLFVBQXNCLEVBQ3RCLFFBQXlCLEVBQ3pCLFFBQXlCLEVBQ3pCLGlCQUFvQyxFQUNwQyxjQUE4QjtRQUw5QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3JDLENBQUM7SUFFRSxr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RGYsaUJBQWlCO1lBZWpCLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhhc0tleUdyYXBoLCBLZXkgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvY3J5cHRvZ3JhcGh5LnR5cGVzJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkvZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5R3JhcGhTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1ncmFwaC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IEhhc0VkZ2VzIH0gZnJvbSAnLi4vX2NvbW1vbi90eXBlcyc7XHJcbmltcG9ydCB7IExyQXBvbGxvU2VydmljZSB9IGZyb20gJy4vbHItYXBvbGxvLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaENvbnRhY3RDYXJkUXVlcnksXHJcbiAgQ29udGFjdENhcmRMaXN0UXVlcnksXHJcbiAgQ29udGFjdENhcmRRdWVyeSxcclxuICBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbiAgRGVsZXRlQ29udGFjdENhcmRNdXRhdGlvbixcclxufSBmcm9tICcuL2NvbnRhY3QtY2FyZC5ncWwnO1xyXG5pbXBvcnQgeyBLZXlGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktZmFjdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFpbkNvbnRhY3RDYXJkUGxhaW5GaWVsZHMgfSBmcm9tICcuLi91c2Vycy9wcm9maWxlLnR5cGVzJztcclxuaW1wb3J0IHsgS2V5TWV0YVNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LW1ldGEuc2VydmljZSc7XHJcblxyXG5pbnRlcmZhY2UgQ29udGFjdENhcmRRdWVyeSBleHRlbmRzIEhhc0tleUdyYXBoIHtcclxuICBjb250YWN0Q2FyZDogQ29udGFjdENhcmQ7XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5IGV4dGVuZHMgSGFzS2V5R3JhcGgge1xyXG4gIHNlYXJjaENvbnRhY3RDYXJkczogSGFzRWRnZXM8Q29udGFjdENhcmQ+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQ29udGFjdENhcmRMaXN0UXVlcnkgZXh0ZW5kcyBIYXNLZXlHcmFwaCB7XHJcbiAgY29udGFjdENhcmRzOiBIYXNFZGdlczxDb250YWN0Q2FyZD47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0Q2FyZCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBrZXk6IEtleTtcclxuICBzaWdQeGs6IEtleTtcclxuICBwdWJsaWNEYXRhOiBzdHJpbmc7XHJcbiAgcHVibGljRGF0YVNpZzogc3RyaW5nO1xyXG4gIHB1YmxpY1NlYXJjaGFibGU6IHN0cmluZztcclxuICBwdWJsaWNTZWFyY2hhYmxlU2lnOiBzdHJpbmc7XHJcbiAgcGxhaW5EYXRhOiBzdHJpbmc7XHJcbiAgcGxhaW5EYXRhU2lnOiBzdHJpbmc7XHJcbiAgY2lwaGVyRGF0YTogc3RyaW5nO1xyXG4gIC8vIFBhcnNlL2RlY3J5cHRlZCB2ZXJzaW9ucyBvZiB0aGUgYWJvdmUuXHJcbiAgcHVibGljRGF0YUpzb246IGFueTtcclxuICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogYW55O1xyXG4gIHBsYWluQ2lwaGVyRGF0YUpzb246IGFueTtcclxuICBwbGFpbkRhdGFKc29uOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29udGFjdENhcmRJbnB1dCB7XHJcbiAgcHVibGljRGF0YUpzb246IGFueTtcclxuICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogYW55O1xyXG4gIHBsYWluQ2lwaGVyRGF0YUpzb246IGFueTtcclxuICBwbGFpbkRhdGFKc29uOiBNYWluQ29udGFjdENhcmRQbGFpbkZpZWxkcztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVDb250YWN0Q2FyZElucHV0IGV4dGVuZHMgQ3JlYXRlQ29udGFjdENhcmRJbnB1dCB7XHJcbiAgaWQ6IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhY3RDYXJkU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsckFwb2xsbzogTHJBcG9sbG9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlHcmFwaDogS2V5R3JhcGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleU1ldGFTZXJ2aWNlOiBLZXlNZXRhU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZGVjcnlwdENvbnRhY3RDYXJkKGNjOiBDb250YWN0Q2FyZCk6IFByb21pc2U8Q29udGFjdENhcmQ+IHtcclxuICAgIGNvbnN0IHJldCA9IHtcclxuICAgICAgLi4uY2MsXHJcbiAgICAgIHB1YmxpY0RhdGFKc29uOiBKU09OLnBhcnNlKGNjLnB1YmxpY0RhdGEpLFxyXG4gICAgICBwdWJsaWNTZWFyY2hhYmxlSnNvbjogSlNPTi5wYXJzZShjYy5wdWJsaWNTZWFyY2hhYmxlKSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGNjLmtleSkge1xyXG4gICAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEp3a0tleShjYy5rZXkuaWQpO1xyXG4gICAgICAvLyBUT0RPOiB2ZXJpZnkgc2lnbmF0dXJlXHJcbiAgICAgIHJldC5wbGFpbkNpcGhlckRhdGFKc29uID0gYXdhaXQgdGhpcy5lbmNyeXB0aW9uU2VydmljZS5kZWNyeXB0KFxyXG4gICAgICAgIGtleSxcclxuICAgICAgICBjYy5jaXBoZXJEYXRhXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJldDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGRlY3J5cHRDb250YWN0Q2FyZEVkZ2VzKFxyXG4gICAgaGFzRWRnZXM6IEhhc0VkZ2VzPENvbnRhY3RDYXJkPlxyXG4gICk6IFByb21pc2U8Q29udGFjdENhcmRbXT4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxyXG4gICAgICBoYXNFZGdlcy5lZGdlcy5tYXAoYXN5bmMgKGVkZ2U6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNjID0gZWRnZS5ub2RlIGFzIENvbnRhY3RDYXJkO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZChjYyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8geyBcImZpbHRlclwiOiBbeyBcImNvbnRhaW5zXCI6IHsgXCJhXCI6IHRydWUgfSB9XSB9XHJcbiAgYXN5bmMgc2VhcmNoQ29udGFjdENhcmQocHVibGljU2VhcmNoYWJsZTogb2JqZWN0KTogUHJvbWlzZTxDb250YWN0Q2FyZFtdPiB7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5Pih7XHJcbiAgICAgIHF1ZXJ5OiBTZWFyY2hDb250YWN0Q2FyZFF1ZXJ5LFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBwdWJsaWNTZWFyY2hhYmxlOiBKU09OLnN0cmluZ2lmeShwdWJsaWNTZWFyY2hhYmxlKSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZEVkZ2VzKGRhdGEuc2VhcmNoQ29udGFjdENhcmRzKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldENvbnRhY3RDYXJkTGlzdCgpOiBQcm9taXNlPENvbnRhY3RDYXJkW10+IHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLnF1ZXJ5PENvbnRhY3RDYXJkTGlzdFF1ZXJ5Pih7XHJcbiAgICAgIHF1ZXJ5OiBDb250YWN0Q2FyZExpc3RRdWVyeSxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZEVkZ2VzKGRhdGEuY29udGFjdENhcmRzKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldENvbnRhY3RDYXJkKGlkOiBzdHJpbmcpOiBQcm9taXNlPENvbnRhY3RDYXJkPiB7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5xdWVyeTxDb250YWN0Q2FyZFF1ZXJ5Pih7XHJcbiAgICAgIHF1ZXJ5OiBDb250YWN0Q2FyZFF1ZXJ5LFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBpZCxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRlY3J5cHRDb250YWN0Q2FyZChkYXRhLmNvbnRhY3RDYXJkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcHJlcGFyZUNvbnRhY3RDYXJkSW5wdXQoXHJcbiAgICBpbnB1dDogQ3JlYXRlQ29udGFjdENhcmRJbnB1dFxyXG4gICk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBzaWdQeGsgPSBhd2FpdCB0aGlzLmtleVNlcnZpY2UuZ2V0Q3VycmVudFNpZ1B4aygpO1xyXG4gICAgY29uc3QgcHVibGljRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucHVibGljRGF0YUpzb24pXHJcbiAgICApO1xyXG4gICAgY29uc3QgcHVibGljU2VhcmNoYWJsZVNpZyA9IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucHVibGljU2VhcmNoYWJsZUpzb24pXHJcbiAgICApO1xyXG4gICAgY29uc3QgcGxhaW5EYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihzaWdQeGsuandrLCBpbnB1dC5wbGFpbkRhdGFKc29uKVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzaWdQeGtJZDogc2lnUHhrLmlkLFxyXG4gICAgICBwdWJsaWNEYXRhU2lnLFxyXG4gICAgICBwdWJsaWNTZWFyY2hhYmxlU2lnLFxyXG4gICAgICBwbGFpbkRhdGFTaWcsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY3JlYXRlQ29udGFjdENhcmQoaW5wdXQ6IENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQpOiBQcm9taXNlPENvbnRhY3RDYXJkPiB7XHJcbiAgICAvLyBHZXQgZW5jcnlwdGlvbiBrZXlcclxuICAgIGNvbnN0IHJvb3RLZXkgPSBhd2FpdCB0aGlzLmtleVNlcnZpY2UuZ2V0Q3VycmVudFJvb3RLZXkoKTtcclxuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMua2V5RmFjdG9yeS5jcmVhdGVLZXkoKTtcclxuICAgIGNvbnN0IHdyYXBwZWRLZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcclxuICAgICAgcm9vdEtleS5qd2ssXHJcbiAgICAgIGtleS50b0pTT04odHJ1ZSlcclxuICAgICk7XHJcbiAgICBjb25zdCBjaXBoZXJEYXRhID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXHJcbiAgICAgIGtleSxcclxuICAgICAgaW5wdXQucGxhaW5DaXBoZXJEYXRhSnNvblxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCB0aGlzLnByZXBhcmVDb250YWN0Q2FyZElucHV0KGlucHV0KTtcclxuXHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sckFwb2xsby5tdXRhdGU8e1xyXG4gICAgICBjcmVhdGVDb250YWN0Q2FyZDogeyBjb250YWN0Q2FyZDogQ29udGFjdENhcmQgfTtcclxuICAgIH0+KHtcclxuICAgICAgbXV0YXRpb246IENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxyXG4gICAgICAgICAgd3JhcHBlZEtleSxcclxuICAgICAgICAgIGNpcGhlckRhdGEsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkYXRhLmNyZWF0ZUNvbnRhY3RDYXJkLmNvbnRhY3RDYXJkO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlQ29udGFjdENhcmQoaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQpOiBQcm9taXNlPENvbnRhY3RDYXJkPiB7XHJcbiAgICAvLyBHZXQgZW5jcnlwdGlvbiBrZXlcclxuICAgIGNvbnN0IGNjID0gYXdhaXQgdGhpcy5nZXRDb250YWN0Q2FyZChpbnB1dC5pZCk7XHJcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmdldEp3a0tleShjYy5rZXkuaWQpO1xyXG4gICAgY29uc3QgY2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxyXG4gICAgICBrZXksXHJcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XHJcblxyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubHJBcG9sbG8ubXV0YXRlPHtcclxuICAgICAgdXBkYXRlQ29udGFjdENhcmQ6IHsgY29udGFjdENhcmQ6IENvbnRhY3RDYXJkIH07XHJcbiAgICB9Pih7XHJcbiAgICAgIG11dGF0aW9uOiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgLi4ucGFyYW1zLFxyXG4gICAgICAgICAgaWQ6IGlucHV0LmlkLFxyXG4gICAgICAgICAgY2lwaGVyRGF0YSxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGEudXBkYXRlQ29udGFjdENhcmQuY29udGFjdENhcmQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGVDb250YWN0Q2FyZChpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxyQXBvbGxvLm11dGF0ZTxhbnk+KHtcclxuICAgICAgbXV0YXRpb246IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICBpZCxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGEuZGVsZXRlQ29udGFjdENhcmQuaWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { gqlTyped } from '../_common/ast';
|
|
2
|
+
export const ContactCardFragment = gqlTyped `
|
|
3
|
+
fragment ContactCardFragment on ContactCardNode {
|
|
4
|
+
id
|
|
5
|
+
publicData
|
|
6
|
+
publicSearchable
|
|
7
|
+
cipherData
|
|
8
|
+
key {
|
|
9
|
+
id
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
`;
|
|
13
|
+
export const CreateContactCardMutation = gqlTyped `
|
|
14
|
+
mutation CreateContactCardMutation(
|
|
15
|
+
$input: CreateContactCardInput!
|
|
16
|
+
) {
|
|
17
|
+
createContactCard(input: $input) {
|
|
18
|
+
contactCard {
|
|
19
|
+
id
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
export const UpdateContactCardMutation = gqlTyped `
|
|
25
|
+
mutation UpdateContactCardMutation($input: UpdateContactCardInput!) {
|
|
26
|
+
updateContactCard(input: $input) {
|
|
27
|
+
contactCard {
|
|
28
|
+
id
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
export const DeleteContactCardMutation = gqlTyped `
|
|
34
|
+
mutation DeleteContactCardMutation($input: DeleteContactCardInput!) {
|
|
35
|
+
deleteContactCard(input: $input) {
|
|
36
|
+
id
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
export const ContactCardsQuery = gqlTyped `
|
|
41
|
+
query ContactCardsQuery {
|
|
42
|
+
contactCards(orderBy: "created") {
|
|
43
|
+
edges {
|
|
44
|
+
node {
|
|
45
|
+
...ContactCardFragment
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
${ContactCardFragment}
|
|
51
|
+
`;
|
|
52
|
+
export const ContactCardQuery = gqlTyped `
|
|
53
|
+
query ContactCardQuery($id: LrRelayIdInput!) {
|
|
54
|
+
contactCard(id: $id) {
|
|
55
|
+
...ContactCardFragment
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
${ContactCardFragment}
|
|
59
|
+
`;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5ncWwuanMiLCJzb3VyY2VSb290IjoiQzovUHJvamVjdHMvdGVzdC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9hcGkvY29udGFjdC1jYXJkMi5ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBaUI7Ozs7Ozs7Ozs7Q0FVM0QsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBMkI7Ozs7Ozs7Ozs7Q0FVM0UsQ0FBQztBQVNGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLFFBQVEsQ0FBMkI7Ozs7Ozs7O0NBUTNFLENBQUM7QUFTRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQTJCOzs7Ozs7Q0FNM0UsQ0FBQztBQUtGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBbUI7Ozs7Ozs7Ozs7SUFVeEQsbUJBQW1CO0NBQ3RCLENBQUM7QUFLRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQWtCOzs7Ozs7SUFNdEQsbUJBQW1CO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uLCBDb250YWN0Q2FyZE5vZGUsIElEIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGdxbFR5cGVkIH0gZnJvbSAnLi4vX2NvbW1vbi9hc3QnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENvbnRhY3RDYXJkRnJhZ21lbnQgPSBncWxUeXBlZDxDb250YWN0Q2FyZE5vZGU+YFxyXG4gIGZyYWdtZW50IENvbnRhY3RDYXJkRnJhZ21lbnQgb24gQ29udGFjdENhcmROb2RlIHtcclxuICAgIGlkXHJcbiAgICBwdWJsaWNEYXRhXHJcbiAgICBwdWJsaWNTZWFyY2hhYmxlXHJcbiAgICBjaXBoZXJEYXRhXHJcbiAgICBrZXkge1xyXG4gICAgICAgIGlkXHJcbiAgICB9XHJcbiAgfVxyXG5gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uIHtcclxuICBjcmVhdGVDb250YWN0Q2FyZDoge1xyXG4gICAgY29udGFjdENhcmQ6IHtcclxuICAgICAgaWQ6IElEO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbmV4cG9ydCBjb25zdCBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uID0gZ3FsVHlwZWQ8Q3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbj5gXHJcbiAgbXV0YXRpb24gQ3JlYXRlQ29udGFjdENhcmRNdXRhdGlvbihcclxuICAgICRpbnB1dDogQ3JlYXRlQ29udGFjdENhcmRJbnB1dCFcclxuICApIHtcclxuICAgIGNyZWF0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgY29udGFjdENhcmQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbmA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24ge1xyXG4gIHVwZGF0ZUNvbnRhY3RDYXJkOiB7XHJcbiAgICBjb250YWN0Q2FyZDoge1xyXG4gICAgICBpZDogSUQ7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGNvbnN0IFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxUeXBlZDxVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uPmBcclxuICBtdXRhdGlvbiBVcGRhdGVDb250YWN0Q2FyZE11dGF0aW9uKCRpbnB1dDogVXBkYXRlQ29udGFjdENhcmRJbnB1dCEpIHtcclxuICAgIHVwZGF0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgY29udGFjdENhcmQge1xyXG4gICAgICAgIGlkXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbmA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24ge1xyXG4gIGRlbGV0ZUNvbnRhY3RDYXJkOiB7XHJcbiAgICBkZWxldGVDb250YWN0Q2FyZDoge1xyXG4gICAgICBpZDogSUQ7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuZXhwb3J0IGNvbnN0IERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24gPSBncWxUeXBlZDxEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uPmBcclxuICBtdXRhdGlvbiBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uKCRpbnB1dDogRGVsZXRlQ29udGFjdENhcmRJbnB1dCEpIHtcclxuICAgIGRlbGV0ZUNvbnRhY3RDYXJkKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgaWRcclxuICAgIH1cclxuICB9XHJcbmA7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhY3RDYXJkc1F1ZXJ5IHtcclxuICBjb250YWN0Q2FyZHM6IENvbm5lY3Rpb248Q29udGFjdENhcmROb2RlPjtcclxufVxyXG5leHBvcnQgY29uc3QgQ29udGFjdENhcmRzUXVlcnkgPSBncWxUeXBlZDxDb250YWN0Q2FyZHNRdWVyeT5gXHJcbiAgcXVlcnkgQ29udGFjdENhcmRzUXVlcnkge1xyXG4gICAgY29udGFjdENhcmRzKG9yZGVyQnk6IFwiY3JlYXRlZFwiKSB7XHJcbiAgICAgIGVkZ2VzIHtcclxuICAgICAgICBub2RlIHtcclxuICAgICAgICAgIC4uLkNvbnRhY3RDYXJkRnJhZ21lbnRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgJHtDb250YWN0Q2FyZEZyYWdtZW50fVxyXG5gO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZFF1ZXJ5IHtcclxuICBjb250YWN0Q2FyZDogQ29udGFjdENhcmROb2RlO1xyXG59XHJcbmV4cG9ydCBjb25zdCBDb250YWN0Q2FyZFF1ZXJ5ID0gZ3FsVHlwZWQ8Q29udGFjdENhcmRRdWVyeT5gXHJcbiAgcXVlcnkgQ29udGFjdENhcmRRdWVyeSgkaWQ6IExyUmVsYXlJZElucHV0ISkge1xyXG4gICAgY29udGFjdENhcmQoaWQ6ICRpZCkge1xyXG4gICAgICAuLi5Db250YWN0Q2FyZEZyYWdtZW50XHJcbiAgICB9XHJcbiAgfVxyXG4gICR7Q29udGFjdENhcmRGcmFnbWVudH1cclxuYDtcclxuIl19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Injectable, NgZone } from '@angular/core';
|
|
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 { KeyMetaService } from '../cryptography/key-meta.service';
|
|
7
|
+
import { KeyService } from '../cryptography/key.service';
|
|
8
|
+
import { RunOutsideAngular } from '../_common/run-outside-angular';
|
|
9
|
+
import { CreateContactCardMutation, DeleteContactCardMutation, UpdateContactCardMutation, } from './contact-card2.gql';
|
|
10
|
+
import { LrMutation } from './lr-graphql';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../cryptography/key-factory.service";
|
|
13
|
+
import * as i2 from "../cryptography/key.service";
|
|
14
|
+
import * as i3 from "../cryptography/encryption.service";
|
|
15
|
+
import * as i4 from "../cryptography/key-graph.service";
|
|
16
|
+
import * as i5 from "../cryptography/key-meta.service";
|
|
17
|
+
export class OwnerPlainDataJson {
|
|
18
|
+
}
|
|
19
|
+
let ContactCard2Service = class ContactCard2Service {
|
|
20
|
+
constructor(keyFactory, keyService, encryptionService, keyGraph, keyMetaService, ngZone) {
|
|
21
|
+
this.keyFactory = keyFactory;
|
|
22
|
+
this.keyService = keyService;
|
|
23
|
+
this.encryptionService = encryptionService;
|
|
24
|
+
this.keyGraph = keyGraph;
|
|
25
|
+
this.keyMetaService = keyMetaService;
|
|
26
|
+
this.ngZone = ngZone;
|
|
27
|
+
}
|
|
28
|
+
createContactCard(input) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
// Get encryption key
|
|
31
|
+
const rootKey = yield this.keyService.getCurrentRootKey();
|
|
32
|
+
const key = yield this.keyFactory.createKey();
|
|
33
|
+
const wrappedKey = yield this.keyGraph.encryptToString(rootKey.jwk, key.toJSON(true));
|
|
34
|
+
const cipherData = yield this.keyGraph.encryptToString(key, input.plainCipherDataJson);
|
|
35
|
+
const params = yield this.prepareContactCardInput(input);
|
|
36
|
+
return new LrMutation({
|
|
37
|
+
mutation: CreateContactCardMutation,
|
|
38
|
+
variables: {
|
|
39
|
+
input: Object.assign(Object.assign({}, params), { wrappingKeyId: rootKey.id, wrappedKey,
|
|
40
|
+
cipherData }),
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
updateContactCard(input) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
// Get encryption key
|
|
48
|
+
const cipherData = yield this.keyGraph.encryptToString(input.keyId, input.plainCipherDataJson);
|
|
49
|
+
const params = yield this.prepareContactCardInput(input);
|
|
50
|
+
return new LrMutation({
|
|
51
|
+
mutation: UpdateContactCardMutation,
|
|
52
|
+
variables: {
|
|
53
|
+
input: Object.assign(Object.assign({}, params), { id: input.id, cipherData }),
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
deleteContactCard(id) {
|
|
59
|
+
return new LrMutation({
|
|
60
|
+
mutation: DeleteContactCardMutation,
|
|
61
|
+
variables: {
|
|
62
|
+
input: {
|
|
63
|
+
id,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
prepareContactCardInput(input) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const sigPxk = yield this.keyService.getCurrentSigPxk();
|
|
71
|
+
const publicDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicDataJson));
|
|
72
|
+
const publicSearchableSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.publicSearchableJson));
|
|
73
|
+
const plainDataSig = JSON.stringify(yield this.encryptionService.sign(sigPxk.jwk, input.plainDataJson));
|
|
74
|
+
return {
|
|
75
|
+
sigPxkId: sigPxk.id,
|
|
76
|
+
publicDataSig,
|
|
77
|
+
publicSearchableSig,
|
|
78
|
+
plainDataSig,
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
ContactCard2Service.ɵprov = i0.ɵɵdefineInjectable({ factory: function ContactCard2Service_Factory() { return new ContactCard2Service(i0.ɵɵinject(i1.KeyFactoryService), i0.ɵɵinject(i2.KeyService), i0.ɵɵinject(i3.EncryptionService), i0.ɵɵinject(i4.KeyGraphService), i0.ɵɵinject(i5.KeyMetaService), i0.ɵɵinject(i0.NgZone)); }, token: ContactCard2Service, providedIn: "root" });
|
|
84
|
+
ContactCard2Service.decorators = [
|
|
85
|
+
{ type: Injectable, args: [{
|
|
86
|
+
providedIn: 'root',
|
|
87
|
+
},] }
|
|
88
|
+
];
|
|
89
|
+
ContactCard2Service.ctorParameters = () => [
|
|
90
|
+
{ type: KeyFactoryService },
|
|
91
|
+
{ type: KeyService },
|
|
92
|
+
{ type: EncryptionService },
|
|
93
|
+
{ type: KeyGraphService },
|
|
94
|
+
{ type: KeyMetaService },
|
|
95
|
+
{ type: NgZone }
|
|
96
|
+
];
|
|
97
|
+
ContactCard2Service = __decorate([
|
|
98
|
+
RunOutsideAngular({
|
|
99
|
+
ngZoneName: 'ngZone',
|
|
100
|
+
})
|
|
101
|
+
], ContactCard2Service);
|
|
102
|
+
export { ContactCard2Service };
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1jYXJkMi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvYXBpL2NvbnRhY3QtY2FyZDIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNMLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIseUJBQXlCLEdBQzFCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQW1CMUMsTUFBTSxPQUFPLGtCQUFrQjtDQUU5QjtJQWFZLG1CQUFtQixTQUFuQixtQkFBbUI7SUFDOUIsWUFDVSxVQUE2QixFQUM3QixVQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsUUFBeUIsRUFDekIsY0FBOEIsRUFDOUIsTUFBYztRQUxkLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBQzdCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJ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QWlCO1lBR2pCLFVBQVU7WUFKVixpQkFBaUI7WUFFakIsZUFBZTtZQUNmLGNBQWM7WUFKRixNQUFNOztBQStDZCxtQkFBbUI7SUFOL0IsaUJBQWlCLENBQUM7UUFDakIsVUFBVSxFQUFFLFFBQVE7S0FDckIsQ0FBQztHQUlXLG1CQUFtQixDQTJGL0I7U0EzRlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVuY3J5cHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2VuY3J5cHRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEtleUZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY3J5cHRvZ3JhcGh5L2tleS1mYWN0b3J5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlHcmFwaFNlcnZpY2UgfSBmcm9tICcuLi9jcnlwdG9ncmFwaHkva2V5LWdyYXBoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLZXlNZXRhU2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXktbWV0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgS2V5U2VydmljZSB9IGZyb20gJy4uL2NyeXB0b2dyYXBoeS9rZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzIH0gZnJvbSAnLi4vdXNlcnMvcHJvZmlsZS50eXBlcyc7XHJcbmltcG9ydCB7IFJ1bk91dHNpZGVBbmd1bGFyIH0gZnJvbSAnLi4vX2NvbW1vbi9ydW4tb3V0c2lkZS1hbmd1bGFyJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gIERlbGV0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbiAgVXBkYXRlQ29udGFjdENhcmRNdXRhdGlvbixcclxufSBmcm9tICcuL2NvbnRhY3QtY2FyZDIuZ3FsJztcclxuaW1wb3J0IHsgTHJNdXRhdGlvbiB9IGZyb20gJy4vbHItZ3JhcGhxbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbnRhY3RDYXJkSW5wdXQyIHtcclxuICBwdWJsaWNEYXRhSnNvbjogYW55O1xyXG4gIHB1YmxpY1NlYXJjaGFibGVKc29uOiBhbnk7XHJcbiAgcGxhaW5DaXBoZXJEYXRhSnNvbjogYW55O1xyXG4gIHBsYWluRGF0YUpzb246IE1haW5Db250YWN0Q2FyZFBsYWluRmllbGRzO1xyXG59XHJcblxyXG4vLyBUaGVzZSBjb250YWN0IG5hbWUgZmllbGRzIGFyZSBlbmZvcmNlZCBieSB0aGUgc2VydmVyIHNvIHRoYXQgaXQgY2FuIHNlbmQgb3V0IGVtYWlscyB3aXRoXHJcbi8vIGFwcHJvcHJpYXRlIGZvcm1hdC5cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0Q2FyZE5hbWUyIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xyXG4gIGxhc3ROYW1lPzogc3RyaW5nO1xyXG4gIC8vIGFkZGl0aW9uYWwgZmllbGRzIGFyZSBub3QgYWxsb3dlZCBieSB0aGUgc2VydmVyXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBPd25lclBsYWluRGF0YUpzb24ge1xyXG4gIG5hbWU6IENvbnRhY3RDYXJkTmFtZTI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ29udGFjdENhcmRJbnB1dDIgZXh0ZW5kcyBDcmVhdGVDb250YWN0Q2FyZElucHV0MiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBrZXlJZDogc3RyaW5nO1xyXG59XHJcblxyXG5AUnVuT3V0c2lkZUFuZ3VsYXIoe1xyXG4gIG5nWm9uZU5hbWU6ICduZ1pvbmUnLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdENhcmQyU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGtleUZhY3Rvcnk6IEtleUZhY3RvcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXlTZXJ2aWNlOiBLZXlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTogRW5jcnlwdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleUdyYXBoOiBLZXlHcmFwaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGtleU1ldGFTZXJ2aWNlOiBLZXlNZXRhU2VydmljZSxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcclxuICApIHt9XHJcblxyXG4gIGFzeW5jIGNyZWF0ZUNvbnRhY3RDYXJkKGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0Mikge1xyXG4gICAgLy8gR2V0IGVuY3J5cHRpb24ga2V5XHJcbiAgICBjb25zdCByb290S2V5ID0gYXdhaXQgdGhpcy5rZXlTZXJ2aWNlLmdldEN1cnJlbnRSb290S2V5KCk7XHJcbiAgICBjb25zdCBrZXkgPSBhd2FpdCB0aGlzLmtleUZhY3RvcnkuY3JlYXRlS2V5KCk7XHJcbiAgICBjb25zdCB3cmFwcGVkS2V5ID0gYXdhaXQgdGhpcy5rZXlHcmFwaC5lbmNyeXB0VG9TdHJpbmcoXHJcbiAgICAgIHJvb3RLZXkuandrLFxyXG4gICAgICBrZXkudG9KU09OKHRydWUpXHJcbiAgICApO1xyXG4gICAgY29uc3QgY2lwaGVyRGF0YSA9IGF3YWl0IHRoaXMua2V5R3JhcGguZW5jcnlwdFRvU3RyaW5nKFxyXG4gICAgICBrZXksXHJcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcclxuICAgICAgbXV0YXRpb246IENyZWF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgICB3cmFwcGluZ0tleUlkOiByb290S2V5LmlkLFxyXG4gICAgICAgICAgd3JhcHBlZEtleSxcclxuICAgICAgICAgIGNpcGhlckRhdGEsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdXBkYXRlQ29udGFjdENhcmQoaW5wdXQ6IFVwZGF0ZUNvbnRhY3RDYXJkSW5wdXQyKSB7XHJcbiAgICAvLyBHZXQgZW5jcnlwdGlvbiBrZXlcclxuICAgIGNvbnN0IGNpcGhlckRhdGEgPSBhd2FpdCB0aGlzLmtleUdyYXBoLmVuY3J5cHRUb1N0cmluZyhcclxuICAgICAgaW5wdXQua2V5SWQsXHJcbiAgICAgIGlucHV0LnBsYWluQ2lwaGVyRGF0YUpzb25cclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1zID0gYXdhaXQgdGhpcy5wcmVwYXJlQ29udGFjdENhcmRJbnB1dChpbnB1dCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBMck11dGF0aW9uKHtcclxuICAgICAgbXV0YXRpb246IFVwZGF0ZUNvbnRhY3RDYXJkTXV0YXRpb24sXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICAuLi5wYXJhbXMsXHJcbiAgICAgICAgICBpZDogaW5wdXQuaWQsXHJcbiAgICAgICAgICBjaXBoZXJEYXRhLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUNvbnRhY3RDYXJkKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgTHJNdXRhdGlvbih7XHJcbiAgICAgIG11dGF0aW9uOiBEZWxldGVDb250YWN0Q2FyZE11dGF0aW9uLFxyXG4gICAgICB2YXJpYWJsZXM6IHtcclxuICAgICAgICBpbnB1dDoge1xyXG4gICAgICAgICAgaWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBwcmVwYXJlQ29udGFjdENhcmRJbnB1dChcclxuICAgIGlucHV0OiBDcmVhdGVDb250YWN0Q2FyZElucHV0MlxyXG4gICk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBzaWdQeGsgPSBhd2FpdCB0aGlzLmtleVNlcnZpY2UuZ2V0Q3VycmVudFNpZ1B4aygpO1xyXG4gICAgY29uc3QgcHVibGljRGF0YVNpZyA9IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucHVibGljRGF0YUpzb24pXHJcbiAgICApO1xyXG4gICAgY29uc3QgcHVibGljU2VhcmNoYWJsZVNpZyA9IEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICBhd2FpdCB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLnNpZ24oc2lnUHhrLmp3aywgaW5wdXQucHVibGljU2VhcmNoYWJsZUpzb24pXHJcbiAgICApO1xyXG4gICAgY29uc3QgcGxhaW5EYXRhU2lnID0gSlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgIGF3YWl0IHRoaXMuZW5jcnlwdGlvblNlcnZpY2Uuc2lnbihzaWdQeGsuandrLCBpbnB1dC5wbGFpbkRhdGFKc29uKVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzaWdQeGtJZDogc2lnUHhrLmlkLFxyXG4gICAgICBwdWJsaWNEYXRhU2lnLFxyXG4gICAgICBwdWJsaWNTZWFyY2hhYmxlU2lnLFxyXG4gICAgICBwbGFpbkRhdGFTaWcsXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { Injectable, Inject } from '@angular/core';
|
|
4
|
+
import { LR_CONFIG } from '../life-ready.config';
|
|
5
|
+
import { LifeReadyAuthService } from '../auth/life-ready-auth.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../life-ready.config";
|
|
8
|
+
import * as i2 from "@angular/common/http";
|
|
9
|
+
import * as i3 from "../auth/life-ready-auth.service";
|
|
10
|
+
export class FileService {
|
|
11
|
+
constructor(config, http, lrAuth) {
|
|
12
|
+
this.config = config;
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.lrAuth = lrAuth;
|
|
15
|
+
}
|
|
16
|
+
downloadEncryptedFile(fileStateNodeId) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
return JSON.parse(yield this.downloadEncryptedFile2(fileStateNodeId));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
downloadEncryptedFile2(fileStateNodeId) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const url = `${this.config.apiUrl}files/download/?file_state_node_id=${fileStateNodeId}`;
|
|
24
|
+
const content = yield this.http
|
|
25
|
+
.get(url, {
|
|
26
|
+
responseType: 'text',
|
|
27
|
+
headers: {
|
|
28
|
+
Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
.toPromise();
|
|
32
|
+
return content;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
loadFile(file) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
const reader = new FileReader();
|
|
39
|
+
reader.onload = () => {
|
|
40
|
+
// OK to type cast here since we are using readAsArrayBuffer.
|
|
41
|
+
resolve(reader.result);
|
|
42
|
+
};
|
|
43
|
+
reader.readAsArrayBuffer(file);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
uploadEncryptedFile(options) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const { encryptedContent, fileName } = options;
|
|
50
|
+
const formData = new FormData();
|
|
51
|
+
formData.append('content', new Blob([encryptedContent]), fileName);
|
|
52
|
+
const { content_resource } = yield this.http
|
|
53
|
+
.post(`${this.config.apiUrl}files/upload/`, formData, {
|
|
54
|
+
headers: {
|
|
55
|
+
Authorization: `Bearer ${(yield this.lrAuth.getUser()).getAccessJwtToken()}`,
|
|
56
|
+
},
|
|
57
|
+
})
|
|
58
|
+
.toPromise();
|
|
59
|
+
return content_resource;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1.LR_CONFIG), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.LifeReadyAuthService)); }, token: FileService, providedIn: "root" });
|
|
64
|
+
FileService.decorators = [
|
|
65
|
+
{ type: Injectable, args: [{
|
|
66
|
+
providedIn: 'root',
|
|
67
|
+
},] }
|
|
68
|
+
];
|
|
69
|
+
FileService.ctorParameters = () => [
|
|
70
|
+
{ type: undefined, decorators: [{ type: Inject, args: [LR_CONFIG,] }] },
|
|
71
|
+
{ type: HttpClient },
|
|
72
|
+
{ type: LifeReadyAuthService }
|
|
73
|
+
];
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL3Rlc3QvcHJvamVjdHMvY29yZS9zcmMvIiwic291cmNlcyI6WyJsaWIvYXBpL2ZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBY3ZFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQzZCLE1BQXVCLEVBQzFDLElBQWdCLEVBQ2hCLE1BQTRCO1FBRlQsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDMUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFzQjtJQUNuQyxDQUFDO0lBRUUscUJBQXFCLENBQUMsZUFBdUI7O1lBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7S0FBQTtJQUVLLHNCQUFzQixDQUFDLGVBQXVCOztZQUNsRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsZUFBZSxFQUFFLENBQUM7WUFFekYsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSTtpQkFDNUIsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsT0FBTyxFQUFFO29CQUNQLGFBQWEsRUFBRSxVQUFVLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO2lCQUN4QjthQUNGLENBQUM7aUJBQ0QsU0FBUyxFQUFFLENBQUM7WUFFZixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFSyxRQUFRLENBQUMsSUFBVTs7WUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7b0JBQ25CLDZEQUE2RDtvQkFDN0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQztnQkFDRixNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFSyxtQkFBbUIsQ0FDdkIsT0FBbUM7O1lBRW5DLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUVuRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJO2lCQUN6QyxJQUFJLENBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxFQUNwQyxRQUFRLEVBQ1I7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQLGFBQWEsRUFBRSxVQUFVLENBQ3ZCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FDNUIsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO2lCQUN4QjthQUNGLENBQ0Y7aUJBQ0EsU0FBUyxFQUFFLENBQUM7WUFFZixPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7S0FBQTs7OztZQWpFRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs0Q0FHSSxNQUFNLFNBQUMsU0FBUztZQW5CWixVQUFVO1lBR1Ysb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExSX0NPTkZJRywgTGlmZVJlYWR5Q29uZmlnIH0gZnJvbSAnLi4vbGlmZS1yZWFkeS5jb25maWcnO1xyXG5pbXBvcnQgeyBMaWZlUmVhZHlBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvbGlmZS1yZWFkeS1hdXRoLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsZUNvbnRlbnRDb250ZXh0ID0gJ0ZJTEVfU1RBVEUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRFbmNyeXB0ZWRGaWxlT3B0aW9ucyB7XHJcbiAgZW5jcnlwdGVkQ29udGVudDogc3RyaW5nO1xyXG4gIC8vIFRPRE8gQWRkIGluIHRoZSBjb250ZXh0IGZpZWxkIGFuZCBtYWtlIGl0IG1hbmRhdG9yeVxyXG4gIC8vIGNvbnRleHQ6IEZpbGVDb250ZW50Q29udGV4dDtcclxuICBmaWxlTmFtZT86IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTFJfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogTGlmZVJlYWR5Q29uZmlnLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsckF1dGg6IExpZmVSZWFkeUF1dGhTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBhc3luYyBkb3dubG9hZEVuY3J5cHRlZEZpbGUoZmlsZVN0YXRlTm9kZUlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoYXdhaXQgdGhpcy5kb3dubG9hZEVuY3J5cHRlZEZpbGUyKGZpbGVTdGF0ZU5vZGVJZCkpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZG93bmxvYWRFbmNyeXB0ZWRGaWxlMihmaWxlU3RhdGVOb2RlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9ZmlsZXMvZG93bmxvYWQvP2ZpbGVfc3RhdGVfbm9kZV9pZD0ke2ZpbGVTdGF0ZU5vZGVJZH1gO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCB0aGlzLmh0dHBcclxuICAgICAgLmdldCh1cmwsIHtcclxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7KFxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxyQXV0aC5nZXRVc2VyKClcclxuICAgICAgICAgICkuZ2V0QWNjZXNzSnd0VG9rZW4oKX1gLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICByZXR1cm4gY29udGVudDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8QXJyYXlCdWZmZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcclxuICAgICAgICAvLyBPSyB0byB0eXBlIGNhc3QgaGVyZSBzaW5jZSB3ZSBhcmUgdXNpbmcgcmVhZEFzQXJyYXlCdWZmZXIuXHJcbiAgICAgICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIEFycmF5QnVmZmVyKTtcclxuICAgICAgfTtcclxuICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGxvYWRFbmNyeXB0ZWRGaWxlKFxyXG4gICAgb3B0aW9uczogVXBsb2FkRW5jcnlwdGVkRmlsZU9wdGlvbnNcclxuICApOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgeyBlbmNyeXB0ZWRDb250ZW50LCBmaWxlTmFtZSB9ID0gb3B0aW9ucztcclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdjb250ZW50JywgbmV3IEJsb2IoW2VuY3J5cHRlZENvbnRlbnRdKSwgZmlsZU5hbWUpO1xyXG5cclxuICAgIGNvbnN0IHsgY29udGVudF9yZXNvdXJjZSB9ID0gYXdhaXQgdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PHsgY29udGVudF9yZXNvdXJjZSB9PihcclxuICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9ZmlsZXMvdXBsb2FkL2AsXHJcbiAgICAgICAgZm9ybURhdGEsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7KFxyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMubHJBdXRoLmdldFVzZXIoKVxyXG4gICAgICAgICAgICApLmdldEFjY2Vzc0p3dFRva2VuKCl9YCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgICByZXR1cm4gY29udGVudF9yZXNvdXJjZTtcclxuICB9XHJcbn1cclxuIl19
|