summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/server/api/endpoints.ts')
-rw-r--r--packages/backend/src/server/api/endpoints.ts20
1 files changed, 19 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints.ts b/packages/backend/src/server/api/endpoints.ts
index e458d720ab..41232091c6 100644
--- a/packages/backend/src/server/api/endpoints.ts
+++ b/packages/backend/src/server/api/endpoints.ts
@@ -4,6 +4,7 @@
*/
import type { Schema } from '@/misc/json-schema.js';
+import { permissions } from 'misskey-js';
import { RolePolicies } from '@/core/RoleService.js';
import * as ep___admin_meta from './endpoints/admin/meta.js';
@@ -724,7 +725,7 @@ const eps = [
['retention', ep___retention],
];
-export interface IEndpointMeta {
+interface IEndpointMetaBase {
readonly stability?: 'deprecated' | 'experimental' | 'stable';
readonly tags?: ReadonlyArray<string>;
@@ -823,6 +824,23 @@ export interface IEndpointMeta {
readonly cacheSec?: number;
}
+export type IEndpointMeta = (Omit<IEndpointMetaBase, 'requireCrential' | 'requireModerator' | 'requireAdmin'> & {
+ requireCredential?: false,
+ requireAdmin?: false,
+ requireModerator?: false,
+}) | (Omit<IEndpointMetaBase, 'secure'> & {
+ secure: true,
+}) | (Omit<IEndpointMetaBase, 'requireCredential' | 'kind'> & {
+ requireCredential: true,
+ kind: (typeof permissions)[number],
+}) | (Omit<IEndpointMetaBase, 'requireModerator' | 'kind'> & {
+ requireModerator: true,
+ kind: (typeof permissions)[number],
+}) | (Omit<IEndpointMetaBase, 'requireAdmin' | 'kind'> & {
+ requireAdmin: true,
+ kind: (typeof permissions)[number],
+})
+
export interface IEndpoint {
name: string;
meta: IEndpointMeta;