@learncard/learn-cloud-plugin 2.3.26 → 2.3.28

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.
@@ -19649,6 +19649,17 @@ var CredentialFormatValidator = external_exports.enum([
19649
19649
  "vc+sd-jwt",
19650
19650
  "mso_mdoc"
19651
19651
  ]);
19652
+ var StoredCredentialEnvelopeValidator = external_exports.object({
19653
+ format: CredentialFormatValidator,
19654
+ data: external_exports.string()
19655
+ }).passthrough();
19656
+ var isStoredCredentialEnvelope = /* @__PURE__ */ __name2((value) => {
19657
+ if (!value || typeof value !== "object") return false;
19658
+ const candidate = value;
19659
+ if (typeof candidate.format !== "string") return false;
19660
+ if (!CredentialFormatValidator.safeParse(candidate.format).success) return false;
19661
+ return typeof candidate.data === "string" || candidate.data instanceof Uint8Array;
19662
+ }, "isStoredCredentialEnvelope");
19652
19663
  var StatusCheckEntryValidator = external_exports.object({
19653
19664
  /**
19654
19665
  * The `credentialStatus.type` as it appeared on the credential.
@@ -19735,6 +19746,13 @@ var parseRegexString = /* @__PURE__ */ __name2((regexStr) => {
19735
19746
  if (!match) throw new Error("Invalid RegExp string format");
19736
19747
  return { pattern: match[1], flags: match[2] };
19737
19748
  }, "parseRegexString");
19749
+ var withStringOverride = /* @__PURE__ */ __name2((schema) => {
19750
+ const metaSchema = schema;
19751
+ if (typeof metaSchema.meta === "function") {
19752
+ return metaSchema.meta({ override: { type: "string" } });
19753
+ }
19754
+ return schema;
19755
+ }, "withStringOverride");
19738
19756
  var RegExpStringValidator = external_exports.string().refine(
19739
19757
  (str) => {
19740
19758
  try {
@@ -19754,9 +19772,9 @@ var RegExpStringValidator = external_exports.string().refine(
19754
19772
  } catch (error46) {
19755
19773
  throw new Error(`Invalid RegExp: ${error46.message}`);
19756
19774
  }
19757
- }).meta({ override: { type: "string" } });
19758
- var RegExpValidator = external_exports.instanceof(RegExp).meta({ override: { type: "string" } }).or(RegExpStringValidator).meta({ override: { type: "string" } });
19759
- var BaseStringQuery = external_exports.string().or(external_exports.object({ $in: external_exports.string().array() })).or(external_exports.object({ $regex: RegExpValidator.meta({ override: { type: "string" } }) }));
19775
+ });
19776
+ var RegExpValidator = withStringOverride(external_exports.instanceof(RegExp).or(RegExpStringValidator));
19777
+ var BaseStringQuery = external_exports.string().or(external_exports.object({ $in: external_exports.string().array() })).or(external_exports.object({ $regex: RegExpValidator }));
19760
19778
  var StringQuery = external_exports.union([
19761
19779
  BaseStringQuery,
19762
19780
  external_exports.object({
@@ -19980,7 +19998,8 @@ var BoostRecipientValidator = external_exports.object({
19980
19998
  to: LCNVisibleProfileValidator,
19981
19999
  from: external_exports.string(),
19982
20000
  received: external_exports.string().optional(),
19983
- uri: external_exports.string().optional()
20001
+ uri: external_exports.string().optional(),
20002
+ status: external_exports.enum(["active", "revoked", "suspended"]).optional()
19984
20003
  });
19985
20004
  var PaginatedBoostRecipientsValidator = PaginationResponseValidator.extend({
19986
20005
  records: BoostRecipientValidator.array()
@@ -19990,7 +20009,8 @@ var BoostRecipientWithChildrenValidator = external_exports.object({
19990
20009
  from: external_exports.string(),
19991
20010
  received: external_exports.string().optional(),
19992
20011
  boostUris: external_exports.array(external_exports.string()),
19993
- credentialUris: external_exports.array(external_exports.string()).optional()
20012
+ credentialUris: external_exports.array(external_exports.string()).optional(),
20013
+ status: external_exports.enum(["active", "revoked", "suspended"]).optional()
19994
20014
  });
19995
20015
  var PaginatedBoostRecipientsWithChildrenValidator = PaginationResponseValidator.extend({
19996
20016
  records: BoostRecipientWithChildrenValidator.array()
@@ -21076,7 +21096,8 @@ var CredentialActivityValidator = external_exports.object({
21076
21096
  inboxCredentialId: external_exports.string().optional(),
21077
21097
  integrationId: external_exports.string().optional(),
21078
21098
  source: CredentialActivitySourceTypeValidator,
21079
- metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
21099
+ metadata: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
21100
+ status: external_exports.enum(["active", "revoked", "suspended"]).optional()
21080
21101
  });
21081
21102
  var CredentialActivityWithDetailsValidator = CredentialActivityValidator.extend({
21082
21103
  boost: external_exports.object({
@@ -21234,6 +21255,19 @@ var generateEncryptedRecord = /* @__PURE__ */ __name(async (learnCard, record2,
21234
21255
  }, "generateEncryptedRecord");
21235
21256
 
21236
21257
  // src/plugin.ts
21258
+ var uint8ArrayToBase64Url = /* @__PURE__ */ __name((bytes) => {
21259
+ let binary = "";
21260
+ for (let i = 0; i < bytes.length; i += 1) binary += String.fromCharCode(bytes[i]);
21261
+ const base643 = typeof btoa === "function" ? btoa(binary) : Buffer.from(binary, "binary").toString("base64");
21262
+ return base643.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
21263
+ }, "uint8ArrayToBase64Url");
21264
+ var normalizeEnvelopeForTransport = /* @__PURE__ */ __name((value) => {
21265
+ if (!isStoredCredentialEnvelope(value)) {
21266
+ return value;
21267
+ }
21268
+ if (typeof value.data === "string") return value;
21269
+ return { ...value, data: uint8ArrayToBase64Url(value.data) };
21270
+ }, "normalizeEnvelopeForTransport");
21237
21271
  var getLearnCloudClient = /* @__PURE__ */ __name(async (url2, learnCard) => {
21238
21272
  return (0, import_learn_cloud_client.getClient)(url2, async (challenge) => {
21239
21273
  const jwt2 = await learnCard.invoke.getDidAuthVp({ proofFormat: "jwt", challenge });
@@ -21437,7 +21471,9 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url2,
21437
21471
  if (!result) return null;
21438
21472
  try {
21439
21473
  const decryptedResult = await _learnCard.invoke.decryptDagJwe(result);
21440
- return await VCValidator.or(VPValidator).parseAsync(decryptedResult);
21474
+ const parsed = await VCValidator.or(VPValidator).or(StoredCredentialEnvelopeValidator).parseAsync(decryptedResult);
21475
+ const resolved = (0, import_helpers.resolveStorageReadResult)(parsed);
21476
+ return resolved === void 0 || isStoredCredentialEnvelope(resolved) ? null : resolved;
21441
21477
  } catch (error46) {
21442
21478
  _learnCard.debug?.(error46);
21443
21479
  return null;
@@ -21475,7 +21511,8 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url2,
21475
21511
  learnCard.debug?.("LearnCloud read.get result", result);
21476
21512
  const decryptedResult = await _learnCard.invoke.decryptDagJwe(result);
21477
21513
  learnCard.debug?.("LearnCloud read.get decryptedResult", decryptedResult);
21478
- return await VCValidator.or(VPValidator).parseAsync(decryptedResult);
21514
+ const parsed = await VCValidator.or(VPValidator).or(StoredCredentialEnvelopeValidator).parseAsync(decryptedResult);
21515
+ return (0, import_helpers.resolveStorageReadResult)(parsed);
21479
21516
  } catch (error46) {
21480
21517
  _learnCard.debug?.(error46);
21481
21518
  return void 0;
@@ -21486,7 +21523,8 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url2,
21486
21523
  learnCard.debug?.("LearnCloud read.get result", result);
21487
21524
  const decryptedResult = await _learnCard.invoke.decryptDagJwe(result);
21488
21525
  learnCard.debug?.("LearnCloud read.get decryptedResult", decryptedResult);
21489
- return await VCValidator.or(VPValidator).parseAsync(decryptedResult);
21526
+ const parsed = await VCValidator.or(VPValidator).or(StoredCredentialEnvelopeValidator).parseAsync(decryptedResult);
21527
+ return (0, import_helpers.resolveStorageReadResult)(parsed);
21490
21528
  } catch (error46) {
21491
21529
  _learnCard.debug?.(error46);
21492
21530
  return void 0;
@@ -21496,14 +21534,16 @@ var getLearnCloudPlugin = /* @__PURE__ */ __name(async (initialLearnCard, url2,
21496
21534
  store: {
21497
21535
  upload: /* @__PURE__ */ __name(async (_learnCard, credential) => {
21498
21536
  _learnCard.debug?.("learnCard.store['LearnCard Network'].upload");
21499
- return client.storage.store.mutate({ item: credential });
21537
+ return client.storage.store.mutate({
21538
+ item: normalizeEnvelopeForTransport(credential)
21539
+ });
21500
21540
  }, "upload"),
21501
21541
  uploadEncrypted: /* @__PURE__ */ __name(async (_learnCard, credential, { recipients = [] } = { recipients: [] }) => {
21502
21542
  _learnCard.debug?.("learnCard.store['LearnCard Network'].upload");
21503
- const jwe = await _learnCard.invoke.createDagJwe(credential, [
21504
- _learnCard.id.did(),
21505
- ...recipients
21506
- ]);
21543
+ const jwe = await _learnCard.invoke.createDagJwe(
21544
+ normalizeEnvelopeForTransport(credential),
21545
+ [_learnCard.id.did(), ...recipients]
21546
+ );
21507
21547
  return client.storage.store.mutate({ item: jwe });
21508
21548
  }, "uploadEncrypted"),
21509
21549
  delete: /* @__PURE__ */ __name(async (_learnCard, uri) => {