basic support for Shared Access Accounts

This commit is contained in:
Hazelnoot 2025-06-21 00:43:17 -04:00
parent 7715f36a99
commit fa5a46f379
22 changed files with 789 additions and 32 deletions

View file

@ -1979,6 +1979,9 @@ declare namespace entities {
IRegistryScopesWithDomainResponse,
IRegistrySetRequest,
IRevokeTokenRequest,
ISharedAccessListResponse,
ISharedAccessLoginRequest,
ISharedAccessLoginResponse,
ISigninHistoryRequest,
ISigninHistoryResponse,
IUnpinRequest,
@ -2765,6 +2768,15 @@ type IRevokeTokenRequest = operations['i___revoke-token']['requestBody']['conten
// @public (undocumented)
function isAPIError(reason: Record<PropertyKey, unknown>): reason is APIError;
// @public (undocumented)
type ISharedAccessListResponse = operations['i___shared-access___list']['responses']['200']['content']['application/json'];
// @public (undocumented)
type ISharedAccessLoginRequest = operations['i___shared-access___login']['requestBody']['content']['application/json'];
// @public (undocumented)
type ISharedAccessLoginResponse = operations['i___shared-access___login']['responses']['200']['content']['application/json'];
// @public (undocumented)
type ISigninHistoryRequest = operations['i___signin-history']['requestBody']['content']['application/json'];

View file

@ -3459,6 +3459,30 @@ declare module '../api.js' {
credential?: string | null,
): Promise<SwitchCaseResponseType<E, P>>;
/**
* No description provided.
*
* **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
* **Credential required**: *Yes*
*/
request<E extends 'i/shared-access/list', P extends Endpoints[E]['req']>(
endpoint: E,
params: P,
credential?: string | null,
): Promise<SwitchCaseResponseType<E, P>>;
/**
* No description provided.
*
* **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
* **Credential required**: *Yes*
*/
request<E extends 'i/shared-access/login', P extends Endpoints[E]['req']>(
endpoint: E,
params: P,
credential?: string | null,
): Promise<SwitchCaseResponseType<E, P>>;
/**
* No description provided.
*

View file

@ -460,6 +460,9 @@ import type {
IRegistryScopesWithDomainResponse,
IRegistrySetRequest,
IRevokeTokenRequest,
ISharedAccessListResponse,
ISharedAccessLoginRequest,
ISharedAccessLoginResponse,
ISigninHistoryRequest,
ISigninHistoryResponse,
IUnpinRequest,
@ -980,6 +983,8 @@ export type Endpoints = {
'i/registry/scopes-with-domain': { req: EmptyRequest; res: IRegistryScopesWithDomainResponse };
'i/registry/set': { req: IRegistrySetRequest; res: EmptyResponse };
'i/revoke-token': { req: IRevokeTokenRequest; res: EmptyResponse };
'i/shared-access/list': { req: EmptyRequest; res: ISharedAccessListResponse };
'i/shared-access/login': { req: ISharedAccessLoginRequest; res: ISharedAccessLoginResponse };
'i/signin-history': { req: ISigninHistoryRequest; res: ISigninHistoryResponse };
'i/unpin': { req: IUnpinRequest; res: IUnpinResponse };
'i/update': { req: IUpdateRequest; res: IUpdateResponse };

View file

@ -463,6 +463,9 @@ export type IRegistryRemoveRequest = operations['i___registry___remove']['reques
export type IRegistryScopesWithDomainResponse = operations['i___registry___scopes-with-domain']['responses']['200']['content']['application/json'];
export type IRegistrySetRequest = operations['i___registry___set']['requestBody']['content']['application/json'];
export type IRevokeTokenRequest = operations['i___revoke-token']['requestBody']['content']['application/json'];
export type ISharedAccessListResponse = operations['i___shared-access___list']['responses']['200']['content']['application/json'];
export type ISharedAccessLoginRequest = operations['i___shared-access___login']['requestBody']['content']['application/json'];
export type ISharedAccessLoginResponse = operations['i___shared-access___login']['responses']['200']['content']['application/json'];
export type ISigninHistoryRequest = operations['i___signin-history']['requestBody']['content']['application/json'];
export type ISigninHistoryResponse = operations['i___signin-history']['responses']['200']['content']['application/json'];
export type IUnpinRequest = operations['i___unpin']['requestBody']['content']['application/json'];

View file

@ -2988,6 +2988,26 @@ export type paths = {
*/
post: operations['i___revoke-token'];
};
'/i/shared-access/list': {
/**
* i/shared-access/list
* @description No description provided.
*
* **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
* **Credential required**: *Yes*
*/
post: operations['i___shared-access___list'];
};
'/i/shared-access/login': {
/**
* i/shared-access/login
* @description No description provided.
*
* **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
* **Credential required**: *Yes*
*/
post: operations['i___shared-access___login'];
};
'/i/signin-history': {
/**
* i/signin-history
@ -25085,6 +25105,126 @@ export type operations = {
};
};
};
/**
* i/shared-access/list
* @description No description provided.
*
* **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
* **Credential required**: *Yes*
*/
'i___shared-access___list': {
responses: {
/** @description OK (with results) */
200: {
content: {
'application/json': {
id: string;
user: components['schemas']['UserLite'];
permissions: string[];
}[];
};
};
/** @description Client error */
400: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Authentication error */
401: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Forbidden error */
403: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description I'm Ai */
418: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Internal server error */
500: {
content: {
'application/json': components['schemas']['Error'];
};
};
};
};
/**
* i/shared-access/login
* @description No description provided.
*
* **Internal Endpoint**: This endpoint is an API for the misskey mainframe and is not intended for use by third parties.
* **Credential required**: *Yes*
*/
'i___shared-access___login': {
requestBody: {
content: {
'application/json': {
grantId: string;
};
};
};
responses: {
/** @description OK (with results) */
200: {
content: {
'application/json': {
userId: string;
token: string;
};
};
};
/** @description Client error */
400: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Authentication error */
401: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Forbidden error */
403: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description I'm Ai */
418: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Too many requests */
429: {
content: {
'application/json': components['schemas']['Error'];
};
};
/** @description Internal server error */
500: {
content: {
'application/json': components['schemas']['Error'];
};
};
};
};
/**
* i/signin-history
* @description No description provided.
@ -26238,6 +26378,7 @@ export type operations = {
description?: string | null;
iconUrl?: string | null;
permission: string[];
grantees?: string[];
};
};
};