@learncard/types 5.12.3 → 5.13.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/vc.ts", "../src/did.ts", "../src/crypto.ts", "../src/obv3.ts", "../src/learncard.ts", "../src/learncloud.ts", "../src/mongo.ts", "../src/lcn.ts", "../src/queries.ts"],
4
- "sourcesContent": ["import { z } from 'zod';\n\nexport const ContextValidator = z.array(z.string().or(z.record(z.string(), z.any())));\nexport type Context = z.infer<typeof ContextValidator>;\n\nexport const AchievementCriteriaValidator = z.object({\n type: z.string().optional(),\n narrative: z.string().optional(),\n});\nexport type AchievementCriteria = z.infer<typeof AchievementCriteriaValidator>;\n\nexport const ImageValidator = z.string().or(\n z.object({\n id: z.string(),\n type: z.string(),\n caption: z.string().optional(),\n })\n);\nexport type Image = z.infer<typeof ImageValidator>;\n\nexport const GeoCoordinatesValidator = z.object({\n type: z.string().min(1).or(z.string().array().nonempty()),\n latitude: z.number(),\n longitude: z.number(),\n});\nexport type GeoCoordinates = z.infer<typeof GeoCoordinatesValidator>;\n\nexport const AddressValidator = z.object({\n type: z.string().min(1).or(z.string().array().nonempty()),\n addressCountry: z.string().optional(),\n addressCountryCode: z.string().optional(),\n addressRegion: z.string().optional(),\n addressLocality: z.string().optional(),\n streetAddress: z.string().optional(),\n postOfficeBoxNumber: z.string().optional(),\n postalCode: z.string().optional(),\n geo: GeoCoordinatesValidator.optional(),\n});\nexport type Address = z.infer<typeof AddressValidator>;\n\nexport const IdentifierTypeValidator = z\n .enum([\n 'sourcedId',\n 'systemId',\n 'productId',\n 'userName',\n 'accountId',\n 'emailAddress',\n 'nationalIdentityNumber',\n 'isbn',\n 'issn',\n 'lisSourcedId',\n 'oneRosterSourcedId',\n 'sisSourcedId',\n 'ltiContextId',\n 'ltiDeploymentId',\n 'ltiToolId',\n 'ltiPlatformId',\n 'ltiUserId',\n 'identifier',\n ])\n .or(z.string());\nexport type IdentifierType = z.infer<typeof IdentifierTypeValidator>;\n\nexport const IdentifierEntryValidator = z.object({\n type: z.string().min(1).or(z.string().array().nonempty()),\n identifier: z.string(),\n identifierType: IdentifierTypeValidator,\n});\nexport type IdentifierEntry = z.infer<typeof IdentifierEntryValidator>;\n\nexport const ProfileValidator = z.string().or(\n z\n .object({\n id: z.string().optional(),\n type: z.string().or(z.string().array().nonempty().optional()),\n name: z.string().optional(),\n url: z.string().optional(),\n phone: z.string().optional(),\n description: z.string().optional(),\n endorsement: z.any().array().optional(), // Recursive type\n image: ImageValidator.optional(),\n email: z.string().email().optional(),\n address: AddressValidator.optional(),\n otherIdentifier: IdentifierEntryValidator.array().optional(),\n official: z.string().optional(),\n parentOrg: z.any().optional(), // Recursive types are annoying =(\n familyName: z.string().optional(),\n givenName: z.string().optional(),\n additionalName: z.string().optional(),\n patronymicName: z.string().optional(),\n honorificPrefix: z.string().optional(),\n honorificSuffix: z.string().optional(),\n familyNamePrefix: z.string().optional(),\n dateOfBirth: z.string().optional(),\n })\n .catchall(z.any())\n);\nexport type Profile = z.infer<typeof ProfileValidator>;\n\nexport const CredentialSubjectValidator = z.object({ id: z.string().optional() }).catchall(z.any());\nexport type CredentialSubject = z.infer<typeof CredentialSubjectValidator>;\n\nexport const CredentialStatusValidator = z\n .object({ type: z.string(), id: z.string() })\n .catchall(z.any());\nexport type CredentialStatus = z.infer<typeof CredentialStatusValidator>;\n\nexport const CredentialSchemaValidator = z\n .object({ id: z.string(), type: z.string() })\n .catchall(z.any());\nexport type CredentialSchema = z.infer<typeof CredentialSchemaValidator>;\n\nexport const RefreshServiceValidator = z\n .object({ id: z.string().optional(), type: z.string() })\n .catchall(z.any());\nexport type RefreshService = z.infer<typeof RefreshServiceValidator>;\n\nexport const TermsOfUseValidator = z\n .object({ type: z.string(), id: z.string().optional() })\n .catchall(z.any());\nexport type TermsOfUse = z.infer<typeof TermsOfUseValidator>;\n\nexport const VC2EvidenceValidator = z\n .object({\n id: z.string().optional(),\n type: z.array(z.string()).nonempty(),\n name: z.string().optional(),\n narrative: z.string().optional(),\n description: z.string().optional(),\n genre: z.string().optional(),\n audience: z.string().optional(),\n })\n .catchall(z.any());\nexport type VC2Evidence = z.infer<typeof VC2EvidenceValidator>;\n\nexport const UnsignedVCValidator = z\n .object({\n '@context': ContextValidator,\n id: z.string().optional(),\n type: z.string().array().nonempty(),\n issuer: ProfileValidator,\n credentialSubject: CredentialSubjectValidator.or(CredentialSubjectValidator.array()),\n refreshService: RefreshServiceValidator.or(RefreshServiceValidator.array()).optional(),\n credentialSchema: CredentialSchemaValidator.or(\n CredentialSchemaValidator.array()\n ).optional(),\n\n // V1\n issuanceDate: z.string().optional(),\n expirationDate: z.string().optional(),\n credentialStatus: CredentialStatusValidator.or(\n CredentialStatusValidator.array()\n ).optional(),\n\n // V2\n name: z.string().optional(),\n description: z.string().optional(),\n validFrom: z.string().optional(),\n validUntil: z.string().optional(),\n status: CredentialStatusValidator.or(CredentialStatusValidator.array()).optional(),\n termsOfUse: TermsOfUseValidator.or(TermsOfUseValidator.array()).optional(),\n evidence: z.union([VC2EvidenceValidator, z.array(VC2EvidenceValidator)]).optional(),\n })\n .catchall(z.any());\nexport type UnsignedVC = z.infer<typeof UnsignedVCValidator>;\n\nexport const ProofValidator = z\n .object({\n type: z.string(),\n created: z.string(),\n challenge: z.string().optional(),\n domain: z.string().optional(),\n nonce: z.string().optional(),\n proofPurpose: z.string(),\n verificationMethod: z.string(),\n jws: z.string().optional(),\n })\n .catchall(z.any());\nexport type Proof = z.infer<typeof ProofValidator>;\n\nexport const VCValidator = UnsignedVCValidator.extend({\n proof: ProofValidator.or(ProofValidator.array()),\n});\nexport type VC = z.infer<typeof VCValidator>;\n\nexport const UnsignedVPValidator = z\n .object({\n '@context': ContextValidator,\n id: z.string().optional(),\n type: z.string().or(z.string().array().nonempty()),\n verifiableCredential: VCValidator.or(VCValidator.array()).optional(),\n holder: z.string().optional(),\n })\n .catchall(z.any());\nexport type UnsignedVP = z.infer<typeof UnsignedVPValidator>;\n\nexport const VPValidator = UnsignedVPValidator.extend({\n proof: ProofValidator.or(ProofValidator.array()),\n});\nexport type VP = z.infer<typeof VPValidator>;\n", "import { z } from 'zod';\nimport { ContextValidator, ProofValidator } from './vc';\nimport { JWKValidator } from './crypto';\n\nexport const VerificationMethodValidator = z.string().or(\n z\n .object({\n '@context': ContextValidator.optional(),\n id: z.string(),\n type: z.string(),\n controller: z.string(),\n publicKeyJwk: JWKValidator.optional(),\n publicKeyBase58: z.string().optional(),\n publicKeyMultibase: z.string().optional(),\n blockChainAccountId: z.string().optional(),\n })\n .catchall(z.any())\n);\nexport type VerificationMethod = z.infer<typeof VerificationMethodValidator>;\n\nexport const ServiceValidator = z\n .object({\n id: z.string(),\n type: z.string().or(z.string().array().nonempty()),\n serviceEndpoint: z.any().or(z.any().array().nonempty()),\n })\n .catchall(z.any());\nexport type Service = z.infer<typeof ServiceValidator>;\n\nexport const DidDocumentValidator = z\n .object({\n '@context': ContextValidator,\n id: z.string(),\n alsoKnownAs: z.string().optional(),\n controller: z.string().or(z.string().array().nonempty()).optional(),\n verificationMethod: VerificationMethodValidator.array().optional(),\n authentication: VerificationMethodValidator.array().optional(),\n assertionMethod: VerificationMethodValidator.array().optional(),\n keyAgreement: VerificationMethodValidator.array().optional(),\n capabilityInvocation: VerificationMethodValidator.array().optional(),\n capabilityDelegation: VerificationMethodValidator.array().optional(),\n publicKey: VerificationMethodValidator.array().optional(),\n service: ServiceValidator.array().optional(),\n proof: ProofValidator.or(ProofValidator.array()).optional(),\n })\n .catchall(z.any());\nexport type DidDocument = z.infer<typeof DidDocumentValidator>;\n", "import { z } from 'zod';\n\nexport const JWKValidator = z.object({\n kty: z.string(),\n crv: z.string(),\n x: z.string(),\n y: z.string().optional(),\n n: z.string().optional(),\n d: z.string().optional(),\n});\nexport type JWK = z.infer<typeof JWKValidator>;\n\nexport const JWKWithPrivateKeyValidator = JWKValidator.omit({ d: true }).extend({ d: z.string() });\nexport type JWKWithPrivateKey = z.infer<typeof JWKWithPrivateKeyValidator>;\n\nexport const JWERecipientHeaderValidator = z.object({\n alg: z.string(),\n iv: z.string(),\n tag: z.string(),\n epk: JWKValidator.partial().optional(),\n kid: z.string().optional(),\n apv: z.string().optional(),\n apu: z.string().optional(),\n});\nexport type JWERecipientHeader = z.infer<typeof JWERecipientHeaderValidator>;\n\nexport const JWERecipientValidator = z.object({\n header: JWERecipientHeaderValidator,\n encrypted_key: z.string(),\n});\nexport type JWERecipient = z.infer<typeof JWERecipientValidator>;\n\nexport const JWEValidator = z.object({\n protected: z.string(),\n iv: z.string(),\n ciphertext: z.string(),\n tag: z.string(),\n aad: z.string().optional(),\n recipients: JWERecipientValidator.array().optional(),\n});\nexport type JWE = z.infer<typeof JWEValidator>;\n", "import { z } from 'zod';\nimport {\n UnsignedVCValidator,\n ProofValidator,\n ProfileValidator,\n ImageValidator,\n IdentifierEntryValidator,\n} from './vc';\n\nexport const AlignmentTargetTypeValidator = z\n .enum([\n 'ceasn:Competency',\n 'ceterms:Credential',\n 'CFItem',\n 'CFRubric',\n 'CFRubricCriterion',\n 'CFRubricCriterionLevel',\n 'CTDL',\n ])\n .or(z.string());\nexport type AlignmentTargetType = z.infer<typeof AlignmentTargetTypeValidator>;\n\nexport const AlignmentValidator = z.object({\n type: z.string().array().nonempty(),\n targetCode: z.string().optional(),\n targetDescription: z.string().optional(),\n targetName: z.string(),\n targetFramework: z.string().optional(),\n targetType: AlignmentTargetTypeValidator.optional(),\n targetUrl: z.string(),\n});\nexport type Alignment = z.infer<typeof AlignmentValidator>;\n\nexport const KnownAchievementTypeValidator = z.enum([\n 'Achievement',\n 'ApprenticeshipCertificate',\n 'Assessment',\n 'Assignment',\n 'AssociateDegree',\n 'Award',\n 'Badge',\n 'BachelorDegree',\n 'Certificate',\n 'CertificateOfCompletion',\n 'Certification',\n 'CommunityService',\n 'Competency',\n 'Course',\n 'CoCurricular',\n 'Degree',\n 'Diploma',\n 'DoctoralDegree',\n 'Fieldwork',\n 'GeneralEducationDevelopment',\n 'JourneymanCertificate',\n 'LearningProgram',\n 'License',\n 'Membership',\n 'ProfessionalDoctorate',\n 'QualityAssuranceCredential',\n 'MasterCertificate',\n 'MasterDegree',\n 'MicroCredential',\n 'ResearchDoctorate',\n 'SecondarySchoolDiploma',\n]);\nexport type KnownAchievementType = z.infer<typeof KnownAchievementTypeValidator>;\n\nexport const AchievementTypeValidator = KnownAchievementTypeValidator.or(z.string());\nexport type AchievementType = z.infer<typeof AchievementTypeValidator>;\n\nexport const CriteriaValidator = z\n .object({ id: z.string().optional(), narrative: z.string().optional() })\n .catchall(z.any());\nexport type Criteria = z.infer<typeof CriteriaValidator>;\n\nexport const EndorsementSubjectValidator = z.object({\n id: z.string(),\n type: z.string().array().nonempty(),\n endorsementComment: z.string().optional(),\n});\nexport type EndorsementSubject = z.infer<typeof EndorsementSubjectValidator>;\n\nexport const EndorsementCredentialValidator = UnsignedVCValidator.extend({\n credentialSubject: EndorsementSubjectValidator,\n proof: ProofValidator.or(ProofValidator.array()).optional(),\n});\nexport type EndorsementCredential = z.infer<typeof EndorsementCredentialValidator>;\n\nexport const RelatedValidator = z.object({\n id: z.string(),\n '@language': z.string().optional(),\n version: z.string().optional(),\n});\nexport type Related = z.infer<typeof RelatedValidator>;\n\nexport const ResultTypeValidator = z\n .enum([\n 'GradePointAverage',\n 'LetterGrade',\n 'Percent',\n 'PerformanceLevel',\n 'PredictedScore',\n 'RawScore',\n 'Result',\n 'RubricCriterion',\n 'RubricCriterionLevel',\n 'RubricScore',\n 'ScaledScore',\n 'Status',\n ])\n .or(z.string());\nexport type ResultType = z.infer<typeof ResultTypeValidator>;\n\nexport const RubricCriterionValidator = z\n .object({\n id: z.string(),\n type: z.string().array().nonempty(),\n alignment: AlignmentValidator.array().optional(),\n description: z.string().optional(),\n level: z.string().optional(),\n name: z.string(),\n points: z.string().optional(),\n })\n .catchall(z.any());\nexport type RubricCriterion = z.infer<typeof RubricCriterionValidator>;\n\nexport const ResultDescriptionValidator = z\n .object({\n id: z.string(),\n type: z.string().array().nonempty(),\n alignment: AlignmentValidator.array().optional(),\n allowedValue: z.string().array().optional(),\n name: z.string(),\n requiredLevel: z.string().optional(),\n requiredValue: z.string().optional(),\n resultType: ResultTypeValidator,\n rubricCriterionLevel: RubricCriterionValidator.array().optional(),\n valueMax: z.string().optional(),\n valueMin: z.string().optional(),\n })\n .catchall(z.any());\nexport type ResultDescription = z.infer<typeof ResultDescriptionValidator>;\n\nexport const EvidenceValidator = z\n .object({\n id: z.string().optional(),\n type: z.array(z.string()).nonempty(),\n name: z.string().optional(),\n narrative: z.string().optional(),\n description: z.string().optional(),\n genre: z.string().optional(),\n audience: z.string().optional(),\n })\n .catchall(z.any());\n\nexport type Evidence = z.infer<typeof EvidenceValidator>;\n\nexport const AchievementValidator = z\n .object({\n id: z.string().optional(),\n type: z.array(z.string()).nonempty(),\n alignment: AlignmentValidator.array().optional(),\n achievementType: AchievementTypeValidator.optional(),\n creator: ProfileValidator.optional(),\n creditsAvailable: z.number().optional(),\n criteria: CriteriaValidator,\n description: z.string(),\n endorsement: EndorsementCredentialValidator.array().optional(),\n fieldOfStudy: z.string().optional(),\n humanCode: z.string().optional(),\n image: ImageValidator.optional(),\n '@language': z.string().optional(),\n name: z.string(),\n otherIdentifier: IdentifierEntryValidator.array().optional(),\n related: RelatedValidator.array().optional(),\n resultDescription: ResultDescriptionValidator.array().optional(),\n specialization: z.string().optional(),\n tag: z.array(z.string()).optional(),\n version: z.string().optional(),\n })\n .catchall(z.any());\nexport type Achievement = z.infer<typeof AchievementValidator>;\n\nexport const IdentityObjectValidator = z.object({\n type: z.string(),\n hashed: z.boolean(),\n identityHash: z.string(),\n identityType: z.string(),\n salt: z.string().optional(),\n});\nexport type IdentityObject = z.infer<typeof IdentityObjectValidator>;\n\nexport const ResultStatusTypeValidator = z.enum([\n 'Completed',\n 'Enrolled',\n 'Failed',\n 'InProgress',\n 'OnHold',\n 'Withdrew',\n]);\nexport type ResultStatusType = z.infer<typeof ResultStatusTypeValidator>;\n\nexport const ResultValidator = z\n .object({\n type: z.string().array().nonempty(),\n achievedLevel: z.string().optional(),\n alignment: AlignmentValidator.array().optional(),\n resultDescription: z.string().optional(),\n status: ResultStatusTypeValidator.optional(),\n value: z.string().optional(),\n })\n .catchall(z.any());\nexport type Result = z.infer<typeof ResultValidator>;\n\nexport const AchievementSubjectValidator = z\n .object({\n id: z.string().optional(),\n type: z.string().array().nonempty(),\n activityEndDate: z.string().optional(),\n activityStartDate: z.string().optional(),\n creditsEarned: z.number().optional(),\n achievement: AchievementValidator.optional(),\n identifier: IdentityObjectValidator.array().optional(),\n image: ImageValidator.optional(),\n licenseNumber: z.string().optional(),\n narrative: z.string().optional(),\n result: ResultValidator.array().optional(),\n role: z.string().optional(),\n source: ProfileValidator.optional(),\n term: z.string().optional(),\n })\n .catchall(z.any());\nexport type AchievementSubject = z.infer<typeof AchievementSubjectValidator>;\n\nexport const UnsignedAchievementCredentialValidator = UnsignedVCValidator.extend({\n name: z.string().optional(),\n description: z.string().optional(),\n image: ImageValidator.optional(),\n credentialSubject: AchievementSubjectValidator.or(\n AchievementSubjectValidator.array()\n ) as z.ZodUnion<\n [typeof AchievementSubjectValidator, z.ZodArray<typeof AchievementSubjectValidator>]\n >,\n endorsement: UnsignedVCValidator.array().optional(),\n});\nexport type UnsignedAchievementCredential = z.infer<typeof UnsignedAchievementCredentialValidator>;\n\nexport const AchievementCredentialValidator = UnsignedAchievementCredentialValidator.extend({\n proof: ProofValidator.or(ProofValidator.array()),\n});\nexport type AchievementCredential = z.infer<typeof AchievementCredentialValidator>;\n", "import { z } from 'zod';\nimport { CredentialSubjectValidator, ProfileValidator } from './vc';\n\nexport const VerificationCheckValidator = z.object({\n checks: z.string().array(),\n warnings: z.string().array(),\n errors: z.string().array(),\n});\nexport type VerificationCheck = z.infer<typeof VerificationCheckValidator>;\n\nexport const VerificationStatusValidator = z.enum(['Success', 'Failed', 'Error']);\nexport type VerificationStatus = z.infer<typeof VerificationStatusValidator>;\nexport const VerificationStatusEnum = VerificationStatusValidator.enum;\n\nexport const VerificationItemValidator = z.object({\n check: z.string(),\n status: VerificationStatusValidator,\n message: z.string().optional(),\n details: z.string().optional(),\n});\nexport type VerificationItem = z.infer<typeof VerificationItemValidator>;\n\nexport const CredentialInfoValidator = z.object({\n title: z.string().optional(),\n createdAt: z.string().optional(),\n issuer: ProfileValidator.optional(),\n issuee: ProfileValidator.optional(),\n credentialSubject: CredentialSubjectValidator.optional(),\n});\nexport type CredentialInfo = z.infer<typeof CredentialInfoValidator>;\n\nexport type CredentialRecord<Metadata extends Record<string, any> = Record<never, never>> = {\n id: string;\n uri: string;\n [key: string]: any;\n} & Metadata;\n\nexport const CredentialRecordValidator = z\n .object({ id: z.string(), uri: z.string() })\n .catchall(z.any()) satisfies z.ZodType<CredentialRecord>;\n", "import { z } from 'zod';\n\nimport { PaginationResponseValidator } from './mongo';\nimport { JWEValidator } from './crypto';\n\nexport const EncryptedRecordValidator = z\n .object({ encryptedRecord: JWEValidator, fields: z.string().array() })\n .catchall(z.any());\nexport type EncryptedRecord = z.infer<typeof EncryptedRecordValidator>;\n\nexport const PaginatedEncryptedRecordsValidator = PaginationResponseValidator.extend({\n records: EncryptedRecordValidator.array(),\n});\nexport type PaginatedEncryptedRecordsType = z.infer<typeof PaginatedEncryptedRecordsValidator>;\n\nexport const EncryptedCredentialRecordValidator = EncryptedRecordValidator.extend({\n id: z.string(),\n});\nexport type EncryptedCredentialRecord = z.infer<typeof EncryptedCredentialRecordValidator>;\n\nexport const PaginatedEncryptedCredentialRecordsValidator = PaginationResponseValidator.extend({\n records: EncryptedCredentialRecordValidator.array(),\n});\nexport type PaginatedEncryptedCredentialRecordsType = z.infer<\n typeof PaginatedEncryptedCredentialRecordsValidator\n>;\n", "import { z } from 'zod';\n\nexport const PaginationOptionsValidator = z.object({\n limit: z.number(),\n cursor: z.string().optional(),\n sort: z.string().optional(),\n});\nexport type PaginationOptionsType = z.infer<typeof PaginationOptionsValidator>;\n\nexport const PaginationResponseValidator = z.object({\n cursor: z.string().optional(),\n hasMore: z.boolean(),\n});\nexport type PaginationResponseType = z.infer<typeof PaginationResponseValidator>;\n", "import type {} from 'zod-openapi';\nimport { z } from 'zod';\n\nimport { PaginationResponseValidator } from './mongo';\nimport { StringQuery } from './queries';\nimport { UnsignedVCValidator, VCValidator, VPValidator } from './vc';\n\nexport const LCNProfileDisplayValidator = z.object({\n backgroundColor: z.string().optional(),\n backgroundImage: z.string().optional(),\n fadeBackgroundImage: z.boolean().optional(),\n repeatBackgroundImage: z.boolean().optional(),\n fontColor: z.string().optional(),\n accentColor: z.string().optional(),\n accentFontColor: z.string().optional(),\n idBackgroundImage: z.string().optional(),\n fadeIdBackgroundImage: z.boolean().optional(),\n idBackgroundColor: z.string().optional(),\n repeatIdBackgroundImage: z.boolean().optional(),\n});\nexport type LCNProfileDisplay = z.infer<typeof LCNProfileDisplayValidator>;\n\nexport const LCNProfileValidator = z.object({\n profileId: z.string().min(3).max(40).describe('Unique, URL-safe identifier for the profile.'),\n displayName: z.string().default('').describe('Human-readable display name for the profile.'),\n shortBio: z.string().default('').describe('Short bio for the profile.'),\n bio: z.string().default('').describe('Longer bio for the profile.'),\n did: z.string().describe('Decentralized Identifier for the profile. (auto-assigned)'),\n isPrivate: z\n .boolean()\n .optional()\n .describe('Whether the profile is private or not and shows up in search results.'),\n email: z.string().optional().describe('Contact email address for the profile. (deprecated)'),\n image: z.string().optional().describe('Profile image URL for the profile.'),\n heroImage: z.string().optional().describe('Hero image URL for the profile.'),\n websiteLink: z.string().optional().describe('Website link for the profile.'),\n isServiceProfile: z\n .boolean()\n .default(false)\n .optional()\n .describe('Whether the profile is a service profile or not.'),\n type: z.string().optional().describe('Profile type: e.g. \"person\", \"organization\", \"service\".'),\n notificationsWebhook: z\n .string()\n .url()\n .startsWith('http')\n .optional()\n .describe('URL to send notifications to.'),\n display: LCNProfileDisplayValidator.optional().describe('Display settings for the profile.'),\n highlightedCredentials: z\n .array(z.string())\n .max(5)\n .optional()\n .describe('Up to 5 unique boost URIs to highlight on the profile.'),\n role: z\n .string()\n .default('')\n .optional()\n .describe('Role of the profile: e.g. \"teacher\", \"student\".'),\n dob: z\n .string()\n .default('')\n .optional()\n .describe('Date of birth of the profile: e.g. \"1990-01-01\".'),\n country: z.string().optional().describe('Country for the profile.'),\n approved: z.boolean().optional().describe('Approval status for the profile.'),\n});\nexport type LCNProfile = z.infer<typeof LCNProfileValidator>;\n\nexport const LCNProfileQueryValidator = z\n .object({\n profileId: StringQuery,\n displayName: StringQuery,\n shortBio: StringQuery,\n bio: StringQuery,\n email: StringQuery,\n websiteLink: StringQuery,\n isServiceProfile: z.boolean(),\n type: StringQuery,\n })\n .partial();\nexport type LCNProfileQuery = z.infer<typeof LCNProfileQueryValidator>;\n\nexport const PaginatedLCNProfilesValidator = PaginationResponseValidator.extend({\n records: LCNProfileValidator.array(),\n});\nexport type PaginatedLCNProfiles = z.infer<typeof PaginatedLCNProfilesValidator>;\n\nexport const LCNProfileConnectionStatusEnum = z.enum([\n 'CONNECTED',\n 'PENDING_REQUEST_SENT',\n 'PENDING_REQUEST_RECEIVED',\n 'NOT_CONNECTED',\n]);\nexport type LCNProfileConnectionStatusEnum = z.infer<typeof LCNProfileConnectionStatusEnum>;\n\nexport const LCNProfileManagerValidator = z.object({\n id: z.string(),\n created: z.string(),\n displayName: z.string().default('').optional(),\n shortBio: z.string().default('').optional(),\n bio: z.string().default('').optional(),\n email: z.string().optional(),\n image: z.string().optional(),\n heroImage: z.string().optional(),\n});\nexport type LCNProfileManager = z.infer<typeof LCNProfileManagerValidator>;\n\nexport const PaginatedLCNProfileManagersValidator = PaginationResponseValidator.extend({\n records: LCNProfileManagerValidator.extend({ did: z.string() }).array(),\n});\nexport type PaginatedLCNProfileManagers = z.infer<typeof PaginatedLCNProfileManagersValidator>;\n\nexport const LCNProfileManagerQueryValidator = z\n .object({\n id: StringQuery,\n displayName: StringQuery,\n shortBio: StringQuery,\n bio: StringQuery,\n email: StringQuery,\n })\n .partial();\nexport type LCNProfileManagerQuery = z.infer<typeof LCNProfileManagerQueryValidator>;\n\nexport const PaginatedLCNProfilesAndManagersValidator = PaginationResponseValidator.extend({\n records: z\n .object({\n profile: LCNProfileValidator,\n manager: LCNProfileManagerValidator.extend({ did: z.string() }).optional(),\n })\n .array(),\n});\nexport type PaginatedLCNProfilesAndManagers = z.infer<\n typeof PaginatedLCNProfilesAndManagersValidator\n>;\n\nexport const SentCredentialInfoValidator = z.object({\n uri: z.string(),\n to: z.string(),\n from: z.string(),\n sent: z.iso.datetime(),\n received: z.iso.datetime().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\nexport type SentCredentialInfo = z.infer<typeof SentCredentialInfoValidator>;\n\nexport const BoostPermissionsValidator = z.object({\n role: z.string(),\n canView: z.boolean().default(true),\n canEdit: z.boolean(),\n canIssue: z.boolean(),\n canRevoke: z.boolean(),\n canManagePermissions: z.boolean(),\n canIssueChildren: z.string(),\n canCreateChildren: z.string(),\n canEditChildren: z.string(),\n canRevokeChildren: z.string(),\n canManageChildrenPermissions: z.string(),\n canManageChildrenProfiles: z.boolean().optional(),\n canViewAnalytics: z.boolean(),\n});\nexport type BoostPermissions = z.infer<typeof BoostPermissionsValidator>;\n\nexport const BoostPermissionsQueryValidator = z\n .object({\n role: StringQuery,\n canView: z.boolean(),\n canEdit: z.boolean(),\n canIssue: z.boolean(),\n canRevoke: z.boolean(),\n canManagePermissions: z.boolean(),\n canIssueChildren: StringQuery,\n canCreateChildren: StringQuery,\n canEditChildren: StringQuery,\n canRevokeChildren: StringQuery,\n canManageChildrenPermissions: StringQuery,\n canManageChildrenProfiles: z.boolean(),\n canViewAnalytics: z.boolean(),\n })\n .partial();\nexport type BoostPermissionsQuery = z.infer<typeof BoostPermissionsQueryValidator>;\n\nexport const ClaimHookTypeValidator = z.enum(['GRANT_PERMISSIONS', 'ADD_ADMIN', 'AUTO_CONNECT']);\nexport type ClaimHookType = z.infer<typeof ClaimHookTypeValidator>;\n\nexport const ClaimHookValidator = z.discriminatedUnion('type', [\n z.object({\n type: z.literal(ClaimHookTypeValidator.enum.GRANT_PERMISSIONS),\n data: z.object({\n claimUri: z.string(),\n targetUri: z.string(),\n permissions: BoostPermissionsValidator.partial(),\n }),\n }),\n z.object({\n type: z.literal(ClaimHookTypeValidator.enum.ADD_ADMIN),\n data: z.object({ claimUri: z.string(), targetUri: z.string() }),\n }),\n z.object({\n type: z.literal(ClaimHookTypeValidator.enum.AUTO_CONNECT),\n data: z.object({ claimUri: z.string(), targetUri: z.string() }),\n }),\n]);\nexport type ClaimHook = z.infer<typeof ClaimHookValidator>;\n\nexport const ClaimHookQueryValidator = z.object({\n type: StringQuery,\n data: z\n .object({\n claimUri: StringQuery,\n targetUri: StringQuery,\n permissions: BoostPermissionsQueryValidator.partial(),\n })\n .partial(),\n});\nexport type ClaimHookQuery = z.infer<typeof ClaimHookQueryValidator>;\n\nexport const FullClaimHookValidator = z\n .object({ id: z.string(), createdAt: z.string(), updatedAt: z.string() })\n .and(ClaimHookValidator);\nexport type FullClaimHook = z.infer<typeof FullClaimHookValidator>;\n\nexport const PaginatedClaimHooksValidator = PaginationResponseValidator.extend({\n records: FullClaimHookValidator.array(),\n});\nexport type PaginatedClaimHooksType = z.infer<typeof PaginatedClaimHooksValidator>;\n\n/**\n * Status states for Boosts that control what actions can be performed.\n *\n * - **DRAFT**: Work in progress. Can edit all fields, but cannot send or generate claim links.\n * - **PROVISIONAL**: Active but iterating. Can both edit all fields AND send/issue credentials. Ideal for testing in production or soft launches.\n * - **LIVE**: Official/finalized. Can only edit meta and defaultPermissions. Core properties are locked for consistency.\n *\n * @example\n * ```typescript\n * // Create a provisional boost for testing\n * const boostUri = await learnCard.invoke.createBoost(credential, {\n * status: 'PROVISIONAL',\n * });\n * ```\n */\nexport const LCNBoostStatus = z.enum(['DRAFT', 'PROVISIONAL', 'LIVE']);\nexport type LCNBoostStatusEnum = z.infer<typeof LCNBoostStatus>;\n\nexport const BoostValidator = z.object({\n uri: z.string(),\n name: z.string().optional(),\n type: z.string().optional(),\n category: z.string().optional(),\n status: LCNBoostStatus.optional(),\n autoConnectRecipients: z.boolean().optional(),\n meta: z.record(z.string(), z.any()).optional(),\n claimPermissions: BoostPermissionsValidator.optional(),\n defaultPermissions: BoostPermissionsValidator.optional(),\n allowAnyoneToCreateChildren: z.boolean().optional(),\n});\nexport type Boost = z.infer<typeof BoostValidator>;\n\nconst BaseBoostQueryValidator = z\n .object({\n uri: StringQuery,\n name: StringQuery,\n type: StringQuery,\n category: StringQuery,\n meta: z.record(z.string(), StringQuery),\n status: LCNBoostStatus.or(z.object({ $in: LCNBoostStatus.array() })),\n autoConnectRecipients: z.boolean(),\n })\n .partial();\n\nexport const BoostQueryValidator = z.union([\n z.object({\n $or: BaseBoostQueryValidator.array(),\n }),\n BaseBoostQueryValidator,\n]);\nexport type BoostQuery = z.infer<typeof BoostQueryValidator>;\n\nexport const PaginatedBoostsValidator = PaginationResponseValidator.extend({\n records: BoostValidator.array(),\n});\nexport type PaginatedBoostsType = z.infer<typeof PaginatedBoostsValidator>;\n\nexport const BoostRecipientValidator = z.object({\n to: LCNProfileValidator,\n from: z.string(),\n received: z.string().optional(),\n uri: z.string().optional(),\n});\nexport type BoostRecipientInfo = z.infer<typeof BoostRecipientValidator>;\n\nexport const PaginatedBoostRecipientsValidator = PaginationResponseValidator.extend({\n records: BoostRecipientValidator.array(),\n});\nexport type PaginatedBoostRecipientsType = z.infer<typeof PaginatedBoostRecipientsValidator>;\n\nexport const BoostRecipientWithChildrenValidator = z.object({\n to: LCNProfileValidator,\n from: z.string(),\n received: z.string().optional(),\n boostUris: z.array(z.string()),\n credentialUris: z.array(z.string()).optional(),\n});\nexport type BoostRecipientWithChildrenInfo = z.infer<typeof BoostRecipientWithChildrenValidator>;\n\nexport const PaginatedBoostRecipientsWithChildrenValidator = PaginationResponseValidator.extend({\n records: BoostRecipientWithChildrenValidator.array(),\n});\nexport type PaginatedBoostRecipientsWithChildrenType = z.infer<\n typeof PaginatedBoostRecipientsWithChildrenValidator\n>;\n\nexport const LCNBoostClaimLinkSigningAuthorityValidator = z.object({\n endpoint: z.string(),\n name: z.string(),\n did: z.string().optional(),\n});\nexport type LCNBoostClaimLinkSigningAuthorityType = z.infer<\n typeof LCNBoostClaimLinkSigningAuthorityValidator\n>;\n\nexport const LCNBoostClaimLinkOptionsValidator = z.object({\n ttlSeconds: z.number().optional(),\n totalUses: z.number().optional(),\n});\nexport type LCNBoostClaimLinkOptionsType = z.infer<typeof LCNBoostClaimLinkOptionsValidator>;\n\nexport const LCNSigningAuthorityValidator = z.object({\n endpoint: z.string(),\n});\nexport type LCNSigningAuthorityType = z.infer<typeof LCNSigningAuthorityValidator>;\n\nexport const LCNSigningAuthorityForUserValidator = z.object({\n signingAuthority: LCNSigningAuthorityValidator,\n relationship: z.object({\n name: z\n .string()\n .max(15)\n .regex(/^[a-z0-9-]+$/, {\n message:\n 'The input string must contain only lowercase letters, numbers, and hyphens.',\n }),\n did: z.string(),\n isPrimary: z.boolean().optional(),\n }),\n});\nexport type LCNSigningAuthorityForUserType = z.infer<typeof LCNSigningAuthorityForUserValidator>;\n\nexport const AutoBoostConfigValidator = z.object({\n boostUri: z.string(),\n signingAuthority: z.object({\n endpoint: z.string(),\n name: z.string(),\n }),\n});\nexport type AutoBoostConfig = z.infer<typeof AutoBoostConfigValidator>;\n\nconst SendBoostTemplateValidator = BoostValidator.partial()\n .omit({ uri: true, claimPermissions: true })\n .extend({\n credential: VCValidator.or(UnsignedVCValidator),\n claimPermissions: BoostPermissionsValidator.partial().optional(),\n skills: z\n .array(\n z.object({\n frameworkId: z.string(),\n id: z.string(),\n proficiencyLevel: z.number().optional(),\n })\n )\n .min(1)\n .optional(),\n });\n\n// Branding options for email/SMS delivery (used when recipient is email/phone)\nexport const SendBrandingOptionsValidator = z.object({\n issuerName: z.string().optional().describe('Name of the issuing organization'),\n issuerLogoUrl: z.string().url().optional().describe('Logo URL of the issuing organization'),\n credentialName: z.string().optional().describe('Display name for the credential'),\n recipientName: z.string().optional().describe('Name of the recipient for personalization'),\n});\nexport type SendBrandingOptions = z.infer<typeof SendBrandingOptionsValidator>;\n\n// Options for send method (applies when recipient is email/phone, routes to Universal Inbox)\nexport const SendOptionsValidator = z.object({\n webhookUrl: z.string().url().optional().describe('Webhook URL to receive claim notifications'),\n suppressDelivery: z\n .boolean()\n .optional()\n .describe('If true, returns claimUrl without sending email/SMS'),\n branding: SendBrandingOptionsValidator.optional().describe('Branding for email/SMS delivery'),\n});\nexport type SendOptions = z.infer<typeof SendOptionsValidator>;\n\n// Route-level validator (TRPC requires ZodObject, not discriminatedUnion)\nexport const SendBoostInputValidator = z\n .object({\n type: z.literal('boost'),\n recipient: z.string().describe('Profile ID, DID, email, or phone number (auto-detected)'),\n contractUri: z.string().optional(),\n templateUri: z.string().optional(),\n template: SendBoostTemplateValidator.optional(),\n signedCredential: VCValidator.optional(),\n options: SendOptionsValidator.optional().describe(\n 'Options for email/phone recipients (Universal Inbox)'\n ),\n templateData: z.record(z.string(), z.unknown()).optional(),\n integrationId: z.string().optional().describe('Integration ID for activity tracking'),\n })\n .refine(data => data.templateUri || data.template, {\n message: 'Either templateUri or template creation data must be provided.',\n path: ['templateUri'],\n });\nexport type SendBoostInput = z.infer<typeof SendBoostInputValidator>;\n\n// Inbox-specific response fields (only present when sent via email/phone)\nexport const SendInboxResponseValidator = z.object({\n issuanceId: z.string(),\n status: z.enum(['PENDING', 'ISSUED', 'EXPIRED', 'DELIVERED', 'CLAIMED']),\n claimUrl: z.string().url().optional().describe('Present when suppressDelivery=true'),\n});\nexport type SendInboxResponse = z.infer<typeof SendInboxResponseValidator>;\n\nexport const SendBoostResponseValidator = z.object({\n type: z.literal('boost'),\n credentialUri: z.string(),\n uri: z.string(),\n activityId: z.string().describe('Links to the activity lifecycle for this issuance'),\n inbox: SendInboxResponseValidator.optional().describe(\n 'Present when sent via email/phone (Universal Inbox)'\n ),\n});\nexport type SendBoostResponse = z.infer<typeof SendBoostResponseValidator>;\n\n// Plugin-level discriminated union (for extensibility)\nexport const SendInputValidator = z.discriminatedUnion('type', [SendBoostInputValidator]);\nexport type SendInput = z.infer<typeof SendInputValidator>;\n\nexport const SendResponseValidator = z.discriminatedUnion('type', [SendBoostResponseValidator]);\nexport type SendResponse = z.infer<typeof SendResponseValidator>;\n\nexport const ConsentFlowTermsStatusValidator = z.enum(['live', 'stale', 'withdrawn']);\nexport type ConsentFlowTermsStatus = z.infer<typeof ConsentFlowTermsStatusValidator>;\n\nexport const ConsentFlowContractValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n categories: z\n .record(\n z.string(),\n z.object({\n required: z.boolean(),\n defaultEnabled: z.boolean().optional(),\n })\n )\n .default({}),\n })\n .prefault({ categories: {} }),\n personal: z\n .record(\n z.string(),\n z.object({ required: z.boolean(), defaultEnabled: z.boolean().optional() })\n )\n .default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n write: z\n .object({\n credentials: z\n .object({\n categories: z\n .record(\n z.string(),\n z.object({\n required: z.boolean(),\n defaultEnabled: z.boolean().optional(),\n })\n )\n .default({}),\n })\n .prefault({ categories: {} }),\n personal: z\n .record(\n z.string(),\n z.object({ required: z.boolean(), defaultEnabled: z.boolean().optional() })\n )\n .default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n});\nexport type ConsentFlowContract = z.infer<typeof ConsentFlowContractValidator>;\nexport type ConsentFlowContractInput = z.input<typeof ConsentFlowContractValidator>;\n\nexport const ConsentFlowContractDetailsValidator = z.object({\n contract: ConsentFlowContractValidator,\n owner: LCNProfileValidator,\n name: z.string(),\n subtitle: z.string().optional(),\n description: z.string().optional(),\n reasonForAccessing: z.string().optional(),\n image: z.string().optional(),\n uri: z.string(),\n needsGuardianConsent: z.boolean().optional(),\n redirectUrl: z.string().optional(),\n frontDoorBoostUri: z.string().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n expiresAt: z.string().optional(),\n autoBoosts: z.string().array().optional(),\n writers: z.array(LCNProfileValidator).optional(),\n});\nexport type ConsentFlowContractDetails = z.infer<typeof ConsentFlowContractDetailsValidator>;\nexport type ConsentFlowContractDetailsInput = z.input<typeof ConsentFlowContractDetailsValidator>;\n\nexport const PaginatedConsentFlowContractsValidator = PaginationResponseValidator.extend({\n records: ConsentFlowContractDetailsValidator.omit({ owner: true }).array(),\n});\nexport type PaginatedConsentFlowContracts = z.infer<typeof PaginatedConsentFlowContractsValidator>;\n\nexport const ConsentFlowContractDataValidator = z.object({\n credentials: z.object({ categories: z.record(z.string(), z.string().array()).default({}) }),\n personal: z.record(z.string(), z.string()).default({}),\n date: z.string(),\n});\nexport type ConsentFlowContractData = z.infer<typeof ConsentFlowContractDataValidator>;\n\nexport const PaginatedConsentFlowDataValidator = PaginationResponseValidator.extend({\n records: ConsentFlowContractDataValidator.array(),\n});\nexport type PaginatedConsentFlowData = z.infer<typeof PaginatedConsentFlowDataValidator>;\n\nexport const ConsentFlowContractDataForDidValidator = z.object({\n credentials: z.object({ category: z.string(), uri: z.string() }).array(),\n personal: z.record(z.string(), z.string()).default({}),\n date: z.string(),\n contractUri: z.string(),\n});\nexport type ConsentFlowContractDataForDid = z.infer<typeof ConsentFlowContractDataForDidValidator>;\n\nexport const PaginatedConsentFlowDataForDidValidator = PaginationResponseValidator.extend({\n records: ConsentFlowContractDataForDidValidator.array(),\n});\nexport type PaginatedConsentFlowDataForDid = z.infer<\n typeof PaginatedConsentFlowDataForDidValidator\n>;\n\nexport const ConsentFlowTermValidator = z.object({\n sharing: z.boolean().optional(),\n shared: z.string().array().optional(),\n shareAll: z.boolean().optional(),\n shareUntil: z.string().optional(),\n});\nexport type ConsentFlowTerm = z.infer<typeof ConsentFlowTermValidator>;\n\nexport const ConsentFlowTermsValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n shareAll: z.boolean().optional(),\n sharing: z.boolean().optional(),\n categories: z.record(z.string(), ConsentFlowTermValidator).default({}),\n })\n .prefault({ categories: {} }),\n personal: z.record(z.string(), z.string()).default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n write: z\n .object({\n credentials: z\n .object({ categories: z.record(z.string(), z.boolean()).default({}) })\n .prefault({ categories: {} }),\n personal: z.record(z.string(), z.boolean()).default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n deniedWriters: z.array(z.string()).optional(),\n});\nexport type ConsentFlowTerms = z.infer<typeof ConsentFlowTermsValidator>;\nexport type ConsentFlowTermsInput = z.input<typeof ConsentFlowTermsValidator>;\nexport const PaginatedConsentFlowTermsValidator = PaginationResponseValidator.extend({\n records: z\n .object({\n expiresAt: z.string().optional(),\n oneTime: z.boolean().optional(),\n terms: ConsentFlowTermsValidator,\n contract: ConsentFlowContractDetailsValidator,\n uri: z.string(),\n consenter: LCNProfileValidator,\n status: ConsentFlowTermsStatusValidator,\n })\n .array(),\n});\nexport type PaginatedConsentFlowTerms = z.infer<typeof PaginatedConsentFlowTermsValidator>;\n\nexport const ConsentFlowContractQueryValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n categories: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n personal: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n write: z\n .object({\n credentials: z\n .object({\n categories: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n personal: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n});\nexport type ConsentFlowContractQuery = z.infer<typeof ConsentFlowContractQueryValidator>;\nexport type ConsentFlowContractQueryInput = z.input<typeof ConsentFlowContractQueryValidator>;\n\nexport const ConsentFlowDataQueryValidator = z.object({\n anonymize: z.boolean().optional(),\n credentials: z.object({ categories: z.record(z.string(), z.boolean()).optional() }).optional(),\n personal: z.record(z.string(), z.boolean()).optional(),\n});\nexport type ConsentFlowDataQuery = z.infer<typeof ConsentFlowDataQueryValidator>;\nexport type ConsentFlowDataQueryInput = z.input<typeof ConsentFlowDataQueryValidator>;\n\nexport const ConsentFlowDataForDidQueryValidator = z.object({\n credentials: z.object({ categories: z.record(z.string(), z.boolean()).optional() }).optional(),\n personal: z.record(z.string(), z.boolean()).optional(),\n id: StringQuery.optional(),\n});\nexport type ConsentFlowDataForDidQuery = z.infer<typeof ConsentFlowDataForDidQueryValidator>;\nexport type ConsentFlowDataForDidQueryInput = z.input<typeof ConsentFlowDataForDidQueryValidator>;\n\nexport const ConsentFlowTermsQueryValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n shareAll: z.boolean().optional(),\n sharing: z.boolean().optional(),\n categories: z\n .record(z.string(), ConsentFlowTermValidator.optional())\n .optional(),\n })\n .optional(),\n personal: z.record(z.string(), z.string()).optional(),\n })\n .optional(),\n write: z\n .object({\n credentials: z\n .object({ categories: z.record(z.string(), z.boolean()).optional() })\n .optional(),\n personal: z.record(z.string(), z.boolean()).optional(),\n })\n .optional(),\n});\nexport type ConsentFlowTermsQuery = z.infer<typeof ConsentFlowTermsQueryValidator>;\nexport type ConsentFlowTermsQueryInput = z.input<typeof ConsentFlowTermsQueryValidator>;\n\nexport const ConsentFlowTransactionActionValidator = z.enum([\n 'consent',\n 'update',\n 'sync',\n 'withdraw',\n 'write',\n]);\nexport type ConsentFlowTransactionAction = z.infer<typeof ConsentFlowTransactionActionValidator>;\n\nexport const ConsentFlowTransactionsQueryValidator = z.object({\n terms: ConsentFlowTermsQueryValidator.optional(),\n action: ConsentFlowTransactionActionValidator.or(\n ConsentFlowTransactionActionValidator.array()\n ).optional(),\n date: z\n .object({ $gt: z.string() })\n .or(z.object({ $lt: z.string() }))\n .or(z.object({ $eq: z.string() }))\n .optional(),\n expiresAt: z\n .object({ $gt: z.string() })\n .or(z.object({ $lt: z.string() }))\n .or(z.object({ $eq: z.string() }))\n .optional(),\n oneTime: z.boolean().optional(),\n});\nexport type ConsentFlowTransactionsQuery = z.infer<typeof ConsentFlowTransactionsQueryValidator>;\nexport type ConsentFlowTransactionsQueryInput = z.input<\n typeof ConsentFlowTransactionsQueryValidator\n>;\n\nexport const ConsentFlowTransactionValidator = z.object({\n expiresAt: z.string().optional(),\n oneTime: z.boolean().optional(),\n terms: ConsentFlowTermsValidator.optional(),\n id: z.string(),\n action: ConsentFlowTransactionActionValidator,\n date: z.string(),\n uris: z.string().array().optional(),\n});\nexport type ConsentFlowTransaction = z.infer<typeof ConsentFlowTransactionValidator>;\n\nexport const PaginatedConsentFlowTransactionsValidator = PaginationResponseValidator.extend({\n records: ConsentFlowTransactionValidator.array(),\n});\nexport type PaginatedConsentFlowTransactions = z.infer<\n typeof PaginatedConsentFlowTransactionsValidator\n>;\n\n// Skill Frameworks: Query + Paginated types\nconst BaseSkillFrameworkQueryValidator = z\n .object({\n id: StringQuery,\n name: StringQuery,\n description: StringQuery,\n sourceURI: StringQuery,\n status: StringQuery,\n })\n .partial();\n\nexport const SkillFrameworkQueryValidator = z.union([\n z.object({ $or: BaseSkillFrameworkQueryValidator.array() }),\n BaseSkillFrameworkQueryValidator,\n]);\nexport type SkillFrameworkQuery = z.infer<typeof SkillFrameworkQueryValidator>;\n\n// moved below SkillFrameworkValidator\n\nexport const ContractCredentialValidator = z.object({\n credentialUri: z.string(),\n termsUri: z.string(),\n contractUri: z.string(),\n boostUri: z.string(),\n category: z.string().optional(),\n date: z.string(),\n});\nexport type ContractCredential = z.infer<typeof ContractCredentialValidator>;\n\nexport const PaginatedContractCredentialsValidator = PaginationResponseValidator.extend({\n records: ContractCredentialValidator.array(),\n});\nexport type PaginatedContractCredentials = z.infer<typeof PaginatedContractCredentialsValidator>;\n\nexport const LCNNotificationTypeEnumValidator = z.enum([\n 'CONNECTION_REQUEST',\n 'CONNECTION_REQUEST_EXPIRED_INVITE',\n 'CONNECTION_ACCEPTED',\n 'CREDENTIAL_RECEIVED',\n 'CREDENTIAL_ACCEPTED',\n 'BOOST_RECEIVED',\n 'BOOST_ACCEPTED',\n 'PRESENTATION_REQUEST',\n 'PRESENTATION_RECEIVED',\n 'CONSENT_FLOW_TRANSACTION',\n 'ISSUANCE_CLAIMED',\n 'ISSUANCE_DELIVERED',\n 'ISSUANCE_ERROR',\n 'PROFILE_PARENT_APPROVED',\n 'APP_LISTING_SUBMITTED',\n 'APP_LISTING_APPROVED',\n 'APP_LISTING_REJECTED',\n]);\n\nexport type LCNNotificationTypeEnum = z.infer<typeof LCNNotificationTypeEnumValidator>;\n\nexport const LCNNotificationMessageValidator = z.object({\n title: z.string().optional(),\n body: z.string().optional(),\n});\n\nexport type LCNNotificationMessage = z.infer<typeof LCNNotificationMessageValidator>;\n\nexport const LCNInboxContactMethodValidator = z.object({\n type: z.string(),\n value: z.string(),\n});\n\nexport type LCNInboxContactMethod = z.infer<typeof LCNInboxContactMethodValidator>;\n\nexport const LCNInboxStatusEnumValidator = z.enum([\n 'PENDING',\n 'ISSUED',\n 'EXPIRED',\n /* DEPRECATED \u2014 use ISSUED */ 'DELIVERED',\n /* DEPRECATED \u2014 use ISSUED */ 'CLAIMED',\n]);\nexport type LCNInboxStatusEnum = z.infer<typeof LCNInboxStatusEnumValidator>;\n\nexport const LCNNotificationInboxValidator = z.object({\n issuanceId: z.string(),\n status: LCNInboxStatusEnumValidator,\n recipient: z.object({\n contactMethod: LCNInboxContactMethodValidator.optional(),\n learnCardId: z.string().optional(),\n }),\n timestamp: z.iso.datetime().optional(),\n});\n\nexport type LCNNotificationInbox = z.infer<typeof LCNNotificationInboxValidator>;\n\nexport const LCNNotificationDataValidator = z\n .object({\n vcUris: z.array(z.string()).optional(),\n vpUris: z.array(z.string()).optional(),\n transaction: ConsentFlowTransactionValidator.optional(),\n inbox: LCNNotificationInboxValidator.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .loose();\nexport type LCNNotificationData = z.infer<typeof LCNNotificationDataValidator>;\n\nexport const LCNNotificationValidator = z.object({\n type: LCNNotificationTypeEnumValidator,\n to: LCNProfileValidator.partial().and(z.object({ did: z.string() })),\n from: LCNProfileValidator.partial().and(z.object({ did: z.string() })),\n message: LCNNotificationMessageValidator.optional(),\n data: LCNNotificationDataValidator.optional(),\n sent: z.iso.datetime().optional(),\n webhookUrl: z.string().optional(),\n});\n\nexport type LCNNotification = z.infer<typeof LCNNotificationValidator>;\n\nexport const AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX = 'auth-grant:';\n\nexport const AuthGrantValidator = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n challenge: z\n .string()\n .startsWith(AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX)\n .min(10, { message: 'Challenge is too short' })\n .max(100, { message: 'Challenge is too long' }),\n status: z.enum(['revoked', 'active'], {\n error: issue => {\n if (issue.code === 'invalid_value') return 'Status must be either active or revoked';\n return 'Status is required';\n },\n }),\n scope: z.string(),\n createdAt: z.iso.datetime({ error: 'createdAt must be a valid ISO 8601 datetime string' }),\n expiresAt: z.iso\n .datetime({ error: 'expiresAt must be a valid ISO 8601 datetime string' })\n .nullish()\n .optional(),\n});\nexport type AuthGrantType = z.infer<typeof AuthGrantValidator>;\n\nexport const FlatAuthGrantValidator = z.object({ id: z.string() }).catchall(z.any());\nexport type FlatAuthGrantType = z.infer<typeof FlatAuthGrantValidator>;\n\nexport const AuthGrantStatusValidator = z.enum(['active', 'revoked']);\n\nexport type AuthGrantStatus = z.infer<typeof AuthGrantStatusValidator>;\n\nexport const AuthGrantQueryValidator = z\n .object({\n id: StringQuery,\n name: StringQuery,\n description: StringQuery,\n status: AuthGrantStatusValidator,\n })\n .partial();\n\nexport type AuthGrantQuery = z.infer<typeof AuthGrantQueryValidator>;\n\n// Contact Methods\nconst contactMethodBase = z.object({\n id: z.string(),\n isVerified: z.boolean(),\n verifiedAt: z.string().optional(),\n isPrimary: z.boolean(),\n createdAt: z.string(),\n});\n\nexport const ContactMethodValidator = z.discriminatedUnion('type', [\n z\n .object({\n type: z.literal('email'),\n value: z.string().email(),\n })\n .merge(contactMethodBase),\n z\n .object({\n type: z.literal('phone'),\n value: z.string(), // Can be improved with a regex later\n })\n .merge(contactMethodBase),\n]);\n\nexport type ContactMethodType = z.infer<typeof ContactMethodValidator>;\n\nconst createContactMethodBase = z.object({\n isVerified: z.boolean().optional(),\n isPrimary: z.boolean().optional(),\n});\n\nexport const ContactMethodCreateValidator = z.discriminatedUnion('type', [\n z\n .object({\n type: z.literal('email'),\n value: z.string().email(),\n })\n .merge(createContactMethodBase),\n z\n .object({\n type: z.literal('phone'),\n value: z.string(),\n })\n .merge(createContactMethodBase),\n]);\n\nexport type ContactMethodCreateType = z.infer<typeof ContactMethodCreateValidator>;\n\nexport const ContactMethodQueryValidator = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('email'),\n value: z.string().email(),\n }),\n z.object({\n type: z.literal('phone'),\n value: z.string(),\n }),\n]);\n\nexport type ContactMethodQueryType = z.infer<typeof ContactMethodQueryValidator>;\n\nexport const ContactMethodVerificationRequestValidator = z.object({\n value: z.string(),\n type: z.enum(['email', 'phone']),\n});\n\nexport type ContactMethodVerificationRequestType = z.infer<\n typeof ContactMethodVerificationRequestValidator\n>;\n\nexport const ContactMethodVerificationValidator = z.object({\n token: z.string(),\n});\n\nexport type ContactMethodVerificationType = z.infer<typeof ContactMethodVerificationValidator>;\n\nexport const SetPrimaryContactMethodValidator = z.object({\n contactMethodId: z.string(),\n});\n\nexport type SetPrimaryContactMethodType = z.infer<typeof SetPrimaryContactMethodValidator>;\n\n// Create Inbox Claim Session for a Contact Method\nexport const CreateContactMethodSessionValidator = z.object({\n contactMethod: ContactMethodVerificationRequestValidator,\n otpChallenge: z.string(),\n});\n\nexport type CreateContactMethodSessionType = z.infer<typeof CreateContactMethodSessionValidator>;\n\nexport const CreateContactMethodSessionResponseValidator = z.object({\n sessionJwt: z.string(),\n});\n\nexport type CreateContactMethodSessionResponseType = z.infer<\n typeof CreateContactMethodSessionResponseValidator\n>;\n\n// Inbox Credentials\nexport const InboxCredentialValidator = z.object({\n id: z.string(),\n credential: z.string(),\n isSigned: z.boolean(),\n currentStatus: LCNInboxStatusEnumValidator,\n isAccepted: z.boolean().optional(),\n expiresAt: z.string(),\n createdAt: z.string(),\n issuerDid: z.string(),\n webhookUrl: z.string().optional(),\n boostUri: z.string().optional(),\n activityId: z.string().optional(),\n signingAuthority: z\n .object({\n endpoint: z.string().optional(),\n name: z.string().optional(),\n })\n .optional(),\n});\n\nexport type InboxCredentialType = z.infer<typeof InboxCredentialValidator>;\n\nexport const PaginatedInboxCredentialsValidator = z.object({\n hasMore: z.boolean(),\n records: z.array(InboxCredentialValidator),\n cursor: z.string().optional(),\n});\n\nexport type PaginatedInboxCredentialsType = z.infer<typeof PaginatedInboxCredentialsValidator>;\n\nexport const InboxCredentialQueryValidator = z\n .object({\n currentStatus: LCNInboxStatusEnumValidator,\n id: z.string(),\n isSigned: z.boolean(),\n isAccepted: z.boolean().optional(),\n issuerDid: z.string(),\n boostUri: z.string(),\n })\n .partial();\n\nexport type InboxCredentialQuery = z.infer<typeof InboxCredentialQueryValidator>;\n\nexport const IssueInboxSigningAuthorityValidator = z.object({\n endpoint: z.string().url(),\n name: z.string(),\n});\n\nexport type IssueInboxSigningAuthority = z.infer<typeof IssueInboxSigningAuthorityValidator>;\n\nexport const IssueInboxCredentialValidator = z\n .object({\n // === CORE DATA (Required) ===\n // WHAT is being sent and WHO is it for?\n recipient: ContactMethodQueryValidator.describe('The recipient of the credential'),\n\n // Either credential OR templateUri must be provided\n credential: VCValidator.or(VPValidator)\n .or(UnsignedVCValidator)\n .optional()\n .describe(\n 'The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration.'\n ),\n templateUri: z\n .string()\n .optional()\n .describe(\n 'URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field.'\n ),\n\n // === OPTIONAL FEATURES ===\n // Add major, distinct features at the top level.\n //consentRequest: ConsentRequestValidator.optional(),\n\n // === PROCESS CONFIGURATION (Optional) ===\n // HOW should this issuance be handled?\n configuration: z\n .object({\n signingAuthority: IssueInboxSigningAuthorityValidator.optional().describe(\n 'The signing authority to use for the credential. If not provided, the users default signing authority will be used if the credential is not signed.'\n ),\n webhookUrl: z\n .string()\n .url()\n .optional()\n .describe('The webhook URL to receive credential issuance events.'),\n expiresInDays: z\n .number()\n .min(1)\n .max(365)\n .optional()\n .describe('The number of days the credential will be valid for.'),\n templateData: z\n .record(z.string(), z.unknown())\n .optional()\n .describe(\n 'Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided.'\n ),\n // --- For User-Facing Delivery (Email/SMS) ---\n delivery: z\n .object({\n suppress: z\n .boolean()\n .optional()\n .default(false)\n .describe(\n 'Whether to suppress delivery of the credential to the recipient. If true, the email/sms will not be sent to the recipient. Useful if you would like to manually send claim link to your users.'\n ),\n template: z\n .object({\n id: z\n .enum(['universal-inbox-claim'])\n .optional()\n .describe(\n 'The template ID to use for the credential delivery. If not provided, the default template will be used.'\n ),\n model: z\n .object({\n issuer: z\n .object({\n name: z\n .string()\n .optional()\n .describe(\n 'The name of the organization (e.g., \"State University\").'\n ),\n logoUrl: z\n .string()\n .url()\n .optional()\n .describe(\n \"The URL of the organization's logo.\"\n ),\n })\n .optional(),\n credential: z\n .object({\n name: z\n .string()\n .optional()\n .describe(\n 'The name of the credential (e.g., \"Bachelor of Science\").'\n ),\n type: z\n .string()\n .optional()\n .describe(\n 'The type of the credential (e.g., \"degree\", \"certificate\").'\n ),\n })\n .optional(),\n recipient: z\n .object({\n name: z\n .string()\n .optional()\n .describe(\n 'The name of the recipient (e.g., \"John Doe\").'\n ),\n })\n .optional(),\n })\n .describe(\n 'The template model to use for the credential delivery. Injects via template variables into email/sms templates. If not provided, the default template will be used.'\n ),\n })\n .optional()\n .describe(\n 'The template to use for the credential delivery. If not provided, the default template will be used.'\n ),\n })\n .optional()\n .describe(\n 'Configuration for the credential delivery i.e. email or SMS. When credentials are sent to a user who has a verified email or phone associated with their account, delivery is skipped, and the credential will be sent using in-app notifications. If not provided, the default configuration will be used.'\n ),\n })\n .optional()\n .describe(\n 'Configuration for the credential issuance. If not provided, the default configuration will be used.'\n ),\n })\n .refine(data => data.credential || data.templateUri, {\n message: 'Either credential or templateUri must be provided.',\n path: ['credential'],\n });\n\nexport type IssueInboxCredentialType = z.infer<typeof IssueInboxCredentialValidator>;\n\nexport const IssueInboxCredentialResponseValidator = z.object({\n issuanceId: z.string(),\n status: LCNInboxStatusEnumValidator,\n recipient: ContactMethodQueryValidator,\n claimUrl: z.string().url().optional(),\n recipientDid: z.string().optional(),\n});\n\nexport type IssueInboxCredentialResponseType = z.infer<\n typeof IssueInboxCredentialResponseValidator\n>;\n\nexport const ClaimInboxCredentialValidator = z.object({\n credential: VCValidator.or(VPValidator)\n .or(UnsignedVCValidator)\n .describe('The credential to issue.'),\n configuration: z\n .object({\n publishableKey: z.string(),\n signingAuthorityName: z.string().optional(),\n listingId: z.string().optional(),\n listingSlug: z.string().optional(),\n })\n .optional(),\n});\n\nexport type ClaimInboxCredentialType = z.infer<typeof ClaimInboxCredentialValidator>;\n\n// Integrations\nexport const LCNDomainOrOriginValidator = z.union([\n z\n .string()\n .regex(\n /^(?:(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}|localhost|\\d{1,3}(?:\\.\\d{1,3}){3})(?::\\d{1,5})?$/,\n {\n message:\n 'Must be a valid domain (incl. subdomains), localhost, or IPv4, optionally with port',\n }\n ),\n z\n .string()\n .regex(\n /^https?:\\/\\/(?:(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}|localhost|\\d{1,3}(?:\\.\\d{1,3}){3})(?::\\d{1,5})?$/,\n { message: 'Must be a valid http(s) origin' }\n ),\n]);\n\nexport const LCNIntegrationStatusEnum = z.enum(['setup', 'active', 'paused']);\nexport type LCNIntegrationStatus = z.infer<typeof LCNIntegrationStatusEnum>;\n\nexport const LCNIntegrationValidator = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n publishableKey: z.string(),\n whitelistedDomains: z.array(LCNDomainOrOriginValidator).default([]),\n\n // Setup/onboarding status\n status: LCNIntegrationStatusEnum.default('setup'),\n guideType: z.string().optional(),\n guideState: z.record(z.string(), z.any()).optional(),\n\n // Timestamps\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type LCNIntegration = z.infer<typeof LCNIntegrationValidator>;\n\nexport const LCNIntegrationCreateValidator = z.object({\n name: z.string(),\n description: z.string().optional(),\n whitelistedDomains: z.array(LCNDomainOrOriginValidator).default([]),\n guideType: z.string().optional(),\n});\n\nexport type LCNIntegrationCreateType = z.infer<typeof LCNIntegrationCreateValidator>;\n\nexport const LCNIntegrationUpdateValidator = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n whitelistedDomains: z.array(LCNDomainOrOriginValidator).optional(),\n rotatePublishableKey: z.boolean().optional(),\n\n // Setup/onboarding updates\n status: LCNIntegrationStatusEnum.optional(),\n guideType: z.string().optional(),\n guideState: z.record(z.string(), z.any()).optional(),\n});\n\nexport type LCNIntegrationUpdateType = z.infer<typeof LCNIntegrationUpdateValidator>;\n\nexport const LCNIntegrationQueryValidator = z\n .object({\n id: StringQuery,\n name: StringQuery,\n description: StringQuery,\n status: StringQuery,\n guideType: StringQuery,\n })\n .partial();\n\nexport type LCNIntegrationQueryType = z.infer<typeof LCNIntegrationQueryValidator>;\n\nexport const PaginatedLCNIntegrationsValidator = PaginationResponseValidator.extend({\n records: LCNIntegrationValidator.array(),\n});\n\nexport type PaginatedLCNIntegrationsType = z.infer<typeof PaginatedLCNIntegrationsValidator>;\n\nexport const ClaimTokenValidator = z.object({\n token: z.string(),\n contactMethodId: z.string(),\n autoVerifyContactMethod: z.boolean().optional().default(false),\n createdAt: z.string(),\n expiresAt: z.string(),\n used: z.boolean(),\n});\n\nexport type ClaimTokenType = z.infer<typeof ClaimTokenValidator>;\n\nexport const TagValidator = z.object({\n id: z.string(),\n name: z.string().min(1),\n slug: z.string().min(1),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type TagType = z.infer<typeof TagValidator>;\n\nexport const SkillStatusEnum = z.enum(['active', 'archived']);\nexport type SkillStatus = z.infer<typeof SkillStatusEnum>;\n\nexport const SkillValidator = z.object({\n id: z.string(),\n statement: z.string(),\n description: z.string().optional(),\n code: z.string().optional(),\n icon: z.string().optional(),\n type: z.string().default('skill'),\n status: SkillStatusEnum.default('active'),\n frameworkId: z.string().optional(),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type SkillType = z.infer<typeof SkillValidator>;\n\nconst BaseSkillQueryValidator = z\n .object({\n id: StringQuery,\n statement: StringQuery,\n description: StringQuery,\n code: StringQuery,\n type: StringQuery,\n status: SkillStatusEnum.or(z.object({ $in: SkillStatusEnum.array() })),\n })\n .partial();\n\nexport const SkillQueryValidator = z.union([\n z.object({\n $or: BaseSkillQueryValidator.array(),\n }),\n BaseSkillQueryValidator,\n]);\n\nexport type SkillQuery = z.infer<typeof SkillQueryValidator>;\n\nexport const SkillSemanticSearchInputValidator = z.object({\n text: z.string().min(1),\n frameworkId: z.string().optional(),\n limit: z.number().int().min(1).max(200).default(50),\n});\n\nexport type SkillSemanticSearchInput = z.infer<typeof SkillSemanticSearchInputValidator>;\n\nexport const SkillSemanticSearchResultItemValidator = SkillValidator.extend({\n score: z.number(),\n});\n\nexport type SkillSemanticSearchResultItem = z.infer<typeof SkillSemanticSearchResultItemValidator>;\n\nexport const SkillSemanticSearchResultValidator = z.object({\n records: SkillSemanticSearchResultItemValidator.array(),\n});\n\nexport type SkillSemanticSearchResult = z.infer<typeof SkillSemanticSearchResultValidator>;\n\nexport const SkillFrameworkStatusEnum = z.enum(['active', 'archived']);\nexport type SkillFrameworkStatus = z.infer<typeof SkillFrameworkStatusEnum>;\n\nexport const SkillFrameworkValidator = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n image: z.string().optional(),\n sourceURI: z.string().url().optional(),\n isPublic: z.boolean().default(false),\n status: SkillFrameworkStatusEnum.default('active'),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type SkillFrameworkType = z.infer<typeof SkillFrameworkValidator>;\n\nexport const PaginatedSkillFrameworksValidator = PaginationResponseValidator.extend({\n records: SkillFrameworkValidator.array(),\n});\nexport type PaginatedSkillFrameworksType = z.infer<typeof PaginatedSkillFrameworksValidator>;\n\nexport type SkillTreeNode = SkillType & {\n children: SkillTreeNode[];\n hasChildren: boolean;\n childrenCursor?: string | null;\n};\n\nexport const SkillTreeNodeValidator: z.ZodType<SkillTreeNode> = SkillValidator.extend({\n children: z.array(z.lazy(() => SkillTreeNodeValidator)),\n hasChildren: z.boolean(),\n childrenCursor: z.string().nullable().optional(),\n});\n\nexport const PaginatedSkillTreeValidator = z.object({\n hasMore: z.boolean(),\n cursor: z.string().nullable(),\n records: z.array(SkillTreeNodeValidator),\n});\n\nexport type PaginatedSkillTree = z.infer<typeof PaginatedSkillTreeValidator>;\n\nexport interface SkillTreeInput {\n id?: string;\n statement: string;\n description?: string;\n code?: string;\n icon?: string;\n type?: string;\n status?: 'active' | 'archived';\n children?: SkillTreeInput[];\n}\n\nexport const SkillTreeNodeInputValidator: z.ZodType<SkillTreeInput> = z.lazy(() =>\n z.object({\n id: z.string().optional(),\n statement: z.string(),\n description: z.string().optional(),\n code: z.string().optional(),\n icon: z.string().optional(),\n type: z.string().optional(),\n status: SkillStatusEnum.optional(),\n children: z.array(SkillTreeNodeInputValidator).optional(),\n })\n);\n\nexport const LinkProviderFrameworkInputValidator = z.object({\n frameworkId: z.string(),\n});\n\nexport type LinkProviderFrameworkInputType = z.infer<typeof LinkProviderFrameworkInputValidator>;\n\nexport const CreateManagedFrameworkInputValidator = z.object({\n id: z.string().optional(),\n name: z.string().min(1),\n description: z.string().optional(),\n image: z.string().optional(),\n sourceURI: z.string().url().optional(),\n isPublic: z.boolean().optional(),\n status: SkillFrameworkStatusEnum.optional(),\n skills: z.array(SkillTreeNodeInputValidator).optional(),\n boostUris: z.array(z.string()).optional(),\n});\n\nexport type CreateManagedFrameworkInputType = z.infer<typeof CreateManagedFrameworkInputValidator>;\n\n// Back-compat alias for plugin naming\nexport type CreateManagedSkillFrameworkInput = CreateManagedFrameworkInputType;\n\nexport const UpdateFrameworkInputValidator = z\n .object({\n id: z.string(),\n name: z.string().min(1).optional(),\n description: z.string().optional(),\n image: z.string().optional(),\n sourceURI: z.string().url().optional(),\n isPublic: z.boolean().optional(),\n status: SkillFrameworkStatusEnum.optional(),\n })\n .refine(\n data =>\n data.name !== undefined ||\n data.description !== undefined ||\n data.image !== undefined ||\n data.sourceURI !== undefined ||\n data.isPublic !== undefined ||\n data.status !== undefined,\n {\n message: 'At least one field must be provided to update',\n path: ['name'],\n }\n );\n\nexport type UpdateFrameworkInputType = z.infer<typeof UpdateFrameworkInputValidator>;\n\n// Back-compat alias for plugin naming\nexport type UpdateSkillFrameworkInput = UpdateFrameworkInputType;\n\nexport const DeleteFrameworkInputValidator = z.object({ id: z.string() });\n\nexport type DeleteFrameworkInputType = z.infer<typeof DeleteFrameworkInputValidator>;\n\n// Back-compat alias for plugin naming\nexport type DeleteSkillFrameworkInput = DeleteFrameworkInputType;\n\nexport const CreateManagedFrameworkBatchInputValidator = z.object({\n frameworks: z\n .array(\n CreateManagedFrameworkInputValidator.extend({\n skills: z.array(SkillTreeNodeInputValidator).optional(),\n })\n )\n .min(1),\n});\n\nexport type CreateManagedFrameworkBatchInputType = z.infer<\n typeof CreateManagedFrameworkBatchInputValidator\n>;\n\n// Back-compat alias for plugin naming\nexport type CreateManagedSkillFrameworkBatchInput = CreateManagedFrameworkBatchInputType;\n\nexport const SkillFrameworkAdminInputValidator = z.object({\n frameworkId: z.string(),\n profileId: z.string(),\n});\n\nexport type SkillFrameworkAdminInputType = z.infer<typeof SkillFrameworkAdminInputValidator>;\n\nexport const SkillFrameworkIdInputValidator = z.object({ frameworkId: z.string() });\n\nexport type SkillFrameworkIdInputType = z.infer<typeof SkillFrameworkIdInputValidator>;\n\nexport const SkillFrameworkAdminsValidator = LCNProfileValidator.array();\n\nexport type SkillFrameworkAdminsType = z.infer<typeof SkillFrameworkAdminsValidator>;\n\nexport const SyncFrameworkInputValidator = z.object({ id: z.string() });\n\nexport type SyncFrameworkInput = z.infer<typeof SyncFrameworkInputValidator>;\n\nexport const AddTagInputValidator = z.object({\n slug: z.string().min(1),\n name: z.string().min(1),\n});\n\nexport type AddTagInput = z.infer<typeof AddTagInputValidator>;\n\nexport const CreateSkillInputValidator = z.object({\n frameworkId: z.string(),\n skill: SkillTreeNodeInputValidator,\n parentId: z.string().nullable().optional(),\n});\n\nexport type CreateSkillInput = z.infer<typeof CreateSkillInputValidator>;\n\nexport const UpdateSkillInputValidator = z\n .object({\n frameworkId: z.string(),\n id: z.string(),\n statement: z.string().optional(),\n description: z.string().optional(),\n code: z.string().optional(),\n icon: z.string().optional(),\n type: z.string().optional(),\n status: SkillStatusEnum.optional(),\n })\n .refine(\n data =>\n data.statement !== undefined ||\n data.description !== undefined ||\n data.code !== undefined ||\n data.icon !== undefined ||\n data.type !== undefined ||\n data.status !== undefined,\n {\n message: 'At least one field must be provided to update a skill',\n path: ['statement'],\n }\n );\n\nexport type UpdateSkillInput = z.infer<typeof UpdateSkillInputValidator>;\n\nexport const SkillDeletionStrategyValidator = z.enum(['recursive', 'reparent']);\nexport type SkillDeletionStrategy = z.infer<typeof SkillDeletionStrategyValidator>;\n\nexport const DeleteSkillInputValidator = z.object({\n frameworkId: z.string(),\n id: z.string(),\n strategy: SkillDeletionStrategyValidator.optional().default('reparent'),\n});\n\nexport type DeleteSkillInput = z.infer<typeof DeleteSkillInputValidator>;\n\nexport const CreateSkillsBatchInputValidator = z.object({\n frameworkId: z.string(),\n skills: z.array(SkillTreeNodeInputValidator).min(1),\n parentId: z.string().nullable().optional(),\n});\n\nexport type CreateSkillsBatchInput = z.infer<typeof CreateSkillsBatchInputValidator>;\n\nexport const ReplaceSkillFrameworkSkillsInputValidator = z.object({\n frameworkId: z.string(),\n skills: z.array(SkillTreeNodeInputValidator).min(0),\n});\n\nexport type ReplaceSkillFrameworkSkillsInput = z.infer<\n typeof ReplaceSkillFrameworkSkillsInputValidator\n>;\n\nexport const ReplaceSkillFrameworkSkillsResultValidator = z.object({\n created: z.number().int().min(0),\n updated: z.number().int().min(0),\n deleted: z.number().int().min(0),\n unchanged: z.number().int().min(0),\n total: z.number().int().min(0),\n});\n\nexport type ReplaceSkillFrameworkSkillsResult = z.infer<\n typeof ReplaceSkillFrameworkSkillsResultValidator\n>;\n\nexport const CountSkillsInputValidator = z.object({\n frameworkId: z.string(),\n skillId: z.string().optional(),\n recursive: z.boolean().optional().default(false),\n onlyCountCompetencies: z.boolean().optional().default(false),\n});\n\nexport type CountSkillsInput = z.infer<typeof CountSkillsInputValidator>;\n\nexport const CountSkillsResultValidator = z.object({\n count: z.number().int().min(0),\n});\n\nexport type CountSkillsResult = z.infer<typeof CountSkillsResultValidator>;\n\nexport const GetFullSkillTreeInputValidator = z.object({\n frameworkId: z.string(),\n});\n\nexport type GetFullSkillTreeInput = z.infer<typeof GetFullSkillTreeInputValidator>;\n\nexport const GetFullSkillTreeResultValidator = z.object({\n skills: z.array(SkillTreeNodeValidator),\n});\n\nexport type GetFullSkillTreeResult = z.infer<typeof GetFullSkillTreeResultValidator>;\n\nexport const GetSkillPathInputValidator = z.object({\n frameworkId: z.string(),\n skillId: z.string(),\n});\n\nexport type GetSkillPathInput = z.infer<typeof GetSkillPathInputValidator>;\n\nexport const GetSkillPathResultValidator = z.object({\n path: z.array(SkillValidator),\n});\n\nexport type GetSkillPathResult = z.infer<typeof GetSkillPathResultValidator>;\n\n// Composite return shapes\nexport const FrameworkWithSkillsValidator = z.object({\n framework: SkillFrameworkValidator,\n skills: PaginatedSkillTreeValidator,\n});\n\nexport type FrameworkWithSkills = z.infer<typeof FrameworkWithSkillsValidator>;\n\n// Aliases used by the plugin type definitions\nexport type CreateSkillTreeInput = SkillTreeInput;\n\n// App Store Listing\nexport const AppListingStatusValidator = z.enum(['DRAFT', 'PENDING_REVIEW', 'LISTED', 'ARCHIVED']);\nexport type AppListingStatus = z.infer<typeof AppListingStatusValidator>;\n\nexport const LaunchTypeValidator = z.enum([\n 'EMBEDDED_IFRAME',\n 'SECOND_SCREEN',\n 'DIRECT_LINK',\n 'CONSENT_REDIRECT',\n 'SERVER_HEADLESS',\n 'AI_TUTOR',\n]);\nexport type LaunchType = z.infer<typeof LaunchTypeValidator>;\n\nexport const PromotionLevelValidator = z.enum([\n 'FEATURED_CAROUSEL',\n 'CURATED_LIST',\n 'STANDARD',\n 'DEMOTED',\n]);\nexport type PromotionLevel = z.infer<typeof PromotionLevelValidator>;\n\nexport const AgeRatingValidator = z.enum(['4+', '9+', '12+', '17+']);\nexport type AgeRating = z.infer<typeof AgeRatingValidator>;\n\nexport const AppStoreListingValidator = z.object({\n listing_id: z.string(),\n slug: z.string().optional(),\n display_name: z.string(),\n tagline: z.string(),\n full_description: z.string(),\n icon_url: z.string(),\n app_listing_status: AppListingStatusValidator,\n launch_type: LaunchTypeValidator,\n launch_config_json: z.string(),\n category: z.string().optional(),\n promo_video_url: z.string().optional(),\n promotion_level: PromotionLevelValidator.optional(),\n ios_app_store_id: z.string().optional(),\n android_app_store_id: z.string().optional(),\n privacy_policy_url: z.string().optional(),\n terms_url: z.string().optional(),\n highlights: z.array(z.string()).optional(),\n screenshots: z.array(z.string()).optional(),\n hero_background_color: z.string().optional(),\n min_age: z.number().int().min(0).max(18).optional(),\n age_rating: AgeRatingValidator.optional(),\n});\n\nexport type AppStoreListing = z.infer<typeof AppStoreListingValidator>;\n\nexport const AppStoreListingCreateValidator = AppStoreListingValidator.omit({\n listing_id: true,\n app_listing_status: true,\n promotion_level: true,\n});\n\nexport type AppStoreListingCreateType = z.infer<typeof AppStoreListingCreateValidator>;\n\nexport const AppStoreListingUpdateValidator = AppStoreListingValidator.partial().omit({\n listing_id: true,\n app_listing_status: true,\n promotion_level: true,\n});\n\nexport type AppStoreListingUpdateType = z.infer<typeof AppStoreListingUpdateValidator>;\n\nexport const InstalledAppValidator = AppStoreListingValidator.extend({\n installed_at: z.string(),\n});\n\nexport type InstalledApp = z.infer<typeof InstalledAppValidator>;\n\nexport const PaginatedAppStoreListingsValidator = PaginationResponseValidator.extend({\n records: AppStoreListingValidator.array(),\n});\n\nexport type PaginatedAppStoreListings = z.infer<typeof PaginatedAppStoreListingsValidator>;\n\nexport const PaginatedInstalledAppsValidator = PaginationResponseValidator.extend({\n records: InstalledAppValidator.array(),\n});\n\nexport type PaginatedInstalledApps = z.infer<typeof PaginatedInstalledAppsValidator>;\n\n// App Store Boost Association\nexport const AppBoostValidator = z.object({\n templateAlias: z\n .string()\n .min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/),\n boostUri: z.string(),\n});\n\nexport type AppBoost = z.infer<typeof AppBoostValidator>;\n\n// App Event Types (discriminated union for type safety)\nexport const SendCredentialEventValidator = z.object({\n type: z.literal('send-credential'),\n templateAlias: z.string(),\n templateData: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type SendCredentialEvent = z.infer<typeof SendCredentialEventValidator>;\n\n// Add new event types here as the union grows\nexport const AppEventValidator = z.discriminatedUnion('type', [SendCredentialEventValidator]);\n\nexport type AppEvent = z.infer<typeof AppEventValidator>;\n\n// Full input including listingId (used by brain service)\nexport const AppEventInputValidator = z.object({\n listingId: z.string(),\n event: AppEventValidator,\n});\n\nexport type AppEventInput = z.infer<typeof AppEventInputValidator>;\n\n// Response is generic since different events may return different data\nexport const AppEventResponseValidator = z.record(z.string(), z.unknown());\n\nexport type AppEventResponse = z.infer<typeof AppEventResponseValidator>;\n// Credential Activity\nexport const CredentialActivityEventTypeValidator = z.enum([\n 'CREATED',\n 'DELIVERED',\n 'CLAIMED',\n 'EXPIRED',\n 'FAILED',\n]);\nexport type CredentialActivityEventType = z.infer<typeof CredentialActivityEventTypeValidator>;\n\nexport const CredentialActivityRecipientTypeValidator = z.enum(['profile', 'email', 'phone']);\nexport type CredentialActivityRecipientType = z.infer<\n typeof CredentialActivityRecipientTypeValidator\n>;\n\nexport const CredentialActivitySourceTypeValidator = z.enum([\n 'send',\n 'sendBoost',\n 'sendCredential',\n 'contract',\n 'claim',\n 'inbox',\n 'claimLink',\n 'acceptCredential',\n 'appEvent',\n]);\nexport type CredentialActivitySourceType = z.infer<typeof CredentialActivitySourceTypeValidator>;\n\nexport const CredentialActivityValidator = z.object({\n id: z.string(),\n activityId: z.string(),\n eventType: CredentialActivityEventTypeValidator,\n timestamp: z.string(),\n actorProfileId: z.string(),\n recipientType: CredentialActivityRecipientTypeValidator,\n recipientIdentifier: z.string(),\n boostUri: z.string().optional(),\n credentialUri: z.string().optional(),\n inboxCredentialId: z.string().optional(),\n integrationId: z.string().optional(),\n source: CredentialActivitySourceTypeValidator,\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\nexport type CredentialActivityRecord = z.infer<typeof CredentialActivityValidator>;\n\nexport const CredentialActivityWithDetailsValidator = CredentialActivityValidator.extend({\n boost: z\n .object({\n id: z.string(),\n name: z.string().optional(),\n category: z.string().optional(),\n })\n .optional(),\n recipientProfile: z\n .object({\n profileId: z.string(),\n displayName: z.string().optional(),\n })\n .optional(),\n});\nexport type CredentialActivityWithDetails = z.infer<typeof CredentialActivityWithDetailsValidator>;\n\nexport const PaginatedCredentialActivitiesValidator = PaginationResponseValidator.extend({\n records: CredentialActivityWithDetailsValidator.array(),\n});\nexport type PaginatedCredentialActivities = z.infer<typeof PaginatedCredentialActivitiesValidator>;\n\nexport const CredentialActivityStatsValidator = z.object({\n total: z.number(),\n created: z.number(),\n delivered: z.number(),\n claimed: z.number(),\n expired: z.number(),\n failed: z.number(),\n claimRate: z.number(),\n});\nexport type CredentialActivityStats = z.infer<typeof CredentialActivityStatsValidator>;\n", "import { z } from 'zod';\n\n// Helper to extract flags and pattern from regex string\nconst parseRegexString = (regexStr: string) => {\n const match = regexStr.match(/^\\/(.*)\\/([gimsuy]*)$/);\n if (!match) throw new Error('Invalid RegExp string format');\n return { pattern: match[1], flags: match[2] };\n};\n\n// TRPC validator that converts Regex strings into RegExps\nconst RegExpStringValidator = z\n .string()\n .refine(\n str => {\n try {\n parseRegexString(str);\n return true;\n } catch {\n return false;\n }\n },\n {\n message: \"Invalid RegExp string format. Must be in format '/pattern/flags'\",\n }\n )\n .transform(str => {\n const { pattern, flags } = parseRegexString(str);\n\n try {\n return new RegExp(pattern, flags);\n } catch (error) {\n throw new Error(`Invalid RegExp: ${(error as Error).message}`);\n }\n })\n .meta({ override: { type: 'string' } });\n\nexport const RegExpValidator = z\n .instanceof(RegExp)\n .meta({ override: { type: 'string' } })\n .or(RegExpStringValidator)\n .meta({ override: { type: 'string' } });\n\nconst BaseStringQuery = z\n .string()\n .or(z.object({ $in: z.string().array() }))\n .or(z.object({ $regex: RegExpValidator.meta({ override: { type: 'string' } }) }));\n\nexport const StringQuery = z.union([\n BaseStringQuery,\n z.object({\n $or: BaseStringQuery.array(),\n }),\n]);\n"],
5
- "mappings": "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",
3
+ "sources": ["../src/vc.ts", "../src/did.ts", "../src/crypto.ts", "../src/obv3.ts", "../src/learncard.ts", "../src/learncloud.ts", "../src/mongo.ts", "../src/lcn.ts", "../src/queries.ts", "../src/auth.ts"],
4
+ "sourcesContent": ["import { z } from 'zod';\n\nexport const ContextValidator = z.array(z.string().or(z.record(z.string(), z.any())));\nexport type Context = z.infer<typeof ContextValidator>;\n\nexport const AchievementCriteriaValidator = z.object({\n type: z.string().optional(),\n narrative: z.string().optional(),\n});\nexport type AchievementCriteria = z.infer<typeof AchievementCriteriaValidator>;\n\nexport const ImageValidator = z.string().or(\n z.object({\n id: z.string(),\n type: z.string(),\n caption: z.string().optional(),\n })\n);\nexport type Image = z.infer<typeof ImageValidator>;\n\nexport const GeoCoordinatesValidator = z.object({\n type: z.string().min(1).or(z.string().array().nonempty()),\n latitude: z.number(),\n longitude: z.number(),\n});\nexport type GeoCoordinates = z.infer<typeof GeoCoordinatesValidator>;\n\nexport const AddressValidator = z.object({\n type: z.string().min(1).or(z.string().array().nonempty()),\n addressCountry: z.string().optional(),\n addressCountryCode: z.string().optional(),\n addressRegion: z.string().optional(),\n addressLocality: z.string().optional(),\n streetAddress: z.string().optional(),\n postOfficeBoxNumber: z.string().optional(),\n postalCode: z.string().optional(),\n geo: GeoCoordinatesValidator.optional(),\n});\nexport type Address = z.infer<typeof AddressValidator>;\n\nexport const IdentifierTypeValidator = z\n .enum([\n 'sourcedId',\n 'systemId',\n 'productId',\n 'userName',\n 'accountId',\n 'emailAddress',\n 'nationalIdentityNumber',\n 'isbn',\n 'issn',\n 'lisSourcedId',\n 'oneRosterSourcedId',\n 'sisSourcedId',\n 'ltiContextId',\n 'ltiDeploymentId',\n 'ltiToolId',\n 'ltiPlatformId',\n 'ltiUserId',\n 'identifier',\n ])\n .or(z.string());\nexport type IdentifierType = z.infer<typeof IdentifierTypeValidator>;\n\nexport const IdentifierEntryValidator = z.object({\n type: z.string().min(1).or(z.string().array().nonempty()),\n identifier: z.string(),\n identifierType: IdentifierTypeValidator,\n});\nexport type IdentifierEntry = z.infer<typeof IdentifierEntryValidator>;\n\nexport const ProfileValidator = z.string().or(\n z\n .object({\n id: z.string().optional(),\n type: z.string().or(z.string().array().nonempty().optional()),\n name: z.string().optional(),\n url: z.string().optional(),\n phone: z.string().optional(),\n description: z.string().optional(),\n endorsement: z.any().array().optional(), // Recursive type\n image: ImageValidator.optional(),\n email: z.string().email().optional(),\n address: AddressValidator.optional(),\n otherIdentifier: IdentifierEntryValidator.array().optional(),\n official: z.string().optional(),\n parentOrg: z.any().optional(), // Recursive types are annoying =(\n familyName: z.string().optional(),\n givenName: z.string().optional(),\n additionalName: z.string().optional(),\n patronymicName: z.string().optional(),\n honorificPrefix: z.string().optional(),\n honorificSuffix: z.string().optional(),\n familyNamePrefix: z.string().optional(),\n dateOfBirth: z.string().optional(),\n })\n .catchall(z.any())\n);\nexport type Profile = z.infer<typeof ProfileValidator>;\n\nexport const CredentialSubjectValidator = z.object({ id: z.string().optional() }).catchall(z.any());\nexport type CredentialSubject = z.infer<typeof CredentialSubjectValidator>;\n\nexport const CredentialStatusValidator = z\n .object({ type: z.string(), id: z.string() })\n .catchall(z.any());\nexport type CredentialStatus = z.infer<typeof CredentialStatusValidator>;\n\nexport const CredentialSchemaValidator = z\n .object({ id: z.string(), type: z.string() })\n .catchall(z.any());\nexport type CredentialSchema = z.infer<typeof CredentialSchemaValidator>;\n\nexport const RefreshServiceValidator = z\n .object({ id: z.string().optional(), type: z.string() })\n .catchall(z.any());\nexport type RefreshService = z.infer<typeof RefreshServiceValidator>;\n\nexport const TermsOfUseValidator = z\n .object({ type: z.string(), id: z.string().optional() })\n .catchall(z.any());\nexport type TermsOfUse = z.infer<typeof TermsOfUseValidator>;\n\nexport const VC2EvidenceValidator = z\n .object({\n id: z.string().optional(),\n type: z.array(z.string()).nonempty(),\n name: z.string().optional(),\n narrative: z.string().optional(),\n description: z.string().optional(),\n genre: z.string().optional(),\n audience: z.string().optional(),\n })\n .catchall(z.any());\nexport type VC2Evidence = z.infer<typeof VC2EvidenceValidator>;\n\nexport const UnsignedVCValidator = z\n .object({\n '@context': ContextValidator,\n id: z.string().optional(),\n type: z.string().array().nonempty(),\n issuer: ProfileValidator,\n credentialSubject: CredentialSubjectValidator.or(CredentialSubjectValidator.array()),\n refreshService: RefreshServiceValidator.or(RefreshServiceValidator.array()).optional(),\n credentialSchema: CredentialSchemaValidator.or(\n CredentialSchemaValidator.array()\n ).optional(),\n\n // V1\n issuanceDate: z.string().optional(),\n expirationDate: z.string().optional(),\n credentialStatus: CredentialStatusValidator.or(\n CredentialStatusValidator.array()\n ).optional(),\n\n // V2\n name: z.string().optional(),\n description: z.string().optional(),\n validFrom: z.string().optional(),\n validUntil: z.string().optional(),\n status: CredentialStatusValidator.or(CredentialStatusValidator.array()).optional(),\n termsOfUse: TermsOfUseValidator.or(TermsOfUseValidator.array()).optional(),\n evidence: z.union([VC2EvidenceValidator, z.array(VC2EvidenceValidator)]).optional(),\n })\n .catchall(z.any());\nexport type UnsignedVC = z.infer<typeof UnsignedVCValidator>;\n\nexport const ProofValidator = z\n .object({\n type: z.string(),\n created: z.string(),\n challenge: z.string().optional(),\n domain: z.string().optional(),\n nonce: z.string().optional(),\n proofPurpose: z.string(),\n verificationMethod: z.string(),\n jws: z.string().optional(),\n })\n .catchall(z.any());\nexport type Proof = z.infer<typeof ProofValidator>;\n\nexport const VCValidator = UnsignedVCValidator.extend({\n proof: ProofValidator.or(ProofValidator.array()),\n});\nexport type VC = z.infer<typeof VCValidator>;\n\nexport const UnsignedVPValidator = z\n .object({\n '@context': ContextValidator,\n id: z.string().optional(),\n type: z.string().or(z.string().array().nonempty()),\n verifiableCredential: VCValidator.or(VCValidator.array()).optional(),\n holder: z.string().optional(),\n })\n .catchall(z.any());\nexport type UnsignedVP = z.infer<typeof UnsignedVPValidator>;\n\nexport const VPValidator = UnsignedVPValidator.extend({\n proof: ProofValidator.or(ProofValidator.array()),\n});\nexport type VP = z.infer<typeof VPValidator>;\n", "import { z } from 'zod';\nimport { ContextValidator, ProofValidator } from './vc';\nimport { JWKValidator } from './crypto';\n\nexport const VerificationMethodValidator = z.string().or(\n z\n .object({\n '@context': ContextValidator.optional(),\n id: z.string(),\n type: z.string(),\n controller: z.string(),\n publicKeyJwk: JWKValidator.optional(),\n publicKeyBase58: z.string().optional(),\n publicKeyMultibase: z.string().optional(),\n blockChainAccountId: z.string().optional(),\n })\n .catchall(z.any())\n);\nexport type VerificationMethod = z.infer<typeof VerificationMethodValidator>;\n\nexport const ServiceValidator = z\n .object({\n id: z.string(),\n type: z.string().or(z.string().array().nonempty()),\n serviceEndpoint: z.any().or(z.any().array().nonempty()),\n })\n .catchall(z.any());\nexport type Service = z.infer<typeof ServiceValidator>;\n\nexport const DidDocumentValidator = z\n .object({\n '@context': ContextValidator,\n id: z.string(),\n alsoKnownAs: z.string().optional(),\n controller: z.string().or(z.string().array().nonempty()).optional(),\n verificationMethod: VerificationMethodValidator.array().optional(),\n authentication: VerificationMethodValidator.array().optional(),\n assertionMethod: VerificationMethodValidator.array().optional(),\n keyAgreement: VerificationMethodValidator.array().optional(),\n capabilityInvocation: VerificationMethodValidator.array().optional(),\n capabilityDelegation: VerificationMethodValidator.array().optional(),\n publicKey: VerificationMethodValidator.array().optional(),\n service: ServiceValidator.array().optional(),\n proof: ProofValidator.or(ProofValidator.array()).optional(),\n })\n .catchall(z.any());\nexport type DidDocument = z.infer<typeof DidDocumentValidator>;\n", "import { z } from 'zod';\n\nexport const JWKValidator = z.object({\n kty: z.string(),\n crv: z.string(),\n x: z.string(),\n y: z.string().optional(),\n n: z.string().optional(),\n d: z.string().optional(),\n});\nexport type JWK = z.infer<typeof JWKValidator>;\n\nexport const JWKWithPrivateKeyValidator = JWKValidator.omit({ d: true }).extend({ d: z.string() });\nexport type JWKWithPrivateKey = z.infer<typeof JWKWithPrivateKeyValidator>;\n\nexport const JWERecipientHeaderValidator = z.object({\n alg: z.string(),\n iv: z.string(),\n tag: z.string(),\n epk: JWKValidator.partial().optional(),\n kid: z.string().optional(),\n apv: z.string().optional(),\n apu: z.string().optional(),\n});\nexport type JWERecipientHeader = z.infer<typeof JWERecipientHeaderValidator>;\n\nexport const JWERecipientValidator = z.object({\n header: JWERecipientHeaderValidator,\n encrypted_key: z.string(),\n});\nexport type JWERecipient = z.infer<typeof JWERecipientValidator>;\n\nexport const JWEValidator = z.object({\n protected: z.string(),\n iv: z.string(),\n ciphertext: z.string(),\n tag: z.string(),\n aad: z.string().optional(),\n recipients: JWERecipientValidator.array().optional(),\n});\nexport type JWE = z.infer<typeof JWEValidator>;\n", "import { z } from 'zod';\nimport {\n UnsignedVCValidator,\n ProofValidator,\n ProfileValidator,\n ImageValidator,\n IdentifierEntryValidator,\n} from './vc';\n\nexport const AlignmentTargetTypeValidator = z\n .enum([\n 'ceasn:Competency',\n 'ceterms:Credential',\n 'CFItem',\n 'CFRubric',\n 'CFRubricCriterion',\n 'CFRubricCriterionLevel',\n 'CTDL',\n ])\n .or(z.string());\nexport type AlignmentTargetType = z.infer<typeof AlignmentTargetTypeValidator>;\n\nexport const AlignmentValidator = z.object({\n type: z.string().array().nonempty(),\n targetCode: z.string().optional(),\n targetDescription: z.string().optional(),\n targetName: z.string(),\n targetFramework: z.string().optional(),\n targetType: AlignmentTargetTypeValidator.optional(),\n targetUrl: z.string(),\n});\nexport type Alignment = z.infer<typeof AlignmentValidator>;\n\nexport const KnownAchievementTypeValidator = z.enum([\n 'Achievement',\n 'ApprenticeshipCertificate',\n 'Assessment',\n 'Assignment',\n 'AssociateDegree',\n 'Award',\n 'Badge',\n 'BachelorDegree',\n 'Certificate',\n 'CertificateOfCompletion',\n 'Certification',\n 'CommunityService',\n 'Competency',\n 'Course',\n 'CoCurricular',\n 'Degree',\n 'Diploma',\n 'DoctoralDegree',\n 'Fieldwork',\n 'GeneralEducationDevelopment',\n 'JourneymanCertificate',\n 'LearningProgram',\n 'License',\n 'Membership',\n 'ProfessionalDoctorate',\n 'QualityAssuranceCredential',\n 'MasterCertificate',\n 'MasterDegree',\n 'MicroCredential',\n 'ResearchDoctorate',\n 'SecondarySchoolDiploma',\n]);\nexport type KnownAchievementType = z.infer<typeof KnownAchievementTypeValidator>;\n\nexport const AchievementTypeValidator = KnownAchievementTypeValidator.or(z.string());\nexport type AchievementType = z.infer<typeof AchievementTypeValidator>;\n\nexport const CriteriaValidator = z\n .object({ id: z.string().optional(), narrative: z.string().optional() })\n .catchall(z.any());\nexport type Criteria = z.infer<typeof CriteriaValidator>;\n\nexport const EndorsementSubjectValidator = z.object({\n id: z.string(),\n type: z.string().array().nonempty(),\n endorsementComment: z.string().optional(),\n});\nexport type EndorsementSubject = z.infer<typeof EndorsementSubjectValidator>;\n\nexport const EndorsementCredentialValidator = UnsignedVCValidator.extend({\n credentialSubject: EndorsementSubjectValidator,\n proof: ProofValidator.or(ProofValidator.array()).optional(),\n});\nexport type EndorsementCredential = z.infer<typeof EndorsementCredentialValidator>;\n\nexport const RelatedValidator = z.object({\n id: z.string(),\n '@language': z.string().optional(),\n version: z.string().optional(),\n});\nexport type Related = z.infer<typeof RelatedValidator>;\n\nexport const ResultTypeValidator = z\n .enum([\n 'GradePointAverage',\n 'LetterGrade',\n 'Percent',\n 'PerformanceLevel',\n 'PredictedScore',\n 'RawScore',\n 'Result',\n 'RubricCriterion',\n 'RubricCriterionLevel',\n 'RubricScore',\n 'ScaledScore',\n 'Status',\n ])\n .or(z.string());\nexport type ResultType = z.infer<typeof ResultTypeValidator>;\n\nexport const RubricCriterionValidator = z\n .object({\n id: z.string(),\n type: z.string().array().nonempty(),\n alignment: AlignmentValidator.array().optional(),\n description: z.string().optional(),\n level: z.string().optional(),\n name: z.string(),\n points: z.string().optional(),\n })\n .catchall(z.any());\nexport type RubricCriterion = z.infer<typeof RubricCriterionValidator>;\n\nexport const ResultDescriptionValidator = z\n .object({\n id: z.string(),\n type: z.string().array().nonempty(),\n alignment: AlignmentValidator.array().optional(),\n allowedValue: z.string().array().optional(),\n name: z.string(),\n requiredLevel: z.string().optional(),\n requiredValue: z.string().optional(),\n resultType: ResultTypeValidator,\n rubricCriterionLevel: RubricCriterionValidator.array().optional(),\n valueMax: z.string().optional(),\n valueMin: z.string().optional(),\n })\n .catchall(z.any());\nexport type ResultDescription = z.infer<typeof ResultDescriptionValidator>;\n\nexport const EvidenceValidator = z\n .object({\n id: z.string().optional(),\n type: z.array(z.string()).nonempty(),\n name: z.string().optional(),\n narrative: z.string().optional(),\n description: z.string().optional(),\n genre: z.string().optional(),\n audience: z.string().optional(),\n })\n .catchall(z.any());\n\nexport type Evidence = z.infer<typeof EvidenceValidator>;\n\nexport const AchievementValidator = z\n .object({\n id: z.string().optional(),\n type: z.array(z.string()).nonempty(),\n alignment: AlignmentValidator.array().optional(),\n achievementType: AchievementTypeValidator.optional(),\n creator: ProfileValidator.optional(),\n creditsAvailable: z.number().optional(),\n criteria: CriteriaValidator,\n description: z.string(),\n endorsement: EndorsementCredentialValidator.array().optional(),\n fieldOfStudy: z.string().optional(),\n humanCode: z.string().optional(),\n image: ImageValidator.optional(),\n '@language': z.string().optional(),\n name: z.string(),\n otherIdentifier: IdentifierEntryValidator.array().optional(),\n related: RelatedValidator.array().optional(),\n resultDescription: ResultDescriptionValidator.array().optional(),\n specialization: z.string().optional(),\n tag: z.array(z.string()).optional(),\n version: z.string().optional(),\n })\n .catchall(z.any());\nexport type Achievement = z.infer<typeof AchievementValidator>;\n\nexport const IdentityObjectValidator = z.object({\n type: z.string(),\n hashed: z.boolean(),\n identityHash: z.string(),\n identityType: z.string(),\n salt: z.string().optional(),\n});\nexport type IdentityObject = z.infer<typeof IdentityObjectValidator>;\n\nexport const ResultStatusTypeValidator = z.enum([\n 'Completed',\n 'Enrolled',\n 'Failed',\n 'InProgress',\n 'OnHold',\n 'Withdrew',\n]);\nexport type ResultStatusType = z.infer<typeof ResultStatusTypeValidator>;\n\nexport const ResultValidator = z\n .object({\n type: z.string().array().nonempty(),\n achievedLevel: z.string().optional(),\n alignment: AlignmentValidator.array().optional(),\n resultDescription: z.string().optional(),\n status: ResultStatusTypeValidator.optional(),\n value: z.string().optional(),\n })\n .catchall(z.any());\nexport type Result = z.infer<typeof ResultValidator>;\n\nexport const AchievementSubjectValidator = z\n .object({\n id: z.string().optional(),\n type: z.string().array().nonempty(),\n activityEndDate: z.string().optional(),\n activityStartDate: z.string().optional(),\n creditsEarned: z.number().optional(),\n achievement: AchievementValidator.optional(),\n identifier: IdentityObjectValidator.array().optional(),\n image: ImageValidator.optional(),\n licenseNumber: z.string().optional(),\n narrative: z.string().optional(),\n result: ResultValidator.array().optional(),\n role: z.string().optional(),\n source: ProfileValidator.optional(),\n term: z.string().optional(),\n })\n .catchall(z.any());\nexport type AchievementSubject = z.infer<typeof AchievementSubjectValidator>;\n\nexport const UnsignedAchievementCredentialValidator = UnsignedVCValidator.extend({\n name: z.string().optional(),\n description: z.string().optional(),\n image: ImageValidator.optional(),\n credentialSubject: AchievementSubjectValidator.or(\n AchievementSubjectValidator.array()\n ) as z.ZodUnion<\n [typeof AchievementSubjectValidator, z.ZodArray<typeof AchievementSubjectValidator>]\n >,\n endorsement: UnsignedVCValidator.array().optional(),\n});\nexport type UnsignedAchievementCredential = z.infer<typeof UnsignedAchievementCredentialValidator>;\n\nexport const AchievementCredentialValidator = UnsignedAchievementCredentialValidator.extend({\n proof: ProofValidator.or(ProofValidator.array()),\n});\nexport type AchievementCredential = z.infer<typeof AchievementCredentialValidator>;\n", "import { z } from 'zod';\nimport { CredentialSubjectValidator, ProfileValidator } from './vc';\n\nexport const VerificationCheckValidator = z.object({\n checks: z.string().array(),\n warnings: z.string().array(),\n errors: z.string().array(),\n});\nexport type VerificationCheck = z.infer<typeof VerificationCheckValidator>;\n\nexport const VerificationStatusValidator = z.enum(['Success', 'Failed', 'Error']);\nexport type VerificationStatus = z.infer<typeof VerificationStatusValidator>;\nexport const VerificationStatusEnum = VerificationStatusValidator.enum;\n\nexport const VerificationItemValidator = z.object({\n check: z.string(),\n status: VerificationStatusValidator,\n message: z.string().optional(),\n details: z.string().optional(),\n});\nexport type VerificationItem = z.infer<typeof VerificationItemValidator>;\n\nexport const CredentialInfoValidator = z.object({\n title: z.string().optional(),\n createdAt: z.string().optional(),\n issuer: ProfileValidator.optional(),\n issuee: ProfileValidator.optional(),\n credentialSubject: CredentialSubjectValidator.optional(),\n});\nexport type CredentialInfo = z.infer<typeof CredentialInfoValidator>;\n\nexport type CredentialRecord<Metadata extends Record<string, any> = Record<never, never>> = {\n id: string;\n uri: string;\n [key: string]: any;\n} & Metadata;\n\nexport const CredentialRecordValidator = z\n .object({ id: z.string(), uri: z.string() })\n .catchall(z.any()) satisfies z.ZodType<CredentialRecord>;\n", "import { z } from 'zod';\n\nimport { PaginationResponseValidator } from './mongo';\nimport { JWEValidator } from './crypto';\n\nexport const EncryptedRecordValidator = z\n .object({ encryptedRecord: JWEValidator, fields: z.string().array() })\n .catchall(z.any());\nexport type EncryptedRecord = z.infer<typeof EncryptedRecordValidator>;\n\nexport const PaginatedEncryptedRecordsValidator = PaginationResponseValidator.extend({\n records: EncryptedRecordValidator.array(),\n});\nexport type PaginatedEncryptedRecordsType = z.infer<typeof PaginatedEncryptedRecordsValidator>;\n\nexport const EncryptedCredentialRecordValidator = EncryptedRecordValidator.extend({\n id: z.string(),\n});\nexport type EncryptedCredentialRecord = z.infer<typeof EncryptedCredentialRecordValidator>;\n\nexport const PaginatedEncryptedCredentialRecordsValidator = PaginationResponseValidator.extend({\n records: EncryptedCredentialRecordValidator.array(),\n});\nexport type PaginatedEncryptedCredentialRecordsType = z.infer<\n typeof PaginatedEncryptedCredentialRecordsValidator\n>;\n", "import { z } from 'zod';\n\nexport const PaginationOptionsValidator = z.object({\n limit: z.number(),\n cursor: z.string().optional(),\n sort: z.string().optional(),\n});\nexport type PaginationOptionsType = z.infer<typeof PaginationOptionsValidator>;\n\nexport const PaginationResponseValidator = z.object({\n cursor: z.string().optional(),\n hasMore: z.boolean(),\n});\nexport type PaginationResponseType = z.infer<typeof PaginationResponseValidator>;\n", "import type {} from 'zod-openapi';\nimport { z } from 'zod';\n\nimport { PaginationResponseValidator } from './mongo';\nimport { StringQuery } from './queries';\nimport { UnsignedVCValidator, VCValidator, VPValidator } from './vc';\n\nexport const LCNProfileDisplayValidator = z.object({\n backgroundColor: z.string().optional(),\n backgroundImage: z.string().optional(),\n fadeBackgroundImage: z.boolean().optional(),\n repeatBackgroundImage: z.boolean().optional(),\n fontColor: z.string().optional(),\n accentColor: z.string().optional(),\n accentFontColor: z.string().optional(),\n idBackgroundImage: z.string().optional(),\n fadeIdBackgroundImage: z.boolean().optional(),\n idBackgroundColor: z.string().optional(),\n repeatIdBackgroundImage: z.boolean().optional(),\n});\nexport type LCNProfileDisplay = z.infer<typeof LCNProfileDisplayValidator>;\n\nexport const LCNProfileValidator = z.object({\n profileId: z.string().min(3).max(40).describe('Unique, URL-safe identifier for the profile.'),\n displayName: z.string().default('').describe('Human-readable display name for the profile.'),\n shortBio: z.string().default('').describe('Short bio for the profile.'),\n bio: z.string().default('').describe('Longer bio for the profile.'),\n did: z.string().describe('Decentralized Identifier for the profile. (auto-assigned)'),\n isPrivate: z\n .boolean()\n .optional()\n .describe('Whether the profile is private or not and shows up in search results.'),\n email: z.string().optional().describe('Contact email address for the profile. (deprecated)'),\n image: z.string().optional().describe('Profile image URL for the profile.'),\n heroImage: z.string().optional().describe('Hero image URL for the profile.'),\n websiteLink: z.string().optional().describe('Website link for the profile.'),\n isServiceProfile: z\n .boolean()\n .default(false)\n .optional()\n .describe('Whether the profile is a service profile or not.'),\n type: z.string().optional().describe('Profile type: e.g. \"person\", \"organization\", \"service\".'),\n notificationsWebhook: z\n .string()\n .url()\n .startsWith('http')\n .optional()\n .describe('URL to send notifications to.'),\n display: LCNProfileDisplayValidator.optional().describe('Display settings for the profile.'),\n highlightedCredentials: z\n .array(z.string())\n .max(5)\n .optional()\n .describe('Up to 5 unique boost URIs to highlight on the profile.'),\n role: z\n .string()\n .default('')\n .optional()\n .describe('Role of the profile: e.g. \"teacher\", \"student\".'),\n dob: z\n .string()\n .default('')\n .optional()\n .describe('Date of birth of the profile: e.g. \"1990-01-01\".'),\n country: z.string().optional().describe('Country for the profile.'),\n approved: z.boolean().optional().describe('Approval status for the profile.'),\n});\nexport type LCNProfile = z.infer<typeof LCNProfileValidator>;\n\nexport const LCNProfileQueryValidator = z\n .object({\n profileId: StringQuery,\n displayName: StringQuery,\n shortBio: StringQuery,\n bio: StringQuery,\n email: StringQuery,\n websiteLink: StringQuery,\n isServiceProfile: z.boolean(),\n type: StringQuery,\n })\n .partial();\nexport type LCNProfileQuery = z.infer<typeof LCNProfileQueryValidator>;\n\nexport const PaginatedLCNProfilesValidator = PaginationResponseValidator.extend({\n records: LCNProfileValidator.array(),\n});\nexport type PaginatedLCNProfiles = z.infer<typeof PaginatedLCNProfilesValidator>;\n\nexport const LCNProfileConnectionStatusEnum = z.enum([\n 'CONNECTED',\n 'PENDING_REQUEST_SENT',\n 'PENDING_REQUEST_RECEIVED',\n 'NOT_CONNECTED',\n]);\nexport type LCNProfileConnectionStatusEnum = z.infer<typeof LCNProfileConnectionStatusEnum>;\n\nexport const LCNProfileManagerValidator = z.object({\n id: z.string(),\n created: z.string(),\n displayName: z.string().default('').optional(),\n shortBio: z.string().default('').optional(),\n bio: z.string().default('').optional(),\n email: z.string().optional(),\n image: z.string().optional(),\n heroImage: z.string().optional(),\n});\nexport type LCNProfileManager = z.infer<typeof LCNProfileManagerValidator>;\n\nexport const PaginatedLCNProfileManagersValidator = PaginationResponseValidator.extend({\n records: LCNProfileManagerValidator.extend({ did: z.string() }).array(),\n});\nexport type PaginatedLCNProfileManagers = z.infer<typeof PaginatedLCNProfileManagersValidator>;\n\nexport const LCNProfileManagerQueryValidator = z\n .object({\n id: StringQuery,\n displayName: StringQuery,\n shortBio: StringQuery,\n bio: StringQuery,\n email: StringQuery,\n })\n .partial();\nexport type LCNProfileManagerQuery = z.infer<typeof LCNProfileManagerQueryValidator>;\n\nexport const PaginatedLCNProfilesAndManagersValidator = PaginationResponseValidator.extend({\n records: z\n .object({\n profile: LCNProfileValidator,\n manager: LCNProfileManagerValidator.extend({ did: z.string() }).optional(),\n })\n .array(),\n});\nexport type PaginatedLCNProfilesAndManagers = z.infer<\n typeof PaginatedLCNProfilesAndManagersValidator\n>;\n\nexport const SentCredentialInfoValidator = z.object({\n uri: z.string(),\n to: z.string(),\n from: z.string(),\n sent: z.iso.datetime(),\n received: z.iso.datetime().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\nexport type SentCredentialInfo = z.infer<typeof SentCredentialInfoValidator>;\n\nexport const BoostPermissionsValidator = z.object({\n role: z.string(),\n canView: z.boolean().default(true),\n canEdit: z.boolean(),\n canIssue: z.boolean(),\n canRevoke: z.boolean(),\n canManagePermissions: z.boolean(),\n canIssueChildren: z.string(),\n canCreateChildren: z.string(),\n canEditChildren: z.string(),\n canRevokeChildren: z.string(),\n canManageChildrenPermissions: z.string(),\n canManageChildrenProfiles: z.boolean().optional(),\n canViewAnalytics: z.boolean(),\n});\nexport type BoostPermissions = z.infer<typeof BoostPermissionsValidator>;\n\nexport const BoostPermissionsQueryValidator = z\n .object({\n role: StringQuery,\n canView: z.boolean(),\n canEdit: z.boolean(),\n canIssue: z.boolean(),\n canRevoke: z.boolean(),\n canManagePermissions: z.boolean(),\n canIssueChildren: StringQuery,\n canCreateChildren: StringQuery,\n canEditChildren: StringQuery,\n canRevokeChildren: StringQuery,\n canManageChildrenPermissions: StringQuery,\n canManageChildrenProfiles: z.boolean(),\n canViewAnalytics: z.boolean(),\n })\n .partial();\nexport type BoostPermissionsQuery = z.infer<typeof BoostPermissionsQueryValidator>;\n\nexport const ClaimHookTypeValidator = z.enum(['GRANT_PERMISSIONS', 'ADD_ADMIN', 'AUTO_CONNECT']);\nexport type ClaimHookType = z.infer<typeof ClaimHookTypeValidator>;\n\nexport const ClaimHookValidator = z.discriminatedUnion('type', [\n z.object({\n type: z.literal(ClaimHookTypeValidator.enum.GRANT_PERMISSIONS),\n data: z.object({\n claimUri: z.string(),\n targetUri: z.string(),\n permissions: BoostPermissionsValidator.partial(),\n }),\n }),\n z.object({\n type: z.literal(ClaimHookTypeValidator.enum.ADD_ADMIN),\n data: z.object({ claimUri: z.string(), targetUri: z.string() }),\n }),\n z.object({\n type: z.literal(ClaimHookTypeValidator.enum.AUTO_CONNECT),\n data: z.object({ claimUri: z.string(), targetUri: z.string() }),\n }),\n]);\nexport type ClaimHook = z.infer<typeof ClaimHookValidator>;\n\nexport const ClaimHookQueryValidator = z.object({\n type: StringQuery,\n data: z\n .object({\n claimUri: StringQuery,\n targetUri: StringQuery,\n permissions: BoostPermissionsQueryValidator.partial(),\n })\n .partial(),\n});\nexport type ClaimHookQuery = z.infer<typeof ClaimHookQueryValidator>;\n\nexport const FullClaimHookValidator = z\n .object({ id: z.string(), createdAt: z.string(), updatedAt: z.string() })\n .and(ClaimHookValidator);\nexport type FullClaimHook = z.infer<typeof FullClaimHookValidator>;\n\nexport const PaginatedClaimHooksValidator = PaginationResponseValidator.extend({\n records: FullClaimHookValidator.array(),\n});\nexport type PaginatedClaimHooksType = z.infer<typeof PaginatedClaimHooksValidator>;\n\n/**\n * Status states for Boosts that control what actions can be performed.\n *\n * - **DRAFT**: Work in progress. Can edit all fields, but cannot send or generate claim links.\n * - **PROVISIONAL**: Active but iterating. Can both edit all fields AND send/issue credentials. Ideal for testing in production or soft launches.\n * - **LIVE**: Official/finalized. Can only edit meta and defaultPermissions. Core properties are locked for consistency.\n *\n * @example\n * ```typescript\n * // Create a provisional boost for testing\n * const boostUri = await learnCard.invoke.createBoost(credential, {\n * status: 'PROVISIONAL',\n * });\n * ```\n */\nexport const LCNBoostStatus = z.enum(['DRAFT', 'PROVISIONAL', 'LIVE']);\nexport type LCNBoostStatusEnum = z.infer<typeof LCNBoostStatus>;\n\nexport const BoostValidator = z.object({\n uri: z.string(),\n name: z.string().optional(),\n type: z.string().optional(),\n category: z.string().optional(),\n status: LCNBoostStatus.optional(),\n autoConnectRecipients: z.boolean().optional(),\n meta: z.record(z.string(), z.any()).optional(),\n claimPermissions: BoostPermissionsValidator.optional(),\n defaultPermissions: BoostPermissionsValidator.optional(),\n allowAnyoneToCreateChildren: z.boolean().optional(),\n});\nexport type Boost = z.infer<typeof BoostValidator>;\n\nconst BaseBoostQueryValidator = z\n .object({\n uri: StringQuery,\n name: StringQuery,\n type: StringQuery,\n category: StringQuery,\n meta: z.record(z.string(), StringQuery),\n status: LCNBoostStatus.or(z.object({ $in: LCNBoostStatus.array() })),\n autoConnectRecipients: z.boolean(),\n })\n .partial();\n\nexport const BoostQueryValidator = z.union([\n z.object({\n $or: BaseBoostQueryValidator.array(),\n }),\n BaseBoostQueryValidator,\n]);\nexport type BoostQuery = z.infer<typeof BoostQueryValidator>;\n\nexport const PaginatedBoostsValidator = PaginationResponseValidator.extend({\n records: BoostValidator.array(),\n});\nexport type PaginatedBoostsType = z.infer<typeof PaginatedBoostsValidator>;\n\nexport const BoostRecipientValidator = z.object({\n to: LCNProfileValidator,\n from: z.string(),\n received: z.string().optional(),\n uri: z.string().optional(),\n});\nexport type BoostRecipientInfo = z.infer<typeof BoostRecipientValidator>;\n\nexport const PaginatedBoostRecipientsValidator = PaginationResponseValidator.extend({\n records: BoostRecipientValidator.array(),\n});\nexport type PaginatedBoostRecipientsType = z.infer<typeof PaginatedBoostRecipientsValidator>;\n\nexport const BoostRecipientWithChildrenValidator = z.object({\n to: LCNProfileValidator,\n from: z.string(),\n received: z.string().optional(),\n boostUris: z.array(z.string()),\n credentialUris: z.array(z.string()).optional(),\n});\nexport type BoostRecipientWithChildrenInfo = z.infer<typeof BoostRecipientWithChildrenValidator>;\n\nexport const PaginatedBoostRecipientsWithChildrenValidator = PaginationResponseValidator.extend({\n records: BoostRecipientWithChildrenValidator.array(),\n});\nexport type PaginatedBoostRecipientsWithChildrenType = z.infer<\n typeof PaginatedBoostRecipientsWithChildrenValidator\n>;\n\nexport const LCNBoostClaimLinkSigningAuthorityValidator = z.object({\n endpoint: z.string(),\n name: z.string(),\n did: z.string().optional(),\n});\nexport type LCNBoostClaimLinkSigningAuthorityType = z.infer<\n typeof LCNBoostClaimLinkSigningAuthorityValidator\n>;\n\nexport const LCNBoostClaimLinkOptionsValidator = z.object({\n ttlSeconds: z.number().optional(),\n totalUses: z.number().optional(),\n});\nexport type LCNBoostClaimLinkOptionsType = z.infer<typeof LCNBoostClaimLinkOptionsValidator>;\n\nexport const LCNSigningAuthorityValidator = z.object({\n endpoint: z.string(),\n});\nexport type LCNSigningAuthorityType = z.infer<typeof LCNSigningAuthorityValidator>;\n\nexport const LCNSigningAuthorityForUserValidator = z.object({\n signingAuthority: LCNSigningAuthorityValidator,\n relationship: z.object({\n name: z\n .string()\n .max(15)\n .regex(/^[a-z0-9-]+$/, {\n message:\n 'The input string must contain only lowercase letters, numbers, and hyphens.',\n }),\n did: z.string(),\n isPrimary: z.boolean().optional(),\n }),\n});\nexport type LCNSigningAuthorityForUserType = z.infer<typeof LCNSigningAuthorityForUserValidator>;\n\nexport const AutoBoostConfigValidator = z.object({\n boostUri: z.string(),\n signingAuthority: z.object({\n endpoint: z.string(),\n name: z.string(),\n }),\n});\nexport type AutoBoostConfig = z.infer<typeof AutoBoostConfigValidator>;\n\nconst SendBoostTemplateValidator = BoostValidator.partial()\n .omit({ uri: true, claimPermissions: true })\n .extend({\n credential: VCValidator.or(UnsignedVCValidator),\n claimPermissions: BoostPermissionsValidator.partial().optional(),\n skills: z\n .array(\n z.object({\n frameworkId: z.string(),\n id: z.string(),\n proficiencyLevel: z.number().optional(),\n })\n )\n .min(1)\n .optional(),\n });\n\n// Branding options for email/SMS delivery (used when recipient is email/phone)\nexport const SendBrandingOptionsValidator = z.object({\n issuerName: z.string().optional().describe('Name of the issuing organization'),\n issuerLogoUrl: z.string().url().optional().describe('Logo URL of the issuing organization'),\n credentialName: z.string().optional().describe('Display name for the credential'),\n recipientName: z.string().optional().describe('Name of the recipient for personalization'),\n});\nexport type SendBrandingOptions = z.infer<typeof SendBrandingOptionsValidator>;\n\n// Options for send method (applies when recipient is email/phone, routes to Universal Inbox)\nexport const SendOptionsValidator = z.object({\n webhookUrl: z.string().url().optional().describe('Webhook URL to receive claim notifications'),\n suppressDelivery: z\n .boolean()\n .optional()\n .describe('If true, returns claimUrl without sending email/SMS'),\n branding: SendBrandingOptionsValidator.optional().describe('Branding for email/SMS delivery'),\n});\nexport type SendOptions = z.infer<typeof SendOptionsValidator>;\n\n// Route-level validator (TRPC requires ZodObject, not discriminatedUnion)\nexport const SendBoostInputValidator = z\n .object({\n type: z.literal('boost'),\n recipient: z.string().describe('Profile ID, DID, email, or phone number (auto-detected)'),\n contractUri: z.string().optional(),\n templateUri: z.string().optional(),\n template: SendBoostTemplateValidator.optional(),\n signedCredential: VCValidator.optional(),\n options: SendOptionsValidator.optional().describe(\n 'Options for email/phone recipients (Universal Inbox)'\n ),\n templateData: z.record(z.string(), z.unknown()).optional(),\n integrationId: z.string().optional().describe('Integration ID for activity tracking'),\n })\n .refine(data => data.templateUri || data.template, {\n message: 'Either templateUri or template creation data must be provided.',\n path: ['templateUri'],\n });\nexport type SendBoostInput = z.infer<typeof SendBoostInputValidator>;\n\n// Inbox-specific response fields (only present when sent via email/phone)\nexport const SendInboxResponseValidator = z.object({\n issuanceId: z.string(),\n status: z.enum(['PENDING', 'ISSUED', 'EXPIRED', 'DELIVERED', 'CLAIMED']),\n claimUrl: z.string().url().optional().describe('Present when suppressDelivery=true'),\n});\nexport type SendInboxResponse = z.infer<typeof SendInboxResponseValidator>;\n\nexport const SendBoostResponseValidator = z.object({\n type: z.literal('boost'),\n credentialUri: z.string(),\n uri: z.string(),\n activityId: z.string().describe('Links to the activity lifecycle for this issuance'),\n inbox: SendInboxResponseValidator.optional().describe(\n 'Present when sent via email/phone (Universal Inbox)'\n ),\n});\nexport type SendBoostResponse = z.infer<typeof SendBoostResponseValidator>;\n\n// Plugin-level discriminated union (for extensibility)\nexport const SendInputValidator = z.discriminatedUnion('type', [SendBoostInputValidator]);\nexport type SendInput = z.infer<typeof SendInputValidator>;\n\nexport const SendResponseValidator = z.discriminatedUnion('type', [SendBoostResponseValidator]);\nexport type SendResponse = z.infer<typeof SendResponseValidator>;\n\nexport const ConsentFlowTermsStatusValidator = z.enum(['live', 'stale', 'withdrawn']);\nexport type ConsentFlowTermsStatus = z.infer<typeof ConsentFlowTermsStatusValidator>;\n\nexport const ConsentFlowContractValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n categories: z\n .record(\n z.string(),\n z.object({\n required: z.boolean(),\n defaultEnabled: z.boolean().optional(),\n })\n )\n .default({}),\n })\n .prefault({ categories: {} }),\n personal: z\n .record(\n z.string(),\n z.object({ required: z.boolean(), defaultEnabled: z.boolean().optional() })\n )\n .default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n write: z\n .object({\n credentials: z\n .object({\n categories: z\n .record(\n z.string(),\n z.object({\n required: z.boolean(),\n defaultEnabled: z.boolean().optional(),\n })\n )\n .default({}),\n })\n .prefault({ categories: {} }),\n personal: z\n .record(\n z.string(),\n z.object({ required: z.boolean(), defaultEnabled: z.boolean().optional() })\n )\n .default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n});\nexport type ConsentFlowContract = z.infer<typeof ConsentFlowContractValidator>;\nexport type ConsentFlowContractInput = z.input<typeof ConsentFlowContractValidator>;\n\nexport const ConsentFlowContractDetailsValidator = z.object({\n contract: ConsentFlowContractValidator,\n owner: LCNProfileValidator,\n name: z.string(),\n subtitle: z.string().optional(),\n description: z.string().optional(),\n reasonForAccessing: z.string().optional(),\n image: z.string().optional(),\n uri: z.string(),\n needsGuardianConsent: z.boolean().optional(),\n redirectUrl: z.string().optional(),\n frontDoorBoostUri: z.string().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n expiresAt: z.string().optional(),\n autoBoosts: z.string().array().optional(),\n writers: z.array(LCNProfileValidator).optional(),\n});\nexport type ConsentFlowContractDetails = z.infer<typeof ConsentFlowContractDetailsValidator>;\nexport type ConsentFlowContractDetailsInput = z.input<typeof ConsentFlowContractDetailsValidator>;\n\nexport const PaginatedConsentFlowContractsValidator = PaginationResponseValidator.extend({\n records: ConsentFlowContractDetailsValidator.omit({ owner: true }).array(),\n});\nexport type PaginatedConsentFlowContracts = z.infer<typeof PaginatedConsentFlowContractsValidator>;\n\nexport const ConsentFlowContractDataValidator = z.object({\n credentials: z.object({ categories: z.record(z.string(), z.string().array()).default({}) }),\n personal: z.record(z.string(), z.string()).default({}),\n date: z.string(),\n});\nexport type ConsentFlowContractData = z.infer<typeof ConsentFlowContractDataValidator>;\n\nexport const PaginatedConsentFlowDataValidator = PaginationResponseValidator.extend({\n records: ConsentFlowContractDataValidator.array(),\n});\nexport type PaginatedConsentFlowData = z.infer<typeof PaginatedConsentFlowDataValidator>;\n\nexport const ConsentFlowContractDataForDidValidator = z.object({\n credentials: z.object({ category: z.string(), uri: z.string() }).array(),\n personal: z.record(z.string(), z.string()).default({}),\n date: z.string(),\n contractUri: z.string(),\n});\nexport type ConsentFlowContractDataForDid = z.infer<typeof ConsentFlowContractDataForDidValidator>;\n\nexport const PaginatedConsentFlowDataForDidValidator = PaginationResponseValidator.extend({\n records: ConsentFlowContractDataForDidValidator.array(),\n});\nexport type PaginatedConsentFlowDataForDid = z.infer<\n typeof PaginatedConsentFlowDataForDidValidator\n>;\n\nexport const ConsentFlowTermValidator = z.object({\n sharing: z.boolean().optional(),\n shared: z.string().array().optional(),\n shareAll: z.boolean().optional(),\n shareUntil: z.string().optional(),\n});\nexport type ConsentFlowTerm = z.infer<typeof ConsentFlowTermValidator>;\n\nexport const ConsentFlowTermsValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n shareAll: z.boolean().optional(),\n sharing: z.boolean().optional(),\n categories: z.record(z.string(), ConsentFlowTermValidator).default({}),\n })\n .prefault({ categories: {} }),\n personal: z.record(z.string(), z.string()).default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n write: z\n .object({\n credentials: z\n .object({ categories: z.record(z.string(), z.boolean()).default({}) })\n .prefault({ categories: {} }),\n personal: z.record(z.string(), z.boolean()).default({}),\n })\n .prefault({ credentials: { categories: {} }, personal: {} }),\n deniedWriters: z.array(z.string()).optional(),\n});\nexport type ConsentFlowTerms = z.infer<typeof ConsentFlowTermsValidator>;\nexport type ConsentFlowTermsInput = z.input<typeof ConsentFlowTermsValidator>;\nexport const PaginatedConsentFlowTermsValidator = PaginationResponseValidator.extend({\n records: z\n .object({\n expiresAt: z.string().optional(),\n oneTime: z.boolean().optional(),\n terms: ConsentFlowTermsValidator,\n contract: ConsentFlowContractDetailsValidator,\n uri: z.string(),\n consenter: LCNProfileValidator,\n status: ConsentFlowTermsStatusValidator,\n })\n .array(),\n});\nexport type PaginatedConsentFlowTerms = z.infer<typeof PaginatedConsentFlowTermsValidator>;\n\nexport const ConsentFlowContractQueryValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n categories: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n personal: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n write: z\n .object({\n credentials: z\n .object({\n categories: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n personal: z\n .record(z.string(), z.object({ required: z.boolean().optional() }))\n .optional(),\n })\n .optional(),\n});\nexport type ConsentFlowContractQuery = z.infer<typeof ConsentFlowContractQueryValidator>;\nexport type ConsentFlowContractQueryInput = z.input<typeof ConsentFlowContractQueryValidator>;\n\nexport const ConsentFlowDataQueryValidator = z.object({\n anonymize: z.boolean().optional(),\n credentials: z.object({ categories: z.record(z.string(), z.boolean()).optional() }).optional(),\n personal: z.record(z.string(), z.boolean()).optional(),\n});\nexport type ConsentFlowDataQuery = z.infer<typeof ConsentFlowDataQueryValidator>;\nexport type ConsentFlowDataQueryInput = z.input<typeof ConsentFlowDataQueryValidator>;\n\nexport const ConsentFlowDataForDidQueryValidator = z.object({\n credentials: z.object({ categories: z.record(z.string(), z.boolean()).optional() }).optional(),\n personal: z.record(z.string(), z.boolean()).optional(),\n id: StringQuery.optional(),\n});\nexport type ConsentFlowDataForDidQuery = z.infer<typeof ConsentFlowDataForDidQueryValidator>;\nexport type ConsentFlowDataForDidQueryInput = z.input<typeof ConsentFlowDataForDidQueryValidator>;\n\nexport const ConsentFlowTermsQueryValidator = z.object({\n read: z\n .object({\n anonymize: z.boolean().optional(),\n credentials: z\n .object({\n shareAll: z.boolean().optional(),\n sharing: z.boolean().optional(),\n categories: z\n .record(z.string(), ConsentFlowTermValidator.optional())\n .optional(),\n })\n .optional(),\n personal: z.record(z.string(), z.string()).optional(),\n })\n .optional(),\n write: z\n .object({\n credentials: z\n .object({ categories: z.record(z.string(), z.boolean()).optional() })\n .optional(),\n personal: z.record(z.string(), z.boolean()).optional(),\n })\n .optional(),\n});\nexport type ConsentFlowTermsQuery = z.infer<typeof ConsentFlowTermsQueryValidator>;\nexport type ConsentFlowTermsQueryInput = z.input<typeof ConsentFlowTermsQueryValidator>;\n\nexport const ConsentFlowTransactionActionValidator = z.enum([\n 'consent',\n 'update',\n 'sync',\n 'withdraw',\n 'write',\n]);\nexport type ConsentFlowTransactionAction = z.infer<typeof ConsentFlowTransactionActionValidator>;\n\nexport const ConsentFlowTransactionsQueryValidator = z.object({\n terms: ConsentFlowTermsQueryValidator.optional(),\n action: ConsentFlowTransactionActionValidator.or(\n ConsentFlowTransactionActionValidator.array()\n ).optional(),\n date: z\n .object({ $gt: z.string() })\n .or(z.object({ $lt: z.string() }))\n .or(z.object({ $eq: z.string() }))\n .optional(),\n expiresAt: z\n .object({ $gt: z.string() })\n .or(z.object({ $lt: z.string() }))\n .or(z.object({ $eq: z.string() }))\n .optional(),\n oneTime: z.boolean().optional(),\n});\nexport type ConsentFlowTransactionsQuery = z.infer<typeof ConsentFlowTransactionsQueryValidator>;\nexport type ConsentFlowTransactionsQueryInput = z.input<\n typeof ConsentFlowTransactionsQueryValidator\n>;\n\nexport const ConsentFlowTransactionValidator = z.object({\n expiresAt: z.string().optional(),\n oneTime: z.boolean().optional(),\n terms: ConsentFlowTermsValidator.optional(),\n id: z.string(),\n action: ConsentFlowTransactionActionValidator,\n date: z.string(),\n uris: z.string().array().optional(),\n});\nexport type ConsentFlowTransaction = z.infer<typeof ConsentFlowTransactionValidator>;\n\nexport const PaginatedConsentFlowTransactionsValidator = PaginationResponseValidator.extend({\n records: ConsentFlowTransactionValidator.array(),\n});\nexport type PaginatedConsentFlowTransactions = z.infer<\n typeof PaginatedConsentFlowTransactionsValidator\n>;\n\n// Skill Frameworks: Query + Paginated types\nconst BaseSkillFrameworkQueryValidator = z\n .object({\n id: StringQuery,\n name: StringQuery,\n description: StringQuery,\n sourceURI: StringQuery,\n status: StringQuery,\n })\n .partial();\n\nexport const SkillFrameworkQueryValidator = z.union([\n z.object({ $or: BaseSkillFrameworkQueryValidator.array() }),\n BaseSkillFrameworkQueryValidator,\n]);\nexport type SkillFrameworkQuery = z.infer<typeof SkillFrameworkQueryValidator>;\n\n// moved below SkillFrameworkValidator\n\nexport const ContractCredentialValidator = z.object({\n credentialUri: z.string(),\n termsUri: z.string(),\n contractUri: z.string(),\n boostUri: z.string(),\n category: z.string().optional(),\n date: z.string(),\n});\nexport type ContractCredential = z.infer<typeof ContractCredentialValidator>;\n\nexport const PaginatedContractCredentialsValidator = PaginationResponseValidator.extend({\n records: ContractCredentialValidator.array(),\n});\nexport type PaginatedContractCredentials = z.infer<typeof PaginatedContractCredentialsValidator>;\n\nexport const LCNNotificationTypeEnumValidator = z.enum([\n 'CONNECTION_REQUEST',\n 'CONNECTION_REQUEST_EXPIRED_INVITE',\n 'CONNECTION_ACCEPTED',\n 'CREDENTIAL_RECEIVED',\n 'CREDENTIAL_ACCEPTED',\n 'BOOST_RECEIVED',\n 'BOOST_ACCEPTED',\n 'PRESENTATION_REQUEST',\n 'PRESENTATION_RECEIVED',\n 'CONSENT_FLOW_TRANSACTION',\n 'ISSUANCE_CLAIMED',\n 'ISSUANCE_DELIVERED',\n 'ISSUANCE_ERROR',\n 'PROFILE_PARENT_APPROVED',\n 'APP_LISTING_SUBMITTED',\n 'APP_LISTING_APPROVED',\n 'APP_LISTING_REJECTED',\n 'DEVICE_LINK_REQUEST',\n]);\n\nexport type LCNNotificationTypeEnum = z.infer<typeof LCNNotificationTypeEnumValidator>;\n\nexport const LCNNotificationMessageValidator = z.object({\n title: z.string().optional(),\n body: z.string().optional(),\n});\n\nexport type LCNNotificationMessage = z.infer<typeof LCNNotificationMessageValidator>;\n\nexport const LCNInboxContactMethodValidator = z.object({\n type: z.string(),\n value: z.string(),\n});\n\nexport type LCNInboxContactMethod = z.infer<typeof LCNInboxContactMethodValidator>;\n\nexport const LCNInboxStatusEnumValidator = z.enum([\n 'PENDING',\n 'ISSUED',\n 'EXPIRED',\n /* DEPRECATED \u2014 use ISSUED */ 'DELIVERED',\n /* DEPRECATED \u2014 use ISSUED */ 'CLAIMED',\n]);\nexport type LCNInboxStatusEnum = z.infer<typeof LCNInboxStatusEnumValidator>;\n\nexport const LCNNotificationInboxValidator = z.object({\n issuanceId: z.string(),\n status: LCNInboxStatusEnumValidator,\n recipient: z.object({\n contactMethod: LCNInboxContactMethodValidator.optional(),\n learnCardId: z.string().optional(),\n }),\n timestamp: z.iso.datetime().optional(),\n});\n\nexport type LCNNotificationInbox = z.infer<typeof LCNNotificationInboxValidator>;\n\nexport const LCNNotificationDataValidator = z\n .object({\n vcUris: z.array(z.string()).optional(),\n vpUris: z.array(z.string()).optional(),\n transaction: ConsentFlowTransactionValidator.optional(),\n inbox: LCNNotificationInboxValidator.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n })\n .loose();\nexport type LCNNotificationData = z.infer<typeof LCNNotificationDataValidator>;\n\nexport const LCNNotificationValidator = z.object({\n type: LCNNotificationTypeEnumValidator,\n to: LCNProfileValidator.partial().and(z.object({ did: z.string() })),\n from: LCNProfileValidator.partial().and(z.object({ did: z.string() })),\n message: LCNNotificationMessageValidator.optional(),\n data: LCNNotificationDataValidator.optional(),\n sent: z.iso.datetime().optional(),\n webhookUrl: z.string().optional(),\n});\n\nexport type LCNNotification = z.infer<typeof LCNNotificationValidator>;\n\nexport const AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX = 'auth-grant:';\n\nexport const AuthGrantValidator = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n challenge: z\n .string()\n .startsWith(AUTH_GRANT_AUDIENCE_DOMAIN_PREFIX)\n .min(10, { message: 'Challenge is too short' })\n .max(100, { message: 'Challenge is too long' }),\n status: z.enum(['revoked', 'active'], {\n error: issue => {\n if (issue.code === 'invalid_value') return 'Status must be either active or revoked';\n return 'Status is required';\n },\n }),\n scope: z.string(),\n createdAt: z.iso.datetime({ error: 'createdAt must be a valid ISO 8601 datetime string' }),\n expiresAt: z.iso\n .datetime({ error: 'expiresAt must be a valid ISO 8601 datetime string' })\n .nullish()\n .optional(),\n});\nexport type AuthGrantType = z.infer<typeof AuthGrantValidator>;\n\nexport const FlatAuthGrantValidator = z.object({ id: z.string() }).catchall(z.any());\nexport type FlatAuthGrantType = z.infer<typeof FlatAuthGrantValidator>;\n\nexport const AuthGrantStatusValidator = z.enum(['active', 'revoked']);\n\nexport type AuthGrantStatus = z.infer<typeof AuthGrantStatusValidator>;\n\nexport const AuthGrantQueryValidator = z\n .object({\n id: StringQuery,\n name: StringQuery,\n description: StringQuery,\n status: AuthGrantStatusValidator,\n })\n .partial();\n\nexport type AuthGrantQuery = z.infer<typeof AuthGrantQueryValidator>;\n\n// Contact Methods\nconst contactMethodBase = z.object({\n id: z.string(),\n isVerified: z.boolean(),\n verifiedAt: z.string().optional(),\n isPrimary: z.boolean(),\n createdAt: z.string(),\n});\n\nexport const ContactMethodValidator = z.discriminatedUnion('type', [\n z\n .object({\n type: z.literal('email'),\n value: z.string().email(),\n })\n .merge(contactMethodBase),\n z\n .object({\n type: z.literal('phone'),\n value: z.string(), // Can be improved with a regex later\n })\n .merge(contactMethodBase),\n]);\n\nexport type ContactMethodType = z.infer<typeof ContactMethodValidator>;\n\nconst createContactMethodBase = z.object({\n isVerified: z.boolean().optional(),\n isPrimary: z.boolean().optional(),\n});\n\nexport const ContactMethodCreateValidator = z.discriminatedUnion('type', [\n z\n .object({\n type: z.literal('email'),\n value: z.string().email(),\n })\n .merge(createContactMethodBase),\n z\n .object({\n type: z.literal('phone'),\n value: z.string(),\n })\n .merge(createContactMethodBase),\n]);\n\nexport type ContactMethodCreateType = z.infer<typeof ContactMethodCreateValidator>;\n\nexport const ContactMethodQueryValidator = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('email'),\n value: z.string().email(),\n }),\n z.object({\n type: z.literal('phone'),\n value: z.string(),\n }),\n]);\n\nexport type ContactMethodQueryType = z.infer<typeof ContactMethodQueryValidator>;\n\nexport const ContactMethodVerificationRequestValidator = z.object({\n value: z.string(),\n type: z.enum(['email', 'phone']),\n});\n\nexport type ContactMethodVerificationRequestType = z.infer<\n typeof ContactMethodVerificationRequestValidator\n>;\n\nexport const ContactMethodVerificationValidator = z.object({\n token: z.string(),\n});\n\nexport type ContactMethodVerificationType = z.infer<typeof ContactMethodVerificationValidator>;\n\nexport const SetPrimaryContactMethodValidator = z.object({\n contactMethodId: z.string(),\n});\n\nexport type SetPrimaryContactMethodType = z.infer<typeof SetPrimaryContactMethodValidator>;\n\n// Create Inbox Claim Session for a Contact Method\nexport const CreateContactMethodSessionValidator = z.object({\n contactMethod: ContactMethodVerificationRequestValidator,\n otpChallenge: z.string(),\n});\n\nexport type CreateContactMethodSessionType = z.infer<typeof CreateContactMethodSessionValidator>;\n\nexport const CreateContactMethodSessionResponseValidator = z.object({\n sessionJwt: z.string(),\n});\n\nexport type CreateContactMethodSessionResponseType = z.infer<\n typeof CreateContactMethodSessionResponseValidator\n>;\n\n// Inbox Credentials\nexport const InboxCredentialValidator = z.object({\n id: z.string(),\n credential: z.string(),\n isSigned: z.boolean(),\n currentStatus: LCNInboxStatusEnumValidator,\n isAccepted: z.boolean().optional(),\n expiresAt: z.string(),\n createdAt: z.string(),\n issuerDid: z.string(),\n webhookUrl: z.string().optional(),\n boostUri: z.string().optional(),\n activityId: z.string().optional(),\n integrationId: z.string().optional(),\n signingAuthority: z\n .object({\n endpoint: z.string().optional(),\n name: z.string().optional(),\n })\n .optional(),\n});\n\nexport type InboxCredentialType = z.infer<typeof InboxCredentialValidator>;\n\nexport const PaginatedInboxCredentialsValidator = z.object({\n hasMore: z.boolean(),\n records: z.array(InboxCredentialValidator),\n cursor: z.string().optional(),\n});\n\nexport type PaginatedInboxCredentialsType = z.infer<typeof PaginatedInboxCredentialsValidator>;\n\nexport const InboxCredentialQueryValidator = z\n .object({\n currentStatus: LCNInboxStatusEnumValidator,\n id: z.string(),\n isSigned: z.boolean(),\n isAccepted: z.boolean().optional(),\n issuerDid: z.string(),\n boostUri: z.string(),\n })\n .partial();\n\nexport type InboxCredentialQuery = z.infer<typeof InboxCredentialQueryValidator>;\n\nexport const IssueInboxSigningAuthorityValidator = z.object({\n endpoint: z.string().url(),\n name: z.string(),\n});\n\nexport type IssueInboxSigningAuthority = z.infer<typeof IssueInboxSigningAuthorityValidator>;\n\nexport const IssueInboxCredentialValidator = z\n .object({\n // === CORE DATA (Required) ===\n // WHAT is being sent and WHO is it for?\n recipient: ContactMethodQueryValidator.describe('The recipient of the credential'),\n\n // Either credential OR templateUri must be provided\n credential: VCValidator.or(VPValidator)\n .or(UnsignedVCValidator)\n .optional()\n .describe(\n 'The credential to issue. If not signed, the users default signing authority will be used, or the specified signing authority in the configuration.'\n ),\n templateUri: z\n .string()\n .optional()\n .describe(\n 'URI of a boost template to use for issuance. The boost credential will be resolved and used. Mutually exclusive with credential field.'\n ),\n\n // === OPTIONAL FEATURES ===\n // Add major, distinct features at the top level.\n //consentRequest: ConsentRequestValidator.optional(),\n\n // === PROCESS CONFIGURATION (Optional) ===\n // HOW should this issuance be handled?\n configuration: z\n .object({\n signingAuthority: IssueInboxSigningAuthorityValidator.optional().describe(\n 'The signing authority to use for the credential. If not provided, the users default signing authority will be used if the credential is not signed.'\n ),\n webhookUrl: z\n .string()\n .url()\n .optional()\n .describe('The webhook URL to receive credential issuance events.'),\n expiresInDays: z\n .number()\n .min(1)\n .max(365)\n .optional()\n .describe('The number of days the credential will be valid for.'),\n templateData: z\n .record(z.string(), z.unknown())\n .optional()\n .describe(\n 'Template data to render into the boost credential template using Mustache syntax. Only used when boostUri is provided.'\n ),\n // --- For User-Facing Delivery (Email/SMS) ---\n delivery: z\n .object({\n suppress: z\n .boolean()\n .optional()\n .default(false)\n .describe(\n 'Whether to suppress delivery of the credential to the recipient. If true, the email/sms will not be sent to the recipient. Useful if you would like to manually send claim link to your users.'\n ),\n template: z\n .object({\n id: z\n .enum(['universal-inbox-claim'])\n .optional()\n .describe(\n 'The template ID to use for the credential delivery. If not provided, the default template will be used.'\n ),\n model: z\n .object({\n issuer: z\n .object({\n name: z\n .string()\n .optional()\n .describe(\n 'The name of the organization (e.g., \"State University\").'\n ),\n logoUrl: z\n .string()\n .url()\n .optional()\n .describe(\n \"The URL of the organization's logo.\"\n ),\n })\n .optional(),\n credential: z\n .object({\n name: z\n .string()\n .optional()\n .describe(\n 'The name of the credential (e.g., \"Bachelor of Science\").'\n ),\n type: z\n .string()\n .optional()\n .describe(\n 'The type of the credential (e.g., \"degree\", \"certificate\").'\n ),\n })\n .optional(),\n recipient: z\n .object({\n name: z\n .string()\n .optional()\n .describe(\n 'The name of the recipient (e.g., \"John Doe\").'\n ),\n })\n .optional(),\n })\n .describe(\n 'The template model to use for the credential delivery. Injects via template variables into email/sms templates. If not provided, the default template will be used.'\n ),\n })\n .optional()\n .describe(\n 'The template to use for the credential delivery. If not provided, the default template will be used.'\n ),\n })\n .optional()\n .describe(\n 'Configuration for the credential delivery i.e. email or SMS. When credentials are sent to a user who has a verified email or phone associated with their account, delivery is skipped, and the credential will be sent using in-app notifications. If not provided, the default configuration will be used.'\n ),\n })\n .optional()\n .describe(\n 'Configuration for the credential issuance. If not provided, the default configuration will be used.'\n ),\n })\n .refine(data => data.credential || data.templateUri, {\n message: 'Either credential or templateUri must be provided.',\n path: ['credential'],\n });\n\nexport type IssueInboxCredentialType = z.infer<typeof IssueInboxCredentialValidator>;\n\nexport const IssueInboxCredentialResponseValidator = z.object({\n issuanceId: z.string(),\n status: LCNInboxStatusEnumValidator,\n recipient: ContactMethodQueryValidator,\n claimUrl: z.string().url().optional(),\n recipientDid: z.string().optional(),\n});\n\nexport type IssueInboxCredentialResponseType = z.infer<\n typeof IssueInboxCredentialResponseValidator\n>;\n\n/** A simple name reference that the server resolves to a boost template */\nexport const CredentialNameRefValidator = z.object({ name: z.string() }).passthrough();\n\nexport const ClaimInboxCredentialValidator = z.object({\n credential: VCValidator.or(VPValidator)\n .or(UnsignedVCValidator)\n .or(CredentialNameRefValidator)\n .describe('The credential to issue, or a { name } reference to resolve a boost template.'),\n configuration: z\n .object({\n publishableKey: z.string(),\n signingAuthorityName: z.string().optional(),\n listingId: z.string().optional(),\n listingSlug: z.string().optional(),\n })\n .optional(),\n});\n\nexport type ClaimInboxCredentialType = z.infer<typeof ClaimInboxCredentialValidator>;\n\n// Integrations\nexport const LCNDomainOrOriginValidator = z.union([\n z\n .string()\n .regex(\n /^(?:(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}|localhost|\\d{1,3}(?:\\.\\d{1,3}){3})(?::\\d{1,5})?$/,\n {\n message:\n 'Must be a valid domain (incl. subdomains), localhost, or IPv4, optionally with port',\n }\n ),\n z\n .string()\n .regex(\n /^https?:\\/\\/(?:(?:[a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}|localhost|\\d{1,3}(?:\\.\\d{1,3}){3})(?::\\d{1,5})?$/,\n { message: 'Must be a valid http(s) origin' }\n ),\n]);\n\nexport const LCNIntegrationStatusEnum = z.enum(['setup', 'active', 'paused']);\nexport type LCNIntegrationStatus = z.infer<typeof LCNIntegrationStatusEnum>;\n\nexport const LCNIntegrationValidator = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n publishableKey: z.string(),\n whitelistedDomains: z.array(LCNDomainOrOriginValidator).default([]),\n\n // Setup/onboarding status\n status: LCNIntegrationStatusEnum.default('setup'),\n guideType: z.string().optional(),\n guideState: z.record(z.string(), z.any()).optional(),\n\n // Timestamps\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type LCNIntegration = z.infer<typeof LCNIntegrationValidator>;\n\nexport const LCNIntegrationCreateValidator = z.object({\n name: z.string(),\n description: z.string().optional(),\n whitelistedDomains: z.array(LCNDomainOrOriginValidator).default([]),\n guideType: z.string().optional(),\n});\n\nexport type LCNIntegrationCreateType = z.infer<typeof LCNIntegrationCreateValidator>;\n\nexport const LCNIntegrationUpdateValidator = z.object({\n name: z.string().optional(),\n description: z.string().optional(),\n whitelistedDomains: z.array(LCNDomainOrOriginValidator).optional(),\n rotatePublishableKey: z.boolean().optional(),\n\n // Setup/onboarding updates\n status: LCNIntegrationStatusEnum.optional(),\n guideType: z.string().optional(),\n guideState: z.record(z.string(), z.any()).optional(),\n});\n\nexport type LCNIntegrationUpdateType = z.infer<typeof LCNIntegrationUpdateValidator>;\n\nexport const LCNIntegrationQueryValidator = z\n .object({\n id: StringQuery,\n name: StringQuery,\n description: StringQuery,\n status: StringQuery,\n guideType: StringQuery,\n })\n .partial();\n\nexport type LCNIntegrationQueryType = z.infer<typeof LCNIntegrationQueryValidator>;\n\nexport const PaginatedLCNIntegrationsValidator = PaginationResponseValidator.extend({\n records: LCNIntegrationValidator.array(),\n});\n\nexport type PaginatedLCNIntegrationsType = z.infer<typeof PaginatedLCNIntegrationsValidator>;\n\nexport const ClaimTokenValidator = z.object({\n token: z.string(),\n contactMethodId: z.string(),\n autoVerifyContactMethod: z.boolean().optional().default(false),\n createdAt: z.string(),\n expiresAt: z.string(),\n used: z.boolean(),\n});\n\nexport type ClaimTokenType = z.infer<typeof ClaimTokenValidator>;\n\nexport const TagValidator = z.object({\n id: z.string(),\n name: z.string().min(1),\n slug: z.string().min(1),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type TagType = z.infer<typeof TagValidator>;\n\nexport const SkillStatusEnum = z.enum(['active', 'archived']);\nexport type SkillStatus = z.infer<typeof SkillStatusEnum>;\n\nexport const SkillValidator = z.object({\n id: z.string(),\n statement: z.string(),\n description: z.string().optional(),\n code: z.string().optional(),\n icon: z.string().optional(),\n type: z.string().default('skill'),\n status: SkillStatusEnum.default('active'),\n frameworkId: z.string().optional(),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type SkillType = z.infer<typeof SkillValidator>;\n\nconst BaseSkillQueryValidator = z\n .object({\n id: StringQuery,\n statement: StringQuery,\n description: StringQuery,\n code: StringQuery,\n type: StringQuery,\n status: SkillStatusEnum.or(z.object({ $in: SkillStatusEnum.array() })),\n })\n .partial();\n\nexport const SkillQueryValidator = z.union([\n z.object({\n $or: BaseSkillQueryValidator.array(),\n }),\n BaseSkillQueryValidator,\n]);\n\nexport type SkillQuery = z.infer<typeof SkillQueryValidator>;\n\nexport const SkillSemanticSearchInputValidator = z.object({\n text: z.string().min(1),\n frameworkId: z.string().optional(),\n limit: z.number().int().min(1).max(200).default(50),\n});\n\nexport type SkillSemanticSearchInput = z.infer<typeof SkillSemanticSearchInputValidator>;\n\nexport const SkillSemanticSearchResultItemValidator = SkillValidator.extend({\n score: z.number(),\n});\n\nexport type SkillSemanticSearchResultItem = z.infer<typeof SkillSemanticSearchResultItemValidator>;\n\nexport const SkillSemanticSearchResultValidator = z.object({\n records: SkillSemanticSearchResultItemValidator.array(),\n});\n\nexport type SkillSemanticSearchResult = z.infer<typeof SkillSemanticSearchResultValidator>;\n\nexport const SkillFrameworkStatusEnum = z.enum(['active', 'archived']);\nexport type SkillFrameworkStatus = z.infer<typeof SkillFrameworkStatusEnum>;\n\nexport const SkillFrameworkValidator = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n image: z.string().optional(),\n sourceURI: z.string().url().optional(),\n isPublic: z.boolean().default(false),\n status: SkillFrameworkStatusEnum.default('active'),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type SkillFrameworkType = z.infer<typeof SkillFrameworkValidator>;\n\nexport const PaginatedSkillFrameworksValidator = PaginationResponseValidator.extend({\n records: SkillFrameworkValidator.array(),\n});\nexport type PaginatedSkillFrameworksType = z.infer<typeof PaginatedSkillFrameworksValidator>;\n\nexport type SkillTreeNode = SkillType & {\n children: SkillTreeNode[];\n hasChildren: boolean;\n childrenCursor?: string | null;\n};\n\nexport const SkillTreeNodeValidator: z.ZodType<SkillTreeNode> = SkillValidator.extend({\n children: z.array(z.lazy(() => SkillTreeNodeValidator)),\n hasChildren: z.boolean(),\n childrenCursor: z.string().nullable().optional(),\n});\n\nexport const PaginatedSkillTreeValidator = z.object({\n hasMore: z.boolean(),\n cursor: z.string().nullable(),\n records: z.array(SkillTreeNodeValidator),\n});\n\nexport type PaginatedSkillTree = z.infer<typeof PaginatedSkillTreeValidator>;\n\nexport interface SkillTreeInput {\n id?: string;\n statement: string;\n description?: string;\n code?: string;\n icon?: string;\n type?: string;\n status?: 'active' | 'archived';\n children?: SkillTreeInput[];\n}\n\nexport const SkillTreeNodeInputValidator: z.ZodType<SkillTreeInput> = z.lazy(() =>\n z.object({\n id: z.string().optional(),\n statement: z.string(),\n description: z.string().optional(),\n code: z.string().optional(),\n icon: z.string().optional(),\n type: z.string().optional(),\n status: SkillStatusEnum.optional(),\n children: z.array(SkillTreeNodeInputValidator).optional(),\n })\n);\n\nexport const LinkProviderFrameworkInputValidator = z.object({\n frameworkId: z.string(),\n});\n\nexport type LinkProviderFrameworkInputType = z.infer<typeof LinkProviderFrameworkInputValidator>;\n\nexport const CreateManagedFrameworkInputValidator = z.object({\n id: z.string().optional(),\n name: z.string().min(1),\n description: z.string().optional(),\n image: z.string().optional(),\n sourceURI: z.string().url().optional(),\n isPublic: z.boolean().optional(),\n status: SkillFrameworkStatusEnum.optional(),\n skills: z.array(SkillTreeNodeInputValidator).optional(),\n boostUris: z.array(z.string()).optional(),\n});\n\nexport type CreateManagedFrameworkInputType = z.infer<typeof CreateManagedFrameworkInputValidator>;\n\n// Back-compat alias for plugin naming\nexport type CreateManagedSkillFrameworkInput = CreateManagedFrameworkInputType;\n\nexport const UpdateFrameworkInputValidator = z\n .object({\n id: z.string(),\n name: z.string().min(1).optional(),\n description: z.string().optional(),\n image: z.string().optional(),\n sourceURI: z.string().url().optional(),\n isPublic: z.boolean().optional(),\n status: SkillFrameworkStatusEnum.optional(),\n })\n .refine(\n data =>\n data.name !== undefined ||\n data.description !== undefined ||\n data.image !== undefined ||\n data.sourceURI !== undefined ||\n data.isPublic !== undefined ||\n data.status !== undefined,\n {\n message: 'At least one field must be provided to update',\n path: ['name'],\n }\n );\n\nexport type UpdateFrameworkInputType = z.infer<typeof UpdateFrameworkInputValidator>;\n\n// Back-compat alias for plugin naming\nexport type UpdateSkillFrameworkInput = UpdateFrameworkInputType;\n\nexport const DeleteFrameworkInputValidator = z.object({ id: z.string() });\n\nexport type DeleteFrameworkInputType = z.infer<typeof DeleteFrameworkInputValidator>;\n\n// Back-compat alias for plugin naming\nexport type DeleteSkillFrameworkInput = DeleteFrameworkInputType;\n\nexport const CreateManagedFrameworkBatchInputValidator = z.object({\n frameworks: z\n .array(\n CreateManagedFrameworkInputValidator.extend({\n skills: z.array(SkillTreeNodeInputValidator).optional(),\n })\n )\n .min(1),\n});\n\nexport type CreateManagedFrameworkBatchInputType = z.infer<\n typeof CreateManagedFrameworkBatchInputValidator\n>;\n\n// Back-compat alias for plugin naming\nexport type CreateManagedSkillFrameworkBatchInput = CreateManagedFrameworkBatchInputType;\n\nexport const SkillFrameworkAdminInputValidator = z.object({\n frameworkId: z.string(),\n profileId: z.string(),\n});\n\nexport type SkillFrameworkAdminInputType = z.infer<typeof SkillFrameworkAdminInputValidator>;\n\nexport const SkillFrameworkIdInputValidator = z.object({ frameworkId: z.string() });\n\nexport type SkillFrameworkIdInputType = z.infer<typeof SkillFrameworkIdInputValidator>;\n\nexport const SkillFrameworkAdminsValidator = LCNProfileValidator.array();\n\nexport type SkillFrameworkAdminsType = z.infer<typeof SkillFrameworkAdminsValidator>;\n\nexport const SyncFrameworkInputValidator = z.object({ id: z.string() });\n\nexport type SyncFrameworkInput = z.infer<typeof SyncFrameworkInputValidator>;\n\nexport const AddTagInputValidator = z.object({\n slug: z.string().min(1),\n name: z.string().min(1),\n});\n\nexport type AddTagInput = z.infer<typeof AddTagInputValidator>;\n\nexport const CreateSkillInputValidator = z.object({\n frameworkId: z.string(),\n skill: SkillTreeNodeInputValidator,\n parentId: z.string().nullable().optional(),\n});\n\nexport type CreateSkillInput = z.infer<typeof CreateSkillInputValidator>;\n\nexport const UpdateSkillInputValidator = z\n .object({\n frameworkId: z.string(),\n id: z.string(),\n statement: z.string().optional(),\n description: z.string().optional(),\n code: z.string().optional(),\n icon: z.string().optional(),\n type: z.string().optional(),\n status: SkillStatusEnum.optional(),\n })\n .refine(\n data =>\n data.statement !== undefined ||\n data.description !== undefined ||\n data.code !== undefined ||\n data.icon !== undefined ||\n data.type !== undefined ||\n data.status !== undefined,\n {\n message: 'At least one field must be provided to update a skill',\n path: ['statement'],\n }\n );\n\nexport type UpdateSkillInput = z.infer<typeof UpdateSkillInputValidator>;\n\nexport const SkillDeletionStrategyValidator = z.enum(['recursive', 'reparent']);\nexport type SkillDeletionStrategy = z.infer<typeof SkillDeletionStrategyValidator>;\n\nexport const DeleteSkillInputValidator = z.object({\n frameworkId: z.string(),\n id: z.string(),\n strategy: SkillDeletionStrategyValidator.optional().default('reparent'),\n});\n\nexport type DeleteSkillInput = z.infer<typeof DeleteSkillInputValidator>;\n\nexport const CreateSkillsBatchInputValidator = z.object({\n frameworkId: z.string(),\n skills: z.array(SkillTreeNodeInputValidator).min(1),\n parentId: z.string().nullable().optional(),\n});\n\nexport type CreateSkillsBatchInput = z.infer<typeof CreateSkillsBatchInputValidator>;\n\nexport const ReplaceSkillFrameworkSkillsInputValidator = z.object({\n frameworkId: z.string(),\n skills: z.array(SkillTreeNodeInputValidator).min(0),\n});\n\nexport type ReplaceSkillFrameworkSkillsInput = z.infer<\n typeof ReplaceSkillFrameworkSkillsInputValidator\n>;\n\nexport const ReplaceSkillFrameworkSkillsResultValidator = z.object({\n created: z.number().int().min(0),\n updated: z.number().int().min(0),\n deleted: z.number().int().min(0),\n unchanged: z.number().int().min(0),\n total: z.number().int().min(0),\n});\n\nexport type ReplaceSkillFrameworkSkillsResult = z.infer<\n typeof ReplaceSkillFrameworkSkillsResultValidator\n>;\n\nexport const CountSkillsInputValidator = z.object({\n frameworkId: z.string(),\n skillId: z.string().optional(),\n recursive: z.boolean().optional().default(false),\n onlyCountCompetencies: z.boolean().optional().default(false),\n});\n\nexport type CountSkillsInput = z.infer<typeof CountSkillsInputValidator>;\n\nexport const CountSkillsResultValidator = z.object({\n count: z.number().int().min(0),\n});\n\nexport type CountSkillsResult = z.infer<typeof CountSkillsResultValidator>;\n\nexport const GetFullSkillTreeInputValidator = z.object({\n frameworkId: z.string(),\n});\n\nexport type GetFullSkillTreeInput = z.infer<typeof GetFullSkillTreeInputValidator>;\n\nexport const GetFullSkillTreeResultValidator = z.object({\n skills: z.array(SkillTreeNodeValidator),\n});\n\nexport type GetFullSkillTreeResult = z.infer<typeof GetFullSkillTreeResultValidator>;\n\nexport const GetSkillPathInputValidator = z.object({\n frameworkId: z.string(),\n skillId: z.string(),\n});\n\nexport type GetSkillPathInput = z.infer<typeof GetSkillPathInputValidator>;\n\nexport const GetSkillPathResultValidator = z.object({\n path: z.array(SkillValidator),\n});\n\nexport type GetSkillPathResult = z.infer<typeof GetSkillPathResultValidator>;\n\n// Composite return shapes\nexport const FrameworkWithSkillsValidator = z.object({\n framework: SkillFrameworkValidator,\n skills: PaginatedSkillTreeValidator,\n});\n\nexport type FrameworkWithSkills = z.infer<typeof FrameworkWithSkillsValidator>;\n\n// Aliases used by the plugin type definitions\nexport type CreateSkillTreeInput = SkillTreeInput;\n\n// App Store Listing\nexport const AppListingStatusValidator = z.enum(['DRAFT', 'PENDING_REVIEW', 'LISTED', 'ARCHIVED']);\nexport type AppListingStatus = z.infer<typeof AppListingStatusValidator>;\n\nexport const LaunchTypeValidator = z.enum([\n 'EMBEDDED_IFRAME',\n 'SECOND_SCREEN',\n 'DIRECT_LINK',\n 'CONSENT_REDIRECT',\n 'SERVER_HEADLESS',\n 'AI_TUTOR',\n]);\nexport type LaunchType = z.infer<typeof LaunchTypeValidator>;\n\nexport const PromotionLevelValidator = z.enum([\n 'FEATURED_CAROUSEL',\n 'CURATED_LIST',\n 'STANDARD',\n 'DEMOTED',\n]);\nexport type PromotionLevel = z.infer<typeof PromotionLevelValidator>;\n\nexport const AgeRatingValidator = z.enum(['4+', '9+', '12+', '17+']);\nexport type AgeRating = z.infer<typeof AgeRatingValidator>;\n\nexport const AppStoreListingValidator = z.object({\n listing_id: z.string(),\n slug: z.string().optional(),\n display_name: z.string(),\n tagline: z.string(),\n full_description: z.string(),\n icon_url: z.string(),\n app_listing_status: AppListingStatusValidator,\n launch_type: LaunchTypeValidator,\n launch_config_json: z.string(),\n category: z.string().optional(),\n promo_video_url: z.string().optional(),\n promotion_level: PromotionLevelValidator.optional(),\n ios_app_store_id: z.string().optional(),\n android_app_store_id: z.string().optional(),\n privacy_policy_url: z.string().optional(),\n terms_url: z.string().optional(),\n highlights: z.array(z.string()).optional(),\n screenshots: z.array(z.string()).optional(),\n hero_background_color: z.string().optional(),\n min_age: z.number().int().min(0).max(18).optional(),\n age_rating: AgeRatingValidator.optional(),\n});\n\nexport type AppStoreListing = z.infer<typeof AppStoreListingValidator>;\n\nexport const AppStoreListingCreateValidator = AppStoreListingValidator.omit({\n listing_id: true,\n app_listing_status: true,\n promotion_level: true,\n});\n\nexport type AppStoreListingCreateType = z.infer<typeof AppStoreListingCreateValidator>;\n\nexport const AppStoreListingUpdateValidator = AppStoreListingValidator.partial().omit({\n listing_id: true,\n app_listing_status: true,\n promotion_level: true,\n});\n\nexport type AppStoreListingUpdateType = z.infer<typeof AppStoreListingUpdateValidator>;\n\nexport const InstalledAppValidator = AppStoreListingValidator.extend({\n installed_at: z.string(),\n});\n\nexport type InstalledApp = z.infer<typeof InstalledAppValidator>;\n\nexport const PaginatedAppStoreListingsValidator = PaginationResponseValidator.extend({\n records: AppStoreListingValidator.array(),\n});\n\nexport type PaginatedAppStoreListings = z.infer<typeof PaginatedAppStoreListingsValidator>;\n\nexport const PaginatedInstalledAppsValidator = PaginationResponseValidator.extend({\n records: InstalledAppValidator.array(),\n});\n\nexport type PaginatedInstalledApps = z.infer<typeof PaginatedInstalledAppsValidator>;\n\n// App Store Boost Association\nexport const AppBoostValidator = z.object({\n templateAlias: z\n .string()\n .min(1)\n .max(50)\n .regex(/^[a-z0-9-]+$/),\n boostUri: z.string(),\n});\n\nexport type AppBoost = z.infer<typeof AppBoostValidator>;\n\n// App Event Types (discriminated union for type safety)\nexport const SendCredentialEventValidator = z.object({\n type: z.literal('send-credential'),\n templateAlias: z.string(),\n templateData: z.record(z.string(), z.unknown()).optional(),\n preventDuplicateClaim: z.boolean().optional(),\n});\n\nexport type SendCredentialEvent = z.infer<typeof SendCredentialEventValidator>;\n\nexport const CheckCredentialEventValidator = z\n .object({\n type: z.literal('check-credential'),\n templateAlias: z.string().optional(),\n boostUri: z.string().optional(),\n })\n .refine(input => Boolean(input.templateAlias) !== Boolean(input.boostUri), {\n message: 'Exactly one of templateAlias or boostUri is required',\n });\n\nexport type CheckCredentialEvent = z.infer<typeof CheckCredentialEventValidator>;\n\nexport const CheckIssuanceStatusEventValidator = z\n .object({\n type: z.literal('check-issuance-status'),\n templateAlias: z.string().optional(),\n boostUri: z.string().optional(),\n recipient: z.string(),\n })\n .refine(input => Boolean(input.templateAlias) !== Boolean(input.boostUri), {\n message: 'Exactly one of templateAlias or boostUri is required',\n });\n\nexport type CheckIssuanceStatusEvent = z.infer<typeof CheckIssuanceStatusEventValidator>;\n\nexport const GetTemplateRecipientsEventValidator = z\n .object({\n type: z.literal('get-template-recipients'),\n templateAlias: z.string().optional(),\n boostUri: z.string().optional(),\n limit: z.number().optional(),\n cursor: z.string().optional(),\n })\n .refine(input => Boolean(input.templateAlias) !== Boolean(input.boostUri), {\n message: 'Exactly one of templateAlias or boostUri is required',\n });\n\nexport type GetTemplateRecipientsEvent = z.infer<typeof GetTemplateRecipientsEventValidator>;\n\n// Add new event types here as the union grows\nexport const AppEventValidator = z.discriminatedUnion('type', [\n SendCredentialEventValidator,\n CheckCredentialEventValidator,\n CheckIssuanceStatusEventValidator,\n GetTemplateRecipientsEventValidator,\n]);\n\nexport type AppEvent = z.infer<typeof AppEventValidator>;\n\n// Full input including listingId (used by brain service)\nexport const AppEventInputValidator = z.object({\n listingId: z.string(),\n event: AppEventValidator,\n});\n\nexport type AppEventInput = z.infer<typeof AppEventInputValidator>;\n\n// Response is generic since different events may return different data\nexport const AppEventResponseValidator = z.record(z.string(), z.unknown());\n\nexport type AppEventResponse = z.infer<typeof AppEventResponseValidator>;\n// Credential Activity\nexport const CredentialActivityEventTypeValidator = z.enum([\n 'CREATED',\n 'DELIVERED',\n 'CLAIMED',\n 'EXPIRED',\n 'FAILED',\n]);\nexport type CredentialActivityEventType = z.infer<typeof CredentialActivityEventTypeValidator>;\n\nexport const CredentialActivityRecipientTypeValidator = z.enum(['profile', 'email', 'phone']);\nexport type CredentialActivityRecipientType = z.infer<\n typeof CredentialActivityRecipientTypeValidator\n>;\n\nexport const CredentialActivitySourceTypeValidator = z.enum([\n 'send',\n 'sendBoost',\n 'sendCredential',\n 'contract',\n 'claim',\n 'inbox',\n 'claimLink',\n 'acceptCredential',\n 'appEvent',\n]);\nexport type CredentialActivitySourceType = z.infer<typeof CredentialActivitySourceTypeValidator>;\n\nexport const CredentialActivityValidator = z.object({\n id: z.string(),\n activityId: z.string(),\n eventType: CredentialActivityEventTypeValidator,\n timestamp: z.string(),\n actorProfileId: z.string(),\n recipientType: CredentialActivityRecipientTypeValidator,\n recipientIdentifier: z.string(),\n boostUri: z.string().optional(),\n credentialUri: z.string().optional(),\n inboxCredentialId: z.string().optional(),\n integrationId: z.string().optional(),\n source: CredentialActivitySourceTypeValidator,\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\nexport type CredentialActivityRecord = z.infer<typeof CredentialActivityValidator>;\n\nexport const CredentialActivityWithDetailsValidator = CredentialActivityValidator.extend({\n boost: z\n .object({\n id: z.string(),\n name: z.string().optional(),\n category: z.string().optional(),\n })\n .optional(),\n recipientProfile: z\n .object({\n profileId: z.string(),\n displayName: z.string().optional(),\n })\n .optional(),\n});\nexport type CredentialActivityWithDetails = z.infer<typeof CredentialActivityWithDetailsValidator>;\n\nexport const PaginatedCredentialActivitiesValidator = PaginationResponseValidator.extend({\n records: CredentialActivityWithDetailsValidator.array(),\n});\nexport type PaginatedCredentialActivities = z.infer<typeof PaginatedCredentialActivitiesValidator>;\n\nexport const CredentialActivityStatsValidator = z.object({\n total: z.number(),\n created: z.number(),\n delivered: z.number(),\n claimed: z.number(),\n expired: z.number(),\n failed: z.number(),\n claimRate: z.number(),\n});\nexport type CredentialActivityStats = z.infer<typeof CredentialActivityStatsValidator>;\n", "import { z } from 'zod';\n\n// Helper to extract flags and pattern from regex string\nconst parseRegexString = (regexStr: string) => {\n const match = regexStr.match(/^\\/(.*)\\/([gimsuy]*)$/);\n if (!match) throw new Error('Invalid RegExp string format');\n return { pattern: match[1], flags: match[2] };\n};\n\n// TRPC validator that converts Regex strings into RegExps\nconst RegExpStringValidator = z\n .string()\n .refine(\n str => {\n try {\n parseRegexString(str);\n return true;\n } catch {\n return false;\n }\n },\n {\n message: \"Invalid RegExp string format. Must be in format '/pattern/flags'\",\n }\n )\n .transform(str => {\n const { pattern, flags } = parseRegexString(str);\n\n try {\n return new RegExp(pattern, flags);\n } catch (error) {\n throw new Error(`Invalid RegExp: ${(error as Error).message}`);\n }\n })\n .meta({ override: { type: 'string' } });\n\nexport const RegExpValidator = z\n .instanceof(RegExp)\n .meta({ override: { type: 'string' } })\n .or(RegExpStringValidator)\n .meta({ override: { type: 'string' } });\n\nconst BaseStringQuery = z\n .string()\n .or(z.object({ $in: z.string().array() }))\n .or(z.object({ $regex: RegExpValidator.meta({ override: { type: 'string' } }) }));\n\nexport const StringQuery = z.union([\n BaseStringQuery,\n z.object({\n $or: BaseStringQuery.array(),\n }),\n]);\n", "/**\n * Provider-agnostic interfaces for authentication and key derivation.\n *\n * Both @learncard/sss-key-manager and learn-card-base import from here,\n * ensuring a single canonical source for abstract interfaces without\n * coupling consumers to any specific implementation.\n */\n\n// ---------------------------------------------------------------------------\n// Auth Session Error\n// ---------------------------------------------------------------------------\n\n/**\n * Typed error for auth session issues.\n * Auth providers should throw this (instead of generic Error) when the\n * session is expired, revoked, or missing so the coordinator can\n * distinguish \"not logged in\" from \"unexpected failure\".\n */\nexport class AuthSessionError extends Error {\n constructor(\n message: string,\n public readonly reason: 'expired' | 'no_session' | 'revoked' | 'network'\n ) {\n super(message);\n this.name = 'AuthSessionError';\n }\n}\n\n// ---------------------------------------------------------------------------\n// Auth Provider\n// ---------------------------------------------------------------------------\n\n/**\n * Auth provider identifier. Known values: 'firebase', 'supertokens', 'keycloak', 'oidc'.\n * Use any string to support custom auth providers without modifying this type.\n */\nexport type AuthProviderType = string;\n\nexport interface AuthUser {\n id: string;\n email?: string;\n phone?: string;\n displayName?: string;\n photoUrl?: string;\n providerType: AuthProviderType;\n\n /** Account creation timestamp (when available from the auth provider) */\n createdAt?: Date;\n}\n\n/**\n * Abstract auth provider interface.\n * Implementations wrap a specific auth SDK (Firebase, Supertokens, etc.)\n * and expose a uniform API to the coordinator.\n */\nexport interface AuthProvider {\n getIdToken(forceRefresh?: boolean): Promise<string>;\n getCurrentUser(): Promise<AuthUser | null>;\n getProviderType(): AuthProviderType;\n signOut(): Promise<void>;\n\n /**\n * Attempt to silently refresh the auth session (e.g., force-refresh\n * the JWT using the underlying refresh token).\n *\n * Returns `true` if the session was successfully refreshed.\n * Returns `false` if a full re-authentication is required.\n *\n * Optional \u2014 providers that don't implement this will require full\n * re-auth whenever the session expires.\n */\n refreshSession?(): Promise<boolean>;\n\n /**\n * Re-authenticate with a server-issued token (e.g., a Firebase custom\n * token returned after a server-side account change that invalidates\n * the current session).\n *\n * Returns the refreshed AuthUser read directly from the auth SDK\n * (not from the app store, which may be stale).\n *\n * Optional \u2014 only needed by providers whose server-side account\n * mutations invalidate the client session.\n */\n reauthenticateWithToken?(token: string): Promise<AuthUser | null>;\n}\n\n// ---------------------------------------------------------------------------\n// Sign-In Adapter (Phase 2)\n// ---------------------------------------------------------------------------\n\n/**\n * Opaque handle returned by `sendPhoneOtp()`.\n * On web this wraps a ConfirmationResult; on native it carries a verificationId.\n * Consumers pass this back to `confirmPhoneOtp()` \u2014 never inspect internals.\n */\nexport interface PhoneVerificationHandle {\n verificationId: string;\n\n /** Platform-specific confirmation object (e.g. Firebase ConfirmationResult) */\n _internal?: unknown;\n}\n\n/**\n * Abstract sign-in adapter interface.\n *\n * Encapsulates **all** provider-specific sign-in logic (Firebase, Supertokens,\n * Keycloak, \u2026). Apps register a concrete adapter at startup via\n * `registerSignInAdapterFactory()` and resolve it through the provider registry.\n *\n * The `subscribe()` method is the **single source of truth** for auth state:\n * `SignInAdapterProvider` calls it once and writes every state change to\n * `authUserStore`, replacing the Phase 1 bridge.\n *\n * Individual sign-in methods return `Promise<AuthUser>` on success and throw\n * on failure \u2014 the app-level hook (`useFirebase` / `useAuth`) handles UI\n * feedback (toasts, modals, analytics).\n */\nexport interface SignInAdapter {\n readonly providerType: AuthProviderType;\n\n // --- Auth state ---\n\n /**\n * Subscribe to auth-state changes. The callback fires immediately with\n * the current state and again on every sign-in / sign-out.\n *\n * Returns an unsubscribe function.\n */\n subscribe(onUser: (user: AuthUser | null) => void): () => void;\n\n /** Synchronous snapshot of the last user emitted by `subscribe()`. */\n getCurrentUser(): AuthUser | null;\n\n // --- Email link (passwordless) ---\n\n sendEmailLink(email: string, redirectUrl?: string): Promise<void>;\n\n verifyEmailLink(email: string, link: string): Promise<AuthUser>;\n\n isEmailLink(link: string): boolean;\n\n // --- Phone OTP ---\n\n /**\n * Send an SMS OTP to the given number.\n * On web this sets up a RecaptchaVerifier transparently.\n */\n sendPhoneOtp(phoneNumber: string): Promise<PhoneVerificationHandle>;\n\n /**\n * Confirm a phone OTP using the handle returned by `sendPhoneOtp()`.\n */\n confirmPhoneOtp(handle: PhoneVerificationHandle, code: string | number): Promise<AuthUser>;\n\n /**\n * Confirm a phone OTP using a native verificationId (Capacitor auto-verify\n * path). Falls back to `confirmPhoneOtp` when not implemented.\n */\n confirmNativePhoneOtp?(verificationId: string, code: string | number): Promise<AuthUser>;\n\n // --- OAuth ---\n\n signInWithGoogle(): Promise<AuthUser>;\n\n signInWithApple(): Promise<AuthUser>;\n\n /** Check for a pending OAuth redirect result (e.g. Apple on web). */\n checkRedirectResult?(): Promise<AuthUser | null>;\n\n // --- Custom / SSO ---\n\n signInWithCustomToken(token: string): Promise<AuthUser>;\n\n /** Sign in with an OIDC credential (e.g. Keycloak World Scouts SSO). */\n signInWithOidcCredential?(providerId: string, idToken: string): Promise<AuthUser>;\n\n // --- Account management ---\n\n deleteAccount(): Promise<void>;\n\n signOut(): Promise<void>;\n\n // --- Cleanup ---\n\n /** Tear down any DOM elements created by the adapter (e.g. RecaptchaVerifier). */\n cleanup?(): void;\n}\n\n// ---------------------------------------------------------------------------\n// Recovery (generic)\n// ---------------------------------------------------------------------------\n\n/**\n * Recovery method metadata returned by the server.\n * The `type` is a string so strategies can define their own method types\n * without modifying this interface.\n */\nexport interface RecoveryMethodInfo {\n type: string;\n createdAt: Date;\n credentialId?: string;\n}\n\n/**\n * Generic result of a successful recovery execution.\n * All strategies must produce a private key + DID.\n */\nexport interface RecoveryResult {\n privateKey: string;\n did: string;\n}\n\n// ---------------------------------------------------------------------------\n// Server Key Status\n// ---------------------------------------------------------------------------\n\n/**\n * Server key status returned by the strategy's fetchServerKeyStatus.\n * The strategy owns the server shape \u2014 different strategies may\n * have fundamentally different server payloads.\n */\nexport interface ServerKeyStatus {\n exists: boolean;\n needsMigration: boolean;\n primaryDid: string | null;\n recoveryMethods: RecoveryMethodInfo[];\n authShare: string | null;\n shareVersion: number | null;\n maskedRecoveryEmail?: string | null;\n}\n\n// ---------------------------------------------------------------------------\n// Key Derivation Capabilities\n// ---------------------------------------------------------------------------\n\n/**\n * Declarative capability flags for a key derivation strategy.\n *\n * UI components read these to decide which features to show.\n * Each strategy declares its own capabilities \u2014 no strategy-specific\n * checks needed in the UI layer.\n *\n * All flags default to `false` when absent.\n *\n * @example\n * ```ts\n * // SSS declares full capabilities:\n * capabilities: { recovery: true, deviceLinking: true, localKeyPersistence: true }\n *\n * // Web3Auth derives keys on-demand, nothing local to manage:\n * capabilities: { recovery: false, deviceLinking: false, localKeyPersistence: false }\n * ```\n */\nexport interface KeyDerivationCapabilities {\n /** Strategy supports user-facing recovery methods (setup + execution) */\n recovery: boolean;\n\n /** Strategy supports cross-device key transfer (e.g., QR-based device linking) */\n deviceLinking: boolean;\n\n /**\n * Strategy persists key material locally (e.g., device share in IndexedDB).\n * When true, \"public computer\" / \"forget device\" features are relevant.\n */\n localKeyPersistence: boolean;\n\n /**\n * Strategy supports upgrading the user's contact method (e.g., phone \u2192 email).\n * When true, the `upgradeContactMethod` method is available and the\n * email-linking gate can be shown for phone-only users.\n */\n contactMethodUpgrade: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Key Derivation Strategy (generic)\n// ---------------------------------------------------------------------------\n\n/**\n * Key Derivation Strategy\n *\n * Abstract interface for different key derivation implementations.\n * Used by AuthCoordinator to delegate key operations.\n *\n * The strategy owns:\n * - Local key storage\n * - Key splitting and reconstruction\n * - Server communication for remote key components\n * - Recovery method execution and setup\n * - Storage cleanup knowledge\n *\n * Type parameters allow each strategy to define its own recovery shapes:\n * - TRecoveryInput: what the user provides to recover (e.g., password, passkey)\n * - TRecoverySetupInput: what the user provides to set up a recovery method\n * - TRecoverySetupResult: what setup returns (e.g., generated phrase, credential ID)\n *\n * @example\n * // SSS strategy with specific recovery types:\n * type SSSStrategy = KeyDerivationStrategy<SSSRecoveryInput, SSSRecoverySetupInput, SSSRecoverySetupResult>;\n *\n * // Simple strategy with no recovery:\n * type SimpleStrategy = KeyDerivationStrategy<never, never, never>;\n */\nexport interface KeyDerivationStrategy<\n TRecoveryInput = unknown,\n TRecoverySetupInput = unknown,\n TRecoverySetupResult = unknown,\n> {\n readonly name: string;\n\n /** Declarative feature flags \u2014 UI reads these to gate features */\n readonly capabilities: KeyDerivationCapabilities;\n\n // --- Key lifecycle ---\n\n /** Check if there's a local key component (e.g., device share) */\n hasLocalKey(): Promise<boolean>;\n\n /** Get the local key component */\n getLocalKey(): Promise<string | null>;\n\n /** Store a local key component */\n storeLocalKey(key: string): Promise<void>;\n\n /** Clear all local key data */\n clearLocalKeys(): Promise<void>;\n\n /** Split a private key into shares/components */\n splitKey(privateKey: string): Promise<{ localKey: string; remoteKey: string }>;\n\n /** Reconstruct private key from components */\n reconstructKey(localKey: string, remoteKey: string): Promise<string>;\n\n /** Verify that stored keys can reconstruct the expected DID */\n verifyKeys?(\n localKey: string,\n remoteKey: string,\n expectedDid: string,\n didFromPrivateKey: (pk: string) => Promise<string>\n ): Promise<boolean>;\n\n // --- Server communication ---\n\n /** Fetch the server-side key status for the authenticated user */\n fetchServerKeyStatus(token: string, providerType: AuthProviderType): Promise<ServerKeyStatus>;\n\n /** Store the remote key component on the server */\n storeAuthShare(token: string, providerType: AuthProviderType, remoteKey: string, did: string, didAuthVp?: string): Promise<void>;\n\n /** Mark migration complete on the server (optional \u2014 only needed for migration-capable strategies) */\n markMigrated?(token: string, providerType: AuthProviderType, didAuthVp?: string): Promise<void>;\n\n // --- Recovery ---\n\n /** Execute a recovery flow and return the recovered private key + DID */\n executeRecovery(params: {\n token: string;\n providerType: AuthProviderType;\n input: TRecoveryInput;\n /** Optional: validate the reconstructed key's DID before rotating shares */\n didFromPrivateKey?: (privateKey: string) => Promise<string>;\n }): Promise<RecoveryResult>;\n\n /** Set up a new recovery method */\n setupRecoveryMethod?(params: {\n token: string;\n providerType: AuthProviderType;\n privateKey: string;\n input: TRecoverySetupInput;\n authUser?: AuthUser;\n /** Optional: sign a DID-Auth VP JWT for server write operations */\n signDidAuthVp?: (privateKey: string) => Promise<string>;\n }): Promise<TRecoverySetupResult>;\n\n /** Get configured recovery methods for the authenticated user */\n getAvailableRecoveryMethods?(token: string, providerType: AuthProviderType): Promise<RecoveryMethodInfo[]>;\n\n // --- Contact method management ---\n\n /**\n * Verify email ownership and upgrade the user's contact method on the\n * server (e.g., phone \u2192 email). The server verifies the OTP code, links\n * the email to the auth account (passwordless), and atomically updates\n * the UserKey contact method.\n *\n * Strategies that don't manage server-side contact methods can omit this.\n *\n * @param token - Auth token for the current session\n * @param providerType - Auth provider type\n * @param previousPhone - The phone number being replaced\n * @param email - The new email address (already OTP-verified client-side)\n * @param code - The 6-digit verification code\n */\n upgradeContactMethod?(\n token: string,\n providerType: AuthProviderType,\n previousPhone: string,\n email: string,\n code: string\n ): Promise<{ customToken?: string } | void>;\n\n // --- Email backup ---\n\n /**\n * Send a backup share to the user's email for fail-safe recovery.\n * Called by the coordinator after key setup or migration.\n * Implementation should be fire-and-forget (non-fatal on failure).\n *\n * @param token - Auth token for server communication\n * @param providerType - Auth provider type\n * @param privateKey - The private key to derive the email share from\n * @param email - Destination email address\n */\n sendEmailBackupShare?(\n token: string,\n providerType: AuthProviderType,\n privateKey: string,\n email: string\n ): Promise<void>;\n\n // --- Share versioning ---\n\n /**\n * Get the share version associated with the local device share.\n * Used to request the matching auth share from the server and to\n * include in QR cross-device transfers.\n *\n * Returns null for legacy shares with no stored version.\n */\n getLocalShareVersion?(): Promise<number | null>;\n\n /**\n * Store the share version for the local device share.\n * Called after receiving a device share + version via QR transfer.\n */\n storeLocalShareVersion?(version: number): Promise<void>;\n\n // --- User scoping ---\n\n /**\n * Inform the strategy which user is active so it can scope local storage\n * (e.g., device shares) per-user. Called by the coordinator after\n * authentication, before any local-key operations.\n *\n * Strategies that don't need per-user scoping can omit this method.\n *\n * @param userId - Stable, unique identifier for the authenticated user\n * (e.g., Firebase UID). Must NOT change across sessions.\n */\n setActiveUser?(userId: string): void;\n\n // --- Cleanup ---\n\n /** Return storage keys (e.g., IndexedDB database names) that should be preserved during logout */\n getPreservedStorageKeys(): string[];\n\n /** Strategy-specific cleanup beyond clearLocalKeys (optional) */\n cleanup?(): Promise<void>;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z"]
7
7
  }