@skyway-sdk/token
Version:
The official Next Generation JavaScript SDK for SkyWay
47 lines • 1.68 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthTokenSchema = void 0;
const zod_1 = require("zod");
const v1_2_1 = require("./scope/v1-2");
const v3_1 = require("./scope/v3");
const authTokenBaseSchema = zod_1.z.object({
/** トークンのユニークなid(uuid) */
jti: zod_1.z.string().uuid(),
/** トークンが発行された日時(UNIX timestamp) */
iat: zod_1.z.number().nonnegative(),
/** このトークンが無効になる時間を表すタイムスタンプ(UNIX timestamp) */
exp: zod_1.z.number().nonnegative(),
});
const authTokenV1_2Schema = zod_1.z.intersection(authTokenBaseSchema, zod_1.z.object({
/**
* tokenの権限を表すクレーム[version:1,2,undefined]
* */
scope: zod_1.z.object({
app: v1_2_1.appScopeSchema,
}),
/**
* tokenのバージョン[version:1,2,undefined]
* - 未指定やundefinedの場合は1として扱われます。
* - 3の場合とでscopeの構造に違いがあります。
* */
version: zod_1.z
.union([zod_1.z.literal(1), zod_1.z.literal(2), zod_1.z.literal(undefined)])
.optional(),
}));
const authTokenV3Schema = zod_1.z.intersection(authTokenBaseSchema, zod_1.z.object({
/**
* tokenの権限を表すクレーム[version:3]
* */
scope: v3_1.scopeV3Schema,
/**
* tokenのバージョン[version:3]
* - 2以下の場合とでscopeの構造に違いがあります。
* */
version: zod_1.z.literal(3),
}));
/**@internal */
exports.AuthTokenSchema = zod_1.z.union([
authTokenV1_2Schema,
authTokenV3Schema,
]);
//# sourceMappingURL=token.js.map