@learncard/core 8.1.1 → 8.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/core.cjs.development.js +103 -9
- package/dist/core.cjs.development.js.map +4 -4
- package/dist/core.cjs.production.min.js +64 -64
- package/dist/core.cjs.production.min.js.map +4 -4
- package/dist/core.d.ts +4 -1
- package/dist/core.esm.js +103 -9
- package/dist/core.esm.js.map +4 -4
- package/package.json +5 -5
package/dist/core.d.ts
CHANGED
@@ -4751,7 +4751,8 @@ export declare type LearnCardStorePlane<Plugins extends Plugin[]> = Record<Filte
|
|
4751
4751
|
};
|
4752
4752
|
export declare type IndexPlane = {
|
4753
4753
|
get: <Metadata extends Record<string, any> = Record<never, never>>(query?: Record<string, any>, options?: PlaneOptions) => Promise<CredentialRecord<Metadata>[]>;
|
4754
|
-
add: <Metadata extends Record<string, any> = Record<never, never>>(
|
4754
|
+
add: <Metadata extends Record<string, any> = Record<never, never>>(record: CredentialRecord<Metadata>, options?: PlaneOptions) => Promise<boolean>;
|
4755
|
+
addMany?: <Metadata extends Record<string, any> = Record<never, never>>(records: CredentialRecord<Metadata>[], options?: PlaneOptions) => Promise<boolean>;
|
4755
4756
|
update: (id: string, updates: Record<string, any>, options?: PlaneOptions) => Promise<boolean>;
|
4756
4757
|
remove: (id: string, options?: PlaneOptions) => Promise<boolean>;
|
4757
4758
|
removeAll?: (options?: PlaneOptions) => Promise<boolean>;
|
@@ -5961,6 +5962,8 @@ export declare const expirationPlugin: (learnCard: LearnCard<any, any, VerifyExt
|
|
5961
5962
|
export declare const getIDXPlugin: <URI extends string = "">(learnCard: LearnCard<any, "read", IDXPluginDependentMethods<URI>>, { modelData, credentialAlias }: IDXArgs) => Promise<IDXPlugin>;
|
5962
5963
|
export declare type TestCachePlugin = Plugin<"Test Cache", "cache">;
|
5963
5964
|
export declare const getTestCache: () => TestCachePlugin;
|
5965
|
+
export declare type TestStoragePlugin = Plugin<"Test Storage", "read" | "store" | "index">;
|
5966
|
+
export declare const getTestStorage: () => TestStoragePlugin;
|
5964
5967
|
/**
|
5965
5968
|
* @group Plugins
|
5966
5969
|
*/
|
package/dist/core.esm.js
CHANGED
@@ -7134,10 +7134,10 @@ var require_lodash = __commonJS({
|
|
7134
7134
|
return array && array.length ? baseUniq(array) : [];
|
7135
7135
|
}
|
7136
7136
|
__name(uniq, "uniq");
|
7137
|
-
function
|
7137
|
+
function uniqBy2(array, iteratee2) {
|
7138
7138
|
return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];
|
7139
7139
|
}
|
7140
|
-
__name(
|
7140
|
+
__name(uniqBy2, "uniqBy");
|
7141
7141
|
function uniqWith(array, comparator) {
|
7142
7142
|
comparator = typeof comparator == "function" ? comparator : undefined2;
|
7143
7143
|
return array && array.length ? baseUniq(array, undefined2, comparator) : [];
|
@@ -8977,7 +8977,7 @@ var require_lodash = __commonJS({
|
|
8977
8977
|
lodash.unionBy = unionBy;
|
8978
8978
|
lodash.unionWith = unionWith;
|
8979
8979
|
lodash.uniq = uniq;
|
8980
|
-
lodash.uniqBy =
|
8980
|
+
lodash.uniqBy = uniqBy2;
|
8981
8981
|
lodash.uniqWith = uniqWith;
|
8982
8982
|
lodash.unset = unset;
|
8983
8983
|
lodash.unzip = unzip;
|
@@ -46217,6 +46217,12 @@ var mapObject = /* @__PURE__ */ __name((obj, callback) => {
|
|
46217
46217
|
Object.entries(obj).map(([key2, value], index) => [key2, callback(value, index)])
|
46218
46218
|
);
|
46219
46219
|
}, "mapObject");
|
46220
|
+
var isFulfilledAndNotEmpty = /* @__PURE__ */ __name((input) => input.status === "fulfilled" && !!input.value, "isFulfilledAndNotEmpty");
|
46221
|
+
var uniqBy = /* @__PURE__ */ __name((array, key2) => {
|
46222
|
+
return [
|
46223
|
+
...new Map(array.map((obj) => [key2 instanceof Function ? key2(obj) : obj[key2], obj])).values()
|
46224
|
+
];
|
46225
|
+
}, "uniqBy");
|
46220
46226
|
|
46221
46227
|
// src/wallet/base/wallet.ts
|
46222
46228
|
var getPlaneProviders = /* @__PURE__ */ __name((plugins, plane) => {
|
@@ -46257,7 +46263,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46257
46263
|
return cachedResponse;
|
46258
46264
|
}
|
46259
46265
|
}
|
46260
|
-
const
|
46266
|
+
const results = await Promise.allSettled(
|
46261
46267
|
learnCard.plugins.map(async (plugin) => {
|
46262
46268
|
if (!pluginImplementsPlane(plugin, "read")) {
|
46263
46269
|
throw new Error("Plugin is not a Read Plugin");
|
@@ -46265,6 +46271,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46265
46271
|
return plugin.read.get(learnCard, uri);
|
46266
46272
|
})
|
46267
46273
|
);
|
46274
|
+
const vc = results.find(isFulfilledAndNotEmpty)?.value;
|
46268
46275
|
if (vc && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
|
46269
46276
|
await learnCard.cache.setVc(uri, vc);
|
46270
46277
|
}
|
@@ -46330,6 +46337,14 @@ var addCachingToIndexPlane = /* @__PURE__ */ __name((plane, name5) => ({
|
|
46330
46337
|
}
|
46331
46338
|
return plane.add(_learnCard, record);
|
46332
46339
|
},
|
46340
|
+
...plane.addMany ? {
|
46341
|
+
addMany: async (_learnCard, records, { cache = "cache-first" } = {}) => {
|
46342
|
+
if (cache !== "skip-cache" && learnCardImplementsPlane(_learnCard, "cache")) {
|
46343
|
+
await _learnCard.cache.flushIndex();
|
46344
|
+
}
|
46345
|
+
return plane.addMany?.(_learnCard, records);
|
46346
|
+
}
|
46347
|
+
} : {},
|
46333
46348
|
update: async (_learnCard, id, update2, { cache = "cache-first" } = {}) => {
|
46334
46349
|
if (cache !== "skip-cache" && learnCardImplementsPlane(_learnCard, "cache")) {
|
46335
46350
|
await _learnCard.cache.flushIndex();
|
@@ -46386,7 +46401,7 @@ var generateIndexPlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46386
46401
|
return plugin.index.get(learnCard, query);
|
46387
46402
|
})
|
46388
46403
|
)).flat();
|
46389
|
-
const results =
|
46404
|
+
const results = uniqBy(resultsWithDuplicates, "id");
|
46390
46405
|
if (results && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
|
46391
46406
|
await learnCard.cache.setIndex("all", query ?? {}, results);
|
46392
46407
|
}
|
@@ -46400,7 +46415,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46400
46415
|
getIndex: async (name5, query) => {
|
46401
46416
|
learnCard.debug?.("learnCard.cache.getIndex");
|
46402
46417
|
try {
|
46403
|
-
const
|
46418
|
+
const results = await Promise.allSettled(
|
46404
46419
|
learnCard.plugins.map(async (plugin) => {
|
46405
46420
|
if (!pluginImplementsPlane(plugin, "cache")) {
|
46406
46421
|
throw new Error("Plugin is not a Cache Plugin");
|
@@ -46408,6 +46423,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46408
46423
|
return plugin.cache.getIndex(learnCard, name5, query);
|
46409
46424
|
})
|
46410
46425
|
);
|
46426
|
+
const index = results.find(isFulfilledAndNotEmpty)?.value;
|
46411
46427
|
return index;
|
46412
46428
|
} catch (error) {
|
46413
46429
|
return void 0;
|
@@ -46440,7 +46456,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46440
46456
|
getVc: async (uri) => {
|
46441
46457
|
learnCard.debug?.("learnCard.cache.getVc");
|
46442
46458
|
try {
|
46443
|
-
const
|
46459
|
+
const results = await Promise.allSettled(
|
46444
46460
|
learnCard.plugins.map(async (plugin) => {
|
46445
46461
|
if (!pluginImplementsPlane(plugin, "cache")) {
|
46446
46462
|
throw new Error("Plugin is not a Cache Plugin");
|
@@ -46448,6 +46464,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
|
|
46448
46464
|
return plugin.cache.getVc(learnCard, uri);
|
46449
46465
|
})
|
46450
46466
|
);
|
46467
|
+
const vc = results.find(isFulfilledAndNotEmpty)?.value;
|
46451
46468
|
return vc;
|
46452
46469
|
} catch (error) {
|
46453
46470
|
return void 0;
|
@@ -67650,8 +67667,8 @@ var getIDXPlugin = /* @__PURE__ */ __name(async (learnCard, { modelData, credent
|
|
67650
67667
|
alias = credentialAlias;
|
67651
67668
|
return dataStore.set(alias, { credentials: [] });
|
67652
67669
|
}, "removeAllCredentialsFromIdx");
|
67653
|
-
const addCredentialInIdx = /* @__PURE__ */ __name(async (
|
67654
|
-
const record = CredentialRecordValidator.
|
67670
|
+
const addCredentialInIdx = /* @__PURE__ */ __name(async (_record) => {
|
67671
|
+
const record = await CredentialRecordValidator.parseAsync(_record);
|
67655
67672
|
if (!record)
|
67656
67673
|
throw new Error("record is required");
|
67657
67674
|
if (!record.uri)
|
@@ -67667,6 +67684,23 @@ var getIDXPlugin = /* @__PURE__ */ __name(async (learnCard, { modelData, credent
|
|
67667
67684
|
existing.credentials.push(record);
|
67668
67685
|
return streamIdToCeramicURI(await dataStore.set(credentialAlias, existing));
|
67669
67686
|
}, "addCredentialInIdx");
|
67687
|
+
const addCredentialsInIdx = /* @__PURE__ */ __name(async (_records) => {
|
67688
|
+
const records = CredentialRecordValidator.array().parse(_records);
|
67689
|
+
const existing = await getCredentialsListFromIdx(credentialAlias);
|
67690
|
+
await Promise.all(
|
67691
|
+
records.map(async (record) => {
|
67692
|
+
await learnCard.read.get(record.uri);
|
67693
|
+
const indexOfExistingCredential = existing.credentials.findIndex((credential) => {
|
67694
|
+
return credential.id === record.id;
|
67695
|
+
});
|
67696
|
+
if (indexOfExistingCredential > -1) {
|
67697
|
+
existing.credentials[indexOfExistingCredential] = record;
|
67698
|
+
} else
|
67699
|
+
existing.credentials.push(record);
|
67700
|
+
})
|
67701
|
+
);
|
67702
|
+
return streamIdToCeramicURI(await dataStore.set(credentialAlias, existing));
|
67703
|
+
}, "addCredentialsInIdx");
|
67670
67704
|
return {
|
67671
67705
|
name: "IDX",
|
67672
67706
|
displayName: "IDX",
|
@@ -67687,6 +67721,16 @@ var getIDXPlugin = /* @__PURE__ */ __name(async (learnCard, { modelData, credent
|
|
67687
67721
|
return false;
|
67688
67722
|
}
|
67689
67723
|
},
|
67724
|
+
addMany: async (_learnCard, records) => {
|
67725
|
+
_learnCard.debug?.("learnCard.index.IDX.add");
|
67726
|
+
try {
|
67727
|
+
await addCredentialsInIdx(records);
|
67728
|
+
return true;
|
67729
|
+
} catch (error) {
|
67730
|
+
console.error("Error adding credential with IDX:", error);
|
67731
|
+
return false;
|
67732
|
+
}
|
67733
|
+
},
|
67690
67734
|
update: async (_learnCard) => {
|
67691
67735
|
_learnCard.debug?.("learnCard.index.IDX.update");
|
67692
67736
|
return false;
|
@@ -71364,6 +71408,55 @@ var getTestCache = /* @__PURE__ */ __name(() => {
|
|
71364
71408
|
methods: {}
|
71365
71409
|
};
|
71366
71410
|
}, "getTestCache");
|
71411
|
+
|
71412
|
+
// src/wallet/plugins/test-storage/index.ts
|
71413
|
+
var getTestStorage = /* @__PURE__ */ __name(() => {
|
71414
|
+
let index = [];
|
71415
|
+
let vcs = [];
|
71416
|
+
return {
|
71417
|
+
name: "Test Storage",
|
71418
|
+
displayName: "Test Storage",
|
71419
|
+
description: "[Testing] Tests Storage Implementations",
|
71420
|
+
read: {
|
71421
|
+
get: async (_learnCard, uri) => {
|
71422
|
+
_learnCard.debug?.("Test Storage, read, get", { uri });
|
71423
|
+
if (!uri)
|
71424
|
+
return void 0;
|
71425
|
+
const [_lc, method, vcIndex] = uri.split(":");
|
71426
|
+
if (method !== "test")
|
71427
|
+
return void 0;
|
71428
|
+
return vcs[Number.parseInt(vcIndex)];
|
71429
|
+
}
|
71430
|
+
},
|
71431
|
+
store: {
|
71432
|
+
upload: async (_learnCard, vc) => {
|
71433
|
+
_learnCard.debug?.("Test Storage, store, upload", { vc });
|
71434
|
+
const vcIndex = vcs.length;
|
71435
|
+
vcs.push(vc);
|
71436
|
+
return `lc:test:${vcIndex}`;
|
71437
|
+
}
|
71438
|
+
},
|
71439
|
+
index: {
|
71440
|
+
get: async (_learnCard, query) => {
|
71441
|
+
_learnCard.debug?.("Test Storage, index, get", { query });
|
71442
|
+
return index;
|
71443
|
+
},
|
71444
|
+
add: async (_learnCard, record) => {
|
71445
|
+
_learnCard.debug?.("Test Storage, index, add", { record });
|
71446
|
+
index.push(record);
|
71447
|
+
return true;
|
71448
|
+
},
|
71449
|
+
update: async () => false,
|
71450
|
+
remove: async (_learnCard, id) => {
|
71451
|
+
_learnCard.debug?.("Test Storage, index, remove", { id });
|
71452
|
+
let recordIndex = index.findIndex((record) => record.id === id);
|
71453
|
+
index.splice(recordIndex, 1);
|
71454
|
+
return true;
|
71455
|
+
}
|
71456
|
+
},
|
71457
|
+
methods: {}
|
71458
|
+
};
|
71459
|
+
}, "getTestStorage");
|
71367
71460
|
export {
|
71368
71461
|
BackwardsCompatCredentialsListValidator,
|
71369
71462
|
BackwardsCompatIDXCredentialValidator,
|
@@ -71381,6 +71474,7 @@ export {
|
|
71381
71474
|
getEthereumPlugin,
|
71382
71475
|
getIDXPlugin,
|
71383
71476
|
getTestCache,
|
71477
|
+
getTestStorage,
|
71384
71478
|
getVCAPIPlugin,
|
71385
71479
|
getVCPlugin,
|
71386
71480
|
getVCTemplatesPlugin,
|