Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | 9x 9x 9x 9x 9x 9x 9x | import { components, operations, paths } from './generatedApiTypes' export enum Region { EU = 'EU', AP = 'AP', Global = 'Global', } export enum AuthenticationMode { AuthHeader = 'AuthHeader', QueryParameter = 'QueryParameter', } /** * Options for FingerprintJS server API client */ export interface Options { /** * Secret API key */ apiKey: string /** * Region of the FingerprintJS service server */ region?: Region /** * Authentication mode * Optional, default value is AuthHeader */ authenticationMode?: AuthenticationMode /** * Optional fetch implementation * */ fetch?: typeof fetch } /** * More info: https://dev.fingerprintjs.com/docs/server-api#query-parameters */ export type VisitorHistoryFilter = paths['/visitors/{visitor_id}']['get']['parameters']['query'] export type ErrorPlainResponse = components['schemas']['ErrorPlainResponse'] export type ErrorResponse = components['schemas']['ErrorResponse'] /** * More info: https://dev.fingerprintjs.com/docs/server-api#response */ export type VisitorsResponse = paths['/visitors/{visitor_id}']['get']['responses']['200']['content']['application/json'] export type EventResponse = paths['/events/{request_id}']['get']['responses']['200']['content']['application/json'] export type RelatedVisitorsResponse = paths['/related-visitors']['get']['responses']['200']['content']['application/json'] export type RelatedVisitorsFilter = paths['/related-visitors']['get']['parameters']['query'] /** * More info: https://dev.fingerprintjs.com/docs/webhooks#identification-webhook-object-format */ export type Webhook = components['schemas']['Webhook'] export type EventsUpdateRequest = components['schemas']['EventsUpdateRequest'] // Extract just the `path` parameters as a tuple of strings type ExtractPathParamStrings<Path> = Path extends { parameters: { path: infer P } } ? P extends Record<string, any> ? [P[keyof P]] // We extract the path parameter values as a tuple of strings : [] : [] // Utility type to extract query parameters from an operation and differentiate required/optional export type ExtractQueryParams<Path> = Path extends { parameters: { query?: infer Q } } ? undefined extends Q // Check if Q can be undefined (meaning it's optional) ? Q | undefined // If so, it's optional : Q // Otherwise, it's required : never // If no query parameters, return never // Utility type to extract request body from an operation (for POST, PUT, etc.) type ExtractRequestBody<Path> = Path extends { requestBody: { content: { 'application/json': infer B } } } ? B : never // Utility type to extract the response type for 200 status code type ExtractResponse<Path> = Path extends { responses: { 200: { content: { 'application/json': infer R } } } } ? R : void // Extracts args to given API method type ApiMethodArgs<Path extends keyof operations> = [ // If method has body, extract it as first parameter ...(ExtractRequestBody<operations[Path]> extends never ? [] : [body: ExtractRequestBody<operations[Path]>]), // Next are path params, e.g. for path "/events/{request_id}" it will be one string parameter, ...ExtractPathParamStrings<operations[Path]>, // Last parameter will be the query params, if any ...(ExtractQueryParams<operations[Path]> extends never ? [] : [params: ExtractQueryParams<operations[Path]>]), ] type ApiMethod<Path extends keyof operations> = ( ...args: ApiMethodArgs<Path> ) => Promise<ExtractResponse<operations[Path]>> export type FingerprintApi = { [Path in keyof operations]: ApiMethod<Path> } |