@learncard/learn-cloud-plugin 2.3.32 → 2.3.34

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.
@@ -21712,6 +21712,9 @@ var LCNProfileValidator = external_exports.object({
21712
21712
  role: external_exports.string().default("").optional().describe('Role of the profile: e.g. "teacher", "student".'),
21713
21713
  dob: external_exports.string().default("").optional().describe('Date of birth of the profile: e.g. "1990-01-01".'),
21714
21714
  country: external_exports.string().optional().describe("Country for the profile."),
21715
+ locale: external_exports.string().optional().describe(
21716
+ "BCP-47 language tag (e.g. 'es', 'fr', 'ar') \u2014 the user's preferred language for server-sent notifications and emails."
21717
+ ),
21715
21718
  approved: external_exports.boolean().optional().describe("Approval status for the profile.")
21716
21719
  });
21717
21720
  var LCNPublicProfileValidator = LCNProfileValidator.pick({
@@ -22257,7 +22260,10 @@ var LCNNotificationTypeEnumValidator = external_exports.enum([
22257
22260
  "GUARDIAN_APPROVAL_PENDING",
22258
22261
  "GUARDIAN_APPROVED",
22259
22262
  "GUARDIAN_REJECTED",
22260
- "APP_NOTIFICATION"
22263
+ "APP_NOTIFICATION",
22264
+ "CREDENTIAL_REVOKED",
22265
+ "CREDENTIAL_SUSPENDED",
22266
+ "CREDENTIAL_UNSUSPENDED"
22261
22267
  ]);
22262
22268
  var LCNNotificationMessageValidator = external_exports.object({
22263
22269
  title: external_exports.string().optional(),
@@ -23048,6 +23054,92 @@ var AllocateCredentialStatusInputValidator = external_exports.object({
23048
23054
  statusPurposes: external_exports.array(BitstringStatusPurposeValidator).optional(),
23049
23055
  listSize: external_exports.number().int().positive().optional()
23050
23056
  }).default({});
23057
+ var inAppMessagePlatformValidator = external_exports.enum(["ios", "android", "web"]);
23058
+ var inAppMessageVersionSourceValidator = external_exports.enum(["native", "web", "capgo"]);
23059
+ var inAppMessageVersionOpValidator = external_exports.enum(["lt", "lte", "eq", "gte", "gt"]);
23060
+ var platformPredicateValidator = external_exports.object({ platform: external_exports.array(inAppMessagePlatformValidator).nonempty() }).strict();
23061
+ var rolePredicateValidator = external_exports.object({ role: external_exports.array(external_exports.string()).nonempty() }).strict();
23062
+ var versionPredicateValidator = external_exports.object({
23063
+ version: external_exports.object({
23064
+ source: inAppMessageVersionSourceValidator,
23065
+ op: inAppMessageVersionOpValidator,
23066
+ value: external_exports.string()
23067
+ }).strict()
23068
+ }).strict();
23069
+ var inAppMessagePredicateValidator = external_exports.lazy(
23070
+ () => external_exports.union([
23071
+ platformPredicateValidator,
23072
+ rolePredicateValidator,
23073
+ versionPredicateValidator,
23074
+ external_exports.object({ all: external_exports.array(inAppMessagePredicateValidator) }).strict(),
23075
+ external_exports.object({ any: external_exports.array(inAppMessagePredicateValidator) }).strict(),
23076
+ external_exports.object({ not: inAppMessagePredicateValidator }).strict()
23077
+ ])
23078
+ );
23079
+ var inAppMessageActionStyleValidator = external_exports.enum(["primary", "secondary", "positive", "dismiss"]).default("secondary");
23080
+ var internalLinkActionValidator = external_exports.object({ type: external_exports.literal("internalLink"), path: external_exports.string() }).passthrough();
23081
+ var externalLinkActionValidator = external_exports.object({ type: external_exports.literal("externalLink"), url: external_exports.string() }).passthrough();
23082
+ var appStoreActionValidator = external_exports.object({
23083
+ type: external_exports.literal("appStore"),
23084
+ iosUrl: external_exports.string().optional(),
23085
+ androidUrl: external_exports.string().optional(),
23086
+ webUrl: external_exports.string().optional()
23087
+ }).passthrough();
23088
+ var capgoUpdateActionValidator = external_exports.object({ type: external_exports.literal("capgoUpdate") }).passthrough();
23089
+ var dismissActionValidator = external_exports.object({ type: external_exports.literal("dismiss") }).passthrough();
23090
+ var inAppMessageActionTargetValidator = external_exports.union([
23091
+ internalLinkActionValidator,
23092
+ externalLinkActionValidator,
23093
+ appStoreActionValidator,
23094
+ capgoUpdateActionValidator,
23095
+ dismissActionValidator
23096
+ ]);
23097
+ var inAppMessageActionValidator = external_exports.object({
23098
+ label: external_exports.string(),
23099
+ style: inAppMessageActionStyleValidator,
23100
+ action: inAppMessageActionTargetValidator,
23101
+ /** When true, the message closes after this action runs (default true). */
23102
+ closeOnComplete: external_exports.boolean().default(true)
23103
+ }).passthrough();
23104
+ var inAppMessageMediaValidator = external_exports.object({
23105
+ type: external_exports.enum(["youtube", "image", "gif"]),
23106
+ url: external_exports.string(),
23107
+ /** Aspect ratio hint, e.g. "16:9" or "1:1". Defaults to 16:9. */
23108
+ aspect: external_exports.string().default("16:9"),
23109
+ /** Alt text for images/gifs (accessibility). */
23110
+ alt: external_exports.string().optional()
23111
+ }).passthrough();
23112
+ var inAppMessageFrequencyValidator = external_exports.union([
23113
+ external_exports.literal("once"),
23114
+ external_exports.literal("session"),
23115
+ external_exports.literal("always"),
23116
+ external_exports.object({ everyDays: external_exports.number().positive() }).strict()
23117
+ ]).default("once");
23118
+ var inAppMessagePresentationValidator = external_exports.enum(["modal", "banner", "toast"]).default("modal");
23119
+ var inAppMessageValidator = external_exports.object({
23120
+ /** Stable identifier — used to persist dismissal / frequency state. */
23121
+ id: external_exports.string(),
23122
+ /** Higher priority wins when multiple messages match. Default 0. */
23123
+ priority: external_exports.number().default(0),
23124
+ /** When false, the message is required/blocking (no dismiss affordance). */
23125
+ dismissible: external_exports.boolean().default(true),
23126
+ frequency: inAppMessageFrequencyValidator,
23127
+ presentation: inAppMessagePresentationValidator,
23128
+ media: inAppMessageMediaValidator.optional(),
23129
+ /** Optional emoji hero glyph — rendered only when `media` is not set. */
23130
+ emoji: external_exports.string().optional(),
23131
+ title: external_exports.string(),
23132
+ body: external_exports.string().optional(),
23133
+ actions: external_exports.array(inAppMessageActionValidator).default([]),
23134
+ /** Targeting predicate tree. Omitted → matches everyone. */
23135
+ targeting: inAppMessagePredicateValidator.optional(),
23136
+ /** Allow disabling a message without removing it from the flag. */
23137
+ enabled: external_exports.boolean().default(true)
23138
+ }).passthrough();
23139
+ var inAppMessagesFlagValidator = external_exports.object({
23140
+ version: external_exports.number().default(1),
23141
+ messages: external_exports.array(inAppMessageValidator).default([])
23142
+ }).passthrough();
23051
23143
 
23052
23144
  // src/helpers.ts
23053
23145
  var import_json_stringify_deterministic = __toESM(require_lib(), 1);