@learncard/learn-cloud-plugin 1.0.6 → 1.1.0
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/dist/helpers.d.ts +3 -3
- package/dist/learn-cloud-plugin.cjs.development.js +177 -12
- package/dist/learn-cloud-plugin.cjs.development.js.map +3 -3
- package/dist/learn-cloud-plugin.cjs.production.min.js +12 -12
- package/dist/learn-cloud-plugin.cjs.production.min.js.map +3 -3
- package/dist/learn-cloud-plugin.esm.js +177 -12
- package/dist/learn-cloud-plugin.esm.js.map +3 -3
- package/dist/plugin.d.ts +1 -1
- package/dist/types.d.ts +15 -4
- package/package.json +7 -6
package/dist/helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { JWE, EncryptedRecord } from '@learncard/types';
|
|
2
2
|
import { LearnCloudDependentLearnCard } from './types';
|
|
3
3
|
export declare const hash: (learnCard: LearnCloudDependentLearnCard, message: string) => Promise<string>;
|
|
4
4
|
export declare const generateJWE: (learnCard: LearnCloudDependentLearnCard, learnCloudDid: string, item: any) => Promise<JWE>;
|
|
5
5
|
export declare const decryptJWE: <T>(learnCard: LearnCloudDependentLearnCard, jwe: JWE) => Promise<T>;
|
|
6
|
-
export declare const generateEncryptedFieldsArray: (learnCard: LearnCloudDependentLearnCard, record:
|
|
7
|
-
export declare const generateEncryptedRecord: (learnCard: LearnCloudDependentLearnCard, record:
|
|
6
|
+
export declare const generateEncryptedFieldsArray: (learnCard: LearnCloudDependentLearnCard, record: Record<string, any>, unencryptedFields?: string[]) => Promise<string[]>;
|
|
7
|
+
export declare const generateEncryptedRecord: (learnCard: LearnCloudDependentLearnCard, record: Record<string, any>, unencryptedFields?: string[]) => Promise<EncryptedRecord>;
|
|
@@ -6972,6 +6972,7 @@ var require_types_cjs_development = __commonJS2({
|
|
|
6972
6972
|
CredentialSubjectValidator: () => CredentialSubjectValidator2,
|
|
6973
6973
|
CriteriaValidator: () => CriteriaValidator2,
|
|
6974
6974
|
EncryptedCredentialRecordValidator: () => EncryptedCredentialRecordValidator2,
|
|
6975
|
+
EncryptedRecordValidator: () => EncryptedRecordValidator2,
|
|
6975
6976
|
EndorsementCredentialValidator: () => EndorsementCredentialValidator2,
|
|
6976
6977
|
EndorsementSubjectValidator: () => EndorsementSubjectValidator2,
|
|
6977
6978
|
EvidenceValidator: () => EvidenceValidator2,
|
|
@@ -6997,6 +6998,7 @@ var require_types_cjs_development = __commonJS2({
|
|
|
6997
6998
|
LCNSigningAuthorityForUserValidator: () => LCNSigningAuthorityForUserValidator2,
|
|
6998
6999
|
LCNSigningAuthorityValidator: () => LCNSigningAuthorityValidator2,
|
|
6999
7000
|
PaginatedEncryptedCredentialRecordsValidator: () => PaginatedEncryptedCredentialRecordsValidator2,
|
|
7001
|
+
PaginatedEncryptedRecordsValidator: () => PaginatedEncryptedRecordsValidator2,
|
|
7000
7002
|
PaginationOptionsValidator: () => PaginationOptionsValidator2,
|
|
7001
7003
|
PaginationResponseValidator: () => PaginationResponseValidator2,
|
|
7002
7004
|
ProfileValidator: () => ProfileValidator2,
|
|
@@ -10762,11 +10764,13 @@ var require_types_cjs_development = __commonJS2({
|
|
|
10762
10764
|
aad: mod2.string().optional(),
|
|
10763
10765
|
recipients: JWERecipientValidator2.array().optional()
|
|
10764
10766
|
});
|
|
10765
|
-
var
|
|
10766
|
-
|
|
10767
|
-
|
|
10767
|
+
var EncryptedRecordValidator2 = mod2.object({ encryptedRecord: JWEValidator2, fields: mod2.string().array() }).catchall(mod2.any());
|
|
10768
|
+
var PaginatedEncryptedRecordsValidator2 = PaginationResponseValidator2.extend({
|
|
10769
|
+
records: EncryptedRecordValidator2.array()
|
|
10770
|
+
});
|
|
10771
|
+
var EncryptedCredentialRecordValidator2 = EncryptedRecordValidator2.extend({
|
|
10768
10772
|
id: mod2.string()
|
|
10769
|
-
})
|
|
10773
|
+
});
|
|
10770
10774
|
var PaginatedEncryptedCredentialRecordsValidator2 = PaginationResponseValidator2.extend({
|
|
10771
10775
|
records: EncryptedCredentialRecordValidator2.array()
|
|
10772
10776
|
});
|
|
@@ -14584,11 +14588,13 @@ var JWEValidator = mod.object({
|
|
|
14584
14588
|
aad: mod.string().optional(),
|
|
14585
14589
|
recipients: JWERecipientValidator.array().optional()
|
|
14586
14590
|
});
|
|
14587
|
-
var
|
|
14588
|
-
|
|
14589
|
-
|
|
14591
|
+
var EncryptedRecordValidator = mod.object({ encryptedRecord: JWEValidator, fields: mod.string().array() }).catchall(mod.any());
|
|
14592
|
+
var PaginatedEncryptedRecordsValidator = PaginationResponseValidator.extend({
|
|
14593
|
+
records: EncryptedRecordValidator.array()
|
|
14594
|
+
});
|
|
14595
|
+
var EncryptedCredentialRecordValidator = EncryptedRecordValidator.extend({
|
|
14590
14596
|
id: mod.string()
|
|
14591
|
-
})
|
|
14597
|
+
});
|
|
14592
14598
|
var PaginatedEncryptedCredentialRecordsValidator = PaginationResponseValidator.extend({
|
|
14593
14599
|
records: EncryptedCredentialRecordValidator.array()
|
|
14594
14600
|
});
|
|
@@ -14791,7 +14797,7 @@ var getLearnCloudClient = /* @__PURE__ */ __name(async (url, learnCard) => {
|
|
|
14791
14797
|
return jwt;
|
|
14792
14798
|
});
|
|
14793
14799
|
}, "getLearnCloudClient");
|
|
14794
|
-
var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url, unencryptedFields = []) => {
|
|
14800
|
+
var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url, unencryptedFields = [], unencryptedCustomFields = []) => {
|
|
14795
14801
|
let learnCard = initialLearnCard;
|
|
14796
14802
|
learnCard.debug?.("Adding LearnCloud Plugin");
|
|
14797
14803
|
let client = await getLearnCloudClient(url, learnCard);
|
|
@@ -14817,7 +14823,166 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url, u
|
|
|
14817
14823
|
name: "LearnCloud",
|
|
14818
14824
|
displayName: "LearnCloud",
|
|
14819
14825
|
description: "LearnCloud Integration",
|
|
14820
|
-
methods: {
|
|
14826
|
+
methods: {
|
|
14827
|
+
learnCloudCreate: async (_learnCard, document) => {
|
|
14828
|
+
await updateLearnCard(_learnCard);
|
|
14829
|
+
const item = await generateEncryptedRecord(
|
|
14830
|
+
_learnCard,
|
|
14831
|
+
document,
|
|
14832
|
+
unencryptedCustomFields
|
|
14833
|
+
);
|
|
14834
|
+
return client.customStorage.create.mutate({
|
|
14835
|
+
item: await generateJWE(_learnCard, learnCloudDid, item)
|
|
14836
|
+
});
|
|
14837
|
+
},
|
|
14838
|
+
learnCloudCreateMany: async (_learnCard, documents) => {
|
|
14839
|
+
await updateLearnCard(_learnCard);
|
|
14840
|
+
const items = await Promise.all(
|
|
14841
|
+
documents.map(
|
|
14842
|
+
async (document) => generateEncryptedRecord(_learnCard, document, unencryptedCustomFields)
|
|
14843
|
+
)
|
|
14844
|
+
);
|
|
14845
|
+
return client.customStorage.createMany.mutate({
|
|
14846
|
+
items: await generateJWE(_learnCard, learnCloudDid, items)
|
|
14847
|
+
});
|
|
14848
|
+
},
|
|
14849
|
+
learnCloudRead: async (_learnCard, query, includeAssociatedDids) => {
|
|
14850
|
+
await updateLearnCard(_learnCard);
|
|
14851
|
+
const documents = [];
|
|
14852
|
+
let result = await _learnCard.invoke.learnCloudReadPage(
|
|
14853
|
+
query,
|
|
14854
|
+
{},
|
|
14855
|
+
includeAssociatedDids
|
|
14856
|
+
);
|
|
14857
|
+
documents.push(...result.records);
|
|
14858
|
+
while (result.hasMore) {
|
|
14859
|
+
result = await _learnCard.invoke.learnCloudReadPage(
|
|
14860
|
+
query,
|
|
14861
|
+
{},
|
|
14862
|
+
includeAssociatedDids
|
|
14863
|
+
);
|
|
14864
|
+
documents.push(...result.records);
|
|
14865
|
+
}
|
|
14866
|
+
return documents;
|
|
14867
|
+
},
|
|
14868
|
+
learnCloudReadPage: async (_learnCard, query, paginationOptions, includeAssociatedDids) => {
|
|
14869
|
+
await updateLearnCard(_learnCard);
|
|
14870
|
+
if (!query) {
|
|
14871
|
+
const jwe2 = await client.customStorage.read.query({
|
|
14872
|
+
includeAssociatedDids,
|
|
14873
|
+
...paginationOptions
|
|
14874
|
+
});
|
|
14875
|
+
const encryptedRecords2 = isEncrypted(jwe2) ? await decryptJWE(_learnCard, jwe2) : jwe2;
|
|
14876
|
+
return {
|
|
14877
|
+
...encryptedRecords2,
|
|
14878
|
+
records: await Promise.all(
|
|
14879
|
+
encryptedRecords2.records.map(async (record) => ({
|
|
14880
|
+
...await decryptJWE(
|
|
14881
|
+
_learnCard,
|
|
14882
|
+
record.encryptedRecord
|
|
14883
|
+
),
|
|
14884
|
+
_id: record._id
|
|
14885
|
+
}))
|
|
14886
|
+
)
|
|
14887
|
+
};
|
|
14888
|
+
}
|
|
14889
|
+
const fields = await generateEncryptedFieldsArray(_learnCard, query, [
|
|
14890
|
+
...unencryptedCustomFields,
|
|
14891
|
+
"_id"
|
|
14892
|
+
]);
|
|
14893
|
+
const unencryptedEntries = Object.fromEntries(
|
|
14894
|
+
Object.entries(query).filter(
|
|
14895
|
+
([key]) => [...unencryptedCustomFields, "_id"].includes(key)
|
|
14896
|
+
)
|
|
14897
|
+
);
|
|
14898
|
+
const jwe = await client.customStorage.read.query({
|
|
14899
|
+
query: await generateJWE(_learnCard, learnCloudDid, {
|
|
14900
|
+
...unencryptedEntries,
|
|
14901
|
+
...fields.length > 0 ? { fields: { $in: fields } } : {}
|
|
14902
|
+
}),
|
|
14903
|
+
...paginationOptions,
|
|
14904
|
+
includeAssociatedDids
|
|
14905
|
+
});
|
|
14906
|
+
const encryptedRecords = isEncrypted(jwe) ? await decryptJWE(_learnCard, jwe) : jwe;
|
|
14907
|
+
return {
|
|
14908
|
+
...encryptedRecords,
|
|
14909
|
+
records: await Promise.all(
|
|
14910
|
+
encryptedRecords.records.map(async (record) => ({
|
|
14911
|
+
...await decryptJWE(
|
|
14912
|
+
_learnCard,
|
|
14913
|
+
record.encryptedRecord
|
|
14914
|
+
),
|
|
14915
|
+
_id: record._id
|
|
14916
|
+
}))
|
|
14917
|
+
)
|
|
14918
|
+
};
|
|
14919
|
+
},
|
|
14920
|
+
learnCloudCount: async (_learnCard, query, includeAssociatedDids) => {
|
|
14921
|
+
await updateLearnCard(_learnCard);
|
|
14922
|
+
if (!query)
|
|
14923
|
+
return client.customStorage.count.query({ includeAssociatedDids });
|
|
14924
|
+
const fields = await generateEncryptedFieldsArray(_learnCard, query, [
|
|
14925
|
+
...unencryptedCustomFields,
|
|
14926
|
+
"_id"
|
|
14927
|
+
]);
|
|
14928
|
+
const unencryptedEntries = Object.fromEntries(
|
|
14929
|
+
Object.entries(query).filter(
|
|
14930
|
+
([key]) => [...unencryptedCustomFields, "_id"].includes(key)
|
|
14931
|
+
)
|
|
14932
|
+
);
|
|
14933
|
+
return client.customStorage.count.query({
|
|
14934
|
+
query: await generateJWE(_learnCard, learnCloudDid, {
|
|
14935
|
+
...unencryptedEntries,
|
|
14936
|
+
...fields.length > 0 ? { fields: { $in: fields } } : {}
|
|
14937
|
+
}),
|
|
14938
|
+
includeAssociatedDids
|
|
14939
|
+
});
|
|
14940
|
+
},
|
|
14941
|
+
learnCloudUpdate: async (_learnCard, query, update) => {
|
|
14942
|
+
await updateLearnCard(_learnCard);
|
|
14943
|
+
const documents = await _learnCard.invoke.learnCloudRead(query);
|
|
14944
|
+
const updates = await Promise.all(
|
|
14945
|
+
documents.map(
|
|
14946
|
+
async (document) => client.customStorage.update.mutate({
|
|
14947
|
+
query: await generateJWE(_learnCard, learnCloudDid, {
|
|
14948
|
+
_id: document._id
|
|
14949
|
+
}),
|
|
14950
|
+
update: await generateJWE(
|
|
14951
|
+
_learnCard,
|
|
14952
|
+
learnCloudDid,
|
|
14953
|
+
await generateEncryptedRecord(
|
|
14954
|
+
_learnCard,
|
|
14955
|
+
{ ...document, ...update },
|
|
14956
|
+
unencryptedCustomFields
|
|
14957
|
+
)
|
|
14958
|
+
)
|
|
14959
|
+
})
|
|
14960
|
+
)
|
|
14961
|
+
);
|
|
14962
|
+
return updates.reduce((sum, current) => current + sum, 0);
|
|
14963
|
+
},
|
|
14964
|
+
learnCloudDelete: async (_learnCard, query, includeAssociatedDids) => {
|
|
14965
|
+
await updateLearnCard(_learnCard);
|
|
14966
|
+
if (!query)
|
|
14967
|
+
return client.customStorage.delete.mutate({ includeAssociatedDids });
|
|
14968
|
+
const fields = await generateEncryptedFieldsArray(_learnCard, query, [
|
|
14969
|
+
...unencryptedCustomFields,
|
|
14970
|
+
"_id"
|
|
14971
|
+
]);
|
|
14972
|
+
const unencryptedEntries = Object.fromEntries(
|
|
14973
|
+
Object.entries(query).filter(
|
|
14974
|
+
([key]) => [...unencryptedCustomFields, "_id"].includes(key)
|
|
14975
|
+
)
|
|
14976
|
+
);
|
|
14977
|
+
return client.customStorage.delete.mutate({
|
|
14978
|
+
query: await generateJWE(_learnCard, learnCloudDid, {
|
|
14979
|
+
...unencryptedEntries,
|
|
14980
|
+
...fields.length > 0 ? { fields: { $in: fields } } : {}
|
|
14981
|
+
}),
|
|
14982
|
+
includeAssociatedDids
|
|
14983
|
+
});
|
|
14984
|
+
}
|
|
14985
|
+
},
|
|
14821
14986
|
read: {
|
|
14822
14987
|
get: async (_learnCard, uri) => {
|
|
14823
14988
|
if (!uri)
|
|
@@ -14901,7 +15066,7 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url, u
|
|
|
14901
15066
|
const jwe = await client.index.get.query({
|
|
14902
15067
|
query: await generateJWE(_learnCard, learnCloudDid, {
|
|
14903
15068
|
...unencryptedEntries,
|
|
14904
|
-
fields: { $in: fields }
|
|
15069
|
+
...fields.length > 0 ? { fields: { $in: fields } } : {}
|
|
14905
15070
|
}),
|
|
14906
15071
|
...paginationOptions
|
|
14907
15072
|
});
|
|
@@ -14947,7 +15112,7 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url, u
|
|
|
14947
15112
|
const jwe = await client.index.count.query({
|
|
14948
15113
|
query: await generateJWE(_learnCard, learnCloudDid, {
|
|
14949
15114
|
...unencryptedEntries,
|
|
14950
|
-
fields: { $in: fields }
|
|
15115
|
+
...fields.length > 0 ? { fields: { $in: fields } } : {}
|
|
14951
15116
|
})
|
|
14952
15117
|
});
|
|
14953
15118
|
_learnCard.debug?.("LearnCloud index.count (query response)", jwe);
|