UNPKG

ltijs

Version:

Easily turn your web application into a LTI 1.3 Learning Tool.

64 lines • 3.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IdTokenRecordSchema = exports.AccessTokenRecordSchema = exports.PlatformRecordSchema = exports.PlatformKeysSchema = exports.IdTokenValidationSchema = void 0; const zod_1 = require("zod"); const id_token_constants_1 = require("#services/launch/id-token.constants"); const platform_manager_constants_1 = require("#services/platform-manager/platform-manager.constants"); // `MongoLegacyDatabaseManager`'s own validation of what it reads back out of // Mongo, against its own document shapes -- independent of // `../mongo/mongo-database-manager.schemas.ts` by design (see this module's // directory-level isolation convention), even though the shared public // `PlatformRecord`/`AccessTokenRecord`/`IdTokenRecord` shapes being validated // against are identical. exports.IdTokenValidationSchema = zod_1.z.object({ method: zod_1.z.enum(platform_manager_constants_1.IdTokenValidationMethod), key: zod_1.z.string(), }); exports.PlatformKeysSchema = zod_1.z.object({ public: zod_1.z.string(), private: zod_1.z.string(), }); exports.PlatformRecordSchema = zod_1.z.object({ id: zod_1.z.string(), url: zod_1.z.string(), clientId: zod_1.z.string(), name: zod_1.z.string(), authenticationEndpoint: zod_1.z.string(), accessTokenEndpoint: zod_1.z.string(), authorizationServer: zod_1.z.string().optional(), idTokenValidation: exports.IdTokenValidationSchema, active: zod_1.z.boolean(), keys: exports.PlatformKeysSchema, }); exports.AccessTokenRecordSchema = zod_1.z.object({ access_token: zod_1.z.string(), token_type: zod_1.z.string(), expires_in: zod_1.z.number(), scope: zod_1.z.string().optional(), createdAt: zod_1.z.number(), }); exports.IdTokenRecordSchema = zod_1.z .object({ id: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.Iss]: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.Sub]: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.Aud]: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(), [id_token_constants_1.IdTokenClaim.Azp]: zod_1.z.string().optional(), [id_token_constants_1.IdTokenClaim.Exp]: zod_1.z.number().optional(), [id_token_constants_1.IdTokenClaim.Iat]: zod_1.z.number().optional(), [id_token_constants_1.IdTokenClaim.Nonce]: zod_1.z.string().optional(), [id_token_constants_1.IdTokenClaim.GivenName]: zod_1.z.string().optional(), [id_token_constants_1.IdTokenClaim.FamilyName]: zod_1.z.string().optional(), [id_token_constants_1.IdTokenClaim.Name]: zod_1.z.string().optional(), [id_token_constants_1.IdTokenClaim.Email]: zod_1.z.string().optional(), [id_token_constants_1.IdTokenClaim.ClientId]: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.PlatformId]: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.DeploymentId]: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.MessageType]: zod_1.z.enum(id_token_constants_1.LtiMessageType), [id_token_constants_1.IdTokenClaim.Version]: zod_1.z.string(), [id_token_constants_1.IdTokenClaim.Roles]: zod_1.z.array(zod_1.z.string()), [id_token_constants_1.IdTokenClaim.TargetLinkUri]: zod_1.z.string().optional(), }) // Platforms/tools may attach further custom claims beyond the ones validated above. .loose(); //# sourceMappingURL=mongo-legacy-database-manager.schemas.js.map