ltijs
Version:
Easily turn your web application into a LTI 1.3 Learning Tool.
64 lines • 3.44 kB
JavaScript
"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(),
[]: zod_1.z.string(),
[]: zod_1.z.string(),
[]: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
[]: zod_1.z.string().optional(),
[]: zod_1.z.number().optional(),
[]: zod_1.z.number().optional(),
[]: zod_1.z.string().optional(),
[]: zod_1.z.string().optional(),
[]: zod_1.z.string().optional(),
[]: zod_1.z.string().optional(),
[]: zod_1.z.string().optional(),
[]: zod_1.z.string(),
[]: zod_1.z.string(),
[]: zod_1.z.string(),
[]: zod_1.z.enum(id_token_constants_1.LtiMessageType),
[]: zod_1.z.string(),
[]: zod_1.z.array(zod_1.z.string()),
[]: 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