This commit is contained in:
かっこかり 2024-11-07 19:24:17 +09:00 committed by GitHub
commit 772133d145
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 71 additions and 40 deletions

View File

@ -40,6 +40,7 @@
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709)
### Misskey.js
- Enhance: `/miauth/{sessionId}/check` の型を追加
- Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正
## 2024.10.1

View File

@ -1160,6 +1160,13 @@ export type Endpoints = Overwrite<Endpoints_2, {
};
};
};
'admin/roles/create': {
req: Overwrite<AdminRolesCreateRequest, {
policies: PartialRolePolicyOverride;
}>;
res: AdminRolesCreateResponse;
};
}> & {
'signup': {
req: SignupRequest;
res: SignupResponse;
@ -1188,13 +1195,11 @@ export type Endpoints = Overwrite<Endpoints_2, {
};
};
};
'admin/roles/create': {
req: Overwrite<AdminRolesCreateRequest, {
policies: PartialRolePolicyOverride;
}>;
res: AdminRolesCreateResponse;
[ep: `miauth/${string}/check`]: {
req: EmptyRequest;
res: MiAuthCheckResponse;
};
}>;
};
// @public (undocumented)
type EndpointsResponse = operations['endpoints']['responses']['200']['content']['application/json'];
@ -1223,6 +1228,7 @@ declare namespace entities {
SigninWithPasskeyRequest,
SigninWithPasskeyInitResponse,
SigninWithPasskeyResponse,
MiAuthCheckResponse,
PartialRolePolicyOverride,
EmptyRequest,
EmptyResponse,
@ -2439,6 +2445,15 @@ type MetaRequest = operations['meta']['requestBody']['content']['application/jso
// @public (undocumented)
type MetaResponse = operations['meta']['responses']['200']['content']['application/json'];
// @public (undocumented)
type MiAuthCheckResponse = {
ok: true;
token: string;
user: UserDetailedNotMe;
} | {
ok: false;
};
// @public (undocumented)
type MiauthGenTokenRequest = operations['miauth___gen-token']['requestBody']['content']['application/json'];

View File

@ -1,6 +1,6 @@
import { Endpoints as Gen } from './autogen/endpoint.js';
import { UserDetailed } from './autogen/models.js';
import { AdminRolesCreateRequest, AdminRolesCreateResponse, UsersShowRequest } from './autogen/entities.js';
import { AdminRolesCreateRequest, AdminRolesCreateResponse, UsersShowRequest, EmptyRequest } from './autogen/entities.js';
import {
PartialRolePolicyOverride,
SigninFlowRequest,
@ -12,6 +12,7 @@ import {
SignupPendingResponse,
SignupRequest,
SignupResponse,
MiAuthCheckResponse,
} from './entities.js';
type Overwrite<T, U extends { [Key in keyof T]?: unknown }> = Omit<
@ -57,6 +58,7 @@ export type SwitchCaseResponseType<E extends keyof Endpoints, P extends Endpoint
export type Endpoints = Overwrite<
Gen,
{
// ▼ api.jsonのオーバーライド ▼
'users/show': {
req: UsersShowRequest;
res: {
@ -70,40 +72,45 @@ export type Endpoints = Overwrite<
};
};
},
// api.jsonには載せないものなのでここで定義
'signup': {
req: SignupRequest;
res: SignupResponse;
},
// api.jsonには載せないものなのでここで定義
'signup-pending': {
req: SignupPendingRequest;
res: SignupPendingResponse;
},
// api.jsonには載せないものなのでここで定義
'signin-flow': {
req: SigninFlowRequest;
res: SigninFlowResponse;
},
'signin-with-passkey': {
req: SigninWithPasskeyRequest;
res: {
$switch: {
$cases: [
[
{
context: string;
},
SigninWithPasskeyResponse,
],
];
$default: SigninWithPasskeyInitResponse;
},
},
},
'admin/roles/create': {
req: Overwrite<AdminRolesCreateRequest, { policies: PartialRolePolicyOverride }>;
res: AdminRolesCreateResponse;
}
},
// ▲ api.jsonのオーバーライド ▲
}
>
> & {
// ▼ api.jsonに載らないもの ▼
'signup': {
req: SignupRequest;
res: SignupResponse;
},
'signup-pending': {
req: SignupPendingRequest;
res: SignupPendingResponse;
},
'signin-flow': {
req: SigninFlowRequest;
res: SigninFlowResponse;
},
'signin-with-passkey': {
req: SigninWithPasskeyRequest;
res: {
$switch: {
$cases: [
[
{
context: string;
},
SigninWithPasskeyResponse,
],
];
$default: SigninWithPasskeyInitResponse;
},
},
},
[ep: `miauth/${string}/check`]: {
req: EmptyRequest;
res: MiAuthCheckResponse;
},
// ▲ api.jsonに載らないもの ▲
};

View File

@ -311,6 +311,14 @@ export type SigninWithPasskeyResponse = {
signinResponse: SigninFlowResponse & { finished: true };
};
export type MiAuthCheckResponse = {
ok: true;
token: string;
user: UserDetailedNotMe;
} | {
ok: false;
};
type Values<T extends Record<PropertyKey, unknown>> = T[keyof T];
export type PartialRolePolicyOverride = Partial<{[k in keyof RolePolicies]: Omit<Values<Role['policies']>, 'value'> & { value: RolePolicies[k] }}>;