@learncard/core 8.2.0 → 8.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7128,10 +7128,10 @@ var require_lodash = __commonJS({
7128
7128
  return array && array.length ? baseUniq(array) : [];
7129
7129
  }
7130
7130
  __name(uniq, "uniq");
7131
- function uniqBy(array, iteratee2) {
7131
+ function uniqBy2(array, iteratee2) {
7132
7132
  return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];
7133
7133
  }
7134
- __name(uniqBy, "uniqBy");
7134
+ __name(uniqBy2, "uniqBy");
7135
7135
  function uniqWith(array, comparator) {
7136
7136
  comparator = typeof comparator == "function" ? comparator : undefined2;
7137
7137
  return array && array.length ? baseUniq(array, undefined2, comparator) : [];
@@ -8971,7 +8971,7 @@ var require_lodash = __commonJS({
8971
8971
  lodash.unionBy = unionBy;
8972
8972
  lodash.unionWith = unionWith;
8973
8973
  lodash.uniq = uniq;
8974
- lodash.uniqBy = uniqBy;
8974
+ lodash.uniqBy = uniqBy2;
8975
8975
  lodash.uniqWith = uniqWith;
8976
8976
  lodash.unset = unset;
8977
8977
  lodash.unzip = unzip;
@@ -46186,6 +46186,7 @@ __export(src_exports2, {
46186
46186
  getEthereumPlugin: () => getEthereumPlugin,
46187
46187
  getIDXPlugin: () => getIDXPlugin,
46188
46188
  getTestCache: () => getTestCache,
46189
+ getTestStorage: () => getTestStorage,
46189
46190
  getVCAPIPlugin: () => getVCAPIPlugin,
46190
46191
  getVCPlugin: () => getVCPlugin,
46191
46192
  getVCTemplatesPlugin: () => getVCTemplatesPlugin,
@@ -46238,6 +46239,12 @@ var mapObject = /* @__PURE__ */ __name((obj, callback) => {
46238
46239
  Object.entries(obj).map(([key2, value], index) => [key2, callback(value, index)])
46239
46240
  );
46240
46241
  }, "mapObject");
46242
+ var isFulfilledAndNotEmpty = /* @__PURE__ */ __name((input) => input.status === "fulfilled" && !!input.value, "isFulfilledAndNotEmpty");
46243
+ var uniqBy = /* @__PURE__ */ __name((array, key2) => {
46244
+ return [
46245
+ ...new Map(array.map((obj) => [key2 instanceof Function ? key2(obj) : obj[key2], obj])).values()
46246
+ ];
46247
+ }, "uniqBy");
46241
46248
 
46242
46249
  // src/wallet/base/wallet.ts
46243
46250
  var getPlaneProviders = /* @__PURE__ */ __name((plugins, plane) => {
@@ -46278,7 +46285,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
46278
46285
  return cachedResponse;
46279
46286
  }
46280
46287
  }
46281
- const vc = await Promise.any(
46288
+ const results = await Promise.allSettled(
46282
46289
  learnCard.plugins.map(async (plugin) => {
46283
46290
  if (!pluginImplementsPlane(plugin, "read")) {
46284
46291
  throw new Error("Plugin is not a Read Plugin");
@@ -46286,6 +46293,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
46286
46293
  return plugin.read.get(learnCard, uri);
46287
46294
  })
46288
46295
  );
46296
+ const vc = results.find(isFulfilledAndNotEmpty)?.value;
46289
46297
  if (vc && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
46290
46298
  await learnCard.cache.setVc(uri, vc);
46291
46299
  }
@@ -46415,7 +46423,7 @@ var generateIndexPlane = /* @__PURE__ */ __name((learnCard) => {
46415
46423
  return plugin.index.get(learnCard, query);
46416
46424
  })
46417
46425
  )).flat();
46418
- const results = [...new Set(resultsWithDuplicates)];
46426
+ const results = uniqBy(resultsWithDuplicates, "id");
46419
46427
  if (results && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
46420
46428
  await learnCard.cache.setIndex("all", query ?? {}, results);
46421
46429
  }
@@ -46429,7 +46437,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46429
46437
  getIndex: async (name5, query) => {
46430
46438
  learnCard.debug?.("learnCard.cache.getIndex");
46431
46439
  try {
46432
- const index = await Promise.any(
46440
+ const results = await Promise.allSettled(
46433
46441
  learnCard.plugins.map(async (plugin) => {
46434
46442
  if (!pluginImplementsPlane(plugin, "cache")) {
46435
46443
  throw new Error("Plugin is not a Cache Plugin");
@@ -46437,6 +46445,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46437
46445
  return plugin.cache.getIndex(learnCard, name5, query);
46438
46446
  })
46439
46447
  );
46448
+ const index = results.find(isFulfilledAndNotEmpty)?.value;
46440
46449
  return index;
46441
46450
  } catch (error) {
46442
46451
  return void 0;
@@ -46469,7 +46478,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46469
46478
  getVc: async (uri) => {
46470
46479
  learnCard.debug?.("learnCard.cache.getVc");
46471
46480
  try {
46472
- const vc = await Promise.any(
46481
+ const results = await Promise.allSettled(
46473
46482
  learnCard.plugins.map(async (plugin) => {
46474
46483
  if (!pluginImplementsPlane(plugin, "cache")) {
46475
46484
  throw new Error("Plugin is not a Cache Plugin");
@@ -46477,6 +46486,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46477
46486
  return plugin.cache.getVc(learnCard, uri);
46478
46487
  })
46479
46488
  );
46489
+ const vc = results.find(isFulfilledAndNotEmpty)?.value;
46480
46490
  return vc;
46481
46491
  } catch (error) {
46482
46492
  return void 0;
@@ -71421,6 +71431,55 @@ var getTestCache = /* @__PURE__ */ __name(() => {
71421
71431
  methods: {}
71422
71432
  };
71423
71433
  }, "getTestCache");
71434
+
71435
+ // src/wallet/plugins/test-storage/index.ts
71436
+ var getTestStorage = /* @__PURE__ */ __name(() => {
71437
+ let index = [];
71438
+ let vcs = [];
71439
+ return {
71440
+ name: "Test Storage",
71441
+ displayName: "Test Storage",
71442
+ description: "[Testing] Tests Storage Implementations",
71443
+ read: {
71444
+ get: async (_learnCard, uri) => {
71445
+ _learnCard.debug?.("Test Storage, read, get", { uri });
71446
+ if (!uri)
71447
+ return void 0;
71448
+ const [_lc, method, vcIndex] = uri.split(":");
71449
+ if (method !== "test")
71450
+ return void 0;
71451
+ return vcs[Number.parseInt(vcIndex)];
71452
+ }
71453
+ },
71454
+ store: {
71455
+ upload: async (_learnCard, vc) => {
71456
+ _learnCard.debug?.("Test Storage, store, upload", { vc });
71457
+ const vcIndex = vcs.length;
71458
+ vcs.push(vc);
71459
+ return `lc:test:${vcIndex}`;
71460
+ }
71461
+ },
71462
+ index: {
71463
+ get: async (_learnCard, query) => {
71464
+ _learnCard.debug?.("Test Storage, index, get", { query });
71465
+ return index;
71466
+ },
71467
+ add: async (_learnCard, record) => {
71468
+ _learnCard.debug?.("Test Storage, index, add", { record });
71469
+ index.push(record);
71470
+ return true;
71471
+ },
71472
+ update: async () => false,
71473
+ remove: async (_learnCard, id) => {
71474
+ _learnCard.debug?.("Test Storage, index, remove", { id });
71475
+ let recordIndex = index.findIndex((record) => record.id === id);
71476
+ index.splice(recordIndex, 1);
71477
+ return true;
71478
+ }
71479
+ },
71480
+ methods: {}
71481
+ };
71482
+ }, "getTestStorage");
71424
71483
  /*!
71425
71484
  * A CredentialHandlerRegistration provides a CredentialManager to enable Web
71426
71485
  * apps to register Profiles that can be presented to websites.