@learncard/core 8.2.0 → 8.3.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.
@@ -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;
@@ -11423,7 +11423,7 @@ var require_sha256 = __commonJS({
11423
11423
  var d3 = v[3];
11424
11424
  var e2 = v[4];
11425
11425
  var f = v[5];
11426
- var g = v[6];
11426
+ var g2 = v[6];
11427
11427
  var h3 = v[7];
11428
11428
  for (var i2 = 0; i2 < 16; i2++) {
11429
11429
  var j = pos + i2 * 4;
@@ -11437,10 +11437,10 @@ var require_sha256 = __commonJS({
11437
11437
  w2[i2] = (t1 + w2[i2 - 7] | 0) + (t2 + w2[i2 - 16] | 0);
11438
11438
  }
11439
11439
  for (var i2 = 0; i2 < 64; i2++) {
11440
- var t1 = (((e2 >>> 6 | e2 << 32 - 6) ^ (e2 >>> 11 | e2 << 32 - 11) ^ (e2 >>> 25 | e2 << 32 - 25)) + (e2 & f ^ ~e2 & g) | 0) + (h3 + (K2[i2] + w2[i2] | 0) | 0) | 0;
11440
+ var t1 = (((e2 >>> 6 | e2 << 32 - 6) ^ (e2 >>> 11 | e2 << 32 - 11) ^ (e2 >>> 25 | e2 << 32 - 25)) + (e2 & f ^ ~e2 & g2) | 0) + (h3 + (K2[i2] + w2[i2] | 0) | 0) | 0;
11441
11441
  var t2 = ((a3 >>> 2 | a3 << 32 - 2) ^ (a3 >>> 13 | a3 << 32 - 13) ^ (a3 >>> 22 | a3 << 32 - 22)) + (a3 & b2 ^ a3 & c2 ^ b2 & c2) | 0;
11442
- h3 = g;
11443
- g = f;
11442
+ h3 = g2;
11443
+ g2 = f;
11444
11444
  f = e2;
11445
11445
  e2 = d3 + t1 | 0;
11446
11446
  d3 = c2;
@@ -11454,7 +11454,7 @@ var require_sha256 = __commonJS({
11454
11454
  v[3] += d3;
11455
11455
  v[4] += e2;
11456
11456
  v[5] += f;
11457
- v[6] += g;
11457
+ v[6] += g2;
11458
11458
  v[7] += h3;
11459
11459
  pos += 64;
11460
11460
  len -= 64;
@@ -14310,11 +14310,11 @@ var require_bn = __commonJS({
14310
14310
  var B2 = new BN3(0);
14311
14311
  var C = new BN3(0);
14312
14312
  var D2 = new BN3(1);
14313
- var g = 0;
14313
+ var g2 = 0;
14314
14314
  while (x2.isEven() && y3.isEven()) {
14315
14315
  x2.iushrn(1);
14316
14316
  y3.iushrn(1);
14317
- ++g;
14317
+ ++g2;
14318
14318
  }
14319
14319
  var yp = y3.clone();
14320
14320
  var xp = x2.clone();
@@ -14358,7 +14358,7 @@ var require_bn = __commonJS({
14358
14358
  return {
14359
14359
  a: C,
14360
14360
  b: D2,
14361
- gcd: y3.iushln(g)
14361
+ gcd: y3.iushln(g2)
14362
14362
  };
14363
14363
  }, "egcd");
14364
14364
  BN3.prototype._invmp = /* @__PURE__ */ __name(function _invmp(p) {
@@ -16626,13 +16626,13 @@ var require_edwards = __commonJS({
16626
16626
  c2 = c2.redIAdd(c2);
16627
16627
  var d3 = this.curve._mulA(a3);
16628
16628
  var e2 = this.x.redAdd(this.y).redSqr().redISub(a3).redISub(b2);
16629
- var g = d3.redAdd(b2);
16630
- var f = g.redSub(c2);
16629
+ var g2 = d3.redAdd(b2);
16630
+ var f = g2.redSub(c2);
16631
16631
  var h3 = d3.redSub(b2);
16632
16632
  var nx = e2.redMul(f);
16633
- var ny = g.redMul(h3);
16633
+ var ny = g2.redMul(h3);
16634
16634
  var nt = e2.redMul(h3);
16635
- var nz = f.redMul(g);
16635
+ var nz = f.redMul(g2);
16636
16636
  return this.curve.point(nx, ny, nz, nt);
16637
16637
  }, "_extDbl");
16638
16638
  Point2.prototype._projDbl = /* @__PURE__ */ __name(function _projDbl() {
@@ -16684,12 +16684,12 @@ var require_edwards = __commonJS({
16684
16684
  var d3 = this.z.redMul(p.z.redAdd(p.z));
16685
16685
  var e2 = b2.redSub(a3);
16686
16686
  var f = d3.redSub(c2);
16687
- var g = d3.redAdd(c2);
16687
+ var g2 = d3.redAdd(c2);
16688
16688
  var h3 = b2.redAdd(a3);
16689
16689
  var nx = e2.redMul(f);
16690
- var ny = g.redMul(h3);
16690
+ var ny = g2.redMul(h3);
16691
16691
  var nt = e2.redMul(h3);
16692
- var nz = f.redMul(g);
16692
+ var nz = f.redMul(g2);
16693
16693
  return this.curve.point(nx, ny, nz, nt);
16694
16694
  }, "_extAdd");
16695
16695
  Point2.prototype._projAdd = /* @__PURE__ */ __name(function _projAdd(p) {
@@ -16699,17 +16699,17 @@ var require_edwards = __commonJS({
16699
16699
  var d3 = this.y.redMul(p.y);
16700
16700
  var e2 = this.curve.d.redMul(c2).redMul(d3);
16701
16701
  var f = b2.redSub(e2);
16702
- var g = b2.redAdd(e2);
16702
+ var g2 = b2.redAdd(e2);
16703
16703
  var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c2).redISub(d3);
16704
16704
  var nx = a3.redMul(f).redMul(tmp);
16705
16705
  var ny;
16706
16706
  var nz;
16707
16707
  if (this.curve.twisted) {
16708
- ny = a3.redMul(g).redMul(d3.redSub(this.curve._mulA(c2)));
16709
- nz = f.redMul(g);
16708
+ ny = a3.redMul(g2).redMul(d3.redSub(this.curve._mulA(c2)));
16709
+ nz = f.redMul(g2);
16710
16710
  } else {
16711
- ny = a3.redMul(g).redMul(d3.redSub(c2));
16712
- nz = this.curve._mulC(f).redMul(g);
16711
+ ny = a3.redMul(g2).redMul(d3.redSub(c2));
16712
+ nz = this.curve._mulC(f).redMul(g2);
16713
16713
  }
16714
16714
  return this.curve.point(nx, ny, nz);
16715
16715
  }, "_projAdd");
@@ -17396,14 +17396,14 @@ var require__2 = __commonJS({
17396
17396
  var d3 = this.h[3];
17397
17397
  var e2 = this.h[4];
17398
17398
  var f = this.h[5];
17399
- var g = this.h[6];
17399
+ var g2 = this.h[6];
17400
17400
  var h3 = this.h[7];
17401
17401
  assert2(this.k.length === W.length);
17402
17402
  for (i2 = 0; i2 < W.length; i2++) {
17403
- var T1 = sum32_5(h3, s1_256(e2), ch32(e2, f, g), this.k[i2], W[i2]);
17403
+ var T1 = sum32_5(h3, s1_256(e2), ch32(e2, f, g2), this.k[i2], W[i2]);
17404
17404
  var T2 = sum32(s0_256(a3), maj32(a3, b2, c2));
17405
- h3 = g;
17406
- g = f;
17405
+ h3 = g2;
17406
+ g2 = f;
17407
17407
  f = e2;
17408
17408
  e2 = sum32(d3, T1);
17409
17409
  d3 = c2;
@@ -17417,7 +17417,7 @@ var require__2 = __commonJS({
17417
17417
  this.h[3] = sum32(this.h[3], d3);
17418
17418
  this.h[4] = sum32(this.h[4], e2);
17419
17419
  this.h[5] = sum32(this.h[5], f);
17420
- this.h[6] = sum32(this.h[6], g);
17420
+ this.h[6] = sum32(this.h[6], g2);
17421
17421
  this.h[7] = sum32(this.h[7], h3);
17422
17422
  }, "_update");
17423
17423
  SHA256.prototype._digest = /* @__PURE__ */ __name(function digest2(enc) {
@@ -21633,7 +21633,7 @@ var require_ed25519 = __commonJS({
21633
21633
  }
21634
21634
  __name(pow2523, "pow2523");
21635
21635
  function edadd(p, q2) {
21636
- const a3 = gf(), b2 = gf(), c2 = gf(), d3 = gf(), e2 = gf(), f = gf(), g = gf(), h3 = gf(), t2 = gf();
21636
+ const a3 = gf(), b2 = gf(), c2 = gf(), d3 = gf(), e2 = gf(), f = gf(), g2 = gf(), h3 = gf(), t2 = gf();
21637
21637
  sub(a3, p[1], p[0]);
21638
21638
  sub(t2, q2[1], q2[0]);
21639
21639
  mul3(a3, a3, t2);
@@ -21646,11 +21646,11 @@ var require_ed25519 = __commonJS({
21646
21646
  add3(d3, d3, d3);
21647
21647
  sub(e2, b2, a3);
21648
21648
  sub(f, d3, c2);
21649
- add3(g, d3, c2);
21649
+ add3(g2, d3, c2);
21650
21650
  add3(h3, b2, a3);
21651
21651
  mul3(p[0], e2, f);
21652
- mul3(p[1], h3, g);
21653
- mul3(p[2], g, f);
21652
+ mul3(p[1], h3, g2);
21653
+ mul3(p[2], g2, f);
21654
21654
  mul3(p[3], e2, h3);
21655
21655
  }
21656
21656
  __name(edadd, "edadd");
@@ -23270,7 +23270,7 @@ var require_poly1305 = __commonJS({
23270
23270
  if (macpos === void 0) {
23271
23271
  macpos = 0;
23272
23272
  }
23273
- var g = new Uint16Array(10);
23273
+ var g2 = new Uint16Array(10);
23274
23274
  var c2;
23275
23275
  var mask;
23276
23276
  var f;
@@ -23298,22 +23298,22 @@ var require_poly1305 = __commonJS({
23298
23298
  c2 = this._h[1] >>> 13;
23299
23299
  this._h[1] &= 8191;
23300
23300
  this._h[2] += c2;
23301
- g[0] = this._h[0] + 5;
23302
- c2 = g[0] >>> 13;
23303
- g[0] &= 8191;
23301
+ g2[0] = this._h[0] + 5;
23302
+ c2 = g2[0] >>> 13;
23303
+ g2[0] &= 8191;
23304
23304
  for (i2 = 1; i2 < 10; i2++) {
23305
- g[i2] = this._h[i2] + c2;
23306
- c2 = g[i2] >>> 13;
23307
- g[i2] &= 8191;
23305
+ g2[i2] = this._h[i2] + c2;
23306
+ c2 = g2[i2] >>> 13;
23307
+ g2[i2] &= 8191;
23308
23308
  }
23309
- g[9] -= 1 << 13;
23309
+ g2[9] -= 1 << 13;
23310
23310
  mask = (c2 ^ 1) - 1;
23311
23311
  for (i2 = 0; i2 < 10; i2++) {
23312
- g[i2] &= mask;
23312
+ g2[i2] &= mask;
23313
23313
  }
23314
23314
  mask = ~mask;
23315
23315
  for (i2 = 0; i2 < 10; i2++) {
23316
- this._h[i2] = this._h[i2] & mask | g[i2];
23316
+ this._h[i2] = this._h[i2] & mask | g2[i2];
23317
23317
  }
23318
23318
  this._h[0] = (this._h[0] | this._h[1] << 13) & 65535;
23319
23319
  this._h[1] = (this._h[1] >>> 3 | this._h[2] << 10) & 65535;
@@ -34964,11 +34964,11 @@ var require_bn2 = __commonJS({
34964
34964
  var B2 = new BN3(0);
34965
34965
  var C = new BN3(0);
34966
34966
  var D2 = new BN3(1);
34967
- var g = 0;
34967
+ var g2 = 0;
34968
34968
  while (x2.isEven() && y3.isEven()) {
34969
34969
  x2.iushrn(1);
34970
34970
  y3.iushrn(1);
34971
- ++g;
34971
+ ++g2;
34972
34972
  }
34973
34973
  var yp = y3.clone();
34974
34974
  var xp = x2.clone();
@@ -35012,7 +35012,7 @@ var require_bn2 = __commonJS({
35012
35012
  return {
35013
35013
  a: C,
35014
35014
  b: D2,
35015
- gcd: y3.iushln(g)
35015
+ gcd: y3.iushln(g2)
35016
35016
  };
35017
35017
  }, "egcd");
35018
35018
  BN3.prototype._invmp = /* @__PURE__ */ __name(function _invmp(p) {
@@ -36915,10 +36915,10 @@ var require_tslib = __commonJS({
36915
36915
  if (t2[0] & 1)
36916
36916
  throw t2[1];
36917
36917
  return t2[1];
36918
- }, trys: [], ops: [] }, f, y3, t2, g;
36919
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
36918
+ }, trys: [], ops: [] }, f, y3, t2, g2;
36919
+ return g2 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g2[Symbol.iterator] = function() {
36920
36920
  return this;
36921
- }), g;
36921
+ }), g2;
36922
36922
  function verb(n) {
36923
36923
  return function(v) {
36924
36924
  return step([n, v]);
@@ -36928,7 +36928,7 @@ var require_tslib = __commonJS({
36928
36928
  function step(op) {
36929
36929
  if (f)
36930
36930
  throw new TypeError("Generator is already executing.");
36931
- while (g && (g = 0, op[0] && (_2 = 0)), _2)
36931
+ while (g2 && (g2 = 0, op[0] && (_2 = 0)), _2)
36932
36932
  try {
36933
36933
  if (f = 1, y3 && (t2 = op[0] & 2 ? y3["return"] : op[0] ? y3["throw"] || ((t2 = y3["return"]) && t2.call(y3), 0) : y3.next) && !(t2 = t2.call(y3, op[1])).done)
36934
36934
  return t2;
@@ -37073,12 +37073,12 @@ var require_tslib = __commonJS({
37073
37073
  __asyncGenerator2 = /* @__PURE__ */ __name(function(thisArg, _arguments, generator) {
37074
37074
  if (!Symbol.asyncIterator)
37075
37075
  throw new TypeError("Symbol.asyncIterator is not defined.");
37076
- var g = generator.apply(thisArg, _arguments || []), i2, q2 = [];
37076
+ var g2 = generator.apply(thisArg, _arguments || []), i2, q2 = [];
37077
37077
  return i2 = {}, verb("next"), verb("throw"), verb("return"), i2[Symbol.asyncIterator] = function() {
37078
37078
  return this;
37079
37079
  }, i2;
37080
37080
  function verb(n) {
37081
- if (g[n])
37081
+ if (g2[n])
37082
37082
  i2[n] = function(v) {
37083
37083
  return new Promise(function(a3, b2) {
37084
37084
  q2.push([n, v, a3, b2]) > 1 || resume(n, v);
@@ -37088,7 +37088,7 @@ var require_tslib = __commonJS({
37088
37088
  __name(verb, "verb");
37089
37089
  function resume(n, v) {
37090
37090
  try {
37091
- step(g[n](v));
37091
+ step(g2[n](v));
37092
37092
  } catch (e2) {
37093
37093
  settle(q2[0][3], e2);
37094
37094
  }
@@ -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,
@@ -46195,9 +46196,20 @@ __export(src_exports2, {
46195
46196
  learnCardFromSeed: () => learnCardFromSeed
46196
46197
  });
46197
46198
  module.exports = __toCommonJS(src_exports2);
46199
+
46200
+ // src/polyfills.ts
46198
46201
  var import_promise = __toESM(require_promise3());
46199
46202
  var import_isomorphic_fetch = require("isomorphic-fetch");
46200
- var import_polyfill = require("abort-controller/polyfill");
46203
+ var ac = __toESM(require("abort-controller/dist/abort-controller.js"));
46204
+ var g = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : void 0;
46205
+ if (g) {
46206
+ if (typeof g.AbortController === "undefined") {
46207
+ g.AbortController = ac.AbortController;
46208
+ }
46209
+ if (typeof g.AbortSignal === "undefined") {
46210
+ g.AbortSignal = ac.AbortSignal;
46211
+ }
46212
+ }
46201
46213
 
46202
46214
  // src/wallet/base/helpers.ts
46203
46215
  var findFirstResult = /* @__PURE__ */ __name((array, callback) => {
@@ -46238,6 +46250,12 @@ var mapObject = /* @__PURE__ */ __name((obj, callback) => {
46238
46250
  Object.entries(obj).map(([key2, value], index) => [key2, callback(value, index)])
46239
46251
  );
46240
46252
  }, "mapObject");
46253
+ var isFulfilledAndNotEmpty = /* @__PURE__ */ __name((input) => input.status === "fulfilled" && !!input.value, "isFulfilledAndNotEmpty");
46254
+ var uniqBy = /* @__PURE__ */ __name((array, key2) => {
46255
+ return [
46256
+ ...new Map(array.map((obj) => [key2 instanceof Function ? key2(obj) : obj[key2], obj])).values()
46257
+ ];
46258
+ }, "uniqBy");
46241
46259
 
46242
46260
  // src/wallet/base/wallet.ts
46243
46261
  var getPlaneProviders = /* @__PURE__ */ __name((plugins, plane) => {
@@ -46278,7 +46296,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
46278
46296
  return cachedResponse;
46279
46297
  }
46280
46298
  }
46281
- const vc = await Promise.any(
46299
+ const results = await Promise.allSettled(
46282
46300
  learnCard.plugins.map(async (plugin) => {
46283
46301
  if (!pluginImplementsPlane(plugin, "read")) {
46284
46302
  throw new Error("Plugin is not a Read Plugin");
@@ -46286,6 +46304,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
46286
46304
  return plugin.read.get(learnCard, uri);
46287
46305
  })
46288
46306
  );
46307
+ const vc = results.find(isFulfilledAndNotEmpty)?.value;
46289
46308
  if (vc && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
46290
46309
  await learnCard.cache.setVc(uri, vc);
46291
46310
  }
@@ -46415,7 +46434,7 @@ var generateIndexPlane = /* @__PURE__ */ __name((learnCard) => {
46415
46434
  return plugin.index.get(learnCard, query);
46416
46435
  })
46417
46436
  )).flat();
46418
- const results = [...new Set(resultsWithDuplicates)];
46437
+ const results = uniqBy(resultsWithDuplicates, "id");
46419
46438
  if (results && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
46420
46439
  await learnCard.cache.setIndex("all", query ?? {}, results);
46421
46440
  }
@@ -46429,7 +46448,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46429
46448
  getIndex: async (name5, query) => {
46430
46449
  learnCard.debug?.("learnCard.cache.getIndex");
46431
46450
  try {
46432
- const index = await Promise.any(
46451
+ const results = await Promise.allSettled(
46433
46452
  learnCard.plugins.map(async (plugin) => {
46434
46453
  if (!pluginImplementsPlane(plugin, "cache")) {
46435
46454
  throw new Error("Plugin is not a Cache Plugin");
@@ -46437,6 +46456,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46437
46456
  return plugin.cache.getIndex(learnCard, name5, query);
46438
46457
  })
46439
46458
  );
46459
+ const index = results.find(isFulfilledAndNotEmpty)?.value;
46440
46460
  return index;
46441
46461
  } catch (error) {
46442
46462
  return void 0;
@@ -46469,7 +46489,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46469
46489
  getVc: async (uri) => {
46470
46490
  learnCard.debug?.("learnCard.cache.getVc");
46471
46491
  try {
46472
- const vc = await Promise.any(
46492
+ const results = await Promise.allSettled(
46473
46493
  learnCard.plugins.map(async (plugin) => {
46474
46494
  if (!pluginImplementsPlane(plugin, "cache")) {
46475
46495
  throw new Error("Plugin is not a Cache Plugin");
@@ -46477,6 +46497,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46477
46497
  return plugin.cache.getVc(learnCard, uri);
46478
46498
  })
46479
46499
  );
46500
+ const vc = results.find(isFulfilledAndNotEmpty)?.value;
46480
46501
  return vc;
46481
46502
  } catch (error) {
46482
46503
  return void 0;
@@ -51976,7 +51997,7 @@ var mod = /* @__PURE__ */ Object.freeze({
51976
51997
  });
51977
51998
 
51978
51999
  // ../learn-card-types/dist/types.esm.js
51979
- var ContextValidator = mod.string().array();
52000
+ var ContextValidator = mod.array(mod.string().or(mod.record(mod.any())));
51980
52001
  var AchievementCriteriaValidator = mod.object({
51981
52002
  type: mod.string().optional(),
51982
52003
  narrative: mod.string().optional()
@@ -71421,6 +71442,55 @@ var getTestCache = /* @__PURE__ */ __name(() => {
71421
71442
  methods: {}
71422
71443
  };
71423
71444
  }, "getTestCache");
71445
+
71446
+ // src/wallet/plugins/test-storage/index.ts
71447
+ var getTestStorage = /* @__PURE__ */ __name(() => {
71448
+ let index = [];
71449
+ let vcs = [];
71450
+ return {
71451
+ name: "Test Storage",
71452
+ displayName: "Test Storage",
71453
+ description: "[Testing] Tests Storage Implementations",
71454
+ read: {
71455
+ get: async (_learnCard, uri) => {
71456
+ _learnCard.debug?.("Test Storage, read, get", { uri });
71457
+ if (!uri)
71458
+ return void 0;
71459
+ const [_lc, method, vcIndex] = uri.split(":");
71460
+ if (method !== "test")
71461
+ return void 0;
71462
+ return vcs[Number.parseInt(vcIndex)];
71463
+ }
71464
+ },
71465
+ store: {
71466
+ upload: async (_learnCard, vc) => {
71467
+ _learnCard.debug?.("Test Storage, store, upload", { vc });
71468
+ const vcIndex = vcs.length;
71469
+ vcs.push(vc);
71470
+ return `lc:test:${vcIndex}`;
71471
+ }
71472
+ },
71473
+ index: {
71474
+ get: async (_learnCard, query) => {
71475
+ _learnCard.debug?.("Test Storage, index, get", { query });
71476
+ return index;
71477
+ },
71478
+ add: async (_learnCard, record) => {
71479
+ _learnCard.debug?.("Test Storage, index, add", { record });
71480
+ index.push(record);
71481
+ return true;
71482
+ },
71483
+ update: async () => false,
71484
+ remove: async (_learnCard, id) => {
71485
+ _learnCard.debug?.("Test Storage, index, remove", { id });
71486
+ let recordIndex = index.findIndex((record) => record.id === id);
71487
+ index.splice(recordIndex, 1);
71488
+ return true;
71489
+ }
71490
+ },
71491
+ methods: {}
71492
+ };
71493
+ }, "getTestStorage");
71424
71494
  /*!
71425
71495
  * A CredentialHandlerRegistration provides a CredentialManager to enable Web
71426
71496
  * apps to register Profiles that can be presented to websites.