@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.
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 uniqBy(array, iteratee2) {
7137
+ function uniqBy2(array, iteratee2) {
7138
7138
  return array && array.length ? baseUniq(array, getIteratee(iteratee2, 2)) : [];
7139
7139
  }
7140
- __name(uniqBy, "uniqBy");
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 = uniqBy;
8980
+ lodash.uniqBy = uniqBy2;
8981
8981
  lodash.uniqWith = uniqWith;
8982
8982
  lodash.unset = unset;
8983
8983
  lodash.unzip = unzip;
@@ -11429,7 +11429,7 @@ var require_sha256 = __commonJS({
11429
11429
  var d3 = v[3];
11430
11430
  var e2 = v[4];
11431
11431
  var f = v[5];
11432
- var g = v[6];
11432
+ var g2 = v[6];
11433
11433
  var h3 = v[7];
11434
11434
  for (var i2 = 0; i2 < 16; i2++) {
11435
11435
  var j = pos + i2 * 4;
@@ -11443,10 +11443,10 @@ var require_sha256 = __commonJS({
11443
11443
  w2[i2] = (t1 + w2[i2 - 7] | 0) + (t2 + w2[i2 - 16] | 0);
11444
11444
  }
11445
11445
  for (var i2 = 0; i2 < 64; i2++) {
11446
- 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;
11446
+ 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;
11447
11447
  var t2 = ((a3 >>> 2 | a3 << 32 - 2) ^ (a3 >>> 13 | a3 << 32 - 13) ^ (a3 >>> 22 | a3 << 32 - 22)) + (a3 & b2 ^ a3 & c2 ^ b2 & c2) | 0;
11448
- h3 = g;
11449
- g = f;
11448
+ h3 = g2;
11449
+ g2 = f;
11450
11450
  f = e2;
11451
11451
  e2 = d3 + t1 | 0;
11452
11452
  d3 = c2;
@@ -11460,7 +11460,7 @@ var require_sha256 = __commonJS({
11460
11460
  v[3] += d3;
11461
11461
  v[4] += e2;
11462
11462
  v[5] += f;
11463
- v[6] += g;
11463
+ v[6] += g2;
11464
11464
  v[7] += h3;
11465
11465
  pos += 64;
11466
11466
  len -= 64;
@@ -14316,11 +14316,11 @@ var require_bn = __commonJS({
14316
14316
  var B2 = new BN3(0);
14317
14317
  var C = new BN3(0);
14318
14318
  var D2 = new BN3(1);
14319
- var g = 0;
14319
+ var g2 = 0;
14320
14320
  while (x2.isEven() && y3.isEven()) {
14321
14321
  x2.iushrn(1);
14322
14322
  y3.iushrn(1);
14323
- ++g;
14323
+ ++g2;
14324
14324
  }
14325
14325
  var yp = y3.clone();
14326
14326
  var xp = x2.clone();
@@ -14364,7 +14364,7 @@ var require_bn = __commonJS({
14364
14364
  return {
14365
14365
  a: C,
14366
14366
  b: D2,
14367
- gcd: y3.iushln(g)
14367
+ gcd: y3.iushln(g2)
14368
14368
  };
14369
14369
  }, "egcd");
14370
14370
  BN3.prototype._invmp = /* @__PURE__ */ __name(function _invmp(p) {
@@ -16632,13 +16632,13 @@ var require_edwards = __commonJS({
16632
16632
  c2 = c2.redIAdd(c2);
16633
16633
  var d3 = this.curve._mulA(a3);
16634
16634
  var e2 = this.x.redAdd(this.y).redSqr().redISub(a3).redISub(b2);
16635
- var g = d3.redAdd(b2);
16636
- var f = g.redSub(c2);
16635
+ var g2 = d3.redAdd(b2);
16636
+ var f = g2.redSub(c2);
16637
16637
  var h3 = d3.redSub(b2);
16638
16638
  var nx = e2.redMul(f);
16639
- var ny = g.redMul(h3);
16639
+ var ny = g2.redMul(h3);
16640
16640
  var nt = e2.redMul(h3);
16641
- var nz = f.redMul(g);
16641
+ var nz = f.redMul(g2);
16642
16642
  return this.curve.point(nx, ny, nz, nt);
16643
16643
  }, "_extDbl");
16644
16644
  Point2.prototype._projDbl = /* @__PURE__ */ __name(function _projDbl() {
@@ -16690,12 +16690,12 @@ var require_edwards = __commonJS({
16690
16690
  var d3 = this.z.redMul(p.z.redAdd(p.z));
16691
16691
  var e2 = b2.redSub(a3);
16692
16692
  var f = d3.redSub(c2);
16693
- var g = d3.redAdd(c2);
16693
+ var g2 = d3.redAdd(c2);
16694
16694
  var h3 = b2.redAdd(a3);
16695
16695
  var nx = e2.redMul(f);
16696
- var ny = g.redMul(h3);
16696
+ var ny = g2.redMul(h3);
16697
16697
  var nt = e2.redMul(h3);
16698
- var nz = f.redMul(g);
16698
+ var nz = f.redMul(g2);
16699
16699
  return this.curve.point(nx, ny, nz, nt);
16700
16700
  }, "_extAdd");
16701
16701
  Point2.prototype._projAdd = /* @__PURE__ */ __name(function _projAdd(p) {
@@ -16705,17 +16705,17 @@ var require_edwards = __commonJS({
16705
16705
  var d3 = this.y.redMul(p.y);
16706
16706
  var e2 = this.curve.d.redMul(c2).redMul(d3);
16707
16707
  var f = b2.redSub(e2);
16708
- var g = b2.redAdd(e2);
16708
+ var g2 = b2.redAdd(e2);
16709
16709
  var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c2).redISub(d3);
16710
16710
  var nx = a3.redMul(f).redMul(tmp);
16711
16711
  var ny;
16712
16712
  var nz;
16713
16713
  if (this.curve.twisted) {
16714
- ny = a3.redMul(g).redMul(d3.redSub(this.curve._mulA(c2)));
16715
- nz = f.redMul(g);
16714
+ ny = a3.redMul(g2).redMul(d3.redSub(this.curve._mulA(c2)));
16715
+ nz = f.redMul(g2);
16716
16716
  } else {
16717
- ny = a3.redMul(g).redMul(d3.redSub(c2));
16718
- nz = this.curve._mulC(f).redMul(g);
16717
+ ny = a3.redMul(g2).redMul(d3.redSub(c2));
16718
+ nz = this.curve._mulC(f).redMul(g2);
16719
16719
  }
16720
16720
  return this.curve.point(nx, ny, nz);
16721
16721
  }, "_projAdd");
@@ -17402,14 +17402,14 @@ var require__2 = __commonJS({
17402
17402
  var d3 = this.h[3];
17403
17403
  var e2 = this.h[4];
17404
17404
  var f = this.h[5];
17405
- var g = this.h[6];
17405
+ var g2 = this.h[6];
17406
17406
  var h3 = this.h[7];
17407
17407
  assert2(this.k.length === W.length);
17408
17408
  for (i2 = 0; i2 < W.length; i2++) {
17409
- var T1 = sum32_5(h3, s1_256(e2), ch32(e2, f, g), this.k[i2], W[i2]);
17409
+ var T1 = sum32_5(h3, s1_256(e2), ch32(e2, f, g2), this.k[i2], W[i2]);
17410
17410
  var T2 = sum32(s0_256(a3), maj32(a3, b2, c2));
17411
- h3 = g;
17412
- g = f;
17411
+ h3 = g2;
17412
+ g2 = f;
17413
17413
  f = e2;
17414
17414
  e2 = sum32(d3, T1);
17415
17415
  d3 = c2;
@@ -17423,7 +17423,7 @@ var require__2 = __commonJS({
17423
17423
  this.h[3] = sum32(this.h[3], d3);
17424
17424
  this.h[4] = sum32(this.h[4], e2);
17425
17425
  this.h[5] = sum32(this.h[5], f);
17426
- this.h[6] = sum32(this.h[6], g);
17426
+ this.h[6] = sum32(this.h[6], g2);
17427
17427
  this.h[7] = sum32(this.h[7], h3);
17428
17428
  }, "_update");
17429
17429
  SHA256.prototype._digest = /* @__PURE__ */ __name(function digest2(enc) {
@@ -21639,7 +21639,7 @@ var require_ed25519 = __commonJS({
21639
21639
  }
21640
21640
  __name(pow2523, "pow2523");
21641
21641
  function edadd(p, q2) {
21642
- const a3 = gf(), b2 = gf(), c2 = gf(), d3 = gf(), e2 = gf(), f = gf(), g = gf(), h3 = gf(), t2 = gf();
21642
+ const a3 = gf(), b2 = gf(), c2 = gf(), d3 = gf(), e2 = gf(), f = gf(), g2 = gf(), h3 = gf(), t2 = gf();
21643
21643
  sub(a3, p[1], p[0]);
21644
21644
  sub(t2, q2[1], q2[0]);
21645
21645
  mul3(a3, a3, t2);
@@ -21652,11 +21652,11 @@ var require_ed25519 = __commonJS({
21652
21652
  add3(d3, d3, d3);
21653
21653
  sub(e2, b2, a3);
21654
21654
  sub(f, d3, c2);
21655
- add3(g, d3, c2);
21655
+ add3(g2, d3, c2);
21656
21656
  add3(h3, b2, a3);
21657
21657
  mul3(p[0], e2, f);
21658
- mul3(p[1], h3, g);
21659
- mul3(p[2], g, f);
21658
+ mul3(p[1], h3, g2);
21659
+ mul3(p[2], g2, f);
21660
21660
  mul3(p[3], e2, h3);
21661
21661
  }
21662
21662
  __name(edadd, "edadd");
@@ -23276,7 +23276,7 @@ var require_poly1305 = __commonJS({
23276
23276
  if (macpos === void 0) {
23277
23277
  macpos = 0;
23278
23278
  }
23279
- var g = new Uint16Array(10);
23279
+ var g2 = new Uint16Array(10);
23280
23280
  var c2;
23281
23281
  var mask;
23282
23282
  var f;
@@ -23304,22 +23304,22 @@ var require_poly1305 = __commonJS({
23304
23304
  c2 = this._h[1] >>> 13;
23305
23305
  this._h[1] &= 8191;
23306
23306
  this._h[2] += c2;
23307
- g[0] = this._h[0] + 5;
23308
- c2 = g[0] >>> 13;
23309
- g[0] &= 8191;
23307
+ g2[0] = this._h[0] + 5;
23308
+ c2 = g2[0] >>> 13;
23309
+ g2[0] &= 8191;
23310
23310
  for (i2 = 1; i2 < 10; i2++) {
23311
- g[i2] = this._h[i2] + c2;
23312
- c2 = g[i2] >>> 13;
23313
- g[i2] &= 8191;
23311
+ g2[i2] = this._h[i2] + c2;
23312
+ c2 = g2[i2] >>> 13;
23313
+ g2[i2] &= 8191;
23314
23314
  }
23315
- g[9] -= 1 << 13;
23315
+ g2[9] -= 1 << 13;
23316
23316
  mask = (c2 ^ 1) - 1;
23317
23317
  for (i2 = 0; i2 < 10; i2++) {
23318
- g[i2] &= mask;
23318
+ g2[i2] &= mask;
23319
23319
  }
23320
23320
  mask = ~mask;
23321
23321
  for (i2 = 0; i2 < 10; i2++) {
23322
- this._h[i2] = this._h[i2] & mask | g[i2];
23322
+ this._h[i2] = this._h[i2] & mask | g2[i2];
23323
23323
  }
23324
23324
  this._h[0] = (this._h[0] | this._h[1] << 13) & 65535;
23325
23325
  this._h[1] = (this._h[1] >>> 3 | this._h[2] << 10) & 65535;
@@ -34970,11 +34970,11 @@ var require_bn2 = __commonJS({
34970
34970
  var B2 = new BN3(0);
34971
34971
  var C = new BN3(0);
34972
34972
  var D2 = new BN3(1);
34973
- var g = 0;
34973
+ var g2 = 0;
34974
34974
  while (x2.isEven() && y3.isEven()) {
34975
34975
  x2.iushrn(1);
34976
34976
  y3.iushrn(1);
34977
- ++g;
34977
+ ++g2;
34978
34978
  }
34979
34979
  var yp = y3.clone();
34980
34980
  var xp = x2.clone();
@@ -35018,7 +35018,7 @@ var require_bn2 = __commonJS({
35018
35018
  return {
35019
35019
  a: C,
35020
35020
  b: D2,
35021
- gcd: y3.iushln(g)
35021
+ gcd: y3.iushln(g2)
35022
35022
  };
35023
35023
  }, "egcd");
35024
35024
  BN3.prototype._invmp = /* @__PURE__ */ __name(function _invmp(p) {
@@ -36921,10 +36921,10 @@ var require_tslib = __commonJS({
36921
36921
  if (t2[0] & 1)
36922
36922
  throw t2[1];
36923
36923
  return t2[1];
36924
- }, trys: [], ops: [] }, f, y3, t2, g;
36925
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
36924
+ }, trys: [], ops: [] }, f, y3, t2, g2;
36925
+ return g2 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g2[Symbol.iterator] = function() {
36926
36926
  return this;
36927
- }), g;
36927
+ }), g2;
36928
36928
  function verb(n) {
36929
36929
  return function(v) {
36930
36930
  return step([n, v]);
@@ -36934,7 +36934,7 @@ var require_tslib = __commonJS({
36934
36934
  function step(op) {
36935
36935
  if (f)
36936
36936
  throw new TypeError("Generator is already executing.");
36937
- while (g && (g = 0, op[0] && (_2 = 0)), _2)
36937
+ while (g2 && (g2 = 0, op[0] && (_2 = 0)), _2)
36938
36938
  try {
36939
36939
  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)
36940
36940
  return t2;
@@ -37079,12 +37079,12 @@ var require_tslib = __commonJS({
37079
37079
  __asyncGenerator2 = /* @__PURE__ */ __name(function(thisArg, _arguments, generator) {
37080
37080
  if (!Symbol.asyncIterator)
37081
37081
  throw new TypeError("Symbol.asyncIterator is not defined.");
37082
- var g = generator.apply(thisArg, _arguments || []), i2, q2 = [];
37082
+ var g2 = generator.apply(thisArg, _arguments || []), i2, q2 = [];
37083
37083
  return i2 = {}, verb("next"), verb("throw"), verb("return"), i2[Symbol.asyncIterator] = function() {
37084
37084
  return this;
37085
37085
  }, i2;
37086
37086
  function verb(n) {
37087
- if (g[n])
37087
+ if (g2[n])
37088
37088
  i2[n] = function(v) {
37089
37089
  return new Promise(function(a3, b2) {
37090
37090
  q2.push([n, v, a3, b2]) > 1 || resume(n, v);
@@ -37094,7 +37094,7 @@ var require_tslib = __commonJS({
37094
37094
  __name(verb, "verb");
37095
37095
  function resume(n, v) {
37096
37096
  try {
37097
- step(g[n](v));
37097
+ step(g2[n](v));
37098
37098
  } catch (e2) {
37099
37099
  settle(q2[0][3], e2);
37100
37100
  }
@@ -46173,10 +46173,19 @@ var require_base32_decode = __commonJS({
46173
46173
  }
46174
46174
  });
46175
46175
 
46176
- // src/index.ts
46176
+ // src/polyfills.ts
46177
46177
  var import_promise = __toESM(require_promise3());
46178
46178
  import "isomorphic-fetch";
46179
- import "abort-controller/polyfill";
46179
+ import * as ac from "abort-controller/dist/abort-controller.js";
46180
+ var g = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : void 0;
46181
+ if (g) {
46182
+ if (typeof g.AbortController === "undefined") {
46183
+ g.AbortController = ac.AbortController;
46184
+ }
46185
+ if (typeof g.AbortSignal === "undefined") {
46186
+ g.AbortSignal = ac.AbortSignal;
46187
+ }
46188
+ }
46180
46189
 
46181
46190
  // src/wallet/base/helpers.ts
46182
46191
  var findFirstResult = /* @__PURE__ */ __name((array, callback) => {
@@ -46217,6 +46226,12 @@ var mapObject = /* @__PURE__ */ __name((obj, callback) => {
46217
46226
  Object.entries(obj).map(([key2, value], index) => [key2, callback(value, index)])
46218
46227
  );
46219
46228
  }, "mapObject");
46229
+ var isFulfilledAndNotEmpty = /* @__PURE__ */ __name((input) => input.status === "fulfilled" && !!input.value, "isFulfilledAndNotEmpty");
46230
+ var uniqBy = /* @__PURE__ */ __name((array, key2) => {
46231
+ return [
46232
+ ...new Map(array.map((obj) => [key2 instanceof Function ? key2(obj) : obj[key2], obj])).values()
46233
+ ];
46234
+ }, "uniqBy");
46220
46235
 
46221
46236
  // src/wallet/base/wallet.ts
46222
46237
  var getPlaneProviders = /* @__PURE__ */ __name((plugins, plane) => {
@@ -46257,7 +46272,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
46257
46272
  return cachedResponse;
46258
46273
  }
46259
46274
  }
46260
- const vc = await Promise.any(
46275
+ const results = await Promise.allSettled(
46261
46276
  learnCard.plugins.map(async (plugin) => {
46262
46277
  if (!pluginImplementsPlane(plugin, "read")) {
46263
46278
  throw new Error("Plugin is not a Read Plugin");
@@ -46265,6 +46280,7 @@ var generateReadPlane = /* @__PURE__ */ __name((learnCard) => {
46265
46280
  return plugin.read.get(learnCard, uri);
46266
46281
  })
46267
46282
  );
46283
+ const vc = results.find(isFulfilledAndNotEmpty)?.value;
46268
46284
  if (vc && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
46269
46285
  await learnCard.cache.setVc(uri, vc);
46270
46286
  }
@@ -46394,7 +46410,7 @@ var generateIndexPlane = /* @__PURE__ */ __name((learnCard) => {
46394
46410
  return plugin.index.get(learnCard, query);
46395
46411
  })
46396
46412
  )).flat();
46397
- const results = [...new Set(resultsWithDuplicates)];
46413
+ const results = uniqBy(resultsWithDuplicates, "id");
46398
46414
  if (results && learnCardImplementsPlane(learnCard, "cache") && cache !== "skip-cache") {
46399
46415
  await learnCard.cache.setIndex("all", query ?? {}, results);
46400
46416
  }
@@ -46408,7 +46424,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46408
46424
  getIndex: async (name5, query) => {
46409
46425
  learnCard.debug?.("learnCard.cache.getIndex");
46410
46426
  try {
46411
- const index = await Promise.any(
46427
+ const results = await Promise.allSettled(
46412
46428
  learnCard.plugins.map(async (plugin) => {
46413
46429
  if (!pluginImplementsPlane(plugin, "cache")) {
46414
46430
  throw new Error("Plugin is not a Cache Plugin");
@@ -46416,6 +46432,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46416
46432
  return plugin.cache.getIndex(learnCard, name5, query);
46417
46433
  })
46418
46434
  );
46435
+ const index = results.find(isFulfilledAndNotEmpty)?.value;
46419
46436
  return index;
46420
46437
  } catch (error) {
46421
46438
  return void 0;
@@ -46448,7 +46465,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46448
46465
  getVc: async (uri) => {
46449
46466
  learnCard.debug?.("learnCard.cache.getVc");
46450
46467
  try {
46451
- const vc = await Promise.any(
46468
+ const results = await Promise.allSettled(
46452
46469
  learnCard.plugins.map(async (plugin) => {
46453
46470
  if (!pluginImplementsPlane(plugin, "cache")) {
46454
46471
  throw new Error("Plugin is not a Cache Plugin");
@@ -46456,6 +46473,7 @@ var generateCachePlane = /* @__PURE__ */ __name((learnCard) => {
46456
46473
  return plugin.cache.getVc(learnCard, uri);
46457
46474
  })
46458
46475
  );
46476
+ const vc = results.find(isFulfilledAndNotEmpty)?.value;
46459
46477
  return vc;
46460
46478
  } catch (error) {
46461
46479
  return void 0;
@@ -51954,7 +51972,7 @@ var mod = /* @__PURE__ */ Object.freeze({
51954
51972
  });
51955
51973
 
51956
51974
  // ../learn-card-types/dist/types.esm.js
51957
- var ContextValidator = mod.string().array();
51975
+ var ContextValidator = mod.array(mod.string().or(mod.record(mod.any())));
51958
51976
  var AchievementCriteriaValidator = mod.object({
51959
51977
  type: mod.string().optional(),
51960
51978
  narrative: mod.string().optional()
@@ -71399,6 +71417,55 @@ var getTestCache = /* @__PURE__ */ __name(() => {
71399
71417
  methods: {}
71400
71418
  };
71401
71419
  }, "getTestCache");
71420
+
71421
+ // src/wallet/plugins/test-storage/index.ts
71422
+ var getTestStorage = /* @__PURE__ */ __name(() => {
71423
+ let index = [];
71424
+ let vcs = [];
71425
+ return {
71426
+ name: "Test Storage",
71427
+ displayName: "Test Storage",
71428
+ description: "[Testing] Tests Storage Implementations",
71429
+ read: {
71430
+ get: async (_learnCard, uri) => {
71431
+ _learnCard.debug?.("Test Storage, read, get", { uri });
71432
+ if (!uri)
71433
+ return void 0;
71434
+ const [_lc, method, vcIndex] = uri.split(":");
71435
+ if (method !== "test")
71436
+ return void 0;
71437
+ return vcs[Number.parseInt(vcIndex)];
71438
+ }
71439
+ },
71440
+ store: {
71441
+ upload: async (_learnCard, vc) => {
71442
+ _learnCard.debug?.("Test Storage, store, upload", { vc });
71443
+ const vcIndex = vcs.length;
71444
+ vcs.push(vc);
71445
+ return `lc:test:${vcIndex}`;
71446
+ }
71447
+ },
71448
+ index: {
71449
+ get: async (_learnCard, query) => {
71450
+ _learnCard.debug?.("Test Storage, index, get", { query });
71451
+ return index;
71452
+ },
71453
+ add: async (_learnCard, record) => {
71454
+ _learnCard.debug?.("Test Storage, index, add", { record });
71455
+ index.push(record);
71456
+ return true;
71457
+ },
71458
+ update: async () => false,
71459
+ remove: async (_learnCard, id) => {
71460
+ _learnCard.debug?.("Test Storage, index, remove", { id });
71461
+ let recordIndex = index.findIndex((record) => record.id === id);
71462
+ index.splice(recordIndex, 1);
71463
+ return true;
71464
+ }
71465
+ },
71466
+ methods: {}
71467
+ };
71468
+ }, "getTestStorage");
71402
71469
  export {
71403
71470
  BackwardsCompatCredentialsListValidator,
71404
71471
  BackwardsCompatIDXCredentialValidator,
@@ -71416,6 +71483,7 @@ export {
71416
71483
  getEthereumPlugin,
71417
71484
  getIDXPlugin,
71418
71485
  getTestCache,
71486
+ getTestStorage,
71419
71487
  getVCAPIPlugin,
71420
71488
  getVCPlugin,
71421
71489
  getVCTemplatesPlugin,