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) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709)
### Misskey.js ### Misskey.js
- Enhance: `/miauth/{sessionId}/check` の型を追加
- Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正
## 2024.10.1 ## 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': { 'signup': {
req: SignupRequest; req: SignupRequest;
res: SignupResponse; res: SignupResponse;
@ -1188,13 +1195,11 @@ export type Endpoints = Overwrite<Endpoints_2, {
}; };
}; };
}; };
'admin/roles/create': { [ep: `miauth/${string}/check`]: {
req: Overwrite<AdminRolesCreateRequest, { req: EmptyRequest;
policies: PartialRolePolicyOverride; res: MiAuthCheckResponse;
}>;
res: AdminRolesCreateResponse;
}; };
}>; };
// @public (undocumented) // @public (undocumented)
type EndpointsResponse = operations['endpoints']['responses']['200']['content']['application/json']; type EndpointsResponse = operations['endpoints']['responses']['200']['content']['application/json'];
@ -1223,6 +1228,7 @@ declare namespace entities {
SigninWithPasskeyRequest, SigninWithPasskeyRequest,
SigninWithPasskeyInitResponse, SigninWithPasskeyInitResponse,
SigninWithPasskeyResponse, SigninWithPasskeyResponse,
MiAuthCheckResponse,
PartialRolePolicyOverride, PartialRolePolicyOverride,
EmptyRequest, EmptyRequest,
EmptyResponse, EmptyResponse,
@ -2439,6 +2445,15 @@ type MetaRequest = operations['meta']['requestBody']['content']['application/jso
// @public (undocumented) // @public (undocumented)
type MetaResponse = operations['meta']['responses']['200']['content']['application/json']; type MetaResponse = operations['meta']['responses']['200']['content']['application/json'];
// @public (undocumented)
type MiAuthCheckResponse = {
ok: true;
token: string;
user: UserDetailedNotMe;
} | {
ok: false;
};
// @public (undocumented) // @public (undocumented)
type MiauthGenTokenRequest = operations['miauth___gen-token']['requestBody']['content']['application/json']; 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 { Endpoints as Gen } from './autogen/endpoint.js';
import { UserDetailed } from './autogen/models.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 { import {
PartialRolePolicyOverride, PartialRolePolicyOverride,
SigninFlowRequest, SigninFlowRequest,
@ -12,6 +12,7 @@ import {
SignupPendingResponse, SignupPendingResponse,
SignupRequest, SignupRequest,
SignupResponse, SignupResponse,
MiAuthCheckResponse,
} from './entities.js'; } from './entities.js';
type Overwrite<T, U extends { [Key in keyof T]?: unknown }> = Omit< 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< export type Endpoints = Overwrite<
Gen, Gen,
{ {
// ▼ api.jsonのオーバーライド ▼
'users/show': { 'users/show': {
req: UsersShowRequest; req: UsersShowRequest;
res: { 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': { 'admin/roles/create': {
req: Overwrite<AdminRolesCreateRequest, { policies: PartialRolePolicyOverride }>; req: Overwrite<AdminRolesCreateRequest, { policies: PartialRolePolicyOverride }>;
res: AdminRolesCreateResponse; 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 }; 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]; 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] }}>; export type PartialRolePolicyOverride = Partial<{[k in keyof RolePolicies]: Omit<Values<Role['policies']>, 'value'> & { value: RolePolicies[k] }}>;