@brigadasos/nadeshiko-sdk 1.3.0 → 1.4.0-dev.c253525

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +6 -0
  2. package/dist/client/client.gen.d.ts.map +1 -0
  3. package/dist/client/index.d.ts.map +1 -0
  4. package/dist/client/types.gen.d.ts.map +1 -0
  5. package/dist/client/utils.gen.d.ts.map +1 -0
  6. package/dist/client.gen.d.ts.map +1 -0
  7. package/dist/core/auth.gen.d.ts.map +1 -0
  8. package/dist/core/bodySerializer.gen.d.ts.map +1 -0
  9. package/dist/core/params.gen.d.ts.map +1 -0
  10. package/dist/core/pathSerializer.gen.d.ts.map +1 -0
  11. package/dist/core/queryKeySerializer.gen.d.ts.map +1 -0
  12. package/dist/core/serverSentEvents.gen.d.ts.map +1 -0
  13. package/dist/core/types.gen.d.ts.map +1 -0
  14. package/dist/core/utils.gen.d.ts.map +1 -0
  15. package/dist/index.cjs +401 -38
  16. package/dist/index.cjs.map +5 -5
  17. package/dist/index.d.ts +6 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +408 -34
  20. package/dist/index.js.map +5 -5
  21. package/dist/internal/lists.gen.d.ts +2 -0
  22. package/dist/internal/lists.gen.d.ts.map +1 -0
  23. package/dist/internal/media.gen.d.ts +2 -0
  24. package/dist/internal/media.gen.d.ts.map +1 -0
  25. package/dist/internal/search.gen.d.ts +2 -0
  26. package/dist/internal/search.gen.d.ts.map +1 -0
  27. package/dist/internal.gen.d.ts +4 -0
  28. package/dist/internal.gen.d.ts.map +1 -0
  29. package/dist/nadeshiko.gen.d.ts +60 -0
  30. package/dist/nadeshiko.gen.d.ts.map +1 -0
  31. package/dist/sdk.gen.d.ts +471 -0
  32. package/dist/sdk.gen.d.ts.map +1 -0
  33. package/dist/types.gen.d.ts +3976 -0
  34. package/dist/types.gen.d.ts.map +1 -0
  35. package/package.json +4 -8
  36. package/dist/generated/client/client.gen.d.ts.map +0 -1
  37. package/dist/generated/client/index.d.ts.map +0 -1
  38. package/dist/generated/client/types.gen.d.ts.map +0 -1
  39. package/dist/generated/client/utils.gen.d.ts.map +0 -1
  40. package/dist/generated/client.gen.d.ts.map +0 -1
  41. package/dist/generated/core/auth.gen.d.ts.map +0 -1
  42. package/dist/generated/core/bodySerializer.gen.d.ts.map +0 -1
  43. package/dist/generated/core/params.gen.d.ts.map +0 -1
  44. package/dist/generated/core/pathSerializer.gen.d.ts.map +0 -1
  45. package/dist/generated/core/queryKeySerializer.gen.d.ts.map +0 -1
  46. package/dist/generated/core/serverSentEvents.gen.d.ts.map +0 -1
  47. package/dist/generated/core/types.gen.d.ts.map +0 -1
  48. package/dist/generated/core/utils.gen.d.ts.map +0 -1
  49. package/dist/generated/index.d.ts +0 -6
  50. package/dist/generated/index.d.ts.map +0 -1
  51. package/dist/generated/nadeshiko.gen.d.ts +0 -27
  52. package/dist/generated/nadeshiko.gen.d.ts.map +0 -1
  53. package/dist/generated/sdk.gen.d.ts +0 -257
  54. package/dist/generated/sdk.gen.d.ts.map +0 -1
  55. package/dist/generated/types.gen.d.ts +0 -2001
  56. package/dist/generated/types.gen.d.ts.map +0 -1
  57. /package/dist/{generated/client → client}/client.gen.d.ts +0 -0
  58. /package/dist/{generated/client → client}/index.d.ts +0 -0
  59. /package/dist/{generated/client → client}/types.gen.d.ts +0 -0
  60. /package/dist/{generated/client → client}/utils.gen.d.ts +0 -0
  61. /package/dist/{generated/client.gen.d.ts → client.gen.d.ts} +0 -0
  62. /package/dist/{generated/core → core}/auth.gen.d.ts +0 -0
  63. /package/dist/{generated/core → core}/bodySerializer.gen.d.ts +0 -0
  64. /package/dist/{generated/core → core}/params.gen.d.ts +0 -0
  65. /package/dist/{generated/core → core}/pathSerializer.gen.d.ts +0 -0
  66. /package/dist/{generated/core → core}/queryKeySerializer.gen.d.ts +0 -0
  67. /package/dist/{generated/core → core}/serverSentEvents.gen.d.ts +0 -0
  68. /package/dist/{generated/core → core}/types.gen.d.ts +0 -0
  69. /package/dist/{generated/core → core}/utils.gen.d.ts +0 -0
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/generated/core/bodySerializer.gen.ts", "../src/generated/core/params.gen.ts", "../src/generated/core/serverSentEvents.gen.ts", "../src/generated/core/pathSerializer.gen.ts", "../src/generated/core/utils.gen.ts", "../src/generated/core/auth.gen.ts", "../src/generated/client/utils.gen.ts", "../src/generated/client/client.gen.ts", "../src/generated/client.gen.ts", "../src/generated/sdk.gen.ts", "../src/generated/nadeshiko.gen.ts"],
3
+ "sources": ["../../../generated/internal/core/bodySerializer.gen.ts", "../../../generated/internal/core/params.gen.ts", "../../../generated/internal/core/serverSentEvents.gen.ts", "../../../generated/internal/core/pathSerializer.gen.ts", "../../../generated/internal/core/utils.gen.ts", "../../../generated/internal/core/auth.gen.ts", "../../../generated/internal/client/utils.gen.ts", "../../../generated/internal/client/client.gen.ts", "../../../generated/internal/client.gen.ts", "../../../generated/internal/sdk.gen.ts", "../../../generated/internal/nadeshiko.gen.ts"],
4
4
  "sourcesContent": [
5
5
  "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type {\n ArrayStyle,\n ObjectStyle,\n SerializerOptions,\n} from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: any) => any;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (\n data: FormData,\n key: string,\n value: unknown,\n): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (\n data: URLSearchParams,\n key: string,\n value: unknown,\n): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ): FormData => {\n const data = new FormData();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: <T>(body: T): string =>\n JSON.stringify(body, (_key, value) =>\n typeof value === 'bigint' ? value.toString() : value,\n ),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n body: T,\n ): string => {\n const data = new URLSearchParams();\n\n Object.entries(body).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n",
6
6
  "// This file is auto-generated by @hey-api/openapi-ts\n\ntype Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n | {\n in: Exclude<Slot, 'body'>;\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If omitted, we use the same value as `key`.\n */\n map?: string;\n }\n | {\n in: Extract<Slot, 'body'>;\n /**\n * Key isn't required for bodies.\n */\n key?: string;\n map?: string;\n }\n | {\n /**\n * Field name. This is the name we want the user to see and use.\n */\n key: string;\n /**\n * Field mapped name. This is the name we want to use in the request.\n * If `in` is omitted, `map` aliases `key` to the transport layer.\n */\n map: Slot;\n };\n\nexport interface Fields {\n allowExtra?: Partial<Record<Slot, boolean>>;\n args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n $body_: 'body',\n $headers_: 'headers',\n $path_: 'path',\n $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n string,\n | {\n in: Slot;\n map?: string;\n }\n | {\n in?: never;\n map: Slot;\n }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n if (!map) {\n map = new Map();\n }\n\n for (const config of fields) {\n if ('in' in config) {\n if (config.key) {\n map.set(config.key, {\n in: config.in,\n map: config.map,\n });\n }\n } else if ('key' in config) {\n map.set(config.key, {\n map: config.map,\n });\n } else if (config.args) {\n buildKeyMap(config.args, map);\n }\n }\n\n return map;\n};\n\ninterface Params {\n body: unknown;\n headers: Record<string, unknown>;\n path: Record<string, unknown>;\n query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n for (const [slot, value] of Object.entries(params)) {\n if (value && typeof value === 'object' && !Object.keys(value).length) {\n delete params[slot as Slot];\n }\n }\n};\n\nexport const buildClientParams = (\n args: ReadonlyArray<unknown>,\n fields: FieldsConfig,\n) => {\n const params: Params = {\n body: {},\n headers: {},\n path: {},\n query: {},\n };\n\n const map = buildKeyMap(fields);\n\n let config: FieldsConfig[number] | undefined;\n\n for (const [index, arg] of args.entries()) {\n if (fields[index]) {\n config = fields[index];\n }\n\n if (!config) {\n continue;\n }\n\n if ('in' in config) {\n if (config.key) {\n const field = map.get(config.key)!;\n const name = field.map || config.key;\n if (field.in) {\n (params[field.in] as Record<string, unknown>)[name] = arg;\n }\n } else {\n params.body = arg;\n }\n } else {\n for (const [key, value] of Object.entries(arg ?? {})) {\n const field = map.get(key);\n\n if (field) {\n if (field.in) {\n const name = field.map || key;\n (params[field.in] as Record<string, unknown>)[name] = value;\n } else {\n params[field.map] = value;\n }\n } else {\n const extra = extraPrefixes.find(([prefix]) =>\n key.startsWith(prefix),\n );\n\n if (extra) {\n const [prefix, slot] = extra;\n (params[slot] as Record<string, unknown>)[\n key.slice(prefix.length)\n ] = value;\n } else if ('allowExtra' in config && config.allowExtra) {\n for (const [slot, allowed] of Object.entries(config.allowExtra)) {\n if (allowed) {\n (params[slot as Slot] as Record<string, unknown>)[key] = value;\n break;\n }\n }\n }\n }\n }\n }\n }\n\n stripEmptySlots(params);\n\n return params;\n};\n",
@@ -11,10 +11,10 @@
11
11
  "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}) => {\n const querySerializer = (queryParams: T) => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (\n contentType: string | null,\n): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (\n cleanContent.startsWith('application/json') ||\n cleanContent.endsWith('+json')\n ) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n cleanContent.startsWith(type),\n )\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport const setAuthParams = async ({\n security,\n ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n }) => {\n for (const auth of security) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator =\n header instanceof Headers\n ? headersEntries(header)\n : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e. their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n response: Res,\n request: Req,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (\n request: Req,\n options: Options,\n) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(\n id: number | Interceptor,\n fn: Interceptor,\n ): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n",
12
12
  "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type {\n Client,\n Config,\n RequestOptions,\n ResolvedRequestOptions,\n} from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<\n Request,\n Response,\n unknown,\n ResolvedRequestOptions\n >();\n\n const beforeRequest = async (options: RequestOptions) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined,\n };\n\n if (opts.security) {\n await setAuthParams({\n ...opts,\n security: opts.security,\n });\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body);\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const url = buildUrl(opts);\n\n return { opts, url };\n };\n\n const request: Client['request'] = async (options) => {\n // @ts-expect-error\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n let request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n let response: Response;\n\n try {\n response = await _fetch(request);\n } catch (error) {\n // Handle fetch exceptions (AbortError, network errors, etc.)\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(\n error,\n undefined as any,\n request,\n opts,\n )) as unknown;\n }\n }\n\n finalError = finalError || ({} as unknown);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // Return error response\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response: undefined as any,\n };\n }\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (\n response.status === 204 ||\n response.headers.get('Content-Length') === '0'\n ) {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n const error = jsonError ?? textError;\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = (await fn(error, response, request, opts)) as string;\n }\n }\n\n finalError = finalError || ({} as string);\n\n if (opts.throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return opts.responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n ...result,\n };\n };\n\n const makeMethodFn =\n (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn =\n (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n headers: opts.headers as unknown as Record<string, string>,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as\n | BodyInit\n | null\n | undefined,\n url,\n });\n };\n\n return {\n buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n",
13
13
  "// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'http://localhost:5000' }));\n",
14
- "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { CharacterShowData, CharacterShowErrors, CharacterShowResponses, EpisodeIndexData, EpisodeIndexErrors, EpisodeIndexResponses, EpisodeShowData, EpisodeShowErrors, EpisodeShowResponses, FetchMediaInfoData, FetchMediaInfoErrors, FetchMediaInfoResponses, FetchSentenceContextData, FetchSentenceContextErrors, FetchSentenceContextResponses, GetFailedJobsData, GetFailedJobsErrors, GetFailedJobsResponses, GetQueueDetailsData, GetQueueDetailsErrors, GetQueueDetailsResponses, GetQueueStatsData, GetQueueStatsErrors, GetQueueStatsResponses, ListIndexData, ListIndexErrors, ListIndexResponses, ListShowData, ListShowErrors, ListShowResponses, MediaIndexData, MediaIndexErrors, MediaIndexResponses, MediaShowData, MediaShowErrors, MediaShowResponses, PurgeFailedJobsData, PurgeFailedJobsErrors, PurgeFailedJobsResponses, ReindexElasticsearchData, ReindexElasticsearchErrors, ReindexElasticsearchResponses, RetryQueueJobsData, RetryQueueJobsErrors, RetryQueueJobsResponses, SearchData, SearchErrors, SearchHealthCheckData, SearchHealthCheckErrors, SearchHealthCheckResponses, SearchMultipleData, SearchMultipleErrors, SearchMultipleResponses, SearchResponses, SegmentShowByUuidData, SegmentShowByUuidErrors, SegmentShowByUuidResponses, SegmentShowData, SegmentShowErrors, SegmentShowResponses, SeiyuuShowData, SeiyuuShowErrors, SeiyuuShowResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Health check for search\n *\n * Tests the search service connectivity and functionality by performing a simple search query.\n *\n * **Requirements:**\n * - Required Scopes: `READ_MEDIA`\n *\n */\nexport const searchHealthCheck = <ThrowOnError extends boolean = false>(options?: Options<SearchHealthCheckData, ThrowOnError>) => (options?.client ?? client).get<SearchHealthCheckResponses, SearchHealthCheckErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/search/health',\n ...options\n});\n\n/**\n * Search by query\n *\n * The primary search endpoint for finding Japanese sentences and their translations across indexed media (anime, J-Drama, audiobooks).\n *\n * This endpoint uses Elasticsearch with advanced Japanese text analysis supporting multiple input types (romaji, kanji, kana) and providing intelligent field-based boosting.\n *\n * **Query Features**\n * - **Multi-language Support:** Search using Japanese (kanji/kana), Romaji, or English/Spanish\n * - **Boolean Operators:** `AND`, `OR`, `NOT` supported (e.g., `(cat OR dog) AND bird`)\n * - **Phrase Matching:** Use quotes for exact phrases (e.g., `\"good morning\"`), or pass `exact_match: true` to the request body\n * - **Wildcards:** `te*t` format (leading wildcards not supported)\n * - **Smart Field Selection:** Automatically chooses optimal search fields based on input type\n *\n * **Input Type Handling**\n * | Input Type | Search Strategy |\n * |------------|-----------------|\n * | **Romaji** (`go`, `taberu`) | Boosts EN/ES translations, reading form (pronunciation), and base form |\n * | **Kanji** (`食べる`, `彼女`) | Searches content and base form (dictionary form). Ignores matches by reading (homophones). |\n * | **Kana** (`たべる`, `かのじょ`) | Standard search across content, base form, and reading form |\n * | **English/Spanish** | Direct translation search |\n *\n * **Requirements**\n * - API Key with `READ_MEDIA` permission\n *\n */\nexport const search = <ThrowOnError extends boolean = false>(options?: Options<SearchData, ThrowOnError>) => (options?.client ?? client).post<SearchResponses, SearchErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/media/sentence',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Search by multiple queries\n *\n * Searches for multiple words simultaneously and aggregates results by media.\n *\n * Unlike the main search endpoint, this returns a summary of matches per media rather than individual sentence segments.\n *\n * **Use Cases**\n * - Vocabulary discovery across media library\n * - Finding anime/dramas that use specific words\n * - Comparing word usage across different titles\n *\n * **Requirements:**\n * - Required Scopes: `READ_MEDIA`\n *\n */\nexport const searchMultiple = <ThrowOnError extends boolean = false>(options: Options<SearchMultipleData, ThrowOnError>) => (options.client ?? client).post<SearchMultipleResponses, SearchMultipleErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/media/match/words',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch context for a sentence\n *\n * Retrieves sentences surrounding a specific segment position within an episode.\n * Returns segments both before and after the target position, providing context for understanding how a sentence is used in dialogue.\n *\n * **Requirements:**\n * - Required scopes: `READ_MEDIA`\n *\n */\nexport const fetchSentenceContext = <ThrowOnError extends boolean = false>(options: Options<FetchSentenceContextData, ThrowOnError>) => (options.client ?? client).post<FetchSentenceContextResponses, FetchSentenceContextErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/media/context',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fetch media info\n *\n * Lists available media with metadata and supports filtering by type and search query.\n *\n * Returns paginated results with comprehensive media information including cover/banner images, episode counts, and genres.\n *\n * **Use Cases**\n * - Browsing the media library\n * - Getting media metadata for display\n *\n * **Requirements:**\n * - Required Scopes: `READ_MEDIA`\n *\n */\nexport const fetchMediaInfo = <ThrowOnError extends boolean = false>(options?: Options<FetchMediaInfoData, ThrowOnError>) => (options?.client ?? client).get<FetchMediaInfoResponses, FetchMediaInfoErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/media/info',\n ...options\n});\n\n/**\n * List all media\n *\n * Returns a paginated list of media with full metadata, including cover/banner images, episode counts, and genres.\n *\n */\nexport const mediaIndex = <ThrowOnError extends boolean = false>(options?: Options<MediaIndexData, ThrowOnError>) => (options?.client ?? client).get<MediaIndexResponses, MediaIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media',\n ...options\n});\n\n/**\n * Get single media\n *\n * Retrieves a single media entry by its ID.\n *\n */\nexport const mediaShow = <ThrowOnError extends boolean = false>(options: Options<MediaShowData, ThrowOnError>) => (options.client ?? client).get<MediaShowResponses, MediaShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{id}',\n ...options\n});\n\n/**\n * List episodes for a media\n *\n * Get a paginated list of episodes for a specific media\n *\n */\nexport const episodeIndex = <ThrowOnError extends boolean = false>(options: Options<EpisodeIndexData, ThrowOnError>) => (options.client ?? client).get<EpisodeIndexResponses, EpisodeIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes',\n ...options\n});\n\n/**\n * Get single episode\n *\n * Get a specific episode by media ID and episode number\n *\n */\nexport const episodeShow = <ThrowOnError extends boolean = false>(options: Options<EpisodeShowData, ThrowOnError>) => (options.client ?? client).get<EpisodeShowResponses, EpisodeShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}',\n ...options\n});\n\n/**\n * Get single segment\n *\n * Get a specific segment by ID\n *\n */\nexport const segmentShow = <ThrowOnError extends boolean = false>(options: Options<SegmentShowData, ThrowOnError>) => (options.client ?? client).get<SegmentShowResponses, SegmentShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}',\n ...options\n});\n\n/**\n * Get segment by UUID\n *\n * Get a specific segment by its UUID\n *\n */\nexport const segmentShowByUuid = <ThrowOnError extends boolean = false>(options: Options<SegmentShowByUuidData, ThrowOnError>) => (options.client ?? client).get<SegmentShowByUuidResponses, SegmentShowByUuidErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/segments/{uuid}',\n ...options\n});\n\n/**\n * Get character details\n *\n * Returns a character with their seiyuu and all media appearances.\n *\n */\nexport const characterShow = <ThrowOnError extends boolean = false>(options: Options<CharacterShowData, ThrowOnError>) => (options.client ?? client).get<CharacterShowResponses, CharacterShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/characters/{id}',\n ...options\n});\n\n/**\n * Get seiyuu details\n *\n * Returns a voice actor with all characters they voiced and media appearances.\n *\n */\nexport const seiyuuShow = <ThrowOnError extends boolean = false>(options: Options<SeiyuuShowData, ThrowOnError>) => (options.client ?? client).get<SeiyuuShowResponses, SeiyuuShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/seiyuu/{id}',\n ...options\n});\n\n/**\n * List all lists\n *\n * Returns all lists matching the query filters. Can filter by media ID to find lists containing a specific media. Public lists are visible to all users.\n *\n */\nexport const listIndex = <ThrowOnError extends boolean = false>(options?: Options<ListIndexData, ThrowOnError>) => (options?.client ?? client).get<ListIndexResponses, ListIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists',\n ...options\n});\n\n/**\n * Get list details\n *\n * Returns a list with all media in order (sorted by position).\n *\n */\nexport const listShow = <ThrowOnError extends boolean = false>(options: Options<ListShowData, ThrowOnError>) => (options.client ?? client).get<ListShowResponses, ListShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}',\n ...options\n});\n\n/**\n * Reindex database into Elasticsearch\n *\n * Reindexes segments from the PostgreSQL database into Elasticsearch.\n * Allows filtering by specific media IDs or episodes.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission for reindexing)\n *\n * **Behavior:**\n * - If no filters provided, reindexes all segments\n * - If `mediaIds` provided, reindexes all segments from those media\n * - If `episodes` provided, reindexes only the specified episodes\n *\n */\nexport const reindexElasticsearch = <ThrowOnError extends boolean = false>(options?: Options<ReindexElasticsearchData, ThrowOnError>) => (options?.client ?? client).post<ReindexElasticsearchResponses, ReindexElasticsearchErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/reindex',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get queue statistics\n *\n * Get statistics for all ES sync queues including pending and failed job counts.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Monitor queue health\n * - Detect stuck jobs\n * - Check backlog size\n *\n */\nexport const getQueueStats = <ThrowOnError extends boolean = false>(options?: Options<GetQueueStatsData, ThrowOnError>) => (options?.client ?? client).get<GetQueueStatsResponses, GetQueueStatsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/stats',\n ...options\n});\n\n/**\n * Get detailed queue information\n *\n * Get detailed information about a specific queue including completed, expired, and cancelled jobs.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Queue names:**\n * - `es-sync-create` - Jobs to create new segments\n * - `es-sync-update` - Jobs to update existing segments\n * - `es-sync-delete` - Jobs to delete segments\n *\n */\nexport const getQueueDetails = <ThrowOnError extends boolean = false>(options: Options<GetQueueDetailsData, ThrowOnError>) => (options.client ?? client).get<GetQueueDetailsResponses, GetQueueDetailsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}',\n ...options\n});\n\n/**\n * Get failed jobs from a queue\n *\n * Get jobs that have exceeded their retry limit and permanently failed.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Identify segments that failed to sync to Elasticsearch\n * - Debug persistent sync issues\n * - Decide whether to retry or purge failed jobs\n *\n */\nexport const getFailedJobs = <ThrowOnError extends boolean = false>(options: Options<GetFailedJobsData, ThrowOnError>) => (options.client ?? client).get<GetFailedJobsResponses, GetFailedJobsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}/failed',\n ...options\n});\n\n/**\n * Retry failed jobs from a queue\n *\n * Retry all failed jobs from a specific queue.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Retry jobs that failed due to temporary Elasticsearch issues\n * - Recover from network blips\n *\n */\nexport const retryQueueJobs = <ThrowOnError extends boolean = false>(options: Options<RetryQueueJobsData, ThrowOnError>) => (options.client ?? client).post<RetryQueueJobsResponses, RetryQueueJobsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}/retry',\n ...options\n});\n\n/**\n * Delete failed jobs from a queue\n *\n * Permanently delete all failed jobs from a queue.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Clean up old failed jobs after investigating\n * - Reset a queue after fixing the underlying issue\n * - Note: This does NOT re-sync the segments - use the reindex endpoint for that\n *\n */\nexport const purgeFailedJobs = <ThrowOnError extends boolean = false>(options: Options<PurgeFailedJobsData, ThrowOnError>) => (options.client ?? client).delete<PurgeFailedJobsResponses, PurgeFailedJobsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}/purge',\n ...options\n});\n",
15
- "// This file is auto-generated by scripts/generate.ts\n\nimport { createClient as createApiClient, createConfig, type Client } from './client';\nimport type { ClientOptions } from './types.gen';\nimport { searchHealthCheck, search, searchMultiple, fetchSentenceContext, fetchMediaInfo, mediaIndex, mediaShow, episodeIndex, episodeShow, segmentShow, segmentShowByUuid, characterShow, seiyuuShow, listIndex, listShow } from './sdk.gen';\n\nexport interface NadeshikoConfig {\n apiKey: string;\n baseUrl?: 'LOCAL' | 'DEVELOPMENT' | 'PRODUCTION' | string;\n}\n\nconst environments = {\n LOCAL: 'http://localhost:5000/api',\n DEVELOPMENT: 'https://api.dev.brigadasos.xyz/api',\n PRODUCTION: 'https://api.brigadasos.xyz/api',\n} as const;\n\nexport type NadeshikoClient = {\n client: Client;\n searchHealthCheck: typeof searchHealthCheck;\n search: typeof search;\n searchMultiple: typeof searchMultiple;\n fetchSentenceContext: typeof fetchSentenceContext;\n fetchMediaInfo: typeof fetchMediaInfo;\n mediaIndex: typeof mediaIndex;\n mediaShow: typeof mediaShow;\n episodeIndex: typeof episodeIndex;\n episodeShow: typeof episodeShow;\n segmentShow: typeof segmentShow;\n segmentShowByUuid: typeof segmentShowByUuid;\n characterShow: typeof characterShow;\n seiyuuShow: typeof seiyuuShow;\n listIndex: typeof listIndex;\n listShow: typeof listShow;\n };\n\nexport function createNadeshikoClient(config: NadeshikoConfig): NadeshikoClient {\n const baseUrl = config.baseUrl\n ? (config.baseUrl in environments\n ? environments[config.baseUrl as keyof typeof environments]\n : config.baseUrl)\n : environments.PRODUCTION;\n\n const clientInstance = createApiClient(createConfig<ClientOptions>({\n baseUrl,\n headers: { Authorization: `Bearer ${config.apiKey}` },\n }));\n\n return {\n client: clientInstance,\n searchHealthCheck: (options?: any) => searchHealthCheck({ ...options, client: clientInstance }),\n search: (options?: any) => search({ ...options, client: clientInstance }),\n searchMultiple: (options?: any) => searchMultiple({ ...options, client: clientInstance }),\n fetchSentenceContext: (options?: any) => fetchSentenceContext({ ...options, client: clientInstance }),\n fetchMediaInfo: (options?: any) => fetchMediaInfo({ ...options, client: clientInstance }),\n mediaIndex: (options?: any) => mediaIndex({ ...options, client: clientInstance }),\n mediaShow: (options?: any) => mediaShow({ ...options, client: clientInstance }),\n episodeIndex: (options?: any) => episodeIndex({ ...options, client: clientInstance }),\n episodeShow: (options?: any) => episodeShow({ ...options, client: clientInstance }),\n segmentShow: (options?: any) => segmentShow({ ...options, client: clientInstance }),\n segmentShowByUuid: (options?: any) => segmentShowByUuid({ ...options, client: clientInstance }),\n characterShow: (options?: any) => characterShow({ ...options, client: clientInstance }),\n seiyuuShow: (options?: any) => seiyuuShow({ ...options, client: clientInstance }),\n listIndex: (options?: any) => listIndex({ ...options, client: clientInstance }),\n listShow: (options?: any) => listShow({ ...options, client: clientInstance }),\n };\n}\n\n// Alias for convenience\nexport const createClient = createNadeshikoClient;\n"
14
+ "// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { BrowseMediaData, BrowseMediaErrors, BrowseMediaResponses, CharacterShowData, CharacterShowErrors, CharacterShowResponses, CreateReportData, CreateReportErrors, CreateReportResponses, EpisodeCreateData, EpisodeCreateErrors, EpisodeCreateResponses, EpisodeDestroyData, EpisodeDestroyErrors, EpisodeDestroyResponses, EpisodeIndexData, EpisodeIndexErrors, EpisodeIndexResponses, EpisodeShowData, EpisodeShowErrors, EpisodeShowResponses, EpisodeUpdateData, EpisodeUpdateErrors, EpisodeUpdateResponses, GetAdminReportsData, GetAdminReportsErrors, GetAdminReportsResponses, GetFailedJobsData, GetFailedJobsErrors, GetFailedJobsResponses, GetQueueDetailsData, GetQueueDetailsErrors, GetQueueDetailsResponses, GetQueueStatsData, GetQueueStatsErrors, GetQueueStatsResponses, GetSearchStatsData, GetSearchStatsErrors, GetSearchStatsResponses, GetSegmentContextData, GetSegmentContextErrors, GetSegmentContextResponses, GetUserQuotaData, GetUserQuotaErrors, GetUserQuotaResponses, GetUserReportsData, GetUserReportsErrors, GetUserReportsResponses, HealthCheckData, HealthCheckErrors, HealthCheckResponses, ListAddItemData, ListAddItemErrors, ListAddItemResponses, ListAddSegmentData, ListAddSegmentErrors, ListAddSegmentResponses, ListCreateData, ListCreateErrors, ListCreateResponses, ListDestroyData, ListDestroyErrors, ListDestroyResponses, ListGetSegmentsData, ListGetSegmentsErrors, ListGetSegmentsResponses, ListIndexData, ListIndexErrors, ListIndexResponses, ListRemoveItemData, ListRemoveItemErrors, ListRemoveItemResponses, ListRemoveSegmentData, ListRemoveSegmentErrors, ListRemoveSegmentResponses, ListShowData, ListShowErrors, ListShowResponses, ListUpdateData, ListUpdateErrors, ListUpdateItemData, ListUpdateItemErrors, ListUpdateItemResponses, ListUpdateResponses, ListUpdateSegmentData, ListUpdateSegmentErrors, ListUpdateSegmentResponses, MediaCreateData, MediaCreateErrors, MediaCreateResponses, MediaDestroyData, MediaDestroyErrors, MediaDestroyResponses, MediaIndexData, MediaIndexErrors, MediaIndexResponses, MediaShowData, MediaShowErrors, MediaShowResponses, MediaUpdateData, MediaUpdateErrors, MediaUpdateResponses, MorphemeBackfillData, MorphemeBackfillResponses, PurgeFailedJobsData, PurgeFailedJobsErrors, PurgeFailedJobsResponses, ReindexElasticsearchData, ReindexElasticsearchErrors, ReindexElasticsearchResponses, RetryQueueJobsData, RetryQueueJobsErrors, RetryQueueJobsResponses, SearchSegmentsData, SearchSegmentsErrors, SearchSegmentsResponses, SearchWordsData, SearchWordsErrors, SearchWordsResponses, SegmentCreateData, SegmentCreateErrors, SegmentCreateResponses, SegmentDestroyData, SegmentDestroyErrors, SegmentDestroyResponses, SegmentIndexData, SegmentIndexErrors, SegmentIndexResponses, SegmentShowByUuidData, SegmentShowByUuidErrors, SegmentShowByUuidResponses, SegmentShowData, SegmentShowErrors, SegmentShowResponses, SegmentUpdateData, SegmentUpdateErrors, SegmentUpdateResponses, SeiyuuShowData, SeiyuuShowErrors, SeiyuuShowResponses, UpdateReportData, UpdateReportErrors, UpdateReportResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Health check\n *\n * Tests the search service connectivity and functionality by performing a simple search query.\n *\n * **Requirements:**\n * - Required Scopes: `READ_MEDIA`\n *\n */\nexport const healthCheck = <ThrowOnError extends boolean = false>(options?: Options<HealthCheckData, ThrowOnError>) => (options?.client ?? client).get<HealthCheckResponses, HealthCheckErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/health',\n ...options\n});\n\n/**\n * Search segments by query\n *\n * The primary search endpoint for finding Japanese segments and their translations across indexed media (anime, J-Drama, audiobooks).\n *\n * This endpoint uses Elasticsearch with advanced Japanese text analysis supporting multiple input types (romaji, kanji, kana) and providing intelligent field-based boosting.\n *\n * **Query Features**\n * - **Multi-language Support:** Search using Japanese (kanji/kana), Romaji, or English/Spanish\n * - **Boolean Operators:** `AND`, `OR`, `NOT` supported (e.g., `(cat OR dog) AND bird`)\n * - **Phrase Matching:** Use quotes for exact phrases (e.g., `\"good morning\"`), or pass `exact_match: true` to the request body\n * - **Wildcards:** `te*t` format (leading wildcards not supported)\n * - **Smart Field Selection:** Automatically chooses optimal search fields based on input type\n *\n * **Input Type Handling**\n * | Input Type | Search Strategy |\n * |------------|-----------------|\n * | **Romaji** (`go`, `taberu`) | Boosts EN/ES translations, reading form (pronunciation), and base form |\n * | **Kanji** (`食べる`, `彼女`) | Searches content and base form (dictionary form). Ignores matches by reading (homophones). |\n * | **Kana** (`たべる`, `かのじょ`) | Standard search across content, base form, and reading form |\n * | **English/Spanish** | Direct translation search |\n *\n * **Requirements**\n * - API Key with `READ_MEDIA` permission\n *\n */\nexport const searchSegments = <ThrowOnError extends boolean = false>(options?: Options<SearchSegmentsData, ThrowOnError>) => (options?.client ?? client).post<SearchSegmentsResponses, SearchSegmentsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/segments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get search statistics\n *\n * Returns statistics for search filters and category tabs without fetching segment rows.\n *\n * This endpoint is optimized for UI filter panels:\n * - `media` powers the media dropdown on the right side.\n * - `categories` powers category tabs below the search bar.\n *\n * The stats are scoped by query and category filters, but are not narrowed by a selected media/episode.\n *\n * **Requirements**\n * - API Key with `READ_MEDIA` permission\n *\n */\nexport const getSearchStats = <ThrowOnError extends boolean = false>(options?: Options<GetSearchStatsData, ThrowOnError>) => (options?.client ?? client).post<GetSearchStatsResponses, GetSearchStatsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/stats',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Search by multiple words\n *\n * Searches for multiple words simultaneously and aggregates results by media.\n *\n * Unlike the main search endpoint, this returns a summary of matches per media rather than individual segments.\n *\n * **Use Cases**\n * - Vocabulary discovery across media library\n * - Finding anime/dramas that use specific words\n * - Comparing word usage across different titles\n *\n * **Requirements:**\n * - Required Scopes: `READ_MEDIA`\n *\n */\nexport const searchWords = <ThrowOnError extends boolean = false>(options: Options<SearchWordsData, ThrowOnError>) => (options.client ?? client).post<SearchWordsResponses, SearchWordsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/words',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get context for a segment\n *\n * Retrieves segments surrounding a specific segment position within an episode.\n * Returns segments both before and after the target position, providing context for understanding how a sentence is used in dialogue.\n *\n * **Requirements:**\n * - Required scopes: `READ_MEDIA`\n *\n */\nexport const getSegmentContext = <ThrowOnError extends boolean = false>(options: Options<GetSegmentContextData, ThrowOnError>) => (options.client ?? client).post<GetSegmentContextResponses, GetSegmentContextErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/search/context',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Browse media library\n *\n * Lists available media with metadata and supports filtering by type and search query.\n *\n * Returns paginated results with comprehensive media information including cover/banner images, episode counts, and genres.\n *\n * **Use Cases**\n * - Browsing the media library\n * - Getting media metadata for display\n *\n * **Requirements:**\n * - Required Scopes: `READ_MEDIA`\n *\n */\nexport const browseMedia = <ThrowOnError extends boolean = false>(options?: Options<BrowseMediaData, ThrowOnError>) => (options?.client ?? client).get<BrowseMediaResponses, BrowseMediaErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/media/browse',\n ...options\n});\n\n/**\n * List all media\n *\n * Returns a paginated list of media with full metadata, including cover/banner images, episode counts, and genres.\n *\n */\nexport const mediaIndex = <ThrowOnError extends boolean = false>(options?: Options<MediaIndexData, ThrowOnError>) => (options?.client ?? client).get<MediaIndexResponses, MediaIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media',\n ...options\n});\n\n/**\n * Create new media\n *\n * Creates a new media entry in the database.\n *\n */\nexport const mediaCreate = <ThrowOnError extends boolean = false>(options: Options<MediaCreateData, ThrowOnError>) => (options.client ?? client).post<MediaCreateResponses, MediaCreateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete media (soft delete)\n *\n * Soft deletes a media entry by setting the `deletedAt` timestamp. The media is not removed from the database but is excluded from query results.\n *\n */\nexport const mediaDestroy = <ThrowOnError extends boolean = false>(options: Options<MediaDestroyData, ThrowOnError>) => (options.client ?? client).delete<MediaDestroyResponses, MediaDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{id}',\n ...options\n});\n\n/**\n * Get single media\n *\n * Retrieves a single media entry by its ID.\n *\n */\nexport const mediaShow = <ThrowOnError extends boolean = false>(options: Options<MediaShowData, ThrowOnError>) => (options.client ?? client).get<MediaShowResponses, MediaShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{id}',\n ...options\n});\n\n/**\n * Update media\n *\n * Updates an existing media entry. All fields are optional - only provided fields will be updated.\n *\n */\nexport const mediaUpdate = <ThrowOnError extends boolean = false>(options: Options<MediaUpdateData, ThrowOnError>) => (options.client ?? client).patch<MediaUpdateResponses, MediaUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List episodes for a media\n *\n * Get a paginated list of episodes for a specific media\n *\n */\nexport const episodeIndex = <ThrowOnError extends boolean = false>(options: Options<EpisodeIndexData, ThrowOnError>) => (options.client ?? client).get<EpisodeIndexResponses, EpisodeIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes',\n ...options\n});\n\n/**\n * Create new episode\n *\n * Create a new episode for a specific media\n *\n */\nexport const episodeCreate = <ThrowOnError extends boolean = false>(options: Options<EpisodeCreateData, ThrowOnError>) => (options.client ?? client).post<EpisodeCreateResponses, EpisodeCreateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete an episode\n *\n * Soft delete an episode. Segments are not cascade deleted, this only \"hides\" the episode.\n *\n */\nexport const episodeDestroy = <ThrowOnError extends boolean = false>(options: Options<EpisodeDestroyData, ThrowOnError>) => (options.client ?? client).delete<EpisodeDestroyResponses, EpisodeDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}',\n ...options\n});\n\n/**\n * Get single episode\n *\n * Get a specific episode by media ID and episode number\n *\n */\nexport const episodeShow = <ThrowOnError extends boolean = false>(options: Options<EpisodeShowData, ThrowOnError>) => (options.client ?? client).get<EpisodeShowResponses, EpisodeShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}',\n ...options\n});\n\n/**\n * Update episode\n *\n * Update an existing episode with partial data\n *\n */\nexport const episodeUpdate = <ThrowOnError extends boolean = false>(options: Options<EpisodeUpdateData, ThrowOnError>) => (options.client ?? client).patch<EpisodeUpdateResponses, EpisodeUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List segments for an episode\n *\n * Get a paginated list of segments for a specific episode\n *\n */\nexport const segmentIndex = <ThrowOnError extends boolean = false>(options: Options<SegmentIndexData, ThrowOnError>) => (options.client ?? client).get<SegmentIndexResponses, SegmentIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments',\n ...options\n});\n\n/**\n * Create new segment\n *\n * Create a new segment for a specific episode\n *\n */\nexport const segmentCreate = <ThrowOnError extends boolean = false>(options: Options<SegmentCreateData, ThrowOnError>) => (options.client ?? client).post<SegmentCreateResponses, SegmentCreateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete segment (set status to deleted)\n *\n * Delete a segment by setting its status to 0 (DELETED)\n *\n */\nexport const segmentDestroy = <ThrowOnError extends boolean = false>(options: Options<SegmentDestroyData, ThrowOnError>) => (options.client ?? client).delete<SegmentDestroyResponses, SegmentDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}',\n ...options\n});\n\n/**\n * Get single segment\n *\n * Get a specific segment by ID\n *\n */\nexport const segmentShow = <ThrowOnError extends boolean = false>(options: Options<SegmentShowData, ThrowOnError>) => (options.client ?? client).get<SegmentShowResponses, SegmentShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}',\n ...options\n});\n\n/**\n * Update segment\n *\n * Update an existing segment with partial data\n *\n */\nexport const segmentUpdate = <ThrowOnError extends boolean = false>(options: Options<SegmentUpdateData, ThrowOnError>) => (options.client ?? client).patch<SegmentUpdateResponses, SegmentUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get segment by UUID\n *\n * Get a specific segment by its UUID\n *\n */\nexport const segmentShowByUuid = <ThrowOnError extends boolean = false>(options: Options<SegmentShowByUuidData, ThrowOnError>) => (options.client ?? client).get<SegmentShowByUuidResponses, SegmentShowByUuidErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/segments/{uuid}',\n ...options\n});\n\n/**\n * Get character details\n *\n * Returns a character with their seiyuu and all media appearances.\n *\n */\nexport const characterShow = <ThrowOnError extends boolean = false>(options: Options<CharacterShowData, ThrowOnError>) => (options.client ?? client).get<CharacterShowResponses, CharacterShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/characters/{id}',\n ...options\n});\n\n/**\n * Get seiyuu details\n *\n * Returns a voice actor with all characters they voiced and media appearances.\n *\n */\nexport const seiyuuShow = <ThrowOnError extends boolean = false>(options: Options<SeiyuuShowData, ThrowOnError>) => (options.client ?? client).get<SeiyuuShowResponses, SeiyuuShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/media/seiyuu/{id}',\n ...options\n});\n\n/**\n * Get current monthly API quota\n *\n * Returns the authenticated user's API quota usage for the current billing period.\n *\n * **Requirements:**\n * - Requires session authentication (cookie-based).\n *\n */\nexport const getUserQuota = <ThrowOnError extends boolean = false>(options?: Options<GetUserQuotaData, ThrowOnError>) => (options?.client ?? client).get<GetUserQuotaResponses, GetUserQuotaErrors, ThrowOnError>({\n security: [{\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/user/quota',\n ...options\n});\n\n/**\n * List user's own reports\n *\n * Returns the authenticated user's submitted reports with cursor pagination.\n *\n * **Requirements:**\n * - Requires session authentication (cookie-based).\n *\n */\nexport const getUserReports = <ThrowOnError extends boolean = false>(options?: Options<GetUserReportsData, ThrowOnError>) => (options?.client ?? client).get<GetUserReportsResponses, GetUserReportsErrors, ThrowOnError>({\n security: [{\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/user/reports',\n ...options\n});\n\n/**\n * Create a new report\n *\n * Submit a report for a segment or media entry.\n *\n * **Requirements:**\n * - Requires session authentication (cookie-based).\n *\n */\nexport const createReport = <ThrowOnError extends boolean = false>(options: Options<CreateReportData, ThrowOnError>) => (options.client ?? client).post<CreateReportResponses, CreateReportErrors, ThrowOnError>({\n security: [{\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/user/reports',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List all lists\n *\n * Returns all lists matching the query filters. Can filter by media ID to find lists containing a specific media. Public lists are visible to all users.\n *\n */\nexport const listIndex = <ThrowOnError extends boolean = false>(options?: Options<ListIndexData, ThrowOnError>) => (options?.client ?? client).get<ListIndexResponses, ListIndexErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists',\n ...options\n});\n\n/**\n * Create new list\n *\n * Creates a new standalone list. Requires admin permissions.\n *\n */\nexport const listCreate = <ThrowOnError extends boolean = false>(options: Options<ListCreateData, ThrowOnError>) => (options.client ?? client).post<ListCreateResponses, ListCreateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete list\n *\n * Deletes a list and all its items. Requires admin permissions.\n *\n */\nexport const listDestroy = <ThrowOnError extends boolean = false>(options: Options<ListDestroyData, ThrowOnError>) => (options.client ?? client).delete<ListDestroyResponses, ListDestroyErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}',\n ...options\n});\n\n/**\n * Get list details\n *\n * Returns a list with all media in order (sorted by position).\n *\n */\nexport const listShow = <ThrowOnError extends boolean = false>(options: Options<ListShowData, ThrowOnError>) => (options.client ?? client).get<ListShowResponses, ListShowErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}',\n ...options\n});\n\n/**\n * Update list metadata\n *\n * Updates list name or visibility. Requires admin permissions.\n *\n */\nexport const listUpdate = <ThrowOnError extends boolean = false>(options: Options<ListUpdateData, ThrowOnError>) => (options.client ?? client).patch<ListUpdateResponses, ListUpdateErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add media to list\n *\n * Adds a media entry to the list at the specified position. Requires admin permissions.\n *\n */\nexport const listAddItem = <ThrowOnError extends boolean = false>(options: Options<ListAddItemData, ThrowOnError>) => (options.client ?? client).post<ListAddItemResponses, ListAddItemErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}/items',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove media from list\n *\n * Removes a media entry from the list. Requires admin permissions.\n *\n */\nexport const listRemoveItem = <ThrowOnError extends boolean = false>(options: Options<ListRemoveItemData, ThrowOnError>) => (options.client ?? client).delete<ListRemoveItemResponses, ListRemoveItemErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}/items/{mediaId}',\n ...options\n});\n\n/**\n * Update media position in list\n *\n * Updates the position of a media entry within the list. Requires admin permissions.\n *\n */\nexport const listUpdateItem = <ThrowOnError extends boolean = false>(options: Options<ListUpdateItemData, ThrowOnError>) => (options.client ?? client).patch<ListUpdateItemResponses, ListUpdateItemErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/lists/{id}/items/{mediaId}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Get segments in list\n *\n * Returns paginated segments in a segment list with full search result data.\n *\n */\nexport const listGetSegments = <ThrowOnError extends boolean = false>(options: Options<ListGetSegmentsData, ThrowOnError>) => (options.client ?? client).get<ListGetSegmentsResponses, ListGetSegmentsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/lists/{id}/segments',\n ...options\n});\n\n/**\n * Add segment to list\n *\n * Adds a segment to a segment list. Requires list ownership or admin.\n *\n */\nexport const listAddSegment = <ThrowOnError extends boolean = false>(options: Options<ListAddSegmentData, ThrowOnError>) => (options.client ?? client).post<ListAddSegmentResponses, ListAddSegmentErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/lists/{id}/segments',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove segment from list\n *\n * Removes a segment from a list. Requires list ownership or admin.\n *\n */\nexport const listRemoveSegment = <ThrowOnError extends boolean = false>(options: Options<ListRemoveSegmentData, ThrowOnError>) => (options.client ?? client).delete<ListRemoveSegmentResponses, ListRemoveSegmentErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/lists/{id}/segments/{uuid}',\n ...options\n});\n\n/**\n * Update segment in list\n *\n * Updates the note or position of a segment in a list. Requires list ownership or admin.\n *\n */\nexport const listUpdateSegment = <ThrowOnError extends boolean = false>(options: Options<ListUpdateSegmentData, ThrowOnError>) => (options.client ?? client).patch<ListUpdateSegmentResponses, ListUpdateSegmentErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/lists/{id}/segments/{uuid}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Reindex database into Elasticsearch\n *\n * Reindexes segments from the PostgreSQL database into Elasticsearch.\n * Allows filtering by specific media IDs or episodes.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission for reindexing)\n *\n * **Behavior:**\n * - If no filters provided, reindexes all segments\n * - If `mediaIds` provided, reindexes all segments from those media\n * - If `episodes` provided, reindexes only the specified episodes\n *\n */\nexport const reindexElasticsearch = <ThrowOnError extends boolean = false>(options?: Options<ReindexElasticsearchData, ThrowOnError>) => (options?.client ?? client).post<ReindexElasticsearchResponses, ReindexElasticsearchErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/reindex',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers\n }\n});\n\n/**\n * Get queue statistics\n *\n * Get statistics for all ES sync queues including pending and failed job counts.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Monitor queue health\n * - Detect stuck jobs\n * - Check backlog size\n *\n */\nexport const getQueueStats = <ThrowOnError extends boolean = false>(options?: Options<GetQueueStatsData, ThrowOnError>) => (options?.client ?? client).get<GetQueueStatsResponses, GetQueueStatsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/stats',\n ...options\n});\n\n/**\n * Get detailed queue information\n *\n * Get detailed information about a specific queue including completed, expired, and cancelled jobs.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Queue names:**\n * - `es-sync-create` - Jobs to create new segments\n * - `es-sync-update` - Jobs to update existing segments\n * - `es-sync-delete` - Jobs to delete segments\n *\n */\nexport const getQueueDetails = <ThrowOnError extends boolean = false>(options: Options<GetQueueDetailsData, ThrowOnError>) => (options.client ?? client).get<GetQueueDetailsResponses, GetQueueDetailsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}',\n ...options\n});\n\n/**\n * Get failed jobs from a queue\n *\n * Get jobs that have exceeded their retry limit and permanently failed.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Identify segments that failed to sync to Elasticsearch\n * - Debug persistent sync issues\n * - Decide whether to retry or purge failed jobs\n *\n */\nexport const getFailedJobs = <ThrowOnError extends boolean = false>(options: Options<GetFailedJobsData, ThrowOnError>) => (options.client ?? client).get<GetFailedJobsResponses, GetFailedJobsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}/failed',\n ...options\n});\n\n/**\n * Retry failed jobs from a queue\n *\n * Retry all failed jobs from a specific queue.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Retry jobs that failed due to temporary Elasticsearch issues\n * - Recover from network blips\n *\n */\nexport const retryQueueJobs = <ThrowOnError extends boolean = false>(options: Options<RetryQueueJobsData, ThrowOnError>) => (options.client ?? client).post<RetryQueueJobsResponses, RetryQueueJobsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}/retry',\n ...options\n});\n\n/**\n * Delete failed jobs from a queue\n *\n * Permanently delete all failed jobs from a queue.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n * **Use cases:**\n * - Clean up old failed jobs after investigating\n * - Reset a queue after fixing the underlying issue\n * - Note: This does NOT re-sync the segments - use the reindex endpoint for that\n *\n */\nexport const purgeFailedJobs = <ThrowOnError extends boolean = false>(options: Options<PurgeFailedJobsData, ThrowOnError>) => (options.client ?? client).delete<PurgeFailedJobsResponses, PurgeFailedJobsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/queues/{queueName}/purge',\n ...options\n});\n\n/**\n * Backfill morpheme analysis for segments\n *\n * Analyzes segments that are missing morpheme data using the Sudachi sidecar service.\n */\nexport const morphemeBackfill = <ThrowOnError extends boolean = false>(options?: Options<MorphemeBackfillData, ThrowOnError>) => (options?.client ?? client).post<MorphemeBackfillResponses, unknown, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }, {\n in: 'cookie',\n name: 'nadeshiko.session_token',\n type: 'apiKey'\n }],\n url: '/v1/admin/morpheme-backfill',\n ...options\n});\n\n/**\n * List all reports (admin)\n *\n * Returns all reports with filtering and aggregation.\n * Reports are grouped by target and sorted by report count descending.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n */\nexport const getAdminReports = <ThrowOnError extends boolean = false>(options?: Options<GetAdminReportsData, ThrowOnError>) => (options?.client ?? client).get<GetAdminReportsResponses, GetAdminReportsErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/reports',\n ...options\n});\n\n/**\n * Update a report (admin)\n *\n * Update the status and/or admin notes of a report.\n * When status changes to ACCEPTED, REJECTED, or RESOLVED, resolvedAt and resolvedById are set automatically.\n *\n * **Requirements:**\n * - Required Scopes: `ADD_MEDIA` (admin-level permission)\n *\n */\nexport const updateReport = <ThrowOnError extends boolean = false>(options: Options<UpdateReportData, ThrowOnError>) => (options.client ?? client).patch<UpdateReportResponses, UpdateReportErrors, ThrowOnError>({\n security: [{ scheme: 'bearer', type: 'http' }],\n url: '/v1/admin/reports/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n",
15
+ "// This file is auto-generated by scripts/generate.ts\n\nimport { createClient as createApiClient, createConfig, type Client } from './client';\nimport type { ClientOptions } from './types.gen';\nimport { searchSegments, getSearchStats, searchWords, getSegmentContext, browseMedia, mediaIndex, mediaShow, episodeIndex, episodeShow, segmentShow, segmentShowByUuid, characterShow, seiyuuShow, getUserQuota, createReport, getUserReports, listIndex, listShow, listGetSegments, listAddSegment, listUpdateSegment, listRemoveSegment, reindexElasticsearch, getQueueStats, getQueueDetails, getFailedJobs, retryQueueJobs, purgeFailedJobs, morphemeBackfill, getAdminReports, updateReport, healthCheck, mediaCreate, mediaUpdate, mediaDestroy, episodeCreate, episodeUpdate, episodeDestroy, segmentIndex, segmentCreate, segmentUpdate, segmentDestroy, listCreate, listUpdate, listDestroy, listAddItem, listUpdateItem, listRemoveItem } from './sdk.gen';\n\nexport interface NadeshikoConfig {\n apiKey: string;\n baseUrl?: 'LOCAL' | 'DEVELOPMENT' | 'PRODUCTION' | string;\n}\n\nconst environments = {\n LOCAL: 'http://localhost:5000/api',\n DEVELOPMENT: 'https://api.dev.brigadasos.xyz/api',\n PRODUCTION: 'https://api.brigadasos.xyz/api',\n} as const;\n\nexport type NadeshikoClient = {\n client: Client;\n searchSegments: typeof searchSegments;\n getSearchStats: typeof getSearchStats;\n searchWords: typeof searchWords;\n getSegmentContext: typeof getSegmentContext;\n browseMedia: typeof browseMedia;\n mediaIndex: typeof mediaIndex;\n mediaShow: typeof mediaShow;\n episodeIndex: typeof episodeIndex;\n episodeShow: typeof episodeShow;\n segmentShow: typeof segmentShow;\n segmentShowByUuid: typeof segmentShowByUuid;\n characterShow: typeof characterShow;\n seiyuuShow: typeof seiyuuShow;\n getUserQuota: typeof getUserQuota;\n createReport: typeof createReport;\n getUserReports: typeof getUserReports;\n listIndex: typeof listIndex;\n listShow: typeof listShow;\n listGetSegments: typeof listGetSegments;\n listAddSegment: typeof listAddSegment;\n listUpdateSegment: typeof listUpdateSegment;\n listRemoveSegment: typeof listRemoveSegment;\n reindexElasticsearch: typeof reindexElasticsearch;\n getQueueStats: typeof getQueueStats;\n getQueueDetails: typeof getQueueDetails;\n getFailedJobs: typeof getFailedJobs;\n retryQueueJobs: typeof retryQueueJobs;\n purgeFailedJobs: typeof purgeFailedJobs;\n morphemeBackfill: typeof morphemeBackfill;\n getAdminReports: typeof getAdminReports;\n updateReport: typeof updateReport;\n healthCheck: typeof healthCheck;\n mediaCreate: typeof mediaCreate;\n mediaUpdate: typeof mediaUpdate;\n mediaDestroy: typeof mediaDestroy;\n episodeCreate: typeof episodeCreate;\n episodeUpdate: typeof episodeUpdate;\n episodeDestroy: typeof episodeDestroy;\n segmentIndex: typeof segmentIndex;\n segmentCreate: typeof segmentCreate;\n segmentUpdate: typeof segmentUpdate;\n segmentDestroy: typeof segmentDestroy;\n listCreate: typeof listCreate;\n listUpdate: typeof listUpdate;\n listDestroy: typeof listDestroy;\n listAddItem: typeof listAddItem;\n listUpdateItem: typeof listUpdateItem;\n listRemoveItem: typeof listRemoveItem;\n };\n\nexport function createNadeshikoClient(config: NadeshikoConfig): NadeshikoClient {\n const baseUrl = config.baseUrl\n ? (config.baseUrl in environments\n ? environments[config.baseUrl as keyof typeof environments]\n : config.baseUrl)\n : environments.PRODUCTION;\n\n const clientInstance = createApiClient(createConfig<ClientOptions>({\n baseUrl,\n headers: { Authorization: `Bearer ${config.apiKey}` },\n }));\n\n return {\n client: clientInstance,\n searchSegments: (options?: any) => searchSegments({ ...options, client: clientInstance }),\n getSearchStats: (options?: any) => getSearchStats({ ...options, client: clientInstance }),\n searchWords: (options?: any) => searchWords({ ...options, client: clientInstance }),\n getSegmentContext: (options?: any) => getSegmentContext({ ...options, client: clientInstance }),\n browseMedia: (options?: any) => browseMedia({ ...options, client: clientInstance }),\n mediaIndex: (options?: any) => mediaIndex({ ...options, client: clientInstance }),\n mediaShow: (options?: any) => mediaShow({ ...options, client: clientInstance }),\n episodeIndex: (options?: any) => episodeIndex({ ...options, client: clientInstance }),\n episodeShow: (options?: any) => episodeShow({ ...options, client: clientInstance }),\n segmentShow: (options?: any) => segmentShow({ ...options, client: clientInstance }),\n segmentShowByUuid: (options?: any) => segmentShowByUuid({ ...options, client: clientInstance }),\n characterShow: (options?: any) => characterShow({ ...options, client: clientInstance }),\n seiyuuShow: (options?: any) => seiyuuShow({ ...options, client: clientInstance }),\n getUserQuota: (options?: any) => getUserQuota({ ...options, client: clientInstance }),\n createReport: (options?: any) => createReport({ ...options, client: clientInstance }),\n getUserReports: (options?: any) => getUserReports({ ...options, client: clientInstance }),\n listIndex: (options?: any) => listIndex({ ...options, client: clientInstance }),\n listShow: (options?: any) => listShow({ ...options, client: clientInstance }),\n listGetSegments: (options?: any) => listGetSegments({ ...options, client: clientInstance }),\n listAddSegment: (options?: any) => listAddSegment({ ...options, client: clientInstance }),\n listUpdateSegment: (options?: any) => listUpdateSegment({ ...options, client: clientInstance }),\n listRemoveSegment: (options?: any) => listRemoveSegment({ ...options, client: clientInstance }),\n reindexElasticsearch: (options?: any) => reindexElasticsearch({ ...options, client: clientInstance }),\n getQueueStats: (options?: any) => getQueueStats({ ...options, client: clientInstance }),\n getQueueDetails: (options?: any) => getQueueDetails({ ...options, client: clientInstance }),\n getFailedJobs: (options?: any) => getFailedJobs({ ...options, client: clientInstance }),\n retryQueueJobs: (options?: any) => retryQueueJobs({ ...options, client: clientInstance }),\n purgeFailedJobs: (options?: any) => purgeFailedJobs({ ...options, client: clientInstance }),\n morphemeBackfill: (options?: any) => morphemeBackfill({ ...options, client: clientInstance }),\n getAdminReports: (options?: any) => getAdminReports({ ...options, client: clientInstance }),\n updateReport: (options?: any) => updateReport({ ...options, client: clientInstance }),\n healthCheck: (options?: any) => healthCheck({ ...options, client: clientInstance }),\n mediaCreate: (options?: any) => mediaCreate({ ...options, client: clientInstance }),\n mediaUpdate: (options?: any) => mediaUpdate({ ...options, client: clientInstance }),\n mediaDestroy: (options?: any) => mediaDestroy({ ...options, client: clientInstance }),\n episodeCreate: (options?: any) => episodeCreate({ ...options, client: clientInstance }),\n episodeUpdate: (options?: any) => episodeUpdate({ ...options, client: clientInstance }),\n episodeDestroy: (options?: any) => episodeDestroy({ ...options, client: clientInstance }),\n segmentIndex: (options?: any) => segmentIndex({ ...options, client: clientInstance }),\n segmentCreate: (options?: any) => segmentCreate({ ...options, client: clientInstance }),\n segmentUpdate: (options?: any) => segmentUpdate({ ...options, client: clientInstance }),\n segmentDestroy: (options?: any) => segmentDestroy({ ...options, client: clientInstance }),\n listCreate: (options?: any) => listCreate({ ...options, client: clientInstance }),\n listUpdate: (options?: any) => listUpdate({ ...options, client: clientInstance }),\n listDestroy: (options?: any) => listDestroy({ ...options, client: clientInstance }),\n listAddItem: (options?: any) => listAddItem({ ...options, client: clientInstance }),\n listUpdateItem: (options?: any) => listUpdateItem({ ...options, client: clientInstance }),\n listRemoveItem: (options?: any) => listRemoveItem({ ...options, client: clientInstance }),\n };\n}\n\n// Alias for convenience\nexport const createClient = createNadeshikoClient;\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "583FBE4F6A06939664756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "8CBCA84DFC8042B964756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -0,0 +1,2 @@
1
+ export { listCreate, listUpdate, listDestroy, listAddItem, listUpdateItem, listRemoveItem } from '../sdk.gen';
2
+ //# sourceMappingURL=lists.gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.gen.d.ts","sourceRoot":"","sources":["../../../../generated/internal/internal/lists.gen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { mediaCreate, mediaUpdate, mediaDestroy, episodeCreate, episodeUpdate, episodeDestroy, segmentIndex, segmentCreate, segmentUpdate, segmentDestroy } from '../sdk.gen';
2
+ //# sourceMappingURL=media.gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.gen.d.ts","sourceRoot":"","sources":["../../../../generated/internal/internal/media.gen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { healthCheck } from '../sdk.gen';
2
+ //# sourceMappingURL=search.gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.gen.d.ts","sourceRoot":"","sources":["../../../../generated/internal/internal/search.gen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * as search from './internal/search.gen';
2
+ export * as media from './internal/media.gen';
3
+ export * as lists from './internal/lists.gen';
4
+ //# sourceMappingURL=internal.gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.gen.d.ts","sourceRoot":"","sources":["../../../generated/internal/internal.gen.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { type Client } from './client';
2
+ import { searchSegments, getSearchStats, searchWords, getSegmentContext, browseMedia, mediaIndex, mediaShow, episodeIndex, episodeShow, segmentShow, segmentShowByUuid, characterShow, seiyuuShow, getUserQuota, createReport, getUserReports, listIndex, listShow, listGetSegments, listAddSegment, listUpdateSegment, listRemoveSegment, reindexElasticsearch, getQueueStats, getQueueDetails, getFailedJobs, retryQueueJobs, purgeFailedJobs, morphemeBackfill, getAdminReports, updateReport, healthCheck, mediaCreate, mediaUpdate, mediaDestroy, episodeCreate, episodeUpdate, episodeDestroy, segmentIndex, segmentCreate, segmentUpdate, segmentDestroy, listCreate, listUpdate, listDestroy, listAddItem, listUpdateItem, listRemoveItem } from './sdk.gen';
3
+ export interface NadeshikoConfig {
4
+ apiKey: string;
5
+ baseUrl?: 'LOCAL' | 'DEVELOPMENT' | 'PRODUCTION' | string;
6
+ }
7
+ export type NadeshikoClient = {
8
+ client: Client;
9
+ searchSegments: typeof searchSegments;
10
+ getSearchStats: typeof getSearchStats;
11
+ searchWords: typeof searchWords;
12
+ getSegmentContext: typeof getSegmentContext;
13
+ browseMedia: typeof browseMedia;
14
+ mediaIndex: typeof mediaIndex;
15
+ mediaShow: typeof mediaShow;
16
+ episodeIndex: typeof episodeIndex;
17
+ episodeShow: typeof episodeShow;
18
+ segmentShow: typeof segmentShow;
19
+ segmentShowByUuid: typeof segmentShowByUuid;
20
+ characterShow: typeof characterShow;
21
+ seiyuuShow: typeof seiyuuShow;
22
+ getUserQuota: typeof getUserQuota;
23
+ createReport: typeof createReport;
24
+ getUserReports: typeof getUserReports;
25
+ listIndex: typeof listIndex;
26
+ listShow: typeof listShow;
27
+ listGetSegments: typeof listGetSegments;
28
+ listAddSegment: typeof listAddSegment;
29
+ listUpdateSegment: typeof listUpdateSegment;
30
+ listRemoveSegment: typeof listRemoveSegment;
31
+ reindexElasticsearch: typeof reindexElasticsearch;
32
+ getQueueStats: typeof getQueueStats;
33
+ getQueueDetails: typeof getQueueDetails;
34
+ getFailedJobs: typeof getFailedJobs;
35
+ retryQueueJobs: typeof retryQueueJobs;
36
+ purgeFailedJobs: typeof purgeFailedJobs;
37
+ morphemeBackfill: typeof morphemeBackfill;
38
+ getAdminReports: typeof getAdminReports;
39
+ updateReport: typeof updateReport;
40
+ healthCheck: typeof healthCheck;
41
+ mediaCreate: typeof mediaCreate;
42
+ mediaUpdate: typeof mediaUpdate;
43
+ mediaDestroy: typeof mediaDestroy;
44
+ episodeCreate: typeof episodeCreate;
45
+ episodeUpdate: typeof episodeUpdate;
46
+ episodeDestroy: typeof episodeDestroy;
47
+ segmentIndex: typeof segmentIndex;
48
+ segmentCreate: typeof segmentCreate;
49
+ segmentUpdate: typeof segmentUpdate;
50
+ segmentDestroy: typeof segmentDestroy;
51
+ listCreate: typeof listCreate;
52
+ listUpdate: typeof listUpdate;
53
+ listDestroy: typeof listDestroy;
54
+ listAddItem: typeof listAddItem;
55
+ listUpdateItem: typeof listUpdateItem;
56
+ listRemoveItem: typeof listRemoveItem;
57
+ };
58
+ export declare function createNadeshikoClient(config: NadeshikoConfig): NadeshikoClient;
59
+ export declare const createClient: typeof createNadeshikoClient;
60
+ //# sourceMappingURL=nadeshiko.gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nadeshiko.gen.d.ts","sourceRoot":"","sources":["../../../generated/internal/nadeshiko.gen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiD,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEruB,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;CAC3D;AAQD,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC,CAAC;AAEJ,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CA+D9E;AAGD,eAAO,MAAM,YAAY,8BAAwB,CAAC"}