@learncard/helpers 1.0.19 → 1.1.0

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.
@@ -105,6 +105,7 @@ var require_types_cjs_development = __commonJS({
105
105
  LCNNotificationTypeEnumValidator: () => LCNNotificationTypeEnumValidator,
106
106
  LCNNotificationValidator: () => LCNNotificationValidator,
107
107
  LCNProfileConnectionStatusEnum: () => LCNProfileConnectionStatusEnum,
108
+ LCNProfileQueryValidator: () => LCNProfileQueryValidator,
108
109
  LCNProfileValidator: () => LCNProfileValidator,
109
110
  LCNSigningAuthorityForUserValidator: () => LCNSigningAuthorityForUserValidator,
110
111
  LCNSigningAuthorityValidator: () => LCNSigningAuthorityValidator,
@@ -130,7 +131,6 @@ var require_types_cjs_development = __commonJS({
130
131
  RubricCriterionValidator: () => RubricCriterionValidator,
131
132
  SentCredentialInfoValidator: () => SentCredentialInfoValidator,
132
133
  ServiceValidator: () => ServiceValidator,
133
- StringQuery: () => StringQuery,
134
134
  UnsignedAchievementCredentialValidator: () => UnsignedAchievementCredentialValidator,
135
135
  UnsignedVCValidator: () => UnsignedVCValidator,
136
136
  UnsignedVPValidator: () => UnsignedVPValidator,
@@ -3881,6 +3881,35 @@ var require_types_cjs_development = __commonJS({
3881
3881
  var PaginatedEncryptedCredentialRecordsValidator = PaginationResponseValidator.extend({
3882
3882
  records: EncryptedCredentialRecordValidator.array()
3883
3883
  });
3884
+ var parseRegexString = /* @__PURE__ */ __name2((regexStr) => {
3885
+ const match = regexStr.match(/^\/(.*)\/([gimsuy]*)$/);
3886
+ if (!match)
3887
+ throw new Error("Invalid RegExp string format");
3888
+ return { pattern: match[1], flags: match[2] };
3889
+ }, "parseRegexString");
3890
+ var RegExpValidator = mod.instanceof(RegExp).or(
3891
+ mod.string().refine(
3892
+ (str) => {
3893
+ try {
3894
+ parseRegexString(str);
3895
+ return true;
3896
+ } catch (e) {
3897
+ return false;
3898
+ }
3899
+ },
3900
+ {
3901
+ message: "Invalid RegExp string format. Must be in format '/pattern/flags'"
3902
+ }
3903
+ ).transform((str) => {
3904
+ const { pattern, flags } = parseRegexString(str);
3905
+ try {
3906
+ return new RegExp(pattern, flags);
3907
+ } catch (error) {
3908
+ throw new Error(`Invalid RegExp: ${error.message}`);
3909
+ }
3910
+ })
3911
+ );
3912
+ var StringQuery = mod.string().or(mod.object({ $in: mod.string().array() })).or(mod.object({ $regex: RegExpValidator }));
3884
3913
  var LCNProfileValidator = mod.object({
3885
3914
  profileId: mod.string().min(3).max(40),
3886
3915
  displayName: mod.string().default(""),
@@ -3895,6 +3924,16 @@ var require_types_cjs_development = __commonJS({
3895
3924
  type: mod.string().optional(),
3896
3925
  notificationsWebhook: mod.string().url().startsWith("http").optional()
3897
3926
  });
3927
+ var LCNProfileQueryValidator = mod.object({
3928
+ profileId: StringQuery,
3929
+ displayName: StringQuery,
3930
+ shortBio: StringQuery,
3931
+ bio: StringQuery,
3932
+ email: StringQuery,
3933
+ websiteLink: StringQuery,
3934
+ isServiceProfile: mod.boolean(),
3935
+ type: StringQuery
3936
+ }).partial();
3898
3937
  var PaginatedLCNProfilesValidator = PaginationResponseValidator.extend({
3899
3938
  records: LCNProfileValidator.array()
3900
3939
  });
@@ -3935,7 +3974,6 @@ var require_types_cjs_development = __commonJS({
3935
3974
  meta: mod.record(mod.any()).optional(),
3936
3975
  claimPermissions: BoostPermissionsValidator.optional()
3937
3976
  });
3938
- var StringQuery = mod.string().or(mod.object({ $in: mod.string().array() })).or(mod.object({ $regex: mod.instanceof(RegExp) }));
3939
3977
  var BoostQueryValidator = mod.object({
3940
3978
  uri: StringQuery,
3941
3979
  name: StringQuery,
@@ -3951,7 +3989,8 @@ var require_types_cjs_development = __commonJS({
3951
3989
  var BoostRecipientValidator = mod.object({
3952
3990
  to: LCNProfileValidator,
3953
3991
  from: mod.string(),
3954
- received: mod.string().optional()
3992
+ received: mod.string().optional(),
3993
+ uri: mod.string().optional()
3955
3994
  });
3956
3995
  var PaginatedBoostRecipientsValidator = PaginationResponseValidator.extend({
3957
3996
  records: BoostRecipientValidator.array()
@@ -4152,6 +4191,7 @@ var require_dist = __commonJS({
4152
4191
  // src/index.ts
4153
4192
  var src_exports = {};
4154
4193
  __export(src_exports, {
4194
+ RegExpTransformer: () => RegExpTransformer,
4155
4195
  isEncrypted: () => isEncrypted,
4156
4196
  isHex: () => isHex
4157
4197
  });
@@ -4161,3 +4201,30 @@ var isHex = /* @__PURE__ */ __name((str) => /^[0-9a-f]+$/i.test(str), "isHex");
4161
4201
  var isEncrypted = /* @__PURE__ */ __name((item) => {
4162
4202
  return import_types.JWEValidator.safeParse(item).success;
4163
4203
  }, "isEncrypted");
4204
+ var RegExpTransformer = {
4205
+ serialize(object) {
4206
+ return JSON.stringify(object, (_key, value) => {
4207
+ if (value instanceof RegExp)
4208
+ return value.toString();
4209
+ return value;
4210
+ });
4211
+ },
4212
+ deserialize(object) {
4213
+ if (typeof object !== "string")
4214
+ return object;
4215
+ return JSON.parse(object, (_key, value) => {
4216
+ if (typeof value === "string") {
4217
+ const match = value.match(/^\/(.*)\/([gimsuy]*)$/);
4218
+ if (match) {
4219
+ try {
4220
+ return new RegExp(match[1], match[2]);
4221
+ } catch (error) {
4222
+ console.warn(`Failed to parse RegExp: ${error}`);
4223
+ return value;
4224
+ }
4225
+ }
4226
+ }
4227
+ return value;
4228
+ });
4229
+ }
4230
+ };