@learncard/core 8.1.1 → 8.2.0

Sign up to get free protection for your applications and to get access to all the features.
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>>(obj: CredentialRecord<Metadata>, options?: PlaneOptions) => Promise<boolean>;
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>;
package/dist/core.esm.js CHANGED
@@ -46330,6 +46330,14 @@ var addCachingToIndexPlane = /* @__PURE__ */ __name((plane, name5) => ({
46330
46330
  }
46331
46331
  return plane.add(_learnCard, record);
46332
46332
  },
46333
+ ...plane.addMany ? {
46334
+ addMany: async (_learnCard, records, { cache = "cache-first" } = {}) => {
46335
+ if (cache !== "skip-cache" && learnCardImplementsPlane(_learnCard, "cache")) {
46336
+ await _learnCard.cache.flushIndex();
46337
+ }
46338
+ return plane.addMany?.(_learnCard, records);
46339
+ }
46340
+ } : {},
46333
46341
  update: async (_learnCard, id, update2, { cache = "cache-first" } = {}) => {
46334
46342
  if (cache !== "skip-cache" && learnCardImplementsPlane(_learnCard, "cache")) {
46335
46343
  await _learnCard.cache.flushIndex();
@@ -67650,8 +67658,8 @@ var getIDXPlugin = /* @__PURE__ */ __name(async (learnCard, { modelData, credent
67650
67658
  alias = credentialAlias;
67651
67659
  return dataStore.set(alias, { credentials: [] });
67652
67660
  }, "removeAllCredentialsFromIdx");
67653
- const addCredentialInIdx = /* @__PURE__ */ __name(async (idxCredential) => {
67654
- const record = CredentialRecordValidator.parse(idxCredential);
67661
+ const addCredentialInIdx = /* @__PURE__ */ __name(async (_record) => {
67662
+ const record = await CredentialRecordValidator.parseAsync(_record);
67655
67663
  if (!record)
67656
67664
  throw new Error("record is required");
67657
67665
  if (!record.uri)
@@ -67667,6 +67675,23 @@ var getIDXPlugin = /* @__PURE__ */ __name(async (learnCard, { modelData, credent
67667
67675
  existing.credentials.push(record);
67668
67676
  return streamIdToCeramicURI(await dataStore.set(credentialAlias, existing));
67669
67677
  }, "addCredentialInIdx");
67678
+ const addCredentialsInIdx = /* @__PURE__ */ __name(async (_records) => {
67679
+ const records = CredentialRecordValidator.array().parse(_records);
67680
+ const existing = await getCredentialsListFromIdx(credentialAlias);
67681
+ await Promise.all(
67682
+ records.map(async (record) => {
67683
+ await learnCard.read.get(record.uri);
67684
+ const indexOfExistingCredential = existing.credentials.findIndex((credential) => {
67685
+ return credential.id === record.id;
67686
+ });
67687
+ if (indexOfExistingCredential > -1) {
67688
+ existing.credentials[indexOfExistingCredential] = record;
67689
+ } else
67690
+ existing.credentials.push(record);
67691
+ })
67692
+ );
67693
+ return streamIdToCeramicURI(await dataStore.set(credentialAlias, existing));
67694
+ }, "addCredentialsInIdx");
67670
67695
  return {
67671
67696
  name: "IDX",
67672
67697
  displayName: "IDX",
@@ -67687,6 +67712,16 @@ var getIDXPlugin = /* @__PURE__ */ __name(async (learnCard, { modelData, credent
67687
67712
  return false;
67688
67713
  }
67689
67714
  },
67715
+ addMany: async (_learnCard, records) => {
67716
+ _learnCard.debug?.("learnCard.index.IDX.add");
67717
+ try {
67718
+ await addCredentialsInIdx(records);
67719
+ return true;
67720
+ } catch (error) {
67721
+ console.error("Error adding credential with IDX:", error);
67722
+ return false;
67723
+ }
67724
+ },
67690
67725
  update: async (_learnCard) => {
67691
67726
  _learnCard.debug?.("learnCard.index.IDX.update");
67692
67727
  return false;