diff --git a/.gitignore b/.gitignore index 31ca5c84..8c65ca77 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ typesense-server-nodes .DS_Store test-results.xml test-files +typesense-data .env diff --git a/README.md b/README.md index 4235a24a..42d4c163 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Javascript client library for accessing the [Typesense HTTP API](https://github.com/typesense/typesense). -This library can be used both on the server-side and on the client-side. The library's [source](/src) is in ES6 and during build time, we transpile it to ES5 and generate two artifacts - [one](/lib) that can be used on the server-side and [another](/dist) that uses [Browserify](http://browserify.org/) and can be used on the client side. +This library can be used both on the server-side and on the client-side. The library's [source](/src) is in ES6 and during build time, we transpile it to ES5 and generate two artifacts - [one](/lib) CommonJS that can be used on Node and [another](/dist) CommonJS / ESM that uses [tsup](https://tsup.egoist.dev/) and can be used on the client side. ## Installation @@ -41,6 +41,27 @@ Tests are also a good place to know how the library works internally: [test](tes See [Configuration.ts](src/Typesense/Configuration.ts) for a list of all client configuration options. +## Search-only Client for Browser +You can create a search-only client instance for use in the browser by importing the `SearchClient` class from `typesense/dist`. + +```typescript +import { SearchClient } from 'typesense/dist' + +const client = new SearchClient({ + nodes: [ + { + host: 'localhost', + port: '8108', + protocol: 'http', + }, + ], + apiKey: 'xyz', + connectionTimeoutSeconds: 2, + healthcheckIntervalSeconds: 60, + +}) +``` + ### Examples Here are some examples with inline comments that walk you through how to use the client: [doc/examples](doc/examples) diff --git a/dist/index.d.mts b/dist/index.d.mts new file mode 100644 index 00000000..34033a11 --- /dev/null +++ b/dist/index.d.mts @@ -0,0 +1,1335 @@ +import logger from 'loglevel'; +import { Agent } from 'http'; +import { Agent as Agent$1 } from 'https'; +import { AxiosRequestConfig, Method, AxiosResponse } from 'axios'; +import { ReadStream } from 'fs'; +import { ReadStream as ReadStream$1 } from 'node:fs'; + +declare class TypesenseError extends Error { + httpStatus?: number; + httpBody?: string; + constructor(message?: string, httpBody?: string, httpStatus?: number); +} + +interface Node extends NodeConfiguration { + isHealthy: boolean; + index: string | number; +} +interface HttpClient { + get(endpoint: string, queryParameters: Record, { abortSignal, responseType, streamConfig, isStreamingRequest, }: { + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest: boolean | undefined; + }): Promise; + delete(endpoint: string, queryParameters: Record): Promise; + post(endpoint: string, bodyParameters: unknown, queryParameters: Record, additionalHeaders: Record, { abortSignal, responseType, streamConfig, isStreamingRequest, }: { + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest: boolean | undefined; + }): Promise; + put(endpoint: string, bodyParameters: unknown, queryParameters: Record): Promise; + patch(endpoint: string, bodyParameters: unknown, queryParameters: Record): Promise; +} +declare class ApiCall implements HttpClient { + private configuration; + private readonly apiKey; + private readonly nodes; + private readonly nearestNode; + private readonly connectionTimeoutSeconds; + private readonly healthcheckIntervalSeconds; + private readonly retryIntervalSeconds; + private readonly sendApiKeyAsQueryParam?; + private readonly numRetriesPerRequest; + private readonly additionalUserHeaders?; + private readonly logger; + private currentNodeIndex; + constructor(configuration: Configuration); + get(endpoint: string, queryParameters?: any, { abortSignal, responseType, streamConfig, isStreamingRequest, }?: { + abortSignal?: any; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest?: boolean | undefined; + }): Promise; + delete(endpoint: string, queryParameters?: any): Promise; + post(endpoint: string, bodyParameters?: any, queryParameters?: any, additionalHeaders?: any, { abortSignal, responseType, streamConfig, isStreamingRequest, }?: { + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest?: boolean | undefined; + }): Promise; + put(endpoint: string, bodyParameters?: any, queryParameters?: any): Promise; + patch(endpoint: string, bodyParameters?: any, queryParameters?: any): Promise; + private getAdapter; + performRequest(requestType: Method, endpoint: string, { queryParameters, bodyParameters, additionalHeaders, abortSignal, responseType, skipConnectionTimeout, enableKeepAlive, streamConfig, isStreamingRequest, }: { + queryParameters?: any; + bodyParameters?: any; + additionalHeaders?: any; + abortSignal?: any; + responseType?: AxiosRequestConfig["responseType"] | undefined; + skipConnectionTimeout?: boolean; + enableKeepAlive?: boolean | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest?: boolean | undefined; + }): Promise; + private processStreamingLine; + private processDataLine; + private handleStreamingResponse; + private handleNodeStreaming; + private handleBrowserStreaming; + private handleBrowserReadableStream; + private handleBrowserStringResponse; + private processStreamLines; + private finalizeStreamResult; + /** + * Combines multiple streaming chunks into a single coherent result + * This is critical for ensuring we return the complete data rather than just the last chunk + */ + private combineStreamingChunks; + private getMessageChunks; + private isChunkMessage; + private combineMessageChunks; + private isCompleteSearchResponse; + getNextNode(requestNumber?: number): Node; + nodeDueForHealthcheck(node: any, requestNumber?: number): boolean; + initializeMetadataForNodes(): void; + setNodeHealthcheck(node: any, isHealthy: any): void; + uriFor(endpoint: string, node: any): string; + defaultHeaders(): any; + timer(seconds: any): Promise; + customErrorForResponse(response: AxiosResponse, messageFromServer: string, httpBody?: string): TypesenseError; + private invokeOnChunkCallback; + private invokeOnCompleteCallback; + private invokeOnErrorCallback; +} + +type DropTokensMode = "right_to_left" | "left_to_right" | "both_sides:3"; +type OperationMode = "off" | "always" | "fallback"; +type CommaSeparated = T extends `${infer Start},${infer Rest}` ? TrimString extends ToExtend ? CommaSeparated +]> : { + error: "Invalid operation mode"; + value: TrimString; +} : TrimString extends ToExtend ? OriginalString : { + error: "Invalid operation mode"; + value: TrimString; +}; +type UnionArrayKeys = { + [K in keyof T]: T[K] extends undefined ? never : NonNullable extends infer R ? R extends R[] ? never : R extends (infer U)[] | infer U ? U[] extends R ? K : never : never : never; +}[keyof T] & keyof T; +type UnionArraySearchParams = UnionArrayKeys; +type ArraybleParams = { + readonly [K in UnionArraySearchParams]: string; +}; +type ExtractBaseTypes = { + [K in keyof T]: K extends UnionArrayKeys ? T[K] extends (infer U)[] | infer U ? U : T[K] : T[K]; +}; +interface SearchParams { + q?: "*" | (string & {}); + query_by?: string | string[]; + query_by_weights?: string | number[]; + prefix?: string | boolean | boolean[]; + filter_by?: string; + max_filter_by_candidates?: number; + enable_synonyms?: boolean; + enable_analytics?: boolean; + filter_curated_hits?: boolean; + enable_lazy_filter?: boolean; + sort_by?: string | string[]; + facet_by?: string | string[]; + max_facet_values?: number; + facet_sample_threshold?: number; + facet_sample_percent?: number; + facet_query?: string; + facet_query_num_typos?: number; + facet_return_parent?: string; + facet_strategy?: "exhaustive" | "top_values" | "automatic"; + page?: number; + per_page?: number; + group_by?: string | string[]; + group_limit?: number; + group_missing_values?: boolean; + include_fields?: string | string[]; + exclude_fields?: string | string[]; + highlight_fields?: string | string[]; + highlight_full_fields?: string | string[]; + highlight_affix_num_tokens?: number; + highlight_start_tag?: string; + highlight_end_tag?: string; + enable_highlight_v1?: boolean; + snippet_threshold?: number; + num_typos?: string | number | number[]; + min_len_1typo?: number; + min_len_2typo?: number; + split_join_tokens?: OperationMode; + exhaustive_search?: boolean; + drop_tokens_threshold?: number; + drop_tokens_mode?: DropTokensMode; + typo_tokens_threshold?: number; + pinned_hits?: string | string[]; + hidden_hits?: string | string[]; + limit_hits?: number; + pre_segmented_query?: boolean; + enable_overrides?: boolean; + override_tags?: string | string[]; + prioritize_exact_match?: boolean; + prioritize_token_position?: boolean; + prioritize_num_matching_fields?: boolean; + search_cutoff_ms?: number; + use_cache?: boolean; + max_candidates?: number; + infix?: CommaSeparated | OperationMode[] | OperationMode; + preset?: string; + text_match_type?: "max_score" | "max_weight"; + vector_query?: string; + "x-typesense-api-key"?: string; + "x-typesense-user-id"?: string; + offset?: number; + limit?: number; + stopwords?: string; + conversation?: boolean; + conversation_stream?: boolean; + conversation_model_id?: string; + conversation_id?: string; + voice_query?: string; + streamConfig?: StreamConfig; +} +interface SearchResponseRequestParams { + collection_name?: string; + q?: string; + page?: number; + per_page?: number; + first_q?: string; + voice_query?: { + transcribed_query?: string; + }; +} +interface SearchableDocuments { + search(searchParameters: SearchParams | SearchParamsWithPreset, options: SearchOptions): Promise>; + clearCache(): void; +} +interface WriteableDocuments { + create(document: T, options: DocumentWriteParameters): Promise; + upsert(document: T, options: DocumentWriteParameters): Promise; + update(document: T, options: DocumentWriteParameters): Promise; + delete(query: DeleteQuery): Promise; + import(documents: T[] | string, options: DocumentWriteParameters): Promise; + export(options: DocumentsExportParameters): Promise; +} +interface RequestParams { + path: string; + queryParams?: Record; + body?: unknown; + headers?: Record; + streamConfig?: StreamConfig | MultiSearchResultsStreamConfig | MultiSearchUnionStreamConfig; + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + isStreamingRequest: boolean | undefined; +} +interface MultiSearchRequestsWithUnionSchema extends SearchesMultiSearchesRequestSchema { + union: true; +} +interface MultiSearchRequestsWithoutUnionSchema extends SearchesMultiSearchesRequestSchema { + union?: false | undefined; +} +type MultiSearchRequestsSchema = MultiSearchRequestsWithUnionSchema | MultiSearchRequestsWithoutUnionSchema; +interface UnionSearchResponse extends Omit, "request_params"> { + union_request_params: SearchResponseRequestParams[]; +} +type MultiSearchResponse = MultiSearchRequestsSchema> = R extends MultiSearchRequestsWithUnionSchema ? UnionSearchResponse : { + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; +}; +interface MultiSearchUnionStreamConfig extends BaseStreamConfig { + onComplete?: (data: UnionSearchResponse) => void; +} +interface MultiSearchUnionStreamConfig extends BaseStreamConfig { + onComplete?: (data: UnionSearchResponse) => void; +} +interface MultiSearchResultsStreamConfig extends BaseStreamConfig { + onComplete?: (data: { + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; + }) => void; +} +interface MultiSearchResultsStreamConfig extends BaseStreamConfig { + onComplete?: (data: { + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; + }) => void; +} +interface SearchesMultiSearchesRequestSchema { + searches: (MultiSearchRequestSchema | MultiSearchRequestWithPresetSchema)[]; +} +interface BaseMultiSearchRequestSchema { + collection?: string; + rerank_hybrid_matches?: boolean; + "x-typesense-api-key"?: string; +} +type CommonMultiSearchParametersBase = Partial, "streamConfig">>; +type MultiSearchRequestSchema = BaseMultiSearchRequestSchema & Omit, "streamConfig">; +type MultiSearchRequestWithPresetSchema = BaseMultiSearchRequestSchema & Omit, "streamConfig">; +type MultiSearchUnionParameters = CommonMultiSearchParametersBase & { + streamConfig?: MultiSearchUnionStreamConfig; + use_cache?: boolean; +}; +type MultiSearchResultsParameters = CommonMultiSearchParametersBase & { + streamConfig?: MultiSearchResultsStreamConfig; + use_cache?: boolean; +}; +type Whitespace = " " | "\n" | "\t"; +type TrimString = S extends `${Whitespace}${infer S}` ? TrimString : S extends `${infer S}${Whitespace}` ? TrimString : S; + +declare class RequestWithCache { + private responseCache; + private responsePromiseCache; + clearCache(): void; + perform(requestContext: TContext, methodName: TMethod, requestParams: RequestParams, cacheOptions: CacheOptions): Promise; + private executeRequest; +} +interface CacheOptions { + cacheResponseForSeconds?: number; + maxSize?: number; +} + +declare class SearchOnlyDocuments implements SearchableDocuments { + protected collectionName: string; + protected apiCall: ApiCall; + protected configuration: Configuration; + protected requestWithCache: RequestWithCache; + constructor(collectionName: string, apiCall: ApiCall, configuration: Configuration); + clearCache(): void; + search(searchParameters: SearchParams | SearchParamsWithPreset, { cacheSearchResultsForSeconds, abortSignal, }?: SearchOptions): Promise>; + protected endpointPath(operation?: string): string; + static get RESOURCEPATH(): string; +} + +type DeleteQuery = { + truncate?: true; +} | { + truncate?: never; + filter_by?: string; + batch_size?: number; + ignore_not_found?: boolean; +}; +interface DeleteResponse { + num_deleted: number; +} +interface ImportResponseSuccess { + success: true; +} +interface ImportResponseFail { + success: false; + error: string; + document: DocumentSchema; + code: number; +} +type ImportResponse = ImportResponseSuccess | ImportResponseFail; +type DocumentSchema = Record; +interface SearchParamsWithPreset extends Partial> { + preset: string; +} +type SearchResponseHighlightObject = { + matched_tokens?: string[]; + snippet?: string; + value?: string; +}; +type SearchResponseHighlight = T extends string | number ? SearchResponseHighlightObject : { + [TAttribute in keyof T]?: SearchResponseHighlight; +}; +interface SearchResponseHit { + curated?: true; + highlights?: [ + { + field: keyof T; + snippet?: string; + value?: string; + snippets?: string[]; + indices?: number[]; + matched_tokens: string[][] | string[]; + } + ]; + highlight: SearchResponseHighlight; + document: T; + text_match: number; + text_match_info?: { + best_field_score: `${number}`; + best_field_weight: number; + fields_matched: number; + score: `${number}`; + tokens_matched: number; + }; +} +interface SearchResponseFacetCountSchema { + counts: { + count: number; + highlighted: string; + value: string; + parent?: Record; + }[]; + field_name: keyof T; + stats: { + avg?: number; + max?: number; + min?: number; + sum?: number; + }; +} +interface SearchResponse { + facet_counts?: SearchResponseFacetCountSchema[]; + found: number; + found_docs?: number; + out_of: number; + page: number; + request_params: SearchResponseRequestParams; + search_time_ms: number; + search_cutoff?: boolean; + hits?: SearchResponseHit[]; + grouped_hits?: { + group_key: string[]; + hits: SearchResponseHit[]; + found?: number; + }[]; + conversation?: { + answer: string; + conversation_history: { + conversation: object[]; + id: string; + last_updated: number; + ttl: number; + }; + conversation_id: string; + query: string; + }; + error?: string; + code?: number; +} +interface DocumentWriteParameters { + dirty_values?: "coerce_or_reject" | "coerce_or_drop" | "drop" | "reject"; + action?: "create" | "update" | "upsert" | "emplace"; +} +interface UpdateByFilterParameters { + filter_by?: string; +} +interface UpdateByFilterResponse { + num_updated: number; +} +interface DocumentImportParameters extends DocumentWriteParameters { + batch_size?: number; + remote_embedding_batch_size?: number; + remote_embedding_timeout_ms?: number; + remote_embedding_num_tries?: number; + return_doc?: boolean; + return_id?: boolean; +} +interface DocumentsExportParameters { + filter_by?: string; + include_fields?: string; + exclude_fields?: string; +} +interface SearchOptions { + cacheSearchResultsForSeconds?: number; + abortSignal?: AbortSignal | null; +} +declare class Documents extends SearchOnlyDocuments implements WriteableDocuments { + constructor(collectionName: string, apiCall: ApiCall, configuration: Configuration); + create(document: T, options?: DocumentWriteParameters): Promise; + upsert(document: T, options?: DocumentWriteParameters): Promise; + update(document: T, options: UpdateByFilterParameters): Promise; + update(document: T, options: DocumentWriteParameters): Promise; + delete(query?: DeleteQuery): Promise; + createMany(documents: T[], options?: DocumentImportParameters): Promise; + /** + * Import a set of documents in a batch. + * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects. + * @param options + * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results. + */ + import(documents: string, options?: DocumentImportParameters): Promise; + import(documents: T[], options?: DocumentImportParameters): Promise; + /** + * Imports documents from a NodeJS readable stream of JSONL. + */ + importStream(readableStream: ReadStream, options?: DocumentImportParameters): Promise; + /** + * Returns a JSONL string for all the documents in this collection + */ + export(options?: DocumentsExportParameters): Promise; + /** + * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + */ + exportStream(options?: DocumentsExportParameters): Promise; +} + +interface NodeConfiguration { + host: string; + port: number; + protocol: string; + path?: string; + url?: string; +} +interface NodeConfigurationWithHostname { + host: string; + port: number; + protocol: string; + path?: string; +} +interface NodeConfigurationWithUrl { + url: string; +} +interface ConfigurationOptions { + apiKey: string; + nodes: NodeConfiguration[] | NodeConfigurationWithHostname[] | NodeConfigurationWithUrl[]; + randomizeNodes?: boolean; + /** + * @deprecated + * masterNode is now consolidated to nodes, starting with Typesense Server v0.12' + */ + masterNode?: NodeConfiguration | NodeConfigurationWithHostname | NodeConfigurationWithUrl; + /** + * @deprecated + * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12' + */ + readReplicaNodes?: NodeConfiguration[] | NodeConfigurationWithHostname[] | NodeConfigurationWithUrl[]; + nearestNode?: NodeConfiguration | NodeConfigurationWithHostname | NodeConfigurationWithUrl; + connectionTimeoutSeconds?: number; + timeoutSeconds?: number; + healthcheckIntervalSeconds?: number; + numRetries?: number; + retryIntervalSeconds?: number; + sendApiKeyAsQueryParam?: boolean | undefined; + useServerSideSearchCache?: boolean; + cacheSearchResultsForSeconds?: number; + additionalHeaders?: Record; + logLevel?: logger.LogLevelDesc; + logger?: logger.Logger; + /** + * Set a custom HTTP Agent + * + * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors + * Usage: + * const { Agent: HTTPAgent } = require("http"); + * ... + * httpAgent: new HTTPAgent({ keepAlive: true }), + * @type {HTTPAgent} + */ + httpAgent?: Agent; + /** + * Set a custom HTTPS Agent + * + * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors + * Usage: + * const { Agent: HTTPSAgent } = require("https"); + * ... + * httpsAgent: new HTTPSAgent({ keepAlive: true }), + * @type {HTTPSAgent} + */ + httpsAgent?: Agent$1; + /** + * Set a custom paramsSerializer + * + * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config + * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397 + * @type {any} + */ + paramsSerializer?: any; + /** + * Set a custom axios adapter + * + * Useful for customizing the underlying HTTP client library used by Typesense. + * + * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge. + * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161 + * + * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config + */ + axiosAdapter?: AxiosRequestConfig["adapter"]; +} +/** + * Configuration options for streaming responses + */ +interface BaseStreamConfig { + /** + * Callback function that will be called for each chunk of data received + * during streaming + */ + onChunk?: (data: { + conversation_id: string; + message: string; + }) => void; + /** + * Callback function that will be called if there is an error during streaming + */ + onError?: (error: Error) => void; +} +/** + * Stream configuration for standard search responses + * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature + */ +interface StreamConfig extends BaseStreamConfig { + /** + * Callback function that will be called when the streaming is complete + */ + onComplete?: (data: SearchResponse) => void; +} +declare class Configuration { + readonly nodes: NodeConfiguration[] | NodeConfigurationWithHostname[] | NodeConfigurationWithUrl[]; + readonly nearestNode?: NodeConfiguration | NodeConfigurationWithHostname | NodeConfigurationWithUrl; + readonly connectionTimeoutSeconds: number; + readonly healthcheckIntervalSeconds: number; + readonly numRetries: number; + readonly retryIntervalSeconds: number; + readonly apiKey: string; + readonly sendApiKeyAsQueryParam?: boolean; + readonly cacheSearchResultsForSeconds: number; + readonly useServerSideSearchCache: boolean; + readonly logger: logger.Logger; + readonly logLevel: logger.LogLevelDesc; + readonly additionalHeaders?: Record; + readonly httpAgent?: Agent; + readonly httpsAgent?: Agent$1; + readonly paramsSerializer?: any; + readonly axiosAdapter?: AxiosRequestConfig["adapter"]; + constructor(options: ConfigurationOptions); + validate(): boolean; + private validateNodes; + private isNodeMissingAnyParameters; + private setDefaultPathInNode; + private setDefaultPortInNode; + private showDeprecationWarnings; + private shuffleArray; +} + +declare class MultiSearch { + private apiCall; + private configuration; + private useTextContentType; + private requestWithCache; + constructor(apiCall: ApiCall, configuration: Configuration, useTextContentType?: boolean); + clearCache(): void; + perform(searchRequests: MultiSearchRequestsWithUnionSchema, commonParams?: MultiSearchUnionParameters, options?: { + cacheSearchResultsForSeconds?: number; + }): Promise>; + perform(searchRequests: MultiSearchRequestsWithoutUnionSchema, commonParams?: MultiSearchResultsParameters, options?: { + cacheSearchResultsForSeconds?: number; + }): Promise<{ + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; + }>; + private isStreamingRequest; +} + +declare class SearchOnlyCollection { + private readonly name; + private readonly apiCall; + private readonly configuration; + private readonly _documents; + constructor(name: string, apiCall: ApiCall, configuration: any); + documents(): SearchableDocuments; +} + +declare class SearchClient { + readonly multiSearch: MultiSearch; + private readonly configuration; + private readonly apiCall; + private readonly individualCollections; + constructor(options: ConfigurationOptions); + clearCache(): void; + collections(collectionName: string): SearchOnlyCollection | SearchOnlyCollection; +} + +interface OverrideSchema extends OverrideCreateSchema { + id: string; +} +interface OverrideDeleteSchema { + id: string; +} +declare class Override { + private collectionName; + private overrideId; + private apiCall; + constructor(collectionName: string, overrideId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface OverrideRuleQuerySchema { + query?: string; + match?: "exact" | "contains"; +} +interface OverrideRuleFilterSchema { + filter_by?: string; +} +interface OverrideRuleTagsSchema { + tags?: string[]; +} +interface OverrideCreateSchema { + rule: OverrideRuleQuerySchema & OverrideRuleFilterSchema & OverrideRuleTagsSchema; + filter_by?: string; + sort_by?: string; + remove_matched_tokens?: boolean; + replace_query?: string; + includes?: Array<{ + id: string; + position: number; + }>; + excludes?: Array<{ + id: string; + }>; + filter_curated_hits?: boolean; + effective_from_ts?: number; + effective_to_ts?: number; + stop_processing?: boolean; + metadata?: object; +} +interface OverridesRetrieveSchema { + overrides: OverrideSchema[]; +} +declare class Overrides { + private collectionName; + private apiCall; + constructor(collectionName: string, apiCall: ApiCall); + upsert(overrideId: string, params: OverrideCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface SynonymSchema extends SynonymCreateSchema { + id: string; +} +interface SynonymDeleteSchema { + id: string; +} +declare class Synonym { + private collectionName; + private synonymId; + private apiCall; + constructor(collectionName: string, synonymId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface SynonymCreateSchema { + synonyms: string[]; + root?: string; + locale?: string; + symbols_to_index?: string[]; +} +interface SynonymsRetrieveSchema { + synonyms: SynonymSchema[]; +} +declare class Synonyms { + private collectionName; + private apiCall; + constructor(collectionName: string, apiCall: ApiCall); + upsert(synonymId: string, params: SynonymCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Document { + private collectionName; + private documentId; + private apiCall; + constructor(collectionName: string, documentId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(options?: DeleteQuery): Promise; + update(partialDocument: Partial, options?: DocumentWriteParameters): Promise; + private endpointPath; +} + +type FieldType = "string" | "int32" | "int64" | "float" | "bool" | "geopoint" | "geopolygon" | "geopoint[]" | "string[]" | "int32[]" | "int64[]" | "float[]" | "bool[]" | "object" | "object[]" | "auto" | "string*" | "image"; +interface CollectionFieldSchema extends Partial> { + name: string; + type: FieldType; + optional?: boolean; + facet?: boolean; + index?: boolean; + sort?: boolean; + locale?: string; + infix?: boolean; + stem?: boolean; + num_dim?: number; + store?: boolean; + range_index?: boolean; + [t: string]: unknown; +} +interface CollectionSchema extends CollectionCreateSchema { + created_at: number; + num_documents: number; + num_memory_shards: number; +} +interface CollectionDropFieldSchema { + name: string; + drop: true; +} +interface CollectionUpdateSchema extends Partial> { + fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[]; +} +interface CollectionDeleteOptions { + compact_store?: boolean; +} +declare class Collection { + private readonly name; + private readonly apiCall; + private readonly configuration; + private readonly _documents; + private individualDocuments; + private readonly _overrides; + private individualOverrides; + private readonly _synonyms; + private individualSynonyms; + constructor(name: string, apiCall: ApiCall, configuration: any); + retrieve(): Promise; + update(schema: CollectionUpdateSchema): Promise; + delete(options?: CollectionDeleteOptions): Promise; + exists(): Promise; + documents(): Documents; + documents(documentId: string): Document; + overrides(): Overrides; + overrides(overrideId: string): Override; + synonyms(): Synonyms; + synonyms(synonymId: string): Synonym; + private endpointPath; +} + +interface BaseCollectionCreateSchema { + name: string; + default_sorting_field?: string; + symbols_to_index?: string[]; + token_separators?: string[]; + enable_nested_fields?: boolean; + metadata?: object; + voice_query_model?: { + model_name?: string; + }; +} +interface CollectionCreateSchemaWithSrc extends Pick { + fields?: CollectionFieldSchema[]; +} +interface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema { + fields: CollectionFieldSchema[]; +} +/** + * Defines the schema for creating a collection in Typesense. + * + * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields. + * Otherwise, `fields` will be required. + */ +type CollectionCreateSchema = Options["src_name"] extends string ? CollectionCreateSchemaWithSrc : CollectionCreateSchemaWithoutSrc; +interface CollectionCreateOptions { + src_name?: string; +} +interface CollectionsRetrieveOptions { + exclude_fields?: string; +} +declare class Collections { + private apiCall; + constructor(apiCall: ApiCall); + create(schema: CollectionCreateSchema, options?: Options): Promise; + retrieve(options?: CollectionsRetrieveOptions): Promise; + static get RESOURCEPATH(): string; +} + +interface CollectionAliasCreateSchema { + collection_name: string; +} +interface CollectionAliasSchema extends CollectionAliasCreateSchema { + name: string; +} +interface CollectionAliasesResponseSchema { + aliases: CollectionAliasSchema[]; +} +declare class Aliases { + private apiCall; + constructor(apiCall: ApiCall); + upsert(name: string, mapping: CollectionAliasCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Alias { + private name; + private apiCall; + constructor(name: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface KeyCreateSchema { + actions: string[]; + collections: string[]; + description?: string; + value?: string; + value_prefix?: string; + expires_at?: number; + autodelete?: boolean; +} +interface KeyDeleteSchema { + id: number; +} +interface KeySchema extends KeyCreateSchema { + id: number; +} +declare class Key { + private id; + private apiCall; + constructor(id: number, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface KeysRetrieveSchema { + keys: KeySchema[]; +} +interface GenerateScopedSearchKeyParams extends Partial> { + expires_at?: number; + cache_ttl?: number; + limit_multi_searches?: number; +} +declare class Keys { + private apiCall; + constructor(apiCall: ApiCall); + create(params: KeyCreateSchema): Promise; + retrieve(): Promise; + generateScopedSearchKey(searchKey: string, parameters: GenerateScopedSearchKeyParams): string; + static get RESOURCEPATH(): string; +} + +interface DebugResponseSchema { + state: number; + version: string; +} +declare class Debug { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +interface MetricsResponse { + [key: `system_cpu${number}_active_percentage`]: string; + system_cpu_active_percentage: string; + system_disk_total_bytes: string; + system_disk_used_bytes: string; + system_memory_total_bytes: string; + system_memory_total_swap_bytes?: string; + system_memory_used_bytes: string; + system_memory_used_swap_bytes?: string; + system_network_received_bytes: string; + system_network_sent_bytes: string; + typesense_memory_active_bytes: string; + typesense_memory_allocated_bytes: string; + typesense_memory_fragmentation_ratio: string; + typesense_memory_mapped_bytes: string; + typesense_memory_metadata_bytes: string; + typesense_memory_resident_bytes: string; + typesense_memory_retained_bytes: string; +} +declare class Metrics$1 { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +interface EndpointStats { + [endpoint: string]: number; +} +interface StatsResponse { + delete_latency_ms?: number; + delete_requests_per_second?: number; + import_latency_ms?: number; + import_requests_per_second?: number; + latency_ms?: EndpointStats; + overloaded_requests_per_second?: number; + pending_write_batches?: number; + requests_per_second?: EndpointStats; + search_latency_ms?: number; + search_requests_per_second?: number; + total_requests_per_second?: number; + write_latency_ms?: number; + write_requests_per_second?: number; +} +declare class Metrics { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +interface HealthResponse { + ok: boolean; +} +declare class Health { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +declare class Operations { + private apiCall; + constructor(apiCall: ApiCall); + perform(operationName: "vote" | "snapshot" | "cache/clear" | "schema_changes" | (string & {}), queryParameters?: Record): Promise; +} + +interface PresetSchema extends PresetCreateSchema { + name: string; +} +interface PresetDeleteSchema { + name: string; +} +declare class Preset { + private presetId; + private apiCall; + constructor(presetId: string, apiCall: ApiCall); + retrieve(): Promise>; + delete(): Promise; + private endpointPath; +} + +interface PresetCreateSchema { + value: SearchParams | MultiSearchRequestsSchema; +} +interface PresetsRetrieveSchema { + presets: PresetSchema[]; +} +declare class Presets { + private apiCall; + constructor(apiCall: ApiCall); + upsert(presetId: string, params: PresetCreateSchema): Promise>; + retrieve(): Promise>; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface AnalyticsRuleCreateSchema { + type: "popular_queries" | "nohits_queries" | "counter" | "log"; + params: { + enable_auto_aggregation?: boolean; + source: { + collections: string[]; + events?: Array<{ + type: string; + weight?: number; + name: string; + }>; + }; + expand_query?: boolean; + destination?: { + collection: string; + counter_field?: string; + }; + limit?: number; + }; +} +interface AnalyticsRuleDeleteSchema { + name: string; +} +interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema { + name: string; +} +declare class AnalyticsRule { + private name; + private apiCall; + constructor(name: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface AnalyticsRulesRetrieveSchema { + rules: AnalyticsRuleSchema[]; +} +declare class AnalyticsRules { + private readonly apiCall; + constructor(apiCall: ApiCall); + upsert(name: string, params: AnalyticsRuleCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface AnalyticsEventCreateSchema { + type: string; + name: string; + data: Record; +} + +declare class AnalyticsEvents { + private readonly apiCall; + constructor(apiCall: ApiCall); + create(params: AnalyticsEventCreateSchema): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Analytics { + private readonly apiCall; + private readonly _analyticsRules; + private readonly individualAnalyticsRules; + private readonly _analyticsEvents; + constructor(apiCall: ApiCall); + rules(): AnalyticsRules; + rules(id: string): AnalyticsRule; + events(): AnalyticsEvents; + static get RESOURCEPATH(): string; +} + +interface StopwordSchema extends StopwordCreateSchema { + id: string; + stopwords: string[]; + locale?: string; +} +interface StopwordDeleteSchema { + id: string; +} +declare class Stopword { + private stopwordId; + private apiCall; + constructor(stopwordId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface StopwordCreateSchema { + stopwords: string[]; + locale?: string; +} +interface StopwordsRetrieveSchema { + stopwords: StopwordSchema[]; +} +declare class Stopwords { + private apiCall; + constructor(apiCall: ApiCall); + upsert(stopwordId: string, params: StopwordCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface ConversationModelCreateSchema { + id?: string; + model_name: string; + api_key?: string; + system_prompt?: string; + max_bytes: number; + history_collection?: string; +} +interface ConversationModelDeleteSchema { + id: string; +} +interface ConversationModelSchema extends ConversationModelCreateSchema { + id: string; +} +declare class ConversationModel { + private id; + private apiCall; + constructor(id: string, apiCall: ApiCall); + update(params: ConversationModelCreateSchema): Promise; + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +declare class ConversationModels { + private readonly apiCall; + constructor(apiCall: ApiCall); + create(params: ConversationModelCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface ConversationDeleteSchema { + id: number; +} +interface ConversationUpdateSchema { + ttl: number; +} +interface ConversationSchema { + id: number; + conversation: object[]; + last_updated: number; + ttl: number; +} +declare class Conversation { + private id; + private apiCall; + constructor(id: string, apiCall: ApiCall); + retrieve(): Promise; + update(params: ConversationUpdateSchema): Promise; + delete(): Promise; + private endpointPath; +} + +interface ConversationsRetrieveSchema { + conversations: ConversationSchema[]; +} +declare class Conversations { + private readonly apiCall; + private readonly _conversationsModels; + private readonly individualConversationModels; + constructor(apiCall: ApiCall); + retrieve(): Promise; + models(): ConversationModels; + models(id: string): ConversationModel; + static get RESOURCEPATH(): string; +} + +interface StemmingDictionaryCreateSchema { + root: string; + word: string; +} +interface StemmingDictionarySchema { + id: string; + words: StemmingDictionaryCreateSchema[]; +} +declare class StemmingDictionary { + private id; + private apiCall; + constructor(id: string, apiCall: ApiCall); + retrieve(): Promise; + private endpointPath; +} + +interface StemmingDictionariesRetrieveSchema { + dictionaries: string[]; +} +declare class StemmingDictionaries { + private readonly apiCall; + constructor(apiCall: ApiCall); + upsert(id: string, wordRootCombinations: StemmingDictionaryCreateSchema[] | string): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Stemming { + private readonly apiCall; + private readonly _stemmingDictionaries; + private readonly individualStemmingDictionaries; + constructor(apiCall: ApiCall); + dictionaries(): StemmingDictionaries; + dictionaries(id: string): StemmingDictionary; + static get RESOURCEPATH(): string; +} + +declare class Client { + configuration: Configuration; + apiCall: ApiCall; + debug: Debug; + metrics: Metrics$1; + stats: Metrics; + health: Health; + operations: Operations; + multiSearch: MultiSearch; + analytics: Analytics; + stemming: Stemming; + private readonly _collections; + private readonly individualCollections; + private readonly _aliases; + private readonly individualAliases; + private readonly _keys; + private readonly individualKeys; + private readonly _presets; + private readonly individualPresets; + private readonly _stopwords; + private readonly individualStopwords; + private readonly _conversations; + private readonly individualConversations; + constructor(options: ConfigurationOptions); + collections(): Collections; + collections = object>(collectionName: string): Collection; + aliases(): Aliases; + aliases(aliasName: string): Alias; + keys(): Keys; + keys(id: number): Key; + presets(): Presets; + presets(id: string): Preset; + stopwords(): Stopwords; + stopwords(id: string): Stopword; + conversations(): Conversations; + conversations(id: string): Conversation; +} + +declare class HTTPError extends TypesenseError { +} + +declare class MissingConfigurationError extends TypesenseError { +} + +declare class ObjectAlreadyExists extends TypesenseError { +} + +declare class ObjectNotFound extends TypesenseError { +} + +declare class ObjectUnprocessable extends TypesenseError { +} + +declare class RequestMalformed extends TypesenseError { +} + +declare class RequestUnauthorized extends TypesenseError { +} + +declare class ServerError extends TypesenseError { +} + +interface ImportErrorPayload { + documentsInJSONLFormat: string | ReadStream$1; + options: DocumentImportParameters; + failedItems: ImportResponse[]; + successCount: number; +} +declare class ImportError extends TypesenseError { + payload: ImportErrorPayload; + importResults: ImportResponse[]; + constructor(message: string, importResults: ImportResponse[], payload: ImportErrorPayload); +} + +type index_HTTPError = HTTPError; +declare const index_HTTPError: typeof HTTPError; +type index_ImportError = ImportError; +declare const index_ImportError: typeof ImportError; +type index_MissingConfigurationError = MissingConfigurationError; +declare const index_MissingConfigurationError: typeof MissingConfigurationError; +type index_ObjectAlreadyExists = ObjectAlreadyExists; +declare const index_ObjectAlreadyExists: typeof ObjectAlreadyExists; +type index_ObjectNotFound = ObjectNotFound; +declare const index_ObjectNotFound: typeof ObjectNotFound; +type index_ObjectUnprocessable = ObjectUnprocessable; +declare const index_ObjectUnprocessable: typeof ObjectUnprocessable; +type index_RequestMalformed = RequestMalformed; +declare const index_RequestMalformed: typeof RequestMalformed; +type index_RequestUnauthorized = RequestUnauthorized; +declare const index_RequestUnauthorized: typeof RequestUnauthorized; +type index_ServerError = ServerError; +declare const index_ServerError: typeof ServerError; +type index_TypesenseError = TypesenseError; +declare const index_TypesenseError: typeof TypesenseError; +declare namespace index { + export { index_HTTPError as HTTPError, index_ImportError as ImportError, index_MissingConfigurationError as MissingConfigurationError, index_ObjectAlreadyExists as ObjectAlreadyExists, index_ObjectNotFound as ObjectNotFound, index_ObjectUnprocessable as ObjectUnprocessable, index_RequestMalformed as RequestMalformed, index_RequestUnauthorized as RequestUnauthorized, index_ServerError as ServerError, index_TypesenseError as TypesenseError }; +} + +export { type AnalyticsEventCreateSchema, type AnalyticsRuleCreateSchema, type AnalyticsRuleDeleteSchema, type AnalyticsRuleSchema, type AnalyticsRulesRetrieveSchema, type ArraybleParams, type BaseCollectionCreateSchema, type BaseStreamConfig, Client, type CollectionAliasCreateSchema, type CollectionAliasSchema, type CollectionAliasesResponseSchema, type CollectionCreateOptions, type CollectionCreateSchema, type CollectionDeleteOptions, type CollectionDropFieldSchema, type CollectionFieldSchema, type CollectionSchema, type CollectionUpdateSchema, type CollectionsRetrieveOptions, type ConfigurationOptions, type ConversationDeleteSchema, type ConversationModelCreateSchema, type ConversationModelDeleteSchema, type ConversationModelSchema, type ConversationSchema, type ConversationUpdateSchema, type ConversationsRetrieveSchema, type DebugResponseSchema, type DeleteQuery, type DeleteResponse, type DocumentImportParameters, type DocumentSchema, type DocumentWriteParameters, type DocumentsExportParameters, type DropTokensMode, type EndpointStats, index as Errors, type ExtractBaseTypes, type FieldType, type GenerateScopedSearchKeyParams, type HealthResponse, type ImportResponse, type ImportResponseFail, type KeyCreateSchema, type KeyDeleteSchema, type KeySchema, type KeysRetrieveSchema, type MetricsResponse, type MultiSearchRequestsSchema, type MultiSearchRequestsWithUnionSchema, type MultiSearchRequestsWithoutUnionSchema, type MultiSearchResponse, type MultiSearchResultsParameters, type MultiSearchUnionParameters, type NodeConfiguration, type NodeConfigurationWithHostname, type NodeConfigurationWithUrl, type OperationMode, type OverrideCreateSchema, type OverrideDeleteSchema, type OverrideRuleFilterSchema, type OverrideRuleQuerySchema, type OverrideRuleTagsSchema, type OverrideSchema, type OverridesRetrieveSchema, type PresetCreateSchema, type PresetDeleteSchema, type PresetSchema, type PresetsRetrieveSchema, SearchClient, type SearchOptions, type SearchParams, type SearchParamsWithPreset, type SearchResponse, type SearchResponseFacetCountSchema, type SearchResponseHighlight, type SearchResponseHit, type SearchResponseRequestParams, type SearchableDocuments, type StatsResponse, type StopwordCreateSchema, type StopwordDeleteSchema, type StopwordSchema, type StopwordsRetrieveSchema, type StreamConfig, type SynonymCreateSchema, type SynonymDeleteSchema, type SynonymSchema, type SynonymsRetrieveSchema, type UnionArrayKeys, type UnionArraySearchParams, type UnionSearchResponse, type UpdateByFilterParameters, type UpdateByFilterResponse, type WriteableDocuments }; diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 00000000..34033a11 --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1,1335 @@ +import logger from 'loglevel'; +import { Agent } from 'http'; +import { Agent as Agent$1 } from 'https'; +import { AxiosRequestConfig, Method, AxiosResponse } from 'axios'; +import { ReadStream } from 'fs'; +import { ReadStream as ReadStream$1 } from 'node:fs'; + +declare class TypesenseError extends Error { + httpStatus?: number; + httpBody?: string; + constructor(message?: string, httpBody?: string, httpStatus?: number); +} + +interface Node extends NodeConfiguration { + isHealthy: boolean; + index: string | number; +} +interface HttpClient { + get(endpoint: string, queryParameters: Record, { abortSignal, responseType, streamConfig, isStreamingRequest, }: { + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest: boolean | undefined; + }): Promise; + delete(endpoint: string, queryParameters: Record): Promise; + post(endpoint: string, bodyParameters: unknown, queryParameters: Record, additionalHeaders: Record, { abortSignal, responseType, streamConfig, isStreamingRequest, }: { + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest: boolean | undefined; + }): Promise; + put(endpoint: string, bodyParameters: unknown, queryParameters: Record): Promise; + patch(endpoint: string, bodyParameters: unknown, queryParameters: Record): Promise; +} +declare class ApiCall implements HttpClient { + private configuration; + private readonly apiKey; + private readonly nodes; + private readonly nearestNode; + private readonly connectionTimeoutSeconds; + private readonly healthcheckIntervalSeconds; + private readonly retryIntervalSeconds; + private readonly sendApiKeyAsQueryParam?; + private readonly numRetriesPerRequest; + private readonly additionalUserHeaders?; + private readonly logger; + private currentNodeIndex; + constructor(configuration: Configuration); + get(endpoint: string, queryParameters?: any, { abortSignal, responseType, streamConfig, isStreamingRequest, }?: { + abortSignal?: any; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest?: boolean | undefined; + }): Promise; + delete(endpoint: string, queryParameters?: any): Promise; + post(endpoint: string, bodyParameters?: any, queryParameters?: any, additionalHeaders?: any, { abortSignal, responseType, streamConfig, isStreamingRequest, }?: { + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest?: boolean | undefined; + }): Promise; + put(endpoint: string, bodyParameters?: any, queryParameters?: any): Promise; + patch(endpoint: string, bodyParameters?: any, queryParameters?: any): Promise; + private getAdapter; + performRequest(requestType: Method, endpoint: string, { queryParameters, bodyParameters, additionalHeaders, abortSignal, responseType, skipConnectionTimeout, enableKeepAlive, streamConfig, isStreamingRequest, }: { + queryParameters?: any; + bodyParameters?: any; + additionalHeaders?: any; + abortSignal?: any; + responseType?: AxiosRequestConfig["responseType"] | undefined; + skipConnectionTimeout?: boolean; + enableKeepAlive?: boolean | undefined; + streamConfig?: StreamConfig | undefined; + isStreamingRequest?: boolean | undefined; + }): Promise; + private processStreamingLine; + private processDataLine; + private handleStreamingResponse; + private handleNodeStreaming; + private handleBrowserStreaming; + private handleBrowserReadableStream; + private handleBrowserStringResponse; + private processStreamLines; + private finalizeStreamResult; + /** + * Combines multiple streaming chunks into a single coherent result + * This is critical for ensuring we return the complete data rather than just the last chunk + */ + private combineStreamingChunks; + private getMessageChunks; + private isChunkMessage; + private combineMessageChunks; + private isCompleteSearchResponse; + getNextNode(requestNumber?: number): Node; + nodeDueForHealthcheck(node: any, requestNumber?: number): boolean; + initializeMetadataForNodes(): void; + setNodeHealthcheck(node: any, isHealthy: any): void; + uriFor(endpoint: string, node: any): string; + defaultHeaders(): any; + timer(seconds: any): Promise; + customErrorForResponse(response: AxiosResponse, messageFromServer: string, httpBody?: string): TypesenseError; + private invokeOnChunkCallback; + private invokeOnCompleteCallback; + private invokeOnErrorCallback; +} + +type DropTokensMode = "right_to_left" | "left_to_right" | "both_sides:3"; +type OperationMode = "off" | "always" | "fallback"; +type CommaSeparated = T extends `${infer Start},${infer Rest}` ? TrimString extends ToExtend ? CommaSeparated +]> : { + error: "Invalid operation mode"; + value: TrimString; +} : TrimString extends ToExtend ? OriginalString : { + error: "Invalid operation mode"; + value: TrimString; +}; +type UnionArrayKeys = { + [K in keyof T]: T[K] extends undefined ? never : NonNullable extends infer R ? R extends R[] ? never : R extends (infer U)[] | infer U ? U[] extends R ? K : never : never : never; +}[keyof T] & keyof T; +type UnionArraySearchParams = UnionArrayKeys; +type ArraybleParams = { + readonly [K in UnionArraySearchParams]: string; +}; +type ExtractBaseTypes = { + [K in keyof T]: K extends UnionArrayKeys ? T[K] extends (infer U)[] | infer U ? U : T[K] : T[K]; +}; +interface SearchParams { + q?: "*" | (string & {}); + query_by?: string | string[]; + query_by_weights?: string | number[]; + prefix?: string | boolean | boolean[]; + filter_by?: string; + max_filter_by_candidates?: number; + enable_synonyms?: boolean; + enable_analytics?: boolean; + filter_curated_hits?: boolean; + enable_lazy_filter?: boolean; + sort_by?: string | string[]; + facet_by?: string | string[]; + max_facet_values?: number; + facet_sample_threshold?: number; + facet_sample_percent?: number; + facet_query?: string; + facet_query_num_typos?: number; + facet_return_parent?: string; + facet_strategy?: "exhaustive" | "top_values" | "automatic"; + page?: number; + per_page?: number; + group_by?: string | string[]; + group_limit?: number; + group_missing_values?: boolean; + include_fields?: string | string[]; + exclude_fields?: string | string[]; + highlight_fields?: string | string[]; + highlight_full_fields?: string | string[]; + highlight_affix_num_tokens?: number; + highlight_start_tag?: string; + highlight_end_tag?: string; + enable_highlight_v1?: boolean; + snippet_threshold?: number; + num_typos?: string | number | number[]; + min_len_1typo?: number; + min_len_2typo?: number; + split_join_tokens?: OperationMode; + exhaustive_search?: boolean; + drop_tokens_threshold?: number; + drop_tokens_mode?: DropTokensMode; + typo_tokens_threshold?: number; + pinned_hits?: string | string[]; + hidden_hits?: string | string[]; + limit_hits?: number; + pre_segmented_query?: boolean; + enable_overrides?: boolean; + override_tags?: string | string[]; + prioritize_exact_match?: boolean; + prioritize_token_position?: boolean; + prioritize_num_matching_fields?: boolean; + search_cutoff_ms?: number; + use_cache?: boolean; + max_candidates?: number; + infix?: CommaSeparated | OperationMode[] | OperationMode; + preset?: string; + text_match_type?: "max_score" | "max_weight"; + vector_query?: string; + "x-typesense-api-key"?: string; + "x-typesense-user-id"?: string; + offset?: number; + limit?: number; + stopwords?: string; + conversation?: boolean; + conversation_stream?: boolean; + conversation_model_id?: string; + conversation_id?: string; + voice_query?: string; + streamConfig?: StreamConfig; +} +interface SearchResponseRequestParams { + collection_name?: string; + q?: string; + page?: number; + per_page?: number; + first_q?: string; + voice_query?: { + transcribed_query?: string; + }; +} +interface SearchableDocuments { + search(searchParameters: SearchParams | SearchParamsWithPreset, options: SearchOptions): Promise>; + clearCache(): void; +} +interface WriteableDocuments { + create(document: T, options: DocumentWriteParameters): Promise; + upsert(document: T, options: DocumentWriteParameters): Promise; + update(document: T, options: DocumentWriteParameters): Promise; + delete(query: DeleteQuery): Promise; + import(documents: T[] | string, options: DocumentWriteParameters): Promise; + export(options: DocumentsExportParameters): Promise; +} +interface RequestParams { + path: string; + queryParams?: Record; + body?: unknown; + headers?: Record; + streamConfig?: StreamConfig | MultiSearchResultsStreamConfig | MultiSearchUnionStreamConfig; + abortSignal?: AbortSignal | null; + responseType?: AxiosRequestConfig["responseType"] | undefined; + isStreamingRequest: boolean | undefined; +} +interface MultiSearchRequestsWithUnionSchema extends SearchesMultiSearchesRequestSchema { + union: true; +} +interface MultiSearchRequestsWithoutUnionSchema extends SearchesMultiSearchesRequestSchema { + union?: false | undefined; +} +type MultiSearchRequestsSchema = MultiSearchRequestsWithUnionSchema | MultiSearchRequestsWithoutUnionSchema; +interface UnionSearchResponse extends Omit, "request_params"> { + union_request_params: SearchResponseRequestParams[]; +} +type MultiSearchResponse = MultiSearchRequestsSchema> = R extends MultiSearchRequestsWithUnionSchema ? UnionSearchResponse : { + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; +}; +interface MultiSearchUnionStreamConfig extends BaseStreamConfig { + onComplete?: (data: UnionSearchResponse) => void; +} +interface MultiSearchUnionStreamConfig extends BaseStreamConfig { + onComplete?: (data: UnionSearchResponse) => void; +} +interface MultiSearchResultsStreamConfig extends BaseStreamConfig { + onComplete?: (data: { + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; + }) => void; +} +interface MultiSearchResultsStreamConfig extends BaseStreamConfig { + onComplete?: (data: { + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; + }) => void; +} +interface SearchesMultiSearchesRequestSchema { + searches: (MultiSearchRequestSchema | MultiSearchRequestWithPresetSchema)[]; +} +interface BaseMultiSearchRequestSchema { + collection?: string; + rerank_hybrid_matches?: boolean; + "x-typesense-api-key"?: string; +} +type CommonMultiSearchParametersBase = Partial, "streamConfig">>; +type MultiSearchRequestSchema = BaseMultiSearchRequestSchema & Omit, "streamConfig">; +type MultiSearchRequestWithPresetSchema = BaseMultiSearchRequestSchema & Omit, "streamConfig">; +type MultiSearchUnionParameters = CommonMultiSearchParametersBase & { + streamConfig?: MultiSearchUnionStreamConfig; + use_cache?: boolean; +}; +type MultiSearchResultsParameters = CommonMultiSearchParametersBase & { + streamConfig?: MultiSearchResultsStreamConfig; + use_cache?: boolean; +}; +type Whitespace = " " | "\n" | "\t"; +type TrimString = S extends `${Whitespace}${infer S}` ? TrimString : S extends `${infer S}${Whitespace}` ? TrimString : S; + +declare class RequestWithCache { + private responseCache; + private responsePromiseCache; + clearCache(): void; + perform(requestContext: TContext, methodName: TMethod, requestParams: RequestParams, cacheOptions: CacheOptions): Promise; + private executeRequest; +} +interface CacheOptions { + cacheResponseForSeconds?: number; + maxSize?: number; +} + +declare class SearchOnlyDocuments implements SearchableDocuments { + protected collectionName: string; + protected apiCall: ApiCall; + protected configuration: Configuration; + protected requestWithCache: RequestWithCache; + constructor(collectionName: string, apiCall: ApiCall, configuration: Configuration); + clearCache(): void; + search(searchParameters: SearchParams | SearchParamsWithPreset, { cacheSearchResultsForSeconds, abortSignal, }?: SearchOptions): Promise>; + protected endpointPath(operation?: string): string; + static get RESOURCEPATH(): string; +} + +type DeleteQuery = { + truncate?: true; +} | { + truncate?: never; + filter_by?: string; + batch_size?: number; + ignore_not_found?: boolean; +}; +interface DeleteResponse { + num_deleted: number; +} +interface ImportResponseSuccess { + success: true; +} +interface ImportResponseFail { + success: false; + error: string; + document: DocumentSchema; + code: number; +} +type ImportResponse = ImportResponseSuccess | ImportResponseFail; +type DocumentSchema = Record; +interface SearchParamsWithPreset extends Partial> { + preset: string; +} +type SearchResponseHighlightObject = { + matched_tokens?: string[]; + snippet?: string; + value?: string; +}; +type SearchResponseHighlight = T extends string | number ? SearchResponseHighlightObject : { + [TAttribute in keyof T]?: SearchResponseHighlight; +}; +interface SearchResponseHit { + curated?: true; + highlights?: [ + { + field: keyof T; + snippet?: string; + value?: string; + snippets?: string[]; + indices?: number[]; + matched_tokens: string[][] | string[]; + } + ]; + highlight: SearchResponseHighlight; + document: T; + text_match: number; + text_match_info?: { + best_field_score: `${number}`; + best_field_weight: number; + fields_matched: number; + score: `${number}`; + tokens_matched: number; + }; +} +interface SearchResponseFacetCountSchema { + counts: { + count: number; + highlighted: string; + value: string; + parent?: Record; + }[]; + field_name: keyof T; + stats: { + avg?: number; + max?: number; + min?: number; + sum?: number; + }; +} +interface SearchResponse { + facet_counts?: SearchResponseFacetCountSchema[]; + found: number; + found_docs?: number; + out_of: number; + page: number; + request_params: SearchResponseRequestParams; + search_time_ms: number; + search_cutoff?: boolean; + hits?: SearchResponseHit[]; + grouped_hits?: { + group_key: string[]; + hits: SearchResponseHit[]; + found?: number; + }[]; + conversation?: { + answer: string; + conversation_history: { + conversation: object[]; + id: string; + last_updated: number; + ttl: number; + }; + conversation_id: string; + query: string; + }; + error?: string; + code?: number; +} +interface DocumentWriteParameters { + dirty_values?: "coerce_or_reject" | "coerce_or_drop" | "drop" | "reject"; + action?: "create" | "update" | "upsert" | "emplace"; +} +interface UpdateByFilterParameters { + filter_by?: string; +} +interface UpdateByFilterResponse { + num_updated: number; +} +interface DocumentImportParameters extends DocumentWriteParameters { + batch_size?: number; + remote_embedding_batch_size?: number; + remote_embedding_timeout_ms?: number; + remote_embedding_num_tries?: number; + return_doc?: boolean; + return_id?: boolean; +} +interface DocumentsExportParameters { + filter_by?: string; + include_fields?: string; + exclude_fields?: string; +} +interface SearchOptions { + cacheSearchResultsForSeconds?: number; + abortSignal?: AbortSignal | null; +} +declare class Documents extends SearchOnlyDocuments implements WriteableDocuments { + constructor(collectionName: string, apiCall: ApiCall, configuration: Configuration); + create(document: T, options?: DocumentWriteParameters): Promise; + upsert(document: T, options?: DocumentWriteParameters): Promise; + update(document: T, options: UpdateByFilterParameters): Promise; + update(document: T, options: DocumentWriteParameters): Promise; + delete(query?: DeleteQuery): Promise; + createMany(documents: T[], options?: DocumentImportParameters): Promise; + /** + * Import a set of documents in a batch. + * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects. + * @param options + * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results. + */ + import(documents: string, options?: DocumentImportParameters): Promise; + import(documents: T[], options?: DocumentImportParameters): Promise; + /** + * Imports documents from a NodeJS readable stream of JSONL. + */ + importStream(readableStream: ReadStream, options?: DocumentImportParameters): Promise; + /** + * Returns a JSONL string for all the documents in this collection + */ + export(options?: DocumentsExportParameters): Promise; + /** + * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + */ + exportStream(options?: DocumentsExportParameters): Promise; +} + +interface NodeConfiguration { + host: string; + port: number; + protocol: string; + path?: string; + url?: string; +} +interface NodeConfigurationWithHostname { + host: string; + port: number; + protocol: string; + path?: string; +} +interface NodeConfigurationWithUrl { + url: string; +} +interface ConfigurationOptions { + apiKey: string; + nodes: NodeConfiguration[] | NodeConfigurationWithHostname[] | NodeConfigurationWithUrl[]; + randomizeNodes?: boolean; + /** + * @deprecated + * masterNode is now consolidated to nodes, starting with Typesense Server v0.12' + */ + masterNode?: NodeConfiguration | NodeConfigurationWithHostname | NodeConfigurationWithUrl; + /** + * @deprecated + * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12' + */ + readReplicaNodes?: NodeConfiguration[] | NodeConfigurationWithHostname[] | NodeConfigurationWithUrl[]; + nearestNode?: NodeConfiguration | NodeConfigurationWithHostname | NodeConfigurationWithUrl; + connectionTimeoutSeconds?: number; + timeoutSeconds?: number; + healthcheckIntervalSeconds?: number; + numRetries?: number; + retryIntervalSeconds?: number; + sendApiKeyAsQueryParam?: boolean | undefined; + useServerSideSearchCache?: boolean; + cacheSearchResultsForSeconds?: number; + additionalHeaders?: Record; + logLevel?: logger.LogLevelDesc; + logger?: logger.Logger; + /** + * Set a custom HTTP Agent + * + * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors + * Usage: + * const { Agent: HTTPAgent } = require("http"); + * ... + * httpAgent: new HTTPAgent({ keepAlive: true }), + * @type {HTTPAgent} + */ + httpAgent?: Agent; + /** + * Set a custom HTTPS Agent + * + * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors + * Usage: + * const { Agent: HTTPSAgent } = require("https"); + * ... + * httpsAgent: new HTTPSAgent({ keepAlive: true }), + * @type {HTTPSAgent} + */ + httpsAgent?: Agent$1; + /** + * Set a custom paramsSerializer + * + * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config + * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397 + * @type {any} + */ + paramsSerializer?: any; + /** + * Set a custom axios adapter + * + * Useful for customizing the underlying HTTP client library used by Typesense. + * + * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge. + * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161 + * + * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config + */ + axiosAdapter?: AxiosRequestConfig["adapter"]; +} +/** + * Configuration options for streaming responses + */ +interface BaseStreamConfig { + /** + * Callback function that will be called for each chunk of data received + * during streaming + */ + onChunk?: (data: { + conversation_id: string; + message: string; + }) => void; + /** + * Callback function that will be called if there is an error during streaming + */ + onError?: (error: Error) => void; +} +/** + * Stream configuration for standard search responses + * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature + */ +interface StreamConfig extends BaseStreamConfig { + /** + * Callback function that will be called when the streaming is complete + */ + onComplete?: (data: SearchResponse) => void; +} +declare class Configuration { + readonly nodes: NodeConfiguration[] | NodeConfigurationWithHostname[] | NodeConfigurationWithUrl[]; + readonly nearestNode?: NodeConfiguration | NodeConfigurationWithHostname | NodeConfigurationWithUrl; + readonly connectionTimeoutSeconds: number; + readonly healthcheckIntervalSeconds: number; + readonly numRetries: number; + readonly retryIntervalSeconds: number; + readonly apiKey: string; + readonly sendApiKeyAsQueryParam?: boolean; + readonly cacheSearchResultsForSeconds: number; + readonly useServerSideSearchCache: boolean; + readonly logger: logger.Logger; + readonly logLevel: logger.LogLevelDesc; + readonly additionalHeaders?: Record; + readonly httpAgent?: Agent; + readonly httpsAgent?: Agent$1; + readonly paramsSerializer?: any; + readonly axiosAdapter?: AxiosRequestConfig["adapter"]; + constructor(options: ConfigurationOptions); + validate(): boolean; + private validateNodes; + private isNodeMissingAnyParameters; + private setDefaultPathInNode; + private setDefaultPortInNode; + private showDeprecationWarnings; + private shuffleArray; +} + +declare class MultiSearch { + private apiCall; + private configuration; + private useTextContentType; + private requestWithCache; + constructor(apiCall: ApiCall, configuration: Configuration, useTextContentType?: boolean); + clearCache(): void; + perform(searchRequests: MultiSearchRequestsWithUnionSchema, commonParams?: MultiSearchUnionParameters, options?: { + cacheSearchResultsForSeconds?: number; + }): Promise>; + perform(searchRequests: MultiSearchRequestsWithoutUnionSchema, commonParams?: MultiSearchResultsParameters, options?: { + cacheSearchResultsForSeconds?: number; + }): Promise<{ + results: { + [Index in keyof T]: SearchResponse; + } & { + length: T["length"]; + }; + }>; + private isStreamingRequest; +} + +declare class SearchOnlyCollection { + private readonly name; + private readonly apiCall; + private readonly configuration; + private readonly _documents; + constructor(name: string, apiCall: ApiCall, configuration: any); + documents(): SearchableDocuments; +} + +declare class SearchClient { + readonly multiSearch: MultiSearch; + private readonly configuration; + private readonly apiCall; + private readonly individualCollections; + constructor(options: ConfigurationOptions); + clearCache(): void; + collections(collectionName: string): SearchOnlyCollection | SearchOnlyCollection; +} + +interface OverrideSchema extends OverrideCreateSchema { + id: string; +} +interface OverrideDeleteSchema { + id: string; +} +declare class Override { + private collectionName; + private overrideId; + private apiCall; + constructor(collectionName: string, overrideId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface OverrideRuleQuerySchema { + query?: string; + match?: "exact" | "contains"; +} +interface OverrideRuleFilterSchema { + filter_by?: string; +} +interface OverrideRuleTagsSchema { + tags?: string[]; +} +interface OverrideCreateSchema { + rule: OverrideRuleQuerySchema & OverrideRuleFilterSchema & OverrideRuleTagsSchema; + filter_by?: string; + sort_by?: string; + remove_matched_tokens?: boolean; + replace_query?: string; + includes?: Array<{ + id: string; + position: number; + }>; + excludes?: Array<{ + id: string; + }>; + filter_curated_hits?: boolean; + effective_from_ts?: number; + effective_to_ts?: number; + stop_processing?: boolean; + metadata?: object; +} +interface OverridesRetrieveSchema { + overrides: OverrideSchema[]; +} +declare class Overrides { + private collectionName; + private apiCall; + constructor(collectionName: string, apiCall: ApiCall); + upsert(overrideId: string, params: OverrideCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface SynonymSchema extends SynonymCreateSchema { + id: string; +} +interface SynonymDeleteSchema { + id: string; +} +declare class Synonym { + private collectionName; + private synonymId; + private apiCall; + constructor(collectionName: string, synonymId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface SynonymCreateSchema { + synonyms: string[]; + root?: string; + locale?: string; + symbols_to_index?: string[]; +} +interface SynonymsRetrieveSchema { + synonyms: SynonymSchema[]; +} +declare class Synonyms { + private collectionName; + private apiCall; + constructor(collectionName: string, apiCall: ApiCall); + upsert(synonymId: string, params: SynonymCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Document { + private collectionName; + private documentId; + private apiCall; + constructor(collectionName: string, documentId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(options?: DeleteQuery): Promise; + update(partialDocument: Partial, options?: DocumentWriteParameters): Promise; + private endpointPath; +} + +type FieldType = "string" | "int32" | "int64" | "float" | "bool" | "geopoint" | "geopolygon" | "geopoint[]" | "string[]" | "int32[]" | "int64[]" | "float[]" | "bool[]" | "object" | "object[]" | "auto" | "string*" | "image"; +interface CollectionFieldSchema extends Partial> { + name: string; + type: FieldType; + optional?: boolean; + facet?: boolean; + index?: boolean; + sort?: boolean; + locale?: string; + infix?: boolean; + stem?: boolean; + num_dim?: number; + store?: boolean; + range_index?: boolean; + [t: string]: unknown; +} +interface CollectionSchema extends CollectionCreateSchema { + created_at: number; + num_documents: number; + num_memory_shards: number; +} +interface CollectionDropFieldSchema { + name: string; + drop: true; +} +interface CollectionUpdateSchema extends Partial> { + fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[]; +} +interface CollectionDeleteOptions { + compact_store?: boolean; +} +declare class Collection { + private readonly name; + private readonly apiCall; + private readonly configuration; + private readonly _documents; + private individualDocuments; + private readonly _overrides; + private individualOverrides; + private readonly _synonyms; + private individualSynonyms; + constructor(name: string, apiCall: ApiCall, configuration: any); + retrieve(): Promise; + update(schema: CollectionUpdateSchema): Promise; + delete(options?: CollectionDeleteOptions): Promise; + exists(): Promise; + documents(): Documents; + documents(documentId: string): Document; + overrides(): Overrides; + overrides(overrideId: string): Override; + synonyms(): Synonyms; + synonyms(synonymId: string): Synonym; + private endpointPath; +} + +interface BaseCollectionCreateSchema { + name: string; + default_sorting_field?: string; + symbols_to_index?: string[]; + token_separators?: string[]; + enable_nested_fields?: boolean; + metadata?: object; + voice_query_model?: { + model_name?: string; + }; +} +interface CollectionCreateSchemaWithSrc extends Pick { + fields?: CollectionFieldSchema[]; +} +interface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema { + fields: CollectionFieldSchema[]; +} +/** + * Defines the schema for creating a collection in Typesense. + * + * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields. + * Otherwise, `fields` will be required. + */ +type CollectionCreateSchema = Options["src_name"] extends string ? CollectionCreateSchemaWithSrc : CollectionCreateSchemaWithoutSrc; +interface CollectionCreateOptions { + src_name?: string; +} +interface CollectionsRetrieveOptions { + exclude_fields?: string; +} +declare class Collections { + private apiCall; + constructor(apiCall: ApiCall); + create(schema: CollectionCreateSchema, options?: Options): Promise; + retrieve(options?: CollectionsRetrieveOptions): Promise; + static get RESOURCEPATH(): string; +} + +interface CollectionAliasCreateSchema { + collection_name: string; +} +interface CollectionAliasSchema extends CollectionAliasCreateSchema { + name: string; +} +interface CollectionAliasesResponseSchema { + aliases: CollectionAliasSchema[]; +} +declare class Aliases { + private apiCall; + constructor(apiCall: ApiCall); + upsert(name: string, mapping: CollectionAliasCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Alias { + private name; + private apiCall; + constructor(name: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface KeyCreateSchema { + actions: string[]; + collections: string[]; + description?: string; + value?: string; + value_prefix?: string; + expires_at?: number; + autodelete?: boolean; +} +interface KeyDeleteSchema { + id: number; +} +interface KeySchema extends KeyCreateSchema { + id: number; +} +declare class Key { + private id; + private apiCall; + constructor(id: number, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface KeysRetrieveSchema { + keys: KeySchema[]; +} +interface GenerateScopedSearchKeyParams extends Partial> { + expires_at?: number; + cache_ttl?: number; + limit_multi_searches?: number; +} +declare class Keys { + private apiCall; + constructor(apiCall: ApiCall); + create(params: KeyCreateSchema): Promise; + retrieve(): Promise; + generateScopedSearchKey(searchKey: string, parameters: GenerateScopedSearchKeyParams): string; + static get RESOURCEPATH(): string; +} + +interface DebugResponseSchema { + state: number; + version: string; +} +declare class Debug { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +interface MetricsResponse { + [key: `system_cpu${number}_active_percentage`]: string; + system_cpu_active_percentage: string; + system_disk_total_bytes: string; + system_disk_used_bytes: string; + system_memory_total_bytes: string; + system_memory_total_swap_bytes?: string; + system_memory_used_bytes: string; + system_memory_used_swap_bytes?: string; + system_network_received_bytes: string; + system_network_sent_bytes: string; + typesense_memory_active_bytes: string; + typesense_memory_allocated_bytes: string; + typesense_memory_fragmentation_ratio: string; + typesense_memory_mapped_bytes: string; + typesense_memory_metadata_bytes: string; + typesense_memory_resident_bytes: string; + typesense_memory_retained_bytes: string; +} +declare class Metrics$1 { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +interface EndpointStats { + [endpoint: string]: number; +} +interface StatsResponse { + delete_latency_ms?: number; + delete_requests_per_second?: number; + import_latency_ms?: number; + import_requests_per_second?: number; + latency_ms?: EndpointStats; + overloaded_requests_per_second?: number; + pending_write_batches?: number; + requests_per_second?: EndpointStats; + search_latency_ms?: number; + search_requests_per_second?: number; + total_requests_per_second?: number; + write_latency_ms?: number; + write_requests_per_second?: number; +} +declare class Metrics { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +interface HealthResponse { + ok: boolean; +} +declare class Health { + private apiCall; + constructor(apiCall: ApiCall); + retrieve(): Promise; +} + +declare class Operations { + private apiCall; + constructor(apiCall: ApiCall); + perform(operationName: "vote" | "snapshot" | "cache/clear" | "schema_changes" | (string & {}), queryParameters?: Record): Promise; +} + +interface PresetSchema extends PresetCreateSchema { + name: string; +} +interface PresetDeleteSchema { + name: string; +} +declare class Preset { + private presetId; + private apiCall; + constructor(presetId: string, apiCall: ApiCall); + retrieve(): Promise>; + delete(): Promise; + private endpointPath; +} + +interface PresetCreateSchema { + value: SearchParams | MultiSearchRequestsSchema; +} +interface PresetsRetrieveSchema { + presets: PresetSchema[]; +} +declare class Presets { + private apiCall; + constructor(apiCall: ApiCall); + upsert(presetId: string, params: PresetCreateSchema): Promise>; + retrieve(): Promise>; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface AnalyticsRuleCreateSchema { + type: "popular_queries" | "nohits_queries" | "counter" | "log"; + params: { + enable_auto_aggregation?: boolean; + source: { + collections: string[]; + events?: Array<{ + type: string; + weight?: number; + name: string; + }>; + }; + expand_query?: boolean; + destination?: { + collection: string; + counter_field?: string; + }; + limit?: number; + }; +} +interface AnalyticsRuleDeleteSchema { + name: string; +} +interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema { + name: string; +} +declare class AnalyticsRule { + private name; + private apiCall; + constructor(name: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface AnalyticsRulesRetrieveSchema { + rules: AnalyticsRuleSchema[]; +} +declare class AnalyticsRules { + private readonly apiCall; + constructor(apiCall: ApiCall); + upsert(name: string, params: AnalyticsRuleCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface AnalyticsEventCreateSchema { + type: string; + name: string; + data: Record; +} + +declare class AnalyticsEvents { + private readonly apiCall; + constructor(apiCall: ApiCall); + create(params: AnalyticsEventCreateSchema): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Analytics { + private readonly apiCall; + private readonly _analyticsRules; + private readonly individualAnalyticsRules; + private readonly _analyticsEvents; + constructor(apiCall: ApiCall); + rules(): AnalyticsRules; + rules(id: string): AnalyticsRule; + events(): AnalyticsEvents; + static get RESOURCEPATH(): string; +} + +interface StopwordSchema extends StopwordCreateSchema { + id: string; + stopwords: string[]; + locale?: string; +} +interface StopwordDeleteSchema { + id: string; +} +declare class Stopword { + private stopwordId; + private apiCall; + constructor(stopwordId: string, apiCall: ApiCall); + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +interface StopwordCreateSchema { + stopwords: string[]; + locale?: string; +} +interface StopwordsRetrieveSchema { + stopwords: StopwordSchema[]; +} +declare class Stopwords { + private apiCall; + constructor(apiCall: ApiCall); + upsert(stopwordId: string, params: StopwordCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface ConversationModelCreateSchema { + id?: string; + model_name: string; + api_key?: string; + system_prompt?: string; + max_bytes: number; + history_collection?: string; +} +interface ConversationModelDeleteSchema { + id: string; +} +interface ConversationModelSchema extends ConversationModelCreateSchema { + id: string; +} +declare class ConversationModel { + private id; + private apiCall; + constructor(id: string, apiCall: ApiCall); + update(params: ConversationModelCreateSchema): Promise; + retrieve(): Promise; + delete(): Promise; + private endpointPath; +} + +declare class ConversationModels { + private readonly apiCall; + constructor(apiCall: ApiCall); + create(params: ConversationModelCreateSchema): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +interface ConversationDeleteSchema { + id: number; +} +interface ConversationUpdateSchema { + ttl: number; +} +interface ConversationSchema { + id: number; + conversation: object[]; + last_updated: number; + ttl: number; +} +declare class Conversation { + private id; + private apiCall; + constructor(id: string, apiCall: ApiCall); + retrieve(): Promise; + update(params: ConversationUpdateSchema): Promise; + delete(): Promise; + private endpointPath; +} + +interface ConversationsRetrieveSchema { + conversations: ConversationSchema[]; +} +declare class Conversations { + private readonly apiCall; + private readonly _conversationsModels; + private readonly individualConversationModels; + constructor(apiCall: ApiCall); + retrieve(): Promise; + models(): ConversationModels; + models(id: string): ConversationModel; + static get RESOURCEPATH(): string; +} + +interface StemmingDictionaryCreateSchema { + root: string; + word: string; +} +interface StemmingDictionarySchema { + id: string; + words: StemmingDictionaryCreateSchema[]; +} +declare class StemmingDictionary { + private id; + private apiCall; + constructor(id: string, apiCall: ApiCall); + retrieve(): Promise; + private endpointPath; +} + +interface StemmingDictionariesRetrieveSchema { + dictionaries: string[]; +} +declare class StemmingDictionaries { + private readonly apiCall; + constructor(apiCall: ApiCall); + upsert(id: string, wordRootCombinations: StemmingDictionaryCreateSchema[] | string): Promise; + retrieve(): Promise; + private endpointPath; + static get RESOURCEPATH(): string; +} + +declare class Stemming { + private readonly apiCall; + private readonly _stemmingDictionaries; + private readonly individualStemmingDictionaries; + constructor(apiCall: ApiCall); + dictionaries(): StemmingDictionaries; + dictionaries(id: string): StemmingDictionary; + static get RESOURCEPATH(): string; +} + +declare class Client { + configuration: Configuration; + apiCall: ApiCall; + debug: Debug; + metrics: Metrics$1; + stats: Metrics; + health: Health; + operations: Operations; + multiSearch: MultiSearch; + analytics: Analytics; + stemming: Stemming; + private readonly _collections; + private readonly individualCollections; + private readonly _aliases; + private readonly individualAliases; + private readonly _keys; + private readonly individualKeys; + private readonly _presets; + private readonly individualPresets; + private readonly _stopwords; + private readonly individualStopwords; + private readonly _conversations; + private readonly individualConversations; + constructor(options: ConfigurationOptions); + collections(): Collections; + collections = object>(collectionName: string): Collection; + aliases(): Aliases; + aliases(aliasName: string): Alias; + keys(): Keys; + keys(id: number): Key; + presets(): Presets; + presets(id: string): Preset; + stopwords(): Stopwords; + stopwords(id: string): Stopword; + conversations(): Conversations; + conversations(id: string): Conversation; +} + +declare class HTTPError extends TypesenseError { +} + +declare class MissingConfigurationError extends TypesenseError { +} + +declare class ObjectAlreadyExists extends TypesenseError { +} + +declare class ObjectNotFound extends TypesenseError { +} + +declare class ObjectUnprocessable extends TypesenseError { +} + +declare class RequestMalformed extends TypesenseError { +} + +declare class RequestUnauthorized extends TypesenseError { +} + +declare class ServerError extends TypesenseError { +} + +interface ImportErrorPayload { + documentsInJSONLFormat: string | ReadStream$1; + options: DocumentImportParameters; + failedItems: ImportResponse[]; + successCount: number; +} +declare class ImportError extends TypesenseError { + payload: ImportErrorPayload; + importResults: ImportResponse[]; + constructor(message: string, importResults: ImportResponse[], payload: ImportErrorPayload); +} + +type index_HTTPError = HTTPError; +declare const index_HTTPError: typeof HTTPError; +type index_ImportError = ImportError; +declare const index_ImportError: typeof ImportError; +type index_MissingConfigurationError = MissingConfigurationError; +declare const index_MissingConfigurationError: typeof MissingConfigurationError; +type index_ObjectAlreadyExists = ObjectAlreadyExists; +declare const index_ObjectAlreadyExists: typeof ObjectAlreadyExists; +type index_ObjectNotFound = ObjectNotFound; +declare const index_ObjectNotFound: typeof ObjectNotFound; +type index_ObjectUnprocessable = ObjectUnprocessable; +declare const index_ObjectUnprocessable: typeof ObjectUnprocessable; +type index_RequestMalformed = RequestMalformed; +declare const index_RequestMalformed: typeof RequestMalformed; +type index_RequestUnauthorized = RequestUnauthorized; +declare const index_RequestUnauthorized: typeof RequestUnauthorized; +type index_ServerError = ServerError; +declare const index_ServerError: typeof ServerError; +type index_TypesenseError = TypesenseError; +declare const index_TypesenseError: typeof TypesenseError; +declare namespace index { + export { index_HTTPError as HTTPError, index_ImportError as ImportError, index_MissingConfigurationError as MissingConfigurationError, index_ObjectAlreadyExists as ObjectAlreadyExists, index_ObjectNotFound as ObjectNotFound, index_ObjectUnprocessable as ObjectUnprocessable, index_RequestMalformed as RequestMalformed, index_RequestUnauthorized as RequestUnauthorized, index_ServerError as ServerError, index_TypesenseError as TypesenseError }; +} + +export { type AnalyticsEventCreateSchema, type AnalyticsRuleCreateSchema, type AnalyticsRuleDeleteSchema, type AnalyticsRuleSchema, type AnalyticsRulesRetrieveSchema, type ArraybleParams, type BaseCollectionCreateSchema, type BaseStreamConfig, Client, type CollectionAliasCreateSchema, type CollectionAliasSchema, type CollectionAliasesResponseSchema, type CollectionCreateOptions, type CollectionCreateSchema, type CollectionDeleteOptions, type CollectionDropFieldSchema, type CollectionFieldSchema, type CollectionSchema, type CollectionUpdateSchema, type CollectionsRetrieveOptions, type ConfigurationOptions, type ConversationDeleteSchema, type ConversationModelCreateSchema, type ConversationModelDeleteSchema, type ConversationModelSchema, type ConversationSchema, type ConversationUpdateSchema, type ConversationsRetrieveSchema, type DebugResponseSchema, type DeleteQuery, type DeleteResponse, type DocumentImportParameters, type DocumentSchema, type DocumentWriteParameters, type DocumentsExportParameters, type DropTokensMode, type EndpointStats, index as Errors, type ExtractBaseTypes, type FieldType, type GenerateScopedSearchKeyParams, type HealthResponse, type ImportResponse, type ImportResponseFail, type KeyCreateSchema, type KeyDeleteSchema, type KeySchema, type KeysRetrieveSchema, type MetricsResponse, type MultiSearchRequestsSchema, type MultiSearchRequestsWithUnionSchema, type MultiSearchRequestsWithoutUnionSchema, type MultiSearchResponse, type MultiSearchResultsParameters, type MultiSearchUnionParameters, type NodeConfiguration, type NodeConfigurationWithHostname, type NodeConfigurationWithUrl, type OperationMode, type OverrideCreateSchema, type OverrideDeleteSchema, type OverrideRuleFilterSchema, type OverrideRuleQuerySchema, type OverrideRuleTagsSchema, type OverrideSchema, type OverridesRetrieveSchema, type PresetCreateSchema, type PresetDeleteSchema, type PresetSchema, type PresetsRetrieveSchema, SearchClient, type SearchOptions, type SearchParams, type SearchParamsWithPreset, type SearchResponse, type SearchResponseFacetCountSchema, type SearchResponseHighlight, type SearchResponseHit, type SearchResponseRequestParams, type SearchableDocuments, type StatsResponse, type StopwordCreateSchema, type StopwordDeleteSchema, type StopwordSchema, type StopwordsRetrieveSchema, type StreamConfig, type SynonymCreateSchema, type SynonymDeleteSchema, type SynonymSchema, type SynonymsRetrieveSchema, type UnionArrayKeys, type UnionArraySearchParams, type UnionSearchResponse, type UpdateByFilterParameters, type UpdateByFilterResponse, type WriteableDocuments }; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..8e036b02 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,2221 @@ +'use strict'; + +var logger = require('loglevel'); +var axios = require('axios'); + +function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } + +var logger__default = /*#__PURE__*/_interopDefault(logger); +var axios__default = /*#__PURE__*/_interopDefault(axios); + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node-modules-polyfills-empty:http +var require_http = __commonJS({ + "node-modules-polyfills-empty:http"(exports, module) { + module.exports = {}; + } +}); + +// node-modules-polyfills-empty:https +var require_https = __commonJS({ + "node-modules-polyfills-empty:https"(exports, module) { + module.exports = {}; + } +}); + +// node-modules-polyfills-empty:crypto +var require_crypto = __commonJS({ + "node-modules-polyfills-empty:crypto"(exports, module) { + module.exports = {}; + } +}); + +// src/Typesense/Errors/index.ts +var Errors_exports = {}; +__export(Errors_exports, { + HTTPError: () => HTTPError, + ImportError: () => ImportError, + MissingConfigurationError: () => MissingConfigurationError, + ObjectAlreadyExists: () => ObjectAlreadyExists, + ObjectNotFound: () => ObjectNotFound, + ObjectUnprocessable: () => ObjectUnprocessable, + RequestMalformed: () => RequestMalformed, + RequestUnauthorized: () => RequestUnauthorized, + ServerError: () => ServerError, + TypesenseError: () => TypesenseError +}); + +// src/Typesense/Errors/TypesenseError.ts +var TypesenseError = class extends Error { + // Source: https://stackoverflow.com/a/58417721/123545 + constructor(message, httpBody, httpStatus) { + super(message); + this.name = new.target.name; + this.httpBody = httpBody; + this.httpStatus = httpStatus; + Object.setPrototypeOf(this, new.target.prototype); + } +}; + +// src/Typesense/Errors/HTTPError.ts +var HTTPError = class extends TypesenseError { +}; + +// src/Typesense/Errors/MissingConfigurationError.ts +var MissingConfigurationError = class extends TypesenseError { +}; + +// src/Typesense/Errors/ObjectAlreadyExists.ts +var ObjectAlreadyExists = class extends TypesenseError { +}; + +// src/Typesense/Errors/ObjectNotFound.ts +var ObjectNotFound = class extends TypesenseError { +}; + +// src/Typesense/Errors/ObjectUnprocessable.ts +var ObjectUnprocessable = class extends TypesenseError { +}; + +// src/Typesense/Errors/RequestMalformed.ts +var RequestMalformed = class extends TypesenseError { +}; + +// src/Typesense/Errors/RequestUnauthorized.ts +var RequestUnauthorized = class extends TypesenseError { +}; + +// src/Typesense/Errors/ServerError.ts +var ServerError = class extends TypesenseError { +}; + +// src/Typesense/Errors/ImportError.ts +var ImportError = class extends TypesenseError { + constructor(message, importResults, payload) { + super(message); + this.importResults = importResults; + this.payload = payload; + } +}; + +// src/Typesense/Configuration.ts +var Configuration = class { + constructor(options) { + this.nodes = options.nodes || []; + this.nodes = this.nodes.map((node) => this.setDefaultPathInNode(node)).map((node) => this.setDefaultPortInNode(node)).map((node) => ({ ...node })); + if (options.randomizeNodes == null) { + options.randomizeNodes = true; + } + if (options.randomizeNodes === true) { + this.shuffleArray(this.nodes); + } + this.nearestNode = options.nearestNode; + this.nearestNode = this.setDefaultPathInNode(this.nearestNode); + this.nearestNode = this.setDefaultPortInNode(this.nearestNode); + this.connectionTimeoutSeconds = options.connectionTimeoutSeconds || options.timeoutSeconds || 5; + this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60; + this.numRetries = (options.numRetries !== void 0 && options.numRetries >= 0 ? options.numRetries : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3; + this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1; + this.apiKey = options.apiKey; + this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; + this.cacheSearchResultsForSeconds = options.cacheSearchResultsForSeconds || 0; + this.useServerSideSearchCache = options.useServerSideSearchCache || false; + this.axiosAdapter = options.axiosAdapter; + this.logger = options.logger || logger__default.default; + this.logLevel = options.logLevel || "warn"; + this.logger.setLevel(this.logLevel); + this.additionalHeaders = options.additionalHeaders; + this.httpAgent = options.httpAgent; + this.httpsAgent = options.httpsAgent; + this.paramsSerializer = options.paramsSerializer; + this.showDeprecationWarnings(options); + this.validate(); + } + validate() { + if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) { + throw new MissingConfigurationError( + "Ensure that nodes[].protocol, nodes[].host and nodes[].port are set" + ); + } + if (this.nearestNode != null && this.isNodeMissingAnyParameters(this.nearestNode)) { + throw new MissingConfigurationError( + "Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set" + ); + } + if (this.apiKey == null) { + throw new MissingConfigurationError("Ensure that apiKey is set"); + } + return true; + } + validateNodes() { + return this.nodes.some((node) => { + return this.isNodeMissingAnyParameters(node); + }); + } + isNodeMissingAnyParameters(node) { + return !["protocol", "host", "port", "path"].every((key) => { + return node.hasOwnProperty(key); + }) && node["url"] == null; + } + setDefaultPathInNode(node) { + if (node != null && !node.hasOwnProperty("path")) { + node["path"] = ""; + } + return node; + } + setDefaultPortInNode(node) { + if (node != null && !node.hasOwnProperty("port") && node.hasOwnProperty("protocol")) { + switch (node["protocol"]) { + case "https": + node["port"] = 443; + break; + case "http": + node["port"] = 80; + break; + } + } + return node; + } + showDeprecationWarnings(options) { + if (options.timeoutSeconds) { + this.logger.warn( + "Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds" + ); + } + if (options.masterNode) { + this.logger.warn( + "Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12" + ); + } + if (options.readReplicaNodes) { + this.logger.warn( + "Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12" + ); + } + } + shuffleArray(array) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + } +}; + +// src/Typesense/ApiCall.ts +var import_http = __toESM(require_http()); +var import_https = __toESM(require_https()); + +// src/Typesense/Types.ts +var arrayableParams = { + query_by: "query_by", + query_by_weights: "query_by_weights", + facet_by: "facet_by", + group_by: "group_by", + include_fields: "include_fields", + exclude_fields: "exclude_fields", + highlight_fields: "highlight_fields", + highlight_full_fields: "highlight_full_fields", + pinned_hits: "pinned_hits", + hidden_hits: "hidden_hits", + infix: "infix", + override_tags: "override_tags", + num_typos: "num_typos", + prefix: "prefix", + sort_by: "sort_by" +}; + +// src/Typesense/Utils.ts +function hasNoArrayValues(params) { + return Object.keys(arrayableParams).filter((key) => params[key] !== void 0).every((key) => isNonArrayValue(params[key])); +} +function normalizeArrayableParams(params) { + const result = { ...params }; + const transformedValues = Object.keys(arrayableParams).filter((key) => Array.isArray(result[key])).map((key) => { + result[key] = result[key].join(","); + return key; + }); + if (!transformedValues.length && hasNoArrayValues(result)) { + return result; + } + if (!hasNoArrayValues(result)) { + throw new Error( + `Failed to normalize arrayable params: ${JSON.stringify(result)}` + ); + } + return result; +} +function isNonArrayValue(value) { + return !Array.isArray(value); +} +function isErrorWithMessage(error) { + return typeof error === "object" && error !== null && "message" in error && typeof error.message === "string"; +} +function toErrorWithMessage(couldBeError) { + if (isErrorWithMessage(couldBeError)) return couldBeError; + try { + if (typeof couldBeError === "string") { + return new Error(couldBeError); + } + return new Error(JSON.stringify(couldBeError)); + } catch { + return new Error(String(couldBeError)); + } +} + +// src/Typesense/ApiCall.ts +var APIKEYHEADERNAME = "X-TYPESENSE-API-KEY"; +var HEALTHY = true; +var UNHEALTHY = false; +var isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null && typeof window === "undefined"; +var ApiCall = class { + constructor(configuration) { + this.configuration = configuration; + this.apiKey = this.configuration.apiKey; + this.nodes = this.configuration.nodes == null ? this.configuration.nodes : JSON.parse(JSON.stringify(this.configuration.nodes)); + this.nearestNode = this.configuration.nearestNode == null ? this.configuration.nearestNode : JSON.parse(JSON.stringify(this.configuration.nearestNode)); + this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds; + this.healthcheckIntervalSeconds = this.configuration.healthcheckIntervalSeconds; + this.numRetriesPerRequest = this.configuration.numRetries; + this.retryIntervalSeconds = this.configuration.retryIntervalSeconds; + this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam; + this.additionalUserHeaders = this.configuration.additionalHeaders; + this.logger = this.configuration.logger; + this.initializeMetadataForNodes(); + this.currentNodeIndex = -1; + } + async get(endpoint, queryParameters = {}, { + abortSignal = null, + responseType = void 0, + streamConfig = void 0, + isStreamingRequest + } = {}) { + return this.performRequest("get", endpoint, { + queryParameters, + abortSignal, + responseType, + streamConfig, + isStreamingRequest + }); + } + async delete(endpoint, queryParameters = {}) { + return this.performRequest("delete", endpoint, { + queryParameters, + isStreamingRequest: false + }); + } + async post(endpoint, bodyParameters = {}, queryParameters = {}, additionalHeaders = {}, { + abortSignal = null, + responseType = void 0, + streamConfig = void 0, + isStreamingRequest + } = {}) { + return this.performRequest("post", endpoint, { + queryParameters, + bodyParameters, + additionalHeaders, + abortSignal, + responseType, + streamConfig, + isStreamingRequest + }); + } + async put(endpoint, bodyParameters = {}, queryParameters = {}) { + return this.performRequest("put", endpoint, { + queryParameters, + bodyParameters, + isStreamingRequest: false + }); + } + async patch(endpoint, bodyParameters = {}, queryParameters = {}) { + return this.performRequest("patch", endpoint, { + queryParameters, + bodyParameters, + isStreamingRequest: false + }); + } + getAdapter() { + if (!this.configuration.axiosAdapter) return void 0; + if (typeof this.configuration.axiosAdapter === "function") + return this.configuration.axiosAdapter; + const isCloudflareWorkers = typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers"; + return isCloudflareWorkers ? axios__default.default.getAdapter(this.configuration.axiosAdapter).bind(globalThis) : axios__default.default.getAdapter(this.configuration.axiosAdapter); + } + async performRequest(requestType, endpoint, { + queryParameters = null, + bodyParameters = null, + additionalHeaders = {}, + abortSignal = null, + responseType = void 0, + skipConnectionTimeout = false, + enableKeepAlive = void 0, + streamConfig = void 0, + isStreamingRequest + }) { + this.configuration.validate(); + if (isStreamingRequest) { + this.logger.debug(`Request: Performing streaming request to ${endpoint}`); + if (!isNodeJSEnvironment && typeof fetch !== "undefined") { + this.logger.debug("Using fetch adapter for browser streaming"); + responseType = "stream"; + } + } + const requestNumber = Date.now(); + let lastException; + let wasAborted = false; + this.logger.debug( + `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}` + ); + for (let numTries = 1; numTries <= this.numRetriesPerRequest + 1; numTries++) { + const node = this.getNextNode(requestNumber); + this.logger.debug( + `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${node.index}` + ); + if (abortSignal && abortSignal.aborted) { + return Promise.reject(new Error("Request aborted by caller.")); + } + let abortListener; + try { + const requestOptions = { + method: requestType, + url: this.uriFor(endpoint, node), + headers: Object.assign( + {}, + this.defaultHeaders(), + additionalHeaders, + this.additionalUserHeaders + ), + maxContentLength: Infinity, + maxBodyLength: Infinity, + validateStatus: (status) => { + return status > 0; + }, + transformResponse: [ + (data, headers) => { + let transformedData = data; + if (headers !== void 0 && typeof data === "string" && headers["content-type"] && headers["content-type"].startsWith("application/json")) { + transformedData = JSON.parse(data); + } + return transformedData; + } + ] + }; + requestOptions.adapter = isStreamingRequest && !isNodeJSEnvironment ? "fetch" : this.getAdapter(); + if (skipConnectionTimeout !== true) { + requestOptions.timeout = this.connectionTimeoutSeconds * 1e3; + } + if (queryParameters && Object.keys(queryParameters).length !== 0) { + requestOptions.params = queryParameters; + } + if (this.sendApiKeyAsQueryParam) { + requestOptions.params = requestOptions.params || {}; + requestOptions.params["x-typesense-api-key"] = this.apiKey; + } + if (this.configuration.httpAgent) { + this.logger.debug( + `Request #${requestNumber}: Using custom httpAgent` + ); + requestOptions.httpAgent = this.configuration.httpAgent; + } else if (enableKeepAlive === true) { + if (!isNodeJSEnvironment) { + this.logger.warn( + `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive` + ); + } else { + this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`); + requestOptions.httpAgent = new import_http.Agent({ keepAlive: true }); + } + } + if (this.configuration.httpsAgent) { + this.logger.debug( + `Request #${requestNumber}: Using custom httpsAgent` + ); + requestOptions.httpsAgent = this.configuration.httpsAgent; + } else if (enableKeepAlive === true) { + if (!isNodeJSEnvironment) { + this.logger.warn( + `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive` + ); + } else { + this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`); + requestOptions.httpsAgent = new import_https.Agent({ keepAlive: true }); + } + } + if (this.configuration.paramsSerializer) { + this.logger.debug( + `Request #${requestNumber}: Using custom paramsSerializer` + ); + requestOptions.paramsSerializer = this.configuration.paramsSerializer; + } + if (bodyParameters && (typeof bodyParameters === "string" && bodyParameters.length !== 0 || typeof bodyParameters === "object" && Object.keys(bodyParameters).length !== 0)) { + requestOptions.data = bodyParameters; + } + if (abortSignal) { + const cancelToken = axios__default.default.CancelToken; + const source = cancelToken.source(); + abortListener = () => { + wasAborted = true; + source.cancel(); + }; + abortSignal.addEventListener("abort", abortListener); + requestOptions.cancelToken = source.token; + } + if (isStreamingRequest) { + requestOptions.responseType = "stream"; + if (!isNodeJSEnvironment) { + requestOptions.headers = { + ...requestOptions.headers, + Accept: "text/event-stream" + }; + } + } else if (responseType) { + requestOptions.responseType = responseType; + } + const response = await axios__default.default(requestOptions); + if (response.status >= 1 && response.status <= 499) { + this.setNodeHealthcheck(node, HEALTHY); + } + this.logger.debug( + `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.` + ); + if (response.status >= 200 && response.status < 300) { + if (isStreamingRequest) { + return this.handleStreamingResponse(response, streamConfig); + } + return Promise.resolve(response.data); + } else if (response.status < 500) { + return Promise.reject( + this.customErrorForResponse( + response, + response.data?.message, + requestOptions.data + ) + ); + } else { + throw this.customErrorForResponse( + response, + response.data?.message, + requestOptions.data + ); + } + } catch (error) { + if (!wasAborted) { + this.setNodeHealthcheck(node, UNHEALTHY); + } + lastException = error; + this.logger.warn( + `Request #${requestNumber}: Request to Node ${node.index} failed due to "${error?.code ?? ""} ${error.message}${error.response == null ? "" : " - " + JSON.stringify(error.response?.data)}"` + ); + if (wasAborted) { + return Promise.reject(new Error("Request aborted by caller.")); + } + if (isStreamingRequest) { + this.invokeOnErrorCallback(error, streamConfig); + } + if (numTries < this.numRetriesPerRequest + 1) { + this.logger.warn( + `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...` + ); + } else { + this.logger.debug( + `Request #${requestNumber}: No retries left. Raising last error` + ); + return Promise.reject(lastException); + } + await this.timer(this.retryIntervalSeconds); + } finally { + if (abortSignal && abortListener) { + abortSignal.removeEventListener("abort", abortListener); + } + } + } + this.logger.debug( + `Request #${requestNumber}: No retries left. Raising last error` + ); + return Promise.reject(lastException); + } + processStreamingLine(line) { + if (!line.trim() || line === "data: [DONE]") { + return null; + } + if (line.startsWith("data: ")) { + return this.processDataLine(line.slice(6).trim()); + } + if (line.trim().startsWith("{")) { + try { + const jsonData = JSON.parse(line.trim()); + if (jsonData && typeof jsonData === "object") { + if (!jsonData.conversation_id) { + jsonData.conversation_id = "unknown"; + } + if (!jsonData.message && jsonData.message !== "") { + jsonData.message = ""; + } + return jsonData; + } + return { + conversation_id: "unknown", + message: JSON.stringify(jsonData) + }; + } catch (e) { + return { + conversation_id: "unknown", + message: line.trim() + }; + } + } + return { + conversation_id: "unknown", + message: line.trim() + }; + } + processDataLine(dataContent) { + if (!dataContent) { + return null; + } + if (dataContent.startsWith("{")) { + try { + const jsonData = JSON.parse(dataContent); + if (jsonData && typeof jsonData === "object") { + if (!jsonData.conversation_id) { + jsonData.conversation_id = "unknown"; + } + if (!jsonData.message && jsonData.message !== "") { + jsonData.message = ""; + } + return jsonData; + } + return { + conversation_id: "unknown", + message: JSON.stringify(jsonData) + }; + } catch (e) { + return { + conversation_id: "unknown", + message: dataContent + }; + } + } + return { + conversation_id: "unknown", + message: dataContent + }; + } + async handleStreamingResponse(response, streamConfig) { + this.logger.debug( + `Handling streaming response. Environment: ${isNodeJSEnvironment ? "Node.js" : "Browser"}` + ); + if (isNodeJSEnvironment && response.data) { + return this.handleNodeStreaming(response, streamConfig); + } + if (!isNodeJSEnvironment) { + return this.handleBrowserStreaming(response, streamConfig); + } + this.logger.debug("Processing non-streaming response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + return Promise.resolve(response.data); + } + handleNodeStreaming(response, streamConfig) { + this.logger.debug("Processing Node.js stream"); + return new Promise((resolve, reject) => { + const stream = response.data; + const allChunks = []; + let buffer = ""; + stream.on("data", (chunk) => { + try { + const data = chunk.toString(); + buffer += data; + const lines = buffer.split("\n"); + buffer = lines.pop() ?? ""; + this.processStreamLines(lines, allChunks, streamConfig); + } catch (error) { + reject(error); + } + }); + stream.on("end", () => { + if (buffer.trim().length > 0) { + const lines = buffer.split("\n"); + this.processStreamLines(lines, allChunks, streamConfig); + } + this.finalizeStreamResult( + allChunks, + resolve, + response, + streamConfig + ); + }); + stream.on("error", (error) => { + this.logger.error(`Stream error: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + }); + }); + } + handleBrowserStreaming(response, streamConfig) { + this.logger.debug("Processing browser stream"); + return new Promise(async (resolve, reject) => { + try { + if (response.data && typeof response.data.getReader === "function") { + return this.handleBrowserReadableStream( + response.data, + resolve, + reject, + response, + streamConfig + ); + } + if (typeof response.data === "string") { + return this.handleBrowserStringResponse( + response.data, + resolve, + response, + streamConfig + ); + } + if (typeof response.data === "object" && response.data !== null) { + this.logger.debug("No stream found, but data object is available"); + this.invokeOnCompleteCallback(response.data, streamConfig); + return resolve(response.data); + } + this.logger.error("No usable data found in response"); + return reject(new Error("No usable data found in response")); + } catch (error) { + this.logger.error(`Error processing streaming response: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + } + }); + } + async handleBrowserReadableStream(stream, resolve, reject, response, streamConfig) { + this.logger.debug("Found ReadableStream in response.data"); + const reader = stream.getReader(); + const allChunks = []; + let buffer = ""; + try { + while (true) { + const { done, value } = await reader.read(); + if (done) { + this.logger.debug("Stream reading complete"); + if (buffer.trim()) { + const lines2 = buffer.split("\n"); + this.processStreamLines(lines2, allChunks, streamConfig); + } + break; + } + const chunk = new TextDecoder().decode(value); + this.logger.debug(`Received chunk: ${chunk.length} bytes`); + buffer += chunk; + const lines = buffer.split("\n"); + buffer = lines.pop() || ""; + this.processStreamLines(lines, allChunks, streamConfig); + } + this.finalizeStreamResult(allChunks, resolve, response, streamConfig); + } catch (error) { + this.logger.error(`Stream error: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + } + } + handleBrowserStringResponse(data, resolve, response, streamConfig) { + this.logger.debug("Processing text response as stream data"); + const allChunks = []; + const lines = data.split("\n"); + this.processStreamLines(lines, allChunks, streamConfig); + if (allChunks.length > 0) { + const finalResult = this.combineStreamingChunks(allChunks); + this.invokeOnCompleteCallback(finalResult, streamConfig); + resolve(finalResult); + } else { + this.logger.debug("No chunks processed, returning original API response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + resolve(response.data); + } + } + processStreamLines(lines, allChunks, streamConfig) { + for (const line of lines) { + if (line.trim() && line !== "data: [DONE]") { + const processed = this.processStreamingLine(line); + if (processed !== null) { + this.invokeOnChunkCallback(processed, streamConfig); + allChunks.push(processed); + } + } + } + } + finalizeStreamResult(allChunks, resolve, response, streamConfig) { + if (allChunks.length > 0) { + const finalResult = this.combineStreamingChunks(allChunks); + this.logger.debug("Stream processing complete"); + this.invokeOnCompleteCallback(finalResult, streamConfig); + resolve(finalResult); + } else { + this.logger.debug("No chunks processed, returning original API response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + resolve(response.data); + } + } + /** + * Combines multiple streaming chunks into a single coherent result + * This is critical for ensuring we return the complete data rather than just the last chunk + */ + combineStreamingChunks(chunks) { + if (chunks.length === 0) return {}; + if (chunks.length === 1) return chunks[0]; + const messagesChunks = this.getMessageChunks( + chunks + ); + if (messagesChunks.length > 0) { + return this.combineMessageChunks( + chunks, + messagesChunks + ); + } + const lastChunk = chunks[chunks.length - 1]; + if (!this.isCompleteSearchResponse(lastChunk)) { + throw new Error("Last chunk is not a complete search response"); + } + return lastChunk; + } + getMessageChunks(chunks) { + return chunks.filter(this.isChunkMessage); + } + isChunkMessage(chunk) { + return typeof chunk === "object" && chunk !== null && "message" in chunk && "conversation_id" in chunk; + } + combineMessageChunks(chunks, messagesChunks) { + this.logger.debug( + `Found ${messagesChunks.length} message chunks to combine` + ); + const lastChunk = chunks[chunks.length - 1]; + if (this.isCompleteSearchResponse(lastChunk)) { + return lastChunk; + } + const metadataChunk = chunks.find(this.isCompleteSearchResponse); + if (!metadataChunk) { + throw new Error("No metadata chunk found"); + } + return metadataChunk; + } + isCompleteSearchResponse(chunk) { + if (typeof chunk === "object" && chunk !== null && Object.keys(chunk).length > 0) { + return "results" in chunk || "found" in chunk || "hits" in chunk || "page" in chunk || "search_time_ms" in chunk; + } + return false; + } + // Attempts to find the next healthy node, looping through the list of nodes once. + // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy + // so we can try the request for good measure, in case that node has become healthy since + getNextNode(requestNumber = 0) { + if (this.nearestNode != null) { + this.logger.debug( + `Request #${requestNumber}: Nodes Health: Node ${this.nearestNode.index} is ${this.nearestNode.isHealthy === true ? "Healthy" : "Unhealthy"}` + ); + if (this.nearestNode.isHealthy === true || this.nodeDueForHealthcheck(this.nearestNode, requestNumber)) { + this.logger.debug( + `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}` + ); + return this.nearestNode; + } + this.logger.debug( + `Request #${requestNumber}: Falling back to individual nodes` + ); + } + this.logger.debug( + `Request #${requestNumber}: Nodes Health: ${this.nodes.map( + (node) => `Node ${node.index} is ${node.isHealthy === true ? "Healthy" : "Unhealthy"}` + ).join(" || ")}` + ); + let candidateNode = this.nodes[0]; + for (let i = 0; i <= this.nodes.length; i++) { + this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length; + candidateNode = this.nodes[this.currentNodeIndex]; + if (candidateNode.isHealthy === true || this.nodeDueForHealthcheck(candidateNode, requestNumber)) { + this.logger.debug( + `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}` + ); + return candidateNode; + } + } + this.logger.debug( + `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}` + ); + return candidateNode; + } + nodeDueForHealthcheck(node, requestNumber = 0) { + const isDueForHealthcheck = Date.now() - node.lastAccessTimestamp > this.healthcheckIntervalSeconds * 1e3; + if (isDueForHealthcheck) { + this.logger.debug( + `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.` + ); + } + return isDueForHealthcheck; + } + initializeMetadataForNodes() { + if (this.nearestNode != null) { + this.nearestNode.index = "nearestNode"; + this.setNodeHealthcheck(this.nearestNode, HEALTHY); + } + this.nodes.forEach((node, i) => { + node.index = i; + this.setNodeHealthcheck(node, HEALTHY); + }); + } + setNodeHealthcheck(node, isHealthy) { + node.isHealthy = isHealthy; + node.lastAccessTimestamp = Date.now(); + } + uriFor(endpoint, node) { + if (node.url != null) { + return `${node.url}${endpoint}`; + } + return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`; + } + defaultHeaders() { + const defaultHeaders = {}; + if (!this.sendApiKeyAsQueryParam) { + defaultHeaders[APIKEYHEADERNAME] = this.apiKey; + } + defaultHeaders["Content-Type"] = "application/json"; + return defaultHeaders; + } + async timer(seconds) { + return new Promise((resolve) => setTimeout(resolve, seconds * 1e3)); + } + customErrorForResponse(response, messageFromServer, httpBody) { + let errorMessage = `Request failed with HTTP code ${response.status}`; + if (typeof messageFromServer === "string" && messageFromServer.trim() !== "") { + errorMessage += ` | Server said: ${messageFromServer}`; + } + let error = new TypesenseError(errorMessage, httpBody, response.status); + if (response.status === 400) { + error = new RequestMalformed(errorMessage, httpBody, response.status); + } else if (response.status === 401) { + error = new RequestUnauthorized(errorMessage, httpBody, response.status); + } else if (response.status === 404) { + error = new ObjectNotFound(errorMessage, httpBody, response.status); + } else if (response.status === 409) { + error = new ObjectAlreadyExists(errorMessage, httpBody, response.status); + } else if (response.status === 422) { + error = new ObjectUnprocessable(errorMessage, httpBody, response.status); + } else if (response.status >= 500 && response.status <= 599) { + error = new ServerError(errorMessage, httpBody, response.status); + } else { + error = new HTTPError(errorMessage, httpBody, response.status); + } + return error; + } + invokeOnChunkCallback(data, streamConfig) { + if (streamConfig?.onChunk) { + try { + streamConfig.onChunk(data); + } catch (error) { + this.logger.warn(`Error in onChunk callback: ${error}`); + } + } + } + invokeOnCompleteCallback(data, streamConfig) { + if (streamConfig?.onComplete) { + try { + streamConfig.onComplete(data); + } catch (error) { + this.logger.warn(`Error in onComplete callback: ${error}`); + } + } + } + invokeOnErrorCallback(error, streamConfig) { + if (streamConfig?.onError) { + const errorObj = toErrorWithMessage(error); + try { + streamConfig.onError(errorObj); + } catch (callbackError) { + this.logger.warn(`Error in onError callback: ${callbackError}`); + } + } + } +}; + +// src/Typesense/RequestWithCache.ts +var defaultCacheResponseForSeconds = 2 * 60; +var defaultMaxSize = 100; +var RequestWithCache = class { + constructor() { + this.responseCache = /* @__PURE__ */ new Map(); + this.responsePromiseCache = /* @__PURE__ */ new Map(); + } + clearCache() { + this.responseCache = /* @__PURE__ */ new Map(); + this.responsePromiseCache = /* @__PURE__ */ new Map(); + } + async perform(requestContext, methodName, requestParams, cacheOptions) { + const { + cacheResponseForSeconds = defaultCacheResponseForSeconds, + maxSize = defaultMaxSize + } = cacheOptions; + const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0; + const { + path, + queryParams, + body, + headers, + streamConfig, + abortSignal, + responseType, + isStreamingRequest + } = requestParams; + if (isCacheDisabled) { + return this.executeRequest( + requestContext, + methodName, + path, + queryParams, + body, + headers, + { abortSignal, responseType, streamConfig, isStreamingRequest } + ); + } + const requestParamsJSON = JSON.stringify(requestParams); + const cacheEntry = this.responseCache.get(requestParamsJSON); + const now = Date.now(); + if (cacheEntry) { + const isEntryValid = now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1e3; + if (isEntryValid) { + this.responseCache.delete(requestParamsJSON); + this.responseCache.set(requestParamsJSON, cacheEntry); + return cacheEntry.response; + } else { + this.responseCache.delete(requestParamsJSON); + } + } + const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON); + if (cachePromiseEntry) { + const isEntryValid = now - cachePromiseEntry.requestTimestamp < cacheResponseForSeconds * 1e3; + if (isEntryValid) { + this.responsePromiseCache.delete(requestParamsJSON); + this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry); + return cachePromiseEntry.responsePromise; + } else { + this.responsePromiseCache.delete(requestParamsJSON); + } + } + const responsePromise = this.executeRequest( + requestContext, + methodName, + path, + queryParams, + body, + headers, + { abortSignal, responseType, streamConfig, isStreamingRequest } + ); + this.responsePromiseCache.set(requestParamsJSON, { + requestTimestamp: now, + responsePromise + }); + const response = await responsePromise; + this.responseCache.set(requestParamsJSON, { + requestTimestamp: now, + response + }); + const isCacheOverMaxSize = this.responseCache.size > maxSize; + if (isCacheOverMaxSize) { + const oldestEntry = this.responseCache.keys().next().value; + if (oldestEntry) { + this.responseCache.delete(oldestEntry); + } + } + const isResponsePromiseCacheOverMaxSize = this.responsePromiseCache.size > maxSize; + if (isResponsePromiseCacheOverMaxSize) { + const oldestEntry = this.responsePromiseCache.keys().next().value; + if (oldestEntry) { + this.responsePromiseCache.delete(oldestEntry); + } + } + return response; + } + executeRequest(context, methodName, path, queryParams = {}, body, headers, options) { + const method = context[methodName]; + switch (methodName) { + case "get": + return method.call(context, path, queryParams, { + abortSignal: options?.abortSignal, + responseType: options?.responseType, + streamConfig: options?.streamConfig, + isStreamingRequest: options?.isStreamingRequest + }); + case "delete": + return method.call( + context, + path, + queryParams + ); + case "post": + return method.call( + context, + path, + body, + queryParams, + headers || {}, + { + abortSignal: options?.abortSignal, + responseType: options?.responseType, + streamConfig: options?.streamConfig, + isStreamingRequest: options?.isStreamingRequest + } + ); + case "put": + case "patch": + return method.call( + context, + path, + body, + queryParams + ); + default: + throw new Error(`Unsupported method: ${String(methodName)}`); + } + } +}; + +// src/Typesense/MultiSearch.ts +var RESOURCEPATH = "/multi_search"; +var MultiSearch = class { + constructor(apiCall, configuration, useTextContentType = false) { + this.apiCall = apiCall; + this.configuration = configuration; + this.useTextContentType = useTextContentType; + this.requestWithCache = new RequestWithCache(); + } + clearCache() { + this.requestWithCache.clearCache(); + } + async perform(searchRequests, commonParams, { + cacheSearchResultsForSeconds = this.configuration.cacheSearchResultsForSeconds + } = {}) { + const params = commonParams ? { ...commonParams } : {}; + if (this.configuration.useServerSideSearchCache === true) { + params.use_cache = true; + } + const normalizedSearchRequests = { + union: searchRequests.union, + searches: searchRequests.searches.map( + normalizeArrayableParams + ) + }; + const { streamConfig, ...paramsWithoutStream } = params; + const normalizedQueryParams = normalizeArrayableParams( + paramsWithoutStream + ); + return this.requestWithCache.perform( + this.apiCall, + "post", + { + path: RESOURCEPATH, + body: normalizedSearchRequests, + queryParams: normalizedQueryParams, + headers: this.useTextContentType ? { "content-type": "text/plain" } : {}, + streamConfig, + isStreamingRequest: this.isStreamingRequest(params) + }, + { cacheResponseForSeconds: cacheSearchResultsForSeconds } + ); + } + isStreamingRequest(commonParams) { + return commonParams.streamConfig !== void 0; + } +}; + +// src/Typesense/Collections.ts +var RESOURCEPATH2 = "/collections"; +var Collections = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async create(schema, options) { + return this.apiCall.post(RESOURCEPATH2, schema, options); + } + async retrieve(options = {}) { + return this.apiCall.get(RESOURCEPATH2, options); + } + static get RESOURCEPATH() { + return RESOURCEPATH2; + } +}; + +// src/Typesense/SearchOnlyDocuments.ts +var RESOURCEPATH3 = "/documents"; +var SearchOnlyDocuments = class { + constructor(collectionName, apiCall, configuration) { + this.collectionName = collectionName; + this.apiCall = apiCall; + this.configuration = configuration; + this.requestWithCache = new RequestWithCache(); + } + clearCache() { + this.requestWithCache.clearCache(); + } + async search(searchParameters, { + cacheSearchResultsForSeconds = this.configuration.cacheSearchResultsForSeconds, + abortSignal = null + } = {}) { + const additionalQueryParams = {}; + if (this.configuration.useServerSideSearchCache === true) { + additionalQueryParams["use_cache"] = true; + } + const { streamConfig, ...rest } = normalizeArrayableParams(searchParameters); + const queryParams = { + ...additionalQueryParams, + ...rest + }; + const isStreamingRequest = queryParams.conversation_stream === true; + return this.requestWithCache.perform( + this.apiCall, + "get", + { + path: this.endpointPath("search"), + queryParams, + streamConfig, + abortSignal, + isStreamingRequest + }, + { + cacheResponseForSeconds: cacheSearchResultsForSeconds + } + ); + } + endpointPath(operation) { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH3}${operation === void 0 ? "" : "/" + operation}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH3; + } +}; + +// src/Typesense/SearchOnlyCollection.ts +var SearchOnlyCollection = class { + constructor(name, apiCall, configuration) { + this.name = name; + this.apiCall = apiCall; + this.configuration = configuration; + this._documents = new SearchOnlyDocuments( + this.name, + this.apiCall, + this.configuration + ); + } + documents() { + return this._documents; + } +}; + +// src/Typesense/SearchClient.ts +var SearchClient = class { + constructor(options) { + options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true; + if (options.sendApiKeyAsQueryParam === true && (options.apiKey || "").length > 2e3) { + console.warn( + "[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter." + ); + options.sendApiKeyAsQueryParam = false; + } + this.configuration = new Configuration(options); + this.apiCall = new ApiCall(this.configuration); + this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true); + this.individualCollections = {}; + } + clearCache() { + this.multiSearch.clearCache(); + Object.entries(this.individualCollections).forEach(([_, collection]) => { + collection.documents().clearCache(); + }); + } + collections(collectionName) { + if (!collectionName) { + throw new Error( + "Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object." + ); + } else { + if (this.individualCollections[collectionName] === void 0) { + this.individualCollections[collectionName] = new SearchOnlyCollection( + collectionName, + this.apiCall, + this.configuration + ); + } + return this.individualCollections[collectionName]; + } + } +}; + +// src/Typesense/Documents.ts +var isNodeJSEnvironment2 = typeof process !== "undefined" && process.versions != null && process.versions.node != null; +var Documents = class extends SearchOnlyDocuments { + constructor(collectionName, apiCall, configuration) { + super(collectionName, apiCall, configuration); + } + async create(document, options = {}) { + if (!document) throw new Error("No document provided"); + return this.apiCall.post(this.endpointPath(), document, options); + } + async upsert(document, options = {}) { + if (!document) throw new Error("No document provided"); + return this.apiCall.post( + this.endpointPath(), + document, + Object.assign({}, options, { action: "upsert" }) + ); + } + async update(document, options = {}) { + if (!document) throw new Error("No document provided"); + if (options["filter_by"] != null) { + return this.apiCall.patch( + this.endpointPath(), + document, + Object.assign({}, options) + ); + } else { + return this.apiCall.post( + this.endpointPath(), + document, + Object.assign({}, options, { action: "update" }) + ); + } + } + async delete(query = {}) { + return this.apiCall.delete(this.endpointPath(), query); + } + async createMany(documents, options = {}) { + this.configuration.logger.warn( + "createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents" + ); + return this.import(documents, options); + } + async import(documents, options = {}) { + let documentsInJSONLFormat; + if (Array.isArray(documents)) { + if (documents.length === 0) { + throw new RequestMalformed("No documents provided"); + } + try { + documentsInJSONLFormat = documents.map((document) => JSON.stringify(document)).join("\n"); + } catch (error) { + if (error instanceof RangeError && error.message.includes("Too many properties to enumerate")) { + throw new Error(`${error} + It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object + + Please try reducing the number of keys in your document, or using CURL to import your data. + `); + } + throw new Error(error); + } + } else { + documentsInJSONLFormat = documents; + if (isEmptyString(documentsInJSONLFormat)) { + throw new RequestMalformed("No documents provided"); + } + } + const resultsInJSONLFormat = await this.apiCall.performRequest( + "post", + this.endpointPath("import"), + { + queryParameters: options, + bodyParameters: documentsInJSONLFormat, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, + // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully + enableKeepAlive: isNodeJSEnvironment2 ? true : false + // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 + } + ); + if (Array.isArray(documents)) { + const resultsInJSONFormat = resultsInJSONLFormat.split("\n").map((r) => JSON.parse(r)); + const failedItems = resultsInJSONFormat.filter( + (r) => r.success === false + ); + if (failedItems.length > 0) { + throw new ImportError( + `${resultsInJSONFormat.length - failedItems.length} documents imported successfully, ${failedItems.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`, + resultsInJSONFormat, + { + documentsInJSONLFormat, + options, + failedItems, + successCount: resultsInJSONFormat.length - failedItems.length + } + ); + } else { + return resultsInJSONFormat; + } + } else { + return resultsInJSONLFormat; + } + } + /** + * Imports documents from a NodeJS readable stream of JSONL. + */ + async importStream(readableStream, options = {}) { + const resultsInJSONLFormat = await this.apiCall.performRequest( + "post", + this.endpointPath("import"), + { + queryParameters: options, + bodyParameters: readableStream, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, + // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully + enableKeepAlive: isNodeJSEnvironment2 ? true : false + // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 + } + ); + const resultsInJSONFormat = resultsInJSONLFormat.split("\n").map((r) => JSON.parse(r)); + const failedItems = resultsInJSONFormat.filter((r) => r.success === false); + if (failedItems.length > 0) { + throw new ImportError( + `${resultsInJSONFormat.length - failedItems.length} documents imported successfully, ${failedItems.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`, + resultsInJSONFormat, + { + documentsInJSONLFormat: readableStream, + options, + failedItems, + successCount: resultsInJSONFormat.length - failedItems.length + } + ); + } else { + return resultsInJSONFormat; + } + } + /** + * Returns a JSONL string for all the documents in this collection + */ + async export(options = {}) { + return this.apiCall.get(this.endpointPath("export"), options); + } + /** + * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + */ + async exportStream(options = {}) { + return this.apiCall.get(this.endpointPath("export"), options, { + responseType: "stream" + }); + } +}; +function isEmptyString(str) { + return str == null || str === "" || str.length === 0; +} + +// src/Typesense/Overrides.ts +var RESOURCEPATH4 = "/overrides"; +var Overrides = class _Overrides { + constructor(collectionName, apiCall) { + this.collectionName = collectionName; + this.apiCall = apiCall; + } + async upsert(overrideId, params) { + return this.apiCall.put( + this.endpointPath(overrideId), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Collections.RESOURCEPATH}/${this.collectionName}${_Overrides.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH4; + } +}; + +// src/Typesense/Override.ts +var Override = class { + constructor(collectionName, overrideId, apiCall) { + this.collectionName = collectionName; + this.overrideId = overrideId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`; + } +}; + +// src/Typesense/Synonyms.ts +var RESOURCEPATH5 = "/synonyms"; +var Synonyms = class _Synonyms { + constructor(collectionName, apiCall) { + this.collectionName = collectionName; + this.apiCall = apiCall; + } + async upsert(synonymId, params) { + return this.apiCall.put( + this.endpointPath(synonymId), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${_Synonyms.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH5; + } +}; + +// src/Typesense/Synonym.ts +var Synonym = class { + constructor(collectionName, synonymId, apiCall) { + this.collectionName = collectionName; + this.synonymId = synonymId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`; + } +}; + +// src/Typesense/Document.ts +var Document = class { + constructor(collectionName, documentId, apiCall) { + this.collectionName = collectionName; + this.documentId = documentId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete(options) { + return this.apiCall.delete(this.endpointPath(), options); + } + async update(partialDocument, options = {}) { + return this.apiCall.patch(this.endpointPath(), partialDocument, options); + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`; + } +}; + +// src/Typesense/Collection.ts +var Collection = class { + constructor(name, apiCall, configuration) { + this.name = name; + this.apiCall = apiCall; + this.configuration = configuration; + this.individualDocuments = {}; + this.individualOverrides = {}; + this.individualSynonyms = {}; + this.name = name; + this.apiCall = apiCall; + this.configuration = configuration; + this._documents = new Documents( + this.name, + this.apiCall, + this.configuration + ); + this._overrides = new Overrides(this.name, this.apiCall); + this._synonyms = new Synonyms(this.name, this.apiCall); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async update(schema) { + return this.apiCall.patch(this.endpointPath(), schema); + } + async delete(options = {}) { + return this.apiCall.delete(this.endpointPath(), options); + } + async exists() { + try { + await this.retrieve(); + return true; + } catch (e) { + if (e instanceof ObjectNotFound) return false; + throw e; + } + } + documents(documentId) { + if (!documentId) { + return this._documents; + } else { + if (this.individualDocuments[documentId] === void 0) { + this.individualDocuments[documentId] = new Document( + this.name, + documentId, + this.apiCall + ); + } + return this.individualDocuments[documentId]; + } + } + overrides(overrideId) { + if (overrideId === void 0) { + return this._overrides; + } else { + if (this.individualOverrides[overrideId] === void 0) { + this.individualOverrides[overrideId] = new Override( + this.name, + overrideId, + this.apiCall + ); + } + return this.individualOverrides[overrideId]; + } + } + synonyms(synonymId) { + if (synonymId === void 0) { + return this._synonyms; + } else { + if (this.individualSynonyms[synonymId] === void 0) { + this.individualSynonyms[synonymId] = new Synonym( + this.name, + synonymId, + this.apiCall + ); + } + return this.individualSynonyms[synonymId]; + } + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +}; + +// src/Typesense/Aliases.ts +var RESOURCEPATH6 = "/aliases"; +var Aliases = class _Aliases { + constructor(apiCall) { + this.apiCall = apiCall; + } + async upsert(name, mapping) { + return this.apiCall.put( + this.endpointPath(name), + mapping + ); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH6); + } + endpointPath(aliasName) { + return `${_Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH6; + } +}; + +// src/Typesense/Alias.ts +var Alias = class { + constructor(name, apiCall) { + this.name = name; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +}; + +// src/Typesense/Keys.ts +var import_crypto = __toESM(require_crypto()); +var RESOURCEPATH7 = "/keys"; +var Keys = class _Keys { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async create(params) { + return this.apiCall.post(_Keys.RESOURCEPATH, params); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH7); + } + generateScopedSearchKey(searchKey, parameters) { + const normalizedParams = normalizeArrayableParams(parameters); + const paramsJSON = JSON.stringify(normalizedParams); + const digest = Buffer.from( + (0, import_crypto.createHmac)("sha256", searchKey).update(paramsJSON).digest("base64") + ); + const keyPrefix = searchKey.substr(0, 4); + const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`; + return Buffer.from(rawScopedKey).toString("base64"); + } + static get RESOURCEPATH() { + return RESOURCEPATH7; + } +}; + +// src/Typesense/Key.ts +var Key = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/Debug.ts +var RESOURCEPATH8 = "/debug"; +var Debug = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH8); + } +}; + +// src/Typesense/Metrics.ts +var RESOURCEPATH9 = "/metrics.json"; +var Metrics = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH9); + } +}; + +// src/Typesense/Stats.ts +var RESOURCEPATH10 = "/stats.json"; +var Metrics2 = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH10); + } +}; + +// src/Typesense/Health.ts +var RESOURCEPATH11 = "/health"; +var Health = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH11); + } +}; + +// src/Typesense/Operations.ts +var RESOURCEPATH12 = "/operations"; +var Operations = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async perform(operationName, queryParameters = {}) { + return this.apiCall.post( + `${RESOURCEPATH12}/${operationName}`, + {}, + queryParameters + ); + } +}; + +// src/Typesense/Presets.ts +var RESOURCEPATH13 = "/presets"; +var Presets = class _Presets { + constructor(apiCall) { + this.apiCall = apiCall; + } + async upsert(presetId, params) { + if (typeof params.value === "object" && "searches" in params.value) { + const normalizedParams2 = params.value.searches.map( + (search) => normalizeArrayableParams(search) + ); + return this.apiCall.put(this.endpointPath(presetId), { + value: { searches: normalizedParams2 } + }); + } + const normalizedParams = normalizeArrayableParams(params.value); + return this.apiCall.put(this.endpointPath(presetId), { + value: normalizedParams + }); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${_Presets.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH13; + } +}; + +// src/Typesense/Preset.ts +var Preset = class { + constructor(presetId, apiCall) { + this.presetId = presetId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`; + } +}; + +// src/Typesense/AnalyticsRules.ts +var RESOURCEPATH14 = "/analytics/rules"; +var AnalyticsRules = class _AnalyticsRules { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async upsert(name, params) { + return this.apiCall.put( + this.endpointPath(name), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${_AnalyticsRules.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH14; + } +}; + +// src/Typesense/AnalyticsRule.ts +var AnalyticsRule = class { + constructor(name, apiCall) { + this.name = name; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +}; + +// src/Typesense/AnalyticsEvents.ts +var RESOURCEPATH15 = "/analytics/events"; +var AnalyticsEvents = class _AnalyticsEvents { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async create(params) { + return this.apiCall.post( + this.endpointPath(), + params + ); + } + endpointPath(operation) { + return `${_AnalyticsEvents.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH15; + } +}; + +// src/Typesense/Analytics.ts +var RESOURCEPATH16 = "/analytics"; +var Analytics = class { + constructor(apiCall) { + this.apiCall = apiCall; + this.individualAnalyticsRules = {}; + this.apiCall = apiCall; + this._analyticsRules = new AnalyticsRules(this.apiCall); + this._analyticsEvents = new AnalyticsEvents(this.apiCall); + } + rules(id) { + if (id === void 0) { + return this._analyticsRules; + } else { + if (this.individualAnalyticsRules[id] === void 0) { + this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall); + } + return this.individualAnalyticsRules[id]; + } + } + events() { + return this._analyticsEvents; + } + static get RESOURCEPATH() { + return RESOURCEPATH16; + } +}; + +// src/Typesense/Stopwords.ts +var RESOURCEPATH17 = "/stopwords"; +var Stopwords = class _Stopwords { + constructor(apiCall) { + this.apiCall = apiCall; + } + async upsert(stopwordId, params) { + return this.apiCall.put( + this.endpointPath(stopwordId), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${_Stopwords.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH17; + } +}; + +// src/Typesense/Stopword.ts +var Stopword = class { + constructor(stopwordId, apiCall) { + this.stopwordId = stopwordId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`; + } +}; + +// src/Typesense/ConversationModels.ts +var RESOURCEPATH18 = "/conversations/models"; +var ConversationModels = class _ConversationModels { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async create(params) { + return this.apiCall.post( + this.endpointPath(), + params + ); + } + async retrieve() { + return this.apiCall.get( + this.endpointPath() + ); + } + endpointPath(operation) { + return `${_ConversationModels.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH18; + } +}; + +// src/Typesense/ConversationModel.ts +var ConversationModel = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async update(params) { + return this.apiCall.put( + this.endpointPath(), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete( + this.endpointPath() + ); + } + endpointPath() { + return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/Conversations.ts +var RESOURCEPATH19 = "/conversations"; +var Conversations = class { + constructor(apiCall) { + this.apiCall = apiCall; + this.individualConversationModels = {}; + this.apiCall = apiCall; + this._conversationsModels = new ConversationModels(this.apiCall); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH19); + } + models(id) { + if (id === void 0) { + return this._conversationsModels; + } else { + if (this.individualConversationModels[id] === void 0) { + this.individualConversationModels[id] = new ConversationModel( + id, + this.apiCall + ); + } + return this.individualConversationModels[id]; + } + } + static get RESOURCEPATH() { + return RESOURCEPATH19; + } +}; + +// src/Typesense/Conversation.ts +var Conversation = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async update(params) { + return this.apiCall.put( + this.endpointPath(), + params + ); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/StemmingDictionaries.ts +var RESOURCEPATH20 = "/stemming/dictionaries"; +var StemmingDictionaries = class _StemmingDictionaries { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async upsert(id, wordRootCombinations) { + const wordRootCombinationsInJSONLFormat = Array.isArray( + wordRootCombinations + ) ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join("\n") : wordRootCombinations; + const resultsInJSONLFormat = await this.apiCall.performRequest( + "post", + this.endpointPath("import"), + { + queryParameters: { id }, + bodyParameters: wordRootCombinationsInJSONLFormat, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true + } + ); + return Array.isArray(wordRootCombinations) ? resultsInJSONLFormat.split("\n").map((line) => JSON.parse(line)) : resultsInJSONLFormat; + } + async retrieve() { + return this.apiCall.get( + this.endpointPath() + ); + } + endpointPath(operation) { + return operation === void 0 ? `${_StemmingDictionaries.RESOURCEPATH}` : `${_StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH20; + } +}; + +// src/Typesense/StemmingDictionary.ts +var StemmingDictionary = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath() { + return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/Stemming.ts +var RESOURCEPATH21 = "/stemming"; +var Stemming = class { + constructor(apiCall) { + this.apiCall = apiCall; + this.individualStemmingDictionaries = {}; + this.apiCall = apiCall; + this._stemmingDictionaries = new StemmingDictionaries(this.apiCall); + } + dictionaries(id) { + if (id === void 0) { + return this._stemmingDictionaries; + } else { + if (this.individualStemmingDictionaries[id] === void 0) { + this.individualStemmingDictionaries[id] = new StemmingDictionary( + id, + this.apiCall + ); + } + return this.individualStemmingDictionaries[id]; + } + } + static get RESOURCEPATH() { + return RESOURCEPATH21; + } +}; + +// src/Typesense/Client.ts +var Client = class { + constructor(options) { + options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false; + this.configuration = new Configuration(options); + this.apiCall = new ApiCall(this.configuration); + this.debug = new Debug(this.apiCall); + this.metrics = new Metrics(this.apiCall); + this.stats = new Metrics2(this.apiCall); + this.health = new Health(this.apiCall); + this.operations = new Operations(this.apiCall); + this.multiSearch = new MultiSearch(this.apiCall, this.configuration); + this._collections = new Collections(this.apiCall); + this.individualCollections = {}; + this._aliases = new Aliases(this.apiCall); + this.individualAliases = {}; + this._keys = new Keys(this.apiCall); + this.individualKeys = {}; + this._presets = new Presets(this.apiCall); + this.individualPresets = {}; + this._stopwords = new Stopwords(this.apiCall); + this.individualStopwords = {}; + this.analytics = new Analytics(this.apiCall); + this.stemming = new Stemming(this.apiCall); + this._conversations = new Conversations(this.apiCall); + this.individualConversations = {}; + } + collections(collectionName) { + if (collectionName === void 0) { + return this._collections; + } else { + if (this.individualCollections[collectionName] === void 0) { + this.individualCollections[collectionName] = new Collection( + collectionName, + this.apiCall, + this.configuration + ); + } + return this.individualCollections[collectionName]; + } + } + aliases(aliasName) { + if (aliasName === void 0) { + return this._aliases; + } else { + if (this.individualAliases[aliasName] === void 0) { + this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall); + } + return this.individualAliases[aliasName]; + } + } + keys(id) { + if (id === void 0) { + return this._keys; + } else { + if (this.individualKeys[id] === void 0) { + this.individualKeys[id] = new Key(id, this.apiCall); + } + return this.individualKeys[id]; + } + } + presets(id) { + if (id === void 0) { + return this._presets; + } else { + if (this.individualPresets[id] === void 0) { + this.individualPresets[id] = new Preset(id, this.apiCall); + } + return this.individualPresets[id]; + } + } + stopwords(id) { + if (id === void 0) { + return this._stopwords; + } else { + if (this.individualStopwords[id] === void 0) { + this.individualStopwords[id] = new Stopword(id, this.apiCall); + } + return this.individualStopwords[id]; + } + } + conversations(id) { + if (id === void 0) { + return this._conversations; + } else { + if (this.individualConversations[id] === void 0) { + this.individualConversations[id] = new Conversation(id, this.apiCall); + } + return this.individualConversations[id]; + } + } +}; + +exports.Client = Client; +exports.Errors = Errors_exports; +exports.SearchClient = SearchClient; diff --git a/dist/index.min.js b/dist/index.min.js new file mode 100644 index 00000000..568783f1 --- /dev/null +++ b/dist/index.min.js @@ -0,0 +1,16 @@ +'use strict';var Ze=require('loglevel'),Se=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Ze__default=/*#__PURE__*/_interopDefault(Ze);var Se__default=/*#__PURE__*/_interopDefault(Se);var Be=Object.create;var Re=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var Pe=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Ge=(n,e)=>{for(var t in e)Re(n,t,{get:e[t],enumerable:true});},Xe=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Qe(e))!Ye.call(n,i)&&i!==t&&Re(n,i,{get:()=>e[i],enumerable:!(r=Je(e,i))||r.enumerable});return n};var be=(n,e,t)=>(t=n!=null?Be(Ve(n)):{},Xe(!n||!n.__esModule?Re(t,"default",{value:n,enumerable:true}):t,n));var Oe=Pe((nr,Ee)=>{Ee.exports={};});var Ie=Pe((ir,ke)=>{ke.exports={};});var je=Pe((un,Ke)=>{Ke.exports={};});var we={};Ge(we,{HTTPError:()=>E,ImportError:()=>_,MissingConfigurationError:()=>R,ObjectAlreadyExists:()=>O,ObjectNotFound:()=>P,ObjectUnprocessable:()=>k,RequestMalformed:()=>y,RequestUnauthorized:()=>I,ServerError:()=>N,TypesenseError:()=>m});var m=class extends Error{constructor(e,t,r){super(e),this.name=new.target.name,this.httpBody=t,this.httpStatus=r,Object.setPrototypeOf(this,new.target.prototype);}};var E=class extends m{};var R=class extends m{};var O=class extends m{};var P=class extends m{};var k=class extends m{};var y=class extends m{};var I=class extends m{};var N=class extends m{};var _=class extends m{constructor(e,t,r){super(e),this.importResults=t,this.payload=r;}};var U=class{constructor(e){this.nodes=e.nodes||[],this.nodes=this.nodes.map(t=>this.setDefaultPathInNode(t)).map(t=>this.setDefaultPortInNode(t)).map(t=>({...t})),e.randomizeNodes==null&&(e.randomizeNodes=true),e.randomizeNodes===true&&this.shuffleArray(this.nodes),this.nearestNode=e.nearestNode,this.nearestNode=this.setDefaultPathInNode(this.nearestNode),this.nearestNode=this.setDefaultPortInNode(this.nearestNode),this.connectionTimeoutSeconds=e.connectionTimeoutSeconds||e.timeoutSeconds||5,this.healthcheckIntervalSeconds=e.healthcheckIntervalSeconds||60,this.numRetries=(e.numRetries!==void 0&&e.numRetries>=0?e.numRetries:this.nodes.length+(this.nearestNode==null?0:1))||3,this.retryIntervalSeconds=e.retryIntervalSeconds||.1,this.apiKey=e.apiKey,this.sendApiKeyAsQueryParam=e.sendApiKeyAsQueryParam,this.cacheSearchResultsForSeconds=e.cacheSearchResultsForSeconds||0,this.useServerSideSearchCache=e.useServerSideSearchCache||false,this.axiosAdapter=e.axiosAdapter,this.logger=e.logger||Ze__default.default,this.logLevel=e.logLevel||"warn",this.logger.setLevel(this.logLevel),this.additionalHeaders=e.additionalHeaders,this.httpAgent=e.httpAgent,this.httpsAgent=e.httpsAgent,this.paramsSerializer=e.paramsSerializer,this.showDeprecationWarnings(e),this.validate();}validate(){if(this.nodes==null||this.nodes.length===0||this.validateNodes())throw new R("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set");if(this.nearestNode!=null&&this.isNodeMissingAnyParameters(this.nearestNode))throw new R("Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set");if(this.apiKey==null)throw new R("Ensure that apiKey is set");return true}validateNodes(){return this.nodes.some(e=>this.isNodeMissingAnyParameters(e))}isNodeMissingAnyParameters(e){return !["protocol","host","port","path"].every(t=>e.hasOwnProperty(t))&&e.url==null}setDefaultPathInNode(e){return e!=null&&!e.hasOwnProperty("path")&&(e.path=""),e}setDefaultPortInNode(e){if(e!=null&&!e.hasOwnProperty("port")&&e.hasOwnProperty("protocol"))switch(e.protocol){case "https":e.port=443;break;case "http":e.port=80;break}return e}showDeprecationWarnings(e){e.timeoutSeconds&&this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"),e.masterNode&&this.logger.warn("Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12"),e.readReplicaNodes&&this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12");}shuffleArray(e){for(let t=e.length-1;t>0;t--){let r=Math.floor(Math.random()*(t+1));[e[t],e[r]]=[e[r],e[t]];}}};var qe=be(Oe()),Me=be(Ie());var _e={query_by:"query_by",query_by_weights:"query_by_weights",facet_by:"facet_by",group_by:"group_by",include_fields:"include_fields",exclude_fields:"exclude_fields",highlight_fields:"highlight_fields",highlight_full_fields:"highlight_full_fields",pinned_hits:"pinned_hits",hidden_hits:"hidden_hits",infix:"infix",override_tags:"override_tags",num_typos:"num_typos",prefix:"prefix",sort_by:"sort_by"};function Ne(n){return Object.keys(_e).filter(e=>n[e]!==void 0).every(e=>et(n[e]))}function C(n){let e={...n};if(!Object.keys(_e).filter(r=>Array.isArray(e[r])).map(r=>(e[r]=e[r].join(","),r)).length&&Ne(e))return e;if(!Ne(e))throw new Error(`Failed to normalize arrayable params: ${JSON.stringify(e)}`);return e}function et(n){return !Array.isArray(n)}function tt(n){return typeof n=="object"&&n!==null&&"message"in n&&typeof n.message=="string"}function Ue(n){if(tt(n))return n;try{return typeof n=="string"?new Error(n):new Error(JSON.stringify(n))}catch{return new Error(String(n))}}var rt="X-TYPESENSE-API-KEY",Ae=true,nt=false,A=typeof process<"u"&&process.versions!=null&&process.versions.node!=null&&typeof window>"u",q=class{constructor(e){this.configuration=e;this.apiKey=this.configuration.apiKey,this.nodes=this.configuration.nodes==null?this.configuration.nodes:JSON.parse(JSON.stringify(this.configuration.nodes)),this.nearestNode=this.configuration.nearestNode==null?this.configuration.nearestNode:JSON.parse(JSON.stringify(this.configuration.nearestNode)),this.connectionTimeoutSeconds=this.configuration.connectionTimeoutSeconds,this.healthcheckIntervalSeconds=this.configuration.healthcheckIntervalSeconds,this.numRetriesPerRequest=this.configuration.numRetries,this.retryIntervalSeconds=this.configuration.retryIntervalSeconds,this.sendApiKeyAsQueryParam=this.configuration.sendApiKeyAsQueryParam,this.additionalUserHeaders=this.configuration.additionalHeaders,this.logger=this.configuration.logger,this.initializeMetadataForNodes(),this.currentNodeIndex=-1;}async get(e,t={},{abortSignal:r=null,responseType:i=void 0,streamConfig:s=void 0,isStreamingRequest:o}={}){return this.performRequest("get",e,{queryParameters:t,abortSignal:r,responseType:i,streamConfig:s,isStreamingRequest:o})}async delete(e,t={}){return this.performRequest("delete",e,{queryParameters:t,isStreamingRequest:false})}async post(e,t={},r={},i={},{abortSignal:s=null,responseType:o=void 0,streamConfig:a=void 0,isStreamingRequest:l}={}){return this.performRequest("post",e,{queryParameters:r,bodyParameters:t,additionalHeaders:i,abortSignal:s,responseType:o,streamConfig:a,isStreamingRequest:l})}async put(e,t={},r={}){return this.performRequest("put",e,{queryParameters:r,bodyParameters:t,isStreamingRequest:false})}async patch(e,t={},r={}){return this.performRequest("patch",e,{queryParameters:r,bodyParameters:t,isStreamingRequest:false})}getAdapter(){return this.configuration.axiosAdapter?typeof this.configuration.axiosAdapter=="function"?this.configuration.axiosAdapter:typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"?Se__default.default.getAdapter(this.configuration.axiosAdapter).bind(globalThis):Se__default.default.getAdapter(this.configuration.axiosAdapter):void 0}async performRequest(e,t,{queryParameters:r=null,bodyParameters:i=null,additionalHeaders:s={},abortSignal:o=null,responseType:a=void 0,skipConnectionTimeout:l=false,enableKeepAlive:g=void 0,streamConfig:S=void 0,isStreamingRequest:f}){this.configuration.validate(),f&&(this.logger.debug(`Request: Performing streaming request to ${t}`),!A&&typeof fetch<"u"&&(this.logger.debug("Using fetch adapter for browser streaming"),a="stream"));let p=Date.now(),b,Y=false;this.logger.debug(`Request #${p}: Performing ${e.toUpperCase()} request: ${t}`);for(let D=1;D<=this.numRetriesPerRequest+1;D++){let h=this.getNextNode(p);if(this.logger.debug(`Request #${p}: Attempting ${e.toUpperCase()} request Try #${D} to Node ${h.index}`),o&&o.aborted)return Promise.reject(new Error("Request aborted by caller."));let v;try{let c={method:e,url:this.uriFor(t,h),headers:Object.assign({},this.defaultHeaders(),s,this.additionalUserHeaders),maxContentLength:1/0,maxBodyLength:1/0,validateStatus:x=>x>0,transformResponse:[(x,T)=>{let Te=x;return T!==void 0&&typeof x=="string"&&T["content-type"]&&T["content-type"].startsWith("application/json")&&(Te=JSON.parse(x)),Te}]};if(c.adapter=f&&!A?"fetch":this.getAdapter(),l!==!0&&(c.timeout=this.connectionTimeoutSeconds*1e3),r&&Object.keys(r).length!==0&&(c.params=r),this.sendApiKeyAsQueryParam&&(c.params=c.params||{},c.params["x-typesense-api-key"]=this.apiKey),this.configuration.httpAgent?(this.logger.debug(`Request #${p}: Using custom httpAgent`),c.httpAgent=this.configuration.httpAgent):g===!0&&(A?(this.logger.debug(`Request #${p}: Enabling KeepAlive`),c.httpAgent=new qe.Agent({keepAlive:!0})):this.logger.warn(`Request #${p}: Cannot use custom httpAgent in a browser environment to enable keepAlive`)),this.configuration.httpsAgent?(this.logger.debug(`Request #${p}: Using custom httpsAgent`),c.httpsAgent=this.configuration.httpsAgent):g===!0&&(A?(this.logger.debug(`Request #${p}: Enabling keepAlive`),c.httpsAgent=new Me.Agent({keepAlive:!0})):this.logger.warn(`Request #${p}: Cannot use custom httpAgent in a browser environment to enable keepAlive`)),this.configuration.paramsSerializer&&(this.logger.debug(`Request #${p}: Using custom paramsSerializer`),c.paramsSerializer=this.configuration.paramsSerializer),i&&(typeof i=="string"&&i.length!==0||typeof i=="object"&&Object.keys(i).length!==0)&&(c.data=i),o){let T=Se__default.default.CancelToken.source();v=()=>{Y=!0,T.cancel();},o.addEventListener("abort",v),c.cancelToken=T.token;}f?(c.responseType="stream",A||(c.headers={...c.headers,Accept:"text/event-stream"})):a&&(c.responseType=a);let d=await Se__default.default(c);if(d.status>=1&&d.status<=499&&this.setNodeHealthcheck(h,Ae),this.logger.debug(`Request #${p}: Request to Node ${h.index} was made. Response Code was ${d.status}.`),d.status>=200&&d.status<300)return f?this.handleStreamingResponse(d,S):Promise.resolve(d.data);if(d.status<500)return Promise.reject(this.customErrorForResponse(d,d.data?.message,c.data));throw this.customErrorForResponse(d,d.data?.message,c.data)}catch(c){if(Y||this.setNodeHealthcheck(h,nt),b=c,this.logger.warn(`Request #${p}: Request to Node ${h.index} failed due to "${c?.code??""} ${c.message}${c.response==null?"":" - "+JSON.stringify(c.response?.data)}"`),Y)return Promise.reject(new Error("Request aborted by caller."));if(f&&this.invokeOnErrorCallback(c,S),D{let s=e.data,o=[],a="";s.on("data",l=>{try{let g=l.toString();a+=g;let S=a.split(` +`);a=S.pop()??"",this.processStreamLines(S,o,t);}catch(g){i(g);}}),s.on("end",()=>{if(a.trim().length>0){let l=a.split(` +`);this.processStreamLines(l,o,t);}this.finalizeStreamResult(o,r,e,t);}),s.on("error",l=>{this.logger.error(`Stream error: ${l}`),this.invokeOnErrorCallback(l,t),i(l);});})}handleBrowserStreaming(e,t){return this.logger.debug("Processing browser stream"),new Promise(async(r,i)=>{try{return e.data&&typeof e.data.getReader=="function"?this.handleBrowserReadableStream(e.data,r,i,e,t):typeof e.data=="string"?this.handleBrowserStringResponse(e.data,r,e,t):typeof e.data=="object"&&e.data!==null?(this.logger.debug("No stream found, but data object is available"),this.invokeOnCompleteCallback(e.data,t),r(e.data)):(this.logger.error("No usable data found in response"),i(new Error("No usable data found in response")))}catch(s){this.logger.error(`Error processing streaming response: ${s}`),this.invokeOnErrorCallback(s,t),i(s);}})}async handleBrowserReadableStream(e,t,r,i,s){this.logger.debug("Found ReadableStream in response.data");let o=e.getReader(),a=[],l="";try{for(;;){let{done:g,value:S}=await o.read();if(g){if(this.logger.debug("Stream reading complete"),l.trim()){let b=l.split(` +`);this.processStreamLines(b,a,s);}break}let f=new TextDecoder().decode(S);this.logger.debug(`Received chunk: ${f.length} bytes`),l+=f;let p=l.split(` +`);l=p.pop()||"",this.processStreamLines(p,a,s);}this.finalizeStreamResult(a,t,i,s);}catch(g){this.logger.error(`Stream error: ${g}`),this.invokeOnErrorCallback(g,s),r(g);}}handleBrowserStringResponse(e,t,r,i){this.logger.debug("Processing text response as stream data");let s=[],o=e.split(` +`);if(this.processStreamLines(o,s,i),s.length>0){let a=this.combineStreamingChunks(s);this.invokeOnCompleteCallback(a,i),t(a);}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(r.data,i),t(r.data);}processStreamLines(e,t,r){for(let i of e)if(i.trim()&&i!=="data: [DONE]"){let s=this.processStreamingLine(i);s!==null&&(this.invokeOnChunkCallback(s,r),t.push(s));}}finalizeStreamResult(e,t,r,i){if(e.length>0){let s=this.combineStreamingChunks(e);this.logger.debug("Stream processing complete"),this.invokeOnCompleteCallback(s,i),t(s);}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(r.data,i),t(r.data);}combineStreamingChunks(e){if(e.length===0)return {};if(e.length===1)return e[0];let t=this.getMessageChunks(e);if(t.length>0)return this.combineMessageChunks(e,t);let r=e[e.length-1];if(!this.isCompleteSearchResponse(r))throw new Error("Last chunk is not a complete search response");return r}getMessageChunks(e){return e.filter(this.isChunkMessage)}isChunkMessage(e){return typeof e=="object"&&e!==null&&"message"in e&&"conversation_id"in e}combineMessageChunks(e,t){this.logger.debug(`Found ${t.length} message chunks to combine`);let r=e[e.length-1];if(this.isCompleteSearchResponse(r))return r;let i=e.find(this.isCompleteSearchResponse);if(!i)throw new Error("No metadata chunk found");return i}isCompleteSearchResponse(e){return typeof e=="object"&&e!==null&&Object.keys(e).length>0?"results"in e||"found"in e||"hits"in e||"page"in e||"search_time_ms"in e:false}getNextNode(e=0){if(this.nearestNode!=null){if(this.logger.debug(`Request #${e}: Nodes Health: Node ${this.nearestNode.index} is ${this.nearestNode.isHealthy===true?"Healthy":"Unhealthy"}`),this.nearestNode.isHealthy===true||this.nodeDueForHealthcheck(this.nearestNode,e))return this.logger.debug(`Request #${e}: Updated current node to Node ${this.nearestNode.index}`),this.nearestNode;this.logger.debug(`Request #${e}: Falling back to individual nodes`);}this.logger.debug(`Request #${e}: Nodes Health: ${this.nodes.map(r=>`Node ${r.index} is ${r.isHealthy===true?"Healthy":"Unhealthy"}`).join(" || ")}`);let t=this.nodes[0];for(let r=0;r<=this.nodes.length;r++)if(this.currentNodeIndex=(this.currentNodeIndex+1)%this.nodes.length,t=this.nodes[this.currentNodeIndex],t.isHealthy===true||this.nodeDueForHealthcheck(t,e))return this.logger.debug(`Request #${e}: Updated current node to Node ${t.index}`),t;return this.logger.debug(`Request #${e}: No healthy nodes were found. Returning the next node, Node ${t.index}`),t}nodeDueForHealthcheck(e,t=0){let r=Date.now()-e.lastAccessTimestamp>this.healthcheckIntervalSeconds*1e3;return r&&this.logger.debug(`Request #${t}: Node ${e.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`),r}initializeMetadataForNodes(){this.nearestNode!=null&&(this.nearestNode.index="nearestNode",this.setNodeHealthcheck(this.nearestNode,Ae)),this.nodes.forEach((e,t)=>{e.index=t,this.setNodeHealthcheck(e,Ae);});}setNodeHealthcheck(e,t){e.isHealthy=t,e.lastAccessTimestamp=Date.now();}uriFor(e,t){return t.url!=null?`${t.url}${e}`:`${t.protocol}://${t.host}:${t.port}${t.path}${e}`}defaultHeaders(){let e={};return this.sendApiKeyAsQueryParam||(e[rt]=this.apiKey),e["Content-Type"]="application/json",e}async timer(e){return new Promise(t=>setTimeout(t,e*1e3))}customErrorForResponse(e,t,r){let i=`Request failed with HTTP code ${e.status}`;typeof t=="string"&&t.trim()!==""&&(i+=` | Server said: ${t}`);let s=new m(i,r,e.status);return e.status===400?s=new y(i,r,e.status):e.status===401?s=new I(i,r,e.status):e.status===404?s=new P(i,r,e.status):e.status===409?s=new O(i,r,e.status):e.status===422?s=new k(i,r,e.status):e.status>=500&&e.status<=599?s=new N(i,r,e.status):s=new E(i,r,e.status),s}invokeOnChunkCallback(e,t){if(t?.onChunk)try{t.onChunk(e);}catch(r){this.logger.warn(`Error in onChunk callback: ${r}`);}}invokeOnCompleteCallback(e,t){if(t?.onComplete)try{t.onComplete(e);}catch(r){this.logger.warn(`Error in onComplete callback: ${r}`);}}invokeOnErrorCallback(e,t){if(t?.onError){let r=Ue(e);try{t.onError(r);}catch(i){this.logger.warn(`Error in onError callback: ${i}`);}}}};var it=2*60,st=100,M=class{constructor(){this.responseCache=new Map;this.responsePromiseCache=new Map;}clearCache(){this.responseCache=new Map,this.responsePromiseCache=new Map;}async perform(e,t,r,i){let{cacheResponseForSeconds:s=it,maxSize:o=st}=i,a=s<=0||o<=0,{path:l,queryParams:g,body:S,headers:f,streamConfig:p,abortSignal:b,responseType:Y,isStreamingRequest:D}=r;if(a)return this.executeRequest(e,t,l,g,S,f,{abortSignal:b,responseType:Y,streamConfig:p,isStreamingRequest:D});let h=JSON.stringify(r),v=this.responseCache.get(h),c=Date.now();if(v){if(c-v.requestTimestampo){let w=this.responseCache.keys().next().value;w&&this.responseCache.delete(w);}if(this.responsePromiseCache.size>o){let w=this.responsePromiseCache.keys().next().value;w&&this.responsePromiseCache.delete(w);}return T}executeRequest(e,t,r,i={},s,o,a){let l=e[t];switch(t){case "get":return l.call(e,r,i,{abortSignal:a?.abortSignal,responseType:a?.responseType,streamConfig:a?.streamConfig,isStreamingRequest:a?.isStreamingRequest});case "delete":return l.call(e,r,i);case "post":return l.call(e,r,s,i,o||{},{abortSignal:a?.abortSignal,responseType:a?.responseType,streamConfig:a?.streamConfig,isStreamingRequest:a?.isStreamingRequest});case "put":case "patch":return l.call(e,r,s,i);default:throw new Error(`Unsupported method: ${String(t)}`)}}};var ot="/multi_search",H=class{constructor(e,t,r=false){this.apiCall=e;this.configuration=t;this.useTextContentType=r;this.requestWithCache=new M;}clearCache(){this.requestWithCache.clearCache();}async perform(e,t,{cacheSearchResultsForSeconds:r=this.configuration.cacheSearchResultsForSeconds}={}){let i=t?{...t}:{};this.configuration.useServerSideSearchCache===true&&(i.use_cache=true);let s={union:e.union,searches:e.searches.map(C)},{streamConfig:o,...a}=i,l=C(a);return this.requestWithCache.perform(this.apiCall,"post",{path:ot,body:s,queryParams:l,headers:this.useTextContentType?{"content-type":"text/plain"}:{},streamConfig:o,isStreamingRequest:this.isStreamingRequest(i)},{cacheResponseForSeconds:r})}isStreamingRequest(e){return e.streamConfig!==void 0}};var De="/collections",u=class{constructor(e){this.apiCall=e;}async create(e,t){return this.apiCall.post(De,e,t)}async retrieve(e={}){return this.apiCall.get(De,e)}static get RESOURCEPATH(){return De}};var He="/documents",G=class{constructor(e,t,r){this.collectionName=e;this.apiCall=t;this.configuration=r;this.requestWithCache=new M;}clearCache(){this.requestWithCache.clearCache();}async search(e,{cacheSearchResultsForSeconds:t=this.configuration.cacheSearchResultsForSeconds,abortSignal:r=null}={}){let i={};this.configuration.useServerSideSearchCache===true&&(i.use_cache=true);let{streamConfig:s,...o}=C(e),a={...i,...o},l=a.conversation_stream===true;return this.requestWithCache.perform(this.apiCall,"get",{path:this.endpointPath("search"),queryParams:a,streamConfig:s,abortSignal:r,isStreamingRequest:l},{cacheResponseForSeconds:t})}endpointPath(e){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${He}${e===void 0?"":"/"+e}`}static get RESOURCEPATH(){return He}};var ye=class{constructor(e,t,r){this.name=e;this.apiCall=t;this.configuration=r;this._documents=new G(this.name,this.apiCall,this.configuration);}documents(){return this._documents}};var Ce=class{constructor(e){e.sendApiKeyAsQueryParam=e.sendApiKeyAsQueryParam??true,e.sendApiKeyAsQueryParam===true&&(e.apiKey||"").length>2e3&&(console.warn("[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter."),e.sendApiKeyAsQueryParam=false),this.configuration=new U(e),this.apiCall=new q(this.configuration),this.multiSearch=new H(this.apiCall,this.configuration,true),this.individualCollections={};}clearCache(){this.multiSearch.clearCache(),Object.entries(this.individualCollections).forEach(([e,t])=>{t.documents().clearCache();});}collections(e){if(e)return this.individualCollections[e]===void 0&&(this.individualCollections[e]=new ye(e,this.apiCall,this.configuration)),this.individualCollections[e];throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object.")}};var $e=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,$=class extends G{constructor(e,t,r){super(e,t,r);}async create(e,t={}){if(!e)throw new Error("No document provided");return this.apiCall.post(this.endpointPath(),e,t)}async upsert(e,t={}){if(!e)throw new Error("No document provided");return this.apiCall.post(this.endpointPath(),e,Object.assign({},t,{action:"upsert"}))}async update(e,t={}){if(!e)throw new Error("No document provided");return t.filter_by!=null?this.apiCall.patch(this.endpointPath(),e,Object.assign({},t)):this.apiCall.post(this.endpointPath(),e,Object.assign({},t,{action:"update"}))}async delete(e={}){return this.apiCall.delete(this.endpointPath(),e)}async createMany(e,t={}){return this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"),this.import(e,t)}async import(e,t={}){let r;if(Array.isArray(e)){if(e.length===0)throw new y("No documents provided");try{r=e.map(s=>JSON.stringify(s)).join(` +`);}catch(s){throw s instanceof RangeError&&s.message.includes("Too many properties to enumerate")?new Error(`${s} + It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object + + Please try reducing the number of keys in your document, or using CURL to import your data. + `):new Error(s)}}else if(r=e,at(r))throw new y("No documents provided");let i=await this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:t,bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:true,enableKeepAlive:!!$e});if(Array.isArray(e)){let s=i.split(` +`).map(a=>JSON.parse(a)),o=s.filter(a=>a.success===false);if(o.length>0)throw new _(`${s.length-o.length} documents imported successfully, ${o.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`,s,{documentsInJSONLFormat:r,options:t,failedItems:o,successCount:s.length-o.length});return s}else return i}async importStream(e,t={}){let i=(await this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:t,bodyParameters:e,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:true,enableKeepAlive:!!$e})).split(` +`).map(o=>JSON.parse(o)),s=i.filter(o=>o.success===false);if(s.length>0)throw new _(`${i.length-s.length} documents imported successfully, ${s.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`,i,{documentsInJSONLFormat:e,options:t,failedItems:s,successCount:i.length-s.length});return i}async export(e={}){return this.apiCall.get(this.endpointPath("export"),e)}async exportStream(e={}){return this.apiCall.get(this.endpointPath("export"),e,{responseType:"stream"})}};function at(n){return n==null||n===""||n.length===0}var ct="/overrides",W=class n{constructor(e,t){this.collectionName=e;this.apiCall=t;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${u.RESOURCEPATH}/${this.collectionName}${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return ct}};var X=class{constructor(e,t,r){this.collectionName=e;this.overrideId=t;this.apiCall=r;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${W.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`}};var lt="/synonyms",K=class n{constructor(e,t){this.collectionName=e;this.apiCall=t;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return lt}};var Z=class{constructor(e,t,r){this.collectionName=e;this.synonymId=t;this.apiCall=r;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${K.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`}};var ve=class{constructor(e,t,r){this.collectionName=e;this.documentId=t;this.apiCall=r;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(e){return this.apiCall.delete(this.endpointPath(),e)}async update(e,t={}){return this.apiCall.patch(this.endpointPath(),e,t)}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${$.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`}};var ee=class{constructor(e,t,r){this.name=e;this.apiCall=t;this.configuration=r;this.individualDocuments={};this.individualOverrides={};this.individualSynonyms={};this.name=e,this.apiCall=t,this.configuration=r,this._documents=new $(this.name,this.apiCall,this.configuration),this._overrides=new W(this.name,this.apiCall),this._synonyms=new K(this.name,this.apiCall);}async retrieve(){return this.apiCall.get(this.endpointPath())}async update(e){return this.apiCall.patch(this.endpointPath(),e)}async delete(e={}){return this.apiCall.delete(this.endpointPath(),e)}async exists(){try{return await this.retrieve(),!0}catch(e){if(e instanceof P)return false;throw e}}documents(e){return e?(this.individualDocuments[e]===void 0&&(this.individualDocuments[e]=new ve(this.name,e,this.apiCall)),this.individualDocuments[e]):this._documents}overrides(e){return e===void 0?this._overrides:(this.individualOverrides[e]===void 0&&(this.individualOverrides[e]=new X(this.name,e,this.apiCall)),this.individualOverrides[e])}synonyms(e){return e===void 0?this._synonyms:(this.individualSynonyms[e]===void 0&&(this.individualSynonyms[e]=new Z(this.name,e,this.apiCall)),this.individualSynonyms[e])}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.name)}`}};var We="/aliases",j=class n{constructor(e){this.apiCall=e;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(We)}endpointPath(e){return `${n.RESOURCEPATH}/${encodeURIComponent(e)}`}static get RESOURCEPATH(){return We}};var te=class{constructor(e,t){this.name=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${j.RESOURCEPATH}/${encodeURIComponent(this.name)}`}};var ze=be(je());var Fe="/keys",F=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async create(e){return this.apiCall.post(n.RESOURCEPATH,e)}async retrieve(){return this.apiCall.get(Fe)}generateScopedSearchKey(e,t){let r=C(t),i=JSON.stringify(r),s=Buffer.from((0, ze.createHmac)("sha256",e).update(i).digest("base64")),o=e.substr(0,4),a=`${s}${o}${i}`;return Buffer.from(a).toString("base64")}static get RESOURCEPATH(){return Fe}};var re=class{constructor(e,t){this.id=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${F.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var mt="/debug",ne=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(mt)}};var pt="/metrics.json",ie=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(pt)}};var ut="/stats.json",se=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(ut)}};var ht="/health",oe=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(ht)}};var dt="/operations",ae=class{constructor(e){this.apiCall=e;}async perform(e,t={}){return this.apiCall.post(`${dt}/${e}`,{},t)}};var gt="/presets",z=class n{constructor(e){this.apiCall=e;}async upsert(e,t){if(typeof t.value=="object"&&"searches"in t.value){let i=t.value.searches.map(s=>C(s));return this.apiCall.put(this.endpointPath(e),{value:{searches:i}})}let r=C(t.value);return this.apiCall.put(this.endpointPath(e),{value:r})}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return gt}};var ce=class{constructor(e,t){this.presetId=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${z.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`}};var ft="/analytics/rules",L=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return ft}};var le=class{constructor(e,t){this.name=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${L.RESOURCEPATH}/${encodeURIComponent(this.name)}`}};var St="/analytics/events",me=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async create(e){return this.apiCall.post(this.endpointPath(),e)}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return St}};var yt="/analytics",pe=class{constructor(e){this.apiCall=e;this.individualAnalyticsRules={};this.apiCall=e,this._analyticsRules=new L(this.apiCall),this._analyticsEvents=new me(this.apiCall);}rules(e){return e===void 0?this._analyticsRules:(this.individualAnalyticsRules[e]===void 0&&(this.individualAnalyticsRules[e]=new le(e,this.apiCall)),this.individualAnalyticsRules[e])}events(){return this._analyticsEvents}static get RESOURCEPATH(){return yt}};var Ct="/stopwords",B=class n{constructor(e){this.apiCall=e;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return Ct}};var ue=class{constructor(e,t){this.stopwordId=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${B.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`}};var vt="/conversations/models",J=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async create(e){return this.apiCall.post(this.endpointPath(),e)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return vt}};var he=class{constructor(e,t){this.id=e;this.apiCall=t;}async update(e){return this.apiCall.put(this.endpointPath(),e)}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${J.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var Le="/conversations",Q=class{constructor(e){this.apiCall=e;this.individualConversationModels={};this.apiCall=e,this._conversationsModels=new J(this.apiCall);}async retrieve(){return this.apiCall.get(Le)}models(e){return e===void 0?this._conversationsModels:(this.individualConversationModels[e]===void 0&&(this.individualConversationModels[e]=new he(e,this.apiCall)),this.individualConversationModels[e])}static get RESOURCEPATH(){return Le}};var de=class{constructor(e,t){this.id=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async update(e){return this.apiCall.put(this.endpointPath(),e)}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${Q.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var xt="/stemming/dictionaries",V=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async upsert(e,t){let r=Array.isArray(t)?t.map(s=>JSON.stringify(s)).join(` +`):t,i=await this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:{id:e},bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:true});return Array.isArray(t)?i.split(` +`).map(s=>JSON.parse(s)):i}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return e===void 0?`${n.RESOURCEPATH}`:`${n.RESOURCEPATH}/${encodeURIComponent(e)}`}static get RESOURCEPATH(){return xt}};var ge=class{constructor(e,t){this.id=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(){return `${V.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var Tt="/stemming",fe=class{constructor(e){this.apiCall=e;this.individualStemmingDictionaries={};this.apiCall=e,this._stemmingDictionaries=new V(this.apiCall);}dictionaries(e){return e===void 0?this._stemmingDictionaries:(this.individualStemmingDictionaries[e]===void 0&&(this.individualStemmingDictionaries[e]=new ge(e,this.apiCall)),this.individualStemmingDictionaries[e])}static get RESOURCEPATH(){return Tt}};var xe=class{constructor(e){e.sendApiKeyAsQueryParam=e.sendApiKeyAsQueryParam??false,this.configuration=new U(e),this.apiCall=new q(this.configuration),this.debug=new ne(this.apiCall),this.metrics=new ie(this.apiCall),this.stats=new se(this.apiCall),this.health=new oe(this.apiCall),this.operations=new ae(this.apiCall),this.multiSearch=new H(this.apiCall,this.configuration),this._collections=new u(this.apiCall),this.individualCollections={},this._aliases=new j(this.apiCall),this.individualAliases={},this._keys=new F(this.apiCall),this.individualKeys={},this._presets=new z(this.apiCall),this.individualPresets={},this._stopwords=new B(this.apiCall),this.individualStopwords={},this.analytics=new pe(this.apiCall),this.stemming=new fe(this.apiCall),this._conversations=new Q(this.apiCall),this.individualConversations={};}collections(e){return e===void 0?this._collections:(this.individualCollections[e]===void 0&&(this.individualCollections[e]=new ee(e,this.apiCall,this.configuration)),this.individualCollections[e])}aliases(e){return e===void 0?this._aliases:(this.individualAliases[e]===void 0&&(this.individualAliases[e]=new te(e,this.apiCall)),this.individualAliases[e])}keys(e){return e===void 0?this._keys:(this.individualKeys[e]===void 0&&(this.individualKeys[e]=new re(e,this.apiCall)),this.individualKeys[e])}presets(e){return e===void 0?this._presets:(this.individualPresets[e]===void 0&&(this.individualPresets[e]=new ce(e,this.apiCall)),this.individualPresets[e])}stopwords(e){return e===void 0?this._stopwords:(this.individualStopwords[e]===void 0&&(this.individualStopwords[e]=new ue(e,this.apiCall)),this.individualStopwords[e])}conversations(e){return e===void 0?this._conversations:(this.individualConversations[e]===void 0&&(this.individualConversations[e]=new de(e,this.apiCall)),this.individualConversations[e])}};exports.Client=xe;exports.Errors=we;exports.SearchClient=Ce;//# sourceMappingURL=index.min.js.map +//# sourceMappingURL=index.min.js.map \ No newline at end of file diff --git a/dist/index.min.js.map b/dist/index.min.js.map new file mode 100644 index 00000000..65662ec4 --- /dev/null +++ b/dist/index.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["node-modules-polyfills-empty:http","node-modules-polyfills-empty:https","node-modules-polyfills-empty:crypto","../src/Typesense/Errors/index.ts","../src/Typesense/Errors/TypesenseError.ts","../src/Typesense/Errors/HTTPError.ts","../src/Typesense/Errors/MissingConfigurationError.ts","../src/Typesense/Errors/ObjectAlreadyExists.ts","../src/Typesense/Errors/ObjectNotFound.ts","../src/Typesense/Errors/ObjectUnprocessable.ts","../src/Typesense/Errors/RequestMalformed.ts","../src/Typesense/Errors/RequestUnauthorized.ts","../src/Typesense/Errors/ServerError.ts","../src/Typesense/Errors/ImportError.ts","../src/Typesense/Configuration.ts","../src/Typesense/ApiCall.ts","../src/Typesense/Types.ts","../src/Typesense/Utils.ts","../src/Typesense/RequestWithCache.ts","../src/Typesense/MultiSearch.ts","../src/Typesense/Collections.ts","../src/Typesense/SearchOnlyDocuments.ts","../src/Typesense/SearchOnlyCollection.ts","../src/Typesense/SearchClient.ts","../src/Typesense/Documents.ts","../src/Typesense/Overrides.ts","../src/Typesense/Override.ts","../src/Typesense/Synonyms.ts","../src/Typesense/Synonym.ts","../src/Typesense/Document.ts","../src/Typesense/Collection.ts","../src/Typesense/Aliases.ts","../src/Typesense/Alias.ts","../src/Typesense/Keys.ts","../src/Typesense/Key.ts","../src/Typesense/Debug.ts","../src/Typesense/Metrics.ts","../src/Typesense/Stats.ts","../src/Typesense/Health.ts","../src/Typesense/Operations.ts","../src/Typesense/Presets.ts","../src/Typesense/Preset.ts","../src/Typesense/AnalyticsRules.ts","../src/Typesense/AnalyticsRule.ts","../src/Typesense/AnalyticsEvents.ts","../src/Typesense/Analytics.ts","../src/Typesense/Stopwords.ts","../src/Typesense/Stopword.ts","../src/Typesense/ConversationModels.ts","../src/Typesense/ConversationModel.ts","../src/Typesense/Conversations.ts","../src/Typesense/Conversation.ts","../src/Typesense/StemmingDictionaries.ts","../src/Typesense/StemmingDictionary.ts","../src/Typesense/Stemming.ts","../src/Typesense/Client.ts"],"names":["require_http","__commonJSMin","exports","module","require_https","require_crypto","Errors_exports","__export","HTTPError","ImportError","MissingConfigurationError","ObjectAlreadyExists","ObjectNotFound","ObjectUnprocessable","RequestMalformed","RequestUnauthorized","ServerError","TypesenseError","message","httpBody","httpStatus","importResults","payload","Configuration","options","node","logger","key","array","i","j","import_http","import_https","arrayableParams","hasNoArrayValues","params","isNonArrayValue","normalizeArrayableParams","result","value","isErrorWithMessage","error","toErrorWithMessage","couldBeError","APIKEYHEADERNAME","HEALTHY","UNHEALTHY","isNodeJSEnvironment","ApiCall","configuration","endpoint","queryParameters","abortSignal","responseType","streamConfig","isStreamingRequest","bodyParameters","additionalHeaders","axios","requestType","skipConnectionTimeout","enableKeepAlive","requestNumber","lastException","wasAborted","numTries","abortListener","requestOptions","status","data","headers","transformedData","HTTPAgent","HTTPSAgent","source","response","line","jsonData","dataContent","resolve","reject","stream","allChunks","buffer","chunk","lines","reader","done","finalResult","processed","chunks","messagesChunks","lastChunk","metadataChunk","candidateNode","isDueForHealthcheck","isHealthy","defaultHeaders","seconds","messageFromServer","errorMessage","errorObj","callbackError","defaultCacheResponseForSeconds","defaultMaxSize","RequestWithCache","requestContext","methodName","requestParams","cacheOptions","cacheResponseForSeconds","maxSize","isCacheDisabled","path","queryParams","body","requestParamsJSON","cacheEntry","now","cachePromiseEntry","responsePromise","oldestEntry","context","method","RESOURCEPATH","MultiSearch","apiCall","useTextContentType","searchRequests","commonParams","cacheSearchResultsForSeconds","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","Collections","schema","SearchOnlyDocuments","collectionName","searchParameters","additionalQueryParams","rest","operation","SearchOnlyCollection","name","SearchClient","_","collection","Documents","document","query","documents","documentsInJSONLFormat","isEmptyString","resultsInJSONLFormat","resultsInJSONFormat","r","failedItems","readableStream","str","Overrides","_Overrides","overrideId","Override","Synonyms","_Synonyms","synonymId","Synonym","Document","documentId","partialDocument","Collection","Aliases","_Aliases","mapping","aliasName","Alias","import_crypto","Keys","_Keys","searchKey","parameters","normalizedParams","paramsJSON","digest","keyPrefix","rawScopedKey","Key","id","Debug","Metrics","Health","Operations","operationName","Presets","_Presets","presetId","search","Preset","AnalyticsRules","_AnalyticsRules","AnalyticsRule","AnalyticsEvents","_AnalyticsEvents","Analytics","Stopwords","_Stopwords","stopwordId","Stopword","ConversationModels","_ConversationModels","ConversationModel","Conversations","Conversation","StemmingDictionaries","_StemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","StemmingDictionary","Stemming","Client"],"mappings":"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","file":"index.min.js","sourcesContent":["module.exports = {}","module.exports = {}","module.exports = {}","import HTTPError from \"./HTTPError\";\nimport MissingConfigurationError from \"./MissingConfigurationError\";\nimport ObjectAlreadyExists from \"./ObjectAlreadyExists\";\nimport ObjectNotFound from \"./ObjectNotFound\";\nimport ObjectUnprocessable from \"./ObjectUnprocessable\";\nimport RequestMalformed from \"./RequestMalformed\";\nimport RequestUnauthorized from \"./RequestUnauthorized\";\nimport ServerError from \"./ServerError\";\nimport ImportError from \"./ImportError\";\nimport TypesenseError from \"./TypesenseError\";\n\nexport {\n HTTPError,\n MissingConfigurationError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n TypesenseError,\n ImportError,\n};\n","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import logger from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: logger.LogLevelDesc;\n logger?: logger.Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: logger.Logger;\n readonly logLevel: logger.LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n private readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(document: T, options: DocumentWriteParameters): Promise;\n upsert(document: T, options: DocumentWriteParameters): Promise;\n update(document: T, options: DocumentWriteParameters): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: SearchResponseRequestParams[];\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/ban-types\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions;\n const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport {\n DocumentSchema,\n ExtractBaseTypes,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n }: { cacheSearchResultsForSeconds?: number } = {},\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n { cacheResponseForSeconds: cacheSearchResultsForSeconds },\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\nexport default class SearchClient {\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n collections(\n collectionName: string,\n ):\n | SearchOnlyCollection\n | SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n}\n\ninterface ImportResponseSuccess {\n success: true;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document: DocumentSchema;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n };\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n}\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n async create(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n async upsert(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async update(document: T, options: DocumentWriteParameters): Promise;\n async update(\n document: T,\n options: DocumentWriteParameters | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), query);\n }\n\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import a set of documents in a batch.\n * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects.\n * @param options\n * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results.\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise {\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise {\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\nexport default class Synonyms {\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\nexport default class Synonym {\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends CollectionCreateSchema {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n documents(): Documents;\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n overrides(): Overrides;\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n synonyms(): Synonyms;\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n actions: string[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n | \"schema_changes\"\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: Array<{\n type: string;\n weight?: number;\n name: string;\n }>;\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRules;\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords, { StopwordCreateSchema } from \"./Stopwords\";\n\nexport interface StopwordSchema extends StopwordCreateSchema {\n id: string;\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n models(): ConversationModels;\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n dictionaries(): StemmingDictionaries;\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\n\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n debug: Debug;\n metrics: Metrics;\n stats: Stats;\n health: Health;\n operations: Operations;\n multiSearch: MultiSearch;\n analytics: Analytics;\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n }\n\n collections(): Collections;\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n aliases(): Aliases;\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n keys(): Keys;\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n presets(): Presets;\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n stopwords(): Stopwords;\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n conversations(): Conversations;\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n}\n"]} \ No newline at end of file diff --git a/dist/index.min.mjs b/dist/index.min.mjs new file mode 100644 index 00000000..a0cdeb35 --- /dev/null +++ b/dist/index.min.mjs @@ -0,0 +1,16 @@ +import Ze from'loglevel';import Se from'axios';var Be=Object.create;var Re=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var Pe=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),Ge=(n,e)=>{for(var t in e)Re(n,t,{get:e[t],enumerable:true});},Xe=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Qe(e))!Ye.call(n,i)&&i!==t&&Re(n,i,{get:()=>e[i],enumerable:!(r=Je(e,i))||r.enumerable});return n};var be=(n,e,t)=>(t=n!=null?Be(Ve(n)):{},Xe(!n||!n.__esModule?Re(t,"default",{value:n,enumerable:true}):t,n));var Oe=Pe((nr,Ee)=>{Ee.exports={};});var Ie=Pe((ir,ke)=>{ke.exports={};});var je=Pe((un,Ke)=>{Ke.exports={};});var we={};Ge(we,{HTTPError:()=>E,ImportError:()=>_,MissingConfigurationError:()=>R,ObjectAlreadyExists:()=>O,ObjectNotFound:()=>P,ObjectUnprocessable:()=>k,RequestMalformed:()=>y,RequestUnauthorized:()=>I,ServerError:()=>N,TypesenseError:()=>m});var m=class extends Error{constructor(e,t,r){super(e),this.name=new.target.name,this.httpBody=t,this.httpStatus=r,Object.setPrototypeOf(this,new.target.prototype);}};var E=class extends m{};var R=class extends m{};var O=class extends m{};var P=class extends m{};var k=class extends m{};var y=class extends m{};var I=class extends m{};var N=class extends m{};var _=class extends m{constructor(e,t,r){super(e),this.importResults=t,this.payload=r;}};var U=class{constructor(e){this.nodes=e.nodes||[],this.nodes=this.nodes.map(t=>this.setDefaultPathInNode(t)).map(t=>this.setDefaultPortInNode(t)).map(t=>({...t})),e.randomizeNodes==null&&(e.randomizeNodes=true),e.randomizeNodes===true&&this.shuffleArray(this.nodes),this.nearestNode=e.nearestNode,this.nearestNode=this.setDefaultPathInNode(this.nearestNode),this.nearestNode=this.setDefaultPortInNode(this.nearestNode),this.connectionTimeoutSeconds=e.connectionTimeoutSeconds||e.timeoutSeconds||5,this.healthcheckIntervalSeconds=e.healthcheckIntervalSeconds||60,this.numRetries=(e.numRetries!==void 0&&e.numRetries>=0?e.numRetries:this.nodes.length+(this.nearestNode==null?0:1))||3,this.retryIntervalSeconds=e.retryIntervalSeconds||.1,this.apiKey=e.apiKey,this.sendApiKeyAsQueryParam=e.sendApiKeyAsQueryParam,this.cacheSearchResultsForSeconds=e.cacheSearchResultsForSeconds||0,this.useServerSideSearchCache=e.useServerSideSearchCache||false,this.axiosAdapter=e.axiosAdapter,this.logger=e.logger||Ze,this.logLevel=e.logLevel||"warn",this.logger.setLevel(this.logLevel),this.additionalHeaders=e.additionalHeaders,this.httpAgent=e.httpAgent,this.httpsAgent=e.httpsAgent,this.paramsSerializer=e.paramsSerializer,this.showDeprecationWarnings(e),this.validate();}validate(){if(this.nodes==null||this.nodes.length===0||this.validateNodes())throw new R("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set");if(this.nearestNode!=null&&this.isNodeMissingAnyParameters(this.nearestNode))throw new R("Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set");if(this.apiKey==null)throw new R("Ensure that apiKey is set");return true}validateNodes(){return this.nodes.some(e=>this.isNodeMissingAnyParameters(e))}isNodeMissingAnyParameters(e){return !["protocol","host","port","path"].every(t=>e.hasOwnProperty(t))&&e.url==null}setDefaultPathInNode(e){return e!=null&&!e.hasOwnProperty("path")&&(e.path=""),e}setDefaultPortInNode(e){if(e!=null&&!e.hasOwnProperty("port")&&e.hasOwnProperty("protocol"))switch(e.protocol){case "https":e.port=443;break;case "http":e.port=80;break}return e}showDeprecationWarnings(e){e.timeoutSeconds&&this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"),e.masterNode&&this.logger.warn("Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12"),e.readReplicaNodes&&this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12");}shuffleArray(e){for(let t=e.length-1;t>0;t--){let r=Math.floor(Math.random()*(t+1));[e[t],e[r]]=[e[r],e[t]];}}};var qe=be(Oe()),Me=be(Ie());var _e={query_by:"query_by",query_by_weights:"query_by_weights",facet_by:"facet_by",group_by:"group_by",include_fields:"include_fields",exclude_fields:"exclude_fields",highlight_fields:"highlight_fields",highlight_full_fields:"highlight_full_fields",pinned_hits:"pinned_hits",hidden_hits:"hidden_hits",infix:"infix",override_tags:"override_tags",num_typos:"num_typos",prefix:"prefix",sort_by:"sort_by"};function Ne(n){return Object.keys(_e).filter(e=>n[e]!==void 0).every(e=>et(n[e]))}function C(n){let e={...n};if(!Object.keys(_e).filter(r=>Array.isArray(e[r])).map(r=>(e[r]=e[r].join(","),r)).length&&Ne(e))return e;if(!Ne(e))throw new Error(`Failed to normalize arrayable params: ${JSON.stringify(e)}`);return e}function et(n){return !Array.isArray(n)}function tt(n){return typeof n=="object"&&n!==null&&"message"in n&&typeof n.message=="string"}function Ue(n){if(tt(n))return n;try{return typeof n=="string"?new Error(n):new Error(JSON.stringify(n))}catch{return new Error(String(n))}}var rt="X-TYPESENSE-API-KEY",Ae=true,nt=false,A=typeof process<"u"&&process.versions!=null&&process.versions.node!=null&&typeof window>"u",q=class{constructor(e){this.configuration=e;this.apiKey=this.configuration.apiKey,this.nodes=this.configuration.nodes==null?this.configuration.nodes:JSON.parse(JSON.stringify(this.configuration.nodes)),this.nearestNode=this.configuration.nearestNode==null?this.configuration.nearestNode:JSON.parse(JSON.stringify(this.configuration.nearestNode)),this.connectionTimeoutSeconds=this.configuration.connectionTimeoutSeconds,this.healthcheckIntervalSeconds=this.configuration.healthcheckIntervalSeconds,this.numRetriesPerRequest=this.configuration.numRetries,this.retryIntervalSeconds=this.configuration.retryIntervalSeconds,this.sendApiKeyAsQueryParam=this.configuration.sendApiKeyAsQueryParam,this.additionalUserHeaders=this.configuration.additionalHeaders,this.logger=this.configuration.logger,this.initializeMetadataForNodes(),this.currentNodeIndex=-1;}async get(e,t={},{abortSignal:r=null,responseType:i=void 0,streamConfig:s=void 0,isStreamingRequest:o}={}){return this.performRequest("get",e,{queryParameters:t,abortSignal:r,responseType:i,streamConfig:s,isStreamingRequest:o})}async delete(e,t={}){return this.performRequest("delete",e,{queryParameters:t,isStreamingRequest:false})}async post(e,t={},r={},i={},{abortSignal:s=null,responseType:o=void 0,streamConfig:a=void 0,isStreamingRequest:l}={}){return this.performRequest("post",e,{queryParameters:r,bodyParameters:t,additionalHeaders:i,abortSignal:s,responseType:o,streamConfig:a,isStreamingRequest:l})}async put(e,t={},r={}){return this.performRequest("put",e,{queryParameters:r,bodyParameters:t,isStreamingRequest:false})}async patch(e,t={},r={}){return this.performRequest("patch",e,{queryParameters:r,bodyParameters:t,isStreamingRequest:false})}getAdapter(){return this.configuration.axiosAdapter?typeof this.configuration.axiosAdapter=="function"?this.configuration.axiosAdapter:typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers"?Se.getAdapter(this.configuration.axiosAdapter).bind(globalThis):Se.getAdapter(this.configuration.axiosAdapter):void 0}async performRequest(e,t,{queryParameters:r=null,bodyParameters:i=null,additionalHeaders:s={},abortSignal:o=null,responseType:a=void 0,skipConnectionTimeout:l=false,enableKeepAlive:g=void 0,streamConfig:S=void 0,isStreamingRequest:f}){this.configuration.validate(),f&&(this.logger.debug(`Request: Performing streaming request to ${t}`),!A&&typeof fetch<"u"&&(this.logger.debug("Using fetch adapter for browser streaming"),a="stream"));let p=Date.now(),b,Y=false;this.logger.debug(`Request #${p}: Performing ${e.toUpperCase()} request: ${t}`);for(let D=1;D<=this.numRetriesPerRequest+1;D++){let h=this.getNextNode(p);if(this.logger.debug(`Request #${p}: Attempting ${e.toUpperCase()} request Try #${D} to Node ${h.index}`),o&&o.aborted)return Promise.reject(new Error("Request aborted by caller."));let v;try{let c={method:e,url:this.uriFor(t,h),headers:Object.assign({},this.defaultHeaders(),s,this.additionalUserHeaders),maxContentLength:1/0,maxBodyLength:1/0,validateStatus:x=>x>0,transformResponse:[(x,T)=>{let Te=x;return T!==void 0&&typeof x=="string"&&T["content-type"]&&T["content-type"].startsWith("application/json")&&(Te=JSON.parse(x)),Te}]};if(c.adapter=f&&!A?"fetch":this.getAdapter(),l!==!0&&(c.timeout=this.connectionTimeoutSeconds*1e3),r&&Object.keys(r).length!==0&&(c.params=r),this.sendApiKeyAsQueryParam&&(c.params=c.params||{},c.params["x-typesense-api-key"]=this.apiKey),this.configuration.httpAgent?(this.logger.debug(`Request #${p}: Using custom httpAgent`),c.httpAgent=this.configuration.httpAgent):g===!0&&(A?(this.logger.debug(`Request #${p}: Enabling KeepAlive`),c.httpAgent=new qe.Agent({keepAlive:!0})):this.logger.warn(`Request #${p}: Cannot use custom httpAgent in a browser environment to enable keepAlive`)),this.configuration.httpsAgent?(this.logger.debug(`Request #${p}: Using custom httpsAgent`),c.httpsAgent=this.configuration.httpsAgent):g===!0&&(A?(this.logger.debug(`Request #${p}: Enabling keepAlive`),c.httpsAgent=new Me.Agent({keepAlive:!0})):this.logger.warn(`Request #${p}: Cannot use custom httpAgent in a browser environment to enable keepAlive`)),this.configuration.paramsSerializer&&(this.logger.debug(`Request #${p}: Using custom paramsSerializer`),c.paramsSerializer=this.configuration.paramsSerializer),i&&(typeof i=="string"&&i.length!==0||typeof i=="object"&&Object.keys(i).length!==0)&&(c.data=i),o){let T=Se.CancelToken.source();v=()=>{Y=!0,T.cancel();},o.addEventListener("abort",v),c.cancelToken=T.token;}f?(c.responseType="stream",A||(c.headers={...c.headers,Accept:"text/event-stream"})):a&&(c.responseType=a);let d=await Se(c);if(d.status>=1&&d.status<=499&&this.setNodeHealthcheck(h,Ae),this.logger.debug(`Request #${p}: Request to Node ${h.index} was made. Response Code was ${d.status}.`),d.status>=200&&d.status<300)return f?this.handleStreamingResponse(d,S):Promise.resolve(d.data);if(d.status<500)return Promise.reject(this.customErrorForResponse(d,d.data?.message,c.data));throw this.customErrorForResponse(d,d.data?.message,c.data)}catch(c){if(Y||this.setNodeHealthcheck(h,nt),b=c,this.logger.warn(`Request #${p}: Request to Node ${h.index} failed due to "${c?.code??""} ${c.message}${c.response==null?"":" - "+JSON.stringify(c.response?.data)}"`),Y)return Promise.reject(new Error("Request aborted by caller."));if(f&&this.invokeOnErrorCallback(c,S),D{let s=e.data,o=[],a="";s.on("data",l=>{try{let g=l.toString();a+=g;let S=a.split(` +`);a=S.pop()??"",this.processStreamLines(S,o,t);}catch(g){i(g);}}),s.on("end",()=>{if(a.trim().length>0){let l=a.split(` +`);this.processStreamLines(l,o,t);}this.finalizeStreamResult(o,r,e,t);}),s.on("error",l=>{this.logger.error(`Stream error: ${l}`),this.invokeOnErrorCallback(l,t),i(l);});})}handleBrowserStreaming(e,t){return this.logger.debug("Processing browser stream"),new Promise(async(r,i)=>{try{return e.data&&typeof e.data.getReader=="function"?this.handleBrowserReadableStream(e.data,r,i,e,t):typeof e.data=="string"?this.handleBrowserStringResponse(e.data,r,e,t):typeof e.data=="object"&&e.data!==null?(this.logger.debug("No stream found, but data object is available"),this.invokeOnCompleteCallback(e.data,t),r(e.data)):(this.logger.error("No usable data found in response"),i(new Error("No usable data found in response")))}catch(s){this.logger.error(`Error processing streaming response: ${s}`),this.invokeOnErrorCallback(s,t),i(s);}})}async handleBrowserReadableStream(e,t,r,i,s){this.logger.debug("Found ReadableStream in response.data");let o=e.getReader(),a=[],l="";try{for(;;){let{done:g,value:S}=await o.read();if(g){if(this.logger.debug("Stream reading complete"),l.trim()){let b=l.split(` +`);this.processStreamLines(b,a,s);}break}let f=new TextDecoder().decode(S);this.logger.debug(`Received chunk: ${f.length} bytes`),l+=f;let p=l.split(` +`);l=p.pop()||"",this.processStreamLines(p,a,s);}this.finalizeStreamResult(a,t,i,s);}catch(g){this.logger.error(`Stream error: ${g}`),this.invokeOnErrorCallback(g,s),r(g);}}handleBrowserStringResponse(e,t,r,i){this.logger.debug("Processing text response as stream data");let s=[],o=e.split(` +`);if(this.processStreamLines(o,s,i),s.length>0){let a=this.combineStreamingChunks(s);this.invokeOnCompleteCallback(a,i),t(a);}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(r.data,i),t(r.data);}processStreamLines(e,t,r){for(let i of e)if(i.trim()&&i!=="data: [DONE]"){let s=this.processStreamingLine(i);s!==null&&(this.invokeOnChunkCallback(s,r),t.push(s));}}finalizeStreamResult(e,t,r,i){if(e.length>0){let s=this.combineStreamingChunks(e);this.logger.debug("Stream processing complete"),this.invokeOnCompleteCallback(s,i),t(s);}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(r.data,i),t(r.data);}combineStreamingChunks(e){if(e.length===0)return {};if(e.length===1)return e[0];let t=this.getMessageChunks(e);if(t.length>0)return this.combineMessageChunks(e,t);let r=e[e.length-1];if(!this.isCompleteSearchResponse(r))throw new Error("Last chunk is not a complete search response");return r}getMessageChunks(e){return e.filter(this.isChunkMessage)}isChunkMessage(e){return typeof e=="object"&&e!==null&&"message"in e&&"conversation_id"in e}combineMessageChunks(e,t){this.logger.debug(`Found ${t.length} message chunks to combine`);let r=e[e.length-1];if(this.isCompleteSearchResponse(r))return r;let i=e.find(this.isCompleteSearchResponse);if(!i)throw new Error("No metadata chunk found");return i}isCompleteSearchResponse(e){return typeof e=="object"&&e!==null&&Object.keys(e).length>0?"results"in e||"found"in e||"hits"in e||"page"in e||"search_time_ms"in e:false}getNextNode(e=0){if(this.nearestNode!=null){if(this.logger.debug(`Request #${e}: Nodes Health: Node ${this.nearestNode.index} is ${this.nearestNode.isHealthy===true?"Healthy":"Unhealthy"}`),this.nearestNode.isHealthy===true||this.nodeDueForHealthcheck(this.nearestNode,e))return this.logger.debug(`Request #${e}: Updated current node to Node ${this.nearestNode.index}`),this.nearestNode;this.logger.debug(`Request #${e}: Falling back to individual nodes`);}this.logger.debug(`Request #${e}: Nodes Health: ${this.nodes.map(r=>`Node ${r.index} is ${r.isHealthy===true?"Healthy":"Unhealthy"}`).join(" || ")}`);let t=this.nodes[0];for(let r=0;r<=this.nodes.length;r++)if(this.currentNodeIndex=(this.currentNodeIndex+1)%this.nodes.length,t=this.nodes[this.currentNodeIndex],t.isHealthy===true||this.nodeDueForHealthcheck(t,e))return this.logger.debug(`Request #${e}: Updated current node to Node ${t.index}`),t;return this.logger.debug(`Request #${e}: No healthy nodes were found. Returning the next node, Node ${t.index}`),t}nodeDueForHealthcheck(e,t=0){let r=Date.now()-e.lastAccessTimestamp>this.healthcheckIntervalSeconds*1e3;return r&&this.logger.debug(`Request #${t}: Node ${e.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`),r}initializeMetadataForNodes(){this.nearestNode!=null&&(this.nearestNode.index="nearestNode",this.setNodeHealthcheck(this.nearestNode,Ae)),this.nodes.forEach((e,t)=>{e.index=t,this.setNodeHealthcheck(e,Ae);});}setNodeHealthcheck(e,t){e.isHealthy=t,e.lastAccessTimestamp=Date.now();}uriFor(e,t){return t.url!=null?`${t.url}${e}`:`${t.protocol}://${t.host}:${t.port}${t.path}${e}`}defaultHeaders(){let e={};return this.sendApiKeyAsQueryParam||(e[rt]=this.apiKey),e["Content-Type"]="application/json",e}async timer(e){return new Promise(t=>setTimeout(t,e*1e3))}customErrorForResponse(e,t,r){let i=`Request failed with HTTP code ${e.status}`;typeof t=="string"&&t.trim()!==""&&(i+=` | Server said: ${t}`);let s=new m(i,r,e.status);return e.status===400?s=new y(i,r,e.status):e.status===401?s=new I(i,r,e.status):e.status===404?s=new P(i,r,e.status):e.status===409?s=new O(i,r,e.status):e.status===422?s=new k(i,r,e.status):e.status>=500&&e.status<=599?s=new N(i,r,e.status):s=new E(i,r,e.status),s}invokeOnChunkCallback(e,t){if(t?.onChunk)try{t.onChunk(e);}catch(r){this.logger.warn(`Error in onChunk callback: ${r}`);}}invokeOnCompleteCallback(e,t){if(t?.onComplete)try{t.onComplete(e);}catch(r){this.logger.warn(`Error in onComplete callback: ${r}`);}}invokeOnErrorCallback(e,t){if(t?.onError){let r=Ue(e);try{t.onError(r);}catch(i){this.logger.warn(`Error in onError callback: ${i}`);}}}};var it=2*60,st=100,M=class{constructor(){this.responseCache=new Map;this.responsePromiseCache=new Map;}clearCache(){this.responseCache=new Map,this.responsePromiseCache=new Map;}async perform(e,t,r,i){let{cacheResponseForSeconds:s=it,maxSize:o=st}=i,a=s<=0||o<=0,{path:l,queryParams:g,body:S,headers:f,streamConfig:p,abortSignal:b,responseType:Y,isStreamingRequest:D}=r;if(a)return this.executeRequest(e,t,l,g,S,f,{abortSignal:b,responseType:Y,streamConfig:p,isStreamingRequest:D});let h=JSON.stringify(r),v=this.responseCache.get(h),c=Date.now();if(v){if(c-v.requestTimestampo){let w=this.responseCache.keys().next().value;w&&this.responseCache.delete(w);}if(this.responsePromiseCache.size>o){let w=this.responsePromiseCache.keys().next().value;w&&this.responsePromiseCache.delete(w);}return T}executeRequest(e,t,r,i={},s,o,a){let l=e[t];switch(t){case "get":return l.call(e,r,i,{abortSignal:a?.abortSignal,responseType:a?.responseType,streamConfig:a?.streamConfig,isStreamingRequest:a?.isStreamingRequest});case "delete":return l.call(e,r,i);case "post":return l.call(e,r,s,i,o||{},{abortSignal:a?.abortSignal,responseType:a?.responseType,streamConfig:a?.streamConfig,isStreamingRequest:a?.isStreamingRequest});case "put":case "patch":return l.call(e,r,s,i);default:throw new Error(`Unsupported method: ${String(t)}`)}}};var ot="/multi_search",H=class{constructor(e,t,r=false){this.apiCall=e;this.configuration=t;this.useTextContentType=r;this.requestWithCache=new M;}clearCache(){this.requestWithCache.clearCache();}async perform(e,t,{cacheSearchResultsForSeconds:r=this.configuration.cacheSearchResultsForSeconds}={}){let i=t?{...t}:{};this.configuration.useServerSideSearchCache===true&&(i.use_cache=true);let s={union:e.union,searches:e.searches.map(C)},{streamConfig:o,...a}=i,l=C(a);return this.requestWithCache.perform(this.apiCall,"post",{path:ot,body:s,queryParams:l,headers:this.useTextContentType?{"content-type":"text/plain"}:{},streamConfig:o,isStreamingRequest:this.isStreamingRequest(i)},{cacheResponseForSeconds:r})}isStreamingRequest(e){return e.streamConfig!==void 0}};var De="/collections",u=class{constructor(e){this.apiCall=e;}async create(e,t){return this.apiCall.post(De,e,t)}async retrieve(e={}){return this.apiCall.get(De,e)}static get RESOURCEPATH(){return De}};var He="/documents",G=class{constructor(e,t,r){this.collectionName=e;this.apiCall=t;this.configuration=r;this.requestWithCache=new M;}clearCache(){this.requestWithCache.clearCache();}async search(e,{cacheSearchResultsForSeconds:t=this.configuration.cacheSearchResultsForSeconds,abortSignal:r=null}={}){let i={};this.configuration.useServerSideSearchCache===true&&(i.use_cache=true);let{streamConfig:s,...o}=C(e),a={...i,...o},l=a.conversation_stream===true;return this.requestWithCache.perform(this.apiCall,"get",{path:this.endpointPath("search"),queryParams:a,streamConfig:s,abortSignal:r,isStreamingRequest:l},{cacheResponseForSeconds:t})}endpointPath(e){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${He}${e===void 0?"":"/"+e}`}static get RESOURCEPATH(){return He}};var ye=class{constructor(e,t,r){this.name=e;this.apiCall=t;this.configuration=r;this._documents=new G(this.name,this.apiCall,this.configuration);}documents(){return this._documents}};var Ce=class{constructor(e){e.sendApiKeyAsQueryParam=e.sendApiKeyAsQueryParam??true,e.sendApiKeyAsQueryParam===true&&(e.apiKey||"").length>2e3&&(console.warn("[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter."),e.sendApiKeyAsQueryParam=false),this.configuration=new U(e),this.apiCall=new q(this.configuration),this.multiSearch=new H(this.apiCall,this.configuration,true),this.individualCollections={};}clearCache(){this.multiSearch.clearCache(),Object.entries(this.individualCollections).forEach(([e,t])=>{t.documents().clearCache();});}collections(e){if(e)return this.individualCollections[e]===void 0&&(this.individualCollections[e]=new ye(e,this.apiCall,this.configuration)),this.individualCollections[e];throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object.")}};var $e=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,$=class extends G{constructor(e,t,r){super(e,t,r);}async create(e,t={}){if(!e)throw new Error("No document provided");return this.apiCall.post(this.endpointPath(),e,t)}async upsert(e,t={}){if(!e)throw new Error("No document provided");return this.apiCall.post(this.endpointPath(),e,Object.assign({},t,{action:"upsert"}))}async update(e,t={}){if(!e)throw new Error("No document provided");return t.filter_by!=null?this.apiCall.patch(this.endpointPath(),e,Object.assign({},t)):this.apiCall.post(this.endpointPath(),e,Object.assign({},t,{action:"update"}))}async delete(e={}){return this.apiCall.delete(this.endpointPath(),e)}async createMany(e,t={}){return this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"),this.import(e,t)}async import(e,t={}){let r;if(Array.isArray(e)){if(e.length===0)throw new y("No documents provided");try{r=e.map(s=>JSON.stringify(s)).join(` +`);}catch(s){throw s instanceof RangeError&&s.message.includes("Too many properties to enumerate")?new Error(`${s} + It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object + + Please try reducing the number of keys in your document, or using CURL to import your data. + `):new Error(s)}}else if(r=e,at(r))throw new y("No documents provided");let i=await this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:t,bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:true,enableKeepAlive:!!$e});if(Array.isArray(e)){let s=i.split(` +`).map(a=>JSON.parse(a)),o=s.filter(a=>a.success===false);if(o.length>0)throw new _(`${s.length-o.length} documents imported successfully, ${o.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`,s,{documentsInJSONLFormat:r,options:t,failedItems:o,successCount:s.length-o.length});return s}else return i}async importStream(e,t={}){let i=(await this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:t,bodyParameters:e,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:true,enableKeepAlive:!!$e})).split(` +`).map(o=>JSON.parse(o)),s=i.filter(o=>o.success===false);if(s.length>0)throw new _(`${i.length-s.length} documents imported successfully, ${s.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`,i,{documentsInJSONLFormat:e,options:t,failedItems:s,successCount:i.length-s.length});return i}async export(e={}){return this.apiCall.get(this.endpointPath("export"),e)}async exportStream(e={}){return this.apiCall.get(this.endpointPath("export"),e,{responseType:"stream"})}};function at(n){return n==null||n===""||n.length===0}var ct="/overrides",W=class n{constructor(e,t){this.collectionName=e;this.apiCall=t;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${u.RESOURCEPATH}/${this.collectionName}${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return ct}};var X=class{constructor(e,t,r){this.collectionName=e;this.overrideId=t;this.apiCall=r;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${W.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`}};var lt="/synonyms",K=class n{constructor(e,t){this.collectionName=e;this.apiCall=t;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return lt}};var Z=class{constructor(e,t,r){this.collectionName=e;this.synonymId=t;this.apiCall=r;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${K.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`}};var ve=class{constructor(e,t,r){this.collectionName=e;this.documentId=t;this.apiCall=r;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(e){return this.apiCall.delete(this.endpointPath(),e)}async update(e,t={}){return this.apiCall.patch(this.endpointPath(),e,t)}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${$.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`}};var ee=class{constructor(e,t,r){this.name=e;this.apiCall=t;this.configuration=r;this.individualDocuments={};this.individualOverrides={};this.individualSynonyms={};this.name=e,this.apiCall=t,this.configuration=r,this._documents=new $(this.name,this.apiCall,this.configuration),this._overrides=new W(this.name,this.apiCall),this._synonyms=new K(this.name,this.apiCall);}async retrieve(){return this.apiCall.get(this.endpointPath())}async update(e){return this.apiCall.patch(this.endpointPath(),e)}async delete(e={}){return this.apiCall.delete(this.endpointPath(),e)}async exists(){try{return await this.retrieve(),!0}catch(e){if(e instanceof P)return false;throw e}}documents(e){return e?(this.individualDocuments[e]===void 0&&(this.individualDocuments[e]=new ve(this.name,e,this.apiCall)),this.individualDocuments[e]):this._documents}overrides(e){return e===void 0?this._overrides:(this.individualOverrides[e]===void 0&&(this.individualOverrides[e]=new X(this.name,e,this.apiCall)),this.individualOverrides[e])}synonyms(e){return e===void 0?this._synonyms:(this.individualSynonyms[e]===void 0&&(this.individualSynonyms[e]=new Z(this.name,e,this.apiCall)),this.individualSynonyms[e])}endpointPath(){return `${u.RESOURCEPATH}/${encodeURIComponent(this.name)}`}};var We="/aliases",j=class n{constructor(e){this.apiCall=e;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(We)}endpointPath(e){return `${n.RESOURCEPATH}/${encodeURIComponent(e)}`}static get RESOURCEPATH(){return We}};var te=class{constructor(e,t){this.name=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${j.RESOURCEPATH}/${encodeURIComponent(this.name)}`}};var ze=be(je());var Fe="/keys",F=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async create(e){return this.apiCall.post(n.RESOURCEPATH,e)}async retrieve(){return this.apiCall.get(Fe)}generateScopedSearchKey(e,t){let r=C(t),i=JSON.stringify(r),s=Buffer.from((0, ze.createHmac)("sha256",e).update(i).digest("base64")),o=e.substr(0,4),a=`${s}${o}${i}`;return Buffer.from(a).toString("base64")}static get RESOURCEPATH(){return Fe}};var re=class{constructor(e,t){this.id=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${F.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var mt="/debug",ne=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(mt)}};var pt="/metrics.json",ie=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(pt)}};var ut="/stats.json",se=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(ut)}};var ht="/health",oe=class{constructor(e){this.apiCall=e;}async retrieve(){return this.apiCall.get(ht)}};var dt="/operations",ae=class{constructor(e){this.apiCall=e;}async perform(e,t={}){return this.apiCall.post(`${dt}/${e}`,{},t)}};var gt="/presets",z=class n{constructor(e){this.apiCall=e;}async upsert(e,t){if(typeof t.value=="object"&&"searches"in t.value){let i=t.value.searches.map(s=>C(s));return this.apiCall.put(this.endpointPath(e),{value:{searches:i}})}let r=C(t.value);return this.apiCall.put(this.endpointPath(e),{value:r})}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return gt}};var ce=class{constructor(e,t){this.presetId=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${z.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`}};var ft="/analytics/rules",L=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return ft}};var le=class{constructor(e,t){this.name=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${L.RESOURCEPATH}/${encodeURIComponent(this.name)}`}};var St="/analytics/events",me=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async create(e){return this.apiCall.post(this.endpointPath(),e)}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return St}};var yt="/analytics",pe=class{constructor(e){this.apiCall=e;this.individualAnalyticsRules={};this.apiCall=e,this._analyticsRules=new L(this.apiCall),this._analyticsEvents=new me(this.apiCall);}rules(e){return e===void 0?this._analyticsRules:(this.individualAnalyticsRules[e]===void 0&&(this.individualAnalyticsRules[e]=new le(e,this.apiCall)),this.individualAnalyticsRules[e])}events(){return this._analyticsEvents}static get RESOURCEPATH(){return yt}};var Ct="/stopwords",B=class n{constructor(e){this.apiCall=e;}async upsert(e,t){return this.apiCall.put(this.endpointPath(e),t)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return Ct}};var ue=class{constructor(e,t){this.stopwordId=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${B.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`}};var vt="/conversations/models",J=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async create(e){return this.apiCall.post(this.endpointPath(),e)}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return `${n.RESOURCEPATH}${e===void 0?"":"/"+encodeURIComponent(e)}`}static get RESOURCEPATH(){return vt}};var he=class{constructor(e,t){this.id=e;this.apiCall=t;}async update(e){return this.apiCall.put(this.endpointPath(),e)}async retrieve(){return this.apiCall.get(this.endpointPath())}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${J.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var Le="/conversations",Q=class{constructor(e){this.apiCall=e;this.individualConversationModels={};this.apiCall=e,this._conversationsModels=new J(this.apiCall);}async retrieve(){return this.apiCall.get(Le)}models(e){return e===void 0?this._conversationsModels:(this.individualConversationModels[e]===void 0&&(this.individualConversationModels[e]=new he(e,this.apiCall)),this.individualConversationModels[e])}static get RESOURCEPATH(){return Le}};var de=class{constructor(e,t){this.id=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}async update(e){return this.apiCall.put(this.endpointPath(),e)}async delete(){return this.apiCall.delete(this.endpointPath())}endpointPath(){return `${Q.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var xt="/stemming/dictionaries",V=class n{constructor(e){this.apiCall=e;this.apiCall=e;}async upsert(e,t){let r=Array.isArray(t)?t.map(s=>JSON.stringify(s)).join(` +`):t,i=await this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:{id:e},bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:true});return Array.isArray(t)?i.split(` +`).map(s=>JSON.parse(s)):i}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(e){return e===void 0?`${n.RESOURCEPATH}`:`${n.RESOURCEPATH}/${encodeURIComponent(e)}`}static get RESOURCEPATH(){return xt}};var ge=class{constructor(e,t){this.id=e;this.apiCall=t;}async retrieve(){return this.apiCall.get(this.endpointPath())}endpointPath(){return `${V.RESOURCEPATH}/${encodeURIComponent(this.id)}`}};var Tt="/stemming",fe=class{constructor(e){this.apiCall=e;this.individualStemmingDictionaries={};this.apiCall=e,this._stemmingDictionaries=new V(this.apiCall);}dictionaries(e){return e===void 0?this._stemmingDictionaries:(this.individualStemmingDictionaries[e]===void 0&&(this.individualStemmingDictionaries[e]=new ge(e,this.apiCall)),this.individualStemmingDictionaries[e])}static get RESOURCEPATH(){return Tt}};var xe=class{constructor(e){e.sendApiKeyAsQueryParam=e.sendApiKeyAsQueryParam??false,this.configuration=new U(e),this.apiCall=new q(this.configuration),this.debug=new ne(this.apiCall),this.metrics=new ie(this.apiCall),this.stats=new se(this.apiCall),this.health=new oe(this.apiCall),this.operations=new ae(this.apiCall),this.multiSearch=new H(this.apiCall,this.configuration),this._collections=new u(this.apiCall),this.individualCollections={},this._aliases=new j(this.apiCall),this.individualAliases={},this._keys=new F(this.apiCall),this.individualKeys={},this._presets=new z(this.apiCall),this.individualPresets={},this._stopwords=new B(this.apiCall),this.individualStopwords={},this.analytics=new pe(this.apiCall),this.stemming=new fe(this.apiCall),this._conversations=new Q(this.apiCall),this.individualConversations={};}collections(e){return e===void 0?this._collections:(this.individualCollections[e]===void 0&&(this.individualCollections[e]=new ee(e,this.apiCall,this.configuration)),this.individualCollections[e])}aliases(e){return e===void 0?this._aliases:(this.individualAliases[e]===void 0&&(this.individualAliases[e]=new te(e,this.apiCall)),this.individualAliases[e])}keys(e){return e===void 0?this._keys:(this.individualKeys[e]===void 0&&(this.individualKeys[e]=new re(e,this.apiCall)),this.individualKeys[e])}presets(e){return e===void 0?this._presets:(this.individualPresets[e]===void 0&&(this.individualPresets[e]=new ce(e,this.apiCall)),this.individualPresets[e])}stopwords(e){return e===void 0?this._stopwords:(this.individualStopwords[e]===void 0&&(this.individualStopwords[e]=new ue(e,this.apiCall)),this.individualStopwords[e])}conversations(e){return e===void 0?this._conversations:(this.individualConversations[e]===void 0&&(this.individualConversations[e]=new de(e,this.apiCall)),this.individualConversations[e])}};export{xe as Client,we as Errors,Ce as SearchClient};//# sourceMappingURL=index.min.mjs.map +//# sourceMappingURL=index.min.mjs.map \ No newline at end of file diff --git a/dist/index.min.mjs.map b/dist/index.min.mjs.map new file mode 100644 index 00000000..52d6a85f --- /dev/null +++ b/dist/index.min.mjs.map @@ -0,0 +1 @@ +{"version":3,"sources":["node-modules-polyfills-empty:http","node-modules-polyfills-empty:https","node-modules-polyfills-empty:crypto","../src/Typesense/Errors/index.ts","../src/Typesense/Errors/TypesenseError.ts","../src/Typesense/Errors/HTTPError.ts","../src/Typesense/Errors/MissingConfigurationError.ts","../src/Typesense/Errors/ObjectAlreadyExists.ts","../src/Typesense/Errors/ObjectNotFound.ts","../src/Typesense/Errors/ObjectUnprocessable.ts","../src/Typesense/Errors/RequestMalformed.ts","../src/Typesense/Errors/RequestUnauthorized.ts","../src/Typesense/Errors/ServerError.ts","../src/Typesense/Errors/ImportError.ts","../src/Typesense/Configuration.ts","../src/Typesense/ApiCall.ts","../src/Typesense/Types.ts","../src/Typesense/Utils.ts","../src/Typesense/RequestWithCache.ts","../src/Typesense/MultiSearch.ts","../src/Typesense/Collections.ts","../src/Typesense/SearchOnlyDocuments.ts","../src/Typesense/SearchOnlyCollection.ts","../src/Typesense/SearchClient.ts","../src/Typesense/Documents.ts","../src/Typesense/Overrides.ts","../src/Typesense/Override.ts","../src/Typesense/Synonyms.ts","../src/Typesense/Synonym.ts","../src/Typesense/Document.ts","../src/Typesense/Collection.ts","../src/Typesense/Aliases.ts","../src/Typesense/Alias.ts","../src/Typesense/Keys.ts","../src/Typesense/Key.ts","../src/Typesense/Debug.ts","../src/Typesense/Metrics.ts","../src/Typesense/Stats.ts","../src/Typesense/Health.ts","../src/Typesense/Operations.ts","../src/Typesense/Presets.ts","../src/Typesense/Preset.ts","../src/Typesense/AnalyticsRules.ts","../src/Typesense/AnalyticsRule.ts","../src/Typesense/AnalyticsEvents.ts","../src/Typesense/Analytics.ts","../src/Typesense/Stopwords.ts","../src/Typesense/Stopword.ts","../src/Typesense/ConversationModels.ts","../src/Typesense/ConversationModel.ts","../src/Typesense/Conversations.ts","../src/Typesense/Conversation.ts","../src/Typesense/StemmingDictionaries.ts","../src/Typesense/StemmingDictionary.ts","../src/Typesense/Stemming.ts","../src/Typesense/Client.ts"],"names":["require_http","__commonJSMin","exports","module","require_https","require_crypto","Errors_exports","__export","HTTPError","ImportError","MissingConfigurationError","ObjectAlreadyExists","ObjectNotFound","ObjectUnprocessable","RequestMalformed","RequestUnauthorized","ServerError","TypesenseError","message","httpBody","httpStatus","importResults","payload","Configuration","options","node","logger","key","array","i","j","import_http","import_https","arrayableParams","hasNoArrayValues","params","isNonArrayValue","normalizeArrayableParams","result","value","isErrorWithMessage","error","toErrorWithMessage","couldBeError","APIKEYHEADERNAME","HEALTHY","UNHEALTHY","isNodeJSEnvironment","ApiCall","configuration","endpoint","queryParameters","abortSignal","responseType","streamConfig","isStreamingRequest","bodyParameters","additionalHeaders","axios","requestType","skipConnectionTimeout","enableKeepAlive","requestNumber","lastException","wasAborted","numTries","abortListener","requestOptions","status","data","headers","transformedData","HTTPAgent","HTTPSAgent","source","response","line","jsonData","dataContent","resolve","reject","stream","allChunks","buffer","chunk","lines","reader","done","finalResult","processed","chunks","messagesChunks","lastChunk","metadataChunk","candidateNode","isDueForHealthcheck","isHealthy","defaultHeaders","seconds","messageFromServer","errorMessage","errorObj","callbackError","defaultCacheResponseForSeconds","defaultMaxSize","RequestWithCache","requestContext","methodName","requestParams","cacheOptions","cacheResponseForSeconds","maxSize","isCacheDisabled","path","queryParams","body","requestParamsJSON","cacheEntry","now","cachePromiseEntry","responsePromise","oldestEntry","context","method","RESOURCEPATH","MultiSearch","apiCall","useTextContentType","searchRequests","commonParams","cacheSearchResultsForSeconds","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","Collections","schema","SearchOnlyDocuments","collectionName","searchParameters","additionalQueryParams","rest","operation","SearchOnlyCollection","name","SearchClient","_","collection","Documents","document","query","documents","documentsInJSONLFormat","isEmptyString","resultsInJSONLFormat","resultsInJSONFormat","r","failedItems","readableStream","str","Overrides","_Overrides","overrideId","Override","Synonyms","_Synonyms","synonymId","Synonym","Document","documentId","partialDocument","Collection","Aliases","_Aliases","mapping","aliasName","Alias","import_crypto","Keys","_Keys","searchKey","parameters","normalizedParams","paramsJSON","digest","keyPrefix","rawScopedKey","Key","id","Debug","Metrics","Health","Operations","operationName","Presets","_Presets","presetId","search","Preset","AnalyticsRules","_AnalyticsRules","AnalyticsRule","AnalyticsEvents","_AnalyticsEvents","Analytics","Stopwords","_Stopwords","stopwordId","Stopword","ConversationModels","_ConversationModels","ConversationModel","Conversations","Conversation","StemmingDictionaries","_StemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","StemmingDictionary","Stemming","Client"],"mappings":"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","file":"index.min.mjs","sourcesContent":["module.exports = {}","module.exports = {}","module.exports = {}","import HTTPError from \"./HTTPError\";\nimport MissingConfigurationError from \"./MissingConfigurationError\";\nimport ObjectAlreadyExists from \"./ObjectAlreadyExists\";\nimport ObjectNotFound from \"./ObjectNotFound\";\nimport ObjectUnprocessable from \"./ObjectUnprocessable\";\nimport RequestMalformed from \"./RequestMalformed\";\nimport RequestUnauthorized from \"./RequestUnauthorized\";\nimport ServerError from \"./ServerError\";\nimport ImportError from \"./ImportError\";\nimport TypesenseError from \"./TypesenseError\";\n\nexport {\n HTTPError,\n MissingConfigurationError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n TypesenseError,\n ImportError,\n};\n","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import logger from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: logger.LogLevelDesc;\n logger?: logger.Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: logger.Logger;\n readonly logLevel: logger.LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n private readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(document: T, options: DocumentWriteParameters): Promise;\n upsert(document: T, options: DocumentWriteParameters): Promise;\n update(document: T, options: DocumentWriteParameters): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: SearchResponseRequestParams[];\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/ban-types\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions;\n const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport {\n DocumentSchema,\n ExtractBaseTypes,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n }: { cacheSearchResultsForSeconds?: number } = {},\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n { cacheResponseForSeconds: cacheSearchResultsForSeconds },\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\nexport default class SearchClient {\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n collections(\n collectionName: string,\n ):\n | SearchOnlyCollection\n | SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n}\n\ninterface ImportResponseSuccess {\n success: true;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document: DocumentSchema;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n };\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n}\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n async create(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n async upsert(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async update(document: T, options: DocumentWriteParameters): Promise;\n async update(\n document: T,\n options: DocumentWriteParameters | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), query);\n }\n\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import a set of documents in a batch.\n * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects.\n * @param options\n * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results.\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise {\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise {\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\nexport default class Synonyms {\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\nexport default class Synonym {\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends CollectionCreateSchema {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n documents(): Documents;\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n overrides(): Overrides;\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n synonyms(): Synonyms;\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n actions: string[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n | \"schema_changes\"\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: Array<{\n type: string;\n weight?: number;\n name: string;\n }>;\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRules;\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords, { StopwordCreateSchema } from \"./Stopwords\";\n\nexport interface StopwordSchema extends StopwordCreateSchema {\n id: string;\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n models(): ConversationModels;\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n dictionaries(): StemmingDictionaries;\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\n\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n debug: Debug;\n metrics: Metrics;\n stats: Stats;\n health: Health;\n operations: Operations;\n multiSearch: MultiSearch;\n analytics: Analytics;\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n }\n\n collections(): Collections;\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n aliases(): Aliases;\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n keys(): Keys;\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n presets(): Presets;\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n stopwords(): Stopwords;\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n conversations(): Conversations;\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n}\n"]} \ No newline at end of file diff --git a/dist/index.mjs b/dist/index.mjs new file mode 100644 index 00000000..9cade7f6 --- /dev/null +++ b/dist/index.mjs @@ -0,0 +1,2212 @@ +import logger from 'loglevel'; +import axios from 'axios'; + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +// node-modules-polyfills-empty:http +var require_http = __commonJS({ + "node-modules-polyfills-empty:http"(exports, module) { + module.exports = {}; + } +}); + +// node-modules-polyfills-empty:https +var require_https = __commonJS({ + "node-modules-polyfills-empty:https"(exports, module) { + module.exports = {}; + } +}); + +// node-modules-polyfills-empty:crypto +var require_crypto = __commonJS({ + "node-modules-polyfills-empty:crypto"(exports, module) { + module.exports = {}; + } +}); + +// src/Typesense/Errors/index.ts +var Errors_exports = {}; +__export(Errors_exports, { + HTTPError: () => HTTPError, + ImportError: () => ImportError, + MissingConfigurationError: () => MissingConfigurationError, + ObjectAlreadyExists: () => ObjectAlreadyExists, + ObjectNotFound: () => ObjectNotFound, + ObjectUnprocessable: () => ObjectUnprocessable, + RequestMalformed: () => RequestMalformed, + RequestUnauthorized: () => RequestUnauthorized, + ServerError: () => ServerError, + TypesenseError: () => TypesenseError +}); + +// src/Typesense/Errors/TypesenseError.ts +var TypesenseError = class extends Error { + // Source: https://stackoverflow.com/a/58417721/123545 + constructor(message, httpBody, httpStatus) { + super(message); + this.name = new.target.name; + this.httpBody = httpBody; + this.httpStatus = httpStatus; + Object.setPrototypeOf(this, new.target.prototype); + } +}; + +// src/Typesense/Errors/HTTPError.ts +var HTTPError = class extends TypesenseError { +}; + +// src/Typesense/Errors/MissingConfigurationError.ts +var MissingConfigurationError = class extends TypesenseError { +}; + +// src/Typesense/Errors/ObjectAlreadyExists.ts +var ObjectAlreadyExists = class extends TypesenseError { +}; + +// src/Typesense/Errors/ObjectNotFound.ts +var ObjectNotFound = class extends TypesenseError { +}; + +// src/Typesense/Errors/ObjectUnprocessable.ts +var ObjectUnprocessable = class extends TypesenseError { +}; + +// src/Typesense/Errors/RequestMalformed.ts +var RequestMalformed = class extends TypesenseError { +}; + +// src/Typesense/Errors/RequestUnauthorized.ts +var RequestUnauthorized = class extends TypesenseError { +}; + +// src/Typesense/Errors/ServerError.ts +var ServerError = class extends TypesenseError { +}; + +// src/Typesense/Errors/ImportError.ts +var ImportError = class extends TypesenseError { + constructor(message, importResults, payload) { + super(message); + this.importResults = importResults; + this.payload = payload; + } +}; + +// src/Typesense/Configuration.ts +var Configuration = class { + constructor(options) { + this.nodes = options.nodes || []; + this.nodes = this.nodes.map((node) => this.setDefaultPathInNode(node)).map((node) => this.setDefaultPortInNode(node)).map((node) => ({ ...node })); + if (options.randomizeNodes == null) { + options.randomizeNodes = true; + } + if (options.randomizeNodes === true) { + this.shuffleArray(this.nodes); + } + this.nearestNode = options.nearestNode; + this.nearestNode = this.setDefaultPathInNode(this.nearestNode); + this.nearestNode = this.setDefaultPortInNode(this.nearestNode); + this.connectionTimeoutSeconds = options.connectionTimeoutSeconds || options.timeoutSeconds || 5; + this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60; + this.numRetries = (options.numRetries !== void 0 && options.numRetries >= 0 ? options.numRetries : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3; + this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1; + this.apiKey = options.apiKey; + this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; + this.cacheSearchResultsForSeconds = options.cacheSearchResultsForSeconds || 0; + this.useServerSideSearchCache = options.useServerSideSearchCache || false; + this.axiosAdapter = options.axiosAdapter; + this.logger = options.logger || logger; + this.logLevel = options.logLevel || "warn"; + this.logger.setLevel(this.logLevel); + this.additionalHeaders = options.additionalHeaders; + this.httpAgent = options.httpAgent; + this.httpsAgent = options.httpsAgent; + this.paramsSerializer = options.paramsSerializer; + this.showDeprecationWarnings(options); + this.validate(); + } + validate() { + if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) { + throw new MissingConfigurationError( + "Ensure that nodes[].protocol, nodes[].host and nodes[].port are set" + ); + } + if (this.nearestNode != null && this.isNodeMissingAnyParameters(this.nearestNode)) { + throw new MissingConfigurationError( + "Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set" + ); + } + if (this.apiKey == null) { + throw new MissingConfigurationError("Ensure that apiKey is set"); + } + return true; + } + validateNodes() { + return this.nodes.some((node) => { + return this.isNodeMissingAnyParameters(node); + }); + } + isNodeMissingAnyParameters(node) { + return !["protocol", "host", "port", "path"].every((key) => { + return node.hasOwnProperty(key); + }) && node["url"] == null; + } + setDefaultPathInNode(node) { + if (node != null && !node.hasOwnProperty("path")) { + node["path"] = ""; + } + return node; + } + setDefaultPortInNode(node) { + if (node != null && !node.hasOwnProperty("port") && node.hasOwnProperty("protocol")) { + switch (node["protocol"]) { + case "https": + node["port"] = 443; + break; + case "http": + node["port"] = 80; + break; + } + } + return node; + } + showDeprecationWarnings(options) { + if (options.timeoutSeconds) { + this.logger.warn( + "Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds" + ); + } + if (options.masterNode) { + this.logger.warn( + "Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12" + ); + } + if (options.readReplicaNodes) { + this.logger.warn( + "Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12" + ); + } + } + shuffleArray(array) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + } +}; + +// src/Typesense/ApiCall.ts +var import_http = __toESM(require_http()); +var import_https = __toESM(require_https()); + +// src/Typesense/Types.ts +var arrayableParams = { + query_by: "query_by", + query_by_weights: "query_by_weights", + facet_by: "facet_by", + group_by: "group_by", + include_fields: "include_fields", + exclude_fields: "exclude_fields", + highlight_fields: "highlight_fields", + highlight_full_fields: "highlight_full_fields", + pinned_hits: "pinned_hits", + hidden_hits: "hidden_hits", + infix: "infix", + override_tags: "override_tags", + num_typos: "num_typos", + prefix: "prefix", + sort_by: "sort_by" +}; + +// src/Typesense/Utils.ts +function hasNoArrayValues(params) { + return Object.keys(arrayableParams).filter((key) => params[key] !== void 0).every((key) => isNonArrayValue(params[key])); +} +function normalizeArrayableParams(params) { + const result = { ...params }; + const transformedValues = Object.keys(arrayableParams).filter((key) => Array.isArray(result[key])).map((key) => { + result[key] = result[key].join(","); + return key; + }); + if (!transformedValues.length && hasNoArrayValues(result)) { + return result; + } + if (!hasNoArrayValues(result)) { + throw new Error( + `Failed to normalize arrayable params: ${JSON.stringify(result)}` + ); + } + return result; +} +function isNonArrayValue(value) { + return !Array.isArray(value); +} +function isErrorWithMessage(error) { + return typeof error === "object" && error !== null && "message" in error && typeof error.message === "string"; +} +function toErrorWithMessage(couldBeError) { + if (isErrorWithMessage(couldBeError)) return couldBeError; + try { + if (typeof couldBeError === "string") { + return new Error(couldBeError); + } + return new Error(JSON.stringify(couldBeError)); + } catch { + return new Error(String(couldBeError)); + } +} + +// src/Typesense/ApiCall.ts +var APIKEYHEADERNAME = "X-TYPESENSE-API-KEY"; +var HEALTHY = true; +var UNHEALTHY = false; +var isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null && typeof window === "undefined"; +var ApiCall = class { + constructor(configuration) { + this.configuration = configuration; + this.apiKey = this.configuration.apiKey; + this.nodes = this.configuration.nodes == null ? this.configuration.nodes : JSON.parse(JSON.stringify(this.configuration.nodes)); + this.nearestNode = this.configuration.nearestNode == null ? this.configuration.nearestNode : JSON.parse(JSON.stringify(this.configuration.nearestNode)); + this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds; + this.healthcheckIntervalSeconds = this.configuration.healthcheckIntervalSeconds; + this.numRetriesPerRequest = this.configuration.numRetries; + this.retryIntervalSeconds = this.configuration.retryIntervalSeconds; + this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam; + this.additionalUserHeaders = this.configuration.additionalHeaders; + this.logger = this.configuration.logger; + this.initializeMetadataForNodes(); + this.currentNodeIndex = -1; + } + async get(endpoint, queryParameters = {}, { + abortSignal = null, + responseType = void 0, + streamConfig = void 0, + isStreamingRequest + } = {}) { + return this.performRequest("get", endpoint, { + queryParameters, + abortSignal, + responseType, + streamConfig, + isStreamingRequest + }); + } + async delete(endpoint, queryParameters = {}) { + return this.performRequest("delete", endpoint, { + queryParameters, + isStreamingRequest: false + }); + } + async post(endpoint, bodyParameters = {}, queryParameters = {}, additionalHeaders = {}, { + abortSignal = null, + responseType = void 0, + streamConfig = void 0, + isStreamingRequest + } = {}) { + return this.performRequest("post", endpoint, { + queryParameters, + bodyParameters, + additionalHeaders, + abortSignal, + responseType, + streamConfig, + isStreamingRequest + }); + } + async put(endpoint, bodyParameters = {}, queryParameters = {}) { + return this.performRequest("put", endpoint, { + queryParameters, + bodyParameters, + isStreamingRequest: false + }); + } + async patch(endpoint, bodyParameters = {}, queryParameters = {}) { + return this.performRequest("patch", endpoint, { + queryParameters, + bodyParameters, + isStreamingRequest: false + }); + } + getAdapter() { + if (!this.configuration.axiosAdapter) return void 0; + if (typeof this.configuration.axiosAdapter === "function") + return this.configuration.axiosAdapter; + const isCloudflareWorkers = typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers"; + return isCloudflareWorkers ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis) : axios.getAdapter(this.configuration.axiosAdapter); + } + async performRequest(requestType, endpoint, { + queryParameters = null, + bodyParameters = null, + additionalHeaders = {}, + abortSignal = null, + responseType = void 0, + skipConnectionTimeout = false, + enableKeepAlive = void 0, + streamConfig = void 0, + isStreamingRequest + }) { + this.configuration.validate(); + if (isStreamingRequest) { + this.logger.debug(`Request: Performing streaming request to ${endpoint}`); + if (!isNodeJSEnvironment && typeof fetch !== "undefined") { + this.logger.debug("Using fetch adapter for browser streaming"); + responseType = "stream"; + } + } + const requestNumber = Date.now(); + let lastException; + let wasAborted = false; + this.logger.debug( + `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}` + ); + for (let numTries = 1; numTries <= this.numRetriesPerRequest + 1; numTries++) { + const node = this.getNextNode(requestNumber); + this.logger.debug( + `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${node.index}` + ); + if (abortSignal && abortSignal.aborted) { + return Promise.reject(new Error("Request aborted by caller.")); + } + let abortListener; + try { + const requestOptions = { + method: requestType, + url: this.uriFor(endpoint, node), + headers: Object.assign( + {}, + this.defaultHeaders(), + additionalHeaders, + this.additionalUserHeaders + ), + maxContentLength: Infinity, + maxBodyLength: Infinity, + validateStatus: (status) => { + return status > 0; + }, + transformResponse: [ + (data, headers) => { + let transformedData = data; + if (headers !== void 0 && typeof data === "string" && headers["content-type"] && headers["content-type"].startsWith("application/json")) { + transformedData = JSON.parse(data); + } + return transformedData; + } + ] + }; + requestOptions.adapter = isStreamingRequest && !isNodeJSEnvironment ? "fetch" : this.getAdapter(); + if (skipConnectionTimeout !== true) { + requestOptions.timeout = this.connectionTimeoutSeconds * 1e3; + } + if (queryParameters && Object.keys(queryParameters).length !== 0) { + requestOptions.params = queryParameters; + } + if (this.sendApiKeyAsQueryParam) { + requestOptions.params = requestOptions.params || {}; + requestOptions.params["x-typesense-api-key"] = this.apiKey; + } + if (this.configuration.httpAgent) { + this.logger.debug( + `Request #${requestNumber}: Using custom httpAgent` + ); + requestOptions.httpAgent = this.configuration.httpAgent; + } else if (enableKeepAlive === true) { + if (!isNodeJSEnvironment) { + this.logger.warn( + `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive` + ); + } else { + this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`); + requestOptions.httpAgent = new import_http.Agent({ keepAlive: true }); + } + } + if (this.configuration.httpsAgent) { + this.logger.debug( + `Request #${requestNumber}: Using custom httpsAgent` + ); + requestOptions.httpsAgent = this.configuration.httpsAgent; + } else if (enableKeepAlive === true) { + if (!isNodeJSEnvironment) { + this.logger.warn( + `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive` + ); + } else { + this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`); + requestOptions.httpsAgent = new import_https.Agent({ keepAlive: true }); + } + } + if (this.configuration.paramsSerializer) { + this.logger.debug( + `Request #${requestNumber}: Using custom paramsSerializer` + ); + requestOptions.paramsSerializer = this.configuration.paramsSerializer; + } + if (bodyParameters && (typeof bodyParameters === "string" && bodyParameters.length !== 0 || typeof bodyParameters === "object" && Object.keys(bodyParameters).length !== 0)) { + requestOptions.data = bodyParameters; + } + if (abortSignal) { + const cancelToken = axios.CancelToken; + const source = cancelToken.source(); + abortListener = () => { + wasAborted = true; + source.cancel(); + }; + abortSignal.addEventListener("abort", abortListener); + requestOptions.cancelToken = source.token; + } + if (isStreamingRequest) { + requestOptions.responseType = "stream"; + if (!isNodeJSEnvironment) { + requestOptions.headers = { + ...requestOptions.headers, + Accept: "text/event-stream" + }; + } + } else if (responseType) { + requestOptions.responseType = responseType; + } + const response = await axios(requestOptions); + if (response.status >= 1 && response.status <= 499) { + this.setNodeHealthcheck(node, HEALTHY); + } + this.logger.debug( + `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.` + ); + if (response.status >= 200 && response.status < 300) { + if (isStreamingRequest) { + return this.handleStreamingResponse(response, streamConfig); + } + return Promise.resolve(response.data); + } else if (response.status < 500) { + return Promise.reject( + this.customErrorForResponse( + response, + response.data?.message, + requestOptions.data + ) + ); + } else { + throw this.customErrorForResponse( + response, + response.data?.message, + requestOptions.data + ); + } + } catch (error) { + if (!wasAborted) { + this.setNodeHealthcheck(node, UNHEALTHY); + } + lastException = error; + this.logger.warn( + `Request #${requestNumber}: Request to Node ${node.index} failed due to "${error?.code ?? ""} ${error.message}${error.response == null ? "" : " - " + JSON.stringify(error.response?.data)}"` + ); + if (wasAborted) { + return Promise.reject(new Error("Request aborted by caller.")); + } + if (isStreamingRequest) { + this.invokeOnErrorCallback(error, streamConfig); + } + if (numTries < this.numRetriesPerRequest + 1) { + this.logger.warn( + `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...` + ); + } else { + this.logger.debug( + `Request #${requestNumber}: No retries left. Raising last error` + ); + return Promise.reject(lastException); + } + await this.timer(this.retryIntervalSeconds); + } finally { + if (abortSignal && abortListener) { + abortSignal.removeEventListener("abort", abortListener); + } + } + } + this.logger.debug( + `Request #${requestNumber}: No retries left. Raising last error` + ); + return Promise.reject(lastException); + } + processStreamingLine(line) { + if (!line.trim() || line === "data: [DONE]") { + return null; + } + if (line.startsWith("data: ")) { + return this.processDataLine(line.slice(6).trim()); + } + if (line.trim().startsWith("{")) { + try { + const jsonData = JSON.parse(line.trim()); + if (jsonData && typeof jsonData === "object") { + if (!jsonData.conversation_id) { + jsonData.conversation_id = "unknown"; + } + if (!jsonData.message && jsonData.message !== "") { + jsonData.message = ""; + } + return jsonData; + } + return { + conversation_id: "unknown", + message: JSON.stringify(jsonData) + }; + } catch (e) { + return { + conversation_id: "unknown", + message: line.trim() + }; + } + } + return { + conversation_id: "unknown", + message: line.trim() + }; + } + processDataLine(dataContent) { + if (!dataContent) { + return null; + } + if (dataContent.startsWith("{")) { + try { + const jsonData = JSON.parse(dataContent); + if (jsonData && typeof jsonData === "object") { + if (!jsonData.conversation_id) { + jsonData.conversation_id = "unknown"; + } + if (!jsonData.message && jsonData.message !== "") { + jsonData.message = ""; + } + return jsonData; + } + return { + conversation_id: "unknown", + message: JSON.stringify(jsonData) + }; + } catch (e) { + return { + conversation_id: "unknown", + message: dataContent + }; + } + } + return { + conversation_id: "unknown", + message: dataContent + }; + } + async handleStreamingResponse(response, streamConfig) { + this.logger.debug( + `Handling streaming response. Environment: ${isNodeJSEnvironment ? "Node.js" : "Browser"}` + ); + if (isNodeJSEnvironment && response.data) { + return this.handleNodeStreaming(response, streamConfig); + } + if (!isNodeJSEnvironment) { + return this.handleBrowserStreaming(response, streamConfig); + } + this.logger.debug("Processing non-streaming response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + return Promise.resolve(response.data); + } + handleNodeStreaming(response, streamConfig) { + this.logger.debug("Processing Node.js stream"); + return new Promise((resolve, reject) => { + const stream = response.data; + const allChunks = []; + let buffer = ""; + stream.on("data", (chunk) => { + try { + const data = chunk.toString(); + buffer += data; + const lines = buffer.split("\n"); + buffer = lines.pop() ?? ""; + this.processStreamLines(lines, allChunks, streamConfig); + } catch (error) { + reject(error); + } + }); + stream.on("end", () => { + if (buffer.trim().length > 0) { + const lines = buffer.split("\n"); + this.processStreamLines(lines, allChunks, streamConfig); + } + this.finalizeStreamResult( + allChunks, + resolve, + response, + streamConfig + ); + }); + stream.on("error", (error) => { + this.logger.error(`Stream error: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + }); + }); + } + handleBrowserStreaming(response, streamConfig) { + this.logger.debug("Processing browser stream"); + return new Promise(async (resolve, reject) => { + try { + if (response.data && typeof response.data.getReader === "function") { + return this.handleBrowserReadableStream( + response.data, + resolve, + reject, + response, + streamConfig + ); + } + if (typeof response.data === "string") { + return this.handleBrowserStringResponse( + response.data, + resolve, + response, + streamConfig + ); + } + if (typeof response.data === "object" && response.data !== null) { + this.logger.debug("No stream found, but data object is available"); + this.invokeOnCompleteCallback(response.data, streamConfig); + return resolve(response.data); + } + this.logger.error("No usable data found in response"); + return reject(new Error("No usable data found in response")); + } catch (error) { + this.logger.error(`Error processing streaming response: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + } + }); + } + async handleBrowserReadableStream(stream, resolve, reject, response, streamConfig) { + this.logger.debug("Found ReadableStream in response.data"); + const reader = stream.getReader(); + const allChunks = []; + let buffer = ""; + try { + while (true) { + const { done, value } = await reader.read(); + if (done) { + this.logger.debug("Stream reading complete"); + if (buffer.trim()) { + const lines2 = buffer.split("\n"); + this.processStreamLines(lines2, allChunks, streamConfig); + } + break; + } + const chunk = new TextDecoder().decode(value); + this.logger.debug(`Received chunk: ${chunk.length} bytes`); + buffer += chunk; + const lines = buffer.split("\n"); + buffer = lines.pop() || ""; + this.processStreamLines(lines, allChunks, streamConfig); + } + this.finalizeStreamResult(allChunks, resolve, response, streamConfig); + } catch (error) { + this.logger.error(`Stream error: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + } + } + handleBrowserStringResponse(data, resolve, response, streamConfig) { + this.logger.debug("Processing text response as stream data"); + const allChunks = []; + const lines = data.split("\n"); + this.processStreamLines(lines, allChunks, streamConfig); + if (allChunks.length > 0) { + const finalResult = this.combineStreamingChunks(allChunks); + this.invokeOnCompleteCallback(finalResult, streamConfig); + resolve(finalResult); + } else { + this.logger.debug("No chunks processed, returning original API response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + resolve(response.data); + } + } + processStreamLines(lines, allChunks, streamConfig) { + for (const line of lines) { + if (line.trim() && line !== "data: [DONE]") { + const processed = this.processStreamingLine(line); + if (processed !== null) { + this.invokeOnChunkCallback(processed, streamConfig); + allChunks.push(processed); + } + } + } + } + finalizeStreamResult(allChunks, resolve, response, streamConfig) { + if (allChunks.length > 0) { + const finalResult = this.combineStreamingChunks(allChunks); + this.logger.debug("Stream processing complete"); + this.invokeOnCompleteCallback(finalResult, streamConfig); + resolve(finalResult); + } else { + this.logger.debug("No chunks processed, returning original API response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + resolve(response.data); + } + } + /** + * Combines multiple streaming chunks into a single coherent result + * This is critical for ensuring we return the complete data rather than just the last chunk + */ + combineStreamingChunks(chunks) { + if (chunks.length === 0) return {}; + if (chunks.length === 1) return chunks[0]; + const messagesChunks = this.getMessageChunks( + chunks + ); + if (messagesChunks.length > 0) { + return this.combineMessageChunks( + chunks, + messagesChunks + ); + } + const lastChunk = chunks[chunks.length - 1]; + if (!this.isCompleteSearchResponse(lastChunk)) { + throw new Error("Last chunk is not a complete search response"); + } + return lastChunk; + } + getMessageChunks(chunks) { + return chunks.filter(this.isChunkMessage); + } + isChunkMessage(chunk) { + return typeof chunk === "object" && chunk !== null && "message" in chunk && "conversation_id" in chunk; + } + combineMessageChunks(chunks, messagesChunks) { + this.logger.debug( + `Found ${messagesChunks.length} message chunks to combine` + ); + const lastChunk = chunks[chunks.length - 1]; + if (this.isCompleteSearchResponse(lastChunk)) { + return lastChunk; + } + const metadataChunk = chunks.find(this.isCompleteSearchResponse); + if (!metadataChunk) { + throw new Error("No metadata chunk found"); + } + return metadataChunk; + } + isCompleteSearchResponse(chunk) { + if (typeof chunk === "object" && chunk !== null && Object.keys(chunk).length > 0) { + return "results" in chunk || "found" in chunk || "hits" in chunk || "page" in chunk || "search_time_ms" in chunk; + } + return false; + } + // Attempts to find the next healthy node, looping through the list of nodes once. + // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy + // so we can try the request for good measure, in case that node has become healthy since + getNextNode(requestNumber = 0) { + if (this.nearestNode != null) { + this.logger.debug( + `Request #${requestNumber}: Nodes Health: Node ${this.nearestNode.index} is ${this.nearestNode.isHealthy === true ? "Healthy" : "Unhealthy"}` + ); + if (this.nearestNode.isHealthy === true || this.nodeDueForHealthcheck(this.nearestNode, requestNumber)) { + this.logger.debug( + `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}` + ); + return this.nearestNode; + } + this.logger.debug( + `Request #${requestNumber}: Falling back to individual nodes` + ); + } + this.logger.debug( + `Request #${requestNumber}: Nodes Health: ${this.nodes.map( + (node) => `Node ${node.index} is ${node.isHealthy === true ? "Healthy" : "Unhealthy"}` + ).join(" || ")}` + ); + let candidateNode = this.nodes[0]; + for (let i = 0; i <= this.nodes.length; i++) { + this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length; + candidateNode = this.nodes[this.currentNodeIndex]; + if (candidateNode.isHealthy === true || this.nodeDueForHealthcheck(candidateNode, requestNumber)) { + this.logger.debug( + `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}` + ); + return candidateNode; + } + } + this.logger.debug( + `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}` + ); + return candidateNode; + } + nodeDueForHealthcheck(node, requestNumber = 0) { + const isDueForHealthcheck = Date.now() - node.lastAccessTimestamp > this.healthcheckIntervalSeconds * 1e3; + if (isDueForHealthcheck) { + this.logger.debug( + `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.` + ); + } + return isDueForHealthcheck; + } + initializeMetadataForNodes() { + if (this.nearestNode != null) { + this.nearestNode.index = "nearestNode"; + this.setNodeHealthcheck(this.nearestNode, HEALTHY); + } + this.nodes.forEach((node, i) => { + node.index = i; + this.setNodeHealthcheck(node, HEALTHY); + }); + } + setNodeHealthcheck(node, isHealthy) { + node.isHealthy = isHealthy; + node.lastAccessTimestamp = Date.now(); + } + uriFor(endpoint, node) { + if (node.url != null) { + return `${node.url}${endpoint}`; + } + return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`; + } + defaultHeaders() { + const defaultHeaders = {}; + if (!this.sendApiKeyAsQueryParam) { + defaultHeaders[APIKEYHEADERNAME] = this.apiKey; + } + defaultHeaders["Content-Type"] = "application/json"; + return defaultHeaders; + } + async timer(seconds) { + return new Promise((resolve) => setTimeout(resolve, seconds * 1e3)); + } + customErrorForResponse(response, messageFromServer, httpBody) { + let errorMessage = `Request failed with HTTP code ${response.status}`; + if (typeof messageFromServer === "string" && messageFromServer.trim() !== "") { + errorMessage += ` | Server said: ${messageFromServer}`; + } + let error = new TypesenseError(errorMessage, httpBody, response.status); + if (response.status === 400) { + error = new RequestMalformed(errorMessage, httpBody, response.status); + } else if (response.status === 401) { + error = new RequestUnauthorized(errorMessage, httpBody, response.status); + } else if (response.status === 404) { + error = new ObjectNotFound(errorMessage, httpBody, response.status); + } else if (response.status === 409) { + error = new ObjectAlreadyExists(errorMessage, httpBody, response.status); + } else if (response.status === 422) { + error = new ObjectUnprocessable(errorMessage, httpBody, response.status); + } else if (response.status >= 500 && response.status <= 599) { + error = new ServerError(errorMessage, httpBody, response.status); + } else { + error = new HTTPError(errorMessage, httpBody, response.status); + } + return error; + } + invokeOnChunkCallback(data, streamConfig) { + if (streamConfig?.onChunk) { + try { + streamConfig.onChunk(data); + } catch (error) { + this.logger.warn(`Error in onChunk callback: ${error}`); + } + } + } + invokeOnCompleteCallback(data, streamConfig) { + if (streamConfig?.onComplete) { + try { + streamConfig.onComplete(data); + } catch (error) { + this.logger.warn(`Error in onComplete callback: ${error}`); + } + } + } + invokeOnErrorCallback(error, streamConfig) { + if (streamConfig?.onError) { + const errorObj = toErrorWithMessage(error); + try { + streamConfig.onError(errorObj); + } catch (callbackError) { + this.logger.warn(`Error in onError callback: ${callbackError}`); + } + } + } +}; + +// src/Typesense/RequestWithCache.ts +var defaultCacheResponseForSeconds = 2 * 60; +var defaultMaxSize = 100; +var RequestWithCache = class { + constructor() { + this.responseCache = /* @__PURE__ */ new Map(); + this.responsePromiseCache = /* @__PURE__ */ new Map(); + } + clearCache() { + this.responseCache = /* @__PURE__ */ new Map(); + this.responsePromiseCache = /* @__PURE__ */ new Map(); + } + async perform(requestContext, methodName, requestParams, cacheOptions) { + const { + cacheResponseForSeconds = defaultCacheResponseForSeconds, + maxSize = defaultMaxSize + } = cacheOptions; + const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0; + const { + path, + queryParams, + body, + headers, + streamConfig, + abortSignal, + responseType, + isStreamingRequest + } = requestParams; + if (isCacheDisabled) { + return this.executeRequest( + requestContext, + methodName, + path, + queryParams, + body, + headers, + { abortSignal, responseType, streamConfig, isStreamingRequest } + ); + } + const requestParamsJSON = JSON.stringify(requestParams); + const cacheEntry = this.responseCache.get(requestParamsJSON); + const now = Date.now(); + if (cacheEntry) { + const isEntryValid = now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1e3; + if (isEntryValid) { + this.responseCache.delete(requestParamsJSON); + this.responseCache.set(requestParamsJSON, cacheEntry); + return cacheEntry.response; + } else { + this.responseCache.delete(requestParamsJSON); + } + } + const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON); + if (cachePromiseEntry) { + const isEntryValid = now - cachePromiseEntry.requestTimestamp < cacheResponseForSeconds * 1e3; + if (isEntryValid) { + this.responsePromiseCache.delete(requestParamsJSON); + this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry); + return cachePromiseEntry.responsePromise; + } else { + this.responsePromiseCache.delete(requestParamsJSON); + } + } + const responsePromise = this.executeRequest( + requestContext, + methodName, + path, + queryParams, + body, + headers, + { abortSignal, responseType, streamConfig, isStreamingRequest } + ); + this.responsePromiseCache.set(requestParamsJSON, { + requestTimestamp: now, + responsePromise + }); + const response = await responsePromise; + this.responseCache.set(requestParamsJSON, { + requestTimestamp: now, + response + }); + const isCacheOverMaxSize = this.responseCache.size > maxSize; + if (isCacheOverMaxSize) { + const oldestEntry = this.responseCache.keys().next().value; + if (oldestEntry) { + this.responseCache.delete(oldestEntry); + } + } + const isResponsePromiseCacheOverMaxSize = this.responsePromiseCache.size > maxSize; + if (isResponsePromiseCacheOverMaxSize) { + const oldestEntry = this.responsePromiseCache.keys().next().value; + if (oldestEntry) { + this.responsePromiseCache.delete(oldestEntry); + } + } + return response; + } + executeRequest(context, methodName, path, queryParams = {}, body, headers, options) { + const method = context[methodName]; + switch (methodName) { + case "get": + return method.call(context, path, queryParams, { + abortSignal: options?.abortSignal, + responseType: options?.responseType, + streamConfig: options?.streamConfig, + isStreamingRequest: options?.isStreamingRequest + }); + case "delete": + return method.call( + context, + path, + queryParams + ); + case "post": + return method.call( + context, + path, + body, + queryParams, + headers || {}, + { + abortSignal: options?.abortSignal, + responseType: options?.responseType, + streamConfig: options?.streamConfig, + isStreamingRequest: options?.isStreamingRequest + } + ); + case "put": + case "patch": + return method.call( + context, + path, + body, + queryParams + ); + default: + throw new Error(`Unsupported method: ${String(methodName)}`); + } + } +}; + +// src/Typesense/MultiSearch.ts +var RESOURCEPATH = "/multi_search"; +var MultiSearch = class { + constructor(apiCall, configuration, useTextContentType = false) { + this.apiCall = apiCall; + this.configuration = configuration; + this.useTextContentType = useTextContentType; + this.requestWithCache = new RequestWithCache(); + } + clearCache() { + this.requestWithCache.clearCache(); + } + async perform(searchRequests, commonParams, { + cacheSearchResultsForSeconds = this.configuration.cacheSearchResultsForSeconds + } = {}) { + const params = commonParams ? { ...commonParams } : {}; + if (this.configuration.useServerSideSearchCache === true) { + params.use_cache = true; + } + const normalizedSearchRequests = { + union: searchRequests.union, + searches: searchRequests.searches.map( + normalizeArrayableParams + ) + }; + const { streamConfig, ...paramsWithoutStream } = params; + const normalizedQueryParams = normalizeArrayableParams( + paramsWithoutStream + ); + return this.requestWithCache.perform( + this.apiCall, + "post", + { + path: RESOURCEPATH, + body: normalizedSearchRequests, + queryParams: normalizedQueryParams, + headers: this.useTextContentType ? { "content-type": "text/plain" } : {}, + streamConfig, + isStreamingRequest: this.isStreamingRequest(params) + }, + { cacheResponseForSeconds: cacheSearchResultsForSeconds } + ); + } + isStreamingRequest(commonParams) { + return commonParams.streamConfig !== void 0; + } +}; + +// src/Typesense/Collections.ts +var RESOURCEPATH2 = "/collections"; +var Collections = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async create(schema, options) { + return this.apiCall.post(RESOURCEPATH2, schema, options); + } + async retrieve(options = {}) { + return this.apiCall.get(RESOURCEPATH2, options); + } + static get RESOURCEPATH() { + return RESOURCEPATH2; + } +}; + +// src/Typesense/SearchOnlyDocuments.ts +var RESOURCEPATH3 = "/documents"; +var SearchOnlyDocuments = class { + constructor(collectionName, apiCall, configuration) { + this.collectionName = collectionName; + this.apiCall = apiCall; + this.configuration = configuration; + this.requestWithCache = new RequestWithCache(); + } + clearCache() { + this.requestWithCache.clearCache(); + } + async search(searchParameters, { + cacheSearchResultsForSeconds = this.configuration.cacheSearchResultsForSeconds, + abortSignal = null + } = {}) { + const additionalQueryParams = {}; + if (this.configuration.useServerSideSearchCache === true) { + additionalQueryParams["use_cache"] = true; + } + const { streamConfig, ...rest } = normalizeArrayableParams(searchParameters); + const queryParams = { + ...additionalQueryParams, + ...rest + }; + const isStreamingRequest = queryParams.conversation_stream === true; + return this.requestWithCache.perform( + this.apiCall, + "get", + { + path: this.endpointPath("search"), + queryParams, + streamConfig, + abortSignal, + isStreamingRequest + }, + { + cacheResponseForSeconds: cacheSearchResultsForSeconds + } + ); + } + endpointPath(operation) { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH3}${operation === void 0 ? "" : "/" + operation}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH3; + } +}; + +// src/Typesense/SearchOnlyCollection.ts +var SearchOnlyCollection = class { + constructor(name, apiCall, configuration) { + this.name = name; + this.apiCall = apiCall; + this.configuration = configuration; + this._documents = new SearchOnlyDocuments( + this.name, + this.apiCall, + this.configuration + ); + } + documents() { + return this._documents; + } +}; + +// src/Typesense/SearchClient.ts +var SearchClient = class { + constructor(options) { + options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true; + if (options.sendApiKeyAsQueryParam === true && (options.apiKey || "").length > 2e3) { + console.warn( + "[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter." + ); + options.sendApiKeyAsQueryParam = false; + } + this.configuration = new Configuration(options); + this.apiCall = new ApiCall(this.configuration); + this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true); + this.individualCollections = {}; + } + clearCache() { + this.multiSearch.clearCache(); + Object.entries(this.individualCollections).forEach(([_, collection]) => { + collection.documents().clearCache(); + }); + } + collections(collectionName) { + if (!collectionName) { + throw new Error( + "Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object." + ); + } else { + if (this.individualCollections[collectionName] === void 0) { + this.individualCollections[collectionName] = new SearchOnlyCollection( + collectionName, + this.apiCall, + this.configuration + ); + } + return this.individualCollections[collectionName]; + } + } +}; + +// src/Typesense/Documents.ts +var isNodeJSEnvironment2 = typeof process !== "undefined" && process.versions != null && process.versions.node != null; +var Documents = class extends SearchOnlyDocuments { + constructor(collectionName, apiCall, configuration) { + super(collectionName, apiCall, configuration); + } + async create(document, options = {}) { + if (!document) throw new Error("No document provided"); + return this.apiCall.post(this.endpointPath(), document, options); + } + async upsert(document, options = {}) { + if (!document) throw new Error("No document provided"); + return this.apiCall.post( + this.endpointPath(), + document, + Object.assign({}, options, { action: "upsert" }) + ); + } + async update(document, options = {}) { + if (!document) throw new Error("No document provided"); + if (options["filter_by"] != null) { + return this.apiCall.patch( + this.endpointPath(), + document, + Object.assign({}, options) + ); + } else { + return this.apiCall.post( + this.endpointPath(), + document, + Object.assign({}, options, { action: "update" }) + ); + } + } + async delete(query = {}) { + return this.apiCall.delete(this.endpointPath(), query); + } + async createMany(documents, options = {}) { + this.configuration.logger.warn( + "createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents" + ); + return this.import(documents, options); + } + async import(documents, options = {}) { + let documentsInJSONLFormat; + if (Array.isArray(documents)) { + if (documents.length === 0) { + throw new RequestMalformed("No documents provided"); + } + try { + documentsInJSONLFormat = documents.map((document) => JSON.stringify(document)).join("\n"); + } catch (error) { + if (error instanceof RangeError && error.message.includes("Too many properties to enumerate")) { + throw new Error(`${error} + It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object + + Please try reducing the number of keys in your document, or using CURL to import your data. + `); + } + throw new Error(error); + } + } else { + documentsInJSONLFormat = documents; + if (isEmptyString(documentsInJSONLFormat)) { + throw new RequestMalformed("No documents provided"); + } + } + const resultsInJSONLFormat = await this.apiCall.performRequest( + "post", + this.endpointPath("import"), + { + queryParameters: options, + bodyParameters: documentsInJSONLFormat, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, + // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully + enableKeepAlive: isNodeJSEnvironment2 ? true : false + // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 + } + ); + if (Array.isArray(documents)) { + const resultsInJSONFormat = resultsInJSONLFormat.split("\n").map((r) => JSON.parse(r)); + const failedItems = resultsInJSONFormat.filter( + (r) => r.success === false + ); + if (failedItems.length > 0) { + throw new ImportError( + `${resultsInJSONFormat.length - failedItems.length} documents imported successfully, ${failedItems.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`, + resultsInJSONFormat, + { + documentsInJSONLFormat, + options, + failedItems, + successCount: resultsInJSONFormat.length - failedItems.length + } + ); + } else { + return resultsInJSONFormat; + } + } else { + return resultsInJSONLFormat; + } + } + /** + * Imports documents from a NodeJS readable stream of JSONL. + */ + async importStream(readableStream, options = {}) { + const resultsInJSONLFormat = await this.apiCall.performRequest( + "post", + this.endpointPath("import"), + { + queryParameters: options, + bodyParameters: readableStream, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, + // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully + enableKeepAlive: isNodeJSEnvironment2 ? true : false + // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 + } + ); + const resultsInJSONFormat = resultsInJSONLFormat.split("\n").map((r) => JSON.parse(r)); + const failedItems = resultsInJSONFormat.filter((r) => r.success === false); + if (failedItems.length > 0) { + throw new ImportError( + `${resultsInJSONFormat.length - failedItems.length} documents imported successfully, ${failedItems.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`, + resultsInJSONFormat, + { + documentsInJSONLFormat: readableStream, + options, + failedItems, + successCount: resultsInJSONFormat.length - failedItems.length + } + ); + } else { + return resultsInJSONFormat; + } + } + /** + * Returns a JSONL string for all the documents in this collection + */ + async export(options = {}) { + return this.apiCall.get(this.endpointPath("export"), options); + } + /** + * Returns a NodeJS readable stream of JSONL for all the documents in this collection. + */ + async exportStream(options = {}) { + return this.apiCall.get(this.endpointPath("export"), options, { + responseType: "stream" + }); + } +}; +function isEmptyString(str) { + return str == null || str === "" || str.length === 0; +} + +// src/Typesense/Overrides.ts +var RESOURCEPATH4 = "/overrides"; +var Overrides = class _Overrides { + constructor(collectionName, apiCall) { + this.collectionName = collectionName; + this.apiCall = apiCall; + } + async upsert(overrideId, params) { + return this.apiCall.put( + this.endpointPath(overrideId), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Collections.RESOURCEPATH}/${this.collectionName}${_Overrides.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH4; + } +}; + +// src/Typesense/Override.ts +var Override = class { + constructor(collectionName, overrideId, apiCall) { + this.collectionName = collectionName; + this.overrideId = overrideId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`; + } +}; + +// src/Typesense/Synonyms.ts +var RESOURCEPATH5 = "/synonyms"; +var Synonyms = class _Synonyms { + constructor(collectionName, apiCall) { + this.collectionName = collectionName; + this.apiCall = apiCall; + } + async upsert(synonymId, params) { + return this.apiCall.put( + this.endpointPath(synonymId), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${_Synonyms.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH5; + } +}; + +// src/Typesense/Synonym.ts +var Synonym = class { + constructor(collectionName, synonymId, apiCall) { + this.collectionName = collectionName; + this.synonymId = synonymId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`; + } +}; + +// src/Typesense/Document.ts +var Document = class { + constructor(collectionName, documentId, apiCall) { + this.collectionName = collectionName; + this.documentId = documentId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete(options) { + return this.apiCall.delete(this.endpointPath(), options); + } + async update(partialDocument, options = {}) { + return this.apiCall.patch(this.endpointPath(), partialDocument, options); + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`; + } +}; + +// src/Typesense/Collection.ts +var Collection = class { + constructor(name, apiCall, configuration) { + this.name = name; + this.apiCall = apiCall; + this.configuration = configuration; + this.individualDocuments = {}; + this.individualOverrides = {}; + this.individualSynonyms = {}; + this.name = name; + this.apiCall = apiCall; + this.configuration = configuration; + this._documents = new Documents( + this.name, + this.apiCall, + this.configuration + ); + this._overrides = new Overrides(this.name, this.apiCall); + this._synonyms = new Synonyms(this.name, this.apiCall); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async update(schema) { + return this.apiCall.patch(this.endpointPath(), schema); + } + async delete(options = {}) { + return this.apiCall.delete(this.endpointPath(), options); + } + async exists() { + try { + await this.retrieve(); + return true; + } catch (e) { + if (e instanceof ObjectNotFound) return false; + throw e; + } + } + documents(documentId) { + if (!documentId) { + return this._documents; + } else { + if (this.individualDocuments[documentId] === void 0) { + this.individualDocuments[documentId] = new Document( + this.name, + documentId, + this.apiCall + ); + } + return this.individualDocuments[documentId]; + } + } + overrides(overrideId) { + if (overrideId === void 0) { + return this._overrides; + } else { + if (this.individualOverrides[overrideId] === void 0) { + this.individualOverrides[overrideId] = new Override( + this.name, + overrideId, + this.apiCall + ); + } + return this.individualOverrides[overrideId]; + } + } + synonyms(synonymId) { + if (synonymId === void 0) { + return this._synonyms; + } else { + if (this.individualSynonyms[synonymId] === void 0) { + this.individualSynonyms[synonymId] = new Synonym( + this.name, + synonymId, + this.apiCall + ); + } + return this.individualSynonyms[synonymId]; + } + } + endpointPath() { + return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +}; + +// src/Typesense/Aliases.ts +var RESOURCEPATH6 = "/aliases"; +var Aliases = class _Aliases { + constructor(apiCall) { + this.apiCall = apiCall; + } + async upsert(name, mapping) { + return this.apiCall.put( + this.endpointPath(name), + mapping + ); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH6); + } + endpointPath(aliasName) { + return `${_Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH6; + } +}; + +// src/Typesense/Alias.ts +var Alias = class { + constructor(name, apiCall) { + this.name = name; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +}; + +// src/Typesense/Keys.ts +var import_crypto = __toESM(require_crypto()); +var RESOURCEPATH7 = "/keys"; +var Keys = class _Keys { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async create(params) { + return this.apiCall.post(_Keys.RESOURCEPATH, params); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH7); + } + generateScopedSearchKey(searchKey, parameters) { + const normalizedParams = normalizeArrayableParams(parameters); + const paramsJSON = JSON.stringify(normalizedParams); + const digest = Buffer.from( + (0, import_crypto.createHmac)("sha256", searchKey).update(paramsJSON).digest("base64") + ); + const keyPrefix = searchKey.substr(0, 4); + const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`; + return Buffer.from(rawScopedKey).toString("base64"); + } + static get RESOURCEPATH() { + return RESOURCEPATH7; + } +}; + +// src/Typesense/Key.ts +var Key = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/Debug.ts +var RESOURCEPATH8 = "/debug"; +var Debug = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH8); + } +}; + +// src/Typesense/Metrics.ts +var RESOURCEPATH9 = "/metrics.json"; +var Metrics = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH9); + } +}; + +// src/Typesense/Stats.ts +var RESOURCEPATH10 = "/stats.json"; +var Metrics2 = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH10); + } +}; + +// src/Typesense/Health.ts +var RESOURCEPATH11 = "/health"; +var Health = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH11); + } +}; + +// src/Typesense/Operations.ts +var RESOURCEPATH12 = "/operations"; +var Operations = class { + constructor(apiCall) { + this.apiCall = apiCall; + } + async perform(operationName, queryParameters = {}) { + return this.apiCall.post( + `${RESOURCEPATH12}/${operationName}`, + {}, + queryParameters + ); + } +}; + +// src/Typesense/Presets.ts +var RESOURCEPATH13 = "/presets"; +var Presets = class _Presets { + constructor(apiCall) { + this.apiCall = apiCall; + } + async upsert(presetId, params) { + if (typeof params.value === "object" && "searches" in params.value) { + const normalizedParams2 = params.value.searches.map( + (search) => normalizeArrayableParams(search) + ); + return this.apiCall.put(this.endpointPath(presetId), { + value: { searches: normalizedParams2 } + }); + } + const normalizedParams = normalizeArrayableParams(params.value); + return this.apiCall.put(this.endpointPath(presetId), { + value: normalizedParams + }); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${_Presets.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH13; + } +}; + +// src/Typesense/Preset.ts +var Preset = class { + constructor(presetId, apiCall) { + this.presetId = presetId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`; + } +}; + +// src/Typesense/AnalyticsRules.ts +var RESOURCEPATH14 = "/analytics/rules"; +var AnalyticsRules = class _AnalyticsRules { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async upsert(name, params) { + return this.apiCall.put( + this.endpointPath(name), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${_AnalyticsRules.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH14; + } +}; + +// src/Typesense/AnalyticsRule.ts +var AnalyticsRule = class { + constructor(name, apiCall) { + this.name = name; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +}; + +// src/Typesense/AnalyticsEvents.ts +var RESOURCEPATH15 = "/analytics/events"; +var AnalyticsEvents = class _AnalyticsEvents { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async create(params) { + return this.apiCall.post( + this.endpointPath(), + params + ); + } + endpointPath(operation) { + return `${_AnalyticsEvents.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH15; + } +}; + +// src/Typesense/Analytics.ts +var RESOURCEPATH16 = "/analytics"; +var Analytics = class { + constructor(apiCall) { + this.apiCall = apiCall; + this.individualAnalyticsRules = {}; + this.apiCall = apiCall; + this._analyticsRules = new AnalyticsRules(this.apiCall); + this._analyticsEvents = new AnalyticsEvents(this.apiCall); + } + rules(id) { + if (id === void 0) { + return this._analyticsRules; + } else { + if (this.individualAnalyticsRules[id] === void 0) { + this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall); + } + return this.individualAnalyticsRules[id]; + } + } + events() { + return this._analyticsEvents; + } + static get RESOURCEPATH() { + return RESOURCEPATH16; + } +}; + +// src/Typesense/Stopwords.ts +var RESOURCEPATH17 = "/stopwords"; +var Stopwords = class _Stopwords { + constructor(apiCall) { + this.apiCall = apiCall; + } + async upsert(stopwordId, params) { + return this.apiCall.put( + this.endpointPath(stopwordId), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${_Stopwords.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH17; + } +}; + +// src/Typesense/Stopword.ts +var Stopword = class { + constructor(stopwordId, apiCall) { + this.stopwordId = stopwordId; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`; + } +}; + +// src/Typesense/ConversationModels.ts +var RESOURCEPATH18 = "/conversations/models"; +var ConversationModels = class _ConversationModels { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async create(params) { + return this.apiCall.post( + this.endpointPath(), + params + ); + } + async retrieve() { + return this.apiCall.get( + this.endpointPath() + ); + } + endpointPath(operation) { + return `${_ConversationModels.RESOURCEPATH}${operation === void 0 ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH18; + } +}; + +// src/Typesense/ConversationModel.ts +var ConversationModel = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async update(params) { + return this.apiCall.put( + this.endpointPath(), + params + ); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete( + this.endpointPath() + ); + } + endpointPath() { + return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/Conversations.ts +var RESOURCEPATH19 = "/conversations"; +var Conversations = class { + constructor(apiCall) { + this.apiCall = apiCall; + this.individualConversationModels = {}; + this.apiCall = apiCall; + this._conversationsModels = new ConversationModels(this.apiCall); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH19); + } + models(id) { + if (id === void 0) { + return this._conversationsModels; + } else { + if (this.individualConversationModels[id] === void 0) { + this.individualConversationModels[id] = new ConversationModel( + id, + this.apiCall + ); + } + return this.individualConversationModels[id]; + } + } + static get RESOURCEPATH() { + return RESOURCEPATH19; + } +}; + +// src/Typesense/Conversation.ts +var Conversation = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async update(params) { + return this.apiCall.put( + this.endpointPath(), + params + ); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/StemmingDictionaries.ts +var RESOURCEPATH20 = "/stemming/dictionaries"; +var StemmingDictionaries = class _StemmingDictionaries { + constructor(apiCall) { + this.apiCall = apiCall; + this.apiCall = apiCall; + } + async upsert(id, wordRootCombinations) { + const wordRootCombinationsInJSONLFormat = Array.isArray( + wordRootCombinations + ) ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join("\n") : wordRootCombinations; + const resultsInJSONLFormat = await this.apiCall.performRequest( + "post", + this.endpointPath("import"), + { + queryParameters: { id }, + bodyParameters: wordRootCombinationsInJSONLFormat, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true + } + ); + return Array.isArray(wordRootCombinations) ? resultsInJSONLFormat.split("\n").map((line) => JSON.parse(line)) : resultsInJSONLFormat; + } + async retrieve() { + return this.apiCall.get( + this.endpointPath() + ); + } + endpointPath(operation) { + return operation === void 0 ? `${_StemmingDictionaries.RESOURCEPATH}` : `${_StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH20; + } +}; + +// src/Typesense/StemmingDictionary.ts +var StemmingDictionary = class { + constructor(id, apiCall) { + this.id = id; + this.apiCall = apiCall; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath() { + return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +}; + +// src/Typesense/Stemming.ts +var RESOURCEPATH21 = "/stemming"; +var Stemming = class { + constructor(apiCall) { + this.apiCall = apiCall; + this.individualStemmingDictionaries = {}; + this.apiCall = apiCall; + this._stemmingDictionaries = new StemmingDictionaries(this.apiCall); + } + dictionaries(id) { + if (id === void 0) { + return this._stemmingDictionaries; + } else { + if (this.individualStemmingDictionaries[id] === void 0) { + this.individualStemmingDictionaries[id] = new StemmingDictionary( + id, + this.apiCall + ); + } + return this.individualStemmingDictionaries[id]; + } + } + static get RESOURCEPATH() { + return RESOURCEPATH21; + } +}; + +// src/Typesense/Client.ts +var Client = class { + constructor(options) { + options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false; + this.configuration = new Configuration(options); + this.apiCall = new ApiCall(this.configuration); + this.debug = new Debug(this.apiCall); + this.metrics = new Metrics(this.apiCall); + this.stats = new Metrics2(this.apiCall); + this.health = new Health(this.apiCall); + this.operations = new Operations(this.apiCall); + this.multiSearch = new MultiSearch(this.apiCall, this.configuration); + this._collections = new Collections(this.apiCall); + this.individualCollections = {}; + this._aliases = new Aliases(this.apiCall); + this.individualAliases = {}; + this._keys = new Keys(this.apiCall); + this.individualKeys = {}; + this._presets = new Presets(this.apiCall); + this.individualPresets = {}; + this._stopwords = new Stopwords(this.apiCall); + this.individualStopwords = {}; + this.analytics = new Analytics(this.apiCall); + this.stemming = new Stemming(this.apiCall); + this._conversations = new Conversations(this.apiCall); + this.individualConversations = {}; + } + collections(collectionName) { + if (collectionName === void 0) { + return this._collections; + } else { + if (this.individualCollections[collectionName] === void 0) { + this.individualCollections[collectionName] = new Collection( + collectionName, + this.apiCall, + this.configuration + ); + } + return this.individualCollections[collectionName]; + } + } + aliases(aliasName) { + if (aliasName === void 0) { + return this._aliases; + } else { + if (this.individualAliases[aliasName] === void 0) { + this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall); + } + return this.individualAliases[aliasName]; + } + } + keys(id) { + if (id === void 0) { + return this._keys; + } else { + if (this.individualKeys[id] === void 0) { + this.individualKeys[id] = new Key(id, this.apiCall); + } + return this.individualKeys[id]; + } + } + presets(id) { + if (id === void 0) { + return this._presets; + } else { + if (this.individualPresets[id] === void 0) { + this.individualPresets[id] = new Preset(id, this.apiCall); + } + return this.individualPresets[id]; + } + } + stopwords(id) { + if (id === void 0) { + return this._stopwords; + } else { + if (this.individualStopwords[id] === void 0) { + this.individualStopwords[id] = new Stopword(id, this.apiCall); + } + return this.individualStopwords[id]; + } + } + conversations(id) { + if (id === void 0) { + return this._conversations; + } else { + if (this.individualConversations[id] === void 0) { + this.individualConversations[id] = new Conversation(id, this.apiCall); + } + return this.individualConversations[id]; + } + } +}; + +export { Client, Errors_exports as Errors, SearchClient }; diff --git a/dist/typesense.js b/dist/typesense.js deleted file mode 100644 index 8bcbb540..00000000 --- a/dist/typesense.js +++ /dev/null @@ -1,11491 +0,0 @@ -var Typesense; -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./src/Typesense/Alias.ts": -/*!********************************!*\ - !*** ./src/Typesense/Alias.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Alias) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Aliases__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Aliases */ "./src/Typesense/Aliases.ts"); - - - - - -var Alias = /*#__PURE__*/function () { - function Alias(name, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Alias); - this.name = name; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Alias, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Aliases__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); - } - }]); - return Alias; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Aliases.ts": -/*!**********************************!*\ - !*** ./src/Typesense/Aliases.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Aliases) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/aliases"; -var Aliases = /*#__PURE__*/function () { - function Aliases(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Aliases); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Aliases, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(name, mapping) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.put(this.endpointPath(name), mapping)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(aliasName) { - return "".concat(Aliases.RESOURCEPATH, "/").concat(encodeURIComponent(aliasName)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Aliases; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Analytics.ts": -/*!************************************!*\ - !*** ./src/Typesense/Analytics.ts ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Analytics) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _AnalyticsRules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AnalyticsRules */ "./src/Typesense/AnalyticsRules.ts"); -/* harmony import */ var _AnalyticsRule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRule */ "./src/Typesense/AnalyticsRule.ts"); -/* harmony import */ var _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AnalyticsEvents */ "./src/Typesense/AnalyticsEvents.ts"); - - - - - - -var RESOURCEPATH = "/analytics"; -var Analytics = /*#__PURE__*/function () { - function Analytics(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, Analytics); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__["default"])(this, "individualAnalyticsRules", {}); - this.apiCall = apiCall; - this.apiCall = apiCall; - this._analyticsRules = new _AnalyticsRules__WEBPACK_IMPORTED_MODULE_3__["default"](this.apiCall); - this._analyticsEvents = new _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Analytics, [{ - key: "rules", - value: function rules(id) { - if (id === undefined) { - return this._analyticsRules; - } else { - if (this.individualAnalyticsRules[id] === undefined) { - this.individualAnalyticsRules[id] = new _AnalyticsRule__WEBPACK_IMPORTED_MODULE_4__["default"](id, this.apiCall); - } - return this.individualAnalyticsRules[id]; - } - } - }, { - key: "events", - value: function events() { - return this._analyticsEvents; - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Analytics; -}(); - - -/***/ }), - -/***/ "./src/Typesense/AnalyticsEvents.ts": -/*!******************************************!*\ - !*** ./src/Typesense/AnalyticsEvents.ts ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ AnalyticsEvents) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/analytics/events"; -var AnalyticsEvents = /*#__PURE__*/function () { - function AnalyticsEvents(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, AnalyticsEvents); - this.apiCall = apiCall; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsEvents, [{ - key: "create", - value: function () { - var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.post(this.endpointPath(), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function create(_x) { - return _create.apply(this, arguments); - } - return create; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(AnalyticsEvents.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return AnalyticsEvents; -}(); - - -/***/ }), - -/***/ "./src/Typesense/AnalyticsRule.ts": -/*!****************************************!*\ - !*** ./src/Typesense/AnalyticsRule.ts ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ AnalyticsRule) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _AnalyticsRules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRules */ "./src/Typesense/AnalyticsRules.ts"); - - - - - -var AnalyticsRule = /*#__PURE__*/function () { - function AnalyticsRule(name, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, AnalyticsRule); - this.name = name; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRule, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_AnalyticsRules__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); - } - }]); - return AnalyticsRule; -}(); - - -/***/ }), - -/***/ "./src/Typesense/AnalyticsRules.ts": -/*!*****************************************!*\ - !*** ./src/Typesense/AnalyticsRules.ts ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ AnalyticsRules) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/analytics/rules"; -var AnalyticsRules = /*#__PURE__*/function () { - function AnalyticsRules(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, AnalyticsRules); - this.apiCall = apiCall; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRules, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(name, params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.put(this.endpointPath(name), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(AnalyticsRules.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return AnalyticsRules; -}(); - - -/***/ }), - -/***/ "./src/Typesense/ApiCall.ts": -/*!**********************************!*\ - !*** ./src/Typesense/ApiCall.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ApiCall) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js"); -/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! http */ "?e89d"); -/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(http__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! https */ "?77e4"); -/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); -/* harmony import */ var _Errors_TypesenseError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Errors/TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); - - - - - -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } - - - - - - - -var APIKEYHEADERNAME = "X-TYPESENSE-API-KEY"; -var HEALTHY = true; -var UNHEALTHY = false; -var isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null && typeof window === "undefined"; -var ApiCall = /*#__PURE__*/function () { - function ApiCall(configuration) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__["default"])(this, ApiCall); - this.configuration = configuration; - this.apiKey = this.configuration.apiKey; - this.nodes = this.configuration.nodes == null ? this.configuration.nodes : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes - this.nearestNode = this.configuration.nearestNode == null ? this.configuration.nearestNode : JSON.parse(JSON.stringify(this.configuration.nearestNode)); - this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds; - this.healthcheckIntervalSeconds = this.configuration.healthcheckIntervalSeconds; - this.numRetriesPerRequest = this.configuration.numRetries; - this.retryIntervalSeconds = this.configuration.retryIntervalSeconds; - this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam; - this.additionalUserHeaders = this.configuration.additionalHeaders; - this.logger = this.configuration.logger; - this.initializeMetadataForNodes(); - this.currentNodeIndex = -1; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__["default"])(ApiCall, [{ - key: "get", - value: function () { - var _get = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee(endpoint) { - var queryParameters, - _ref, - _ref$abortSignal, - abortSignal, - _ref$responseType, - responseType, - _ref$streamConfig, - streamConfig, - isStreamingRequest, - _args = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - queryParameters = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; - _ref = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}, _ref$abortSignal = _ref.abortSignal, abortSignal = _ref$abortSignal === void 0 ? null : _ref$abortSignal, _ref$responseType = _ref.responseType, responseType = _ref$responseType === void 0 ? undefined : _ref$responseType, _ref$streamConfig = _ref.streamConfig, streamConfig = _ref$streamConfig === void 0 ? undefined : _ref$streamConfig, isStreamingRequest = _ref.isStreamingRequest; - return _context.abrupt("return", this.performRequest("get", endpoint, { - queryParameters: queryParameters, - abortSignal: abortSignal, - responseType: responseType, - streamConfig: streamConfig, - isStreamingRequest: isStreamingRequest - })); - case 3: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function get(_x) { - return _get.apply(this, arguments); - } - return get; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee2(endpoint) { - var queryParameters, - _args2 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - queryParameters = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {}; - return _context2.abrupt("return", this.performRequest("delete", endpoint, { - queryParameters: queryParameters, - isStreamingRequest: false - })); - case 2: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete(_x2) { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "post", - value: function () { - var _post = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee3(endpoint) { - var bodyParameters, - queryParameters, - additionalHeaders, - _ref2, - _ref2$abortSignal, - abortSignal, - _ref2$responseType, - responseType, - _ref2$streamConfig, - streamConfig, - isStreamingRequest, - _args3 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - bodyParameters = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {}; - queryParameters = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {}; - additionalHeaders = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {}; - _ref2 = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : {}, _ref2$abortSignal = _ref2.abortSignal, abortSignal = _ref2$abortSignal === void 0 ? null : _ref2$abortSignal, _ref2$responseType = _ref2.responseType, responseType = _ref2$responseType === void 0 ? undefined : _ref2$responseType, _ref2$streamConfig = _ref2.streamConfig, streamConfig = _ref2$streamConfig === void 0 ? undefined : _ref2$streamConfig, isStreamingRequest = _ref2.isStreamingRequest; - return _context3.abrupt("return", this.performRequest("post", endpoint, { - queryParameters: queryParameters, - bodyParameters: bodyParameters, - additionalHeaders: additionalHeaders, - abortSignal: abortSignal, - responseType: responseType, - streamConfig: streamConfig, - isStreamingRequest: isStreamingRequest - })); - case 5: - case "end": - return _context3.stop(); - } - }, _callee3, this); - })); - function post(_x3) { - return _post.apply(this, arguments); - } - return post; - }() - }, { - key: "put", - value: function () { - var _put = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee4(endpoint) { - var bodyParameters, - queryParameters, - _args4 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - bodyParameters = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {}; - queryParameters = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {}; - return _context4.abrupt("return", this.performRequest("put", endpoint, { - queryParameters: queryParameters, - bodyParameters: bodyParameters, - isStreamingRequest: false - })); - case 3: - case "end": - return _context4.stop(); - } - }, _callee4, this); - })); - function put(_x4) { - return _put.apply(this, arguments); - } - return put; - }() - }, { - key: "patch", - value: function () { - var _patch = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee5(endpoint) { - var bodyParameters, - queryParameters, - _args5 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - bodyParameters = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {}; - queryParameters = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : {}; - return _context5.abrupt("return", this.performRequest("patch", endpoint, { - queryParameters: queryParameters, - bodyParameters: bodyParameters, - isStreamingRequest: false - })); - case 3: - case "end": - return _context5.stop(); - } - }, _callee5, this); - })); - function patch(_x5) { - return _patch.apply(this, arguments); - } - return patch; - }() - }, { - key: "getAdapter", - value: function getAdapter() { - if (!this.configuration.axiosAdapter) return undefined; - if (typeof this.configuration.axiosAdapter === "function") return this.configuration.axiosAdapter; - var isCloudflareWorkers = typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers"; - return isCloudflareWorkers ? axios__WEBPACK_IMPORTED_MODULE_11__["default"].getAdapter(this.configuration.axiosAdapter).bind(globalThis) : axios__WEBPACK_IMPORTED_MODULE_11__["default"].getAdapter(this.configuration.axiosAdapter); - } - }, { - key: "performRequest", - value: function () { - var _performRequest = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee6(requestType, endpoint, _ref3) { - var _this = this; - var _ref3$queryParameters, queryParameters, _ref3$bodyParameters, bodyParameters, _ref3$additionalHeade, additionalHeaders, _ref3$abortSignal, abortSignal, _ref3$responseType, responseType, _ref3$skipConnectionT, skipConnectionTimeout, _ref3$enableKeepAlive, enableKeepAlive, _ref3$streamConfig, streamConfig, isStreamingRequest, requestNumber, lastException, wasAborted, _loop, _ret, numTries; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee6$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - _ref3$queryParameters = _ref3.queryParameters, queryParameters = _ref3$queryParameters === void 0 ? null : _ref3$queryParameters, _ref3$bodyParameters = _ref3.bodyParameters, bodyParameters = _ref3$bodyParameters === void 0 ? null : _ref3$bodyParameters, _ref3$additionalHeade = _ref3.additionalHeaders, additionalHeaders = _ref3$additionalHeade === void 0 ? {} : _ref3$additionalHeade, _ref3$abortSignal = _ref3.abortSignal, abortSignal = _ref3$abortSignal === void 0 ? null : _ref3$abortSignal, _ref3$responseType = _ref3.responseType, responseType = _ref3$responseType === void 0 ? undefined : _ref3$responseType, _ref3$skipConnectionT = _ref3.skipConnectionTimeout, skipConnectionTimeout = _ref3$skipConnectionT === void 0 ? false : _ref3$skipConnectionT, _ref3$enableKeepAlive = _ref3.enableKeepAlive, enableKeepAlive = _ref3$enableKeepAlive === void 0 ? undefined : _ref3$enableKeepAlive, _ref3$streamConfig = _ref3.streamConfig, streamConfig = _ref3$streamConfig === void 0 ? undefined : _ref3$streamConfig, isStreamingRequest = _ref3.isStreamingRequest; - this.configuration.validate(); - if (isStreamingRequest) { - this.logger.debug("Request: Performing streaming request to ".concat(endpoint)); - - // For browser streaming, always use responseType: "stream" and adapter: "fetch" - if (!isNodeJSEnvironment && typeof fetch !== "undefined") { - this.logger.debug("Using fetch adapter for browser streaming"); - responseType = "stream"; - } - } - requestNumber = Date.now(); - wasAborted = false; - this.logger.debug("Request #".concat(requestNumber, ": Performing ").concat(requestType.toUpperCase(), " request: ").concat(endpoint)); - _loop = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _loop() { - var node, abortListener, requestOptions, cancelToken, source, response, _response$data, _response$data2, _error$code, _error$response; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _loop$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - node = _this.getNextNode(requestNumber); - _this.logger.debug("Request #".concat(requestNumber, ": Attempting ").concat(requestType.toUpperCase(), " request Try #").concat(numTries, " to Node ").concat(node.index)); - if (!(abortSignal && abortSignal.aborted)) { - _context6.next = 4; - break; - } - return _context6.abrupt("return", { - v: Promise.reject(new Error("Request aborted by caller.")) - }); - case 4: - _context6.prev = 4; - requestOptions = { - method: requestType, - url: _this.uriFor(endpoint, node), - headers: Object.assign({}, _this.defaultHeaders(), additionalHeaders, _this.additionalUserHeaders), - maxContentLength: Infinity, - maxBodyLength: Infinity, - validateStatus: function validateStatus(status) { - /* Override default validateStatus, which only considers 2xx a success. - In our case, if the server returns any HTTP code, we will handle it below. - We do this to be able to raise custom errors based on response code. - */ - return status > 0; - }, - transformResponse: [function (data, headers) { - var transformedData = data; - if (headers !== undefined && typeof data === "string" && headers["content-type"] && headers["content-type"].startsWith("application/json")) { - transformedData = JSON.parse(data); - } - return transformedData; - }] - }; // Use fetch adapter only for streaming requests in browser environments - requestOptions.adapter = isStreamingRequest && !isNodeJSEnvironment ? "fetch" : _this.getAdapter(); - if (skipConnectionTimeout !== true) { - requestOptions.timeout = _this.connectionTimeoutSeconds * 1000; - } - if (queryParameters && Object.keys(queryParameters).length !== 0) { - requestOptions.params = queryParameters; - } - if (_this.sendApiKeyAsQueryParam) { - requestOptions.params = requestOptions.params || {}; - requestOptions.params["x-typesense-api-key"] = _this.apiKey; - } - if (_this.configuration.httpAgent) { - _this.logger.debug("Request #".concat(requestNumber, ": Using custom httpAgent")); - requestOptions.httpAgent = _this.configuration.httpAgent; - } else if (enableKeepAlive === true) { - if (!isNodeJSEnvironment) { - _this.logger.warn("Request #".concat(requestNumber, ": Cannot use custom httpAgent in a browser environment to enable keepAlive")); - } else { - _this.logger.debug("Request #".concat(requestNumber, ": Enabling KeepAlive")); - requestOptions.httpAgent = new http__WEBPACK_IMPORTED_MODULE_6__.Agent({ - keepAlive: true - }); - } - } - if (_this.configuration.httpsAgent) { - _this.logger.debug("Request #".concat(requestNumber, ": Using custom httpsAgent")); - requestOptions.httpsAgent = _this.configuration.httpsAgent; - } else if (enableKeepAlive === true) { - if (!isNodeJSEnvironment) { - _this.logger.warn("Request #".concat(requestNumber, ": Cannot use custom httpAgent in a browser environment to enable keepAlive")); - } else { - _this.logger.debug("Request #".concat(requestNumber, ": Enabling keepAlive")); - requestOptions.httpsAgent = new https__WEBPACK_IMPORTED_MODULE_7__.Agent({ - keepAlive: true - }); - } - } - if (_this.configuration.paramsSerializer) { - _this.logger.debug("Request #".concat(requestNumber, ": Using custom paramsSerializer")); - requestOptions.paramsSerializer = _this.configuration.paramsSerializer; - } - if (bodyParameters && (typeof bodyParameters === "string" && bodyParameters.length !== 0 || (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(bodyParameters) === "object" && Object.keys(bodyParameters).length !== 0)) { - requestOptions.data = bodyParameters; - } - - // Translate from user-provided AbortController to the Axios request cancel mechanism. - if (abortSignal) { - cancelToken = axios__WEBPACK_IMPORTED_MODULE_11__["default"].CancelToken; - source = cancelToken.source(); - abortListener = function abortListener() { - wasAborted = true; - source.cancel(); - }; - abortSignal.addEventListener("abort", abortListener); - requestOptions.cancelToken = source.token; - } - if (isStreamingRequest) { - requestOptions.responseType = "stream"; - if (!isNodeJSEnvironment) { - requestOptions.headers = _objectSpread(_objectSpread({}, requestOptions.headers), {}, { - Accept: "text/event-stream" - }); - } - } else if (responseType) { - requestOptions.responseType = responseType; - } - _context6.next = 18; - return (0,axios__WEBPACK_IMPORTED_MODULE_11__["default"])(requestOptions); - case 18: - response = _context6.sent; - if (response.status >= 1 && response.status <= 499) { - // Treat any status code > 0 and < 500 to be an indication that node is healthy - // We exclude 0 since some clients return 0 when request fails - _this.setNodeHealthcheck(node, HEALTHY); - } - _this.logger.debug("Request #".concat(requestNumber, ": Request to Node ").concat(node.index, " was made. Response Code was ").concat(response.status, ".")); - if (!(response.status >= 200 && response.status < 300)) { - _context6.next = 27; - break; - } - if (!isStreamingRequest) { - _context6.next = 24; - break; - } - return _context6.abrupt("return", { - v: _this.handleStreamingResponse(response, streamConfig) - }); - case 24: - return _context6.abrupt("return", { - v: Promise.resolve(response.data) - }); - case 27: - if (!(response.status < 500)) { - _context6.next = 31; - break; - } - return _context6.abrupt("return", { - v: Promise.reject(_this.customErrorForResponse(response, (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.message, requestOptions.data)) - }); - case 31: - throw _this.customErrorForResponse(response, (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.message, requestOptions.data); - case 32: - _context6.next = 50; - break; - case 34: - _context6.prev = 34; - _context6.t0 = _context6["catch"](4); - // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts - if (!wasAborted) { - _this.setNodeHealthcheck(node, UNHEALTHY); - } - lastException = _context6.t0; - _this.logger.warn("Request #".concat(requestNumber, ": Request to Node ").concat(node.index, " failed due to \"").concat((_error$code = _context6.t0 === null || _context6.t0 === void 0 ? void 0 : _context6.t0.code) !== null && _error$code !== void 0 ? _error$code : "", " ").concat(_context6.t0.message).concat(_context6.t0.response == null ? "" : " - " + JSON.stringify((_error$response = _context6.t0.response) === null || _error$response === void 0 ? void 0 : _error$response.data), "\"")); - if (!wasAborted) { - _context6.next = 41; - break; - } - return _context6.abrupt("return", { - v: Promise.reject(new Error("Request aborted by caller.")) - }); - case 41: - if (isStreamingRequest) { - _this.invokeOnErrorCallback(_context6.t0, streamConfig); - } - if (!(numTries < _this.numRetriesPerRequest + 1)) { - _context6.next = 46; - break; - } - _this.logger.warn("Request #".concat(requestNumber, ": Sleeping for ").concat(_this.retryIntervalSeconds, "s and then retrying request...")); - _context6.next = 48; - break; - case 46: - _this.logger.debug("Request #".concat(requestNumber, ": No retries left. Raising last error")); - return _context6.abrupt("return", { - v: Promise.reject(lastException) - }); - case 48: - _context6.next = 50; - return _this.timer(_this.retryIntervalSeconds); - case 50: - _context6.prev = 50; - if (abortSignal && abortListener) { - abortSignal.removeEventListener("abort", abortListener); - } - return _context6.finish(50); - case 53: - case "end": - return _context6.stop(); - } - }, _loop, null, [[4, 34, 50, 53]]); - }); - numTries = 1; - case 8: - if (!(numTries <= this.numRetriesPerRequest + 1)) { - _context7.next = 16; - break; - } - return _context7.delegateYield(_loop(), "t0", 10); - case 10: - _ret = _context7.t0; - if (!_ret) { - _context7.next = 13; - break; - } - return _context7.abrupt("return", _ret.v); - case 13: - numTries++; - _context7.next = 8; - break; - case 16: - this.logger.debug("Request #".concat(requestNumber, ": No retries left. Raising last error")); - return _context7.abrupt("return", Promise.reject(lastException)); - case 18: - case "end": - return _context7.stop(); - } - }, _callee6, this); - })); - function performRequest(_x6, _x7, _x8) { - return _performRequest.apply(this, arguments); - } - return performRequest; - }() - }, { - key: "processStreamingLine", - value: function processStreamingLine(line) { - if (!line.trim() || line === "data: [DONE]") { - return null; - } - - // Handle SSE format (data: {...}) - if (line.startsWith("data: ")) { - return this.processDataLine(line.slice(6).trim()); - } - - // Try parsing as JSON if it starts with a brace - if (line.trim().startsWith("{")) { - try { - var jsonData = JSON.parse(line.trim()); - if (jsonData && (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(jsonData) === "object") { - if (!jsonData.conversation_id) { - jsonData.conversation_id = "unknown"; - } - if (!jsonData.message && jsonData.message !== "") { - jsonData.message = ""; - } - return jsonData; - } - return { - conversation_id: "unknown", - message: JSON.stringify(jsonData) - }; - } catch (e) { - return { - conversation_id: "unknown", - message: line.trim() - }; - } - } - return { - conversation_id: "unknown", - message: line.trim() - }; - } - }, { - key: "processDataLine", - value: function processDataLine(dataContent) { - if (!dataContent) { - return null; - } - if (dataContent.startsWith("{")) { - try { - var jsonData = JSON.parse(dataContent); - // Ensure the required fields exist - if (jsonData && (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(jsonData) === "object") { - if (!jsonData.conversation_id) { - jsonData.conversation_id = "unknown"; - } - if (!jsonData.message && jsonData.message !== "") { - jsonData.message = ""; - } - return jsonData; - } - return { - conversation_id: "unknown", - message: JSON.stringify(jsonData) - }; - } catch (e) { - // Not valid JSON, use as plain text - return { - conversation_id: "unknown", - message: dataContent - }; - } - } - - // For plain text - return { - conversation_id: "unknown", - message: dataContent - }; - } - }, { - key: "handleStreamingResponse", - value: function () { - var _handleStreamingResponse = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee7(response, streamConfig) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee7$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - this.logger.debug("Handling streaming response. Environment: ".concat(isNodeJSEnvironment ? "Node.js" : "Browser")); - if (!(isNodeJSEnvironment && response.data)) { - _context8.next = 3; - break; - } - return _context8.abrupt("return", this.handleNodeStreaming(response, streamConfig)); - case 3: - if (isNodeJSEnvironment) { - _context8.next = 5; - break; - } - return _context8.abrupt("return", this.handleBrowserStreaming(response, streamConfig)); - case 5: - this.logger.debug("Processing non-streaming response"); - this.invokeOnCompleteCallback(response.data, streamConfig); - return _context8.abrupt("return", Promise.resolve(response.data)); - case 8: - case "end": - return _context8.stop(); - } - }, _callee7, this); - })); - function handleStreamingResponse(_x9, _x10) { - return _handleStreamingResponse.apply(this, arguments); - } - return handleStreamingResponse; - }() - }, { - key: "handleNodeStreaming", - value: function handleNodeStreaming(response, streamConfig) { - var _this2 = this; - this.logger.debug("Processing Node.js stream"); - return new Promise(function (resolve, reject) { - var stream = response.data; - var allChunks = []; - var buffer = ""; - stream.on("data", function (chunk) { - try { - var _lines$pop; - var data = chunk.toString(); - buffer += data; - var lines = buffer.split("\n"); - buffer = (_lines$pop = lines.pop()) !== null && _lines$pop !== void 0 ? _lines$pop : ""; - _this2.processStreamLines(lines, allChunks, streamConfig); - } catch (error) { - reject(error); - } - }); - stream.on("end", function () { - if (buffer.trim().length > 0) { - var lines = buffer.split("\n"); - _this2.processStreamLines(lines, allChunks, streamConfig); - } - _this2.finalizeStreamResult(allChunks, resolve, response, streamConfig); - }); - stream.on("error", function (error) { - _this2.logger.error("Stream error: ".concat(error)); - _this2.invokeOnErrorCallback(error, streamConfig); - reject(error); - }); - }); - } - }, { - key: "handleBrowserStreaming", - value: function handleBrowserStreaming(response, streamConfig) { - var _this3 = this; - this.logger.debug("Processing browser stream"); - return new Promise( /*#__PURE__*/function () { - var _ref4 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee8(resolve, reject) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee8$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - _context9.prev = 0; - if (!(response.data && typeof response.data.getReader === "function")) { - _context9.next = 3; - break; - } - return _context9.abrupt("return", _this3.handleBrowserReadableStream(response.data, resolve, reject, response, streamConfig)); - case 3: - if (!(typeof response.data === "string")) { - _context9.next = 5; - break; - } - return _context9.abrupt("return", _this3.handleBrowserStringResponse(response.data, resolve, response, streamConfig)); - case 5: - if (!((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(response.data) === "object" && response.data !== null)) { - _context9.next = 9; - break; - } - _this3.logger.debug("No stream found, but data object is available"); - _this3.invokeOnCompleteCallback(response.data, streamConfig); - return _context9.abrupt("return", resolve(response.data)); - case 9: - _this3.logger.error("No usable data found in response"); - return _context9.abrupt("return", reject(new Error("No usable data found in response"))); - case 13: - _context9.prev = 13; - _context9.t0 = _context9["catch"](0); - _this3.logger.error("Error processing streaming response: ".concat(_context9.t0)); - _this3.invokeOnErrorCallback(_context9.t0, streamConfig); - reject(_context9.t0); - case 18: - case "end": - return _context9.stop(); - } - }, _callee8, null, [[0, 13]]); - })); - return function (_x11, _x12) { - return _ref4.apply(this, arguments); - }; - }()); - } - }, { - key: "handleBrowserReadableStream", - value: function () { - var _handleBrowserReadableStream = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee9(stream, resolve, reject, response, streamConfig) { - var reader, allChunks, buffer, _yield$reader$read, done, _value, _lines, chunk, lines; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee9$(_context10) { - while (1) switch (_context10.prev = _context10.next) { - case 0: - this.logger.debug("Found ReadableStream in response.data"); - reader = stream.getReader(); - allChunks = []; - buffer = ""; - _context10.prev = 4; - case 5: - if (false) {} - _context10.next = 8; - return reader.read(); - case 8: - _yield$reader$read = _context10.sent; - done = _yield$reader$read.done; - _value = _yield$reader$read.value; - if (!done) { - _context10.next = 15; - break; - } - this.logger.debug("Stream reading complete"); - if (buffer.trim()) { - _lines = buffer.split("\n"); - this.processStreamLines(_lines, allChunks, streamConfig); - } - return _context10.abrupt("break", 23); - case 15: - chunk = new TextDecoder().decode(_value); - this.logger.debug("Received chunk: ".concat(chunk.length, " bytes")); - buffer += chunk; - lines = buffer.split("\n"); - buffer = lines.pop() || ""; - this.processStreamLines(lines, allChunks, streamConfig); - _context10.next = 5; - break; - case 23: - this.finalizeStreamResult(allChunks, resolve, response, streamConfig); - _context10.next = 31; - break; - case 26: - _context10.prev = 26; - _context10.t0 = _context10["catch"](4); - this.logger.error("Stream error: ".concat(_context10.t0)); - this.invokeOnErrorCallback(_context10.t0, streamConfig); - reject(_context10.t0); - case 31: - case "end": - return _context10.stop(); - } - }, _callee9, this, [[4, 26]]); - })); - function handleBrowserReadableStream(_x13, _x14, _x15, _x16, _x17) { - return _handleBrowserReadableStream.apply(this, arguments); - } - return handleBrowserReadableStream; - }() - }, { - key: "handleBrowserStringResponse", - value: function handleBrowserStringResponse(data, resolve, response, streamConfig) { - this.logger.debug("Processing text response as stream data"); - var allChunks = []; - var lines = data.split("\n"); - this.processStreamLines(lines, allChunks, streamConfig); - if (allChunks.length > 0) { - var finalResult = this.combineStreamingChunks(allChunks); - this.invokeOnCompleteCallback(finalResult, streamConfig); - resolve(finalResult); - } else { - // If no chunks were processed, use the original response - this.logger.debug("No chunks processed, returning original API response"); - this.invokeOnCompleteCallback(response.data, streamConfig); - resolve(response.data); - } - } - }, { - key: "processStreamLines", - value: function processStreamLines(lines, allChunks, streamConfig) { - var _iterator = _createForOfIteratorHelper(lines), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var line = _step.value; - if (line.trim() && line !== "data: [DONE]") { - var processed = this.processStreamingLine(line); - if (processed !== null) { - this.invokeOnChunkCallback(processed, streamConfig); - allChunks.push(processed); - } - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - } - }, { - key: "finalizeStreamResult", - value: function finalizeStreamResult(allChunks, resolve, response, streamConfig) { - if (allChunks.length > 0) { - var finalResult = this.combineStreamingChunks(allChunks); - this.logger.debug("Stream processing complete"); - this.invokeOnCompleteCallback(finalResult, streamConfig); - resolve(finalResult); - } else { - this.logger.debug("No chunks processed, returning original API response"); - this.invokeOnCompleteCallback(response.data, streamConfig); - resolve(response.data); - } - } - - /** - * Combines multiple streaming chunks into a single coherent result - * This is critical for ensuring we return the complete data rather than just the last chunk - */ - }, { - key: "combineStreamingChunks", - value: function combineStreamingChunks(chunks) { - if (chunks.length === 0) return {}; - if (chunks.length === 1) return chunks[0]; - - // For conversation streams with message chunks - var messagesChunks = this.getMessageChunks(chunks); - if (messagesChunks.length > 0) { - return this.combineMessageChunks(chunks, messagesChunks); - } - - // For regular search responses - var lastChunk = chunks[chunks.length - 1]; - if (!this.isCompleteSearchResponse(lastChunk)) { - throw new Error("Last chunk is not a complete search response"); - } - return lastChunk; - } - }, { - key: "getMessageChunks", - value: function getMessageChunks(chunks) { - return chunks.filter(this.isChunkMessage); - } - }, { - key: "isChunkMessage", - value: function isChunkMessage(chunk) { - return (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(chunk) === "object" && chunk !== null && "message" in chunk && "conversation_id" in chunk; - } - }, { - key: "combineMessageChunks", - value: function combineMessageChunks(chunks, messagesChunks) { - this.logger.debug("Found ".concat(messagesChunks.length, " message chunks to combine")); - var lastChunk = chunks[chunks.length - 1]; - if (this.isCompleteSearchResponse(lastChunk)) { - return lastChunk; - } - var metadataChunk = chunks.find(this.isCompleteSearchResponse); - if (!metadataChunk) { - throw new Error("No metadata chunk found"); - } - return metadataChunk; - } - }, { - key: "isCompleteSearchResponse", - value: function isCompleteSearchResponse(chunk) { - if ((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_1__["default"])(chunk) === "object" && chunk !== null && Object.keys(chunk).length > 0) { - return "results" in chunk || "found" in chunk || "hits" in chunk || "page" in chunk || "search_time_ms" in chunk; - } - return false; - } - - // Attempts to find the next healthy node, looping through the list of nodes once. - // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy - // so we can try the request for good measure, in case that node has become healthy since - }, { - key: "getNextNode", - value: function getNextNode() { - var requestNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - // Check if nearestNode is set and is healthy, if so return it - if (this.nearestNode != null) { - this.logger.debug("Request #".concat(requestNumber, ": Nodes Health: Node ").concat(this.nearestNode.index, " is ").concat(this.nearestNode.isHealthy === true ? "Healthy" : "Unhealthy")); - if (this.nearestNode.isHealthy === true || this.nodeDueForHealthcheck(this.nearestNode, requestNumber)) { - this.logger.debug("Request #".concat(requestNumber, ": Updated current node to Node ").concat(this.nearestNode.index)); - return this.nearestNode; - } - this.logger.debug("Request #".concat(requestNumber, ": Falling back to individual nodes")); - } - - // Fallback to nodes as usual - this.logger.debug("Request #".concat(requestNumber, ": Nodes Health: ").concat(this.nodes.map(function (node) { - return "Node ".concat(node.index, " is ").concat(node.isHealthy === true ? "Healthy" : "Unhealthy"); - }).join(" || "))); - var candidateNode = this.nodes[0]; - for (var i = 0; i <= this.nodes.length; i++) { - this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length; - candidateNode = this.nodes[this.currentNodeIndex]; - if (candidateNode.isHealthy === true || this.nodeDueForHealthcheck(candidateNode, requestNumber)) { - this.logger.debug("Request #".concat(requestNumber, ": Updated current node to Node ").concat(candidateNode.index)); - return candidateNode; - } - } - - // None of the nodes are marked healthy, but some of them could have become healthy since last health check. - // So we will just return the next node. - this.logger.debug("Request #".concat(requestNumber, ": No healthy nodes were found. Returning the next node, Node ").concat(candidateNode.index)); - return candidateNode; - } - }, { - key: "nodeDueForHealthcheck", - value: function nodeDueForHealthcheck(node) { - var requestNumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var isDueForHealthcheck = Date.now() - node.lastAccessTimestamp > this.healthcheckIntervalSeconds * 1000; - if (isDueForHealthcheck) { - this.logger.debug("Request #".concat(requestNumber, ": Node ").concat(node.index, " has exceeded healtcheckIntervalSeconds of ").concat(this.healthcheckIntervalSeconds, ". Adding it back into rotation.")); - } - return isDueForHealthcheck; - } - }, { - key: "initializeMetadataForNodes", - value: function initializeMetadataForNodes() { - var _this4 = this; - if (this.nearestNode != null) { - this.nearestNode.index = "nearestNode"; - this.setNodeHealthcheck(this.nearestNode, HEALTHY); - } - this.nodes.forEach(function (node, i) { - node.index = i; - _this4.setNodeHealthcheck(node, HEALTHY); - }); - } - }, { - key: "setNodeHealthcheck", - value: function setNodeHealthcheck(node, isHealthy) { - node.isHealthy = isHealthy; - node.lastAccessTimestamp = Date.now(); - } - }, { - key: "uriFor", - value: function uriFor(endpoint, node) { - if (node.url != null) { - return "".concat(node.url).concat(endpoint); - } - return "".concat(node.protocol, "://").concat(node.host, ":").concat(node.port).concat(node.path).concat(endpoint); - } - }, { - key: "defaultHeaders", - value: function defaultHeaders() { - var defaultHeaders = {}; - if (!this.sendApiKeyAsQueryParam) { - defaultHeaders[APIKEYHEADERNAME] = this.apiKey; - } - defaultHeaders["Content-Type"] = "application/json"; - return defaultHeaders; - } - }, { - key: "timer", - value: function () { - var _timer = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee10(seconds) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee10$(_context11) { - while (1) switch (_context11.prev = _context11.next) { - case 0: - return _context11.abrupt("return", new Promise(function (resolve) { - return setTimeout(resolve, seconds * 1000); - })); - case 1: - case "end": - return _context11.stop(); - } - }, _callee10); - })); - function timer(_x18) { - return _timer.apply(this, arguments); - } - return timer; - }() - }, { - key: "customErrorForResponse", - value: function customErrorForResponse(response, messageFromServer, httpBody) { - var errorMessage = "Request failed with HTTP code ".concat(response.status); - if (typeof messageFromServer === "string" && messageFromServer.trim() !== "") { - errorMessage += " | Server said: ".concat(messageFromServer); - } - var error = new _Errors_TypesenseError__WEBPACK_IMPORTED_MODULE_9__["default"](errorMessage, httpBody, response.status); - if (response.status === 400) { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.RequestMalformed(errorMessage, httpBody, response.status); - } else if (response.status === 401) { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.RequestUnauthorized(errorMessage, httpBody, response.status); - } else if (response.status === 404) { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.ObjectNotFound(errorMessage, httpBody, response.status); - } else if (response.status === 409) { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.ObjectAlreadyExists(errorMessage, httpBody, response.status); - } else if (response.status === 422) { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.ObjectUnprocessable(errorMessage, httpBody, response.status); - } else if (response.status >= 500 && response.status <= 599) { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.ServerError(errorMessage, httpBody, response.status); - } else { - error = new _Errors__WEBPACK_IMPORTED_MODULE_8__.HTTPError(errorMessage, httpBody, response.status); - } - return error; - } - }, { - key: "invokeOnChunkCallback", - value: function invokeOnChunkCallback(data, streamConfig) { - if (streamConfig !== null && streamConfig !== void 0 && streamConfig.onChunk) { - try { - streamConfig.onChunk(data); - } catch (error) { - this.logger.warn("Error in onChunk callback: ".concat(error)); - } - } - } - }, { - key: "invokeOnCompleteCallback", - value: function invokeOnCompleteCallback(data, streamConfig) { - if (streamConfig !== null && streamConfig !== void 0 && streamConfig.onComplete) { - try { - streamConfig.onComplete(data); - } catch (error) { - this.logger.warn("Error in onComplete callback: ".concat(error)); - } - } - } - }, { - key: "invokeOnErrorCallback", - value: function invokeOnErrorCallback(error, streamConfig) { - if (streamConfig !== null && streamConfig !== void 0 && streamConfig.onError) { - var errorObj = (0,_Utils__WEBPACK_IMPORTED_MODULE_10__.toErrorWithMessage)(error); - try { - streamConfig.onError(errorObj); - } catch (callbackError) { - this.logger.warn("Error in onError callback: ".concat(callbackError)); - } - } - } - }]); - return ApiCall; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Client.ts": -/*!*********************************!*\ - !*** ./src/Typesense/Client.ts ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Client) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _Configuration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Configuration */ "./src/Typesense/Configuration.ts"); -/* harmony import */ var _ApiCall__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ApiCall */ "./src/Typesense/ApiCall.ts"); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); -/* harmony import */ var _Collection__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Collection */ "./src/Typesense/Collection.ts"); -/* harmony import */ var _Aliases__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Aliases */ "./src/Typesense/Aliases.ts"); -/* harmony import */ var _Alias__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Alias */ "./src/Typesense/Alias.ts"); -/* harmony import */ var _Keys__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Keys */ "./src/Typesense/Keys.ts"); -/* harmony import */ var _Key__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Key */ "./src/Typesense/Key.ts"); -/* harmony import */ var _Debug__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Debug */ "./src/Typesense/Debug.ts"); -/* harmony import */ var _Metrics__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Metrics */ "./src/Typesense/Metrics.ts"); -/* harmony import */ var _Stats__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Stats */ "./src/Typesense/Stats.ts"); -/* harmony import */ var _Health__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Health */ "./src/Typesense/Health.ts"); -/* harmony import */ var _Operations__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Operations */ "./src/Typesense/Operations.ts"); -/* harmony import */ var _MultiSearch__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./MultiSearch */ "./src/Typesense/MultiSearch.ts"); -/* harmony import */ var _Presets__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Presets */ "./src/Typesense/Presets.ts"); -/* harmony import */ var _Preset__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Preset */ "./src/Typesense/Preset.ts"); -/* harmony import */ var _Analytics__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Analytics */ "./src/Typesense/Analytics.ts"); -/* harmony import */ var _Stopwords__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Stopwords */ "./src/Typesense/Stopwords.ts"); -/* harmony import */ var _Stopword__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Stopword */ "./src/Typesense/Stopword.ts"); -/* harmony import */ var _Conversations__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Conversations */ "./src/Typesense/Conversations.ts"); -/* harmony import */ var _Conversation__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Conversation */ "./src/Typesense/Conversation.ts"); -/* harmony import */ var _Stemming__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Stemming */ "./src/Typesense/Stemming.ts"); - - -/* eslint-disable no-dupe-class-members */ - - - - - - - - - - - - - - - - - - - - - - - -var Client = /*#__PURE__*/function () { - function Client(options) { - var _options$sendApiKeyAs; - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, Client); - options.sendApiKeyAsQueryParam = (_options$sendApiKeyAs = options.sendApiKeyAsQueryParam) !== null && _options$sendApiKeyAs !== void 0 ? _options$sendApiKeyAs : false; - this.configuration = new _Configuration__WEBPACK_IMPORTED_MODULE_2__["default"](options); - this.apiCall = new _ApiCall__WEBPACK_IMPORTED_MODULE_3__["default"](this.configuration); - this.debug = new _Debug__WEBPACK_IMPORTED_MODULE_10__["default"](this.apiCall); - this.metrics = new _Metrics__WEBPACK_IMPORTED_MODULE_11__["default"](this.apiCall); - this.stats = new _Stats__WEBPACK_IMPORTED_MODULE_12__["default"](this.apiCall); - this.health = new _Health__WEBPACK_IMPORTED_MODULE_13__["default"](this.apiCall); - this.operations = new _Operations__WEBPACK_IMPORTED_MODULE_14__["default"](this.apiCall); - this.multiSearch = new _MultiSearch__WEBPACK_IMPORTED_MODULE_15__["default"](this.apiCall, this.configuration); - this._collections = new _Collections__WEBPACK_IMPORTED_MODULE_4__["default"](this.apiCall); - this.individualCollections = {}; - this._aliases = new _Aliases__WEBPACK_IMPORTED_MODULE_6__["default"](this.apiCall); - this.individualAliases = {}; - this._keys = new _Keys__WEBPACK_IMPORTED_MODULE_8__["default"](this.apiCall); - this.individualKeys = {}; - this._presets = new _Presets__WEBPACK_IMPORTED_MODULE_16__["default"](this.apiCall); - this.individualPresets = {}; - this._stopwords = new _Stopwords__WEBPACK_IMPORTED_MODULE_19__["default"](this.apiCall); - this.individualStopwords = {}; - this.analytics = new _Analytics__WEBPACK_IMPORTED_MODULE_18__["default"](this.apiCall); - this.stemming = new _Stemming__WEBPACK_IMPORTED_MODULE_23__["default"](this.apiCall); - this._conversations = new _Conversations__WEBPACK_IMPORTED_MODULE_21__["default"](this.apiCall); - this.individualConversations = {}; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Client, [{ - key: "collections", - value: function collections(collectionName) { - if (collectionName === undefined) { - return this._collections; - } else { - if (this.individualCollections[collectionName] === undefined) { - this.individualCollections[collectionName] = new _Collection__WEBPACK_IMPORTED_MODULE_5__["default"](collectionName, this.apiCall, this.configuration); - } - return this.individualCollections[collectionName]; - } - } - }, { - key: "aliases", - value: function aliases(aliasName) { - if (aliasName === undefined) { - return this._aliases; - } else { - if (this.individualAliases[aliasName] === undefined) { - this.individualAliases[aliasName] = new _Alias__WEBPACK_IMPORTED_MODULE_7__["default"](aliasName, this.apiCall); - } - return this.individualAliases[aliasName]; - } - } - }, { - key: "keys", - value: function keys(id) { - if (id === undefined) { - return this._keys; - } else { - if (this.individualKeys[id] === undefined) { - this.individualKeys[id] = new _Key__WEBPACK_IMPORTED_MODULE_9__["default"](id, this.apiCall); - } - return this.individualKeys[id]; - } - } - }, { - key: "presets", - value: function presets(id) { - if (id === undefined) { - return this._presets; - } else { - if (this.individualPresets[id] === undefined) { - this.individualPresets[id] = new _Preset__WEBPACK_IMPORTED_MODULE_17__["default"](id, this.apiCall); - } - return this.individualPresets[id]; - } - } - }, { - key: "stopwords", - value: function stopwords(id) { - if (id === undefined) { - return this._stopwords; - } else { - if (this.individualStopwords[id] === undefined) { - this.individualStopwords[id] = new _Stopword__WEBPACK_IMPORTED_MODULE_20__["default"](id, this.apiCall); - } - return this.individualStopwords[id]; - } - } - }, { - key: "conversations", - value: function conversations(id) { - if (id === undefined) { - return this._conversations; - } else { - if (this.individualConversations[id] === undefined) { - this.individualConversations[id] = new _Conversation__WEBPACK_IMPORTED_MODULE_22__["default"](id, this.apiCall); - } - return this.individualConversations[id]; - } - } - }]); - return Client; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Collection.ts": -/*!*************************************!*\ - !*** ./src/Typesense/Collection.ts ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Collection) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); -/* harmony import */ var _Documents__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Documents */ "./src/Typesense/Documents.ts"); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); -/* harmony import */ var _Overrides__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Overrides */ "./src/Typesense/Overrides.ts"); -/* harmony import */ var _Override__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Override */ "./src/Typesense/Override.ts"); -/* harmony import */ var _Synonyms__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Synonyms */ "./src/Typesense/Synonyms.ts"); -/* harmony import */ var _Synonym__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Synonym */ "./src/Typesense/Synonym.ts"); -/* harmony import */ var _Document__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Document */ "./src/Typesense/Document.ts"); - - - - - - - - - - - - - -var Collection = /*#__PURE__*/function () { - function Collection(name, apiCall, configuration) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Collection); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(this, "individualDocuments", {}); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(this, "individualOverrides", {}); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(this, "individualSynonyms", {}); - this.name = name; - this.apiCall = apiCall; - this.configuration = configuration; - this.name = name; - this.apiCall = apiCall; - this.configuration = configuration; - this._documents = new _Documents__WEBPACK_IMPORTED_MODULE_6__["default"](this.name, this.apiCall, this.configuration); - this._overrides = new _Overrides__WEBPACK_IMPORTED_MODULE_8__["default"](this.name, this.apiCall); - this._synonyms = new _Synonyms__WEBPACK_IMPORTED_MODULE_10__["default"](this.name, this.apiCall); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Collection, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "update", - value: function () { - var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2(schema) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.patch(this.endpointPath(), schema)); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function update(_x) { - return _update.apply(this, arguments); - } - return update; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee3() { - var options, - _args3 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}; - return _context3.abrupt("return", this.apiCall.delete(this.endpointPath(), options)); - case 2: - case "end": - return _context3.stop(); - } - }, _callee3, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "exists", - value: function () { - var _exists = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee4() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.prev = 0; - _context4.next = 3; - return this.retrieve(); - case 3: - return _context4.abrupt("return", true); - case 6: - _context4.prev = 6; - _context4.t0 = _context4["catch"](0); - if (!(_context4.t0 instanceof _Errors__WEBPACK_IMPORTED_MODULE_7__.ObjectNotFound)) { - _context4.next = 10; - break; - } - return _context4.abrupt("return", false); - case 10: - throw _context4.t0; - case 11: - case "end": - return _context4.stop(); - } - }, _callee4, this, [[0, 6]]); - })); - function exists() { - return _exists.apply(this, arguments); - } - return exists; - }() - }, { - key: "documents", - value: function documents(documentId) { - if (!documentId) { - return this._documents; - } else { - if (this.individualDocuments[documentId] === undefined) { - this.individualDocuments[documentId] = new _Document__WEBPACK_IMPORTED_MODULE_12__.Document(this.name, documentId, this.apiCall); - } - return this.individualDocuments[documentId]; - } - } - }, { - key: "overrides", - value: function overrides(overrideId) { - if (overrideId === undefined) { - return this._overrides; - } else { - if (this.individualOverrides[overrideId] === undefined) { - this.individualOverrides[overrideId] = new _Override__WEBPACK_IMPORTED_MODULE_9__["default"](this.name, overrideId, this.apiCall); - } - return this.individualOverrides[overrideId]; - } - } - }, { - key: "synonyms", - value: function synonyms(synonymId) { - if (synonymId === undefined) { - return this._synonyms; - } else { - if (this.individualSynonyms[synonymId] === undefined) { - this.individualSynonyms[synonymId] = new _Synonym__WEBPACK_IMPORTED_MODULE_11__["default"](this.name, synonymId, this.apiCall); - } - return this.individualSynonyms[synonymId]; - } - } - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_5__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); - } - }]); - return Collection; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Collections.ts": -/*!**************************************!*\ - !*** ./src/Typesense/Collections.ts ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Collections) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -/** - * Defines the schema for creating a collection in Typesense. - * - * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields. - * Otherwise, `fields` will be required. - */ - -var RESOURCEPATH = "/collections"; -var Collections = /*#__PURE__*/function () { - function Collections(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Collections); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Collections, [{ - key: "create", - value: function () { - var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(schema, options) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.post(RESOURCEPATH, schema, options)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function create(_x, _x2) { - return _create.apply(this, arguments); - } - return create; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - var options, - _args2 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {}; - return _context2.abrupt("return", this.apiCall.get(RESOURCEPATH, options)); - case 2: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Collections; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Configuration.ts": -/*!****************************************!*\ - !*** ./src/Typesense/Configuration.ts ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Configuration) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! loglevel */ "./node_modules/loglevel/lib/loglevel.js"); -/* harmony import */ var loglevel__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(loglevel__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); - - - -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } - - - -/** - * Configuration options for streaming responses - */ - -/** - * Stream configuration for standard search responses - * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature - */ -var Configuration = /*#__PURE__*/function () { - function Configuration(options) { - var _this = this; - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Configuration); - this.nodes = options.nodes || []; - this.nodes = this.nodes.map(function (node) { - return _this.setDefaultPathInNode(node); - }).map(function (node) { - return _this.setDefaultPortInNode(node); - }).map(function (node) { - return _objectSpread({}, node); - }); // Make a deep copy - - if (options.randomizeNodes == null) { - options.randomizeNodes = true; - } - if (options.randomizeNodes === true) { - this.shuffleArray(this.nodes); - } - this.nearestNode = options.nearestNode; - this.nearestNode = this.setDefaultPathInNode(this.nearestNode); - this.nearestNode = this.setDefaultPortInNode(this.nearestNode); - this.connectionTimeoutSeconds = options.connectionTimeoutSeconds || options.timeoutSeconds || 5; - this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60; - this.numRetries = (options.numRetries !== undefined && options.numRetries >= 0 ? options.numRetries : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3; - this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1; - this.apiKey = options.apiKey; - this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient - - this.cacheSearchResultsForSeconds = options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default - this.useServerSideSearchCache = options.useServerSideSearchCache || false; - this.axiosAdapter = options.axiosAdapter; - this.logger = options.logger || loglevel__WEBPACK_IMPORTED_MODULE_3__; - this.logLevel = options.logLevel || "warn"; - this.logger.setLevel(this.logLevel); - this.additionalHeaders = options.additionalHeaders; - this.httpAgent = options.httpAgent; - this.httpsAgent = options.httpsAgent; - this.paramsSerializer = options.paramsSerializer; - this.showDeprecationWarnings(options); - this.validate(); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Configuration, [{ - key: "validate", - value: function validate() { - if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) { - throw new _Errors__WEBPACK_IMPORTED_MODULE_4__.MissingConfigurationError("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set"); - } - if (this.nearestNode != null && this.isNodeMissingAnyParameters(this.nearestNode)) { - throw new _Errors__WEBPACK_IMPORTED_MODULE_4__.MissingConfigurationError("Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set"); - } - if (this.apiKey == null) { - throw new _Errors__WEBPACK_IMPORTED_MODULE_4__.MissingConfigurationError("Ensure that apiKey is set"); - } - return true; - } - }, { - key: "validateNodes", - value: function validateNodes() { - var _this2 = this; - return this.nodes.some(function (node) { - return _this2.isNodeMissingAnyParameters(node); - }); - } - }, { - key: "isNodeMissingAnyParameters", - value: function isNodeMissingAnyParameters(node) { - return !["protocol", "host", "port", "path"].every(function (key) { - return node.hasOwnProperty(key); - }) && node["url"] == null; - } - }, { - key: "setDefaultPathInNode", - value: function setDefaultPathInNode(node) { - if (node != null && !node.hasOwnProperty("path")) { - node["path"] = ""; - } - return node; - } - }, { - key: "setDefaultPortInNode", - value: function setDefaultPortInNode(node) { - if (node != null && !node.hasOwnProperty("port") && node.hasOwnProperty("protocol")) { - switch (node["protocol"]) { - case "https": - node["port"] = 443; - break; - case "http": - node["port"] = 80; - break; - } - } - return node; - } - }, { - key: "showDeprecationWarnings", - value: function showDeprecationWarnings(options) { - if (options.timeoutSeconds) { - this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"); - } - if (options.masterNode) { - this.logger.warn("Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12"); - } - if (options.readReplicaNodes) { - this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12"); - } - } - }, { - key: "shuffleArray", - value: function shuffleArray(array) { - for (var i = array.length - 1; i > 0; i--) { - var j = Math.floor(Math.random() * (i + 1)); - var _ref = [array[j], array[i]]; - array[i] = _ref[0]; - array[j] = _ref[1]; - } - } - }]); - return Configuration; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Conversation.ts": -/*!***************************************!*\ - !*** ./src/Typesense/Conversation.ts ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Conversation) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Conversations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Conversations */ "./src/Typesense/Conversations.ts"); - - - - - -var Conversation = /*#__PURE__*/function () { - function Conversation(id, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Conversation); - this.id = id; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Conversation, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "update", - value: function () { - var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.put(this.endpointPath(), params)); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function update(_x) { - return _update.apply(this, arguments); - } - return update; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context3.stop(); - } - }, _callee3, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Conversations__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - } - }]); - return Conversation; -}(); - - -/***/ }), - -/***/ "./src/Typesense/ConversationModel.ts": -/*!********************************************!*\ - !*** ./src/Typesense/ConversationModel.ts ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ConversationModel) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _ConversationModels__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ConversationModels */ "./src/Typesense/ConversationModels.ts"); - - - - - -var ConversationModel = /*#__PURE__*/function () { - function ConversationModel(id, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ConversationModel); - this.id = id; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(ConversationModel, [{ - key: "update", - value: function () { - var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.put(this.endpointPath(), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function update(_x) { - return _update.apply(this, arguments); - } - return update; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context3.stop(); - } - }, _callee3, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_ConversationModels__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - } - }]); - return ConversationModel; -}(); - - -/***/ }), - -/***/ "./src/Typesense/ConversationModels.ts": -/*!*********************************************!*\ - !*** ./src/Typesense/ConversationModels.ts ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ConversationModels) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/conversations/models"; -var ConversationModels = /*#__PURE__*/function () { - function ConversationModels(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ConversationModels); - this.apiCall = apiCall; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(ConversationModels, [{ - key: "create", - value: function () { - var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.post(this.endpointPath(), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function create(_x) { - return _create.apply(this, arguments); - } - return create; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(ConversationModels.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return ConversationModels; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Conversations.ts": -/*!****************************************!*\ - !*** ./src/Typesense/Conversations.ts ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Conversations) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _ConversationModels__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ConversationModels */ "./src/Typesense/ConversationModels.ts"); -/* harmony import */ var _ConversationModel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ConversationModel */ "./src/Typesense/ConversationModel.ts"); - - - - - - - -var RESOURCEPATH = "/conversations"; -var Conversations = /*#__PURE__*/function () { - function Conversations(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Conversations); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(this, "individualConversationModels", {}); - this.apiCall = apiCall; - this.apiCall = apiCall; - this._conversationsModels = new _ConversationModels__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Conversations, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "models", - value: function models(id) { - if (id === undefined) { - return this._conversationsModels; - } else { - if (this.individualConversationModels[id] === undefined) { - this.individualConversationModels[id] = new _ConversationModel__WEBPACK_IMPORTED_MODULE_6__["default"](id, this.apiCall); - } - return this.individualConversationModels[id]; - } - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Conversations; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Debug.ts": -/*!********************************!*\ - !*** ./src/Typesense/Debug.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Debug) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/debug"; -var Debug = /*#__PURE__*/function () { - function Debug(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Debug); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Debug, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }]); - return Debug; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Document.ts": -/*!***********************************!*\ - !*** ./src/Typesense/Document.ts ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Document: () => (/* binding */ Document) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); -/* harmony import */ var _Documents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Documents */ "./src/Typesense/Documents.ts"); - - - - - - -var Document = /*#__PURE__*/function () { - function Document(collectionName, documentId, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Document); - this.collectionName = collectionName; - this.documentId = documentId; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Document, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2(options) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath(), options)); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete(_x) { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "update", - value: function () { - var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee3(partialDocument) { - var options, - _args3 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {}; - return _context3.abrupt("return", this.apiCall.patch(this.endpointPath(), partialDocument, options)); - case 2: - case "end": - return _context3.stop(); - } - }, _callee3, this); - })); - function update(_x2) { - return _update.apply(this, arguments); - } - return update; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(_Documents__WEBPACK_IMPORTED_MODULE_5__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.documentId)); - } - }]); - return Document; -}(); - -/***/ }), - -/***/ "./src/Typesense/Documents.ts": -/*!************************************!*\ - !*** ./src/Typesense/Documents.ts ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Documents) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); -/* harmony import */ var _SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SearchOnlyDocuments */ "./src/Typesense/SearchOnlyDocuments.ts"); - - - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - - - -// Todo: use generic to extract filter_by values - -// Todo: we could infer whether this is a grouped response by adding the search params as a generic - -var isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null; -var Documents = /*#__PURE__*/function (_ref) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_5__["default"])(Documents, _ref); - function Documents(collectionName, apiCall, configuration) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Documents); - return _callSuper(this, Documents, [collectionName, apiCall, configuration]); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Documents, [{ - key: "create", - value: function () { - var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee(document) { - var options, - _args = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; - if (document) { - _context.next = 3; - break; - } - throw new Error("No document provided"); - case 3: - return _context.abrupt("return", this.apiCall.post(this.endpointPath(), document, options)); - case 4: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function create(_x) { - return _create.apply(this, arguments); - } - return create; - }() - }, { - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee2(document) { - var options, - _args2 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - options = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {}; - if (document) { - _context2.next = 3; - break; - } - throw new Error("No document provided"); - case 3: - return _context2.abrupt("return", this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { - action: "upsert" - }))); - case 4: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function upsert(_x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "update", - value: function () { - var _update = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee3(document) { - var options, - _args3 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - options = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {}; - if (document) { - _context3.next = 3; - break; - } - throw new Error("No document provided"); - case 3: - if (!(options["filter_by"] != null)) { - _context3.next = 7; - break; - } - return _context3.abrupt("return", this.apiCall.patch(this.endpointPath(), document, Object.assign({}, options))); - case 7: - return _context3.abrupt("return", this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { - action: "update" - }))); - case 8: - case "end": - return _context3.stop(); - } - }, _callee3, this); - })); - function update(_x3) { - return _update.apply(this, arguments); - } - return update; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee4() { - var query, - _args4 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - query = _args4.length > 0 && _args4[0] !== undefined ? _args4[0] : {}; - return _context4.abrupt("return", this.apiCall.delete(this.endpointPath(), query)); - case 2: - case "end": - return _context4.stop(); - } - }, _callee4, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "createMany", - value: function () { - var _createMany = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee5(documents) { - var options, - _args5 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - options = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {}; - this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"); - return _context5.abrupt("return", this.import(documents, options)); - case 3: - case "end": - return _context5.stop(); - } - }, _callee5, this); - })); - function createMany(_x4) { - return _createMany.apply(this, arguments); - } - return createMany; - }() - /** - * Import a set of documents in a batch. - * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects. - * @param options - * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results. - */ - }, { - key: "import", - value: function () { - var _import2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee6(documents) { - var options, - documentsInJSONLFormat, - resultsInJSONLFormat, - resultsInJSONFormat, - failedItems, - _args6 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - options = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : {}; - if (!Array.isArray(documents)) { - _context6.next = 15; - break; - } - if (!(documents.length === 0)) { - _context6.next = 4; - break; - } - throw new _Errors__WEBPACK_IMPORTED_MODULE_7__.RequestMalformed("No documents provided"); - case 4: - _context6.prev = 4; - documentsInJSONLFormat = documents.map(function (document) { - return JSON.stringify(document); - }).join("\n"); - _context6.next = 13; - break; - case 8: - _context6.prev = 8; - _context6.t0 = _context6["catch"](4); - if (!(_context6.t0 instanceof RangeError && _context6.t0.message.includes("Too many properties to enumerate"))) { - _context6.next = 12; - break; - } - throw new Error("".concat(_context6.t0, "\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n ")); - case 12: - throw new Error(_context6.t0); - case 13: - _context6.next = 18; - break; - case 15: - documentsInJSONLFormat = documents; - if (!isEmptyString(documentsInJSONLFormat)) { - _context6.next = 18; - break; - } - throw new _Errors__WEBPACK_IMPORTED_MODULE_7__.RequestMalformed("No documents provided"); - case 18: - _context6.next = 20; - return this.apiCall.performRequest("post", this.endpointPath("import"), { - queryParameters: options, - bodyParameters: documentsInJSONLFormat, - additionalHeaders: { - "Content-Type": "text/plain" - }, - skipConnectionTimeout: true, - // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully - enableKeepAlive: isNodeJSEnvironment ? true : false // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 - }); - case 20: - resultsInJSONLFormat = _context6.sent; - if (!Array.isArray(documents)) { - _context6.next = 31; - break; - } - resultsInJSONFormat = resultsInJSONLFormat.split("\n").map(function (r) { - return JSON.parse(r); - }); - failedItems = resultsInJSONFormat.filter(function (r) { - return r.success === false; - }); - if (!(failedItems.length > 0)) { - _context6.next = 28; - break; - } - throw new _Errors__WEBPACK_IMPORTED_MODULE_7__.ImportError("".concat(resultsInJSONFormat.length - failedItems.length, " documents imported successfully, ").concat(failedItems.length, " documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."), resultsInJSONFormat, { - documentsInJSONLFormat: documentsInJSONLFormat, - options: options, - failedItems: failedItems, - successCount: resultsInJSONFormat.length - failedItems.length - }); - case 28: - return _context6.abrupt("return", resultsInJSONFormat); - case 29: - _context6.next = 32; - break; - case 31: - return _context6.abrupt("return", resultsInJSONLFormat); - case 32: - case "end": - return _context6.stop(); - } - }, _callee6, this, [[4, 8]]); - })); - function _import(_x5) { - return _import2.apply(this, arguments); - } - return _import; - }() - /** - * Imports documents from a NodeJS readable stream of JSONL. - */ - }, { - key: "importStream", - value: (function () { - var _importStream = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee7(readableStream) { - var options, - resultsInJSONLFormat, - resultsInJSONFormat, - failedItems, - _args7 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - options = _args7.length > 1 && _args7[1] !== undefined ? _args7[1] : {}; - _context7.next = 3; - return this.apiCall.performRequest("post", this.endpointPath("import"), { - queryParameters: options, - bodyParameters: readableStream, - additionalHeaders: { - "Content-Type": "text/plain" - }, - skipConnectionTimeout: true, - // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully - enableKeepAlive: isNodeJSEnvironment ? true : false // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 - }); - case 3: - resultsInJSONLFormat = _context7.sent; - resultsInJSONFormat = resultsInJSONLFormat.split("\n").map(function (r) { - return JSON.parse(r); - }); - failedItems = resultsInJSONFormat.filter(function (r) { - return r.success === false; - }); - if (!(failedItems.length > 0)) { - _context7.next = 10; - break; - } - throw new _Errors__WEBPACK_IMPORTED_MODULE_7__.ImportError("".concat(resultsInJSONFormat.length - failedItems.length, " documents imported successfully, ").concat(failedItems.length, " documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."), resultsInJSONFormat, { - documentsInJSONLFormat: readableStream, - options: options, - failedItems: failedItems, - successCount: resultsInJSONFormat.length - failedItems.length - }); - case 10: - return _context7.abrupt("return", resultsInJSONFormat); - case 11: - case "end": - return _context7.stop(); - } - }, _callee7, this); - })); - function importStream(_x6) { - return _importStream.apply(this, arguments); - } - return importStream; - }() - /** - * Returns a JSONL string for all the documents in this collection - */ - ) - }, { - key: "export", - value: (function () { - var _export2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee8() { - var options, - _args8 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - options = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {}; - return _context8.abrupt("return", this.apiCall.get(this.endpointPath("export"), options)); - case 2: - case "end": - return _context8.stop(); - } - }, _callee8, this); - })); - function _export() { - return _export2.apply(this, arguments); - } - return _export; - }() - /** - * Returns a NodeJS readable stream of JSONL for all the documents in this collection. - */ - ) - }, { - key: "exportStream", - value: (function () { - var _exportStream = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().mark(function _callee9() { - var options, - _args9 = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_6___default().wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - options = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : {}; - return _context9.abrupt("return", this.apiCall.get(this.endpointPath("export"), options, { - responseType: "stream" - })); - case 2: - case "end": - return _context9.stop(); - } - }, _callee9, this); - })); - function exportStream() { - return _exportStream.apply(this, arguments); - } - return exportStream; - }()) - }]); - return Documents; -}(_SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_8__.SearchOnlyDocuments); - -function isEmptyString(str) { - return str == null || str === "" || str.length === 0; -} - -/** - * @deprecated Import from './Types' instead - */ - -/***/ }), - -/***/ "./src/Typesense/Errors/HTTPError.ts": -/*!*******************************************!*\ - !*** ./src/Typesense/Errors/HTTPError.ts ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ HTTPError) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var HTTPError = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(HTTPError, _TypesenseError); - function HTTPError() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, HTTPError); - return _callSuper(this, HTTPError, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(HTTPError); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/ImportError.ts": -/*!*********************************************!*\ - !*** ./src/Typesense/Errors/ImportError.ts ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ImportError) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var ImportError = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(ImportError, _TypesenseError); - function ImportError(message, importResults, payload) { - var _this; - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ImportError); - _this = _callSuper(this, ImportError, [message]); - _this.importResults = importResults; - _this.payload = payload; - return _this; - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(ImportError); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/MissingConfigurationError.ts": -/*!***********************************************************!*\ - !*** ./src/Typesense/Errors/MissingConfigurationError.ts ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ MissingConfigurationError) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var MissingConfigurationError = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(MissingConfigurationError, _TypesenseError); - function MissingConfigurationError() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, MissingConfigurationError); - return _callSuper(this, MissingConfigurationError, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(MissingConfigurationError); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/ObjectAlreadyExists.ts": -/*!*****************************************************!*\ - !*** ./src/Typesense/Errors/ObjectAlreadyExists.ts ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ObjectAlreadyExists) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var ObjectAlreadyExists = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(ObjectAlreadyExists, _TypesenseError); - function ObjectAlreadyExists() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ObjectAlreadyExists); - return _callSuper(this, ObjectAlreadyExists, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(ObjectAlreadyExists); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/ObjectNotFound.ts": -/*!************************************************!*\ - !*** ./src/Typesense/Errors/ObjectNotFound.ts ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ObjectNotFound) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var ObjectNotFound = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(ObjectNotFound, _TypesenseError); - function ObjectNotFound() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ObjectNotFound); - return _callSuper(this, ObjectNotFound, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(ObjectNotFound); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/ObjectUnprocessable.ts": -/*!*****************************************************!*\ - !*** ./src/Typesense/Errors/ObjectUnprocessable.ts ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ObjectUnprocessable) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var ObjectUnprocessable = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(ObjectUnprocessable, _TypesenseError); - function ObjectUnprocessable() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ObjectUnprocessable); - return _callSuper(this, ObjectUnprocessable, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(ObjectUnprocessable); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/RequestMalformed.ts": -/*!**************************************************!*\ - !*** ./src/Typesense/Errors/RequestMalformed.ts ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ RequestMalformed) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var RequestMalformed = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(RequestMalformed, _TypesenseError); - function RequestMalformed() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, RequestMalformed); - return _callSuper(this, RequestMalformed, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(RequestMalformed); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/RequestUnauthorized.ts": -/*!*****************************************************!*\ - !*** ./src/Typesense/Errors/RequestUnauthorized.ts ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ RequestUnauthorized) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var RequestUnauthorized = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(RequestUnauthorized, _TypesenseError); - function RequestUnauthorized() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, RequestUnauthorized); - return _callSuper(this, RequestUnauthorized, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(RequestUnauthorized); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/ServerError.ts": -/*!*********************************************!*\ - !*** ./src/Typesense/Errors/ServerError.ts ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ServerError) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } - -var ServerError = /*#__PURE__*/function (_TypesenseError) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(ServerError, _TypesenseError); - function ServerError() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, ServerError); - return _callSuper(this, ServerError, arguments); - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(ServerError); -}(_TypesenseError__WEBPACK_IMPORTED_MODULE_5__["default"]); - - -/***/ }), - -/***/ "./src/Typesense/Errors/TypesenseError.ts": -/*!************************************************!*\ - !*** ./src/Typesense/Errors/TypesenseError.ts ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ TypesenseError) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); -/* harmony import */ var _babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/assertThisInitialized */ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"); -/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js"); -/* harmony import */ var _babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ "./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js"); - - - - - - - -function _callSuper(t, o, e) { return o = (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(o), (0,_babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0,_babel_runtime_helpers_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__["default"])(t).constructor) : o.apply(t, e)); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -var TypesenseError = /*#__PURE__*/function (_Error) { - (0,_babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_5__["default"])(TypesenseError, _Error); - // Source: https://stackoverflow.com/a/58417721/123545 - function TypesenseError(message, httpBody, httpStatus) { - var _this; - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, TypesenseError); - _this = _callSuper(this, TypesenseError, [message]); - _this.name = (this instanceof TypesenseError ? this.constructor : void 0).name; - _this.httpBody = httpBody; - _this.httpStatus = httpStatus; - Object.setPrototypeOf((0,_babel_runtime_helpers_assertThisInitialized__WEBPACK_IMPORTED_MODULE_4__["default"])(_this), (this instanceof TypesenseError ? this.constructor : void 0).prototype); - return _this; - } - return (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_0__["default"])(TypesenseError); -}( /*#__PURE__*/(0,_babel_runtime_helpers_wrapNativeSuper__WEBPACK_IMPORTED_MODULE_6__["default"])(Error)); - - -/***/ }), - -/***/ "./src/Typesense/Errors/index.ts": -/*!***************************************!*\ - !*** ./src/Typesense/Errors/index.ts ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HTTPError: () => (/* reexport safe */ _HTTPError__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ ImportError: () => (/* reexport safe */ _ImportError__WEBPACK_IMPORTED_MODULE_8__["default"]), -/* harmony export */ MissingConfigurationError: () => (/* reexport safe */ _MissingConfigurationError__WEBPACK_IMPORTED_MODULE_1__["default"]), -/* harmony export */ ObjectAlreadyExists: () => (/* reexport safe */ _ObjectAlreadyExists__WEBPACK_IMPORTED_MODULE_2__["default"]), -/* harmony export */ ObjectNotFound: () => (/* reexport safe */ _ObjectNotFound__WEBPACK_IMPORTED_MODULE_3__["default"]), -/* harmony export */ ObjectUnprocessable: () => (/* reexport safe */ _ObjectUnprocessable__WEBPACK_IMPORTED_MODULE_4__["default"]), -/* harmony export */ RequestMalformed: () => (/* reexport safe */ _RequestMalformed__WEBPACK_IMPORTED_MODULE_5__["default"]), -/* harmony export */ RequestUnauthorized: () => (/* reexport safe */ _RequestUnauthorized__WEBPACK_IMPORTED_MODULE_6__["default"]), -/* harmony export */ ServerError: () => (/* reexport safe */ _ServerError__WEBPACK_IMPORTED_MODULE_7__["default"]), -/* harmony export */ TypesenseError: () => (/* reexport safe */ _TypesenseError__WEBPACK_IMPORTED_MODULE_9__["default"]) -/* harmony export */ }); -/* harmony import */ var _HTTPError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HTTPError */ "./src/Typesense/Errors/HTTPError.ts"); -/* harmony import */ var _MissingConfigurationError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MissingConfigurationError */ "./src/Typesense/Errors/MissingConfigurationError.ts"); -/* harmony import */ var _ObjectAlreadyExists__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ObjectAlreadyExists */ "./src/Typesense/Errors/ObjectAlreadyExists.ts"); -/* harmony import */ var _ObjectNotFound__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ObjectNotFound */ "./src/Typesense/Errors/ObjectNotFound.ts"); -/* harmony import */ var _ObjectUnprocessable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ObjectUnprocessable */ "./src/Typesense/Errors/ObjectUnprocessable.ts"); -/* harmony import */ var _RequestMalformed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./RequestMalformed */ "./src/Typesense/Errors/RequestMalformed.ts"); -/* harmony import */ var _RequestUnauthorized__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RequestUnauthorized */ "./src/Typesense/Errors/RequestUnauthorized.ts"); -/* harmony import */ var _ServerError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ServerError */ "./src/Typesense/Errors/ServerError.ts"); -/* harmony import */ var _ImportError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ImportError */ "./src/Typesense/Errors/ImportError.ts"); -/* harmony import */ var _TypesenseError__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); - - - - - - - - - - - - -/***/ }), - -/***/ "./src/Typesense/Health.ts": -/*!*********************************!*\ - !*** ./src/Typesense/Health.ts ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Health) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/health"; -var Health = /*#__PURE__*/function () { - function Health(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Health); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Health, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }]); - return Health; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Key.ts": -/*!******************************!*\ - !*** ./src/Typesense/Key.ts ***! - \******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Key) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Keys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Keys */ "./src/Typesense/Keys.ts"); - - - - - -var Key = /*#__PURE__*/function () { - function Key(id, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Key); - this.id = id; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Key, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Keys__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - } - }]); - return Key; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Keys.ts": -/*!*******************************!*\ - !*** ./src/Typesense/Keys.ts ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Keys) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crypto */ "?4bf0"); -/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); - - - - - - -var RESOURCEPATH = "/keys"; -var Keys = /*#__PURE__*/function () { - function Keys(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Keys); - this.apiCall = apiCall; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Keys, [{ - key: "create", - value: function () { - var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.post(Keys.RESOURCEPATH, params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function create(_x) { - return _create.apply(this, arguments); - } - return create; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "generateScopedSearchKey", - value: function generateScopedSearchKey(searchKey, parameters) { - // Note: only a key generated with the `documents:search` action will be - // accepted by the server, when used with the search endpoint. - var normalizedParams = (0,_Utils__WEBPACK_IMPORTED_MODULE_5__.normalizeArrayableParams)(parameters); - var paramsJSON = JSON.stringify(normalizedParams); - var digest = Buffer.from((0,crypto__WEBPACK_IMPORTED_MODULE_4__.createHmac)("sha256", searchKey).update(paramsJSON).digest("base64")); - var keyPrefix = searchKey.substr(0, 4); - var rawScopedKey = "".concat(digest).concat(keyPrefix).concat(paramsJSON); - return Buffer.from(rawScopedKey).toString("base64"); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Keys; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Metrics.ts": -/*!**********************************!*\ - !*** ./src/Typesense/Metrics.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Metrics) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/metrics.json"; -var Metrics = /*#__PURE__*/function () { - function Metrics(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Metrics); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Metrics, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }]); - return Metrics; -}(); - - -/***/ }), - -/***/ "./src/Typesense/MultiSearch.ts": -/*!**************************************!*\ - !*** ./src/Typesense/MultiSearch.ts ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ MultiSearch) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _RequestWithCache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RequestWithCache */ "./src/Typesense/RequestWithCache.ts"); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); - - - - - -var _excluded = ["streamConfig"]; - -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } - - -var RESOURCEPATH = "/multi_search"; -var MultiSearch = /*#__PURE__*/function () { - function MultiSearch(apiCall, configuration) { - var useTextContentType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_3__["default"])(this, MultiSearch); - this.apiCall = apiCall; - this.configuration = configuration; - this.useTextContentType = useTextContentType; - this.requestWithCache = new _RequestWithCache__WEBPACK_IMPORTED_MODULE_6__["default"](); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_4__["default"])(MultiSearch, [{ - key: "clearCache", - value: function clearCache() { - this.requestWithCache.clearCache(); - } - }, { - key: "perform", - value: function () { - var _perform = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_2__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee(searchRequests, commonParams) { - var _ref, - _ref$cacheSearchResul, - cacheSearchResultsForSeconds, - params, - normalizedSearchRequests, - streamConfig, - paramsWithoutStream, - normalizedQueryParams, - _args = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _ref = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}, _ref$cacheSearchResul = _ref.cacheSearchResultsForSeconds, cacheSearchResultsForSeconds = _ref$cacheSearchResul === void 0 ? this.configuration.cacheSearchResultsForSeconds : _ref$cacheSearchResul; - params = commonParams ? _objectSpread({}, commonParams) : {}; - if (this.configuration.useServerSideSearchCache === true) { - params.use_cache = true; - } - normalizedSearchRequests = { - union: searchRequests.union, - searches: searchRequests.searches.map(_Utils__WEBPACK_IMPORTED_MODULE_7__.normalizeArrayableParams) - }; - streamConfig = params.streamConfig, paramsWithoutStream = (0,_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__["default"])(params, _excluded); - normalizedQueryParams = (0,_Utils__WEBPACK_IMPORTED_MODULE_7__.normalizeArrayableParams)(paramsWithoutStream); - return _context.abrupt("return", this.requestWithCache.perform(this.apiCall, "post", { - path: RESOURCEPATH, - body: normalizedSearchRequests, - queryParams: normalizedQueryParams, - headers: this.useTextContentType ? { - "content-type": "text/plain" - } : {}, - streamConfig: streamConfig, - isStreamingRequest: this.isStreamingRequest(params) - }, { - cacheResponseForSeconds: cacheSearchResultsForSeconds - })); - case 7: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function perform(_x, _x2) { - return _perform.apply(this, arguments); - } - return perform; - }() - }, { - key: "isStreamingRequest", - value: function isStreamingRequest(commonParams) { - return commonParams.streamConfig !== undefined; - } - }]); - return MultiSearch; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Operations.ts": -/*!*************************************!*\ - !*** ./src/Typesense/Operations.ts ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Operations) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/operations"; -var Operations = /*#__PURE__*/function () { - function Operations(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Operations); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Operations, [{ - key: "perform", - value: function () { - var _perform = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(operationName) { - var queryParameters, - _args = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - queryParameters = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; - return _context.abrupt("return", this.apiCall.post("".concat(RESOURCEPATH, "/").concat(operationName), {}, queryParameters)); - case 2: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function perform(_x) { - return _perform.apply(this, arguments); - } - return perform; - }() - }]); - return Operations; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Override.ts": -/*!***********************************!*\ - !*** ./src/Typesense/Override.ts ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Override) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); -/* harmony import */ var _Overrides__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Overrides */ "./src/Typesense/Overrides.ts"); - - - - - - -var Override = /*#__PURE__*/function () { - function Override(collectionName, overrideId, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Override); - this.collectionName = collectionName; - this.overrideId = overrideId; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Override, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(_Overrides__WEBPACK_IMPORTED_MODULE_5__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.overrideId)); - } - }]); - return Override; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Overrides.ts": -/*!************************************!*\ - !*** ./src/Typesense/Overrides.ts ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Overrides) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); - - - - - -var RESOURCEPATH = "/overrides"; -var Overrides = /*#__PURE__*/function () { - function Overrides(collectionName, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Overrides); - this.collectionName = collectionName; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Overrides, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(overrideId, params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.put(this.endpointPath(overrideId), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(this.collectionName).concat(Overrides.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Overrides; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Preset.ts": -/*!*********************************!*\ - !*** ./src/Typesense/Preset.ts ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Preset) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Presets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Presets */ "./src/Typesense/Presets.ts"); - - - - - -var Preset = /*#__PURE__*/function () { - function Preset(presetId, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Preset); - this.presetId = presetId; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Preset, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Presets__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.presetId)); - } - }]); - return Preset; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Presets.ts": -/*!**********************************!*\ - !*** ./src/Typesense/Presets.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Presets) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); - - - - - - -var RESOURCEPATH = "/presets"; -var Presets = /*#__PURE__*/function () { - function Presets(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__["default"])(this, Presets); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__["default"])(Presets, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(presetId, params) { - var _normalizedParams, normalizedParams; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (!((0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(params.value) === "object" && "searches" in params.value)) { - _context.next = 3; - break; - } - _normalizedParams = params.value.searches.map(function (search) { - return (0,_Utils__WEBPACK_IMPORTED_MODULE_5__.normalizeArrayableParams)(search); - }); - return _context.abrupt("return", this.apiCall.put(this.endpointPath(presetId), { - value: { - searches: _normalizedParams - } - })); - case 3: - normalizedParams = (0,_Utils__WEBPACK_IMPORTED_MODULE_5__.normalizeArrayableParams)(params.value); - return _context.abrupt("return", this.apiCall.put(this.endpointPath(presetId), { - value: normalizedParams - })); - case 5: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(Presets.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Presets; -}(); - - -/***/ }), - -/***/ "./src/Typesense/RequestWithCache.ts": -/*!*******************************************!*\ - !*** ./src/Typesense/RequestWithCache.ts ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ RequestWithCache) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); - - - - - -var defaultCacheResponseForSeconds = 2 * 60; -var defaultMaxSize = 100; -var RequestWithCache = /*#__PURE__*/function () { - function RequestWithCache() { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, RequestWithCache); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(this, "responseCache", new Map()); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_3__["default"])(this, "responsePromiseCache", new Map()); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(RequestWithCache, [{ - key: "clearCache", - value: function clearCache() { - this.responseCache = new Map(); - this.responsePromiseCache = new Map(); - } - }, { - key: "perform", - value: function () { - var _perform = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(requestContext, methodName, requestParams, cacheOptions) { - var _cacheOptions$cacheRe, cacheResponseForSeconds, _cacheOptions$maxSize, maxSize, isCacheDisabled, path, queryParams, body, headers, streamConfig, abortSignal, responseType, isStreamingRequest, requestParamsJSON, cacheEntry, now, isEntryValid, cachePromiseEntry, _isEntryValid, responsePromise, response, isCacheOverMaxSize, oldestEntry, isResponsePromiseCacheOverMaxSize, _oldestEntry; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _cacheOptions$cacheRe = cacheOptions.cacheResponseForSeconds, cacheResponseForSeconds = _cacheOptions$cacheRe === void 0 ? defaultCacheResponseForSeconds : _cacheOptions$cacheRe, _cacheOptions$maxSize = cacheOptions.maxSize, maxSize = _cacheOptions$maxSize === void 0 ? defaultMaxSize : _cacheOptions$maxSize; - isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0; - path = requestParams.path, queryParams = requestParams.queryParams, body = requestParams.body, headers = requestParams.headers, streamConfig = requestParams.streamConfig, abortSignal = requestParams.abortSignal, responseType = requestParams.responseType, isStreamingRequest = requestParams.isStreamingRequest; - if (!isCacheDisabled) { - _context.next = 5; - break; - } - return _context.abrupt("return", this.executeRequest(requestContext, methodName, path, queryParams, body, headers, { - abortSignal: abortSignal, - responseType: responseType, - streamConfig: streamConfig, - isStreamingRequest: isStreamingRequest - })); - case 5: - requestParamsJSON = JSON.stringify(requestParams); - cacheEntry = this.responseCache.get(requestParamsJSON); - now = Date.now(); - if (!cacheEntry) { - _context.next = 17; - break; - } - isEntryValid = now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000; - if (!isEntryValid) { - _context.next = 16; - break; - } - this.responseCache.delete(requestParamsJSON); - this.responseCache.set(requestParamsJSON, cacheEntry); - return _context.abrupt("return", cacheEntry.response); - case 16: - this.responseCache.delete(requestParamsJSON); - case 17: - cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON); - if (!cachePromiseEntry) { - _context.next = 27; - break; - } - _isEntryValid = now - cachePromiseEntry.requestTimestamp < cacheResponseForSeconds * 1000; - if (!_isEntryValid) { - _context.next = 26; - break; - } - this.responsePromiseCache.delete(requestParamsJSON); - this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry); - return _context.abrupt("return", cachePromiseEntry.responsePromise); - case 26: - this.responsePromiseCache.delete(requestParamsJSON); - case 27: - responsePromise = this.executeRequest(requestContext, methodName, path, queryParams, body, headers, { - abortSignal: abortSignal, - responseType: responseType, - streamConfig: streamConfig, - isStreamingRequest: isStreamingRequest - }); - this.responsePromiseCache.set(requestParamsJSON, { - requestTimestamp: now, - responsePromise: responsePromise - }); - _context.next = 31; - return responsePromise; - case 31: - response = _context.sent; - this.responseCache.set(requestParamsJSON, { - requestTimestamp: now, - response: response - }); - isCacheOverMaxSize = this.responseCache.size > maxSize; - if (isCacheOverMaxSize) { - oldestEntry = this.responseCache.keys().next().value; - if (oldestEntry) { - this.responseCache.delete(oldestEntry); - } - } - isResponsePromiseCacheOverMaxSize = this.responsePromiseCache.size > maxSize; - if (isResponsePromiseCacheOverMaxSize) { - _oldestEntry = this.responsePromiseCache.keys().next().value; - if (_oldestEntry) { - this.responsePromiseCache.delete(_oldestEntry); - } - } - return _context.abrupt("return", response); - case 38: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function perform(_x, _x2, _x3, _x4) { - return _perform.apply(this, arguments); - } - return perform; - }() - }, { - key: "executeRequest", - value: function executeRequest(context, methodName, path) { - var queryParams = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - var body = arguments.length > 4 ? arguments[4] : undefined; - var headers = arguments.length > 5 ? arguments[5] : undefined; - var options = arguments.length > 6 ? arguments[6] : undefined; - var method = context[methodName]; - switch (methodName) { - case "get": - return method.call(context, path, queryParams, { - abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, - responseType: options === null || options === void 0 ? void 0 : options.responseType, - streamConfig: options === null || options === void 0 ? void 0 : options.streamConfig, - isStreamingRequest: options === null || options === void 0 ? void 0 : options.isStreamingRequest - }); - case "delete": - return method.call(context, path, queryParams); - case "post": - return method.call(context, path, body, queryParams, headers || {}, { - abortSignal: options === null || options === void 0 ? void 0 : options.abortSignal, - responseType: options === null || options === void 0 ? void 0 : options.responseType, - streamConfig: options === null || options === void 0 ? void 0 : options.streamConfig, - isStreamingRequest: options === null || options === void 0 ? void 0 : options.isStreamingRequest - }); - case "put": - case "patch": - return method.call(context, path, body, queryParams); - default: - throw new Error("Unsupported method: ".concat(String(methodName))); - } - } - }]); - return RequestWithCache; -}(); - - -/***/ }), - -/***/ "./src/Typesense/SearchClient.ts": -/*!***************************************!*\ - !*** ./src/Typesense/SearchClient.ts ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ SearchClient) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _Configuration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Configuration */ "./src/Typesense/Configuration.ts"); -/* harmony import */ var _ApiCall__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ApiCall */ "./src/Typesense/ApiCall.ts"); -/* harmony import */ var _MultiSearch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MultiSearch */ "./src/Typesense/MultiSearch.ts"); -/* harmony import */ var _SearchOnlyCollection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SearchOnlyCollection */ "./src/Typesense/SearchOnlyCollection.ts"); - - - - - - - -var SearchClient = /*#__PURE__*/function () { - function SearchClient(options) { - var _options$sendApiKeyAs; - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, SearchClient); - options.sendApiKeyAsQueryParam = (_options$sendApiKeyAs = options.sendApiKeyAsQueryParam) !== null && _options$sendApiKeyAs !== void 0 ? _options$sendApiKeyAs : true; - if (options.sendApiKeyAsQueryParam === true && (options.apiKey || "").length > 2000) { - console.warn("[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter."); - options.sendApiKeyAsQueryParam = false; - } - this.configuration = new _Configuration__WEBPACK_IMPORTED_MODULE_3__["default"](options); - this.apiCall = new _ApiCall__WEBPACK_IMPORTED_MODULE_4__["default"](this.configuration); - this.multiSearch = new _MultiSearch__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall, this.configuration, true); - this.individualCollections = {}; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(SearchClient, [{ - key: "clearCache", - value: function clearCache() { - this.multiSearch.clearCache(); - - // eslint-disable-next-line @typescript-eslint/no-unused-vars - Object.entries(this.individualCollections).forEach(function (_ref) { - var _ref2 = (0,_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__["default"])(_ref, 2), - _ = _ref2[0], - collection = _ref2[1]; - collection.documents().clearCache(); - }); - } - }, { - key: "collections", - value: function collections(collectionName) { - if (!collectionName) { - throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to " + "be searched must be specified. Use Typesense.Client if you need to access the collection object."); - } else { - if (this.individualCollections[collectionName] === undefined) { - this.individualCollections[collectionName] = new _SearchOnlyCollection__WEBPACK_IMPORTED_MODULE_6__.SearchOnlyCollection(collectionName, this.apiCall, this.configuration); - } - return this.individualCollections[collectionName]; - } - } - }]); - return SearchClient; -}(); - - -/***/ }), - -/***/ "./src/Typesense/SearchOnlyCollection.ts": -/*!***********************************************!*\ - !*** ./src/Typesense/SearchOnlyCollection.ts ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ SearchOnlyCollection: () => (/* binding */ SearchOnlyCollection) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SearchOnlyDocuments */ "./src/Typesense/SearchOnlyDocuments.ts"); - - - -var SearchOnlyCollection = /*#__PURE__*/function () { - function SearchOnlyCollection(name, apiCall, configuration) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, SearchOnlyCollection); - this.name = name; - this.apiCall = apiCall; - this.configuration = configuration; - this._documents = new _SearchOnlyDocuments__WEBPACK_IMPORTED_MODULE_2__.SearchOnlyDocuments(this.name, this.apiCall, this.configuration); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(SearchOnlyCollection, [{ - key: "documents", - value: function documents() { - return this._documents; - } - }]); - return SearchOnlyCollection; -}(); - -/***/ }), - -/***/ "./src/Typesense/SearchOnlyDocuments.ts": -/*!**********************************************!*\ - !*** ./src/Typesense/SearchOnlyDocuments.ts ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ SearchOnlyDocuments: () => (/* binding */ SearchOnlyDocuments) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _RequestWithCache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./RequestWithCache */ "./src/Typesense/RequestWithCache.ts"); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); -/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Utils */ "./src/Typesense/Utils.ts"); - - - - - -var _excluded = ["streamConfig"]; - -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } - - - -var RESOURCEPATH = "/documents"; -var SearchOnlyDocuments = /*#__PURE__*/function () { - function SearchOnlyDocuments(collectionName, apiCall, configuration) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__["default"])(this, SearchOnlyDocuments); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_4__["default"])(this, "requestWithCache", new _RequestWithCache__WEBPACK_IMPORTED_MODULE_6__["default"]()); - this.collectionName = collectionName; - this.apiCall = apiCall; - this.configuration = configuration; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__["default"])(SearchOnlyDocuments, [{ - key: "clearCache", - value: function clearCache() { - this.requestWithCache.clearCache(); - } - }, { - key: "search", - value: function () { - var _search = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().mark(function _callee(searchParameters) { - var _ref, - _ref$cacheSearchResul, - cacheSearchResultsForSeconds, - _ref$abortSignal, - abortSignal, - additionalQueryParams, - _normalizeArrayablePa, - streamConfig, - rest, - queryParams, - isStreamingRequest, - _args = arguments; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_5___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _ref = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, _ref$cacheSearchResul = _ref.cacheSearchResultsForSeconds, cacheSearchResultsForSeconds = _ref$cacheSearchResul === void 0 ? this.configuration.cacheSearchResultsForSeconds : _ref$cacheSearchResul, _ref$abortSignal = _ref.abortSignal, abortSignal = _ref$abortSignal === void 0 ? null : _ref$abortSignal; - additionalQueryParams = {}; - if (this.configuration.useServerSideSearchCache === true) { - additionalQueryParams["use_cache"] = true; - } - _normalizeArrayablePa = (0,_Utils__WEBPACK_IMPORTED_MODULE_8__.normalizeArrayableParams)(searchParameters), streamConfig = _normalizeArrayablePa.streamConfig, rest = (0,_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__["default"])(_normalizeArrayablePa, _excluded); - queryParams = _objectSpread(_objectSpread({}, additionalQueryParams), rest); - isStreamingRequest = queryParams.conversation_stream === true; - return _context.abrupt("return", this.requestWithCache.perform(this.apiCall, "get", { - path: this.endpointPath("search"), - queryParams: queryParams, - streamConfig: streamConfig, - abortSignal: abortSignal, - isStreamingRequest: isStreamingRequest - }, { - cacheResponseForSeconds: cacheSearchResultsForSeconds - })); - case 7: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function search(_x) { - return _search.apply(this, arguments); - } - return search; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_7__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(RESOURCEPATH).concat(operation === undefined ? "" : "/" + operation); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return SearchOnlyDocuments; -}(); - -/***/ }), - -/***/ "./src/Typesense/Stats.ts": -/*!********************************!*\ - !*** ./src/Typesense/Stats.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Metrics) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/stats.json"; -var Metrics = /*#__PURE__*/function () { - function Metrics(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Metrics); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Metrics, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(RESOURCEPATH)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }]); - return Metrics; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Stemming.ts": -/*!***********************************!*\ - !*** ./src/Typesense/Stemming.ts ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Stemming) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _StemmingDictionaries__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./StemmingDictionaries */ "./src/Typesense/StemmingDictionaries.ts"); -/* harmony import */ var _StemmingDictionary__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./StemmingDictionary */ "./src/Typesense/StemmingDictionary.ts"); - - - - - -var RESOURCEPATH = "/stemming"; -var Stemming = /*#__PURE__*/function () { - function Stemming(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, Stemming); - (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__["default"])(this, "individualStemmingDictionaries", {}); - this.apiCall = apiCall; - this.apiCall = apiCall; - this._stemmingDictionaries = new _StemmingDictionaries__WEBPACK_IMPORTED_MODULE_3__["default"](this.apiCall); - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Stemming, [{ - key: "dictionaries", - value: function dictionaries(id) { - if (id === undefined) { - return this._stemmingDictionaries; - } else { - if (this.individualStemmingDictionaries[id] === undefined) { - this.individualStemmingDictionaries[id] = new _StemmingDictionary__WEBPACK_IMPORTED_MODULE_4__["default"](id, this.apiCall); - } - return this.individualStemmingDictionaries[id]; - } - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Stemming; -}(); - - -/***/ }), - -/***/ "./src/Typesense/StemmingDictionaries.ts": -/*!***********************************************!*\ - !*** ./src/Typesense/StemmingDictionaries.ts ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ StemmingDictionaries) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/stemming/dictionaries"; -var StemmingDictionaries = /*#__PURE__*/function () { - function StemmingDictionaries(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, StemmingDictionaries); - this.apiCall = apiCall; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(StemmingDictionaries, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(id, wordRootCombinations) { - var wordRootCombinationsInJSONLFormat, resultsInJSONLFormat; - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - wordRootCombinationsInJSONLFormat = Array.isArray(wordRootCombinations) ? wordRootCombinations.map(function (combo) { - return JSON.stringify(combo); - }).join("\n") : wordRootCombinations; - _context.next = 3; - return this.apiCall.performRequest("post", this.endpointPath("import"), { - queryParameters: { - id: id - }, - bodyParameters: wordRootCombinationsInJSONLFormat, - additionalHeaders: { - "Content-Type": "text/plain" - }, - skipConnectionTimeout: true - }); - case 3: - resultsInJSONLFormat = _context.sent; - return _context.abrupt("return", Array.isArray(wordRootCombinations) ? resultsInJSONLFormat.split("\n").map(function (line) { - return JSON.parse(line); - }) : resultsInJSONLFormat); - case 5: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return operation === undefined ? "".concat(StemmingDictionaries.RESOURCEPATH) : "".concat(StemmingDictionaries.RESOURCEPATH, "/").concat(encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return StemmingDictionaries; -}(); - - -/***/ }), - -/***/ "./src/Typesense/StemmingDictionary.ts": -/*!*********************************************!*\ - !*** ./src/Typesense/StemmingDictionary.ts ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ StemmingDictionary) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _StemmingDictionaries__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./StemmingDictionaries */ "./src/Typesense/StemmingDictionaries.ts"); - - - - - -var StemmingDictionary = /*#__PURE__*/function () { - function StemmingDictionary(id, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, StemmingDictionary); - this.id = id; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(StemmingDictionary, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_StemmingDictionaries__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - } - }]); - return StemmingDictionary; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Stopword.ts": -/*!***********************************!*\ - !*** ./src/Typesense/Stopword.ts ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Stopword) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Stopwords__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Stopwords */ "./src/Typesense/Stopwords.ts"); - - - - - -var Stopword = /*#__PURE__*/function () { - function Stopword(stopwordId, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Stopword); - this.stopwordId = stopwordId; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Stopword, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Stopwords__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.stopwordId)); - } - }]); - return Stopword; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Stopwords.ts": -/*!************************************!*\ - !*** ./src/Typesense/Stopwords.ts ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Stopwords) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); - - - - -var RESOURCEPATH = "/stopwords"; -var Stopwords = /*#__PURE__*/function () { - function Stopwords(apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Stopwords); - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Stopwords, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(stopwordId, params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.put(this.endpointPath(stopwordId), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(Stopwords.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Stopwords; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Synonym.ts": -/*!**********************************!*\ - !*** ./src/Typesense/Synonym.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Synonym) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); -/* harmony import */ var _Synonyms__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Synonyms */ "./src/Typesense/Synonyms.ts"); - - - - - - -var Synonym = /*#__PURE__*/function () { - function Synonym(collectionName, synonymId, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Synonym); - this.collectionName = collectionName; - this.synonymId = synonymId; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Synonym, [{ - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "delete", - value: function () { - var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function _delete() { - return _delete2.apply(this, arguments); - } - return _delete; - }() - }, { - key: "endpointPath", - value: function endpointPath() { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(_Synonyms__WEBPACK_IMPORTED_MODULE_5__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.synonymId)); - } - }]); - return Synonym; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Synonyms.ts": -/*!***********************************!*\ - !*** ./src/Typesense/Synonyms.ts ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Synonyms) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); -/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); -/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); -/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _Collections__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Collections */ "./src/Typesense/Collections.ts"); - - - - - -var RESOURCEPATH = "/synonyms"; -var Synonyms = /*#__PURE__*/function () { - function Synonyms(collectionName, apiCall) { - (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Synonyms); - this.collectionName = collectionName; - this.apiCall = apiCall; - } - (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Synonyms, [{ - key: "upsert", - value: function () { - var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(synonymId, params) { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", this.apiCall.put(this.endpointPath(synonymId), params)); - case 1: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function upsert(_x, _x2) { - return _upsert.apply(this, arguments); - } - return upsert; - }() - }, { - key: "retrieve", - value: function () { - var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { - return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); - case 1: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function retrieve() { - return _retrieve.apply(this, arguments); - } - return retrieve; - }() - }, { - key: "endpointPath", - value: function endpointPath(operation) { - return "".concat(_Collections__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(Synonyms.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - } - }], [{ - key: "RESOURCEPATH", - get: function get() { - return RESOURCEPATH; - } - }]); - return Synonyms; -}(); - - -/***/ }), - -/***/ "./src/Typesense/Types.ts": -/*!********************************!*\ - !*** ./src/Typesense/Types.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ arrayableParams: () => (/* binding */ arrayableParams) -/* harmony export */ }); -var arrayableParams = { - query_by: "query_by", - query_by_weights: "query_by_weights", - facet_by: "facet_by", - group_by: "group_by", - include_fields: "include_fields", - exclude_fields: "exclude_fields", - highlight_fields: "highlight_fields", - highlight_full_fields: "highlight_full_fields", - pinned_hits: "pinned_hits", - hidden_hits: "hidden_hits", - infix: "infix", - override_tags: "override_tags", - num_typos: "num_typos", - prefix: "prefix", - sort_by: "sort_by" -}; - -/***/ }), - -/***/ "./src/Typesense/Utils.ts": -/*!********************************!*\ - !*** ./src/Typesense/Utils.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ normalizeArrayableParams: () => (/* binding */ normalizeArrayableParams), -/* harmony export */ toErrorWithMessage: () => (/* binding */ toErrorWithMessage) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); -/* harmony import */ var _Types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Types */ "./src/Typesense/Types.ts"); - - -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } - -function hasNoArrayValues(params) { - return Object.keys(_Types__WEBPACK_IMPORTED_MODULE_2__.arrayableParams).filter(function (key) { - return params[key] !== undefined; - }).every(function (key) { - return isNonArrayValue(params[key]); - }); -} -function normalizeArrayableParams(params) { - var result = _objectSpread({}, params); - var transformedValues = Object.keys(_Types__WEBPACK_IMPORTED_MODULE_2__.arrayableParams).filter(function (key) { - return Array.isArray(result[key]); - }).map(function (key) { - result[key] = result[key].join(","); - return key; - }); - if (!transformedValues.length && hasNoArrayValues(result)) { - return result; - } - if (!hasNoArrayValues(result)) { - throw new Error("Failed to normalize arrayable params: ".concat(JSON.stringify(result))); - } - return result; -} -function isNonArrayValue(value) { - return !Array.isArray(value); -} -function isErrorWithMessage(error) { - return (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(error) === "object" && error !== null && "message" in error && typeof error.message === "string"; -} -function toErrorWithMessage(couldBeError) { - if (isErrorWithMessage(couldBeError)) return couldBeError; - try { - if (typeof couldBeError === "string") { - return new Error(couldBeError); - } - return new Error(JSON.stringify(couldBeError)); - } catch (_unused) { - return new Error(String(couldBeError)); - } -} - -/***/ }), - -/***/ "./node_modules/loglevel/lib/loglevel.js": -/*!***********************************************!*\ - !*** ./node_modules/loglevel/lib/loglevel.js ***! - \***********************************************/ -/***/ (function(module, exports, __webpack_require__) { - -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* -* loglevel - https://github.com/pimterry/loglevel -* -* Copyright (c) 2013 Tim Perry -* Licensed under the MIT license. -*/ -(function (root, definition) { - "use strict"; - if (true) { - !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : - __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else {} -}(this, function () { - "use strict"; - - // Slightly dubious tricks to cut down minimized file size - var noop = function() {}; - var undefinedType = "undefined"; - var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && ( - /Trident\/|MSIE /.test(window.navigator.userAgent) - ); - - var logMethods = [ - "trace", - "debug", - "info", - "warn", - "error" - ]; - - var _loggersByName = {}; - var defaultLogger = null; - - // Cross-browser bind equivalent that works at least back to IE6 - function bindMethod(obj, methodName) { - var method = obj[methodName]; - if (typeof method.bind === 'function') { - return method.bind(obj); - } else { - try { - return Function.prototype.bind.call(method, obj); - } catch (e) { - // Missing bind shim or IE8 + Modernizr, fallback to wrapping - return function() { - return Function.prototype.apply.apply(method, [obj, arguments]); - }; - } - } - } - - // Trace() doesn't print the message in IE, so for that case we need to wrap it - function traceForIE() { - if (console.log) { - if (console.log.apply) { - console.log.apply(console, arguments); - } else { - // In old IE, native console methods themselves don't have apply(). - Function.prototype.apply.apply(console.log, [console, arguments]); - } - } - if (console.trace) console.trace(); - } - - // Build the best logging method possible for this env - // Wherever possible we want to bind, not wrap, to preserve stack traces - function realMethod(methodName) { - if (methodName === 'debug') { - methodName = 'log'; - } - - if (typeof console === undefinedType) { - return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives - } else if (methodName === 'trace' && isIE) { - return traceForIE; - } else if (console[methodName] !== undefined) { - return bindMethod(console, methodName); - } else if (console.log !== undefined) { - return bindMethod(console, 'log'); - } else { - return noop; - } - } - - // These private functions always need `this` to be set properly - - function replaceLoggingMethods() { - /*jshint validthis:true */ - var level = this.getLevel(); - - // Replace the actual methods. - for (var i = 0; i < logMethods.length; i++) { - var methodName = logMethods[i]; - this[methodName] = (i < level) ? - noop : - this.methodFactory(methodName, level, this.name); - } - - // Define log.log as an alias for log.debug - this.log = this.debug; - - // Return any important warnings. - if (typeof console === undefinedType && level < this.levels.SILENT) { - return "No console available for logging"; - } - } - - // In old IE versions, the console isn't present until you first open it. - // We build realMethod() replacements here that regenerate logging methods - function enableLoggingWhenConsoleArrives(methodName) { - return function () { - if (typeof console !== undefinedType) { - replaceLoggingMethods.call(this); - this[methodName].apply(this, arguments); - } - }; - } - - // By default, we use closely bound real methods wherever possible, and - // otherwise we wait for a console to appear, and then try again. - function defaultMethodFactory(methodName, _level, _loggerName) { - /*jshint validthis:true */ - return realMethod(methodName) || - enableLoggingWhenConsoleArrives.apply(this, arguments); - } - - function Logger(name, factory) { - // Private instance variables. - var self = this; - /** - * The level inherited from a parent logger (or a global default). We - * cache this here rather than delegating to the parent so that it stays - * in sync with the actual logging methods that we have installed (the - * parent could change levels but we might not have rebuilt the loggers - * in this child yet). - * @type {number} - */ - var inheritedLevel; - /** - * The default level for this logger, if any. If set, this overrides - * `inheritedLevel`. - * @type {number|null} - */ - var defaultLevel; - /** - * A user-specific level for this logger. If set, this overrides - * `defaultLevel`. - * @type {number|null} - */ - var userLevel; - - var storageKey = "loglevel"; - if (typeof name === "string") { - storageKey += ":" + name; - } else if (typeof name === "symbol") { - storageKey = undefined; - } - - function persistLevelIfPossible(levelNum) { - var levelName = (logMethods[levelNum] || 'silent').toUpperCase(); - - if (typeof window === undefinedType || !storageKey) return; - - // Use localStorage if available - try { - window.localStorage[storageKey] = levelName; - return; - } catch (ignore) {} - - // Use session cookie as fallback - try { - window.document.cookie = - encodeURIComponent(storageKey) + "=" + levelName + ";"; - } catch (ignore) {} - } - - function getPersistedLevel() { - var storedLevel; - - if (typeof window === undefinedType || !storageKey) return; - - try { - storedLevel = window.localStorage[storageKey]; - } catch (ignore) {} - - // Fallback to cookies if local storage gives us nothing - if (typeof storedLevel === undefinedType) { - try { - var cookie = window.document.cookie; - var cookieName = encodeURIComponent(storageKey); - var location = cookie.indexOf(cookieName + "="); - if (location !== -1) { - storedLevel = /^([^;]+)/.exec( - cookie.slice(location + cookieName.length + 1) - )[1]; - } - } catch (ignore) {} - } - - // If the stored level is not valid, treat it as if nothing was stored. - if (self.levels[storedLevel] === undefined) { - storedLevel = undefined; - } - - return storedLevel; - } - - function clearPersistedLevel() { - if (typeof window === undefinedType || !storageKey) return; - - // Use localStorage if available - try { - window.localStorage.removeItem(storageKey); - } catch (ignore) {} - - // Use session cookie as fallback - try { - window.document.cookie = - encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; - } catch (ignore) {} - } - - function normalizeLevel(input) { - var level = input; - if (typeof level === "string" && self.levels[level.toUpperCase()] !== undefined) { - level = self.levels[level.toUpperCase()]; - } - if (typeof level === "number" && level >= 0 && level <= self.levels.SILENT) { - return level; - } else { - throw new TypeError("log.setLevel() called with invalid level: " + input); - } - } - - /* - * - * Public logger API - see https://github.com/pimterry/loglevel for details - * - */ - - self.name = name; - - self.levels = { "TRACE": 0, "DEBUG": 1, "INFO": 2, "WARN": 3, - "ERROR": 4, "SILENT": 5}; - - self.methodFactory = factory || defaultMethodFactory; - - self.getLevel = function () { - if (userLevel != null) { - return userLevel; - } else if (defaultLevel != null) { - return defaultLevel; - } else { - return inheritedLevel; - } - }; - - self.setLevel = function (level, persist) { - userLevel = normalizeLevel(level); - if (persist !== false) { // defaults to true - persistLevelIfPossible(userLevel); - } - - // NOTE: in v2, this should call rebuild(), which updates children. - return replaceLoggingMethods.call(self); - }; - - self.setDefaultLevel = function (level) { - defaultLevel = normalizeLevel(level); - if (!getPersistedLevel()) { - self.setLevel(level, false); - } - }; - - self.resetLevel = function () { - userLevel = null; - clearPersistedLevel(); - replaceLoggingMethods.call(self); - }; - - self.enableAll = function(persist) { - self.setLevel(self.levels.TRACE, persist); - }; - - self.disableAll = function(persist) { - self.setLevel(self.levels.SILENT, persist); - }; - - self.rebuild = function () { - if (defaultLogger !== self) { - inheritedLevel = normalizeLevel(defaultLogger.getLevel()); - } - replaceLoggingMethods.call(self); - - if (defaultLogger === self) { - for (var childName in _loggersByName) { - _loggersByName[childName].rebuild(); - } - } - }; - - // Initialize all the internal levels. - inheritedLevel = normalizeLevel( - defaultLogger ? defaultLogger.getLevel() : "WARN" - ); - var initialLevel = getPersistedLevel(); - if (initialLevel != null) { - userLevel = normalizeLevel(initialLevel); - } - replaceLoggingMethods.call(self); - } - - /* - * - * Top-level API - * - */ - - defaultLogger = new Logger(); - - defaultLogger.getLogger = function getLogger(name) { - if ((typeof name !== "symbol" && typeof name !== "string") || name === "") { - throw new TypeError("You must supply a name when creating a logger."); - } - - var logger = _loggersByName[name]; - if (!logger) { - logger = _loggersByName[name] = new Logger( - name, - defaultLogger.methodFactory - ); - } - return logger; - }; - - // Grab the current global log variable in case of overwrite - var _log = (typeof window !== undefinedType) ? window.log : undefined; - defaultLogger.noConflict = function() { - if (typeof window !== undefinedType && - window.log === defaultLogger) { - window.log = _log; - } - - return defaultLogger; - }; - - defaultLogger.getLoggers = function getLoggers() { - return _loggersByName; - }; - - // ES6 default export, for compatibility - defaultLogger['default'] = defaultLogger; - - return defaultLogger; -})); - - -/***/ }), - -/***/ "?4bf0": -/*!************************!*\ - !*** crypto (ignored) ***! - \************************/ -/***/ (() => { - -/* (ignored) */ - -/***/ }), - -/***/ "?e89d": -/*!**********************!*\ - !*** http (ignored) ***! - \**********************/ -/***/ (() => { - -/* (ignored) */ - -/***/ }), - -/***/ "?77e4": -/*!***********************!*\ - !*** https (ignored) ***! - \***********************/ -/***/ (() => { - -/* (ignored) */ - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***! - \*******************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var _typeof = (__webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/typeof.js")["default"]); -function _regeneratorRuntime() { - "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - module.exports = _regeneratorRuntime = function _regeneratorRuntime() { - return e; - }, module.exports.__esModule = true, module.exports["default"] = module.exports; - var t, - e = {}, - r = Object.prototype, - n = r.hasOwnProperty, - o = Object.defineProperty || function (t, e, r) { - t[e] = r.value; - }, - i = "function" == typeof Symbol ? Symbol : {}, - a = i.iterator || "@@iterator", - c = i.asyncIterator || "@@asyncIterator", - u = i.toStringTag || "@@toStringTag"; - function define(t, e, r) { - return Object.defineProperty(t, e, { - value: r, - enumerable: !0, - configurable: !0, - writable: !0 - }), t[e]; - } - try { - define({}, ""); - } catch (t) { - define = function define(t, e, r) { - return t[e] = r; - }; - } - function wrap(t, e, r, n) { - var i = e && e.prototype instanceof Generator ? e : Generator, - a = Object.create(i.prototype), - c = new Context(n || []); - return o(a, "_invoke", { - value: makeInvokeMethod(t, r, c) - }), a; - } - function tryCatch(t, e, r) { - try { - return { - type: "normal", - arg: t.call(e, r) - }; - } catch (t) { - return { - type: "throw", - arg: t - }; - } - } - e.wrap = wrap; - var h = "suspendedStart", - l = "suspendedYield", - f = "executing", - s = "completed", - y = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var p = {}; - define(p, a, function () { - return this; - }); - var d = Object.getPrototypeOf, - v = d && d(d(values([]))); - v && v !== r && n.call(v, a) && (p = v); - var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); - function defineIteratorMethods(t) { - ["next", "throw", "return"].forEach(function (e) { - define(t, e, function (t) { - return this._invoke(e, t); - }); - }); - } - function AsyncIterator(t, e) { - function invoke(r, o, i, a) { - var c = tryCatch(t[r], t, o); - if ("throw" !== c.type) { - var u = c.arg, - h = u.value; - return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { - invoke("next", t, i, a); - }, function (t) { - invoke("throw", t, i, a); - }) : e.resolve(h).then(function (t) { - u.value = t, i(u); - }, function (t) { - return invoke("throw", t, i, a); - }); - } - a(c.arg); - } - var r; - o(this, "_invoke", { - value: function value(t, n) { - function callInvokeWithMethodAndArg() { - return new e(function (e, r) { - invoke(t, n, e, r); - }); - } - return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(e, r, n) { - var o = h; - return function (i, a) { - if (o === f) throw Error("Generator is already running"); - if (o === s) { - if ("throw" === i) throw a; - return { - value: t, - done: !0 - }; - } - for (n.method = i, n.arg = a;;) { - var c = n.delegate; - if (c) { - var u = maybeInvokeDelegate(c, n); - if (u) { - if (u === y) continue; - return u; - } - } - if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { - if (o === h) throw o = s, n.arg; - n.dispatchException(n.arg); - } else "return" === n.method && n.abrupt("return", n.arg); - o = f; - var p = tryCatch(e, r, n); - if ("normal" === p.type) { - if (o = n.done ? s : l, p.arg === y) continue; - return { - value: p.arg, - done: n.done - }; - } - "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); - } - }; - } - function maybeInvokeDelegate(e, r) { - var n = r.method, - o = e.iterator[n]; - if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; - var i = tryCatch(o, e.iterator, r.arg); - if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; - var a = i.arg; - return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); - } - function pushTryEntry(t) { - var e = { - tryLoc: t[0] - }; - 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); - } - function resetTryEntry(t) { - var e = t.completion || {}; - e.type = "normal", delete e.arg, t.completion = e; - } - function Context(t) { - this.tryEntries = [{ - tryLoc: "root" - }], t.forEach(pushTryEntry, this), this.reset(!0); - } - function values(e) { - if (e || "" === e) { - var r = e[a]; - if (r) return r.call(e); - if ("function" == typeof e.next) return e; - if (!isNaN(e.length)) { - var o = -1, - i = function next() { - for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; - return next.value = t, next.done = !0, next; - }; - return i.next = i; - } - } - throw new TypeError(_typeof(e) + " is not iterable"); - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), o(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { - var e = "function" == typeof t && t.constructor; - return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); - }, e.mark = function (t) { - return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; - }, e.awrap = function (t) { - return { - __await: t - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { - return this; - }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { - void 0 === i && (i = Promise); - var a = new AsyncIterator(wrap(t, r, n, o), i); - return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { - return t.done ? t.value : a.next(); - }); - }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { - return this; - }), define(g, "toString", function () { - return "[object Generator]"; - }), e.keys = function (t) { - var e = Object(t), - r = []; - for (var n in e) r.push(n); - return r.reverse(), function next() { - for (; r.length;) { - var t = r.pop(); - if (t in e) return next.value = t, next.done = !1, next; - } - return next.done = !0, next; - }; - }, e.values = values, Context.prototype = { - constructor: Context, - reset: function reset(e) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); - }, - stop: function stop() { - this.done = !0; - var t = this.tryEntries[0].completion; - if ("throw" === t.type) throw t.arg; - return this.rval; - }, - dispatchException: function dispatchException(e) { - if (this.done) throw e; - var r = this; - function handle(n, o) { - return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; - } - for (var o = this.tryEntries.length - 1; o >= 0; --o) { - var i = this.tryEntries[o], - a = i.completion; - if ("root" === i.tryLoc) return handle("end"); - if (i.tryLoc <= this.prev) { - var c = n.call(i, "catchLoc"), - u = n.call(i, "finallyLoc"); - if (c && u) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } else if (c) { - if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); - } else { - if (!u) throw Error("try statement without catch or finally"); - if (this.prev < i.finallyLoc) return handle(i.finallyLoc); - } - } - } - }, - abrupt: function abrupt(t, e) { - for (var r = this.tryEntries.length - 1; r >= 0; --r) { - var o = this.tryEntries[r]; - if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { - var i = o; - break; - } - } - i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); - var a = i ? i.completion : {}; - return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); - }, - complete: function complete(t, e) { - if ("throw" === t.type) throw t.arg; - return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; - }, - finish: function finish(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; - } - }, - "catch": function _catch(t) { - for (var e = this.tryEntries.length - 1; e >= 0; --e) { - var r = this.tryEntries[e]; - if (r.tryLoc === t) { - var n = r.completion; - if ("throw" === n.type) { - var o = n.arg; - resetTryEntry(r); - } - return o; - } - } - throw Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(e, r, n) { - return this.delegate = { - iterator: values(e), - resultName: r, - nextLoc: n - }, "next" === this.method && (this.arg = t), y; - } - }, e; -} -module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/typeof.js": -/*!*******************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! - \*******************************************************/ -/***/ ((module) => { - -function _typeof(o) { - "@babel/helpers - typeof"; - - return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o); -} -module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; - -/***/ }), - -/***/ "./node_modules/@babel/runtime/regenerator/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/@babel/runtime/regenerator/index.js ***! - \**********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -// TODO(Babel 8): Remove this file. - -var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "./node_modules/@babel/runtime/helpers/regeneratorRuntime.js")(); -module.exports = runtime; - -// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - if (typeof globalThis === "object") { - globalThis.regeneratorRuntime = runtime; - } else { - Function("r", "regeneratorRuntime = r")(runtime); - } -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray) -/* harmony export */ }); -function _arrayLikeToArray(r, a) { - (null == a || a > r.length) && (a = r.length); - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; - return n; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _arrayWithHoles) -/* harmony export */ }); -function _arrayWithHoles(r) { - if (Array.isArray(r)) return r; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": -/*!**************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! - \**************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _assertThisInitialized) -/* harmony export */ }); -function _assertThisInitialized(e) { - if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _asyncToGenerator) -/* harmony export */ }); -function asyncGeneratorStep(n, t, e, r, o, a, c) { - try { - var i = n[a](c), - u = i.value; - } catch (n) { - return void e(n); - } - i.done ? t(u) : Promise.resolve(u).then(r, o); -} -function _asyncToGenerator(n) { - return function () { - var t = this, - e = arguments; - return new Promise(function (r, o) { - var a = n.apply(t, e); - function _next(n) { - asyncGeneratorStep(a, r, o, _next, _throw, "next", n); - } - function _throw(n) { - asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); - } - _next(void 0); - }); - }; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _classCallCheck) -/* harmony export */ }); -function _classCallCheck(a, n) { - if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/construct.js": -/*!**************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/construct.js ***! - \**************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _construct) -/* harmony export */ }); -/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js"); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); - - -function _construct(t, e, r) { - if ((0,_isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_0__["default"])()) return Reflect.construct.apply(null, arguments); - var o = [null]; - o.push.apply(o, e); - var p = new (t.bind.apply(t, o))(); - return r && (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__["default"])(p, r.prototype), p; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js": -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***! - \****************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _createClass) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperties(e, r) { - for (var t = 0; t < r.length; t++) { - var o = r[t]; - o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(o.key), o); - } -} -function _createClass(e, r, t) { - return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { - writable: !1 - }), e; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _defineProperty) -/* harmony export */ }); -/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js"); - -function _defineProperty(e, r, t) { - return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r)) in e ? Object.defineProperty(e, r, { - value: t, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[r] = t, e; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _getPrototypeOf) -/* harmony export */ }); -function _getPrototypeOf(t) { - return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { - return t.__proto__ || Object.getPrototypeOf(t); - }, _getPrototypeOf(t); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js": -/*!*************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***! - \*************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _inherits) -/* harmony export */ }); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); - -function _inherits(t, e) { - if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); - t.prototype = Object.create(e && e.prototype, { - constructor: { - value: t, - writable: !0, - configurable: !0 - } - }), Object.defineProperty(t, "prototype", { - writable: !1 - }), e && (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t, e); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js": -/*!*********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _isNativeFunction) -/* harmony export */ }); -function _isNativeFunction(t) { - try { - return -1 !== Function.toString.call(t).indexOf("[native code]"); - } catch (n) { - return "function" == typeof t; - } -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js ***! - \*****************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _isNativeReflectConstruct) -/* harmony export */ }); -function _isNativeReflectConstruct() { - try { - var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - } catch (t) {} - return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { - return !!t; - })(); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js": -/*!*************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***! - \*************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _iterableToArrayLimit) -/* harmony export */ }); -function _iterableToArrayLimit(r, l) { - var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; - if (null != t) { - var e, - n, - i, - u, - a = [], - f = !0, - o = !1; - try { - if (i = (t = t.call(r)).next, 0 === l) { - if (Object(t) !== t) return; - f = !1; - } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); - } catch (r) { - o = !0, n = r; - } finally { - try { - if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; - } finally { - if (o) throw n; - } - } - return a; - } -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js": -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***! - \********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _nonIterableRest) -/* harmony export */ }); -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js": -/*!****************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _objectWithoutProperties) -/* harmony export */ }); -/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"); - -function _objectWithoutProperties(e, t) { - if (null == e) return {}; - var o, - r, - i = (0,_objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(e, t); - if (Object.getOwnPropertySymbols) { - var n = Object.getOwnPropertySymbols(e); - for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); - } - return i; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _objectWithoutPropertiesLoose) -/* harmony export */ }); -function _objectWithoutPropertiesLoose(r, e) { - if (null == r) return {}; - var t = {}; - for (var n in r) if ({}.hasOwnProperty.call(r, n)) { - if (-1 !== e.indexOf(n)) continue; - t[n] = r[n]; - } - return t; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js": -/*!******************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***! - \******************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _possibleConstructorReturn) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"); - - -function _possibleConstructorReturn(t, e) { - if (e && ("object" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(e) || "function" == typeof e)) return e; - if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); - return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js": -/*!*******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***! - \*******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _setPrototypeOf) -/* harmony export */ }); -function _setPrototypeOf(t, e) { - return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { - return t.__proto__ = e, t; - }, _setPrototypeOf(t, e); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js": -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***! - \******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _slicedToArray) -/* harmony export */ }); -/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js"); -/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js"); -/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"); -/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js"); - - - - -function _slicedToArray(r, e) { - return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__["default"])(r, e) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(r, e) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__["default"])(); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js": -/*!****************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***! - \****************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPrimitive) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); - -function toPrimitive(t, r) { - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js": -/*!******************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***! - \******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toPropertyKey) -/* harmony export */ }); -/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); -/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js"); - - -function toPropertyKey(t) { - var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string"); - return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : i + ""; -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js": -/*!***********************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***! - \***********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _typeof) -/* harmony export */ }); -function _typeof(o) { - "@babel/helpers - typeof"; - - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { - return typeof o; - } : function (o) { - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; - }, _typeof(o); -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***! - \*******************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray) -/* harmony export */ }); -/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js"); - -function _unsupportedIterableToArray(r, a) { - if (r) { - if ("string" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a); - var t = {}.toString.call(r).slice(8, -1); - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(r, a) : void 0; - } -} - - -/***/ }), - -/***/ "./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js": -/*!********************************************************************!*\ - !*** ./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js ***! - \********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ _wrapNativeSuper) -/* harmony export */ }); -/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); -/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js"); -/* harmony import */ var _isNativeFunction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isNativeFunction.js */ "./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js"); -/* harmony import */ var _construct_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./construct.js */ "./node_modules/@babel/runtime/helpers/esm/construct.js"); - - - - -function _wrapNativeSuper(t) { - var r = "function" == typeof Map ? new Map() : void 0; - return _wrapNativeSuper = function _wrapNativeSuper(t) { - if (null === t || !(0,_isNativeFunction_js__WEBPACK_IMPORTED_MODULE_2__["default"])(t)) return t; - if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); - if (void 0 !== r) { - if (r.has(t)) return r.get(t); - r.set(t, Wrapper); - } - function Wrapper() { - return (0,_construct_js__WEBPACK_IMPORTED_MODULE_3__["default"])(t, arguments, (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this).constructor); - } - return Wrapper.prototype = Object.create(t.prototype, { - constructor: { - value: Wrapper, - enumerable: !1, - writable: !0, - configurable: !0 - } - }), (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_1__["default"])(Wrapper, t); - }, _wrapNativeSuper(t); -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/adapters/adapters.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/adapters/adapters.js ***! - \*****************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./http.js */ "./node_modules/axios/lib/helpers/null.js"); -/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./xhr.js */ "./node_modules/axios/lib/adapters/xhr.js"); -/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fetch.js */ "./node_modules/axios/lib/adapters/fetch.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); - - - - - - -const knownAdapters = { - http: _http_js__WEBPACK_IMPORTED_MODULE_0__["default"], - xhr: _xhr_js__WEBPACK_IMPORTED_MODULE_1__["default"], - fetch: _fetch_js__WEBPACK_IMPORTED_MODULE_2__["default"] -} - -_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - Object.defineProperty(fn, 'name', {value}); - } catch (e) { - // eslint-disable-next-line no-empty - } - Object.defineProperty(fn, 'adapterName', {value}); - } -}); - -const renderReason = (reason) => `- ${reason}`; - -const isResolvedHandle = (adapter) => _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isFunction(adapter) || adapter === null || adapter === false; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - getAdapter: (adapters) => { - adapters = _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isArray(adapters) ? adapters : [adapters]; - - const {length} = adapters; - let nameOrAdapter; - let adapter; - - const rejectedReasons = {}; - - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id; - - adapter = nameOrAdapter; - - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; - - if (adapter === undefined) { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__["default"](`Unknown adapter '${id}'`); - } - } - - if (adapter) { - break; - } - - rejectedReasons[id || '#' + i] = adapter; - } - - if (!adapter) { - - const reasons = Object.entries(rejectedReasons) - .map(([id, state]) => `adapter ${id} ` + - (state === false ? 'is not supported by the environment' : 'is not available in the build') - ); - - let s = length ? - (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) : - 'as no adapter specified'; - - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__["default"]( - `There is no suitable adapter to dispatch the request ` + s, - 'ERR_NOT_SUPPORT' - ); - } - - return adapter; - }, - adapters: knownAdapters -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/adapters/fetch.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/adapters/fetch.js ***! - \**************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/composeSignals.js */ "./node_modules/axios/lib/helpers/composeSignals.js"); -/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/trackStream.js */ "./node_modules/axios/lib/helpers/trackStream.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js"); -/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js"); -/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/settle.js */ "./node_modules/axios/lib/core/settle.js"); - - - - - - - - - - -const isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function'; -const isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function'; - -// used only inside the fetch adapter -const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? - ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : - async (str) => new Uint8Array(await new Response(str).arrayBuffer()) -); - -const test = (fn, ...args) => { - try { - return !!fn(...args); - } catch (e) { - return false - } -} - -const supportsRequestStream = isReadableStreamSupported && test(() => { - let duplexAccessed = false; - - const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, { - body: new ReadableStream(), - method: 'POST', - get duplex() { - duplexAccessed = true; - return 'half'; - }, - }).headers.has('Content-Type'); - - return duplexAccessed && !hasContentType; -}); - -const DEFAULT_CHUNK_SIZE = 64 * 1024; - -const supportsResponseStream = isReadableStreamSupported && - test(() => _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isReadableStream(new Response('').body)); - - -const resolvers = { - stream: supportsResponseStream && ((res) => res.body) -}; - -isFetchSupported && (((res) => { - ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => { - !resolvers[type] && (resolvers[type] = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(res[type]) ? (res) => res[type]() : - (_, config) => { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"](`Response type '${type}' is not supported`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_NOT_SUPPORT, config); - }) - }); -})(new Response)); - -const getBodyLength = async (body) => { - if (body == null) { - return 0; - } - - if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isBlob(body)) { - return body.size; - } - - if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isSpecCompliantForm(body)) { - const _request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin, { - method: 'POST', - body, - }); - return (await _request.arrayBuffer()).byteLength; - } - - if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArrayBufferView(body) || _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArrayBuffer(body)) { - return body.byteLength; - } - - if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isURLSearchParams(body)) { - body = body + ''; - } - - if(_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(body)) { - return (await encodeText(body)).byteLength; - } -} - -const resolveBodyLength = async (headers, body) => { - const length = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(headers.getContentLength()); - - return length == null ? getBodyLength(body) : length; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFetchSupported && (async (config) => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = 'same-origin', - fetchOptions - } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(config); - - responseType = responseType ? (responseType + '').toLowerCase() : 'text'; - - let composedSignal = (0,_helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_4__["default"])([signal, cancelToken && cancelToken.toAbortSignal()], timeout); - - let request; - - const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => { - composedSignal.unsubscribe(); - }); - - let requestContentLength; - - try { - if ( - onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' && - (requestContentLength = await resolveBodyLength(headers, data)) !== 0 - ) { - let _request = new Request(url, { - method: 'POST', - body: data, - duplex: "half" - }); - - let contentTypeHeader; - - if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { - headers.setContentType(contentTypeHeader) - } - - if (_request.body) { - const [onProgress, flush] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)( - requestContentLength, - (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onUploadProgress)) - ); - - data = (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush); - } - } - - if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(withCredentials)) { - withCredentials = withCredentials ? 'include' : 'omit'; - } - - // Cloudflare Workers throws when credentials are defined - // see https://github.com/cloudflare/workerd/issues/902 - const isCredentialsSupported = "credentials" in Request.prototype; - request = new Request(url, { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: headers.normalize().toJSON(), - body: data, - duplex: "half", - credentials: isCredentialsSupported ? withCredentials : undefined - }); - - let response = await fetch(request); - - const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response'); - - if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) { - const options = {}; - - ['status', 'statusText', 'headers'].forEach(prop => { - options[prop] = response[prop]; - }); - - const responseContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].toFiniteNumber(response.headers.get('content-length')); - - const [onProgress, flush] = onDownloadProgress && (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventDecorator)( - responseContentLength, - (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_5__.asyncDecorator)(onDownloadProgress), true) - ) || []; - - response = new Response( - (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_6__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => { - flush && flush(); - unsubscribe && unsubscribe(); - }), - options - ); - } - - responseType = responseType || 'text'; - - let responseData = await resolvers[_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].findKey(resolvers, responseType) || 'text'](response, config); - - !isStreamResponse && unsubscribe && unsubscribe(); - - return await new Promise((resolve, reject) => { - (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_7__["default"])(resolve, reject, { - data: responseData, - headers: _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"].from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request - }) - }) - } catch (err) { - unsubscribe && unsubscribe(); - - if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) { - throw Object.assign( - new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].ERR_NETWORK, config, request), - { - cause: err.cause || err - } - ) - } - - throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"].from(err, err && err.code, config, request); - } -})); - - - - -/***/ }), - -/***/ "./node_modules/axios/lib/adapters/xhr.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/adapters/xhr.js ***! - \************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../core/settle.js */ "./node_modules/axios/lib/core/settle.js"); -/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/transitional.js */ "./node_modules/axios/lib/defaults/transitional.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ "./node_modules/axios/lib/helpers/parseProtocol.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ "./node_modules/axios/lib/helpers/progressEventReducer.js"); -/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ "./node_modules/axios/lib/helpers/resolveConfig.js"); - - - - - - - - - - - -const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isXHRAdapterSupported && function (config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_0__["default"])(config); - let requestData = _config.data; - const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(_config.headers).normalize(); - let {responseType, onUploadProgress, onDownloadProgress} = _config; - let onCanceled; - let uploadThrottled, downloadThrottled; - let flushUpload, flushDownload; - - function done() { - flushUpload && flushUpload(); // flush events - flushDownload && flushDownload(); // flush events - - _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); - - _config.signal && _config.signal.removeEventListener('abort', onCanceled); - } - - let request = new XMLHttpRequest(); - - request.open(_config.method.toUpperCase(), _config.url, true); - - // Set the request timeout in MS - request.timeout = _config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from( - 'getAllResponseHeaders' in request && request.getAllResponseHeaders() - ); - const responseData = !responseType || responseType === 'text' || responseType === 'json' ? - request.responseText : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request - }; - - (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_2__["default"])(function _resolve(value) { - resolve(value); - done(); - }, function _reject(err) { - reject(err); - done(); - }, response); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request)); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError() { - // Real errors are hidden from us by the browser - // onerror should only fire if it's a network error - reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ERR_NETWORK, config, request)); - - // Clean up request - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded'; - const transitional = _config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_4__["default"]; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]( - timeoutErrorMessage, - transitional.clarifyTimeoutError ? _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ETIMEDOUT : _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, - config, - request)); - - // Clean up request - request = null; - }; - - // Remove Content-Type if data is undefined - requestData === undefined && requestHeaders.setContentType(null); - - // Add headers to the request - if ('setRequestHeader' in request) { - _utils_js__WEBPACK_IMPORTED_MODULE_5__["default"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { - request.setRequestHeader(key, val); - }); - } - - // Add withCredentials to request if needed - if (!_utils_js__WEBPACK_IMPORTED_MODULE_5__["default"].isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = _config.responseType; - } - - // Handle progress if needed - if (onDownloadProgress) { - ([downloadThrottled, flushDownload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onDownloadProgress, true)); - request.addEventListener('progress', downloadThrottled); - } - - // Not all browsers support upload events - if (onUploadProgress && request.upload) { - ([uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)(onUploadProgress)); - - request.upload.addEventListener('progress', uploadThrottled); - - request.upload.addEventListener('loadend', flushUpload); - } - - if (_config.cancelToken || _config.signal) { - // Handle cancellation - // eslint-disable-next-line func-names - onCanceled = cancel => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_7__["default"](null, config, request) : cancel); - request.abort(); - request = null; - }; - - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled); - } - } - - const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_8__["default"])(_config.url); - - if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_9__["default"].protocols.indexOf(protocol) === -1) { - reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Unsupported protocol ' + protocol + ':', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ERR_BAD_REQUEST, config)); - return; - } - - - // Send the request - request.send(requestData || null); - }); -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/axios.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/axios.js ***! - \*****************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js"); -/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/Axios.js */ "./node_modules/axios/lib/core/Axios.js"); -/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js"); -/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ "./node_modules/axios/lib/defaults/index.js"); -/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js"); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CancelToken.js */ "./node_modules/axios/lib/cancel/CancelToken.js"); -/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js"); -/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./env/data.js */ "./node_modules/axios/lib/env/data.js"); -/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./helpers/spread.js */ "./node_modules/axios/lib/helpers/spread.js"); -/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ "./node_modules/axios/lib/helpers/isAxiosError.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js"); -/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ "./node_modules/axios/lib/helpers/HttpStatusCode.js"); - - - - - - - - - - - - - - - - - - - - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * - * @returns {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - const context = new _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"](defaultConfig); - const instance = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__["default"])(_core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"].prototype.request, context); - - // Copy axios.prototype to instance - _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].extend(instance, _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"].prototype, context, {allOwnKeys: true}); - - // Copy context to instance - _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].extend(instance, context, null, {allOwnKeys: true}); - - // Factory for creating new instances - instance.create = function create(instanceConfig) { - return createInstance((0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"])(defaultConfig, instanceConfig)); - }; - - return instance; -} - -// Create the default instance to be exported -const axios = createInstance(_defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"]); - -// Expose Axios class to allow class inheritance -axios.Axios = _core_Axios_js__WEBPACK_IMPORTED_MODULE_0__["default"]; - -// Expose Cancel & CancelToken -axios.CanceledError = _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_5__["default"]; -axios.CancelToken = _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_6__["default"]; -axios.isCancel = _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_7__["default"]; -axios.VERSION = _env_data_js__WEBPACK_IMPORTED_MODULE_8__.VERSION; -axios.toFormData = _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_9__["default"]; - -// Expose AxiosError class -axios.AxiosError = _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_10__["default"]; - -// alias for CanceledError for backward compatibility -axios.Cancel = axios.CanceledError; - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; - -axios.spread = _helpers_spread_js__WEBPACK_IMPORTED_MODULE_11__["default"]; - -// Expose isAxiosError -axios.isAxiosError = _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_12__["default"]; - -// Expose mergeConfig -axios.mergeConfig = _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__["default"]; - -axios.AxiosHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_13__["default"]; - -axios.formToJSON = thing => (0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_14__["default"])(_utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isHTMLForm(thing) ? new FormData(thing) : thing); - -axios.getAdapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__["default"].getAdapter; - -axios.HttpStatusCode = _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__["default"]; - -axios.default = axios; - -// this module should only have a default export -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (axios); - - -/***/ }), - -/***/ "./node_modules/axios/lib/cancel/CancelToken.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! - \******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); - - - - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @param {Function} executor The executor function. - * - * @returns {CancelToken} - */ -class CancelToken { - constructor(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - let resolvePromise; - - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - const token = this; - - // eslint-disable-next-line func-names - this.promise.then(cancel => { - if (!token._listeners) return; - - let i = token._listeners.length; - - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - - // eslint-disable-next-line func-names - this.promise.then = onfulfilled => { - let _resolve; - // eslint-disable-next-line func-names - const promise = new Promise(resolve => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - - return promise; - }; - - executor(function cancel(message, config, request) { - if (token.reason) { - // Cancellation has already been requested - return; - } - - token.reason = new _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](message, config, request); - resolvePromise(token.reason); - }); - } - - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - - /** - * Subscribe to the cancel signal - */ - - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - - /** - * Unsubscribe from the cancel signal - */ - - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index = this._listeners.indexOf(listener); - if (index !== -1) { - this._listeners.splice(index, 1); - } - } - - toAbortSignal() { - const controller = new AbortController(); - - const abort = (err) => { - controller.abort(err); - }; - - this.subscribe(abort); - - controller.signal.unsubscribe = () => this.unsubscribe(abort); - - return controller.signal; - } - - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel - }; - } -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CancelToken); - - -/***/ }), - -/***/ "./node_modules/axios/lib/cancel/CanceledError.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CanceledError.js ***! - \********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - - -/** - * A `CanceledError` is an object that is thrown when an operation is canceled. - * - * @param {string=} message The message. - * @param {Object=} config The config. - * @param {Object=} request The request. - * - * @returns {CanceledError} The created error. - */ -function CanceledError(message, config, request) { - // eslint-disable-next-line no-eq-null,eqeqeq - _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(this, message == null ? 'canceled' : message, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_CANCELED, config, request); - this.name = 'CanceledError'; -} - -_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].inherits(CanceledError, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"], { - __CANCEL__: true -}); - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CanceledError); - - -/***/ }), - -/***/ "./node_modules/axios/lib/cancel/isCancel.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/cancel/isCancel.js ***! - \***************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isCancel) -/* harmony export */ }); - - -function isCancel(value) { - return !!(value && value.__CANCEL__); -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/Axios.js": -/*!**********************************************!*\ - !*** ./node_modules/axios/lib/core/Axios.js ***! - \**********************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js"); -/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InterceptorManager.js */ "./node_modules/axios/lib/core/InterceptorManager.js"); -/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dispatchRequest.js */ "./node_modules/axios/lib/core/dispatchRequest.js"); -/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js"); -/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js"); -/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/validator.js */ "./node_modules/axios/lib/helpers/validator.js"); -/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); - - - - - - - - - - - -const validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].validators; - -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - * - * @return {Axios} A new instance of Axios - */ -class Axios { - constructor(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__["default"](), - response: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_1__["default"]() - }; - } - - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy = {}; - - Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); - - // slice off the Error: ... line - const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, '') : ''; - try { - if (!err.stack) { - err.stack = stack; - // match without the 2 top stack lines - } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ''))) { - err.stack += '\n' + stack - } - } catch (e) { - // ignore the case where "stack" is an un-writable property - } - } - - throw err; - } - } - - _request(configOrUrl, config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof configOrUrl === 'string') { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - - config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.defaults, config); - - const {transitional, paramsSerializer, headers} = config; - - if (transitional !== undefined) { - _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(transitional, { - silentJSONParsing: validators.transitional(validators.boolean), - forcedJSONParsing: validators.transitional(validators.boolean), - clarifyTimeoutError: validators.transitional(validators.boolean) - }, false); - } - - if (paramsSerializer != null) { - if (_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer - } - } else { - _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(paramsSerializer, { - encode: validators.function, - serialize: validators.function - }, true); - } - } - - // Set config.allowAbsoluteUrls - if (config.allowAbsoluteUrls !== undefined) { - // do nothing - } else if (this.defaults.allowAbsoluteUrls !== undefined) { - config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; - } else { - config.allowAbsoluteUrls = true; - } - - _helpers_validator_js__WEBPACK_IMPORTED_MODULE_0__["default"].assertOptions(config, { - baseUrl: validators.spelling('baseURL'), - withXsrfToken: validators.spelling('withXSRFToken') - }, true); - - // Set config.method - config.method = (config.method || this.defaults.method || 'get').toLowerCase(); - - // Flatten headers - let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].merge( - headers.common, - headers[config.method] - ); - - headers && _utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach( - ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], - (method) => { - delete headers[method]; - } - ); - - config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].concat(contextHeaders, headers); - - // filter out skipped interceptors - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - let promise; - let i = 0; - let len; - - if (!synchronousRequestInterceptors) { - const chain = [_dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(this), undefined]; - chain.unshift.apply(chain, requestInterceptorChain); - chain.push.apply(chain, responseInterceptorChain); - len = chain.length; - - promise = Promise.resolve(config); - - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - - return promise; - } - - len = requestInterceptorChain.length; - - let newConfig = config; - - i = 0; - - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - - try { - promise = _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_5__["default"].call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - - i = 0; - len = responseInterceptorChain.length; - - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - - return promise; - } - - getUri(config) { - config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.defaults, config); - const fullPath = (0,_buildFullPath_js__WEBPACK_IMPORTED_MODULE_6__["default"])(config.baseURL, config.url, config.allowAbsoluteUrls); - return (0,_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_7__["default"])(fullPath, config.params, config.paramsSerializer); - } -} - -// Provide aliases for supported request methods -_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, config) { - return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(config || {}, { - method, - url, - data: (config || {}).data - })); - }; -}); - -_utils_js__WEBPACK_IMPORTED_MODULE_3__["default"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - /*eslint func-names:0*/ - - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_2__["default"])(config || {}, { - method, - headers: isForm ? { - 'Content-Type': 'multipart/form-data' - } : {}, - url, - data - })); - }; - } - - Axios.prototype[method] = generateHTTPMethod(); - - Axios.prototype[method + 'Form'] = generateHTTPMethod(true); -}); - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios); - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/AxiosError.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/core/AxiosError.js ***! - \***************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -/** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [config] The config. - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * - * @returns {Error} The created error. - */ -function AxiosError(message, code, config, request, response) { - Error.call(this); - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = (new Error()).stack; - } - - this.message = message; - this.name = 'AxiosError'; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - if (response) { - this.response = response; - this.status = response.status ? response.status : null; - } -} - -_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].inherits(AxiosError, Error, { - toJSON: function toJSON() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toJSONObject(this.config), - code: this.code, - status: this.status - }; - } -}); - -const prototype = AxiosError.prototype; -const descriptors = {}; - -[ - 'ERR_BAD_OPTION_VALUE', - 'ERR_BAD_OPTION', - 'ECONNABORTED', - 'ETIMEDOUT', - 'ERR_NETWORK', - 'ERR_FR_TOO_MANY_REDIRECTS', - 'ERR_DEPRECATED', - 'ERR_BAD_RESPONSE', - 'ERR_BAD_REQUEST', - 'ERR_CANCELED', - 'ERR_NOT_SUPPORT', - 'ERR_INVALID_URL' -// eslint-disable-next-line func-names -].forEach(code => { - descriptors[code] = {value: code}; -}); - -Object.defineProperties(AxiosError, descriptors); -Object.defineProperty(prototype, 'isAxiosError', {value: true}); - -// eslint-disable-next-line func-names -AxiosError.from = (error, code, config, request, response, customProps) => { - const axiosError = Object.create(prototype); - - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(error, axiosError, function filter(obj) { - return obj !== Error.prototype; - }, prop => { - return prop !== 'isAxiosError'; - }); - - AxiosError.call(axiosError, error.message, code, config, request, response); - - axiosError.cause = error; - - axiosError.name = error.name; - - customProps && Object.assign(axiosError, customProps); - - return axiosError; -}; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError); - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/AxiosHeaders.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/core/AxiosHeaders.js ***! - \*****************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ "./node_modules/axios/lib/helpers/parseHeaders.js"); - - - - - -const $internals = Symbol('internals'); - -function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); -} - -function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.map(normalizeValue) : String(value); -} - -function parseTokens(str) { - const tokens = Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - - while ((match = tokensRE.exec(str))) { - tokens[match[1]] = match[2]; - } - - return tokens; -} - -const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); - -function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(filter)) { - return filter.call(this, value, header); - } - - if (isHeaderNameFilter) { - value = header; - } - - if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(value)) return; - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(filter)) { - return value.indexOf(filter) !== -1; - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(filter)) { - return filter.test(value); - } -} - -function formatHeader(header) { - return header.trim() - .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); -} - -function buildAccessors(obj, header) { - const accessorName = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toCamelCase(' ' + header); - - ['get', 'set', 'has'].forEach(methodName => { - Object.defineProperty(obj, methodName + accessorName, { - value: function(arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true - }); - }); -} - -class AxiosHeaders { - constructor(headers) { - headers && this.set(headers); - } - - set(header, valueOrRewrite, rewrite) { - const self = this; - - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - - if (!lHeader) { - throw new Error('header name must be a non-empty string'); - } - - const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, lHeader); - - if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) { - self[key || _header] = normalizeValue(_value); - } - } - - const setHeaders = (headers, _rewrite) => - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite) - } else if(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders((0,_helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"])(header), valueOrRewrite); - } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHeaders(header)) { - for (const [key, value] of header.entries()) { - setHeader(value, key, rewrite); - } - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - - return this; - } - - get(header, parser) { - header = normalizeHeader(header); - - if (header) { - const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header); - - if (key) { - const value = this[key]; - - if (!parser) { - return value; - } - - if (parser === true) { - return parseTokens(value); - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(parser)) { - return parser.call(this, value, key); - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isRegExp(parser)) { - return parser.exec(value); - } - - throw new TypeError('parser must be boolean|regexp|function'); - } - } - } - - has(header, matcher) { - header = normalizeHeader(header); - - if (header) { - const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(this, header); - - return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); - } - - return false; - } - - delete(header, matcher) { - const self = this; - let deleted = false; - - function deleteHeader(_header) { - _header = normalizeHeader(_header); - - if (_header) { - const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(self, _header); - - if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { - delete self[key]; - - deleted = true; - } - } - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - - return deleted; - } - - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - - while (i--) { - const key = keys[i]; - if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { - delete this[key]; - deleted = true; - } - } - - return deleted; - } - - normalize(format) { - const self = this; - const headers = {}; - - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => { - const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].findKey(headers, header); - - if (key) { - self[key] = normalizeValue(value); - delete self[header]; - return; - } - - const normalized = format ? formatHeader(header) : String(header).trim(); - - if (normalized !== header) { - delete self[header]; - } - - self[normalized] = normalizeValue(value); - - headers[normalized] = true; - }); - - return this; - } - - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - - toJSON(asStrings) { - const obj = Object.create(null); - - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this, (value, header) => { - value != null && value !== false && (obj[header] = asStrings && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) ? value.join(', ') : value); - }); - - return obj; - } - - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - - toString() { - return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); - } - - get [Symbol.toStringTag]() { - return 'AxiosHeaders'; - } - - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - - static concat(first, ...targets) { - const computed = new this(first); - - targets.forEach((target) => computed.set(target)); - - return computed; - } - - static accessor(header) { - const internals = this[$internals] = (this[$internals] = { - accessors: {} - }); - - const accessors = internals.accessors; - const prototype = this.prototype; - - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - - if (!accessors[lHeader]) { - buildAccessors(prototype, _header); - accessors[lHeader] = true; - } - } - - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - - return this; - } -} - -AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); - -// reserved names hotfix -_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => { - let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - } - } -}); - -_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].freezeMethods(AxiosHeaders); - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosHeaders); - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/InterceptorManager.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! - \***********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -class InterceptorManager { - constructor() { - this.handlers = []; - } - - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; - } - - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise - */ - eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - } - - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterceptorManager); - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ buildFullPath) -/* harmony export */ }); -/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); -/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ "./node_modules/axios/lib/helpers/combineURLs.js"); - - - - - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * - * @returns {string} The combined full path - */ -function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { - let isRelativeUrl = !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__["default"])(requestedURL); - if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) { - return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURL, requestedURL); - } - return requestedURL; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/dispatchRequest.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! - \********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ dispatchRequest) -/* harmony export */ }); -/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transformData.js */ "./node_modules/axios/lib/core/transformData.js"); -/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../cancel/isCancel.js */ "./node_modules/axios/lib/cancel/isCancel.js"); -/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js"); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../adapters/adapters.js */ "./node_modules/axios/lib/adapters/adapters.js"); - - - - - - - - - -/** - * Throws a `CanceledError` if cancellation has been requested. - * - * @param {Object} config The config that is to be used for the request - * - * @returns {void} - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - - if (config.signal && config.signal.aborted) { - throw new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__["default"](null, config); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * - * @returns {Promise} The Promise to be fulfilled - */ -function dispatchRequest(config) { - throwIfCancellationRequested(config); - - config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(config.headers); - - // Transform request data - config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call( - config, - config.transformRequest - ); - - if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { - config.headers.setContentType('application/x-www-form-urlencoded', false); - } - - const adapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_3__["default"].getAdapter(config.adapter || _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__["default"].adapter); - - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Transform response data - response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call( - config, - config.transformResponse, - response - ); - - response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(response.headers); - - return response; - }, function onAdapterRejection(reason) { - if (!(0,_cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_5__["default"])(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_2__["default"].call( - config, - config.transformResponse, - reason.response - ); - reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(reason.response.headers); - } - } - - return Promise.reject(reason); - }); -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/mergeConfig.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/mergeConfig.js ***! - \****************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ mergeConfig) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); - - - - - -const headersToObject = (thing) => thing instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? { ...thing } : thing; - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * - * @returns {Object} New object resulting from merging config2 to config1 - */ -function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - const config = {}; - - function getMergedValue(target, source, prop, caseless) { - if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(source)) { - return _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call({caseless}, target, source); - } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isPlainObject(source)) { - return _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge({}, source); - } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isArray(source)) { - return source.slice(); - } - return source; - } - - // eslint-disable-next-line consistent-return - function mergeDeepProperties(a, b, prop , caseless) { - if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) { - return getMergedValue(a, b, prop , caseless); - } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(a)) { - return getMergedValue(undefined, a, prop , caseless); - } - } - - // eslint-disable-next-line consistent-return - function valueFromConfig2(a, b) { - if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) { - return getMergedValue(undefined, b); - } - } - - // eslint-disable-next-line consistent-return - function defaultToConfig2(a, b) { - if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(b)) { - return getMergedValue(undefined, b); - } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(a)) { - return getMergedValue(undefined, a); - } - } - - // eslint-disable-next-line consistent-return - function mergeDirectKeys(a, b, prop) { - if (prop in config2) { - return getMergedValue(a, b); - } else if (prop in config1) { - return getMergedValue(undefined, a); - } - } - - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true) - }; - - _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { - const merge = mergeMap[prop] || mergeDeepProperties; - const configValue = merge(config1[prop], config2[prop], prop); - (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); - }); - - return config; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/settle.js": -/*!***********************************************!*\ - !*** ./node_modules/axios/lib/core/settle.js ***! - \***********************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ settle) -/* harmony export */ }); -/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); - - - - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - * - * @returns {object} The response. - */ -function settle(resolve, reject, response) { - const validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"]( - 'Request failed with status code ' + response.status, - [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], - response.config, - response.request, - response - )); - } -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/transformData.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/transformData.js ***! - \******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ transformData) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../defaults/index.js */ "./node_modules/axios/lib/defaults/index.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); - - - - - - -/** - * Transform the data for a request or a response - * - * @param {Array|Function} fns A single function or Array of functions - * @param {?Object} response The response object - * - * @returns {*} The resulting transformed data - */ -function transformData(fns, response) { - const config = this || _defaults_index_js__WEBPACK_IMPORTED_MODULE_0__["default"]; - const context = response || config; - const headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(context.headers); - let data = context.data; - - _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); - }); - - headers.normalize(); - - return data; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/defaults/index.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/defaults/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitional.js */ "./node_modules/axios/lib/defaults/transitional.js"); -/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); -/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ "./node_modules/axios/lib/helpers/toURLEncodedForm.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ "./node_modules/axios/lib/helpers/formDataToJSON.js"); - - - - - - - - - - -/** - * It takes a string, tries to parse it, and if it fails, it returns the stringified version - * of the input - * - * @param {any} rawValue - The value to be stringified. - * @param {Function} parser - A function that parses a string into a JavaScript object. - * @param {Function} encoder - A function that takes a value and returns a string. - * - * @returns {string} A stringified version of the rawValue. - */ -function stringifySafely(rawValue, parser, encoder) { - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); -} - -const defaults = { - - transitional: _transitional_js__WEBPACK_IMPORTED_MODULE_1__["default"], - - adapter: ['xhr', 'http', 'fetch'], - - transformRequest: [function transformRequest(data, headers) { - const contentType = headers.getContentType() || ''; - const hasJSONContentType = contentType.indexOf('application/json') > -1; - const isObjectPayload = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(data); - - if (isObjectPayload && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isHTMLForm(data)) { - data = new FormData(data); - } - - const isFormData = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(data); - - if (isFormData) { - return hasJSONContentType ? JSON.stringify((0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_2__["default"])(data)) : data; - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(data) || - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBuffer(data) || - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isStream(data) || - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFile(data) || - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(data) || - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data) - ) { - return data; - } - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBufferView(data)) { - return data.buffer; - } - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isURLSearchParams(data)) { - headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); - return data.toString(); - } - - let isFileList; - - if (isObjectPayload) { - if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { - return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_3__["default"])(data, this.formSerializer).toString(); - } - - if ((isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { - const _FormData = this.env && this.env.FormData; - - return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_4__["default"])( - isFileList ? {'files[]': data} : data, - _FormData && new _FormData(), - this.formSerializer - ); - } - } - - if (isObjectPayload || hasJSONContentType ) { - headers.setContentType('application/json', false); - return stringifySafely(data); - } - - return data; - }], - - transformResponse: [function transformResponse(data) { - const transitional = this.transitional || defaults.transitional; - const forcedJSONParsing = transitional && transitional.forcedJSONParsing; - const JSONRequested = this.responseType === 'json'; - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isReadableStream(data)) { - return data; - } - - if (data && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { - const silentJSONParsing = transitional && transitional.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - - try { - return JSON.parse(data); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__["default"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_5__["default"].ERR_BAD_RESPONSE, this, null, this.response); - } - throw e; - } - } - } - - return data; - }], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - - maxContentLength: -1, - maxBodyLength: -1, - - env: { - FormData: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].classes.FormData, - Blob: _platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].classes.Blob - }, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - - headers: { - common: { - 'Accept': 'application/json, text/plain, */*', - 'Content-Type': undefined - } - } -}; - -_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => { - defaults.headers[method] = {}; -}); - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaults); - - -/***/ }), - -/***/ "./node_modules/axios/lib/defaults/transitional.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/defaults/transitional.js ***! - \*********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/env/data.js": -/*!********************************************!*\ - !*** ./node_modules/axios/lib/env/data.js ***! - \********************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ VERSION: () => (/* binding */ VERSION) -/* harmony export */ }); -const VERSION = "1.8.4"; - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js": -/*!****************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/AxiosURLSearchParams.js ***! - \****************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); - - - - -/** - * It encodes a string by replacing all characters that are not in the unreserved set with - * their percent-encoded equivalents - * - * @param {string} str - The string to encode. - * - * @returns {string} The encoded string. - */ -function encode(str) { - const charMap = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+', - '%00': '\x00' - }; - return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { - return charMap[match]; - }); -} - -/** - * It takes a params object and converts it to a FormData object - * - * @param {Object} params - The parameters to be converted to a FormData object. - * @param {Object} options - The options object passed to the Axios constructor. - * - * @returns {void} - */ -function AxiosURLSearchParams(params, options) { - this._pairs = []; - - params && (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, this, options); -} - -const prototype = AxiosURLSearchParams.prototype; - -prototype.append = function append(name, value) { - this._pairs.push([name, value]); -}; - -prototype.toString = function toString(encoder) { - const _encode = encoder ? function(value) { - return encoder.call(this, value, encode); - } : encode; - - return this._pairs.map(function each(pair) { - return _encode(pair[0]) + '=' + _encode(pair[1]); - }, '').join('&'); -}; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosURLSearchParams); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/HttpStatusCode.js": -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/HttpStatusCode.js ***! - \**********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -const HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511, -}; - -Object.entries(HttpStatusCode).forEach(([key, value]) => { - HttpStatusCode[value] = key; -}); - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HttpStatusCode); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/bind.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/bind.js ***! - \************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ bind) -/* harmony export */ }); - - -function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/buildURL.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/buildURL.js ***! - \****************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ buildURL) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js"); - - - - - -/** - * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their - * URI encoded counterparts - * - * @param {string} val The value to be encoded. - * - * @returns {string} The encoded value. - */ -function encode(val) { - return encodeURIComponent(val). - replace(/%3A/gi, ':'). - replace(/%24/g, '$'). - replace(/%2C/gi, ','). - replace(/%20/g, '+'). - replace(/%5B/gi, '['). - replace(/%5D/gi, ']'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @param {?(object|Function)} options - * - * @returns {string} The formatted url - */ -function buildURL(url, params, options) { - /*eslint no-param-reassign:0*/ - if (!params) { - return url; - } - - const _encode = options && options.encode || encode; - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(options)) { - options = { - serialize: options - }; - } - - const serializeFn = options && options.serialize; - - let serializedParams; - - if (serializeFn) { - serializedParams = serializeFn(params, options); - } else { - serializedParams = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isURLSearchParams(params) ? - params.toString() : - new _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__["default"](params, options).toString(_encode); - } - - if (serializedParams) { - const hashmarkIndex = url.indexOf("#"); - - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/combineURLs.js": -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! - \*******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ combineURLs) -/* harmony export */ }); - - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * - * @returns {string} The combined URL - */ -function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/composeSignals.js": -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/composeSignals.js ***! - \**********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/CanceledError.js */ "./node_modules/axios/lib/cancel/CanceledError.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -const composeSignals = (signals, timeout) => { - const {length} = (signals = signals ? signals.filter(Boolean) : []); - - if (timeout || length) { - let controller = new AbortController(); - - let aborted; - - const onabort = function (reason) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = reason instanceof Error ? reason : this.reason; - controller.abort(err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? err : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_1__["default"](err instanceof Error ? err.message : err)); - } - } - - let timer = timeout && setTimeout(() => { - timer = null; - onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](`timeout ${timeout} of ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"].ETIMEDOUT)) - }, timeout) - - const unsubscribe = () => { - if (signals) { - timer && clearTimeout(timer); - timer = null; - signals.forEach(signal => { - signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); - }); - signals = null; - } - } - - signals.forEach((signal) => signal.addEventListener('abort', onabort)); - - const {signal} = controller; - - signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(unsubscribe); - - return signal; - } -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (composeSignals); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/cookies.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/helpers/cookies.js ***! - \***************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserEnv ? - - // Standard browser envs support document.cookie - { - write(name, value, expires, path, domain, secure) { - const cookie = [name + '=' + encodeURIComponent(value)]; - - _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString()); - - _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(path) && cookie.push('path=' + path); - - _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isString(domain) && cookie.push('domain=' + domain); - - secure === true && cookie.push('secure'); - - document.cookie = cookie.join('; '); - }, - - read(name) { - const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); - return (match ? decodeURIComponent(match[3]) : null); - }, - - remove(name) { - this.write(name, '', Date.now() - 86400000); - } - } - - : - - // Non-standard browser env (web workers, react-native) lack needed support. - { - write() {}, - read() { - return null; - }, - remove() {} - }); - - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/formDataToJSON.js": -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/formDataToJSON.js ***! - \**********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -/** - * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] - * - * @param {string} name - The name of the property to get. - * - * @returns An array of strings. - */ -function parsePropPath(name) { - // foo[x][y][z] - // foo.x.y.z - // foo-x-y-z - // foo x y z - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].matchAll(/\w+|\[(\w*)]/g, name).map(match => { - return match[0] === '[]' ? '' : match[1] || match[0]; - }); -} - -/** - * Convert an array to an object. - * - * @param {Array} arr - The array to convert to an object. - * - * @returns An object with the same keys and values as the array. - */ -function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key; - for (i = 0; i < len; i++) { - key = keys[i]; - obj[key] = arr[key]; - } - return obj; -} - -/** - * It takes a FormData object and returns a JavaScript object - * - * @param {string} formData The FormData object to convert to JSON. - * - * @returns {Object | null} The converted object. - */ -function formDataToJSON(formData) { - function buildPath(path, value, target, index) { - let name = path[index++]; - - if (name === '__proto__') return true; - - const isNumericKey = Number.isFinite(+name); - const isLast = index >= path.length; - name = !name && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target) ? target.length : name; - - if (isLast) { - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasOwnProp(target, name)) { - target[name] = [target[name], value]; - } else { - target[name] = value; - } - - return !isNumericKey; - } - - if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(target[name])) { - target[name] = []; - } - - const result = buildPath(path, value, target[name], index); - - if (result && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - - return !isNumericKey; - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFormData(formData) && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(formData.entries)) { - const obj = {}; - - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - - return obj; - } - - return null; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (formDataToJSON); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! - \*********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isAbsoluteURL) -/* harmony export */ }); - - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/isAxiosError.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! - \********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ isAxiosError) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -function isAxiosError(payload) { - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(payload) && (payload.isAxiosError === true); -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! - \***********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => { - url = new URL(url, _platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin); - - return ( - origin.protocol === url.protocol && - origin.host === url.host && - (isMSIE || origin.port === url.port) - ); -})( - new URL(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].origin), - _platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].navigator && /(msie|trident)/i.test(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].navigator.userAgent) -) : () => true); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/null.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/null.js ***! - \************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -// eslint-disable-next-line strict -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (null); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/parseHeaders.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! - \********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -// RawAxiosHeaders whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -const ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toObjectSet([ - 'age', 'authorization', 'content-length', 'content-type', 'etag', - 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', - 'last-modified', 'location', 'max-forwards', 'proxy-authorization', - 'referer', 'retry-after', 'user-agent' -]); - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} rawHeaders Headers needing to be parsed - * - * @returns {Object} Headers parsed into an object - */ -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rawHeaders => { - const parsed = {}; - let key; - let val; - let i; - - rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { - i = line.indexOf(':'); - key = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - - if (!key || (parsed[key] && ignoreDuplicateOf[key])) { - return; - } - - if (key === 'set-cookie') { - if (parsed[key]) { - parsed[key].push(val); - } else { - parsed[key] = [val]; - } - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - }); - - return parsed; -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/parseProtocol.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseProtocol.js ***! - \*********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ parseProtocol) -/* harmony export */ }); - - -function parseProtocol(url) { - const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); - return match && match[1] || ''; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/progressEventReducer.js": -/*!****************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/progressEventReducer.js ***! - \****************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ asyncDecorator: () => (/* binding */ asyncDecorator), -/* harmony export */ progressEventDecorator: () => (/* binding */ progressEventDecorator), -/* harmony export */ progressEventReducer: () => (/* binding */ progressEventReducer) -/* harmony export */ }); -/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ "./node_modules/axios/lib/helpers/speedometer.js"); -/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ "./node_modules/axios/lib/helpers/throttle.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); - - - - -const progressEventReducer = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250); - - return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e => { - const loaded = e.loaded; - const total = e.lengthComputable ? e.total : undefined; - const progressBytes = loaded - bytesNotified; - const rate = _speedometer(progressBytes); - const inRange = loaded <= total; - - bytesNotified = loaded; - - const data = { - loaded, - total, - progress: total ? (loaded / total) : undefined, - bytes: progressBytes, - rate: rate ? rate : undefined, - estimated: rate && total && inRange ? (total - loaded) / rate : undefined, - event: e, - lengthComputable: total != null, - [isDownloadStream ? 'download' : 'upload']: true - }; - - listener(data); - }, freq); -} - -const progressEventDecorator = (total, throttled) => { - const lengthComputable = total != null; - - return [(loaded) => throttled[0]({ - lengthComputable, - total, - loaded - }), throttled[1]]; -} - -const asyncDecorator = (fn) => (...args) => _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].asap(() => fn(...args)); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/resolveConfig.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/resolveConfig.js ***! - \*********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isURLSameOrigin.js */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js"); -/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cookies.js */ "./node_modules/axios/lib/helpers/cookies.js"); -/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/buildFullPath.js */ "./node_modules/axios/lib/core/buildFullPath.js"); -/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/mergeConfig.js */ "./node_modules/axios/lib/core/mergeConfig.js"); -/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ "./node_modules/axios/lib/core/AxiosHeaders.js"); -/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./buildURL.js */ "./node_modules/axios/lib/helpers/buildURL.js"); - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((config) => { - const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_0__["default"])({}, config); - - let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig; - - newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__["default"].from(headers); - - newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_3__["default"])(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer); - - // HTTP basic authentication - if (auth) { - headers.set('Authorization', 'Basic ' + - btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : '')) - ); - } - - let contentType; - - if (_utils_js__WEBPACK_IMPORTED_MODULE_4__["default"].isFormData(data)) { - if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserEnv || _platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserWebWorkerEnv) { - headers.setContentType(undefined); // Let the browser set it - } else if ((contentType = headers.getContentType()) !== false) { - // fix semicolon duplication issue for ReactNative FormData implementation - const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : []; - headers.setContentType([type || 'multipart/form-data', ...tokens].join('; ')); - } - } - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - - if (_platform_index_js__WEBPACK_IMPORTED_MODULE_5__["default"].hasStandardBrowserEnv) { - withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_4__["default"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig)); - - if (withXSRFToken || (withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_6__["default"])(newConfig.url))) { - // Add xsrf header - const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_7__["default"].read(xsrfCookieName); - - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - - return newConfig; -}); - - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/speedometer.js": -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/speedometer.js ***! - \*******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); - - -/** - * Calculate data maxRate - * @param {Number} [samplesCount= 10] - * @param {Number} [min= 1000] - * @returns {Function} - */ -function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - - min = min !== undefined ? min : 1000; - - return function push(chunkLength) { - const now = Date.now(); - - const startedAt = timestamps[tail]; - - if (!firstSampleTS) { - firstSampleTS = now; - } - - bytes[head] = chunkLength; - timestamps[head] = now; - - let i = tail; - let bytesCount = 0; - - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - - head = (head + 1) % samplesCount; - - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - - if (now - firstSampleTS < min) { - return; - } - - const passed = startedAt && now - startedAt; - - return passed ? Math.round(bytesCount * 1000 / passed) : undefined; - }; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (speedometer); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/spread.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/helpers/spread.js ***! - \**************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ spread) -/* harmony export */ }); - - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * var args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * - * @returns {Function} - */ -function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/throttle.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/throttle.js ***! - \****************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/** - * Throttle decorator - * @param {Function} fn - * @param {Number} freq - * @return {Function} - */ -function throttle(fn, freq) { - let timestamp = 0; - let threshold = 1000 / freq; - let lastArgs; - let timer; - - const invoke = (args, now = Date.now()) => { - timestamp = now; - lastArgs = null; - if (timer) { - clearTimeout(timer); - timer = null; - } - fn.apply(null, args); - } - - const throttled = (...args) => { - const now = Date.now(); - const passed = now - timestamp; - if ( passed >= threshold) { - invoke(args, now); - } else { - lastArgs = args; - if (!timer) { - timer = setTimeout(() => { - timer = null; - invoke(lastArgs) - }, threshold - passed); - } - } - } - - const flush = () => lastArgs && invoke(lastArgs); - - return [throttled, flush]; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (throttle); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/toFormData.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/toFormData.js ***! - \******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); -/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ "./node_modules/axios/lib/helpers/null.js"); - - - - -// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored - - -/** - * Determines if the given thing is a array or js object. - * - * @param {string} thing - The object or array to be visited. - * - * @returns {boolean} - */ -function isVisitable(thing) { - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isPlainObject(thing) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(thing); -} - -/** - * It removes the brackets from the end of a string - * - * @param {string} key - The key of the parameter. - * - * @returns {string} the key without the brackets. - */ -function removeBrackets(key) { - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, '[]') ? key.slice(0, -2) : key; -} - -/** - * It takes a path, a key, and a boolean, and returns a string - * - * @param {string} path - The path to the current key. - * @param {string} key - The key of the current object being iterated over. - * @param {string} dots - If true, the key will be rendered with dots instead of brackets. - * - * @returns {string} The path to the current key. - */ -function renderKey(path, key, dots) { - if (!path) return key; - return path.concat(key).map(function each(token, i) { - // eslint-disable-next-line no-param-reassign - token = removeBrackets(token); - return !dots && i ? '[' + token + ']' : token; - }).join(dots ? '.' : ''); -} - -/** - * If the array is an array and none of its elements are visitable, then it's a flat array. - * - * @param {Array} arr - The array to check - * - * @returns {boolean} - */ -function isFlatArray(arr) { - return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(arr) && !arr.some(isVisitable); -} - -const predicates = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"], {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); -}); - -/** - * Convert a data object to FormData - * - * @param {Object} obj - * @param {?Object} [formData] - * @param {?Object} [options] - * @param {Function} [options.visitor] - * @param {Boolean} [options.metaTokens = true] - * @param {Boolean} [options.dots = false] - * @param {?Boolean} [options.indexes = false] - * - * @returns {Object} - **/ - -/** - * It converts an object into a FormData object - * - * @param {Object} obj - The object to convert to form data. - * @param {string} formData - The FormData object to append to. - * @param {Object} options - * - * @returns - */ -function toFormData(obj, formData, options) { - if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) { - throw new TypeError('target must be an object'); - } - - // eslint-disable-next-line no-param-reassign - formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"] || FormData)(); - - // eslint-disable-next-line no-param-reassign - options = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(options, { - metaTokens: true, - dots: false, - indexes: false - }, false, function defined(option, source) { - // eslint-disable-next-line no-eq-null,eqeqeq - return !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(source[option]); - }); - - const metaTokens = options.metaTokens; - // eslint-disable-next-line no-use-before-define - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; - const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData); - - if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFunction(visitor)) { - throw new TypeError('visitor must be a function'); - } - - function convertValue(value) { - if (value === null) return ''; - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isDate(value)) { - return value.toISOString(); - } - - if (!useBlob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isBlob(value)) { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__["default"]('Blob is not supported. Use a Buffer instead.'); - } - - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArrayBuffer(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isTypedArray(value)) { - return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); - } - - return value; - } - - /** - * Default visitor. - * - * @param {*} value - * @param {String|Number} key - * @param {Array} path - * @this {FormData} - * - * @returns {boolean} return true to visit the each prop of the value recursively - */ - function defaultVisitor(value, key, path) { - let arr = value; - - if (value && !path && typeof value === 'object') { - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, '{}')) { - // eslint-disable-next-line no-param-reassign - key = metaTokens ? key : key.slice(0, -2); - // eslint-disable-next-line no-param-reassign - value = JSON.stringify(value); - } else if ( - (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isArray(value) && isFlatArray(value)) || - ((_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isFileList(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].endsWith(key, '[]')) && (arr = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toArray(value)) - )) { - // eslint-disable-next-line no-param-reassign - key = removeBrackets(key); - - arr.forEach(function each(el, index) { - !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'), - convertValue(el) - ); - }); - return false; - } - } - - if (isVisitable(value)) { - return true; - } - - formData.append(renderKey(path, key, dots), convertValue(value)); - - return false; - } - - const stack = []; - - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable - }); - - function build(value, path) { - if (_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value)) return; - - if (stack.indexOf(value) !== -1) { - throw Error('Circular reference detected in ' + path.join('.')); - } - - stack.push(value); - - _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(value, function each(el, key) { - const result = !(_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(el) || el === null) && visitor.call( - formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isString(key) ? key.trim() : key, path, exposedHelpers - ); - - if (result === true) { - build(el, path ? path.concat(key) : [key]); - } - }); - - stack.pop(); - } - - if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isObject(obj)) { - throw new TypeError('data must be an object'); - } - - build(obj); - - return formData; -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toFormData); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/toURLEncodedForm.js": -/*!************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/toURLEncodedForm.js ***! - \************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ toURLEncodedForm) -/* harmony export */ }); -/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ "./node_modules/axios/lib/utils.js"); -/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ "./node_modules/axios/lib/helpers/toFormData.js"); -/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ "./node_modules/axios/lib/platform/index.js"); - - - - - - -function toURLEncodedForm(data, options) { - return (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__["default"])(data, new _platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].classes.URLSearchParams(), Object.assign({ - visitor: function(value, key, path, helpers) { - if (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNode && _utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isBuffer(value)) { - this.append(key, value.toString('base64')); - return false; - } - - return helpers.defaultVisitor.apply(this, arguments); - } - }, options)); -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/trackStream.js": -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/trackStream.js ***! - \*******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ readBytes: () => (/* binding */ readBytes), -/* harmony export */ streamChunk: () => (/* binding */ streamChunk), -/* harmony export */ trackStream: () => (/* binding */ trackStream) -/* harmony export */ }); - -const streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - - if (!chunkSize || len < chunkSize) { - yield chunk; - return; - } - - let pos = 0; - let end; - - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } -} - -const readBytes = async function* (iterable, chunkSize) { - for await (const chunk of readStream(iterable)) { - yield* streamChunk(chunk, chunkSize); - } -} - -const readStream = async function* (stream) { - if (stream[Symbol.asyncIterator]) { - yield* stream; - return; - } - - const reader = stream.getReader(); - try { - for (;;) { - const {done, value} = await reader.read(); - if (done) { - break; - } - yield value; - } - } finally { - await reader.cancel(); - } -} - -const trackStream = (stream, chunkSize, onProgress, onFinish) => { - const iterator = readBytes(stream, chunkSize); - - let bytes = 0; - let done; - let _onFinish = (e) => { - if (!done) { - done = true; - onFinish && onFinish(e); - } - } - - return new ReadableStream({ - async pull(controller) { - try { - const {done, value} = await iterator.next(); - - if (done) { - _onFinish(); - controller.close(); - return; - } - - let len = value.byteLength; - if (onProgress) { - let loadedBytes = bytes += len; - onProgress(loadedBytes); - } - controller.enqueue(new Uint8Array(value)); - } catch (err) { - _onFinish(err); - throw err; - } - }, - cancel(reason) { - _onFinish(reason); - return iterator.return(); - } - }, { - highWaterMark: 2 - }) -} - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/validator.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/validator.js ***! - \*****************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ "./node_modules/axios/lib/env/data.js"); -/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ "./node_modules/axios/lib/core/AxiosError.js"); - - - - - -const validators = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { - validators[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -const deprecatedWarnings = {}; - -/** - * Transitional option validator - * - * @param {function|boolean?} validator - set to false if the transitional option has been removed - * @param {string?} version - deprecated version / removed since version - * @param {string?} message - some message with additional info - * - * @returns {function} - */ -validators.transitional = function transitional(validator, version, message) { - function formatMessage(opt, desc) { - return '[Axios v' + _env_data_js__WEBPACK_IMPORTED_MODULE_0__.VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); - } - - // eslint-disable-next-line func-names - return (value, opt, opts) => { - if (validator === false) { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]( - formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), - _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_DEPRECATED - ); - } - - if (version && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); - } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -validators.spelling = function spelling(correctSpelling) { - return (value, opt) => { - // eslint-disable-next-line no-console - console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); - return true; - } -}; - -/** - * Assert object's properties type - * - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - * - * @returns {object} - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('options must be an object', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - const validator = schema[opt]; - if (validator) { - const value = options[opt]; - const result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('option ' + opt + ' must be ' + result, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_OPTION_VALUE); - } - continue; - } - if (allowUnknown !== true) { - throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('Unknown option ' + opt, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_BAD_OPTION); - } - } -} - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - assertOptions, - validators -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/platform/browser/classes/Blob.js": -/*!*****************************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/classes/Blob.js ***! - \*****************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof Blob !== 'undefined' ? Blob : null); - - -/***/ }), - -/***/ "./node_modules/axios/lib/platform/browser/classes/FormData.js": -/*!*********************************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/classes/FormData.js ***! - \*********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof FormData !== 'undefined' ? FormData : null); - - -/***/ }), - -/***/ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js": -/*!****************************************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ***! - \****************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ "./node_modules/axios/lib/helpers/AxiosURLSearchParams.js"); - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof URLSearchParams !== 'undefined' ? URLSearchParams : _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - - -/***/ }), - -/***/ "./node_modules/axios/lib/platform/browser/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/axios/lib/platform/browser/index.js ***! - \**********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ "./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js"); -/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ "./node_modules/axios/lib/platform/browser/classes/FormData.js"); -/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ "./node_modules/axios/lib/platform/browser/classes/Blob.js"); - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - isBrowser: true, - classes: { - URLSearchParams: _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__["default"], - FormData: _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__["default"], - Blob: _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__["default"] - }, - protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/platform/common/utils.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/platform/common/utils.js ***! - \*********************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ hasBrowserEnv: () => (/* binding */ hasBrowserEnv), -/* harmony export */ hasStandardBrowserEnv: () => (/* binding */ hasStandardBrowserEnv), -/* harmony export */ hasStandardBrowserWebWorkerEnv: () => (/* binding */ hasStandardBrowserWebWorkerEnv), -/* harmony export */ navigator: () => (/* binding */ _navigator), -/* harmony export */ origin: () => (/* binding */ origin) -/* harmony export */ }); -const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; - -const _navigator = typeof navigator === 'object' && navigator || undefined; - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - * - * @returns {boolean} - */ -const hasStandardBrowserEnv = hasBrowserEnv && - (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); - -/** - * Determine if we're running in a standard browser webWorker environment - * - * Although the `isStandardBrowserEnv` method indicates that - * `allows axios to run in a web worker`, the WebWorker will still be - * filtered out due to its judgment standard - * `typeof window !== 'undefined' && typeof document !== 'undefined'`. - * This leads to a problem when axios post `FormData` in webWorker - */ -const hasStandardBrowserWebWorkerEnv = (() => { - return ( - typeof WorkerGlobalScope !== 'undefined' && - // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && - typeof self.importScripts === 'function' - ); -})(); - -const origin = hasBrowserEnv && window.location.href || 'http://localhost'; - - - - -/***/ }), - -/***/ "./node_modules/axios/lib/platform/index.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/platform/index.js ***! - \**************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node/index.js */ "./node_modules/axios/lib/platform/browser/index.js"); -/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./common/utils.js */ "./node_modules/axios/lib/platform/common/utils.js"); - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - ..._common_utils_js__WEBPACK_IMPORTED_MODULE_0__, - ..._node_index_js__WEBPACK_IMPORTED_MODULE_1__["default"] -}); - - -/***/ }), - -/***/ "./node_modules/axios/lib/utils.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/utils.js ***! - \*****************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ "./node_modules/axios/lib/helpers/bind.js"); - - - - -// utils is a library of generic helper functions non-specific to axios - -const {toString} = Object.prototype; -const {getPrototypeOf} = Object; - -const kindOf = (cache => thing => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); -})(Object.create(null)); - -const kindOfTest = (type) => { - type = type.toLowerCase(); - return (thing) => kindOf(thing) === type -} - -const typeOfTest = type => thing => typeof thing === type; - -/** - * Determine if a value is an Array - * - * @param {Object} val The value to test - * - * @returns {boolean} True if value is an Array, otherwise false - */ -const {isArray} = Array; - -/** - * Determine if a value is undefined - * - * @param {*} val The value to test - * - * @returns {boolean} True if the value is undefined, otherwise false - */ -const isUndefined = typeOfTest('undefined'); - -/** - * Determine if a value is a Buffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) - && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); -} - -/** - * Determine if a value is an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -const isArrayBuffer = kindOfTest('ArrayBuffer'); - - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - let result; - if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { - result = ArrayBuffer.isView(val); - } else { - result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a String, otherwise false - */ -const isString = typeOfTest('string'); - -/** - * Determine if a value is a Function - * - * @param {*} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -const isFunction = typeOfTest('function'); - -/** - * Determine if a value is a Number - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Number, otherwise false - */ -const isNumber = typeOfTest('number'); - -/** - * Determine if a value is an Object - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an Object, otherwise false - */ -const isObject = (thing) => thing !== null && typeof thing === 'object'; - -/** - * Determine if a value is a Boolean - * - * @param {*} thing The value to test - * @returns {boolean} True if value is a Boolean, otherwise false - */ -const isBoolean = thing => thing === true || thing === false; - -/** - * Determine if a value is a plain Object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a plain Object, otherwise false - */ -const isPlainObject = (val) => { - if (kindOf(val) !== 'object') { - return false; - } - - const prototype = getPrototypeOf(val); - return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); -} - -/** - * Determine if a value is a Date - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Date, otherwise false - */ -const isDate = kindOfTest('Date'); - -/** - * Determine if a value is a File - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ -const isFile = kindOfTest('File'); - -/** - * Determine if a value is a Blob - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Blob, otherwise false - */ -const isBlob = kindOfTest('Blob'); - -/** - * Determine if a value is a FileList - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a File, otherwise false - */ -const isFileList = kindOfTest('FileList'); - -/** - * Determine if a value is a Stream - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a Stream, otherwise false - */ -const isStream = (val) => isObject(val) && isFunction(val.pipe); - -/** - * Determine if a value is a FormData - * - * @param {*} thing The value to test - * - * @returns {boolean} True if value is an FormData, otherwise false - */ -const isFormData = (thing) => { - let kind; - return thing && ( - (typeof FormData === 'function' && thing instanceof FormData) || ( - isFunction(thing.append) && ( - (kind = kindOf(thing)) === 'formdata' || - // detect form-data instance - (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') - ) - ) - ) -} - -/** - * Determine if a value is a URLSearchParams object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -const isURLSearchParams = kindOfTest('URLSearchParams'); - -const [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest); - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * - * @returns {String} The String freed of excess whitespace - */ -const trim = (str) => str.trim ? - str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); - -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - * - * @param {Boolean} [allOwnKeys = false] - * @returns {any} - */ -function forEach(obj, fn, {allOwnKeys = false} = {}) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - - let i; - let l; - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - - if (isArray(obj)) { - // Iterate over array values - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Iterate over object keys - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key; - - for (i = 0; i < len; i++) { - key = keys[i]; - fn.call(null, obj[key], key, obj); - } - } -} - -function findKey(obj, key) { - key = key.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key === _key.toLowerCase()) { - return _key; - } - } - return null; -} - -const _global = (() => { - /*eslint no-undef:0*/ - if (typeof globalThis !== "undefined") return globalThis; - return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global) -})(); - -const isContextDefined = (context) => !isUndefined(context) && context !== _global; - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * var result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * - * @returns {Object} Result of all merge properties - */ -function merge(/* obj1, obj2, obj3, ... */) { - const {caseless} = isContextDefined(this) && this || {}; - const result = {}; - const assignValue = (val, key) => { - const targetKey = caseless && findKey(result, key) || key; - if (isPlainObject(result[targetKey]) && isPlainObject(val)) { - result[targetKey] = merge(result[targetKey], val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else { - result[targetKey] = val; - } - } - - for (let i = 0, l = arguments.length; i < l; i++) { - arguments[i] && forEach(arguments[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * - * @param {Boolean} [allOwnKeys] - * @returns {Object} The resulting value of object a - */ -const extend = (a, b, thisArg, {allOwnKeys}= {}) => { - forEach(b, (val, key) => { - if (thisArg && isFunction(val)) { - a[key] = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__["default"])(val, thisArg); - } else { - a[key] = val; - } - }, {allOwnKeys}); - return a; -} - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * - * @returns {string} content value without BOM - */ -const stripBOM = (content) => { - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1); - } - return content; -} - -/** - * Inherit the prototype methods from one constructor into another - * @param {function} constructor - * @param {function} superConstructor - * @param {object} [props] - * @param {object} [descriptors] - * - * @returns {void} - */ -const inherits = (constructor, superConstructor, props, descriptors) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors); - constructor.prototype.constructor = constructor; - Object.defineProperty(constructor, 'super', { - value: superConstructor.prototype - }); - props && Object.assign(constructor.prototype, props); -} - -/** - * Resolve object with deep prototype chain to a flat object - * @param {Object} sourceObj source object - * @param {Object} [destObj] - * @param {Function|Boolean} [filter] - * @param {Function} [propFilter] - * - * @returns {Object} - */ -const toFlatObject = (sourceObj, destObj, filter, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - - destObj = destObj || {}; - // eslint-disable-next-line no-eq-null,eqeqeq - if (sourceObj == null) return destObj; - - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); - - return destObj; -} - -/** - * Determines whether a string ends with the characters of a specified string - * - * @param {String} str - * @param {String} searchString - * @param {Number} [position= 0] - * - * @returns {boolean} - */ -const endsWith = (str, searchString, position) => { - str = String(str); - if (position === undefined || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; -} - - -/** - * Returns new array from array like object or null if failed - * - * @param {*} [thing] - * - * @returns {?Array} - */ -const toArray = (thing) => { - if (!thing) return null; - if (isArray(thing)) return thing; - let i = thing.length; - if (!isNumber(i)) return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; -} - -/** - * Checking if the Uint8Array exists and if it does, it returns a function that checks if the - * thing passed in is an instance of Uint8Array - * - * @param {TypedArray} - * - * @returns {Array} - */ -// eslint-disable-next-line func-names -const isTypedArray = (TypedArray => { - // eslint-disable-next-line func-names - return thing => { - return TypedArray && thing instanceof TypedArray; - }; -})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); - -/** - * For each entry in the object, call the function with the key and value. - * - * @param {Object} obj - The object to iterate over. - * @param {Function} fn - The function to call for each entry. - * - * @returns {void} - */ -const forEachEntry = (obj, fn) => { - const generator = obj && obj[Symbol.iterator]; - - const iterator = generator.call(obj); - - let result; - - while ((result = iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } -} - -/** - * It takes a regular expression and a string, and returns an array of all the matches - * - * @param {string} regExp - The regular expression to match against. - * @param {string} str - The string to search. - * - * @returns {Array} - */ -const matchAll = (regExp, str) => { - let matches; - const arr = []; - - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - - return arr; -} - -/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ -const isHTMLForm = kindOfTest('HTMLFormElement'); - -const toCamelCase = str => { - return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, - function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - } - ); -}; - -/* Creating a function that will check if an object has a property. */ -const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); - -/** - * Determine if a value is a RegExp object - * - * @param {*} val The value to test - * - * @returns {boolean} True if value is a RegExp object, otherwise false - */ -const isRegExp = kindOfTest('RegExp'); - -const reduceDescriptors = (obj, reducer) => { - const descriptors = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - - forEach(descriptors, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - - Object.defineProperties(obj, reducedDescriptors); -} - -/** - * Makes all methods read-only - * @param {Object} obj - */ - -const freezeMethods = (obj) => { - reduceDescriptors(obj, (descriptor, name) => { - // skip restricted props in strict mode - if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { - return false; - } - - const value = obj[name]; - - if (!isFunction(value)) return; - - descriptor.enumerable = false; - - if ('writable' in descriptor) { - descriptor.writable = false; - return; - } - - if (!descriptor.set) { - descriptor.set = () => { - throw Error('Can not rewrite read-only method \'' + name + '\''); - }; - } - }); -} - -const toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - - const define = (arr) => { - arr.forEach(value => { - obj[value] = true; - }); - } - - isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); - - return obj; -} - -const noop = () => {} - -const toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite(value = +value) ? value : defaultValue; -} - -/** - * If the thing is a FormData object, return true, otherwise return false. - * - * @param {unknown} thing - The thing to check. - * - * @returns {boolean} - */ -function isSpecCompliantForm(thing) { - return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); -} - -const toJSONObject = (obj) => { - const stack = new Array(10); - - const visit = (source, i) => { - - if (isObject(source)) { - if (stack.indexOf(source) >= 0) { - return; - } - - if(!('toJSON' in source)) { - stack[i] = source; - const target = isArray(source) ? [] : {}; - - forEach(source, (value, key) => { - const reducedValue = visit(value, i + 1); - !isUndefined(reducedValue) && (target[key] = reducedValue); - }); - - stack[i] = undefined; - - return target; - } - } - - return source; - } - - return visit(obj, 0); -} - -const isAsyncFn = kindOfTest('AsyncFunction'); - -const isThenable = (thing) => - thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); - -// original code -// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 - -const _setImmediate = ((setImmediateSupported, postMessageSupported) => { - if (setImmediateSupported) { - return setImmediate; - } - - return postMessageSupported ? ((token, callbacks) => { - _global.addEventListener("message", ({source, data}) => { - if (source === _global && data === token) { - callbacks.length && callbacks.shift()(); - } - }, false); - - return (cb) => { - callbacks.push(cb); - _global.postMessage(token, "*"); - } - })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb); -})( - typeof setImmediate === 'function', - isFunction(_global.postMessage) -); - -const asap = typeof queueMicrotask !== 'undefined' ? - queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate); - -// ********************* - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isBlob, - isRegExp, - isFunction, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable, - setImmediate: _setImmediate, - asap -}); - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be in strict mode. -(() => { -"use strict"; -/*!**************************!*\ - !*** ./src/Typesense.ts ***! - \**************************/ -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Client: () => (/* reexport safe */ _Typesense_Client__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ Errors: () => (/* reexport module object */ _Typesense_Errors__WEBPACK_IMPORTED_MODULE_2__), -/* harmony export */ SearchClient: () => (/* reexport safe */ _Typesense_SearchClient__WEBPACK_IMPORTED_MODULE_1__["default"]), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _Typesense_Client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Typesense/Client */ "./src/Typesense/Client.ts"); -/* harmony import */ var _Typesense_SearchClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Typesense/SearchClient */ "./src/Typesense/SearchClient.ts"); -/* harmony import */ var _Typesense_Errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Typesense/Errors */ "./src/Typesense/Errors/index.ts"); - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - Client: _Typesense_Client__WEBPACK_IMPORTED_MODULE_0__["default"], - SearchClient: _Typesense_SearchClient__WEBPACK_IMPORTED_MODULE_1__["default"], - Errors: _Typesense_Errors__WEBPACK_IMPORTED_MODULE_2__ -}); -})(); - -Typesense = __webpack_exports__; -/******/ })() -; -//# sourceMappingURL=typesense.js.map \ No newline at end of file diff --git a/dist/typesense.js.map b/dist/typesense.js.map deleted file mode 100644 index 89c3ed17..00000000 --- a/dist/typesense.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"typesense.js","mappings":"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AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,qEAAqE;AACrE,YAAY;AACZ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,qDAAqD;AACrD,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sBAAsB;AACtB;;AAEA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;ACpWD;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA,cAAc,sGAAiC;AAC/C;AACA,gBAAgB;AAChB;AACA;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,sCAAsC,yBAAyB,SAAS,yBAAyB;;;;;;;;;;AC/SjG;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG,EAAE,yBAAyB,SAAS,yBAAyB;AAChE;AACA,0BAA0B,yBAAyB,SAAS,yBAAyB;;;;;;;;;;ACTrF;;AAEA,cAAc,mBAAO,CAAC,kGAA+B;AACrD;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;ACdA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;ACJA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;;;;;;;;;;;;;;;;;;ACFqE;AACpB;AACjD;AACA,MAAM,wEAAwB;AAC9B;AACA;AACA;AACA,cAAc,8DAAc;AAC5B;;;;;;;;;;;;;;;;;ACR+C;AAC/C;AACA,kBAAkB,cAAc;AAChC;AACA,wHAAwH,6DAAa;AACrI;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACX+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACJiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG,QAAQ,8DAAc;AACzB;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA,yFAAyF;AACzF,IAAI;AACJ;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,kEAAkE;AACtF,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;;;;;;;;;;;;;;;;;ACF6E;AAC7E;AACA;AACA;AACA;AAC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ErB;AACA,qBAAqB,iEAAY;;AAEjC;AACA,oBAAoB,4DAAW;;AAE/B,qBAAqB,8DAAY;;AAEjC,4BAA4B,uEAAc,CAAC,iDAAK;;AAEhD,mBAAmB,8DAAQ;;AAE3B,uBAAuB,mEAAc;;AAErC;;AAEA;AACA,iEAAe,KAAK;;;;;;;;;;;;;;;;;ACxFP;;AAEkC;;AAE/C;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yDAAa;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACtId;;AAEkC;AACf;;AAEhC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,EAAE,2DAAU,oDAAoD,2DAAU;AAC1E;AACA;;AAEA,iDAAK,yBAAyB,2DAAU;AACxC;AACA,CAAC;;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACxBhB;;AAEE;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACJa;;AAEqB;AACY;AACW;AACN;AACR;AACI;AACC;AACH;;AAE7C,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,WAAW,yCAAyC;;AAEpD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA,IAAI,6DAAS;AACb;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,oCAAoC,iDAAK;AACzC;AACA;AACA;;AAEA,eAAe,iDAAK;AACpB;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA,wBAAwB,2DAAW,aAAa;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED,iDAAK;AACL;;AAEA;AACA;AACA,0BAA0B,2DAAW,aAAa;AAClD;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACjPR;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,CAAC;;AAED;AACA,kDAAkD,YAAY;;AAE9D;AACA;AACA;;AAEA,EAAE,iDAAK;AACP;AACA,GAAG;AACH;AACA,GAAG;;AAEH;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACtGb;;AAEmB;AACsB;;AAEtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,QAAQ,iDAAK;AACnB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT,sEAAsE,iDAAK;AAC3E,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;;AAEA;AACA,iDAAK,6CAA6C,MAAM;AACxD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iDAAK;;AAEL,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC7Sf;;AAEqB;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,eAAe;AACf;AACA;AACA,IAAI,iDAAK;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,kBAAkB,EAAC;;;;;;;;;;;;;;;;;;ACtErB;;AAE2C;AACJ;;AAEpD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACe;AACf,uBAAuB,qEAAa;AACpC;AACA,WAAW,mEAAW;AACtB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrBa;;AAEkC;AACF;AACD;AACW;AACJ;AACJ;;AAE/C;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,gEAAa;AAC3B;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACe;AACf;;AAEA,mBAAmB,6DAAY;;AAE/B;AACA,gBAAgB,yDAAa;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,6DAAQ,8BAA8B,0DAAQ;;AAEhE;AACA;;AAEA;AACA,oBAAoB,yDAAa;AACjC;AACA;AACA;AACA;;AAEA,uBAAuB,6DAAY;;AAEnC;AACA,GAAG;AACH,SAAS,+DAAQ;AACjB;;AAEA;AACA;AACA,+BAA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,iDAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AChKX;;AAEb,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACNK;;;;;;;;;;;;;;;;ACAM;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;ACzDpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;ACtEjB;;AAEE;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACNa;;AAEmB;AACsC;;AAEtE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B;AACA,aAAa,QAAQ;AACrB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQC;;;;;;;;;;;;;;;;;;AClDsC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC;;;;;;;;;;;;;;;;;ACNY;;AAEwB;;AAErC;;AAEA,OAAO,UAAU;AACjB,OAAO,gBAAgB;;AAEvB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,OAAO,SAAS;;AAEhB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,gCAAgC,WAAW,IAAI;AAC/C;AACA;AACA,eAAe,4DAAI;AACnB,MAAM;AACN;AACA;AACA,GAAG,GAAG,WAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,eAAe;;AAEzC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG,WAAW,cAAc;AAC5B,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;UCjuBF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;ACNwC;AACY;AACP;AAEL;AACxC,iEAAe;EAAE5O,MAAM,EAANA,yDAAM;EAAEkM,YAAY,EAAZA,+DAAY;EAAE4C,MAAM,EAANA,8CAAMA;AAAC,CAAC,E","sources":["webpack://Typesense/./src/Typesense/Alias.ts","webpack://Typesense/./src/Typesense/Aliases.ts","webpack://Typesense/./src/Typesense/Analytics.ts","webpack://Typesense/./src/Typesense/AnalyticsEvents.ts","webpack://Typesense/./src/Typesense/AnalyticsRule.ts","webpack://Typesense/./src/Typesense/AnalyticsRules.ts","webpack://Typesense/./src/Typesense/ApiCall.ts","webpack://Typesense/./src/Typesense/Client.ts","webpack://Typesense/./src/Typesense/Collection.ts","webpack://Typesense/./src/Typesense/Collections.ts","webpack://Typesense/./src/Typesense/Configuration.ts","webpack://Typesense/./src/Typesense/Conversation.ts","webpack://Typesense/./src/Typesense/ConversationModel.ts","webpack://Typesense/./src/Typesense/ConversationModels.ts","webpack://Typesense/./src/Typesense/Conversations.ts","webpack://Typesense/./src/Typesense/Debug.ts","webpack://Typesense/./src/Typesense/Document.ts","webpack://Typesense/./src/Typesense/Documents.ts","webpack://Typesense/./src/Typesense/Errors/HTTPError.ts","webpack://Typesense/./src/Typesense/Errors/ImportError.ts","webpack://Typesense/./src/Typesense/Errors/MissingConfigurationError.ts","webpack://Typesense/./src/Typesense/Errors/ObjectAlreadyExists.ts","webpack://Typesense/./src/Typesense/Errors/ObjectNotFound.ts","webpack://Typesense/./src/Typesense/Errors/ObjectUnprocessable.ts","webpack://Typesense/./src/Typesense/Errors/RequestMalformed.ts","webpack://Typesense/./src/Typesense/Errors/RequestUnauthorized.ts","webpack://Typesense/./src/Typesense/Errors/ServerError.ts","webpack://Typesense/./src/Typesense/Errors/TypesenseError.ts","webpack://Typesense/./src/Typesense/Errors/index.ts","webpack://Typesense/./src/Typesense/Health.ts","webpack://Typesense/./src/Typesense/Key.ts","webpack://Typesense/./src/Typesense/Keys.ts","webpack://Typesense/./src/Typesense/Metrics.ts","webpack://Typesense/./src/Typesense/MultiSearch.ts","webpack://Typesense/./src/Typesense/Operations.ts","webpack://Typesense/./src/Typesense/Override.ts","webpack://Typesense/./src/Typesense/Overrides.ts","webpack://Typesense/./src/Typesense/Preset.ts","webpack://Typesense/./src/Typesense/Presets.ts","webpack://Typesense/./src/Typesense/RequestWithCache.ts","webpack://Typesense/./src/Typesense/SearchClient.ts","webpack://Typesense/./src/Typesense/SearchOnlyCollection.ts","webpack://Typesense/./src/Typesense/SearchOnlyDocuments.ts","webpack://Typesense/./src/Typesense/Stats.ts","webpack://Typesense/./src/Typesense/Stemming.ts","webpack://Typesense/./src/Typesense/StemmingDictionaries.ts","webpack://Typesense/./src/Typesense/StemmingDictionary.ts","webpack://Typesense/./src/Typesense/Stopword.ts","webpack://Typesense/./src/Typesense/Stopwords.ts","webpack://Typesense/./src/Typesense/Synonym.ts","webpack://Typesense/./src/Typesense/Synonyms.ts","webpack://Typesense/./src/Typesense/Types.ts","webpack://Typesense/./src/Typesense/Utils.ts","webpack://Typesense/./node_modules/loglevel/lib/loglevel.js","webpack://Typesense/ignored|/Users/jason/Programming/jprojs/typesense/typesense-js/src/Typesense|crypto","webpack://Typesense/ignored|/Users/jason/Programming/jprojs/typesense/typesense-js/src/Typesense|http","webpack://Typesense/ignored|/Users/jason/Programming/jprojs/typesense/typesense-js/src/Typesense|https","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/regenerator/index.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Typesense/./node_modules/axios/lib/adapters/adapters.js","webpack://Typesense/./node_modules/axios/lib/adapters/fetch.js","webpack://Typesense/./node_modules/axios/lib/adapters/xhr.js","webpack://Typesense/./node_modules/axios/lib/axios.js","webpack://Typesense/./node_modules/axios/lib/cancel/CancelToken.js","webpack://Typesense/./node_modules/axios/lib/cancel/CanceledError.js","webpack://Typesense/./node_modules/axios/lib/cancel/isCancel.js","webpack://Typesense/./node_modules/axios/lib/core/Axios.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosError.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://Typesense/./node_modules/axios/lib/core/InterceptorManager.js","webpack://Typesense/./node_modules/axios/lib/core/buildFullPath.js","webpack://Typesense/./node_modules/axios/lib/core/dispatchRequest.js","webpack://Typesense/./node_modules/axios/lib/core/mergeConfig.js","webpack://Typesense/./node_modules/axios/lib/core/settle.js","webpack://Typesense/./node_modules/axios/lib/core/transformData.js","webpack://Typesense/./node_modules/axios/lib/defaults/index.js","webpack://Typesense/./node_modules/axios/lib/defaults/transitional.js","webpack://Typesense/./node_modules/axios/lib/env/data.js","webpack://Typesense/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Typesense/./node_modules/axios/lib/helpers/bind.js","webpack://Typesense/./node_modules/axios/lib/helpers/buildURL.js","webpack://Typesense/./node_modules/axios/lib/helpers/combineURLs.js","webpack://Typesense/./node_modules/axios/lib/helpers/composeSignals.js","webpack://Typesense/./node_modules/axios/lib/helpers/cookies.js","webpack://Typesense/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://Typesense/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Typesense/./node_modules/axios/lib/helpers/null.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://Typesense/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://Typesense/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://Typesense/./node_modules/axios/lib/helpers/speedometer.js","webpack://Typesense/./node_modules/axios/lib/helpers/spread.js","webpack://Typesense/./node_modules/axios/lib/helpers/throttle.js","webpack://Typesense/./node_modules/axios/lib/helpers/toFormData.js","webpack://Typesense/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Typesense/./node_modules/axios/lib/helpers/trackStream.js","webpack://Typesense/./node_modules/axios/lib/helpers/validator.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/index.js","webpack://Typesense/./node_modules/axios/lib/platform/common/utils.js","webpack://Typesense/./node_modules/axios/lib/platform/index.js","webpack://Typesense/./node_modules/axios/lib/utils.js","webpack://Typesense/webpack/bootstrap","webpack://Typesense/webpack/runtime/compat get default export","webpack://Typesense/webpack/runtime/define property getters","webpack://Typesense/webpack/runtime/hasOwnProperty shorthand","webpack://Typesense/webpack/runtime/make namespace object","webpack://Typesense/./src/Typesense.ts"],"sourcesContent":["import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRules;\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: Array<{\n type: string;\n weight?: number;\n name: string;\n }>;\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n private readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\n\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n debug: Debug;\n metrics: Metrics;\n stats: Stats;\n health: Health;\n operations: Operations;\n multiSearch: MultiSearch;\n analytics: Analytics;\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n }\n\n collections(): Collections;\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n aliases(): Aliases;\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n keys(): Keys;\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n presets(): Presets;\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n stopwords(): Stopwords;\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n conversations(): Conversations;\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends CollectionCreateSchema {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n documents(): Documents;\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n overrides(): Overrides;\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n synonyms(): Synonyms;\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import * as logger from \"loglevel\";\nimport { Logger, LogLevelDesc } from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: LogLevelDesc;\n logger?: Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: Logger;\n readonly logLevel: LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n models(): ConversationModels;\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n}\n\ninterface ImportResponseSuccess {\n success: true;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document: DocumentSchema;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n };\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n}\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n async create(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n async upsert(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async update(document: T, options: DocumentWriteParameters): Promise;\n async update(\n document: T,\n options: DocumentWriteParameters | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), query);\n }\n\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import a set of documents in a batch.\n * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects.\n * @param options\n * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results.\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise {\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise {\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import HTTPError from \"./HTTPError\";\nimport MissingConfigurationError from \"./MissingConfigurationError\";\nimport ObjectAlreadyExists from \"./ObjectAlreadyExists\";\nimport ObjectNotFound from \"./ObjectNotFound\";\nimport ObjectUnprocessable from \"./ObjectUnprocessable\";\nimport RequestMalformed from \"./RequestMalformed\";\nimport RequestUnauthorized from \"./RequestUnauthorized\";\nimport ServerError from \"./ServerError\";\nimport ImportError from \"./ImportError\";\nimport TypesenseError from \"./TypesenseError\";\n\nexport {\n HTTPError,\n MissingConfigurationError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n TypesenseError,\n ImportError,\n};\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n actions: string[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport {\n DocumentSchema,\n ExtractBaseTypes,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n }: { cacheSearchResultsForSeconds?: number } = {},\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n { cacheResponseForSeconds: cacheSearchResultsForSeconds },\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n | \"schema_changes\"\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions;\n const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\nexport default class SearchClient {\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n collections(\n collectionName: string,\n ):\n | SearchOnlyCollection\n | SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n dictionaries(): StemmingDictionaries;\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords, { StopwordCreateSchema } from \"./Stopwords\";\n\nexport interface StopwordSchema extends StopwordCreateSchema {\n id: string;\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\nexport default class Synonym {\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\nexport default class Synonyms {\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(document: T, options: DocumentWriteParameters): Promise;\n upsert(document: T, options: DocumentWriteParameters): Promise;\n update(document: T, options: DocumentWriteParameters): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: SearchResponseRequestParams[];\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/ban-types\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","export const VERSION = \"1.8.4\";","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Client from \"./Typesense/Client\";\nimport SearchClient from \"./Typesense/SearchClient\";\nimport * as Errors from \"./Typesense/Errors\";\n\nexport { Client, SearchClient, Errors };\nexport default { Client, SearchClient, Errors };\n"],"names":["Aliases","Alias","name","apiCall","_classCallCheck","_createClass","key","value","_retrieve","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","abrupt","get","endpointPath","stop","retrieve","apply","arguments","_delete2","_callee2","_callee2$","_context2","delete","_delete","concat","RESOURCEPATH","encodeURIComponent","default","_upsert","mapping","put","upsert","_x","_x2","aliasName","AnalyticsRules","AnalyticsRule","AnalyticsEvents","Analytics","_defineProperty","_analyticsRules","_analyticsEvents","rules","id","undefined","individualAnalyticsRules","events","_create","params","post","create","operation","axios","Agent","HTTPAgent","HTTPSAgent","HTTPError","ObjectAlreadyExists","ObjectNotFound","ObjectUnprocessable","RequestMalformed","RequestUnauthorized","ServerError","TypesenseError","toErrorWithMessage","APIKEYHEADERNAME","HEALTHY","UNHEALTHY","isNodeJSEnvironment","process","versions","node","window","ApiCall","configuration","apiKey","nodes","JSON","parse","stringify","nearestNode","connectionTimeoutSeconds","healthcheckIntervalSeconds","numRetriesPerRequest","numRetries","retryIntervalSeconds","sendApiKeyAsQueryParam","additionalUserHeaders","additionalHeaders","logger","initializeMetadataForNodes","currentNodeIndex","_get","endpoint","queryParameters","_ref","_ref$abortSignal","abortSignal","_ref$responseType","responseType","_ref$streamConfig","streamConfig","isStreamingRequest","_args","length","performRequest","_args2","_post","_callee3","bodyParameters","_ref2","_ref2$abortSignal","_ref2$responseType","_ref2$streamConfig","_args3","_callee3$","_context3","_x3","_put","_callee4","_args4","_callee4$","_context4","_x4","_patch","_callee5","_args5","_callee5$","_context5","patch","_x5","getAdapter","axiosAdapter","isCloudflareWorkers","navigator","userAgent","bind","globalThis","_performRequest","_callee6","requestType","_ref3","_this","_ref3$queryParameters","_ref3$bodyParameters","_ref3$additionalHeade","_ref3$abortSignal","_ref3$responseType","_ref3$skipConnectionT","skipConnectionTimeout","_ref3$enableKeepAlive","enableKeepAlive","_ref3$streamConfig","requestNumber","lastException","wasAborted","_loop","_ret","numTries","_callee6$","_context7","validate","debug","fetch","Date","now","toUpperCase","abortListener","requestOptions","cancelToken","source","response","_response$data","_response$data2","_error$code","_error$response","_loop$","_context6","getNextNode","index","aborted","v","Promise","reject","Error","method","url","uriFor","headers","Object","assign","defaultHeaders","maxContentLength","Infinity","maxBodyLength","validateStatus","status","transformResponse","data","transformedData","startsWith","adapter","timeout","keys","httpAgent","warn","keepAlive","httpsAgent","paramsSerializer","_typeof","CancelToken","cancel","addEventListener","token","_objectSpread","Accept","sent","setNodeHealthcheck","handleStreamingResponse","resolve","customErrorForResponse","message","t0","code","invokeOnErrorCallback","timer","removeEventListener","finish","delegateYield","_x6","_x7","_x8","processStreamingLine","line","trim","processDataLine","slice","jsonData","conversation_id","e","dataContent","_handleStreamingResponse","_callee7","_callee7$","_context8","handleNodeStreaming","handleBrowserStreaming","invokeOnCompleteCallback","_x9","_x10","_this2","stream","allChunks","buffer","on","chunk","_lines$pop","toString","lines","split","pop","processStreamLines","error","finalizeStreamResult","_this3","_ref4","_callee8","_callee8$","_context9","getReader","handleBrowserReadableStream","handleBrowserStringResponse","_x11","_x12","_handleBrowserReadableStream","_callee9","reader","_yield$reader$read","done","_value","_lines","_callee9$","_context10","read","TextDecoder","decode","_x13","_x14","_x15","_x16","_x17","finalResult","combineStreamingChunks","_iterator","_createForOfIteratorHelper","_step","s","n","processed","invokeOnChunkCallback","push","err","f","chunks","messagesChunks","getMessageChunks","combineMessageChunks","lastChunk","isCompleteSearchResponse","filter","isChunkMessage","metadataChunk","find","isHealthy","nodeDueForHealthcheck","map","join","candidateNode","i","isDueForHealthcheck","lastAccessTimestamp","_this4","forEach","protocol","host","port","path","_timer","_callee10","seconds","_callee10$","_context11","setTimeout","_x18","messageFromServer","httpBody","errorMessage","onChunk","onComplete","onError","errorObj","callbackError","Configuration","Collections","Collection","Keys","Key","Debug","Metrics","Stats","Health","Operations","MultiSearch","Presets","Preset","Stopwords","Stopword","Conversations","Conversation","Stemming","Client","options","_options$sendApiKeyAs","metrics","stats","health","operations","multiSearch","_collections","individualCollections","_aliases","individualAliases","_keys","individualKeys","_presets","individualPresets","_stopwords","individualStopwords","analytics","stemming","_conversations","individualConversations","collections","collectionName","aliases","presets","stopwords","conversations","Documents","Overrides","Override","Synonyms","Synonym","Document","_documents","_overrides","_synonyms","_update","schema","update","_exists","exists","documents","documentId","individualDocuments","overrides","overrideId","individualOverrides","synonyms","synonymId","individualSynonyms","MissingConfigurationError","setDefaultPathInNode","setDefaultPortInNode","randomizeNodes","shuffleArray","timeoutSeconds","cacheSearchResultsForSeconds","useServerSideSearchCache","logLevel","setLevel","showDeprecationWarnings","validateNodes","isNodeMissingAnyParameters","some","every","hasOwnProperty","masterNode","readReplicaNodes","array","j","Math","floor","random","ConversationModels","ConversationModel","_conversationsModels","models","individualConversationModels","partialDocument","ImportError","SearchOnlyDocuments","_inherits","_callSuper","document","action","query","_createMany","import","createMany","_import2","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","_args6","Array","isArray","RangeError","includes","isEmptyString","r","success","successCount","_import","_importStream","readableStream","_args7","importStream","_export2","_args8","_export","_exportStream","_args9","exportStream","str","_TypesenseError","importResults","payload","_Error","httpStatus","constructor","setPrototypeOf","_assertThisInitialized","prototype","_wrapNativeSuper","createHmac","normalizeArrayableParams","generateScopedSearchKey","searchKey","parameters","normalizedParams","paramsJSON","digest","Buffer","from","keyPrefix","substr","rawScopedKey","RequestWithCache","useTextContentType","requestWithCache","clearCache","_perform","searchRequests","commonParams","_ref$cacheSearchResul","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","use_cache","union","searches","_objectWithoutProperties","_excluded","perform","body","queryParams","cacheResponseForSeconds","operationName","presetId","_normalizedParams","search","defaultCacheResponseForSeconds","defaultMaxSize","Map","responseCache","responsePromiseCache","requestContext","methodName","requestParams","cacheOptions","_cacheOptions$cacheRe","_cacheOptions$maxSize","maxSize","isCacheDisabled","requestParamsJSON","cacheEntry","isEntryValid","cachePromiseEntry","_isEntryValid","responsePromise","isCacheOverMaxSize","oldestEntry","isResponsePromiseCacheOverMaxSize","_oldestEntry","executeRequest","requestTimestamp","set","size","context","call","String","SearchOnlyCollection","SearchClient","console","entries","_slicedToArray","_","collection","_search","searchParameters","additionalQueryParams","_normalizeArrayablePa","rest","conversation_stream","StemmingDictionaries","StemmingDictionary","_stemmingDictionaries","dictionaries","individualStemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","stopwordId","arrayableParams","query_by","query_by_weights","facet_by","group_by","include_fields","exclude_fields","highlight_fields","highlight_full_fields","pinned_hits","hidden_hits","infix","override_tags","num_typos","prefix","sort_by","hasNoArrayValues","isNonArrayValue","result","transformedValues","isErrorWithMessage","couldBeError","_unused","Errors"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/typesense.min.js b/dist/typesense.min.js deleted file mode 100644 index acb92b71..00000000 --- a/dist/typesense.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see typesense.min.js.LICENSE.txt */ -var Typesense;(()=>{var e={65:function(e,t,n){var r,o;!function(i,a){"use strict";r=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],o={},i=null;function a(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function u(){for(var n=this.getLevel(),o=0;o=0&&t<=p.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?h+=":"+e:"symbol"==typeof e&&(h=void 0),p.name=e,p.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},p.methodFactory=n||l,p.getLevel=function(){return null!=c?c:null!=s?s:a},p.setLevel=function(e,n){return c=d(e),!1!==n&&function(e){var n=(r[e]||"silent").toUpperCase();if(typeof window!==t&&h){try{return void(window.localStorage[h]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(e){}}}(c),u.call(p)},p.setDefaultLevel=function(e){s=d(e),f()||p.setLevel(e,!1)},p.resetLevel=function(){c=null,function(){if(typeof window!==t&&h){try{window.localStorage.removeItem(h)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),u.call(p)},p.enableAll=function(e){p.setLevel(p.levels.TRACE,e)},p.disableAll=function(e){p.setLevel(p.levels.SILENT,e)},p.rebuild=function(){if(i!==p&&(a=d(i.getLevel())),u.call(p),i===p)for(var e in o)o[e].rebuild()},a=d(i?i.getLevel():"WARN");var y=f();null!=y&&(c=d(y)),u.call(p)}(i=new p).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=o[e];return t||(t=o[e]=new p(e,i.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return i.noConflict=function(){return typeof window!==t&&window.log===i&&(window.log=h),i},i.getLoggers=function(){return o},i.default=i,i},void 0===(o=r.call(t,n,t,e))||(e.exports=o)}()},612:()=>{},939:()=>{},82:()=>{},633:(e,t,n)=>{var r=n(738).default;function o(){"use strict";e.exports=o=function(){return n},e.exports.__esModule=!0,e.exports.default=e.exports;var t,n={},i=Object.prototype,a=i.hasOwnProperty,s=Object.defineProperty||function(e,t,n){e[t]=n.value},u="function"==typeof Symbol?Symbol:{},c=u.iterator||"@@iterator",l=u.asyncIterator||"@@asyncIterator",p=u.toStringTag||"@@toStringTag";function h(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{h({},"")}catch(t){h=function(e,t,n){return e[t]=n}}function f(e,t,n,r){var o=t&&t.prototype instanceof w?t:w,i=Object.create(o.prototype),a=new _(r||[]);return s(i,"_invoke",{value:A(e,n,a)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}n.wrap=f;var y="suspendedStart",v="suspendedYield",m="executing",g="completed",b={};function w(){}function k(){}function C(){}var R={};h(R,c,(function(){return this}));var S=Object.getPrototypeOf,O=S&&S(S(U([])));O&&O!==i&&a.call(O,c)&&(R=O);var E=C.prototype=w.prototype=Object.create(R);function P(e){["next","throw","return"].forEach((function(t){h(e,t,(function(e){return this._invoke(t,e)}))}))}function x(e,t){function n(o,i,s,u){var c=d(e[o],e,i);if("throw"!==c.type){var l=c.arg,p=l.value;return p&&"object"==r(p)&&a.call(p,"__await")?t.resolve(p.__await).then((function(e){n("next",e,s,u)}),(function(e){n("throw",e,s,u)})):t.resolve(p).then((function(e){l.value=e,s(l)}),(function(e){return n("throw",e,s,u)}))}u(c.arg)}var o;s(this,"_invoke",{value:function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}})}function A(e,n,r){var o=y;return function(i,a){if(o===m)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:t,done:!0}}for(r.method=i,r.arg=a;;){var s=r.delegate;if(s){var u=T(s,r);if(u){if(u===b)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===y)throw o=g,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=m;var c=d(e,n,r);if("normal"===c.type){if(o=r.done?g:v,c.arg===b)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(o=g,r.method="throw",r.arg=c.arg)}}}function T(e,n){var r=n.method,o=e.iterator[r];if(o===t)return n.delegate=null,"throw"===r&&e.iterator.return&&(n.method="return",n.arg=t,T(e,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),b;var i=d(o,e.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,b;var a=i.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,b):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,b)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function j(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function U(e){if(e||""===e){var n=e[c];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function n(){for(;++o=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var u=a.call(i,"catchLoc"),c=a.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),j(n),b}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;j(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:U(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),b}},n}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,n)=>{var r=n(633)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{Client:()=>Rr,Errors:()=>t,SearchClient:()=>Er,default:()=>Pr});var e={};n.r(e),n.d(e,{hasBrowserEnv:()=>Le,hasStandardBrowserEnv:()=>Ie,hasStandardBrowserWebWorkerEnv:()=>Fe,navigator:()=>De,origin:()=>Be});var t={};function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function a(e){var t=function(e,t){if("object"!=i(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}function s(e,t){for(var n=0;nhn,ImportError:()=>Pn,MissingConfigurationError:()=>R,ObjectAlreadyExists:()=>nn,ObjectNotFound:()=>Zt,ObjectUnprocessable:()=>an,RequestMalformed:()=>Vt,RequestUnauthorized:()=>$t,ServerError:()=>cn,TypesenseError:()=>w});var l=n(65);function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){if(t&&("object"==i(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}function d(e,t){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},d(e,t)}function y(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&d(e,t)}function v(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(v=function(){return!!e})()}function m(e){var t="function"==typeof Map?new Map:void 0;return m=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(v())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&d(o,n.prototype),o}(e,arguments,f(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),d(n,e)},m(e)}function g(e,t,n){return t=f(t),h(e,b()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(b=function(){return!!e})()}var w=function(e){function t(e,n,r){var i;return o(this,t),(i=g(this,t,[e])).name=(this instanceof t?this.constructor:void 0).name,i.httpBody=n,i.httpStatus=r,Object.setPrototypeOf(p(i),(this instanceof t?this.constructor:void 0).prototype),i}return y(t,e),u(t)}(m(Error));function k(e,t,n){return t=f(t),h(e,C()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function C(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(C=function(){return!!e})()}var R=function(e){function t(){return o(this,t),k(this,t,arguments)}return y(t,e),u(t)}(w);function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var O=function(){function e(t){var n=this;o(this,e),this.nodes=t.nodes||[],this.nodes=this.nodes.map((function(e){return n.setDefaultPathInNode(e)})).map((function(e){return n.setDefaultPortInNode(e)})).map((function(e){return function(e){for(var t=1;t=0?t.numRetries:this.nodes.length+(null==this.nearestNode?0:1))||3,this.retryIntervalSeconds=t.retryIntervalSeconds||.1,this.apiKey=t.apiKey,this.sendApiKeyAsQueryParam=t.sendApiKeyAsQueryParam,this.cacheSearchResultsForSeconds=t.cacheSearchResultsForSeconds||0,this.useServerSideSearchCache=t.useServerSideSearchCache||!1,this.axiosAdapter=t.axiosAdapter,this.logger=t.logger||l,this.logLevel=t.logLevel||"warn",this.logger.setLevel(this.logLevel),this.additionalHeaders=t.additionalHeaders,this.httpAgent=t.httpAgent,this.httpsAgent=t.httpsAgent,this.paramsSerializer=t.paramsSerializer,this.showDeprecationWarnings(t),this.validate()}return u(e,[{key:"validate",value:function(){if(null==this.nodes||0===this.nodes.length||this.validateNodes())throw new R("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set");if(null!=this.nearestNode&&this.isNodeMissingAnyParameters(this.nearestNode))throw new R("Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set");if(null==this.apiKey)throw new R("Ensure that apiKey is set");return!0}},{key:"validateNodes",value:function(){var e=this;return this.nodes.some((function(t){return e.isNodeMissingAnyParameters(t)}))}},{key:"isNodeMissingAnyParameters",value:function(e){return!["protocol","host","port","path"].every((function(t){return e.hasOwnProperty(t)}))&&null==e.url}},{key:"setDefaultPathInNode",value:function(e){return null==e||e.hasOwnProperty("path")||(e.path=""),e}},{key:"setDefaultPortInNode",value:function(e){if(null!=e&&!e.hasOwnProperty("port")&&e.hasOwnProperty("protocol"))switch(e.protocol){case"https":e.port=443;break;case"http":e.port=80}return e}},{key:"showDeprecationWarnings",value:function(e){e.timeoutSeconds&&this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"),e.masterNode&&this.logger.warn("Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12"),e.readReplicaNodes&&this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12")}},{key:"shuffleArray",value:function(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),r=[e[n],e[t]];e[t]=r[0],e[n]=r[1]}}}]),e}();function E(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,o)}function P(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){E(i,r,o,a,s,"next",e)}function s(e){E(i,r,o,a,s,"throw",e)}a(void 0)}))}}var x=n(756),A=n.n(x);function T(e,t){return function(){return e.apply(t,arguments)}}const{toString:N}=Object.prototype,{getPrototypeOf:j}=Object,_=(U=Object.create(null),e=>{const t=N.call(e);return U[t]||(U[t]=t.slice(8,-1).toLowerCase())});var U;const q=e=>(e=e.toLowerCase(),t=>_(t)===e),L=e=>t=>typeof t===e,{isArray:D}=Array,I=L("undefined"),F=q("ArrayBuffer"),B=L("string"),H=L("function"),M=L("number"),K=e=>null!==e&&"object"==typeof e,z=e=>{if("object"!==_(e))return!1;const t=j(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},J=q("Date"),W=q("File"),V=q("Blob"),G=q("FileList"),Q=q("URLSearchParams"),[$,X,Y,Z]=["ReadableStream","Request","Response","Headers"].map(q);function ee(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),D(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const ne="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,re=e=>!I(e)&&e!==ne,oe=(ie="undefined"!=typeof Uint8Array&&j(Uint8Array),e=>ie&&e instanceof ie);var ie;const ae=q("HTMLFormElement"),se=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ue=q("RegExp"),ce=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};ee(n,((n,o)=>{let i;!1!==(i=t(n,o,e))&&(r[o]=i||n)})),Object.defineProperties(e,r)},le=q("AsyncFunction"),pe=(he="function"==typeof setImmediate,fe=H(ne.postMessage),he?setImmediate:fe?(de=`axios@${Math.random()}`,ye=[],ne.addEventListener("message",(({source:e,data:t})=>{e===ne&&t===de&&ye.length&&ye.shift()()}),!1),e=>{ye.push(e),ne.postMessage(de,"*")}):e=>setTimeout(e));var he,fe,de,ye;const ve="undefined"!=typeof queueMicrotask?queueMicrotask.bind(ne):"undefined"!=typeof process&&process.nextTick||pe,me={isArray:D,isArrayBuffer:F,isBuffer:function(e){return null!==e&&!I(e)&&null!==e.constructor&&!I(e.constructor)&&H(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||H(e.append)&&("formdata"===(t=_(e))||"object"===t&&H(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&F(e.buffer),t},isString:B,isNumber:M,isBoolean:e=>!0===e||!1===e,isObject:K,isPlainObject:z,isReadableStream:$,isRequest:X,isResponse:Y,isHeaders:Z,isUndefined:I,isDate:J,isFile:W,isBlob:V,isRegExp:ue,isFunction:H,isStream:e=>K(e)&&H(e.pipe),isURLSearchParams:Q,isTypedArray:oe,isFileList:G,forEach:ee,merge:function e(){const{caseless:t}=re(this)&&this||{},n={},r=(r,o)=>{const i=t&&te(n,o)||o;z(n[i])&&z(r)?n[i]=e(n[i],r):z(r)?n[i]=e({},r):D(r)?n[i]=r.slice():n[i]=r};for(let e=0,t=arguments.length;e(ee(t,((t,r)=>{n&&H(t)?e[r]=T(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let o,i,a;const s={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],r&&!r(a,e,t)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&j(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:_,kindOfTest:q,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(D(e))return e;let t=e.length;if(!M(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:ae,hasOwnProperty:se,hasOwnProp:se,reduceDescriptors:ce,freezeMethods:e=>{ce(e,((t,n)=>{if(H(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];H(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return D(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:te,global:ne,isContextDefined:re,isSpecCompliantForm:function(e){return!!(e&&H(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(K(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=D(e)?[]:{};return ee(e,((e,t)=>{const i=n(e,r+1);!I(i)&&(o[t]=i)})),t[r]=void 0,o}}return e};return n(e,0)},isAsyncFn:le,isThenable:e=>e&&(K(e)||H(e))&&H(e.then)&&H(e.catch),setImmediate:pe,asap:ve};function ge(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o,this.status=o.status?o.status:null)}me.inherits(ge,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:me.toJSONObject(this.config),code:this.code,status:this.status}}});const be=ge.prototype,we={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{we[e]={value:e}})),Object.defineProperties(ge,we),Object.defineProperty(be,"isAxiosError",{value:!0}),ge.from=(e,t,n,r,o,i)=>{const a=Object.create(be);return me.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),ge.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};const ke=ge;function Ce(e){return me.isPlainObject(e)||me.isArray(e)}function Re(e){return me.endsWith(e,"[]")?e.slice(0,-2):e}function Se(e,t,n){return e?e.concat(t).map((function(e,t){return e=Re(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const Oe=me.toFlatObject(me,{},null,(function(e){return/^is[A-Z]/.test(e)})),Ee=function(e,t,n){if(!me.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=me.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!me.isUndefined(t[e])}))).metaTokens,o=n.visitor||c,i=n.dots,a=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&me.isSpecCompliantForm(t);if(!me.isFunction(o))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(me.isDate(e))return e.toISOString();if(!s&&me.isBlob(e))throw new ke("Blob is not supported. Use a Buffer instead.");return me.isArrayBuffer(e)||me.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,o){let s=e;if(e&&!o&&"object"==typeof e)if(me.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(me.isArray(e)&&function(e){return me.isArray(e)&&!e.some(Ce)}(e)||(me.isFileList(e)||me.endsWith(n,"[]"))&&(s=me.toArray(e)))return n=Re(n),s.forEach((function(e,r){!me.isUndefined(e)&&null!==e&&t.append(!0===a?Se([n],r,i):null===a?n:n+"[]",u(e))})),!1;return!!Ce(e)||(t.append(Se(o,n,i),u(e)),!1)}const l=[],p=Object.assign(Oe,{defaultVisitor:c,convertValue:u,isVisitable:Ce});if(!me.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!me.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),me.forEach(n,(function(n,i){!0===(!(me.isUndefined(n)||null===n)&&o.call(t,n,me.isString(i)?i.trim():i,r,p))&&e(n,r?r.concat(i):[i])})),l.pop()}}(e),t};function Pe(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function xe(e,t){this._pairs=[],e&&Ee(e,this,t)}const Ae=xe.prototype;Ae.append=function(e,t){this._pairs.push([e,t])},Ae.toString=function(e){const t=e?function(t){return e.call(this,t,Pe)}:Pe;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const Te=xe;function Ne(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function je(e,t,n){if(!t)return e;const r=n&&n.encode||Ne;me.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let i;if(i=o?o(t,n):me.isURLSearchParams(t)?t.toString():new Te(t,n).toString(r),i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}const _e=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){me.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Ue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},qe={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Te,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},Le="undefined"!=typeof window&&"undefined"!=typeof document,De="object"==typeof navigator&&navigator||void 0,Ie=Le&&(!De||["ReactNative","NativeScript","NS"].indexOf(De.product)<0),Fe="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Be=Le&&window.location.href||"http://localhost",He={...e,...qe},Me=function(e){function t(e,n,r,o){let i=e[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=e.length;return i=!i&&me.isArray(r)?r.length:i,s?(me.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a):(r[i]&&me.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&me.isArray(r[i])&&(r[i]=function(e){const t={},n=Object.keys(e);let r;const o=n.length;let i;for(r=0;r{t(function(e){return me.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null},Ke={transitional:Ue,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=me.isObject(e);if(o&&me.isHTMLForm(e)&&(e=new FormData(e)),me.isFormData(e))return r?JSON.stringify(Me(e)):e;if(me.isArrayBuffer(e)||me.isBuffer(e)||me.isStream(e)||me.isFile(e)||me.isBlob(e)||me.isReadableStream(e))return e;if(me.isArrayBufferView(e))return e.buffer;if(me.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let i;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Ee(e,new He.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return He.isNode&&me.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((i=me.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Ee(i?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(me.isString(e))try{return(0,JSON.parse)(e),me.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Ke.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(me.isResponse(e)||me.isReadableStream(e))return e;if(e&&me.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw ke.from(e,ke.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:He.classes.FormData,Blob:He.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};me.forEach(["delete","get","head","post","put","patch"],(e=>{Ke.headers[e]={}}));const ze=Ke,Je=me.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),We=Symbol("internals");function Ve(e){return e&&String(e).trim().toLowerCase()}function Ge(e){return!1===e||null==e?e:me.isArray(e)?e.map(Ge):String(e)}function Qe(e,t,n,r,o){return me.isFunction(r)?r.call(this,t,n):(o&&(t=n),me.isString(t)?me.isString(r)?-1!==t.indexOf(r):me.isRegExp(r)?r.test(t):void 0:void 0)}class $e{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=Ve(t);if(!o)throw new Error("header name must be a non-empty string");const i=me.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=Ge(e))}const i=(e,t)=>me.forEach(e,((e,n)=>o(e,n,t)));if(me.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(me.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i((e=>{const t={};let n,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),n=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!n||t[n]&&Je[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t);else if(me.isHeaders(e))for(const[t,r]of e.entries())o(r,t,n);else null!=e&&o(t,e,n);return this}get(e,t){if(e=Ve(e)){const n=me.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(me.isFunction(t))return t.call(this,e,n);if(me.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Ve(e)){const n=me.findKey(this,e);return!(!n||void 0===this[n]||t&&!Qe(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=Ve(e)){const o=me.findKey(n,e);!o||t&&!Qe(0,n[o],o,t)||(delete n[o],r=!0)}}return me.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const o=t[n];e&&!Qe(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return me.forEach(this,((r,o)=>{const i=me.findKey(n,o);if(i)return t[i]=Ge(r),void delete t[o];const a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(o):String(o).trim();a!==o&&delete t[o],t[a]=Ge(r),n[a]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return me.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&me.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[We]=this[We]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=Ve(e);t[r]||(function(e,t){const n=me.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return me.isArray(e)?e.forEach(r):r(e),this}}$e.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),me.reduceDescriptors($e.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),me.freezeMethods($e);const Xe=$e;function Ye(e,t){const n=this||ze,r=t||n,o=Xe.from(r.headers);let i=r.data;return me.forEach(e,(function(e){i=e.call(n,i,o.normalize(),t?t.status:void 0)})),o.normalize(),i}function Ze(e){return!(!e||!e.__CANCEL__)}function et(e,t,n){ke.call(this,null==e?"canceled":e,ke.ERR_CANCELED,t,n),this.name="CanceledError"}me.inherits(et,ke,{__CANCEL__:!0});const tt=et;function nt(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new ke("Request failed with status code "+n.status,[ke.ERR_BAD_REQUEST,ke.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}const rt=(e,t,n=3)=>{let r=0;const o=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o,i=0,a=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[a];o||(o=u),n[i]=s,r[i]=u;let l=a,p=0;for(;l!==i;)p+=n[l++],l%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),u-o{o=i,n=null,r&&(clearTimeout(r),r=null),e.apply(null,t)};return[(...e)=>{const t=Date.now(),s=t-o;s>=i?a(e,t):(n=e,r||(r=setTimeout((()=>{r=null,a(n)}),i-s)))},()=>n&&a(n)]}((n=>{const i=n.loaded,a=n.lengthComputable?n.total:void 0,s=i-r,u=o(s);r=i,e({loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:u||void 0,estimated:u&&a&&i<=a?(a-i)/u:void 0,event:n,lengthComputable:null!=a,[t?"download":"upload"]:!0})}),n)},ot=(e,t)=>{const n=null!=e;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},it=e=>(...t)=>me.asap((()=>e(...t))),at=He.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,He.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(He.origin),He.navigator&&/(msie|trident)/i.test(He.navigator.userAgent)):()=>!0,st=He.hasStandardBrowserEnv?{write(e,t,n,r,o,i){const a=[e+"="+encodeURIComponent(t)];me.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),me.isString(r)&&a.push("path="+r),me.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function ut(e,t,n){let r=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&(r||0==n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const ct=e=>e instanceof Xe?{...e}:e;function lt(e,t){t=t||{};const n={};function r(e,t,n,r){return me.isPlainObject(e)&&me.isPlainObject(t)?me.merge.call({caseless:r},e,t):me.isPlainObject(t)?me.merge({},t):me.isArray(t)?t.slice():t}function o(e,t,n,o){return me.isUndefined(t)?me.isUndefined(e)?void 0:r(void 0,e,0,o):r(e,t,0,o)}function i(e,t){if(!me.isUndefined(t))return r(void 0,t)}function a(e,t){return me.isUndefined(t)?me.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,o,i){return i in t?r(n,o):i in e?r(void 0,n):void 0}const u={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(e,t,n)=>o(ct(e),ct(t),0,!0)};return me.forEach(Object.keys(Object.assign({},e,t)),(function(r){const i=u[r]||o,a=i(e[r],t[r],r);me.isUndefined(a)&&i!==s||(n[r]=a)})),n}const pt=e=>{const t=lt({},e);let n,{data:r,withXSRFToken:o,xsrfHeaderName:i,xsrfCookieName:a,headers:s,auth:u}=t;if(t.headers=s=Xe.from(s),t.url=je(ut(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&s.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),me.isFormData(r))if(He.hasStandardBrowserEnv||He.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(n=s.getContentType())){const[e,...t]=n?n.split(";").map((e=>e.trim())).filter(Boolean):[];s.setContentType([e||"multipart/form-data",...t].join("; "))}if(He.hasStandardBrowserEnv&&(o&&me.isFunction(o)&&(o=o(t)),o||!1!==o&&at(t.url))){const e=i&&a&&st.read(a);e&&s.set(i,e)}return t},ht="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){const r=pt(e);let o=r.data;const i=Xe.from(r.headers).normalize();let a,s,u,c,l,{responseType:p,onUploadProgress:h,onDownloadProgress:f}=r;function d(){c&&c(),l&&l(),r.cancelToken&&r.cancelToken.unsubscribe(a),r.signal&&r.signal.removeEventListener("abort",a)}let y=new XMLHttpRequest;function v(){if(!y)return;const r=Xe.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders());nt((function(e){t(e),d()}),(function(e){n(e),d()}),{data:p&&"text"!==p&&"json"!==p?y.response:y.responseText,status:y.status,statusText:y.statusText,headers:r,config:e,request:y}),y=null}y.open(r.method.toUpperCase(),r.url,!0),y.timeout=r.timeout,"onloadend"in y?y.onloadend=v:y.onreadystatechange=function(){y&&4===y.readyState&&(0!==y.status||y.responseURL&&0===y.responseURL.indexOf("file:"))&&setTimeout(v)},y.onabort=function(){y&&(n(new ke("Request aborted",ke.ECONNABORTED,e,y)),y=null)},y.onerror=function(){n(new ke("Network Error",ke.ERR_NETWORK,e,y)),y=null},y.ontimeout=function(){let t=r.timeout?"timeout of "+r.timeout+"ms exceeded":"timeout exceeded";const o=r.transitional||Ue;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new ke(t,o.clarifyTimeoutError?ke.ETIMEDOUT:ke.ECONNABORTED,e,y)),y=null},void 0===o&&i.setContentType(null),"setRequestHeader"in y&&me.forEach(i.toJSON(),(function(e,t){y.setRequestHeader(t,e)})),me.isUndefined(r.withCredentials)||(y.withCredentials=!!r.withCredentials),p&&"json"!==p&&(y.responseType=r.responseType),f&&([u,l]=rt(f,!0),y.addEventListener("progress",u)),h&&y.upload&&([s,c]=rt(h),y.upload.addEventListener("progress",s),y.upload.addEventListener("loadend",c)),(r.cancelToken||r.signal)&&(a=t=>{y&&(n(!t||t.type?new tt(null,e,y):t),y.abort(),y=null)},r.cancelToken&&r.cancelToken.subscribe(a),r.signal&&(r.signal.aborted?a():r.signal.addEventListener("abort",a)));const m=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(r.url);m&&-1===He.protocols.indexOf(m)?n(new ke("Unsupported protocol "+m+":",ke.ERR_BAD_REQUEST,e)):y.send(o||null)}))},ft=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,r=new AbortController;const o=function(e){if(!n){n=!0,a();const t=e instanceof Error?e:this.reason;r.abort(t instanceof ke?t:new tt(t instanceof Error?t.message:t))}};let i=t&&setTimeout((()=>{i=null,o(new ke(`timeout ${t} of ms exceeded`,ke.ETIMEDOUT))}),t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach((e=>{e.unsubscribe?e.unsubscribe(o):e.removeEventListener("abort",o)})),e=null)};e.forEach((e=>e.addEventListener("abort",o)));const{signal:s}=r;return s.unsubscribe=()=>me.asap(a),s}},dt=function*(e,t){let n=e.byteLength;if(!t||n{const o=async function*(e,t){for await(const n of async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}}(e))yield*dt(n,t)}(e,t);let i,a=0,s=e=>{i||(i=!0,r&&r(e))};return new ReadableStream({async pull(e){try{const{done:t,value:r}=await o.next();if(t)return s(),void e.close();let i=r.byteLength;if(n){let e=a+=i;n(e)}e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel:e=>(s(e),o.return())},{highWaterMark:2})},vt="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,mt=vt&&"function"==typeof ReadableStream,gt=vt&&("function"==typeof TextEncoder?(bt=new TextEncoder,e=>bt.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var bt;const wt=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},kt=mt&&wt((()=>{let e=!1;const t=new Request(He.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})),Ct=mt&&wt((()=>me.isReadableStream(new Response("").body))),Rt={stream:Ct&&(e=>e.body)};var St;vt&&(St=new Response,["text","arrayBuffer","blob","formData","stream"].forEach((e=>{!Rt[e]&&(Rt[e]=me.isFunction(St[e])?t=>t[e]():(t,n)=>{throw new ke(`Response type '${e}' is not supported`,ke.ERR_NOT_SUPPORT,n)})})));const Ot={http:null,xhr:ht,fetch:vt&&(async e=>{let{url:t,method:n,data:r,signal:o,cancelToken:i,timeout:a,onDownloadProgress:s,onUploadProgress:u,responseType:c,headers:l,withCredentials:p="same-origin",fetchOptions:h}=pt(e);c=c?(c+"").toLowerCase():"text";let f,d=ft([o,i&&i.toAbortSignal()],a);const y=d&&d.unsubscribe&&(()=>{d.unsubscribe()});let v;try{if(u&&kt&&"get"!==n&&"head"!==n&&0!==(v=await(async(e,t)=>{const n=me.toFiniteNumber(e.getContentLength());return null==n?(async e=>{if(null==e)return 0;if(me.isBlob(e))return e.size;if(me.isSpecCompliantForm(e)){const t=new Request(He.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return me.isArrayBufferView(e)||me.isArrayBuffer(e)?e.byteLength:(me.isURLSearchParams(e)&&(e+=""),me.isString(e)?(await gt(e)).byteLength:void 0)})(t):n})(l,r))){let e,n=new Request(t,{method:"POST",body:r,duplex:"half"});if(me.isFormData(r)&&(e=n.headers.get("content-type"))&&l.setContentType(e),n.body){const[e,t]=ot(v,rt(it(u)));r=yt(n.body,65536,e,t)}}me.isString(p)||(p=p?"include":"omit");const o="credentials"in Request.prototype;f=new Request(t,{...h,signal:d,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:r,duplex:"half",credentials:o?p:void 0});let i=await fetch(f);const a=Ct&&("stream"===c||"response"===c);if(Ct&&(s||a&&y)){const e={};["status","statusText","headers"].forEach((t=>{e[t]=i[t]}));const t=me.toFiniteNumber(i.headers.get("content-length")),[n,r]=s&&ot(t,rt(it(s),!0))||[];i=new Response(yt(i.body,65536,n,(()=>{r&&r(),y&&y()})),e)}c=c||"text";let m=await Rt[me.findKey(Rt,c)||"text"](i,e);return!a&&y&&y(),await new Promise(((t,n)=>{nt(t,n,{data:m,headers:Xe.from(i.headers),status:i.status,statusText:i.statusText,config:e,request:f})}))}catch(t){if(y&&y(),t&&"TypeError"===t.name&&/fetch/i.test(t.message))throw Object.assign(new ke("Network Error",ke.ERR_NETWORK,e,f),{cause:t.cause||t});throw ke.from(t,t&&t.code,e,f)}})};me.forEach(Ot,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Et=e=>`- ${e}`,Pt=e=>me.isFunction(e)||null===e||!1===e,xt=e=>{e=me.isArray(e)?e:[e];const{length:t}=e;let n,r;const o={};for(let i=0;i`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));let n=t?e.length>1?"since :\n"+e.map(Et).join("\n"):" "+Et(e[0]):"as no adapter specified";throw new ke("There is no suitable adapter to dispatch the request "+n,"ERR_NOT_SUPPORT")}return r};function At(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new tt(null,e)}function Tt(e){return At(e),e.headers=Xe.from(e.headers),e.data=Ye.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),xt(e.adapter||ze.adapter)(e).then((function(t){return At(e),t.data=Ye.call(e,e.transformResponse,t),t.headers=Xe.from(t.headers),t}),(function(t){return Ze(t)||(At(e),t&&t.response&&(t.response.data=Ye.call(e,e.transformResponse,t.response),t.response.headers=Xe.from(t.response.headers))),Promise.reject(t)}))}const Nt={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Nt[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const jt={};Nt.transitional=function(e,t,n){function r(e,t){return"[Axios v1.8.4] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,i)=>{if(!1===e)throw new ke(r(o," has been removed"+(t?" in "+t:"")),ke.ERR_DEPRECATED);return t&&!jt[o]&&(jt[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,o,i)}},Nt.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};const _t={assertOptions:function(e,t,n){if("object"!=typeof e)throw new ke("options must be an object",ke.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const i=r[o],a=t[i];if(a){const t=e[i],n=void 0===t||a(t,i,e);if(!0!==n)throw new ke("option "+i+" must be "+n,ke.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new ke("Unknown option "+i,ke.ERR_BAD_OPTION)}},validators:Nt},Ut=_t.validators;class qt{constructor(e){this.defaults=e,this.interceptors={request:new _e,response:new _e}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=lt(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;void 0!==n&&_t.assertOptions(n,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean)},!1),null!=r&&(me.isFunction(r)?t.paramsSerializer={serialize:r}:_t.assertOptions(r,{encode:Ut.function,serialize:Ut.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),_t.assertOptions(t,{baseUrl:Ut.spelling("baseURL"),withXsrfToken:Ut.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let i=o&&me.merge(o.common,o[t.method]);o&&me.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=Xe.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,a.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,p=0;if(!s){const e=[Tt.bind(this),void 0];for(e.unshift.apply(e,a),e.push.apply(e,u),l=e.length,c=Promise.resolve(t);p{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,o){n.reason||(n.reason=new tt(e,r,o),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new Dt((function(t){e=t})),cancel:e}}}const It=Dt,Ft={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ft).forEach((([e,t])=>{Ft[t]=e}));const Bt=Ft,Ht=function e(t){const n=new Lt(t),r=T(Lt.prototype.request,n);return me.extend(r,Lt.prototype,n,{allOwnKeys:!0}),me.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(lt(t,n))},r}(ze);Ht.Axios=Lt,Ht.CanceledError=tt,Ht.CancelToken=It,Ht.isCancel=Ze,Ht.VERSION="1.8.4",Ht.toFormData=Ee,Ht.AxiosError=ke,Ht.Cancel=Ht.CanceledError,Ht.all=function(e){return Promise.all(e)},Ht.spread=function(e){return function(t){return e.apply(null,t)}},Ht.isAxiosError=function(e){return me.isObject(e)&&!0===e.isAxiosError},Ht.mergeConfig=lt,Ht.AxiosHeaders=Xe,Ht.formToJSON=e=>Me(me.isHTMLForm(e)?new FormData(e):e),Ht.getAdapter=xt,Ht.HttpStatusCode=Bt,Ht.default=Ht;const Mt=Ht;var Kt=n(939),zt=n(82);function Jt(e,t,n){return t=f(t),h(e,Wt()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function Wt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Wt=function(){return!!e})()}var Vt=function(e){function t(){return o(this,t),Jt(this,t,arguments)}return y(t,e),u(t)}(w);function Gt(e,t,n){return t=f(t),h(e,Qt()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function Qt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Qt=function(){return!!e})()}var $t=function(e){function t(){return o(this,t),Gt(this,t,arguments)}return y(t,e),u(t)}(w);function Xt(e,t,n){return t=f(t),h(e,Yt()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function Yt(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Yt=function(){return!!e})()}var Zt=function(e){function t(){return o(this,t),Xt(this,t,arguments)}return y(t,e),u(t)}(w);function en(e,t,n){return t=f(t),h(e,tn()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function tn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(tn=function(){return!!e})()}var nn=function(e){function t(){return o(this,t),en(this,t,arguments)}return y(t,e),u(t)}(w);function rn(e,t,n){return t=f(t),h(e,on()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function on(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(on=function(){return!!e})()}var an=function(e){function t(){return o(this,t),rn(this,t,arguments)}return y(t,e),u(t)}(w);function sn(e,t,n){return t=f(t),h(e,un()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function un(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(un=function(){return!!e})()}var cn=function(e){function t(){return o(this,t),sn(this,t,arguments)}return y(t,e),u(t)}(w);function ln(e,t,n){return t=f(t),h(e,pn()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function pn(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(pn=function(){return!!e})()}var hn=function(e){function t(){return o(this,t),ln(this,t,arguments)}return y(t,e),u(t)}(w),fn={query_by:"query_by",query_by_weights:"query_by_weights",facet_by:"facet_by",group_by:"group_by",include_fields:"include_fields",exclude_fields:"exclude_fields",highlight_fields:"highlight_fields",highlight_full_fields:"highlight_full_fields",pinned_hits:"pinned_hits",hidden_hits:"hidden_hits",infix:"infix",override_tags:"override_tags",num_typos:"num_typos",prefix:"prefix",sort_by:"sort_by"};function dn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yn(e){return Object.keys(fn).filter((function(t){return void 0!==e[t]})).every((function(t){return n=e[t],!Array.isArray(n);var n}))}function vn(e){var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=Array(t);n1&&void 0!==p[1]?p[1]:{},o=(r=p.length>2&&void 0!==p[2]?p[2]:{}).abortSignal,i=void 0===o?null:o,a=r.responseType,s=void 0===a?void 0:a,u=r.streamConfig,c=void 0===u?void 0:u,l=r.isStreamingRequest,e.abrupt("return",this.performRequest("get",t,{queryParameters:n,abortSignal:i,responseType:s,streamConfig:c,isStreamingRequest:l}));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return h.apply(this,arguments)})},{key:"delete",value:(p=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.performRequest("delete",t,{queryParameters:n,isStreamingRequest:!1}));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"post",value:(l=P(A().mark((function e(t){var n,r,o,i,a,s,u,c,l,p,h,f=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=f.length>1&&void 0!==f[1]?f[1]:{},r=f.length>2&&void 0!==f[2]?f[2]:{},o=f.length>3&&void 0!==f[3]?f[3]:{},a=(i=f.length>4&&void 0!==f[4]?f[4]:{}).abortSignal,s=void 0===a?null:a,u=i.responseType,c=void 0===u?void 0:u,l=i.streamConfig,p=void 0===l?void 0:l,h=i.isStreamingRequest,e.abrupt("return",this.performRequest("post",t,{queryParameters:r,bodyParameters:n,additionalHeaders:o,abortSignal:s,responseType:c,streamConfig:p,isStreamingRequest:h}));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"put",value:(c=P(A().mark((function e(t){var n,r,o=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this.performRequest("put",t,{queryParameters:r,bodyParameters:n,isStreamingRequest:!1}));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"patch",value:(s=P(A().mark((function e(t){var n,r,o=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=o.length>1&&void 0!==o[1]?o[1]:{},r=o.length>2&&void 0!==o[2]?o[2]:{},e.abrupt("return",this.performRequest("patch",t,{queryParameters:r,bodyParameters:n,isStreamingRequest:!1}));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"getAdapter",value:function(){if(this.configuration.axiosAdapter)return"function"==typeof this.configuration.axiosAdapter?this.configuration.axiosAdapter:"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent?Mt.getAdapter(this.configuration.axiosAdapter).bind(globalThis):Mt.getAdapter(this.configuration.axiosAdapter)}},{key:"performRequest",value:(a=P(A().mark((function e(t,n,r){var o,a,s,u,c,l,p,h,f,d,y,v,m,g,b,w,k,C,R,S,O,E,P,x=this;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=r.queryParameters,a=void 0===o?null:o,s=r.bodyParameters,u=void 0===s?null:s,c=r.additionalHeaders,l=void 0===c?{}:c,p=r.abortSignal,h=void 0===p?null:p,f=r.responseType,d=void 0===f?void 0:f,y=r.skipConnectionTimeout,v=void 0!==y&&y,m=r.enableKeepAlive,g=void 0===m?void 0:m,b=r.streamConfig,w=void 0===b?void 0:b,k=r.isStreamingRequest,this.configuration.validate(),k&&(this.logger.debug("Request: Performing streaming request to ".concat(n)),kn||"undefined"==typeof fetch||(this.logger.debug("Using fetch adapter for browser streaming"),d="stream")),C=Date.now(),S=!1,this.logger.debug("Request #".concat(C,": Performing ").concat(t.toUpperCase()," request: ").concat(n)),O=A().mark((function e(){var r,o,s,c,p,f,y,m,b,O;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=x.getNextNode(C),x.logger.debug("Request #".concat(C,": Attempting ").concat(t.toUpperCase()," request Try #").concat(P," to Node ").concat(r.index)),!h||!h.aborted){e.next=4;break}return e.abrupt("return",{v:Promise.reject(new Error("Request aborted by caller."))});case 4:return e.prev=4,(s={method:t,url:x.uriFor(n,r),headers:Object.assign({},x.defaultHeaders(),l,x.additionalUserHeaders),maxContentLength:1/0,maxBodyLength:1/0,validateStatus:function(e){return e>0},transformResponse:[function(e,t){var n=e;return void 0!==t&&"string"==typeof e&&t["content-type"]&&t["content-type"].startsWith("application/json")&&(n=JSON.parse(e)),n}]}).adapter=k&&!kn?"fetch":x.getAdapter(),!0!==v&&(s.timeout=1e3*x.connectionTimeoutSeconds),a&&0!==Object.keys(a).length&&(s.params=a),x.sendApiKeyAsQueryParam&&(s.params=s.params||{},s.params["x-typesense-api-key"]=x.apiKey),x.configuration.httpAgent?(x.logger.debug("Request #".concat(C,": Using custom httpAgent")),s.httpAgent=x.configuration.httpAgent):!0===g&&(kn?(x.logger.debug("Request #".concat(C,": Enabling KeepAlive")),s.httpAgent=new Kt.Agent({keepAlive:!0})):x.logger.warn("Request #".concat(C,": Cannot use custom httpAgent in a browser environment to enable keepAlive"))),x.configuration.httpsAgent?(x.logger.debug("Request #".concat(C,": Using custom httpsAgent")),s.httpsAgent=x.configuration.httpsAgent):!0===g&&(kn?(x.logger.debug("Request #".concat(C,": Enabling keepAlive")),s.httpsAgent=new zt.Agent({keepAlive:!0})):x.logger.warn("Request #".concat(C,": Cannot use custom httpAgent in a browser environment to enable keepAlive"))),x.configuration.paramsSerializer&&(x.logger.debug("Request #".concat(C,": Using custom paramsSerializer")),s.paramsSerializer=x.configuration.paramsSerializer),u&&("string"==typeof u&&0!==u.length||"object"===i(u)&&0!==Object.keys(u).length)&&(s.data=u),h&&(c=Mt.CancelToken,p=c.source(),o=function(){S=!0,p.cancel()},h.addEventListener("abort",o),s.cancelToken=p.token),k?(s.responseType="stream",kn||(s.headers=bn(bn({},s.headers),{},{Accept:"text/event-stream"}))):d&&(s.responseType=d),e.next=18,Mt(s);case 18:if((f=e.sent).status>=1&&f.status<=499&&x.setNodeHealthcheck(r,wn),x.logger.debug("Request #".concat(C,": Request to Node ").concat(r.index," was made. Response Code was ").concat(f.status,".")),!(f.status>=200&&f.status<300)){e.next=27;break}if(!k){e.next=24;break}return e.abrupt("return",{v:x.handleStreamingResponse(f,w)});case 24:return e.abrupt("return",{v:Promise.resolve(f.data)});case 27:if(!(f.status<500)){e.next=31;break}return e.abrupt("return",{v:Promise.reject(x.customErrorForResponse(f,null===(y=f.data)||void 0===y?void 0:y.message,s.data))});case 31:throw x.customErrorForResponse(f,null===(m=f.data)||void 0===m?void 0:m.message,s.data);case 32:e.next=50;break;case 34:if(e.prev=34,e.t0=e.catch(4),S||x.setNodeHealthcheck(r,!1),R=e.t0,x.logger.warn("Request #".concat(C,": Request to Node ").concat(r.index,' failed due to "').concat(null!==(b=null===e.t0||void 0===e.t0?void 0:e.t0.code)&&void 0!==b?b:""," ").concat(e.t0.message).concat(null==e.t0.response?"":" - "+JSON.stringify(null===(O=e.t0.response)||void 0===O?void 0:O.data),'"')),!S){e.next=41;break}return e.abrupt("return",{v:Promise.reject(new Error("Request aborted by caller."))});case 41:if(k&&x.invokeOnErrorCallback(e.t0,w),!(P0){var o=s.split("\n");n.processStreamLines(o,a,t)}n.finalizeStreamResult(a,r,e,t)})),i.on("error",(function(e){n.logger.error("Stream error: ".concat(e)),n.invokeOnErrorCallback(e,t),o(e)}))}))}},{key:"handleBrowserStreaming",value:function(e,t){var n=this;return this.logger.debug("Processing browser stream"),new Promise(function(){var r=P(A().mark((function r(o,a){return A().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(r.prev=0,!e.data||"function"!=typeof e.data.getReader){r.next=3;break}return r.abrupt("return",n.handleBrowserReadableStream(e.data,o,a,e,t));case 3:if("string"!=typeof e.data){r.next=5;break}return r.abrupt("return",n.handleBrowserStringResponse(e.data,o,e,t));case 5:if("object"!==i(e.data)||null===e.data){r.next=9;break}return n.logger.debug("No stream found, but data object is available"),n.invokeOnCompleteCallback(e.data,t),r.abrupt("return",o(e.data));case 9:return n.logger.error("No usable data found in response"),r.abrupt("return",a(new Error("No usable data found in response")));case 13:r.prev=13,r.t0=r.catch(0),n.logger.error("Error processing streaming response: ".concat(r.t0)),n.invokeOnErrorCallback(r.t0,t),a(r.t0);case 18:case"end":return r.stop()}}),r,null,[[0,13]])})));return function(e,t){return r.apply(this,arguments)}}())}},{key:"handleBrowserReadableStream",value:(n=P(A().mark((function e(t,n,r,o,i){var a,s,u,c,l,p,h,f,d;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.logger.debug("Found ReadableStream in response.data"),a=t.getReader(),s=[],u="",e.prev=4;case 5:return e.next=8,a.read();case 8:if(c=e.sent,l=c.done,p=c.value,!l){e.next=15;break}return this.logger.debug("Stream reading complete"),u.trim()&&(h=u.split("\n"),this.processStreamLines(h,s,i)),e.abrupt("break",23);case 15:f=(new TextDecoder).decode(p),this.logger.debug("Received chunk: ".concat(f.length," bytes")),d=(u+=f).split("\n"),u=d.pop()||"",this.processStreamLines(d,s,i),e.next=5;break;case 23:this.finalizeStreamResult(s,n,o,i),e.next=31;break;case 26:e.prev=26,e.t0=e.catch(4),this.logger.error("Stream error: ".concat(e.t0)),this.invokeOnErrorCallback(e.t0,i),r(e.t0);case 31:case"end":return e.stop()}}),e,this,[[4,26]])}))),function(e,t,r,o,i){return n.apply(this,arguments)})},{key:"handleBrowserStringResponse",value:function(e,t,n,r){this.logger.debug("Processing text response as stream data");var o=[],i=e.split("\n");if(this.processStreamLines(i,o,r),o.length>0){var a=this.combineStreamingChunks(o);this.invokeOnCompleteCallback(a,r),t(a)}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(n.data,r),t(n.data)}},{key:"processStreamLines",value:function(e,t,n){var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return mn(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}(e);try{for(o.s();!(r=o.n()).done;){var i=r.value;if(i.trim()&&"data: [DONE]"!==i){var a=this.processStreamingLine(i);null!==a&&(this.invokeOnChunkCallback(a,n),t.push(a))}}}catch(e){o.e(e)}finally{o.f()}}},{key:"finalizeStreamResult",value:function(e,t,n,r){if(e.length>0){var o=this.combineStreamingChunks(e);this.logger.debug("Stream processing complete"),this.invokeOnCompleteCallback(o,r),t(o)}else this.logger.debug("No chunks processed, returning original API response"),this.invokeOnCompleteCallback(n.data,r),t(n.data)}},{key:"combineStreamingChunks",value:function(e){if(0===e.length)return{};if(1===e.length)return e[0];var t=this.getMessageChunks(e);if(t.length>0)return this.combineMessageChunks(e,t);var n=e[e.length-1];if(!this.isCompleteSearchResponse(n))throw new Error("Last chunk is not a complete search response");return n}},{key:"getMessageChunks",value:function(e){return e.filter(this.isChunkMessage)}},{key:"isChunkMessage",value:function(e){return"object"===i(e)&&null!==e&&"message"in e&&"conversation_id"in e}},{key:"combineMessageChunks",value:function(e,t){this.logger.debug("Found ".concat(t.length," message chunks to combine"));var n=e[e.length-1];if(this.isCompleteSearchResponse(n))return n;var r=e.find(this.isCompleteSearchResponse);if(!r)throw new Error("No metadata chunk found");return r}},{key:"isCompleteSearchResponse",value:function(e){return"object"===i(e)&&null!==e&&Object.keys(e).length>0&&("results"in e||"found"in e||"hits"in e||"page"in e||"search_time_ms"in e)}},{key:"getNextNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(null!=this.nearestNode){if(this.logger.debug("Request #".concat(e,": Nodes Health: Node ").concat(this.nearestNode.index," is ").concat(!0===this.nearestNode.isHealthy?"Healthy":"Unhealthy")),!0===this.nearestNode.isHealthy||this.nodeDueForHealthcheck(this.nearestNode,e))return this.logger.debug("Request #".concat(e,": Updated current node to Node ").concat(this.nearestNode.index)),this.nearestNode;this.logger.debug("Request #".concat(e,": Falling back to individual nodes"))}this.logger.debug("Request #".concat(e,": Nodes Health: ").concat(this.nodes.map((function(e){return"Node ".concat(e.index," is ").concat(!0===e.isHealthy?"Healthy":"Unhealthy")})).join(" || ")));for(var t=this.nodes[0],n=0;n<=this.nodes.length;n++)if(this.currentNodeIndex=(this.currentNodeIndex+1)%this.nodes.length,!0===(t=this.nodes[this.currentNodeIndex]).isHealthy||this.nodeDueForHealthcheck(t,e))return this.logger.debug("Request #".concat(e,": Updated current node to Node ").concat(t.index)),t;return this.logger.debug("Request #".concat(e,": No healthy nodes were found. Returning the next node, Node ").concat(t.index)),t}},{key:"nodeDueForHealthcheck",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=Date.now()-e.lastAccessTimestamp>1e3*this.healthcheckIntervalSeconds;return n&&this.logger.debug("Request #".concat(t,": Node ").concat(e.index," has exceeded healtcheckIntervalSeconds of ").concat(this.healthcheckIntervalSeconds,". Adding it back into rotation.")),n}},{key:"initializeMetadataForNodes",value:function(){var e=this;null!=this.nearestNode&&(this.nearestNode.index="nearestNode",this.setNodeHealthcheck(this.nearestNode,wn)),this.nodes.forEach((function(t,n){t.index=n,e.setNodeHealthcheck(t,wn)}))}},{key:"setNodeHealthcheck",value:function(e,t){e.isHealthy=t,e.lastAccessTimestamp=Date.now()}},{key:"uriFor",value:function(e,t){return null!=t.url?"".concat(t.url).concat(e):"".concat(t.protocol,"://").concat(t.host,":").concat(t.port).concat(t.path).concat(e)}},{key:"defaultHeaders",value:function(){var e={};return this.sendApiKeyAsQueryParam||(e["X-TYPESENSE-API-KEY"]=this.apiKey),e["Content-Type"]="application/json",e}},{key:"timer",value:(t=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e){return setTimeout(e,1e3*t)})));case 1:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"customErrorForResponse",value:function(e,t,n){var r="Request failed with HTTP code ".concat(e.status);return"string"==typeof t&&""!==t.trim()&&(r+=" | Server said: ".concat(t)),new w(r,n,e.status),400===e.status?new Vt(r,n,e.status):401===e.status?new $t(r,n,e.status):404===e.status?new Zt(r,n,e.status):409===e.status?new nn(r,n,e.status):422===e.status?new an(r,n,e.status):e.status>=500&&e.status<=599?new cn(r,n,e.status):new hn(r,n,e.status)}},{key:"invokeOnChunkCallback",value:function(e,t){if(null!=t&&t.onChunk)try{t.onChunk(e)}catch(e){this.logger.warn("Error in onChunk callback: ".concat(e))}}},{key:"invokeOnCompleteCallback",value:function(e,t){if(null!=t&&t.onComplete)try{t.onComplete(e)}catch(e){this.logger.warn("Error in onComplete callback: ".concat(e))}}},{key:"invokeOnErrorCallback",value:function(e,t){if(null!=t&&t.onError){var n=function(e){if("object"===i(t=e)&&null!==t&&"message"in t&&"string"==typeof t.message)return e;var t;try{return"string"==typeof e?new Error(e):new Error(JSON.stringify(e))}catch(t){return new Error(String(e))}}(e);try{t.onError(n)}catch(e){this.logger.warn("Error in onError callback: ".concat(e))}}}}]),e}(),Rn="/collections",Sn=function(){function e(t){o(this,e),this.apiCall=t}var t,n;return u(e,[{key:"create",value:(n=P(A().mark((function e(t,n){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(Rn,t,n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){var t,n=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(Rn,t));case 2:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}],[{key:"RESOURCEPATH",get:function(){return Rn}}]),e}();function On(e,t,n){return t=f(t),h(e,En()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function En(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(En=function(){return!!e})()}var Pn=function(e){function t(e,n,r){var i;return o(this,t),(i=On(this,t,[e])).importResults=n,i.payload=r,i}return y(t,e),u(t)}(w);function xn(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;ru&&(S=this.responseCache.keys().next().value)&&this.responseCache.delete(S),this.responsePromiseCache.size>u&&(O=this.responsePromiseCache.keys().next().value)&&this.responsePromiseCache.delete(O),e.abrupt("return",R);case 38:case"end":return e.stop()}}),e,this)}))),function(e,n,r,o){return t.apply(this,arguments)})},{key:"executeRequest",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,a=arguments.length>6?arguments[6]:void 0,s=e[t];switch(t){case"get":return s.call(e,n,r,{abortSignal:null==a?void 0:a.abortSignal,responseType:null==a?void 0:a.responseType,streamConfig:null==a?void 0:a.streamConfig,isStreamingRequest:null==a?void 0:a.isStreamingRequest});case"delete":return s.call(e,n,r);case"post":return s.call(e,n,o,r,i||{},{abortSignal:null==a?void 0:a.abortSignal,responseType:null==a?void 0:a.responseType,streamConfig:null==a?void 0:a.streamConfig,isStreamingRequest:null==a?void 0:a.isStreamingRequest});case"put":case"patch":return s.call(e,n,o,r);default:throw new Error("Unsupported method: ".concat(String(t)))}}}]),e}(),Tn=["streamConfig"];function Nn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function jn(e){for(var t=1;t1&&void 0!==f[1]?f[1]:{}).cacheSearchResultsForSeconds,o=void 0===r?this.configuration.cacheSearchResultsForSeconds:r,i=n.abortSignal,a=void 0===i?null:i,s={},!0===this.configuration.useServerSideSearchCache&&(s.use_cache=!0),u=vn(t),c=u.streamConfig,l=xn(u,Tn),p=jn(jn({},s),l),h=!0===p.conversation_stream,e.abrupt("return",this.requestWithCache.perform(this.apiCall,"get",{path:this.endpointPath("search"),queryParams:p,streamConfig:c,abortSignal:a,isStreamingRequest:h},{cacheResponseForSeconds:o}));case 7:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(e){return"".concat(Sn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(_n).concat(void 0===e?"":"/"+e)}}],[{key:"RESOURCEPATH",get:function(){return _n}}]),e}();function qn(e,t,n){return t=f(t),h(e,Ln()?Reflect.construct(t,n||[],f(e).constructor):t.apply(e,n))}function Ln(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ln=function(){return!!e})()}var Dn="undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node,In=function(e){function t(e,n,r){return o(this,t),qn(this,t,[e,n,r])}var n,r,i,a,s,c,l,p,h;return y(t,e),u(t,[{key:"create",value:(h=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=3;break}throw new Error("No document provided");case 3:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,n));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return h.apply(this,arguments)})},{key:"upsert",value:(p=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=3;break}throw new Error("No document provided");case 3:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"upsert"})));case 4:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"update",value:(l=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.length>1&&void 0!==r[1]?r[1]:{},t){e.next=3;break}throw new Error("No document provided");case 3:if(null==n.filter_by){e.next=7;break}return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,Object.assign({},n)));case 7:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t,Object.assign({},n,{action:"update"})));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"delete",value:(c=P(A().mark((function e(){var t,n=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 2:case"end":return e.stop()}}),e,this)}))),function(){return c.apply(this,arguments)})},{key:"createMany",value:(s=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"),e.abrupt("return",this.import(t,n));case 3:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"import",value:(a=P(A().mark((function e(t){var n,r,o,i,a,s=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=s.length>1&&void 0!==s[1]?s[1]:{},!Array.isArray(t)){e.next=15;break}if(0!==t.length){e.next=4;break}throw new Vt("No documents provided");case 4:e.prev=4,r=t.map((function(e){return JSON.stringify(e)})).join("\n"),e.next=13;break;case 8:if(e.prev=8,e.t0=e.catch(4),!(e.t0 instanceof RangeError&&e.t0.message.includes("Too many properties to enumerate"))){e.next=12;break}throw new Error("".concat(e.t0,"\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n "));case 12:throw new Error(e.t0);case 13:e.next=18;break;case 15:if(null!=(u=r=t)&&""!==u&&0!==u.length){e.next=18;break}throw new Vt("No documents provided");case 18:return e.next=20,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:n,bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0,enableKeepAlive:!!Dn});case 20:if(o=e.sent,!Array.isArray(t)){e.next=31;break}if(i=o.split("\n").map((function(e){return JSON.parse(e)})),!((a=i.filter((function(e){return!1===e.success}))).length>0)){e.next=28;break}throw new Pn("".concat(i.length-a.length," documents imported successfully, ").concat(a.length," documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."),i,{documentsInJSONLFormat:r,options:n,failedItems:a,successCount:i.length-a.length});case 28:return e.abrupt("return",i);case 29:e.next=32;break;case 31:return e.abrupt("return",o);case 32:case"end":return e.stop()}var u}),e,this,[[4,8]])}))),function(e){return a.apply(this,arguments)})},{key:"importStream",value:(i=P(A().mark((function e(t){var n,r,o,i,a=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=a.length>1&&void 0!==a[1]?a[1]:{},e.next=3,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:n,bodyParameters:t,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0,enableKeepAlive:!!Dn});case 3:if(r=e.sent,o=r.split("\n").map((function(e){return JSON.parse(e)})),!((i=o.filter((function(e){return!1===e.success}))).length>0)){e.next=10;break}throw new Pn("".concat(o.length-i.length," documents imported successfully, ").concat(i.length," documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."),o,{documentsInJSONLFormat:t,options:n,failedItems:i,successCount:o.length-i.length});case 10:return e.abrupt("return",o);case 11:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"export",value:(r=P(A().mark((function e(){var t,n=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(this.endpointPath("export"),t));case 2:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"exportStream",value:(n=P(A().mark((function e(){var t,n=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.get(this.endpointPath("export"),t,{responseType:"stream"}));case 2:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})}]),t}(Un),Fn=function(){function e(t,n){o(this,e),this.collectionName=t,this.apiCall=n}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(Sn.RESOURCEPATH,"/").concat(this.collectionName).concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/overrides"}}]),e}(),Bn=function(){function e(t,n,r){o(this,e),this.collectionName=t,this.overrideId=n,this.apiCall=r}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Sn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Fn.RESOURCEPATH,"/").concat(encodeURIComponent(this.overrideId))}}]),e}(),Hn=function(){function e(t,n){o(this,e),this.collectionName=t,this.apiCall=n}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(Sn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/synonyms"}}]),e}(),Mn=function(){function e(t,n,r){o(this,e),this.collectionName=t,this.synonymId=n,this.apiCall=r}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Sn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(Hn.RESOURCEPATH,"/").concat(encodeURIComponent(this.synonymId))}}]),e}(),Kn=function(){function e(t,n,r){o(this,e),this.collectionName=t,this.documentId=n,this.apiCall=r}var t,n,r;return u(e,[{key:"retrieve",value:(r=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"delete",value:(n=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"update",value:(t=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.apiCall.patch(this.endpointPath(),t,n));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Sn.RESOURCEPATH,"/").concat(encodeURIComponent(this.collectionName)).concat(In.RESOURCEPATH,"/").concat(encodeURIComponent(this.documentId))}}]),e}(),zn=function(){function e(t,n,r){o(this,e),c(this,"individualDocuments",{}),c(this,"individualOverrides",{}),c(this,"individualSynonyms",{}),this.name=t,this.apiCall=n,this.configuration=r,this.name=t,this.apiCall=n,this.configuration=r,this._documents=new In(this.name,this.apiCall,this.configuration),this._overrides=new Fn(this.name,this.apiCall),this._synonyms=new Hn(this.name,this.apiCall)}var t,n,r,i;return u(e,[{key:"retrieve",value:(i=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"update",value:(r=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.patch(this.endpointPath(),t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"delete",value:(n=P(A().mark((function e(){var t,n=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.length>0&&void 0!==n[0]?n[0]:{},e.abrupt("return",this.apiCall.delete(this.endpointPath(),t));case 2:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"exists",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.retrieve();case 3:return e.abrupt("return",!0);case 6:if(e.prev=6,e.t0=e.catch(0),!(e.t0 instanceof Zt)){e.next=10;break}return e.abrupt("return",!1);case 10:throw e.t0;case 11:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(){return t.apply(this,arguments)})},{key:"documents",value:function(e){return e?(void 0===this.individualDocuments[e]&&(this.individualDocuments[e]=new Kn(this.name,e,this.apiCall)),this.individualDocuments[e]):this._documents}},{key:"overrides",value:function(e){return void 0===e?this._overrides:(void 0===this.individualOverrides[e]&&(this.individualOverrides[e]=new Bn(this.name,e,this.apiCall)),this.individualOverrides[e])}},{key:"synonyms",value:function(e){return void 0===e?this._synonyms:(void 0===this.individualSynonyms[e]&&(this.individualSynonyms[e]=new Mn(this.name,e,this.apiCall)),this.individualSynonyms[e])}},{key:"endpointPath",value:function(){return"".concat(Sn.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]),e}(),Jn="/aliases",Wn=function(){function e(t){o(this,e),this.apiCall=t}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(Jn));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH,"/").concat(encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return Jn}}]),e}(),Vn=function(){function e(t,n){o(this,e),this.name=t,this.apiCall=n}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(Wn.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]),e}(),Gn=n(612),Qn="/keys",$n=function(){function e(t){o(this,e),this.apiCall=t,this.apiCall=t}var t,n;return u(e,[{key:"create",value:(n=P(A().mark((function t(n){return A().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.apiCall.post(e.RESOURCEPATH,n));case 1:case"end":return t.stop()}}),t,this)}))),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(Qn));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"generateScopedSearchKey",value:function(e,t){var n=vn(t),r=JSON.stringify(n),o=Buffer.from((0,Gn.createHmac)("sha256",e).update(r).digest("base64")),i=e.substr(0,4),a="".concat(o).concat(i).concat(r);return Buffer.from(a).toString("base64")}}],[{key:"RESOURCEPATH",get:function(){return Qn}}]),e}(),Xn=function(){function e(t,n){o(this,e),this.id=t,this.apiCall=n}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat($n.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]),e}(),Yn=function(){function e(t){o(this,e),this.apiCall=t}var t;return u(e,[{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/debug"));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),Zn=function(){function e(t){o(this,e),this.apiCall=t}var t;return u(e,[{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/metrics.json"));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),er=function(){function e(t){o(this,e),this.apiCall=t}var t;return u(e,[{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/stats.json"));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),tr=function(){function e(t){o(this,e),this.apiCall=t}var t;return u(e,[{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get("/health"));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),nr=function(){function e(t){o(this,e),this.apiCall=t}var t;return u(e,[{key:"perform",value:(t=P(A().mark((function e(t){var n,r=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.length>1&&void 0!==r[1]?r[1]:{},e.abrupt("return",this.apiCall.post("".concat("/operations","/").concat(t),{},n));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),rr=["streamConfig"];function or(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ir(e){for(var t=1;t2&&void 0!==arguments[2]&&arguments[2];o(this,e),this.apiCall=t,this.configuration=n,this.useTextContentType=r,this.requestWithCache=new An}var t;return u(e,[{key:"clearCache",value:function(){this.requestWithCache.clearCache()}},{key:"perform",value:(t=P(A().mark((function e(t,n){var r,o,i,a,s,u,c,l=arguments;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(l.length>2&&void 0!==l[2]?l[2]:{}).cacheSearchResultsForSeconds,o=void 0===r?this.configuration.cacheSearchResultsForSeconds:r,i=n?ir({},n):{},!0===this.configuration.useServerSideSearchCache&&(i.use_cache=!0),a={union:t.union,searches:t.searches.map(vn)},s=i.streamConfig,u=xn(i,rr),c=vn(u),e.abrupt("return",this.requestWithCache.perform(this.apiCall,"post",{path:"/multi_search",body:a,queryParams:c,headers:this.useTextContentType?{"content-type":"text/plain"}:{},streamConfig:s,isStreamingRequest:this.isStreamingRequest(i)},{cacheResponseForSeconds:o}));case 7:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)})},{key:"isStreamingRequest",value:function(e){return void 0!==e.streamConfig}}]),e}(),sr=function(){function e(t){o(this,e),this.apiCall=t}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){var r,o;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("object"!==i(n.value)||!("searches"in n.value)){e.next=3;break}return r=n.value.searches.map((function(e){return vn(e)})),e.abrupt("return",this.apiCall.put(this.endpointPath(t),{value:{searches:r}}));case 3:return o=vn(n.value),e.abrupt("return",this.apiCall.put(this.endpointPath(t),{value:o}));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/presets"}}]),e}(),ur=function(){function e(t,n){o(this,e),this.presetId=t,this.apiCall=n}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(sr.RESOURCEPATH,"/").concat(encodeURIComponent(this.presetId))}}]),e}(),cr=function(){function e(t){o(this,e),this.apiCall=t,this.apiCall=t}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/rules"}}]),e}(),lr=function(){function e(t,n){o(this,e),this.name=t,this.apiCall=n}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(cr.RESOURCEPATH,"/").concat(encodeURIComponent(this.name))}}]),e}(),pr=function(){function e(t){o(this,e),this.apiCall=t,this.apiCall=t}var t;return u(e,[{key:"create",value:(t=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/analytics/events"}}]),e}(),hr=function(){function e(t){o(this,e),c(this,"individualAnalyticsRules",{}),this.apiCall=t,this.apiCall=t,this._analyticsRules=new cr(this.apiCall),this._analyticsEvents=new pr(this.apiCall)}return u(e,[{key:"rules",value:function(e){return void 0===e?this._analyticsRules:(void 0===this.individualAnalyticsRules[e]&&(this.individualAnalyticsRules[e]=new lr(e,this.apiCall)),this.individualAnalyticsRules[e])}},{key:"events",value:function(){return this._analyticsEvents}}],[{key:"RESOURCEPATH",get:function(){return"/analytics"}}]),e}(),fr=function(){function e(t){o(this,e),this.apiCall=t}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(t),n));case 1:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/stopwords"}}]),e}(),dr=function(){function e(t,n){o(this,e),this.stopwordId=t,this.apiCall=n}var t,n;return u(e,[{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(fr.RESOURCEPATH,"/").concat(encodeURIComponent(this.stopwordId))}}]),e}(),yr=function(){function e(t){o(this,e),this.apiCall=t,this.apiCall=t}var t,n;return u(e,[{key:"create",value:(n=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.post(this.endpointPath(),t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return"".concat(e.RESOURCEPATH).concat(void 0===t?"":"/"+encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/conversations/models"}}]),e}(),vr=function(){function e(t,n){o(this,e),this.id=t,this.apiCall=n}var t,n,r;return u(e,[{key:"update",value:(r=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"retrieve",value:(n=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(yr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]),e}(),mr="/conversations",gr=function(){function e(t){o(this,e),c(this,"individualConversationModels",{}),this.apiCall=t,this.apiCall=t,this._conversationsModels=new yr(this.apiCall)}var t;return u(e,[{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(mr));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"models",value:function(e){return void 0===e?this._conversationsModels:(void 0===this.individualConversationModels[e]&&(this.individualConversationModels[e]=new vr(e,this.apiCall)),this.individualConversationModels[e])}}],[{key:"RESOURCEPATH",get:function(){return mr}}]),e}(),br=function(){function e(t,n){o(this,e),this.id=t,this.apiCall=n}var t,n,r;return u(e,[{key:"retrieve",value:(r=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"update",value:(n=P(A().mark((function e(t){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.put(this.endpointPath(),t));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return n.apply(this,arguments)})},{key:"delete",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.delete(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(gr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]),e}(),wr=function(){function e(t){o(this,e),this.apiCall=t,this.apiCall=t}var t,n;return u(e,[{key:"upsert",value:(n=P(A().mark((function e(t,n){var r,o;return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=Array.isArray(n)?n.map((function(e){return JSON.stringify(e)})).join("\n"):n,e.next=3,this.apiCall.performRequest("post",this.endpointPath("import"),{queryParameters:{id:t},bodyParameters:r,additionalHeaders:{"Content-Type":"text/plain"},skipConnectionTimeout:!0});case 3:return o=e.sent,e.abrupt("return",Array.isArray(n)?o.split("\n").map((function(e){return JSON.parse(e)})):o);case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)})},{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(t){return void 0===t?"".concat(e.RESOURCEPATH):"".concat(e.RESOURCEPATH,"/").concat(encodeURIComponent(t))}}],[{key:"RESOURCEPATH",get:function(){return"/stemming/dictionaries"}}]),e}(),kr=function(){function e(t,n){o(this,e),this.id=t,this.apiCall=n}var t;return u(e,[{key:"retrieve",value:(t=P(A().mark((function e(){return A().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.apiCall.get(this.endpointPath()));case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"endpointPath",value:function(){return"".concat(wr.RESOURCEPATH,"/").concat(encodeURIComponent(this.id))}}]),e}(),Cr=function(){function e(t){o(this,e),c(this,"individualStemmingDictionaries",{}),this.apiCall=t,this.apiCall=t,this._stemmingDictionaries=new wr(this.apiCall)}return u(e,[{key:"dictionaries",value:function(e){return void 0===e?this._stemmingDictionaries:(void 0===this.individualStemmingDictionaries[e]&&(this.individualStemmingDictionaries[e]=new kr(e,this.apiCall)),this.individualStemmingDictionaries[e])}}],[{key:"RESOURCEPATH",get:function(){return"/stemming"}}]),e}(),Rr=function(){function e(t){var n;o(this,e),t.sendApiKeyAsQueryParam=null!==(n=t.sendApiKeyAsQueryParam)&&void 0!==n&&n,this.configuration=new O(t),this.apiCall=new Cn(this.configuration),this.debug=new Yn(this.apiCall),this.metrics=new Zn(this.apiCall),this.stats=new er(this.apiCall),this.health=new tr(this.apiCall),this.operations=new nr(this.apiCall),this.multiSearch=new ar(this.apiCall,this.configuration),this._collections=new Sn(this.apiCall),this.individualCollections={},this._aliases=new Wn(this.apiCall),this.individualAliases={},this._keys=new $n(this.apiCall),this.individualKeys={},this._presets=new sr(this.apiCall),this.individualPresets={},this._stopwords=new fr(this.apiCall),this.individualStopwords={},this.analytics=new hr(this.apiCall),this.stemming=new Cr(this.apiCall),this._conversations=new gr(this.apiCall),this.individualConversations={}}return u(e,[{key:"collections",value:function(e){return void 0===e?this._collections:(void 0===this.individualCollections[e]&&(this.individualCollections[e]=new zn(e,this.apiCall,this.configuration)),this.individualCollections[e])}},{key:"aliases",value:function(e){return void 0===e?this._aliases:(void 0===this.individualAliases[e]&&(this.individualAliases[e]=new Vn(e,this.apiCall)),this.individualAliases[e])}},{key:"keys",value:function(e){return void 0===e?this._keys:(void 0===this.individualKeys[e]&&(this.individualKeys[e]=new Xn(e,this.apiCall)),this.individualKeys[e])}},{key:"presets",value:function(e){return void 0===e?this._presets:(void 0===this.individualPresets[e]&&(this.individualPresets[e]=new ur(e,this.apiCall)),this.individualPresets[e])}},{key:"stopwords",value:function(e){return void 0===e?this._stopwords:(void 0===this.individualStopwords[e]&&(this.individualStopwords[e]=new dr(e,this.apiCall)),this.individualStopwords[e])}},{key:"conversations",value:function(e){return void 0===e?this._conversations:(void 0===this.individualConversations[e]&&(this.individualConversations[e]=new br(e,this.apiCall)),this.individualConversations[e])}}]),e}();function Sr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n2e3&&(console.warn("[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter."),t.sendApiKeyAsQueryParam=!1),this.configuration=new O(t),this.apiCall=new Cn(this.configuration),this.multiSearch=new ar(this.apiCall,this.configuration,!0),this.individualCollections={}}return u(e,[{key:"clearCache",value:function(){this.multiSearch.clearCache(),Object.entries(this.individualCollections).forEach((function(e){var t,n,r=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],u=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return Sr(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Sr(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());r[0],r[1].documents().clearCache()}))}},{key:"collections",value:function(e){if(e)return void 0===this.individualCollections[e]&&(this.individualCollections[e]=new Or(e,this.apiCall,this.configuration)),this.individualCollections[e];throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to be searched must be specified. Use Typesense.Client if you need to access the collection object.")}}]),e}();const Pr={Client:Rr,SearchClient:Er,Errors:t}})(),Typesense=r})(); -//# sourceMappingURL=typesense.min.js.map \ No newline at end of file diff --git a/dist/typesense.min.js.LICENSE.txt b/dist/typesense.min.js.LICENSE.txt deleted file mode 100644 index ae386fb7..00000000 --- a/dist/typesense.min.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ diff --git a/dist/typesense.min.js.map b/dist/typesense.min.js.map deleted file mode 100644 index d3fe3748..00000000 --- a/dist/typesense.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"typesense.min.js","mappings":"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","sources":["webpack://Typesense/./node_modules/loglevel/lib/loglevel.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/regenerator/index.js","webpack://Typesense/webpack/bootstrap","webpack://Typesense/webpack/runtime/compat get default export","webpack://Typesense/webpack/runtime/define property getters","webpack://Typesense/webpack/runtime/hasOwnProperty shorthand","webpack://Typesense/webpack/runtime/make namespace object","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Typesense/./src/Typesense/Errors/TypesenseError.ts","webpack://Typesense/./src/Typesense/Errors/MissingConfigurationError.ts","webpack://Typesense/./src/Typesense/Configuration.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://Typesense/./node_modules/axios/lib/helpers/bind.js","webpack://Typesense/./node_modules/axios/lib/utils.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosError.js","webpack://Typesense/./node_modules/axios/lib/helpers/toFormData.js","webpack://Typesense/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/helpers/buildURL.js","webpack://Typesense/./node_modules/axios/lib/core/InterceptorManager.js","webpack://Typesense/./node_modules/axios/lib/defaults/transitional.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/index.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://Typesense/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://Typesense/./node_modules/axios/lib/platform/common/utils.js","webpack://Typesense/./node_modules/axios/lib/platform/index.js","webpack://Typesense/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://Typesense/./node_modules/axios/lib/defaults/index.js","webpack://Typesense/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://Typesense/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://Typesense/./node_modules/axios/lib/core/transformData.js","webpack://Typesense/./node_modules/axios/lib/cancel/isCancel.js","webpack://Typesense/./node_modules/axios/lib/cancel/CanceledError.js","webpack://Typesense/./node_modules/axios/lib/core/settle.js","webpack://Typesense/./node_modules/axios/lib/helpers/speedometer.js","webpack://Typesense/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://Typesense/./node_modules/axios/lib/helpers/throttle.js","webpack://Typesense/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://Typesense/./node_modules/axios/lib/helpers/cookies.js","webpack://Typesense/./node_modules/axios/lib/core/buildFullPath.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://Typesense/./node_modules/axios/lib/helpers/combineURLs.js","webpack://Typesense/./node_modules/axios/lib/core/mergeConfig.js","webpack://Typesense/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://Typesense/./node_modules/axios/lib/adapters/xhr.js","webpack://Typesense/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://Typesense/./node_modules/axios/lib/helpers/composeSignals.js","webpack://Typesense/./node_modules/axios/lib/helpers/trackStream.js","webpack://Typesense/./node_modules/axios/lib/adapters/fetch.js","webpack://Typesense/./node_modules/axios/lib/adapters/adapters.js","webpack://Typesense/./node_modules/axios/lib/helpers/null.js","webpack://Typesense/./node_modules/axios/lib/core/dispatchRequest.js","webpack://Typesense/./node_modules/axios/lib/env/data.js","webpack://Typesense/./node_modules/axios/lib/helpers/validator.js","webpack://Typesense/./node_modules/axios/lib/core/Axios.js","webpack://Typesense/./node_modules/axios/lib/cancel/CancelToken.js","webpack://Typesense/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://Typesense/./node_modules/axios/lib/axios.js","webpack://Typesense/./node_modules/axios/lib/helpers/spread.js","webpack://Typesense/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://Typesense/./src/Typesense/Errors/RequestMalformed.ts","webpack://Typesense/./src/Typesense/Errors/RequestUnauthorized.ts","webpack://Typesense/./src/Typesense/Errors/ObjectNotFound.ts","webpack://Typesense/./src/Typesense/Errors/ObjectAlreadyExists.ts","webpack://Typesense/./src/Typesense/Errors/ObjectUnprocessable.ts","webpack://Typesense/./src/Typesense/Errors/ServerError.ts","webpack://Typesense/./src/Typesense/Errors/HTTPError.ts","webpack://Typesense/./src/Typesense/Types.ts","webpack://Typesense/./src/Typesense/Utils.ts","webpack://Typesense/./src/Typesense/ApiCall.ts","webpack://Typesense/./src/Typesense/Collections.ts","webpack://Typesense/./src/Typesense/Errors/ImportError.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://Typesense/./src/Typesense/RequestWithCache.ts","webpack://Typesense/./src/Typesense/SearchOnlyDocuments.ts","webpack://Typesense/./src/Typesense/Documents.ts","webpack://Typesense/./src/Typesense/Overrides.ts","webpack://Typesense/./src/Typesense/Override.ts","webpack://Typesense/./src/Typesense/Synonyms.ts","webpack://Typesense/./src/Typesense/Synonym.ts","webpack://Typesense/./src/Typesense/Document.ts","webpack://Typesense/./src/Typesense/Collection.ts","webpack://Typesense/./src/Typesense/Aliases.ts","webpack://Typesense/./src/Typesense/Alias.ts","webpack://Typesense/./src/Typesense/Keys.ts","webpack://Typesense/./src/Typesense/Key.ts","webpack://Typesense/./src/Typesense/Debug.ts","webpack://Typesense/./src/Typesense/Metrics.ts","webpack://Typesense/./src/Typesense/Stats.ts","webpack://Typesense/./src/Typesense/Health.ts","webpack://Typesense/./src/Typesense/Operations.ts","webpack://Typesense/./src/Typesense/MultiSearch.ts","webpack://Typesense/./src/Typesense/Presets.ts","webpack://Typesense/./src/Typesense/Preset.ts","webpack://Typesense/./src/Typesense/AnalyticsRules.ts","webpack://Typesense/./src/Typesense/AnalyticsRule.ts","webpack://Typesense/./src/Typesense/AnalyticsEvents.ts","webpack://Typesense/./src/Typesense/Analytics.ts","webpack://Typesense/./src/Typesense/Stopwords.ts","webpack://Typesense/./src/Typesense/Stopword.ts","webpack://Typesense/./src/Typesense/ConversationModels.ts","webpack://Typesense/./src/Typesense/ConversationModel.ts","webpack://Typesense/./src/Typesense/Conversations.ts","webpack://Typesense/./src/Typesense/Conversation.ts","webpack://Typesense/./src/Typesense/StemmingDictionaries.ts","webpack://Typesense/./src/Typesense/StemmingDictionary.ts","webpack://Typesense/./src/Typesense/Stemming.ts","webpack://Typesense/./src/Typesense/Client.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Typesense/./src/Typesense/SearchOnlyCollection.ts","webpack://Typesense/./src/Typesense/SearchClient.ts","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Typesense/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://Typesense/./src/Typesense.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n var _loggersByName = {};\n var defaultLogger = null;\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods() {\n /*jshint validthis:true */\n var level = this.getLevel();\n\n // Replace the actual methods.\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, this.name);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n\n // Return any important warnings.\n if (typeof console === undefinedType && level < this.levels.SILENT) {\n return \"No console available for logging\";\n }\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, _level, _loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, factory) {\n // Private instance variables.\n var self = this;\n /**\n * The level inherited from a parent logger (or a global default). We\n * cache this here rather than delegating to the parent so that it stays\n * in sync with the actual logging methods that we have installed (the\n * parent could change levels but we might not have rebuilt the loggers\n * in this child yet).\n * @type {number}\n */\n var inheritedLevel;\n /**\n * The default level for this logger, if any. If set, this overrides\n * `inheritedLevel`.\n * @type {number|null}\n */\n var defaultLevel;\n /**\n * A user-specific level for this logger. If set, this overrides\n * `defaultLevel`.\n * @type {number|null}\n */\n var userLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var cookieName = encodeURIComponent(storageKey);\n var location = cookie.indexOf(cookieName + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(\n cookie.slice(location + cookieName.length + 1)\n )[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n function normalizeLevel(input) {\n var level = input;\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n return level;\n } else {\n throw new TypeError(\"log.setLevel() called with invalid level: \" + input);\n }\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n if (userLevel != null) {\n return userLevel;\n } else if (defaultLevel != null) {\n return defaultLevel;\n } else {\n return inheritedLevel;\n }\n };\n\n self.setLevel = function (level, persist) {\n userLevel = normalizeLevel(level);\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(userLevel);\n }\n\n // NOTE: in v2, this should call rebuild(), which updates children.\n return replaceLoggingMethods.call(self);\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = normalizeLevel(level);\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n userLevel = null;\n clearPersistedLevel();\n replaceLoggingMethods.call(self);\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n self.rebuild = function () {\n if (defaultLogger !== self) {\n inheritedLevel = normalizeLevel(defaultLogger.getLevel());\n }\n replaceLoggingMethods.call(self);\n\n if (defaultLogger === self) {\n for (var childName in _loggersByName) {\n _loggersByName[childName].rebuild();\n }\n }\n };\n\n // Initialize all the internal levels.\n inheritedLevel = normalizeLevel(\n defaultLogger ? defaultLogger.getLevel() : \"WARN\"\n );\n var initialLevel = getPersistedLevel();\n if (initialLevel != null) {\n userLevel = normalizeLevel(initialLevel);\n }\n replaceLoggingMethods.call(self);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n defaultLogger = new Logger();\n\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name,\n defaultLogger.methodFactory\n );\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","export default class TypesenseError extends Error {\n httpStatus?: number;\n httpBody?: string;\n\n // Source: https://stackoverflow.com/a/58417721/123545\n constructor(message?: string, httpBody?: string, httpStatus?: number) {\n super(message);\n this.name = new.target.name;\n this.httpBody = httpBody;\n this.httpStatus = httpStatus;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class MissingConfigurationError extends TypesenseError {}\n","import * as logger from \"loglevel\";\nimport { Logger, LogLevelDesc } from \"loglevel\";\nimport { MissingConfigurationError } from \"./Errors\";\nimport type { Agent as HTTPAgent } from \"http\";\nimport type { Agent as HTTPSAgent } from \"https\";\nimport type { AxiosRequestConfig } from \"axios\";\nimport { DocumentSchema, SearchResponse } from \"./Documents\";\n\nexport interface NodeConfiguration {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n url?: string;\n}\n\nexport interface NodeConfigurationWithHostname {\n host: string;\n port: number;\n protocol: string;\n path?: string;\n}\n\nexport interface NodeConfigurationWithUrl {\n url: string;\n}\n\nexport interface ConfigurationOptions {\n apiKey: string;\n nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n randomizeNodes?: boolean;\n /**\n * @deprecated\n * masterNode is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n masterNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n /**\n * @deprecated\n * readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12'\n */\n readReplicaNodes?:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n connectionTimeoutSeconds?: number;\n timeoutSeconds?: number;\n healthcheckIntervalSeconds?: number;\n numRetries?: number;\n retryIntervalSeconds?: number;\n sendApiKeyAsQueryParam?: boolean | undefined;\n useServerSideSearchCache?: boolean;\n cacheSearchResultsForSeconds?: number;\n additionalHeaders?: Record;\n\n logLevel?: LogLevelDesc;\n logger?: Logger;\n\n /**\n * Set a custom HTTP Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPAgent } = require(\"http\");\n * ...\n * httpAgent: new HTTPAgent({ keepAlive: true }),\n * @type {HTTPAgent}\n */\n httpAgent?: HTTPAgent;\n\n /**\n * Set a custom HTTPS Agent\n *\n * This is helpful for eg, to enable keepAlive which helps prevents ECONNRESET socket hang up errors\n * Usage:\n * const { Agent: HTTPSAgent } = require(\"https\");\n * ...\n * httpsAgent: new HTTPSAgent({ keepAlive: true }),\n * @type {HTTPSAgent}\n */\n httpsAgent?: HTTPSAgent;\n\n /**\n * Set a custom paramsSerializer\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n * This is helpful for handling React Native issues like this: https://github.com/axios/axios/issues/6102#issuecomment-2085301397\n * @type {any}\n */\n paramsSerializer?: any;\n\n /**\n * Set a custom axios adapter\n *\n * Useful for customizing the underlying HTTP client library used by Typesense.\n *\n * For example, you can use this to use a custom HTTP client library like `fetch`, in order for the library to work on the edge.\n * Related GiHub issue: https://github.com/typesense/typesense-js/issues/161\n *\n * See axios documentation for more information on how to use this parameter: https://axios-http.com/docs/req_config\n */\n axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n}\n\n/**\n * Configuration options for streaming responses\n */\nexport interface BaseStreamConfig {\n /**\n * Callback function that will be called for each chunk of data received\n * during streaming\n */\n onChunk?: (data: { conversation_id: string; message: string }) => void;\n /**\n * Callback function that will be called if there is an error during streaming\n */\n onError?: (error: Error) => void;\n}\n\n/**\n * Stream configuration for standard search responses\n * For specialized responses like MultiSearch, extend BaseStreamConfig with the appropriate onComplete signature\n */\nexport interface StreamConfig\n extends BaseStreamConfig {\n /**\n * Callback function that will be called when the streaming is complete\n */\n onComplete?: (data: SearchResponse) => void;\n}\n\nexport default class Configuration {\n readonly nodes:\n | NodeConfiguration[]\n | NodeConfigurationWithHostname[]\n | NodeConfigurationWithUrl[];\n readonly nearestNode?:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl;\n readonly connectionTimeoutSeconds: number;\n readonly healthcheckIntervalSeconds: number;\n readonly numRetries: number;\n readonly retryIntervalSeconds: number;\n readonly apiKey: string;\n readonly sendApiKeyAsQueryParam?: boolean;\n readonly cacheSearchResultsForSeconds: number;\n readonly useServerSideSearchCache: boolean;\n readonly logger: Logger;\n readonly logLevel: LogLevelDesc;\n readonly additionalHeaders?: Record;\n readonly httpAgent?: HTTPAgent;\n readonly httpsAgent?: HTTPSAgent;\n readonly paramsSerializer?: any;\n readonly axiosAdapter?: AxiosRequestConfig[\"adapter\"];\n\n constructor(options: ConfigurationOptions) {\n this.nodes = options.nodes || [];\n this.nodes = this.nodes\n .map((node) => this.setDefaultPathInNode(node))\n .map((node) => this.setDefaultPortInNode(node))\n .map((node) => ({ ...node })) as NodeConfiguration[]; // Make a deep copy\n\n if (options.randomizeNodes == null) {\n options.randomizeNodes = true;\n }\n\n if (options.randomizeNodes === true) {\n this.shuffleArray(this.nodes);\n }\n\n this.nearestNode = options.nearestNode;\n this.nearestNode = this.setDefaultPathInNode(this.nearestNode);\n this.nearestNode = this.setDefaultPortInNode(this.nearestNode);\n\n this.connectionTimeoutSeconds =\n options.connectionTimeoutSeconds || options.timeoutSeconds || 5;\n this.healthcheckIntervalSeconds = options.healthcheckIntervalSeconds || 60;\n this.numRetries =\n (options.numRetries !== undefined && options.numRetries >= 0\n ? options.numRetries\n : this.nodes.length + (this.nearestNode == null ? 0 : 1)) || 3;\n this.retryIntervalSeconds = options.retryIntervalSeconds || 0.1;\n\n this.apiKey = options.apiKey;\n this.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam; // We will set a default for this in Client and SearchClient\n\n this.cacheSearchResultsForSeconds =\n options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default\n this.useServerSideSearchCache = options.useServerSideSearchCache || false;\n\n this.axiosAdapter = options.axiosAdapter;\n this.logger = options.logger || logger;\n this.logLevel = options.logLevel || \"warn\";\n this.logger.setLevel(this.logLevel);\n\n this.additionalHeaders = options.additionalHeaders;\n\n this.httpAgent = options.httpAgent;\n this.httpsAgent = options.httpsAgent;\n\n this.paramsSerializer = options.paramsSerializer;\n\n this.showDeprecationWarnings(options);\n this.validate();\n }\n\n validate(): boolean {\n if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) {\n throw new MissingConfigurationError(\n \"Ensure that nodes[].protocol, nodes[].host and nodes[].port are set\",\n );\n }\n\n if (\n this.nearestNode != null &&\n this.isNodeMissingAnyParameters(this.nearestNode)\n ) {\n throw new MissingConfigurationError(\n \"Ensure that nearestNodes.protocol, nearestNodes.host and nearestNodes.port are set\",\n );\n }\n\n if (this.apiKey == null) {\n throw new MissingConfigurationError(\"Ensure that apiKey is set\");\n }\n\n return true;\n }\n\n private validateNodes(): boolean {\n return this.nodes.some((node) => {\n return this.isNodeMissingAnyParameters(node);\n });\n }\n\n private isNodeMissingAnyParameters(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl,\n ): boolean {\n return (\n ![\"protocol\", \"host\", \"port\", \"path\"].every((key) => {\n return node.hasOwnProperty(key);\n }) && node[\"url\"] == null\n );\n }\n\n private setDefaultPathInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (node != null && !node.hasOwnProperty(\"path\")) {\n node[\"path\"] = \"\";\n }\n return node;\n }\n\n private setDefaultPortInNode(\n node:\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined,\n ):\n | NodeConfiguration\n | NodeConfigurationWithHostname\n | NodeConfigurationWithUrl\n | undefined {\n if (\n node != null &&\n !node.hasOwnProperty(\"port\") &&\n node.hasOwnProperty(\"protocol\")\n ) {\n switch (node[\"protocol\"]) {\n case \"https\":\n node[\"port\"] = 443;\n break;\n case \"http\":\n node[\"port\"] = 80;\n break;\n }\n }\n return node;\n }\n\n private showDeprecationWarnings(options: ConfigurationOptions): void {\n if (options.timeoutSeconds) {\n this.logger.warn(\n \"Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds\",\n );\n }\n if (options.masterNode) {\n this.logger.warn(\n \"Deprecation warning: masterNode is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n if (options.readReplicaNodes) {\n this.logger.warn(\n \"Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12\",\n );\n }\n }\n\n private shuffleArray(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n }\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.8.4\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestMalformed extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class RequestUnauthorized extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectNotFound extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectAlreadyExists extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ObjectUnprocessable extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class ServerError extends TypesenseError {}\n","import TypesenseError from \"./TypesenseError\";\n\nexport default class HTTPError extends TypesenseError {}\n","import type { AxiosRequestConfig } from \"axios\";\nimport type { BaseStreamConfig, StreamConfig } from \"./Configuration\";\nimport type {\n DocumentSchema,\n SearchParamsWithPreset,\n SearchOptions,\n SearchResponse,\n DocumentWriteParameters,\n DeleteQuery,\n DeleteResponse,\n ImportResponse,\n DocumentsExportParameters,\n} from \"./Documents\";\n\nexport type DropTokensMode = \"right_to_left\" | \"left_to_right\" | \"both_sides:3\";\n\nexport type OperationMode = \"off\" | \"always\" | \"fallback\";\n\nexport type CommaSeparated<\n T extends string,\n ToExtend,\n OriginalString extends string = T,\n Previous extends string[] = [],\n> = T extends `${infer Start},${infer Rest}`\n ? TrimString extends ToExtend\n ? CommaSeparated<\n Rest,\n ToExtend,\n OriginalString,\n [...Previous, TrimString]\n >\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n }\n : TrimString extends ToExtend\n ? OriginalString\n : {\n error: \"Invalid operation mode\";\n value: TrimString;\n };\n\nexport type MessageChunk = {\n message: string;\n conversation_id: string;\n};\n\nexport type UnionArrayKeys = {\n [K in keyof T]: T[K] extends undefined\n ? never\n : NonNullable extends infer R\n ? R extends R[]\n ? never\n : R extends (infer U)[] | infer U\n ? U[] extends R\n ? K\n : never\n : never\n : never;\n}[keyof T] &\n keyof T;\n\nexport type UnionArraySearchParams =\n UnionArrayKeys;\n\nexport type ArraybleParams = {\n readonly [K in UnionArraySearchParams]: string;\n};\n\nexport type ExtractBaseTypes = {\n [K in keyof T]: K extends UnionArrayKeys\n ? T[K] extends (infer U)[] | infer U\n ? U\n : T[K]\n : T[K];\n};\n\nexport const arrayableParams: ArraybleParams = {\n query_by: \"query_by\",\n query_by_weights: \"query_by_weights\",\n facet_by: \"facet_by\",\n group_by: \"group_by\",\n include_fields: \"include_fields\",\n exclude_fields: \"exclude_fields\",\n highlight_fields: \"highlight_fields\",\n highlight_full_fields: \"highlight_full_fields\",\n pinned_hits: \"pinned_hits\",\n hidden_hits: \"hidden_hits\",\n infix: \"infix\",\n override_tags: \"override_tags\",\n num_typos: \"num_typos\",\n prefix: \"prefix\",\n sort_by: \"sort_by\",\n};\n\nexport interface SearchParams<\n TDoc extends DocumentSchema,\n Infix extends string,\n> {\n // From https://typesense.org/docs/latest/api/documents.html#arguments\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n q?: \"*\" | (string & {});\n query_by?: string | string[];\n query_by_weights?: string | number[];\n prefix?: string | boolean | boolean[]; // default: true\n filter_by?: string;\n max_filter_by_candidates?: number; // default: 4\n enable_synonyms?: boolean; // default: true\n enable_analytics?: boolean; // default: true\n filter_curated_hits?: boolean; // default: false\n enable_lazy_filter?: boolean; // default: false\n sort_by?: string | string[]; // default: text match desc\n facet_by?: string | string[];\n max_facet_values?: number;\n facet_sample_threshold?: number;\n facet_sample_percent?: number;\n facet_query?: string;\n facet_query_num_typos?: number;\n facet_return_parent?: string;\n facet_strategy?: \"exhaustive\" | \"top_values\" | \"automatic\";\n page?: number; // default: 1\n per_page?: number; // default: 10, max 250\n group_by?: string | string[];\n group_limit?: number; // default:\n group_missing_values?: boolean;\n include_fields?: string | string[];\n exclude_fields?: string | string[];\n highlight_fields?: string | string[]; // default: all queried fields\n highlight_full_fields?: string | string[]; // default: all fields\n highlight_affix_num_tokens?: number; // default: 4\n highlight_start_tag?: string; // default: \n highlight_end_tag?: string; // default: \n enable_highlight_v1?: boolean;\n snippet_threshold?: number; // default: 30\n num_typos?: string | number | number[]; // default: 2\n min_len_1typo?: number;\n min_len_2typo?: number;\n split_join_tokens?: OperationMode;\n exhaustive_search?: boolean;\n drop_tokens_threshold?: number; // default: 10\n drop_tokens_mode?: DropTokensMode;\n typo_tokens_threshold?: number; // default: 100\n pinned_hits?: string | string[];\n hidden_hits?: string | string[];\n limit_hits?: number; // default: no limit\n pre_segmented_query?: boolean;\n enable_overrides?: boolean;\n override_tags?: string | string[];\n prioritize_exact_match?: boolean; // default: true\n prioritize_token_position?: boolean;\n prioritize_num_matching_fields?: boolean;\n search_cutoff_ms?: number;\n use_cache?: boolean;\n max_candidates?: number;\n infix?:\n | CommaSeparated\n | OperationMode[]\n | OperationMode;\n preset?: string;\n text_match_type?: \"max_score\" | \"max_weight\";\n vector_query?: string;\n \"x-typesense-api-key\"?: string;\n \"x-typesense-user-id\"?: string;\n offset?: number;\n limit?: number;\n stopwords?: string;\n conversation?: boolean;\n conversation_stream?: boolean;\n conversation_model_id?: string;\n conversation_id?: string;\n voice_query?: string;\n streamConfig?: StreamConfig;\n}\n\nexport interface SearchResponseRequestParams {\n collection_name?: string;\n q?: string;\n page?: number;\n per_page?: number;\n first_q?: string;\n voice_query?: {\n transcribed_query?: string;\n };\n}\n\nexport interface SearchableDocuments<\n T extends DocumentSchema = DocumentSchema,\n Infix extends string = string,\n> {\n search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n options: SearchOptions,\n ): Promise>;\n clearCache(): void;\n}\n\nexport interface WriteableDocuments {\n create(document: T, options: DocumentWriteParameters): Promise;\n upsert(document: T, options: DocumentWriteParameters): Promise;\n update(document: T, options: DocumentWriteParameters): Promise;\n delete(query: DeleteQuery): Promise;\n import(\n documents: T[] | string,\n options: DocumentWriteParameters,\n ): Promise;\n export(options: DocumentsExportParameters): Promise;\n}\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\nexport interface RequestParams {\n path: string;\n queryParams?: Record;\n body?: unknown;\n headers?: Record;\n streamConfig?:\n | StreamConfig\n | MultiSearchResultsStreamConfig\n | MultiSearchUnionStreamConfig;\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n isStreamingRequest: boolean | undefined;\n}\n\nexport interface MultiSearchRequestsWithUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union: true;\n}\n\nexport interface MultiSearchRequestsWithoutUnionSchema<\n T extends DocumentSchema,\n Infix extends string,\n> extends SearchesMultiSearchesRequestSchema {\n union?: false | undefined;\n}\n\nexport type MultiSearchRequestsSchema<\n T extends DocumentSchema,\n Infix extends string,\n> =\n | MultiSearchRequestsWithUnionSchema\n | MultiSearchRequestsWithoutUnionSchema;\n\nexport interface UnionSearchResponse\n extends Omit, \"request_params\"> {\n union_request_params: SearchResponseRequestParams[];\n}\n\nexport type MultiSearchResponse<\n T extends DocumentSchema[],\n Infix extends string,\n R extends MultiSearchRequestsSchema<\n T[number],\n Infix\n > = MultiSearchRequestsSchema,\n> =\n R extends MultiSearchRequestsWithUnionSchema\n ? UnionSearchResponse\n : {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n };\n\nexport interface MultiSearchUnionStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: UnionSearchResponse) => void;\n}\n\nexport interface MultiSearchResultsStreamConfig\n extends BaseStreamConfig {\n onComplete?: (data: {\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }) => void;\n}\n\ninterface SearchesMultiSearchesRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n searches: (\n | MultiSearchRequestSchema\n | MultiSearchRequestWithPresetSchema\n )[];\n}\n\ninterface BaseMultiSearchRequestSchema {\n collection?: string;\n rerank_hybrid_matches?: boolean;\n \"x-typesense-api-key\"?: string;\n}\n\ntype CommonMultiSearchParametersBase<\n T extends DocumentSchema,\n Infix extends string,\n> = Partial<\n BaseMultiSearchRequestSchema & Omit, \"streamConfig\">\n>;\n\nexport type MultiSearchRequestSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema & Omit, \"streamConfig\">;\n\nexport type MultiSearchRequestWithPresetSchema<\n T extends DocumentSchema,\n Infix extends string,\n> = BaseMultiSearchRequestSchema &\n Omit, \"streamConfig\">;\n\nexport type MultiSearchUnionParameters<\n T extends DocumentSchema,\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchUnionStreamConfig;\n use_cache?: boolean;\n};\n\nexport type MultiSearchResultsParameters<\n T extends DocumentSchema[],\n Infix extends string,\n> = CommonMultiSearchParametersBase & {\n streamConfig?: MultiSearchResultsStreamConfig;\n use_cache?: boolean;\n};\n\ntype Whitespace = \" \" | \"\\n\" | \"\\t\";\n\ntype TrimString = S extends `${Whitespace}${infer S}`\n ? TrimString\n : S extends `${infer S}${Whitespace}`\n ? TrimString\n : S;\n","import { DocumentSchema } from \"./Documents\";\nimport { arrayableParams } from \"./Types\";\nimport type { UnionArrayKeys, ExtractBaseTypes, SearchParams } from \"./Types\";\n\nfunction hasNoArrayValues<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T | ExtractBaseTypes): params is ExtractBaseTypes {\n return Object.keys(arrayableParams)\n .filter((key) => params[key] !== undefined)\n .every((key) => isNonArrayValue(params[key]));\n}\n\nexport function normalizeArrayableParams<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n>(params: T): Prettify> {\n const result = { ...params };\n\n const transformedValues = Object.keys(arrayableParams)\n .filter((key) => Array.isArray(result[key]))\n .map((key) => {\n result[key] = result[key].join(\",\");\n return key;\n });\n\n if (!transformedValues.length && hasNoArrayValues(result)) {\n return result;\n }\n\n if (!hasNoArrayValues(result)) {\n throw new Error(\n `Failed to normalize arrayable params: ${JSON.stringify(result)}`,\n );\n }\n\n return result;\n}\n\nfunction isNonArrayValue<\n TDoc extends DocumentSchema,\n T extends SearchParams,\n const Infix extends string,\n K extends UnionArrayKeys,\n>(value: T[K] | ExtractBaseTypes[K]): value is ExtractBaseTypes[K] {\n return !Array.isArray(value);\n}\n\ntype Prettify = {\n [K in keyof T]: T[K];\n // eslint-disable-next-line @typescript-eslint/ban-types\n} & {};\n\ninterface ErrorWithMessage extends Error {\n message: string;\n}\n\nfunction isErrorWithMessage(error: unknown): error is ErrorWithMessage {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof (error as Record).message === \"string\"\n );\n}\n\nexport function toErrorWithMessage(couldBeError: unknown): ErrorWithMessage {\n if (isErrorWithMessage(couldBeError)) return couldBeError;\n\n try {\n if (typeof couldBeError === \"string\") {\n return new Error(couldBeError);\n }\n return new Error(JSON.stringify(couldBeError));\n } catch {\n return new Error(String(couldBeError));\n }\n}\n","import type {\n AxiosAdapter,\n AxiosRequestConfig,\n AxiosResponse,\n Method,\n} from \"axios\";\nimport axios from \"axios\";\nimport { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { Logger } from \"loglevel\";\nimport Configuration from \"./Configuration\";\nimport type { NodeConfiguration, StreamConfig } from \"./Configuration\";\nimport {\n HTTPError,\n ObjectAlreadyExists,\n ObjectNotFound,\n ObjectUnprocessable,\n RequestMalformed,\n RequestUnauthorized,\n ServerError,\n} from \"./Errors\";\nimport TypesenseError from \"./Errors/TypesenseError\";\nimport type { DocumentSchema, SearchResponse } from \"./Documents\";\nimport { toErrorWithMessage } from \"./Utils\";\nimport { MessageChunk } from \"./Types\";\n\nconst APIKEYHEADERNAME = \"X-TYPESENSE-API-KEY\";\nconst HEALTHY = true;\nconst UNHEALTHY = false;\n\ninterface Node extends NodeConfiguration {\n isHealthy: boolean;\n index: string | number;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null &&\n typeof window === \"undefined\";\n\nexport interface HttpClient {\n get(\n endpoint: string,\n queryParameters: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n delete(\n endpoint: string,\n queryParameters: Record,\n ): Promise;\n post(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n additionalHeaders: Record,\n {\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise;\n put(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n patch(\n endpoint: string,\n bodyParameters: unknown,\n queryParameters: Record,\n ): Promise;\n}\n\nexport default class ApiCall implements HttpClient {\n private readonly apiKey: string;\n private readonly nodes: Node[];\n private readonly nearestNode: Node;\n private readonly connectionTimeoutSeconds: number;\n private readonly healthcheckIntervalSeconds: number;\n private readonly retryIntervalSeconds: number;\n private readonly sendApiKeyAsQueryParam?: boolean;\n private readonly numRetriesPerRequest: number;\n private readonly additionalUserHeaders?: Record;\n\n private readonly logger: Logger;\n private currentNodeIndex: number;\n\n constructor(private configuration: Configuration) {\n this.apiKey = this.configuration.apiKey;\n this.nodes =\n this.configuration.nodes == null\n ? this.configuration.nodes\n : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes\n this.nearestNode =\n this.configuration.nearestNode == null\n ? this.configuration.nearestNode\n : JSON.parse(JSON.stringify(this.configuration.nearestNode));\n this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds;\n this.healthcheckIntervalSeconds =\n this.configuration.healthcheckIntervalSeconds;\n this.numRetriesPerRequest = this.configuration.numRetries;\n this.retryIntervalSeconds = this.configuration.retryIntervalSeconds;\n this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam;\n this.additionalUserHeaders = this.configuration.additionalHeaders;\n\n this.logger = this.configuration.logger;\n\n this.initializeMetadataForNodes();\n this.currentNodeIndex = -1;\n }\n\n async get(\n endpoint: string,\n queryParameters: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"get\", endpoint, {\n queryParameters,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async delete(endpoint: string, queryParameters: any = {}): Promise {\n return this.performRequest(\"delete\", endpoint, {\n queryParameters,\n isStreamingRequest: false,\n });\n }\n\n async post(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n additionalHeaders: any = {},\n {\n abortSignal = null,\n responseType = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n } = {},\n ): Promise {\n return this.performRequest(\"post\", endpoint, {\n queryParameters,\n bodyParameters,\n additionalHeaders,\n abortSignal,\n responseType,\n streamConfig,\n isStreamingRequest,\n });\n }\n\n async put(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"put\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n async patch(\n endpoint: string,\n bodyParameters: any = {},\n queryParameters: any = {},\n ): Promise {\n return this.performRequest(\"patch\", endpoint, {\n queryParameters,\n bodyParameters,\n isStreamingRequest: false,\n });\n }\n\n private getAdapter(): AxiosAdapter | undefined {\n if (!this.configuration.axiosAdapter) return undefined;\n\n if (typeof this.configuration.axiosAdapter === \"function\")\n return this.configuration.axiosAdapter;\n\n const isCloudflareWorkers =\n typeof navigator !== \"undefined\" &&\n navigator.userAgent === \"Cloudflare-Workers\";\n\n return isCloudflareWorkers\n ? axios.getAdapter(this.configuration.axiosAdapter).bind(globalThis)\n : axios.getAdapter(this.configuration.axiosAdapter);\n }\n\n async performRequest(\n requestType: Method,\n endpoint: string,\n {\n queryParameters = null,\n bodyParameters = null,\n additionalHeaders = {},\n abortSignal = null,\n responseType = undefined,\n skipConnectionTimeout = false,\n enableKeepAlive = undefined,\n streamConfig = undefined,\n isStreamingRequest,\n }: {\n queryParameters?: any;\n bodyParameters?: any;\n additionalHeaders?: any;\n abortSignal?: any;\n responseType?: AxiosRequestConfig[\"responseType\"] | undefined;\n skipConnectionTimeout?: boolean;\n enableKeepAlive?: boolean | undefined;\n streamConfig?:\n | StreamConfig\n | undefined;\n isStreamingRequest?: boolean | undefined;\n },\n ): Promise {\n this.configuration.validate();\n\n if (isStreamingRequest) {\n this.logger.debug(`Request: Performing streaming request to ${endpoint}`);\n\n // For browser streaming, always use responseType: \"stream\" and adapter: \"fetch\"\n if (!isNodeJSEnvironment && typeof fetch !== \"undefined\") {\n this.logger.debug(\"Using fetch adapter for browser streaming\");\n responseType = \"stream\";\n }\n }\n\n const requestNumber = Date.now();\n let lastException;\n let wasAborted = false;\n this.logger.debug(\n `Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`,\n );\n for (\n let numTries = 1;\n numTries <= this.numRetriesPerRequest + 1;\n numTries++\n ) {\n const node = this.getNextNode(requestNumber);\n this.logger.debug(\n `Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${\n node.index\n }`,\n );\n\n if (abortSignal && abortSignal.aborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n let abortListener: ((event: Event) => void) | undefined;\n\n try {\n const requestOptions: AxiosRequestConfig = {\n method: requestType,\n url: this.uriFor(endpoint, node),\n headers: Object.assign(\n {},\n this.defaultHeaders(),\n additionalHeaders,\n this.additionalUserHeaders,\n ),\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n validateStatus: (status) => {\n /* Override default validateStatus, which only considers 2xx a success.\n In our case, if the server returns any HTTP code, we will handle it below.\n We do this to be able to raise custom errors based on response code.\n */\n return status > 0;\n },\n transformResponse: [\n (data, headers) => {\n let transformedData = data;\n if (\n headers !== undefined &&\n typeof data === \"string\" &&\n headers[\"content-type\"] &&\n headers[\"content-type\"].startsWith(\"application/json\")\n ) {\n transformedData = JSON.parse(data);\n }\n return transformedData;\n },\n ],\n };\n\n // Use fetch adapter only for streaming requests in browser environments\n requestOptions.adapter =\n isStreamingRequest && !isNodeJSEnvironment\n ? \"fetch\"\n : this.getAdapter();\n\n if (skipConnectionTimeout !== true) {\n requestOptions.timeout = this.connectionTimeoutSeconds * 1000;\n }\n\n if (queryParameters && Object.keys(queryParameters).length !== 0) {\n requestOptions.params = queryParameters;\n }\n\n if (this.sendApiKeyAsQueryParam) {\n requestOptions.params = requestOptions.params || {};\n requestOptions.params[\"x-typesense-api-key\"] = this.apiKey;\n }\n\n if (this.configuration.httpAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpAgent`,\n );\n requestOptions.httpAgent = this.configuration.httpAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`);\n requestOptions.httpAgent = new HTTPAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.httpsAgent) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom httpsAgent`,\n );\n requestOptions.httpsAgent = this.configuration.httpsAgent;\n } else if (enableKeepAlive === true) {\n if (!isNodeJSEnvironment) {\n this.logger.warn(\n `Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`,\n );\n } else {\n this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`);\n requestOptions.httpsAgent = new HTTPSAgent({ keepAlive: true });\n }\n }\n\n if (this.configuration.paramsSerializer) {\n this.logger.debug(\n `Request #${requestNumber}: Using custom paramsSerializer`,\n );\n requestOptions.paramsSerializer = this.configuration.paramsSerializer;\n }\n\n if (\n bodyParameters &&\n ((typeof bodyParameters === \"string\" &&\n bodyParameters.length !== 0) ||\n (typeof bodyParameters === \"object\" &&\n Object.keys(bodyParameters).length !== 0))\n ) {\n requestOptions.data = bodyParameters;\n }\n\n // Translate from user-provided AbortController to the Axios request cancel mechanism.\n if (abortSignal) {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n abortListener = () => {\n wasAborted = true;\n source.cancel();\n };\n abortSignal.addEventListener(\"abort\", abortListener);\n requestOptions.cancelToken = source.token;\n }\n\n if (isStreamingRequest) {\n requestOptions.responseType = \"stream\";\n if (!isNodeJSEnvironment) {\n requestOptions.headers = {\n ...requestOptions.headers,\n Accept: \"text/event-stream\",\n };\n }\n } else if (responseType) {\n requestOptions.responseType = responseType;\n }\n\n const response = await axios(requestOptions);\n\n if (response.status >= 1 && response.status <= 499) {\n // Treat any status code > 0 and < 500 to be an indication that node is healthy\n // We exclude 0 since some clients return 0 when request fails\n this.setNodeHealthcheck(node, HEALTHY);\n }\n\n this.logger.debug(\n `Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`,\n );\n\n if (response.status >= 200 && response.status < 300) {\n if (isStreamingRequest) {\n return this.handleStreamingResponse(response, streamConfig);\n }\n return Promise.resolve(response.data);\n } else if (response.status < 500) {\n // Next, if response is anything but 5xx, don't retry, return a custom error\n return Promise.reject(\n this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n ),\n );\n } else {\n // Retry all other HTTP errors (HTTPStatus > 500)\n // This will get caught by the catch block below\n throw this.customErrorForResponse(\n response,\n response.data?.message,\n requestOptions.data,\n );\n }\n } catch (error: any) {\n // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts\n if (!wasAborted) {\n this.setNodeHealthcheck(node, UNHEALTHY);\n }\n lastException = error;\n this.logger.warn(\n `Request #${requestNumber}: Request to Node ${\n node.index\n } failed due to \"${error?.code ?? \"\"} ${error.message}${\n error.response == null\n ? \"\"\n : \" - \" + JSON.stringify(error.response?.data)\n }\"`,\n );\n\n if (wasAborted) {\n return Promise.reject(new Error(\"Request aborted by caller.\"));\n }\n\n if (isStreamingRequest) {\n this.invokeOnErrorCallback(error, streamConfig);\n }\n\n if (numTries < this.numRetriesPerRequest + 1) {\n this.logger.warn(\n `Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`,\n );\n } else {\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n await this.timer(this.retryIntervalSeconds);\n } finally {\n if (abortSignal && abortListener) {\n abortSignal.removeEventListener(\"abort\", abortListener);\n }\n }\n }\n\n this.logger.debug(\n `Request #${requestNumber}: No retries left. Raising last error`,\n );\n return Promise.reject(lastException);\n }\n\n private processStreamingLine(line: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!line.trim() || line === \"data: [DONE]\") {\n return null;\n }\n\n // Handle SSE format (data: {...})\n if (line.startsWith(\"data: \")) {\n return this.processDataLine(line.slice(6).trim());\n }\n\n // Try parsing as JSON if it starts with a brace\n if (line.trim().startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(line.trim());\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n }\n\n return {\n conversation_id: \"unknown\",\n message: line.trim(),\n };\n }\n\n private processDataLine(dataContent: string): {\n conversation_id: string;\n message: string;\n } | null {\n if (!dataContent) {\n return null;\n }\n\n if (dataContent.startsWith(\"{\")) {\n try {\n const jsonData = JSON.parse(dataContent);\n // Ensure the required fields exist\n if (jsonData && typeof jsonData === \"object\") {\n if (!jsonData.conversation_id) {\n jsonData.conversation_id = \"unknown\";\n }\n if (!jsonData.message && jsonData.message !== \"\") {\n jsonData.message = \"\";\n }\n return jsonData;\n }\n return {\n conversation_id: \"unknown\",\n message: JSON.stringify(jsonData),\n };\n } catch (e) {\n // Not valid JSON, use as plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n }\n\n // For plain text\n return {\n conversation_id: \"unknown\",\n message: dataContent,\n };\n }\n\n private async handleStreamingResponse(\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\n `Handling streaming response. Environment: ${isNodeJSEnvironment ? \"Node.js\" : \"Browser\"}`,\n );\n\n if (isNodeJSEnvironment && response.data) {\n return this.handleNodeStreaming(response, streamConfig);\n }\n\n if (!isNodeJSEnvironment) {\n return this.handleBrowserStreaming(response, streamConfig);\n }\n\n this.logger.debug(\"Processing non-streaming response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return Promise.resolve(response.data as T);\n }\n\n private handleNodeStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing Node.js stream\");\n return new Promise((resolve, reject) => {\n const stream = response.data;\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n stream.on(\"data\", (chunk) => {\n try {\n const data = chunk.toString();\n buffer += data;\n\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() ?? \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n } catch (error) {\n reject(error);\n }\n });\n\n stream.on(\"end\", () => {\n if (buffer.trim().length > 0) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(\n allChunks,\n resolve,\n response,\n streamConfig,\n );\n });\n\n stream.on(\"error\", (error: unknown) => {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n });\n });\n }\n\n private handleBrowserStreaming(\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): Promise {\n this.logger.debug(\"Processing browser stream\");\n\n return new Promise(async (resolve, reject) => {\n try {\n if (response.data && typeof response.data.getReader === \"function\") {\n return this.handleBrowserReadableStream(\n response.data,\n resolve,\n reject,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"string\") {\n return this.handleBrowserStringResponse(\n response.data,\n resolve,\n response,\n streamConfig,\n );\n }\n\n if (typeof response.data === \"object\" && response.data !== null) {\n this.logger.debug(\"No stream found, but data object is available\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n return resolve(response.data as T);\n }\n\n this.logger.error(\"No usable data found in response\");\n return reject(new Error(\"No usable data found in response\"));\n } catch (error) {\n this.logger.error(`Error processing streaming response: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n });\n }\n\n private async handleBrowserReadableStream(\n stream: any,\n resolve: (value: T) => void,\n reject: (reason?: any) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): Promise {\n this.logger.debug(\"Found ReadableStream in response.data\");\n const reader = stream.getReader();\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n let buffer = \"\";\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n this.logger.debug(\"Stream reading complete\");\n if (buffer.trim()) {\n const lines = buffer.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n break;\n }\n\n const chunk = new TextDecoder().decode(value);\n this.logger.debug(`Received chunk: ${chunk.length} bytes`);\n\n buffer += chunk;\n const lines = buffer.split(\"\\n\");\n buffer = lines.pop() || \"\";\n\n this.processStreamLines(lines, allChunks, streamConfig);\n }\n\n this.finalizeStreamResult(allChunks, resolve, response, streamConfig);\n } catch (error) {\n this.logger.error(`Stream error: ${error}`);\n this.invokeOnErrorCallback(error, streamConfig);\n reject(error);\n }\n }\n\n private handleBrowserStringResponse(\n data: string,\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig:\n | StreamConfig\n | undefined,\n ): void {\n this.logger.debug(\"Processing text response as stream data\");\n const allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [] = [];\n\n const lines = data.split(\"\\n\");\n this.processStreamLines(lines, allChunks, streamConfig);\n\n if (allChunks.length > 0) {\n const finalResult =\n this.combineStreamingChunks<\n T extends DocumentSchema ? T : DocumentSchema\n >(allChunks);\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n // If no chunks were processed, use the original response\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n private processStreamLines(\n lines: string[],\n allChunks: [...MessageChunk[], SearchResponse] | [],\n streamConfig: StreamConfig | undefined,\n ): void {\n for (const line of lines) {\n if (line.trim() && line !== \"data: [DONE]\") {\n const processed = this.processStreamingLine(line);\n if (processed !== null) {\n this.invokeOnChunkCallback(processed, streamConfig);\n (allChunks as MessageChunk[]).push(processed);\n }\n }\n }\n }\n\n private finalizeStreamResult(\n allChunks:\n | [\n ...MessageChunk[],\n SearchResponse,\n ]\n | [],\n resolve: (value: T) => void,\n response: AxiosResponse,\n streamConfig?: StreamConfig,\n ): void {\n if (allChunks.length > 0) {\n const finalResult = this.combineStreamingChunks(allChunks);\n this.logger.debug(\"Stream processing complete\");\n this.invokeOnCompleteCallback(finalResult, streamConfig);\n resolve(finalResult as unknown as T);\n } else {\n this.logger.debug(\"No chunks processed, returning original API response\");\n this.invokeOnCompleteCallback(response.data, streamConfig);\n resolve(response.data as T);\n }\n }\n\n /**\n * Combines multiple streaming chunks into a single coherent result\n * This is critical for ensuring we return the complete data rather than just the last chunk\n */\n private combineStreamingChunks(\n chunks: [...MessageChunk[], SearchResponse] | [],\n ): SearchResponse {\n if (chunks.length === 0) return {} as SearchResponse;\n if (chunks.length === 1) return chunks[0] as unknown as SearchResponse;\n\n // For conversation streams with message chunks\n const messagesChunks = this.getMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n );\n if (messagesChunks.length > 0) {\n return this.combineMessageChunks(\n chunks as [...MessageChunk[], SearchResponse],\n messagesChunks,\n );\n }\n\n // For regular search responses\n const lastChunk = chunks[chunks.length - 1];\n if (!this.isCompleteSearchResponse(lastChunk)) {\n throw new Error(\"Last chunk is not a complete search response\");\n }\n\n return lastChunk;\n }\n\n private getMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n ): MessageChunk[] {\n return chunks.filter(this.isChunkMessage);\n }\n\n private isChunkMessage(chunk: unknown): chunk is MessageChunk {\n return (\n typeof chunk === \"object\" &&\n chunk !== null &&\n \"message\" in chunk &&\n \"conversation_id\" in chunk\n );\n }\n\n private combineMessageChunks(\n chunks: [...MessageChunk[], SearchResponse],\n messagesChunks: MessageChunk[],\n ): SearchResponse {\n this.logger.debug(\n `Found ${messagesChunks.length} message chunks to combine`,\n );\n\n const lastChunk = chunks[chunks.length - 1];\n if (this.isCompleteSearchResponse(lastChunk)) {\n return lastChunk;\n }\n\n const metadataChunk = chunks.find(this.isCompleteSearchResponse);\n\n if (!metadataChunk) {\n throw new Error(\"No metadata chunk found\");\n }\n\n return metadataChunk;\n }\n\n private isCompleteSearchResponse(\n chunk: MessageChunk | SearchResponse,\n ): chunk is SearchResponse {\n if (\n typeof chunk === \"object\" &&\n chunk !== null &&\n Object.keys(chunk as object).length > 0\n ) {\n return (\n \"results\" in (chunk as object) ||\n \"found\" in (chunk as object) ||\n \"hits\" in (chunk as object) ||\n \"page\" in (chunk as object) ||\n \"search_time_ms\" in (chunk as object)\n );\n }\n return false;\n }\n\n // Attempts to find the next healthy node, looping through the list of nodes once.\n // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy\n // so we can try the request for good measure, in case that node has become healthy since\n getNextNode(requestNumber = 0): Node {\n // Check if nearestNode is set and is healthy, if so return it\n if (this.nearestNode != null) {\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: Node ${\n this.nearestNode.index\n } is ${this.nearestNode.isHealthy === true ? \"Healthy\" : \"Unhealthy\"}`,\n );\n if (\n this.nearestNode.isHealthy === true ||\n this.nodeDueForHealthcheck(this.nearestNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`,\n );\n return this.nearestNode;\n }\n this.logger.debug(\n `Request #${requestNumber}: Falling back to individual nodes`,\n );\n }\n\n // Fallback to nodes as usual\n this.logger.debug(\n `Request #${requestNumber}: Nodes Health: ${this.nodes\n .map(\n (node) =>\n `Node ${node.index} is ${\n node.isHealthy === true ? \"Healthy\" : \"Unhealthy\"\n }`,\n )\n .join(\" || \")}`,\n );\n let candidateNode: Node = this.nodes[0];\n for (let i = 0; i <= this.nodes.length; i++) {\n this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length;\n candidateNode = this.nodes[this.currentNodeIndex];\n if (\n candidateNode.isHealthy === true ||\n this.nodeDueForHealthcheck(candidateNode, requestNumber)\n ) {\n this.logger.debug(\n `Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n }\n\n // None of the nodes are marked healthy, but some of them could have become healthy since last health check.\n // So we will just return the next node.\n this.logger.debug(\n `Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`,\n );\n return candidateNode;\n }\n\n nodeDueForHealthcheck(node, requestNumber = 0): boolean {\n const isDueForHealthcheck =\n Date.now() - node.lastAccessTimestamp >\n this.healthcheckIntervalSeconds * 1000;\n if (isDueForHealthcheck) {\n this.logger.debug(\n `Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`,\n );\n }\n return isDueForHealthcheck;\n }\n\n initializeMetadataForNodes(): void {\n if (this.nearestNode != null) {\n this.nearestNode.index = \"nearestNode\";\n this.setNodeHealthcheck(this.nearestNode, HEALTHY);\n }\n\n this.nodes.forEach((node, i) => {\n node.index = i;\n this.setNodeHealthcheck(node, HEALTHY);\n });\n }\n\n setNodeHealthcheck(node, isHealthy): void {\n node.isHealthy = isHealthy;\n node.lastAccessTimestamp = Date.now();\n }\n\n uriFor(endpoint: string, node): string {\n if (node.url != null) {\n return `${node.url}${endpoint}`;\n }\n return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`;\n }\n\n defaultHeaders(): any {\n const defaultHeaders = {};\n if (!this.sendApiKeyAsQueryParam) {\n defaultHeaders[APIKEYHEADERNAME] = this.apiKey;\n }\n defaultHeaders[\"Content-Type\"] = \"application/json\";\n return defaultHeaders;\n }\n\n async timer(seconds): Promise {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n }\n\n customErrorForResponse(\n response: AxiosResponse,\n messageFromServer: string,\n httpBody?: string,\n ): TypesenseError {\n let errorMessage = `Request failed with HTTP code ${response.status}`;\n if (\n typeof messageFromServer === \"string\" &&\n messageFromServer.trim() !== \"\"\n ) {\n errorMessage += ` | Server said: ${messageFromServer}`;\n }\n\n let error = new TypesenseError(errorMessage, httpBody, response.status);\n\n if (response.status === 400) {\n error = new RequestMalformed(errorMessage, httpBody, response.status);\n } else if (response.status === 401) {\n error = new RequestUnauthorized(errorMessage, httpBody, response.status);\n } else if (response.status === 404) {\n error = new ObjectNotFound(errorMessage, httpBody, response.status);\n } else if (response.status === 409) {\n error = new ObjectAlreadyExists(errorMessage, httpBody, response.status);\n } else if (response.status === 422) {\n error = new ObjectUnprocessable(errorMessage, httpBody, response.status);\n } else if (response.status >= 500 && response.status <= 599) {\n error = new ServerError(errorMessage, httpBody, response.status);\n } else {\n error = new HTTPError(errorMessage, httpBody, response.status);\n }\n\n return error;\n }\n\n private invokeOnChunkCallback(\n data: {\n conversation_id: string;\n message: string;\n },\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onChunk) {\n try {\n streamConfig.onChunk(data);\n } catch (error) {\n this.logger.warn(`Error in onChunk callback: ${error}`);\n }\n }\n }\n\n private invokeOnCompleteCallback(\n data: SearchResponse,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onComplete) {\n try {\n streamConfig.onComplete(data);\n } catch (error) {\n this.logger.warn(`Error in onComplete callback: ${error}`);\n }\n }\n }\n\n private invokeOnErrorCallback(\n error: unknown,\n streamConfig: StreamConfig | undefined,\n ): void {\n if (streamConfig?.onError) {\n const errorObj = toErrorWithMessage(error);\n try {\n streamConfig.onError(errorObj);\n } catch (callbackError) {\n this.logger.warn(`Error in onError callback: ${callbackError}`);\n }\n }\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { CollectionFieldSchema, CollectionSchema } from \"./Collection\";\n\nexport interface BaseCollectionCreateSchema {\n name: string;\n default_sorting_field?: string;\n symbols_to_index?: string[];\n token_separators?: string[];\n enable_nested_fields?: boolean;\n metadata?: object;\n voice_query_model?: {\n model_name?: string;\n };\n}\n\ninterface CollectionCreateSchemaWithSrc\n extends Pick {\n fields?: CollectionFieldSchema[];\n}\n\ninterface CollectionCreateSchemaWithoutSrc extends BaseCollectionCreateSchema {\n fields: CollectionFieldSchema[];\n}\n\n/**\n * Defines the schema for creating a collection in Typesense.\n *\n * If the `src_name` property in `Options` is a string, the `fields` prop is optional, and only used for embedding fields.\n * Otherwise, `fields` will be required.\n */\nexport type CollectionCreateSchema<\n Options extends CollectionCreateOptions = CollectionCreateOptions,\n> = Options[\"src_name\"] extends string\n ? CollectionCreateSchemaWithSrc\n : CollectionCreateSchemaWithoutSrc;\n\nexport interface CollectionCreateOptions {\n src_name?: string;\n}\n\nexport interface CollectionsRetrieveOptions {\n exclude_fields?: string;\n}\n\nconst RESOURCEPATH = \"/collections\";\n\nexport default class Collections {\n constructor(private apiCall: ApiCall) {}\n\n async create(\n schema: CollectionCreateSchema,\n options?: Options,\n ): Promise {\n return this.apiCall.post(RESOURCEPATH, schema, options);\n }\n\n async retrieve(\n options: CollectionsRetrieveOptions = {},\n ): Promise {\n return this.apiCall.get(RESOURCEPATH, options);\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import TypesenseError from \"./TypesenseError\";\nimport type { DocumentImportParameters, ImportResponse } from \"../Documents\";\nimport { ReadStream } from \"node:fs\";\n\ninterface ImportErrorPayload {\n documentsInJSONLFormat: string | ReadStream;\n options: DocumentImportParameters;\n failedItems: ImportResponse[];\n successCount: number;\n}\n\nexport default class ImportError extends TypesenseError {\n payload: ImportErrorPayload;\n importResults: ImportResponse[];\n constructor(\n message: string,\n importResults: ImportResponse[],\n payload: ImportErrorPayload,\n ) {\n super(message);\n this.importResults = importResults;\n this.payload = payload;\n }\n}\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { AxiosRequestConfig } from \"axios\";\nimport type { DocumentSchema } from \"./Documents\";\nimport { HttpClient } from \"./ApiCall\";\nimport type { RequestParams } from \"./Types\";\n\nconst defaultCacheResponseForSeconds = 2 * 60;\nconst defaultMaxSize = 100;\n\ninterface CacheEntry {\n requestTimestamp: number;\n response: T;\n}\n\ninterface PromiseCacheEntry {\n requestTimestamp: number;\n responsePromise: Promise;\n}\n\nexport default class RequestWithCache {\n private responseCache: Map> = new Map();\n private responsePromiseCache: Map> =\n new Map();\n\n clearCache() {\n this.responseCache = new Map();\n this.responsePromiseCache = new Map();\n }\n\n async perform<\n const TContext extends HttpClient,\n const TMethod extends keyof HttpClient,\n const TDoc extends DocumentSchema[],\n TResult,\n >(\n requestContext: TContext,\n methodName: TMethod,\n requestParams: RequestParams,\n cacheOptions: CacheOptions,\n ): Promise {\n const {\n cacheResponseForSeconds = defaultCacheResponseForSeconds,\n maxSize = defaultMaxSize,\n } = cacheOptions;\n const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0;\n\n const {\n path,\n queryParams,\n body,\n headers,\n streamConfig,\n abortSignal,\n responseType,\n isStreamingRequest,\n } = requestParams;\n\n if (isCacheDisabled) {\n return this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n }\n\n const requestParamsJSON = JSON.stringify(requestParams);\n const cacheEntry = this.responseCache.get(requestParamsJSON);\n const now = Date.now();\n\n if (cacheEntry) {\n const isEntryValid =\n now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responseCache.delete(requestParamsJSON);\n this.responseCache.set(requestParamsJSON, cacheEntry);\n return cacheEntry.response as TResult;\n } else {\n this.responseCache.delete(requestParamsJSON);\n }\n }\n\n const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON);\n\n if (cachePromiseEntry) {\n const isEntryValid =\n now - cachePromiseEntry.requestTimestamp <\n cacheResponseForSeconds * 1000;\n if (isEntryValid) {\n this.responsePromiseCache.delete(requestParamsJSON);\n this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry);\n return cachePromiseEntry.responsePromise as Promise;\n } else {\n this.responsePromiseCache.delete(requestParamsJSON);\n }\n }\n\n const responsePromise = this.executeRequest(\n requestContext,\n methodName,\n path,\n queryParams,\n body,\n headers,\n { abortSignal, responseType, streamConfig, isStreamingRequest },\n );\n\n this.responsePromiseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n responsePromise,\n });\n\n const response = await responsePromise;\n this.responseCache.set(requestParamsJSON, {\n requestTimestamp: now,\n response: response,\n });\n\n const isCacheOverMaxSize = this.responseCache.size > maxSize;\n if (isCacheOverMaxSize) {\n const oldestEntry = this.responseCache.keys().next().value;\n if (oldestEntry) {\n this.responseCache.delete(oldestEntry);\n }\n }\n const isResponsePromiseCacheOverMaxSize =\n this.responsePromiseCache.size > maxSize;\n if (isResponsePromiseCacheOverMaxSize) {\n const oldestEntry = this.responsePromiseCache.keys().next().value;\n if (oldestEntry) {\n this.responsePromiseCache.delete(oldestEntry);\n }\n }\n return response;\n }\n\n private executeRequest(\n context: HttpClient,\n methodName: keyof HttpClient,\n path: string,\n queryParams: Record = {},\n body?: unknown,\n headers?: Record,\n options?: {\n abortSignal?: AbortSignal | null;\n responseType?: AxiosRequestConfig[\"responseType\"];\n streamConfig?: any;\n isStreamingRequest: boolean | undefined;\n },\n ): Promise {\n const method = context[methodName];\n\n switch (methodName) {\n case \"get\":\n return (method as HttpClient[\"get\"]).call(context, path, queryParams, {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n }) as Promise;\n\n case \"delete\":\n return (method as HttpClient[\"delete\"]).call(\n context,\n path,\n queryParams,\n ) as Promise;\n\n case \"post\":\n return (method as HttpClient[\"post\"]).call(\n context,\n path,\n body,\n queryParams,\n headers || {},\n {\n abortSignal: options?.abortSignal,\n responseType: options?.responseType,\n streamConfig: options?.streamConfig,\n isStreamingRequest: options?.isStreamingRequest,\n },\n ) as Promise;\n\n case \"put\":\n case \"patch\":\n return (method as HttpClient[typeof methodName]).call(\n context,\n path,\n body,\n queryParams,\n ) as Promise;\n\n default:\n throw new Error(`Unsupported method: ${String(methodName)}`);\n }\n }\n}\n\ninterface CacheOptions {\n cacheResponseForSeconds?: number;\n maxSize?: number;\n}\n\nexport type { RequestParams } from \"./Types\";\n","import RequestWithCache from \"./RequestWithCache\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport Collections from \"./Collections\";\nimport type {\n DocumentSchema,\n SearchOptions,\n SearchParamsWithPreset,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport { SearchableDocuments, SearchParams } from \"./Types\";\n\nconst RESOURCEPATH = \"/documents\";\n\nexport class SearchOnlyDocuments\n implements SearchableDocuments\n{\n protected requestWithCache: RequestWithCache = new RequestWithCache();\n\n constructor(\n protected collectionName: string,\n protected apiCall: ApiCall,\n protected configuration: Configuration,\n ) {}\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async search(\n searchParameters: SearchParams | SearchParamsWithPreset,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n abortSignal = null,\n }: SearchOptions = {},\n ): Promise> {\n const additionalQueryParams = {};\n if (this.configuration.useServerSideSearchCache === true) {\n additionalQueryParams[\"use_cache\"] = true;\n }\n\n const { streamConfig, ...rest } = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(searchParameters);\n\n const queryParams = {\n ...additionalQueryParams,\n ...rest,\n };\n\n const isStreamingRequest = queryParams.conversation_stream === true;\n\n return this.requestWithCache.perform<\n ApiCall,\n \"get\",\n [T],\n SearchResponse\n >(\n this.apiCall,\n \"get\",\n {\n path: this.endpointPath(\"search\"),\n queryParams,\n streamConfig,\n abortSignal,\n isStreamingRequest,\n },\n {\n cacheResponseForSeconds: cacheSearchResultsForSeconds,\n },\n );\n }\n\n protected endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + operation\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import type { ReadStream } from \"fs\";\nimport ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport { ImportError, RequestMalformed } from \"./Errors\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport {\n SearchParams,\n SearchResponseRequestParams,\n WriteableDocuments,\n} from \"./Types\";\n\n// Todo: use generic to extract filter_by values\nexport type DeleteQuery =\n | {\n truncate?: true;\n }\n | {\n truncate?: never;\n filter_by?: string;\n batch_size?: number;\n ignore_not_found?: boolean;\n };\n\nexport interface DeleteResponse {\n num_deleted: number;\n}\n\ninterface ImportResponseSuccess {\n success: true;\n}\n\nexport interface ImportResponseFail {\n success: false;\n error: string;\n document: DocumentSchema;\n code: number;\n}\n\nexport type ImportResponse = ImportResponseSuccess | ImportResponseFail;\n\nexport type DocumentSchema = Record;\n\nexport interface SearchParamsWithPreset<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n preset: string;\n}\n\ntype SearchResponseHighlightObject = {\n matched_tokens?: string[];\n snippet?: string;\n value?: string;\n};\n\nexport type SearchResponseHighlight = T extends string | number\n ? SearchResponseHighlightObject\n : {\n [TAttribute in keyof T]?: SearchResponseHighlight;\n };\n\nexport interface SearchResponseHit {\n curated?: true;\n highlights?: [\n {\n field: keyof T;\n snippet?: string;\n value?: string;\n snippets?: string[];\n indices?: number[];\n matched_tokens: string[][] | string[];\n },\n ];\n highlight: SearchResponseHighlight;\n document: T;\n text_match: number;\n text_match_info?: {\n best_field_score: `${number}`; // To prevent scores from being truncated by JSON spec\n best_field_weight: number;\n fields_matched: number;\n score: `${number}`; // To prevent scores from being truncated by JSON spec\n tokens_matched: number;\n };\n}\n\nexport interface SearchResponseFacetCountSchema {\n counts: {\n count: number;\n highlighted: string;\n value: string;\n parent?: Record;\n }[];\n field_name: keyof T;\n stats: {\n avg?: number;\n max?: number;\n min?: number;\n sum?: number;\n };\n}\n\n// Todo: we could infer whether this is a grouped response by adding the search params as a generic\nexport interface SearchResponse {\n facet_counts?: SearchResponseFacetCountSchema[];\n found: number;\n found_docs?: number;\n out_of: number;\n page: number;\n request_params: SearchResponseRequestParams;\n search_time_ms: number;\n search_cutoff?: boolean;\n hits?: SearchResponseHit[];\n grouped_hits?: {\n group_key: string[];\n hits: SearchResponseHit[];\n found?: number;\n }[];\n conversation?: {\n answer: string;\n conversation_history: {\n conversation: object[];\n id: string;\n last_updated: number;\n ttl: number;\n };\n conversation_id: string;\n query: string;\n };\n error?: string;\n code?: number;\n}\n\nexport interface DocumentWriteParameters {\n dirty_values?: \"coerce_or_reject\" | \"coerce_or_drop\" | \"drop\" | \"reject\";\n action?: \"create\" | \"update\" | \"upsert\" | \"emplace\";\n}\n\nexport interface UpdateByFilterParameters {\n filter_by?: string;\n}\n\nexport interface UpdateByFilterResponse {\n num_updated: number;\n}\n\nexport interface DocumentImportParameters extends DocumentWriteParameters {\n batch_size?: number;\n remote_embedding_batch_size?: number;\n remote_embedding_timeout_ms?: number;\n remote_embedding_num_tries?: number;\n return_doc?: boolean;\n return_id?: boolean;\n}\n\nexport interface DocumentsExportParameters {\n filter_by?: string;\n include_fields?: string;\n exclude_fields?: string;\n}\n\nexport interface SearchOptions {\n cacheSearchResultsForSeconds?: number;\n abortSignal?: AbortSignal | null;\n}\n\nconst isNodeJSEnvironment =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nexport default class Documents\n extends SearchOnlyDocuments\n implements WriteableDocuments\n{\n constructor(\n collectionName: string,\n apiCall: ApiCall,\n configuration: Configuration,\n ) {\n super(collectionName, apiCall, configuration);\n }\n\n async create(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(this.endpointPath(), document, options);\n }\n\n async upsert(document: T, options: DocumentWriteParameters = {}): Promise {\n if (!document) throw new Error(\"No document provided\");\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"upsert\" }),\n );\n }\n\n async update(\n document: T,\n options: UpdateByFilterParameters,\n ): Promise;\n async update(document: T, options: DocumentWriteParameters): Promise;\n async update(\n document: T,\n options: DocumentWriteParameters | UpdateByFilterParameters = {},\n ): Promise {\n if (!document) throw new Error(\"No document provided\");\n\n if (options[\"filter_by\"] != null) {\n return this.apiCall.patch(\n this.endpointPath(),\n document,\n Object.assign({}, options),\n );\n } else {\n return this.apiCall.post(\n this.endpointPath(),\n document,\n Object.assign({}, options, { action: \"update\" }),\n );\n }\n }\n\n async delete(\n query: DeleteQuery = {} as DeleteQuery,\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), query);\n }\n\n async createMany(documents: T[], options: DocumentImportParameters = {}) {\n this.configuration.logger.warn(\n \"createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents\",\n );\n return this.import(documents, options);\n }\n\n /**\n * Import a set of documents in a batch.\n * @param {string|Array} documents - Can be a JSONL string of documents or an array of document objects.\n * @param options\n * @return {string|Array} Returns a JSONL string if the input was a JSONL string, otherwise it returns an array of results.\n */\n async import(\n documents: string,\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[],\n options?: DocumentImportParameters,\n ): Promise;\n async import(\n documents: T[] | string,\n options: DocumentImportParameters = {},\n ): Promise {\n let documentsInJSONLFormat;\n if (Array.isArray(documents)) {\n if (documents.length === 0) {\n throw new RequestMalformed(\"No documents provided\");\n }\n try {\n documentsInJSONLFormat = documents\n .map((document) => JSON.stringify(document))\n .join(\"\\n\");\n } catch (error: any) {\n // if rangeerror, throw custom error message\n if (\n error instanceof RangeError &&\n error.message.includes(\"Too many properties to enumerate\")\n ) {\n throw new Error(`${error}\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n `);\n }\n\n // else, throw the non-range error anyways\n throw new Error(error);\n }\n } else {\n documentsInJSONLFormat = documents;\n if (isEmptyString(documentsInJSONLFormat)) {\n throw new RequestMalformed(\"No documents provided\");\n }\n }\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: documentsInJSONLFormat,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n if (Array.isArray(documents)) {\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter(\n (r) => r.success === false,\n );\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n } else {\n return resultsInJSONLFormat as string;\n }\n }\n /**\n * Imports documents from a NodeJS readable stream of JSONL.\n */\n async importStream(\n readableStream: ReadStream,\n options: DocumentImportParameters = {},\n ): Promise {\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: options,\n bodyParameters: readableStream,\n additionalHeaders: { \"Content-Type\": \"text/plain\" },\n skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully\n enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991\n },\n );\n\n const resultsInJSONFormat = resultsInJSONLFormat\n .split(\"\\n\")\n .map((r) => JSON.parse(r)) as ImportResponse[];\n const failedItems = resultsInJSONFormat.filter((r) => r.success === false);\n if (failedItems.length > 0) {\n throw new ImportError(\n `${\n resultsInJSONFormat.length - failedItems.length\n } documents imported successfully, ${\n failedItems.length\n } documents failed during import. Use \\`error.importResults\\` from the raised exception to get a detailed error reason for each document.`,\n resultsInJSONFormat,\n {\n documentsInJSONLFormat: readableStream,\n options,\n failedItems,\n successCount: resultsInJSONFormat.length - failedItems.length,\n },\n );\n } else {\n return resultsInJSONFormat;\n }\n }\n\n /**\n * Returns a JSONL string for all the documents in this collection\n */\n async export(options: DocumentsExportParameters = {}): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options);\n }\n\n /**\n * Returns a NodeJS readable stream of JSONL for all the documents in this collection.\n */\n async exportStream(\n options: DocumentsExportParameters = {},\n ): Promise {\n return this.apiCall.get(this.endpointPath(\"export\"), options, {\n responseType: \"stream\",\n });\n }\n}\n\nfunction isEmptyString(str: string | null | undefined): boolean {\n return str == null || str === \"\" || str.length === 0;\n}\n\n/**\n * @deprecated Import from './Types' instead\n */\nexport type {\n SearchParams,\n WriteableDocuments,\n SearchableDocuments,\n DropTokensMode,\n OperationMode,\n UnionArrayKeys,\n UnionArraySearchParams,\n ArraybleParams,\n ExtractBaseTypes,\n SearchResponseRequestParams,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { OverrideSchema } from \"./Override\";\n\nconst RESOURCEPATH = \"/overrides\";\n\nexport interface OverrideRuleQuerySchema {\n query?: string;\n match?: \"exact\" | \"contains\";\n}\n\nexport interface OverrideRuleFilterSchema {\n filter_by?: string;\n}\n\nexport interface OverrideRuleTagsSchema {\n tags?: string[];\n}\n\nexport interface OverrideCreateSchema {\n rule: OverrideRuleQuerySchema &\n OverrideRuleFilterSchema &\n OverrideRuleTagsSchema;\n filter_by?: string;\n sort_by?: string;\n remove_matched_tokens?: boolean;\n replace_query?: string;\n includes?: Array<{\n id: string;\n position: number;\n }>;\n excludes?: Array<{ id: string }>;\n filter_curated_hits?: boolean;\n effective_from_ts?: number;\n effective_to_ts?: number;\n stop_processing?: boolean;\n metadata?: object;\n}\n\nexport interface OverridesRetrieveSchema {\n overrides: OverrideSchema[];\n}\n\nexport default class Overrides {\n constructor(\n private collectionName: string,\n private apiCall: ApiCall,\n ) {}\n\n async upsert(\n overrideId: string,\n params: OverrideCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(overrideId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Collections.RESOURCEPATH}/${this.collectionName}${\n Overrides.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Overrides, { OverrideCreateSchema } from \"./Overrides\";\n\nexport interface OverrideSchema extends OverrideCreateSchema {\n id: string;\n}\n\nexport interface OverrideDeleteSchema {\n id: string;\n}\n\nexport default class Override {\n constructor(\n private collectionName: string,\n private overrideId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport { SynonymSchema } from \"./Synonym\";\n\nconst RESOURCEPATH = \"/synonyms\";\n\nexport interface SynonymCreateSchema {\n synonyms: string[];\n root?: string;\n locale?: string;\n symbols_to_index?: string[];\n}\n\nexport interface SynonymsRetrieveSchema {\n synonyms: SynonymSchema[];\n}\n\nexport default class Synonyms {\n constructor(private collectionName: string, private apiCall: ApiCall) {}\n\n async upsert(\n synonymId: string,\n params: SynonymCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(synonymId),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string) {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${\n Synonyms.RESOURCEPATH\n }${operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Synonyms, { SynonymCreateSchema } from \"./Synonyms\";\n\nexport interface SynonymSchema extends SynonymCreateSchema {\n id: string;\n}\n\nexport interface SynonymDeleteSchema {\n id: string;\n}\n\nexport default class Synonym {\n constructor(\n private collectionName: string,\n private synonymId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Documents, {\n DeleteQuery,\n DocumentSchema,\n DocumentWriteParameters,\n} from \"./Documents\";\n\nexport class Document {\n constructor(\n private collectionName: string,\n private documentId: string,\n private apiCall: ApiCall\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(options?: DeleteQuery): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async update(\n partialDocument: Partial,\n options: DocumentWriteParameters = {}\n ): Promise {\n return this.apiCall.patch(this.endpointPath(), partialDocument, options);\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport type {\n BaseCollectionCreateSchema,\n CollectionCreateSchema,\n} from \"./Collections\";\nimport Documents, { DocumentSchema } from \"./Documents\";\nimport { ObjectNotFound } from \"./Errors\";\nimport Overrides from \"./Overrides\";\nimport Override from \"./Override\";\nimport Synonyms from \"./Synonyms\";\nimport Synonym from \"./Synonym\";\nimport { Document } from \"./Document\";\n\nexport type FieldType =\n | \"string\"\n | \"int32\"\n | \"int64\"\n | \"float\"\n | \"bool\"\n | \"geopoint\"\n | \"geopolygon\"\n | \"geopoint[]\"\n | \"string[]\"\n | \"int32[]\"\n | \"int64[]\"\n | \"float[]\"\n | \"bool[]\"\n | \"object\"\n | \"object[]\"\n | \"auto\"\n | \"string*\"\n | \"image\";\n\nexport interface CollectionFieldSchema\n extends Partial<\n Pick\n > {\n name: string;\n type: FieldType;\n optional?: boolean;\n facet?: boolean;\n index?: boolean;\n sort?: boolean;\n locale?: string;\n infix?: boolean;\n stem?: boolean;\n num_dim?: number;\n store?: boolean;\n range_index?: boolean;\n [t: string]: unknown;\n}\n\nexport interface CollectionSchema extends CollectionCreateSchema {\n created_at: number;\n num_documents: number;\n num_memory_shards: number;\n}\n\nexport interface CollectionDropFieldSchema {\n name: string;\n drop: true;\n}\n\nexport interface CollectionUpdateSchema\n extends Partial> {\n fields?: (CollectionFieldSchema | CollectionDropFieldSchema)[];\n}\n\nexport interface CollectionDeleteOptions {\n compact_store?: boolean;\n}\n\nexport default class Collection {\n private readonly _documents: Documents;\n private individualDocuments: Record> = {};\n private readonly _overrides: Overrides;\n private individualOverrides: Record = {};\n private readonly _synonyms: Synonyms;\n private individualSynonyms: Record = {};\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any,\n ) {\n this.name = name;\n this.apiCall = apiCall;\n this.configuration = configuration;\n\n this._documents = new Documents(\n this.name,\n this.apiCall,\n this.configuration,\n );\n this._overrides = new Overrides(this.name, this.apiCall);\n this._synonyms = new Synonyms(this.name, this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(schema: CollectionUpdateSchema): Promise {\n return this.apiCall.patch(this.endpointPath(), schema);\n }\n\n async delete(\n options: CollectionDeleteOptions = {},\n ): Promise {\n return this.apiCall.delete(this.endpointPath(), options);\n }\n\n async exists(): Promise {\n try {\n await this.retrieve();\n return true;\n } catch (e) {\n if (e instanceof ObjectNotFound) return false;\n throw e;\n }\n }\n\n documents(): Documents;\n documents(documentId: string): Document;\n documents(documentId?: string): Document | Documents {\n if (!documentId) {\n return this._documents;\n } else {\n if (this.individualDocuments[documentId] === undefined) {\n this.individualDocuments[documentId] = new Document(\n this.name,\n documentId,\n this.apiCall,\n );\n }\n return this.individualDocuments[documentId];\n }\n }\n\n overrides(): Overrides;\n overrides(overrideId: string): Override;\n overrides(overrideId?: string): Overrides | Override {\n if (overrideId === undefined) {\n return this._overrides;\n } else {\n if (this.individualOverrides[overrideId] === undefined) {\n this.individualOverrides[overrideId] = new Override(\n this.name,\n overrideId,\n this.apiCall,\n );\n }\n return this.individualOverrides[overrideId];\n }\n }\n\n synonyms(): Synonyms;\n synonyms(synonymId: string): Synonym;\n synonyms(synonymId?: string): Synonyms | Synonym {\n if (synonymId === undefined) {\n return this._synonyms;\n } else {\n if (this.individualSynonyms[synonymId] === undefined) {\n this.individualSynonyms[synonymId] = new Synonym(\n this.name,\n synonymId,\n this.apiCall,\n );\n }\n return this.individualSynonyms[synonymId];\n }\n }\n\n private endpointPath(): string {\n return `${Collections.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/aliases\";\n\nexport interface CollectionAliasCreateSchema {\n collection_name: string;\n}\n\nexport interface CollectionAliasSchema extends CollectionAliasCreateSchema {\n name: string;\n}\n\nexport interface CollectionAliasesResponseSchema {\n aliases: CollectionAliasSchema[];\n}\n\nexport default class Aliases {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n name: string,\n mapping: CollectionAliasCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n mapping\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n private endpointPath(aliasName): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import Aliases, { CollectionAliasSchema } from \"./Aliases\";\nimport ApiCall from \"./ApiCall\";\n\nexport default class Alias {\n constructor(private name: string, private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Aliases.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import { createHmac } from \"crypto\";\nimport ApiCall from \"./ApiCall\";\nimport { KeyCreateSchema, KeySchema } from \"./Key\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/keys\";\n\nexport interface KeysRetrieveSchema {\n keys: KeySchema[];\n}\n\nexport interface GenerateScopedSearchKeyParams<\n T extends DocumentSchema,\n Infix extends string,\n> extends Partial> {\n expires_at?: number;\n cache_ttl?: number;\n limit_multi_searches?: number;\n}\n\nexport default class Keys {\n constructor(private apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(params: KeyCreateSchema): Promise {\n return this.apiCall.post(Keys.RESOURCEPATH, params);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n generateScopedSearchKey(\n searchKey: string,\n parameters: GenerateScopedSearchKeyParams,\n ): string {\n // Note: only a key generated with the `documents:search` action will be\n // accepted by the server, when used with the search endpoint.\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(parameters);\n const paramsJSON = JSON.stringify(normalizedParams);\n const digest = Buffer.from(\n createHmac(\"sha256\", searchKey).update(paramsJSON).digest(\"base64\"),\n );\n const keyPrefix = searchKey.substr(0, 4);\n const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`;\n\n return Buffer.from(rawScopedKey).toString(\"base64\");\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Keys from \"./Keys\";\n\nexport interface KeyCreateSchema {\n actions: string[];\n collections: string[];\n description?: string;\n value?: string;\n value_prefix?: string;\n expires_at?: number;\n autodelete?: boolean;\n}\n\nexport interface KeyDeleteSchema {\n id: number;\n}\n\nexport interface KeySchema extends KeyCreateSchema {\n id: number;\n}\n\nexport default class Key {\n constructor(\n private id: number,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Keys.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/debug\";\n\nexport interface DebugResponseSchema {\n state: number;\n version: string;\n}\n\nexport default class Debug {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/metrics.json\";\n\nexport interface MetricsResponse {\n [key: `system_cpu${number}_active_percentage`]: string;\n system_cpu_active_percentage: string;\n system_disk_total_bytes: string;\n system_disk_used_bytes: string;\n system_memory_total_bytes: string;\n system_memory_total_swap_bytes?: string;\n system_memory_used_bytes: string;\n system_memory_used_swap_bytes?: string;\n system_network_received_bytes: string;\n system_network_sent_bytes: string;\n typesense_memory_active_bytes: string;\n typesense_memory_allocated_bytes: string;\n typesense_memory_fragmentation_ratio: string;\n typesense_memory_mapped_bytes: string;\n typesense_memory_metadata_bytes: string;\n typesense_memory_resident_bytes: string;\n typesense_memory_retained_bytes: string;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/stats.json\";\n\nexport interface EndpointStats {\n [endpoint: string]: number;\n}\n\nexport interface StatsResponse {\n delete_latency_ms?: number;\n delete_requests_per_second?: number;\n import_latency_ms?: number;\n import_requests_per_second?: number;\n latency_ms?: EndpointStats;\n overloaded_requests_per_second?: number;\n pending_write_batches?: number;\n requests_per_second?: EndpointStats;\n search_latency_ms?: number;\n search_requests_per_second?: number;\n total_requests_per_second?: number;\n write_latency_ms?: number;\n write_requests_per_second?: number;\n}\n\nexport default class Metrics {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/health\";\n\nexport interface HealthResponse {\n ok: boolean;\n}\n\nexport default class Health {\n constructor(private apiCall: ApiCall) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n}\n","import ApiCall from \"./ApiCall\";\n\nconst RESOURCEPATH = \"/operations\";\n\nexport default class Operations {\n constructor(private apiCall: ApiCall) {}\n\n async perform(\n operationName:\n | \"vote\"\n | \"snapshot\"\n | \"cache/clear\"\n | \"schema_changes\"\n // eslint-disable-next-line @typescript-eslint/ban-types -- Can't use `object` here, it needs to intersect with `{}`\n | (string & {}),\n queryParameters: Record = {},\n ): Promise {\n return this.apiCall.post(\n `${RESOURCEPATH}/${operationName}`,\n {},\n queryParameters,\n );\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Configuration from \"./Configuration\";\nimport RequestWithCache from \"./RequestWithCache\";\nimport {\n DocumentSchema,\n ExtractBaseTypes,\n SearchParams,\n SearchResponse,\n} from \"./Documents\";\nimport { normalizeArrayableParams } from \"./Utils\";\nimport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n\nconst RESOURCEPATH = \"/multi_search\";\n\nexport default class MultiSearch {\n private requestWithCache: RequestWithCache;\n\n constructor(\n private apiCall: ApiCall,\n private configuration: Configuration,\n private useTextContentType: boolean = false,\n ) {\n this.requestWithCache = new RequestWithCache();\n }\n\n clearCache() {\n this.requestWithCache.clearCache();\n }\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithUnionSchema,\n commonParams?: MultiSearchUnionParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsWithoutUnionSchema,\n commonParams?: MultiSearchResultsParameters,\n options?: { cacheSearchResultsForSeconds?: number },\n ): Promise<{\n results: { [Index in keyof T]: SearchResponse } & {\n length: T[\"length\"];\n };\n }>;\n\n async perform<\n const T extends DocumentSchema[] = [],\n const Infix extends string = string,\n >(\n searchRequests: MultiSearchRequestsSchema,\n commonParams?:\n | MultiSearchUnionParameters\n | MultiSearchResultsParameters,\n {\n cacheSearchResultsForSeconds = this.configuration\n .cacheSearchResultsForSeconds,\n }: { cacheSearchResultsForSeconds?: number } = {},\n ): Promise> {\n const params = commonParams ? { ...commonParams } : {};\n\n if (this.configuration.useServerSideSearchCache === true) {\n params.use_cache = true;\n }\n\n const normalizedSearchRequests: Omit & {\n searches: ExtractBaseTypes>[];\n } = {\n union: searchRequests.union,\n searches: searchRequests.searches.map(\n normalizeArrayableParams<\n T[number],\n SearchParams,\n Infix\n >,\n ),\n };\n\n const { streamConfig, ...paramsWithoutStream } = params;\n const normalizedQueryParams = normalizeArrayableParams(\n paramsWithoutStream as SearchParams,\n );\n\n return this.requestWithCache.perform(\n this.apiCall,\n \"post\",\n {\n path: RESOURCEPATH,\n body: normalizedSearchRequests,\n queryParams: normalizedQueryParams,\n headers: this.useTextContentType\n ? { \"content-type\": \"text/plain\" }\n : {},\n streamConfig,\n isStreamingRequest: this.isStreamingRequest(params),\n },\n { cacheResponseForSeconds: cacheSearchResultsForSeconds },\n );\n }\n\n private isStreamingRequest(commonParams: { streamConfig?: unknown }) {\n return commonParams.streamConfig !== undefined;\n }\n}\n\nexport type {\n MultiSearchRequestsSchema,\n MultiSearchRequestsWithUnionSchema,\n MultiSearchResponse,\n MultiSearchUnionParameters,\n MultiSearchResultsParameters,\n UnionSearchResponse,\n MultiSearchRequestsWithoutUnionSchema,\n} from \"./Types\";\n","import ApiCall from \"./ApiCall\";\nimport { PresetSchema } from \"./Preset\";\nimport type { DocumentSchema, SearchParams } from \"./Documents\";\nimport { MultiSearchRequestsSchema } from \"./MultiSearch\";\nimport { normalizeArrayableParams } from \"./Utils\";\n\nconst RESOURCEPATH = \"/presets\";\n\nexport interface PresetCreateSchema<\n T extends DocumentSchema,\n Infix extends string,\n> {\n value: SearchParams | MultiSearchRequestsSchema;\n}\n\nexport interface PresetsRetrieveSchema {\n presets: PresetSchema[];\n}\n\nexport default class Presets {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n presetId: string,\n params: PresetCreateSchema,\n ): Promise> {\n if (typeof params.value === \"object\" && \"searches\" in params.value) {\n const normalizedParams = params.value.searches.map((search) =>\n normalizeArrayableParams, Infix>(search),\n );\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: { searches: normalizedParams },\n });\n }\n const normalizedParams = normalizeArrayableParams<\n T,\n SearchParams,\n Infix\n >(params.value);\n\n return this.apiCall.put>(this.endpointPath(presetId), {\n value: normalizedParams,\n });\n }\n\n async retrieve(): Promise<\n PresetsRetrieveSchema\n > {\n return this.apiCall.get>(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Presets.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { DocumentSchema } from \"./Documents\";\nimport Presets, { PresetCreateSchema } from \"./Presets\";\n\nexport interface PresetSchema\n extends PresetCreateSchema {\n name: string;\n}\n\nexport interface PresetDeleteSchema {\n name: string;\n}\n\nexport default class Preset {\n constructor(\n private presetId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise> {\n return this.apiCall.get>(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Presets.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n AnalyticsRuleCreateSchema,\n AnalyticsRuleSchema,\n} from \"./AnalyticsRule\";\n\nexport interface AnalyticsRulesRetrieveSchema {\n rules: AnalyticsRuleSchema[];\n}\n\nconst RESOURCEPATH = \"/analytics/rules\";\n\nexport default class AnalyticsRules {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n name: string,\n params: AnalyticsRuleCreateSchema\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(name),\n params\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsRules.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\n\nexport interface AnalyticsRuleCreateSchema {\n type: \"popular_queries\" | \"nohits_queries\" | \"counter\" | \"log\";\n params: {\n enable_auto_aggregation?: boolean;\n source: {\n collections: string[];\n events?: Array<{\n type: string;\n weight?: number;\n name: string;\n }>;\n };\n expand_query?: boolean;\n destination?: {\n collection: string;\n counter_field?: string;\n };\n limit?: number;\n };\n}\n\nexport interface AnalyticsRuleDeleteSchema {\n name: string;\n}\n\nexport interface AnalyticsRuleSchema extends AnalyticsRuleCreateSchema {\n name: string;\n}\n\nexport default class AnalyticsRule {\n constructor(\n private name: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${AnalyticsRules.RESOURCEPATH}/${encodeURIComponent(this.name)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { AnalyticsEventCreateSchema } from \"./AnalyticsEvent\";\n\nconst RESOURCEPATH = \"/analytics/events\";\n\nexport default class AnalyticsEvents {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: AnalyticsEventCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${AnalyticsEvents.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport AnalyticsRules from \"./AnalyticsRules\";\nimport AnalyticsRule from \"./AnalyticsRule\";\nimport AnalyticsEvents from \"./AnalyticsEvents\";\n\nconst RESOURCEPATH = \"/analytics\";\n\nexport default class Analytics {\n private readonly _analyticsRules: AnalyticsRules;\n private readonly individualAnalyticsRules: Record = {};\n private readonly _analyticsEvents: AnalyticsEvents;\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._analyticsRules = new AnalyticsRules(this.apiCall);\n this._analyticsEvents = new AnalyticsEvents(this.apiCall);\n }\n\n rules(): AnalyticsRules;\n rules(id: string): AnalyticsRule;\n rules(id?: string): AnalyticsRules | AnalyticsRule {\n if (id === undefined) {\n return this._analyticsRules;\n } else {\n if (this.individualAnalyticsRules[id] === undefined) {\n this.individualAnalyticsRules[id] = new AnalyticsRule(id, this.apiCall);\n }\n return this.individualAnalyticsRules[id];\n }\n }\n\n events(): AnalyticsEvents {\n return this._analyticsEvents;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport { StopwordSchema } from \"./Stopword\";\n\nconst RESOURCEPATH = \"/stopwords\";\n\nexport interface StopwordCreateSchema {\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordsRetrieveSchema {\n stopwords: StopwordSchema[];\n}\n\nexport default class Stopwords {\n constructor(private apiCall: ApiCall) {}\n\n async upsert(\n stopwordId: string,\n params: StopwordCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(stopwordId),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(operation?: string): string {\n return `${Stopwords.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH(): string {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Stopwords, { StopwordCreateSchema } from \"./Stopwords\";\n\nexport interface StopwordSchema extends StopwordCreateSchema {\n id: string;\n stopwords: string[];\n locale?: string;\n}\n\nexport interface StopwordDeleteSchema {\n id: string;\n}\n\nexport default class Stopword {\n constructor(\n private stopwordId: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Stopwords.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport {\n ConversationModelCreateSchema,\n ConversationModelSchema,\n} from \"./ConversationModel\";\n\nconst RESOURCEPATH = \"/conversations/models\";\n\nexport default class ConversationModels {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async create(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.post(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return `${ConversationModels.RESOURCEPATH}${\n operation === undefined ? \"\" : \"/\" + encodeURIComponent(operation)\n }`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\n\nexport interface ConversationModelCreateSchema {\n id?: string;\n model_name: string;\n api_key?: string;\n system_prompt?: string;\n max_bytes: number;\n history_collection?: string;\n}\n\nexport interface ConversationModelDeleteSchema {\n id: string;\n}\n\nexport interface ConversationModelSchema extends ConversationModelCreateSchema {\n id: string;\n}\n\nexport default class ConversationModel {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async update(\n params: ConversationModelCreateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async delete(): Promise {\n return this.apiCall.delete(\n this.endpointPath(),\n );\n }\n\n private endpointPath(): string {\n return `${ConversationModels.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport ConversationModels from \"./ConversationModels\";\nimport ConversationModel from \"./ConversationModel\";\nimport { ConversationSchema } from \"./Conversation\";\n\nconst RESOURCEPATH = \"/conversations\";\n\nexport interface ConversationsRetrieveSchema {\n conversations: ConversationSchema[];\n}\n\nexport default class Conversations {\n private readonly _conversationsModels: ConversationModels;\n private readonly individualConversationModels: Record<\n string,\n ConversationModel\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._conversationsModels = new ConversationModels(this.apiCall);\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(RESOURCEPATH);\n }\n\n models(): ConversationModels;\n models(id: string): ConversationModel;\n models(id?: string): ConversationModels | ConversationModel {\n if (id === undefined) {\n return this._conversationsModels;\n } else {\n if (this.individualConversationModels[id] === undefined) {\n this.individualConversationModels[id] = new ConversationModel(\n id,\n this.apiCall,\n );\n }\n return this.individualConversationModels[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport Conversations from \"./Conversations\";\n\nexport interface ConversationDeleteSchema {\n id: number;\n}\n\nexport interface ConversationUpdateSchema {\n ttl: number;\n}\n\nexport interface ConversationSchema {\n id: number;\n conversation: object[];\n last_updated: number;\n ttl: number;\n}\n\nexport default class Conversation {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n async update(\n params: ConversationUpdateSchema,\n ): Promise {\n return this.apiCall.put(\n this.endpointPath(),\n params,\n );\n }\n\n async delete(): Promise {\n return this.apiCall.delete(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${Conversations.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport type { StemmingDictionaryCreateSchema } from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming/dictionaries\";\n\nexport interface StemmingDictionariesRetrieveSchema {\n dictionaries: string[];\n}\n\nexport default class StemmingDictionaries {\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n }\n\n async upsert(\n id: string,\n wordRootCombinations: StemmingDictionaryCreateSchema[] | string,\n ): Promise {\n const wordRootCombinationsInJSONLFormat = Array.isArray(\n wordRootCombinations,\n )\n ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join(\"\\n\")\n : wordRootCombinations;\n\n const resultsInJSONLFormat = await this.apiCall.performRequest(\n\n \"post\",\n this.endpointPath(\"import\"),\n {\n queryParameters: {id},\n bodyParameters: wordRootCombinationsInJSONLFormat,\n additionalHeaders: {\"Content-Type\": \"text/plain\"},\n skipConnectionTimeout: true,\n }\n );\n\n return Array.isArray(wordRootCombinations)\n ? resultsInJSONLFormat\n .split(\"\\n\")\n .map((line) => JSON.parse(line) as StemmingDictionaryCreateSchema)\n : resultsInJSONLFormat;\n }\n\n async retrieve(): Promise {\n return this.apiCall.get(\n this.endpointPath(),\n );\n }\n\n private endpointPath(operation?: string): string {\n return operation === undefined\n ? `${StemmingDictionaries.RESOURCEPATH}`\n : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`;\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","import ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\n\nexport interface StemmingDictionaryCreateSchema {\n root: string;\n word: string;\n}\n\nexport interface StemmingDictionarySchema {\n id: string;\n words: StemmingDictionaryCreateSchema[];\n}\n\nexport default class StemmingDictionary {\n constructor(\n private id: string,\n private apiCall: ApiCall,\n ) {}\n\n async retrieve(): Promise {\n return this.apiCall.get(this.endpointPath());\n }\n\n private endpointPath(): string {\n return `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(this.id)}`;\n }\n}\n","import type ApiCall from \"./ApiCall\";\nimport StemmingDictionaries from \"./StemmingDictionaries\";\nimport StemmingDictionary from \"./StemmingDictionary\";\n\nconst RESOURCEPATH = \"/stemming\";\n\nexport default class Stemming {\n private readonly _stemmingDictionaries: StemmingDictionaries;\n private readonly individualStemmingDictionaries: Record<\n string,\n StemmingDictionary\n > = {};\n\n constructor(private readonly apiCall: ApiCall) {\n this.apiCall = apiCall;\n this._stemmingDictionaries = new StemmingDictionaries(this.apiCall);\n }\n\n dictionaries(): StemmingDictionaries;\n dictionaries(id: string): StemmingDictionary;\n dictionaries(id?: string): StemmingDictionaries | StemmingDictionary {\n if (id === undefined) {\n return this._stemmingDictionaries;\n } else {\n if (this.individualStemmingDictionaries[id] === undefined) {\n this.individualStemmingDictionaries[id] = new StemmingDictionary(\n id,\n this.apiCall,\n );\n }\n return this.individualStemmingDictionaries[id];\n }\n }\n\n static get RESOURCEPATH() {\n return RESOURCEPATH;\n }\n}\n","/* eslint-disable no-dupe-class-members */\n\nimport Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport Collections from \"./Collections\";\nimport Collection from \"./Collection\";\nimport Aliases from \"./Aliases\";\nimport Alias from \"./Alias\";\nimport Keys from \"./Keys\";\nimport Key from \"./Key\";\nimport Debug from \"./Debug\";\nimport Metrics from \"./Metrics\";\nimport Stats from \"./Stats\";\nimport Health from \"./Health\";\nimport Operations from \"./Operations\";\nimport MultiSearch from \"./MultiSearch\";\nimport Presets from \"./Presets\";\nimport Preset from \"./Preset\";\nimport Analytics from \"./Analytics\";\nimport Stopwords from \"./Stopwords\";\nimport Stopword from \"./Stopword\";\nimport Conversations from \"./Conversations\";\nimport Conversation from \"./Conversation\";\nimport Stemming from \"./Stemming\";\n\nexport default class Client {\n configuration: Configuration;\n apiCall: ApiCall;\n debug: Debug;\n metrics: Metrics;\n stats: Stats;\n health: Health;\n operations: Operations;\n multiSearch: MultiSearch;\n analytics: Analytics;\n stemming: Stemming;\n private readonly _collections: Collections;\n private readonly individualCollections: Record;\n private readonly _aliases: Aliases;\n private readonly individualAliases: Record;\n private readonly _keys: Keys;\n private readonly individualKeys: Record;\n private readonly _presets: Presets;\n private readonly individualPresets: Record;\n private readonly _stopwords: Stopwords;\n private readonly individualStopwords: Record;\n private readonly _conversations: Conversations;\n private readonly individualConversations: Record;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? false;\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.debug = new Debug(this.apiCall);\n this.metrics = new Metrics(this.apiCall);\n this.stats = new Stats(this.apiCall);\n this.health = new Health(this.apiCall);\n this.operations = new Operations(this.apiCall);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration);\n this._collections = new Collections(this.apiCall);\n this.individualCollections = {};\n this._aliases = new Aliases(this.apiCall);\n this.individualAliases = {};\n this._keys = new Keys(this.apiCall);\n this.individualKeys = {};\n this._presets = new Presets(this.apiCall);\n this.individualPresets = {};\n this._stopwords = new Stopwords(this.apiCall);\n this.individualStopwords = {};\n this.analytics = new Analytics(this.apiCall);\n this.stemming = new Stemming(this.apiCall);\n this._conversations = new Conversations(this.apiCall);\n this.individualConversations = {};\n }\n\n collections(): Collections;\n collections = object>(\n collectionName: string,\n ): Collection;\n collections(collectionName?: string): Collections | Collection {\n if (collectionName === undefined) {\n return this._collections;\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new Collection(\n collectionName,\n this.apiCall,\n this.configuration,\n );\n }\n return this.individualCollections[collectionName];\n }\n }\n\n aliases(): Aliases;\n aliases(aliasName: string): Alias;\n aliases(aliasName?: string): Aliases | Alias {\n if (aliasName === undefined) {\n return this._aliases;\n } else {\n if (this.individualAliases[aliasName] === undefined) {\n this.individualAliases[aliasName] = new Alias(aliasName, this.apiCall);\n }\n return this.individualAliases[aliasName];\n }\n }\n\n keys(): Keys;\n keys(id: number): Key;\n keys(id?: number): Keys | Key {\n if (id === undefined) {\n return this._keys;\n } else {\n if (this.individualKeys[id] === undefined) {\n this.individualKeys[id] = new Key(id, this.apiCall);\n }\n return this.individualKeys[id];\n }\n }\n\n presets(): Presets;\n presets(id: string): Preset;\n presets(id?: string): Presets | Preset {\n if (id === undefined) {\n return this._presets;\n } else {\n if (this.individualPresets[id] === undefined) {\n this.individualPresets[id] = new Preset(id, this.apiCall);\n }\n return this.individualPresets[id];\n }\n }\n\n stopwords(): Stopwords;\n stopwords(id: string): Stopword;\n stopwords(id?: string): Stopwords | Stopword {\n if (id === undefined) {\n return this._stopwords;\n } else {\n if (this.individualStopwords[id] === undefined) {\n this.individualStopwords[id] = new Stopword(id, this.apiCall);\n }\n return this.individualStopwords[id];\n }\n }\n\n conversations(): Conversations;\n conversations(id: string): Conversation;\n conversations(id?: string): Conversations | Conversation {\n if (id === undefined) {\n return this._conversations;\n } else {\n if (this.individualConversations[id] === undefined) {\n this.individualConversations[id] = new Conversation(id, this.apiCall);\n }\n return this.individualConversations[id];\n }\n }\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import type { DocumentSchema } from \"./Documents\";\nimport ApiCall from \"./ApiCall\";\nimport { SearchOnlyDocuments } from \"./SearchOnlyDocuments\";\nimport type { SearchableDocuments } from \"./Types\";\n\nexport class SearchOnlyCollection {\n private readonly _documents: SearchableDocuments;\n\n constructor(\n private readonly name: string,\n private readonly apiCall: ApiCall,\n private readonly configuration: any\n ) {\n this._documents = new SearchOnlyDocuments(\n this.name,\n this.apiCall,\n this.configuration\n );\n }\n\n documents(): SearchableDocuments {\n return this._documents;\n }\n}\n","import Configuration, { ConfigurationOptions } from \"./Configuration\";\nimport ApiCall from \"./ApiCall\";\nimport MultiSearch from \"./MultiSearch\";\nimport { DocumentSchema } from \"./Documents\";\nimport { SearchOnlyCollection } from \"./SearchOnlyCollection\";\n\nexport default class SearchClient {\n public readonly multiSearch: MultiSearch;\n private readonly configuration: Configuration;\n private readonly apiCall: ApiCall;\n private readonly individualCollections: Record<\n string,\n SearchOnlyCollection\n >;\n\n constructor(options: ConfigurationOptions) {\n options.sendApiKeyAsQueryParam = options.sendApiKeyAsQueryParam ?? true;\n if (\n options.sendApiKeyAsQueryParam === true &&\n (options.apiKey || \"\").length > 2000\n ) {\n console.warn(\n \"[typesense] API Key is longer than 2000 characters which is over the allowed limit, so disabling sending it as a query parameter.\"\n );\n options.sendApiKeyAsQueryParam = false;\n }\n\n this.configuration = new Configuration(options);\n this.apiCall = new ApiCall(this.configuration);\n this.multiSearch = new MultiSearch(this.apiCall, this.configuration, true);\n this.individualCollections = {};\n }\n\n clearCache() {\n this.multiSearch.clearCache();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(this.individualCollections).forEach(([_, collection]) => {\n collection.documents().clearCache();\n });\n }\n\n collections(\n collectionName: string,\n ):\n | SearchOnlyCollection\n | SearchOnlyCollection {\n if (!collectionName) {\n throw new Error(\n \"Typesense.SearchClient only supports search operations, so the collectionName that needs to \" +\n \"be searched must be specified. Use Typesense.Client if you need to access the collection object.\"\n );\n } else {\n if (this.individualCollections[collectionName] === undefined) {\n this.individualCollections[collectionName] = new SearchOnlyCollection(\n collectionName,\n this.apiCall,\n this.configuration\n );\n }\n return this.individualCollections[\n collectionName\n ] as SearchOnlyCollection;\n }\n }\n}\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import Client from \"./Typesense/Client\";\nimport SearchClient from \"./Typesense/SearchClient\";\nimport * as Errors from \"./Typesense/Errors\";\n\nexport { Client, SearchClient, Errors };\nexport default { Client, SearchClient, Errors };\n"],"names":["root","definition","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","_loggersByName","defaultLogger","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","log","trace","replaceLoggingMethods","level","this","getLevel","i","length","methodFactory","name","debug","levels","SILENT","enableLoggingWhenConsoleArrives","defaultMethodFactory","_level","_loggerName","undefined","realMethod","Logger","factory","inheritedLevel","defaultLevel","userLevel","self","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","document","cookieName","encodeURIComponent","location","indexOf","exec","slice","normalizeLevel","input","toUpperCase","TypeError","setLevel","persist","levelNum","levelName","persistLevelIfPossible","setDefaultLevel","resetLevel","removeItem","clearPersistedLevel","enableAll","TRACE","disableAll","rebuild","childName","initialLevel","getLogger","logger","_log","noConflict","getLoggers","_typeof","_regeneratorRuntime","module","exports","__esModule","t","r","Object","n","hasOwnProperty","o","defineProperty","value","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","key","get","prop","_classCallCheck","toPropertyKey","toPrimitive","String","_defineProperties","_createClass","_defineProperty","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","_inherits","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Map","toString","has","set","Wrapper","TypesenseError","_Error","message","httpBody","httpStatus","_this","_callSuper","MissingConfigurationError","_TypesenseError","Configuration","options","nodes","map","node","setDefaultPathInNode","setDefaultPortInNode","_objectSpread","randomizeNodes","shuffleArray","nearestNode","connectionTimeoutSeconds","timeoutSeconds","healthcheckIntervalSeconds","numRetries","retryIntervalSeconds","apiKey","sendApiKeyAsQueryParam","cacheSearchResultsForSeconds","useServerSideSearchCache","axiosAdapter","logLevel","additionalHeaders","httpAgent","httpsAgent","paramsSerializer","showDeprecationWarnings","validate","validateNodes","isNodeMissingAnyParameters","_this2","some","every","warn","masterNode","readReplicaNodes","array","j","Math","floor","random","_ref","asyncGeneratorStep","_asyncToGenerator","_next","_throw","fn","thisArg","kindOf","cache","thing","str","toLowerCase","kindOfTest","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","getOwnPropertyNames","len","findKey","_key","_global","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","callbacks","addEventListener","source","data","shift","cb","setTimeout","asap","queueMicrotask","process","nextTick","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","extend","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","arr","forEachEntry","pair","matchAll","regExp","matches","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","split","toCamelCase","m","p1","p2","toFiniteNumber","defaultValue","Number","isFinite","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","catch","AxiosError","code","config","request","response","captureStackTrace","status","utils","toJSON","description","number","fileName","lineNumber","columnNumber","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","join","predicates","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serialize","serializeFn","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","href","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","reject","ERR_BAD_REQUEST","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","now","Date","startedAt","bytesCount","passed","round","lastArgs","timer","timestamp","threshold","args","clearTimeout","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","progressEventDecorator","throttled","asyncDecorator","isMSIE","URL","protocol","host","port","write","expires","domain","secure","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","allowAbsoluteUrls","isRelativeUrl","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","password","unescape","isURLSameOrigin","xsrfValue","cookies","XMLHttpRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","removeEventListener","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","trackStream","stream","onProgress","onFinish","iterable","reader","getReader","readStream","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","body","duplex","supportsResponseStream","resolvers","res","_","ERR_NOT_SUPPORT","knownAdapters","http","xhr","fetchOptions","composedSignal","toAbortSignal","requestContentLength","getContentLength","size","_request","getBodyLength","resolveBodyLength","contentTypeHeader","flush","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","VERSION","toFormData","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","RequestMalformed","RequestUnauthorized","ObjectNotFound","ObjectAlreadyExists","ObjectUnprocessable","ServerError","HTTPError","arrayableParams","query_by","query_by_weights","facet_by","group_by","include_fields","exclude_fields","highlight_fields","highlight_full_fields","pinned_hits","hidden_hits","infix","override_tags","num_typos","prefix","sort_by","hasNoArrayValues","normalizeArrayableParams","HEALTHY","isNodeJSEnvironment","versions","ApiCall","configuration","numRetriesPerRequest","additionalUserHeaders","initializeMetadataForNodes","currentNodeIndex","_timer","_handleBrowserReadableStream","_handleStreamingResponse","_performRequest","_patch","_put","_post","_delete2","_get","_callee","endpoint","queryParameters","_ref$abortSignal","abortSignal","_ref$responseType","_ref$streamConfig","streamConfig","isStreamingRequest","_args","_context","performRequest","_x","_callee2","_args2","_context2","_x2","_callee3","bodyParameters","_ref2","_ref2$abortSignal","_ref2$responseType","_ref2$streamConfig","_args3","_context3","_x3","_callee4","_args4","_context4","_x4","_callee5","_args5","_context5","_x5","_callee6","requestType","_ref3","_ref3$queryParameters","_ref3$bodyParameters","_ref3$additionalHeade","_ref3$abortSignal","_ref3$responseType","_ref3$skipConnectionT","skipConnectionTimeout","_ref3$enableKeepAlive","enableKeepAlive","_ref3$streamConfig","requestNumber","lastException","wasAborted","_loop","_ret","numTries","_context7","abortListener","requestOptions","_response$data","_response$data2","_error$code","_error$response","_context6","getNextNode","uriFor","defaultHeaders","Infinity","transformedData","startsWith","HTTPAgent","keepAlive","HTTPSAgent","Accept","setNodeHealthcheck","handleStreamingResponse","customErrorForResponse","t0","invokeOnErrorCallback","_x6","_x7","_x8","processDataLine","jsonData","conversation_id","dataContent","_callee7","_context8","handleNodeStreaming","handleBrowserStreaming","invokeOnCompleteCallback","_x9","_x10","allChunks","on","_lines$pop","lines","processStreamLines","finalizeStreamResult","_this3","_ref4","_callee8","_context9","handleBrowserReadableStream","handleBrowserStringResponse","_x11","_x12","_callee9","_yield$reader$read","_lines","_context10","TextDecoder","decode","_x13","_x14","_x15","_x16","_x17","finalResult","combineStreamingChunks","_step","_iterator","_createForOfIteratorHelper","processed","processStreamingLine","invokeOnChunkCallback","chunks","messagesChunks","getMessageChunks","combineMessageChunks","lastChunk","isCompleteSearchResponse","isChunkMessage","metadataChunk","find","isHealthy","nodeDueForHealthcheck","candidateNode","isDueForHealthcheck","lastAccessTimestamp","_this4","_callee10","seconds","_context11","_x18","messageFromServer","errorMessage","onChunk","onComplete","onError","errorObj","couldBeError","_unused","toErrorWithMessage","callbackError","RESOURCEPATH","Collections","apiCall","_retrieve","_create","post","ImportError","importResults","_objectWithoutProperties","getOwnPropertySymbols","propertyIsEnumerable","RequestWithCache","_perform","responseCache","responsePromiseCache","requestContext","requestParams","cacheOptions","_cacheOptions$cacheRe","cacheResponseForSeconds","_cacheOptions$maxSize","maxSize","isCacheDisabled","queryParams","requestParamsJSON","cacheEntry","cachePromiseEntry","responsePromise","oldestEntry","_oldestEntry","executeRequest","requestTimestamp","delete","SearchOnlyDocuments","collectionName","_search","requestWithCache","clearCache","searchParameters","_ref$cacheSearchResul","additionalQueryParams","_normalizeArrayablePa","rest","_excluded","conversation_stream","perform","endpointPath","operation","Documents","_exportStream","_export2","_importStream","_import2","_createMany","_update","_upsert","action","patch","query","documents","import","documentsInJSONLFormat","resultsInJSONLFormat","resultsInJSONFormat","failedItems","_args6","RangeError","includes","success","successCount","readableStream","_args7","_args8","_args9","Overrides","overrideId","put","Override","Synonyms","synonymId","Synonym","Document","documentId","partialDocument","Collection","_documents","_overrides","_synonyms","_exists","retrieve","individualDocuments","individualOverrides","individualSynonyms","Aliases","mapping","aliasName","Alias","Keys","searchKey","parameters","normalizedParams","paramsJSON","digest","createHmac","update","keyPrefix","substr","rawScopedKey","Key","Debug","Metrics","Health","Operations","operationName","MultiSearch","useTextContentType","searchRequests","commonParams","normalizedSearchRequests","paramsWithoutStream","normalizedQueryParams","use_cache","union","searches","Presets","presetId","_normalizedParams","search","Preset","AnalyticsRules","AnalyticsRule","AnalyticsEvents","Analytics","_analyticsRules","_analyticsEvents","individualAnalyticsRules","Stopwords","stopwordId","Stopword","ConversationModels","ConversationModel","Conversations","_conversationsModels","individualConversationModels","Conversation","StemmingDictionaries","wordRootCombinations","wordRootCombinationsInJSONLFormat","combo","StemmingDictionary","Stemming","_stemmingDictionaries","individualStemmingDictionaries","Client","_options$sendApiKeyAs","metrics","stats","Stats","health","operations","multiSearch","_collections","individualCollections","_aliases","individualAliases","_keys","individualKeys","_presets","individualPresets","_stopwords","individualStopwords","analytics","stemming","_conversations","individualConversations","SearchOnlyCollection","SearchClient","Errors"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/Typesense.d.ts b/lib/Typesense.d.ts deleted file mode 100644 index 3cdd44e6..00000000 --- a/lib/Typesense.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Client from "./Typesense/Client"; -import SearchClient from "./Typesense/SearchClient"; -import * as Errors from "./Typesense/Errors"; -export { Client, SearchClient, Errors }; -declare const _default: { - Client: typeof Client; - SearchClient: typeof SearchClient; - Errors: typeof Errors; -}; -export default _default; diff --git a/lib/Typesense.js b/lib/Typesense.js deleted file mode 100644 index 22556ae5..00000000 --- a/lib/Typesense.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Errors = exports.SearchClient = exports.Client = void 0; -var tslib_1 = require("tslib"); -var Client_1 = tslib_1.__importDefault(require("./Typesense/Client")); -exports.Client = Client_1.default; -var SearchClient_1 = tslib_1.__importDefault(require("./Typesense/SearchClient")); -exports.SearchClient = SearchClient_1.default; -var Errors = tslib_1.__importStar(require("./Typesense/Errors")); -exports.Errors = Errors; -exports.default = { Client: Client_1.default, SearchClient: SearchClient_1.default, Errors: Errors }; -//# sourceMappingURL=Typesense.js.map \ No newline at end of file diff --git a/lib/Typesense.js.map b/lib/Typesense.js.map deleted file mode 100644 index 10f3e223..00000000 --- a/lib/Typesense.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Typesense.js","sourceRoot":"","sources":["../src/Typesense.ts"],"names":[],"mappings":";;;;AAAA,sEAAwC;AAI/B,iBAJF,gBAAM,CAIE;AAHf,kFAAoD;AAGnC,uBAHV,sBAAY,CAGU;AAF7B,iEAA6C;AAEd,wBAAM;AACrC,kBAAe,EAAE,MAAM,kBAAA,EAAE,YAAY,wBAAA,EAAE,MAAM,QAAA,EAAE,CAAC"} \ No newline at end of file diff --git a/lib/Typesense/Alias.js b/lib/Typesense/Alias.js index 08cb130a..8111c6a3 100644 --- a/lib/Typesense/Alias.js +++ b/lib/Typesense/Alias.js @@ -1,30 +1,21 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Aliases_1 = tslib_1.__importDefault(require("./Aliases")); -var Alias = /** @class */ (function () { - function Alias(name, apiCall) { +const tslib_1 = require("tslib"); +const Aliases_1 = tslib_1.__importDefault(require("./Aliases")); +class Alias { + constructor(name, apiCall) { this.name = name; this.apiCall = apiCall; } - Alias.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Alias.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Alias.prototype.endpointPath = function () { - return "".concat(Aliases_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); - }; - return Alias; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Aliases_1.default.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +} exports.default = Alias; //# sourceMappingURL=Alias.js.map \ No newline at end of file diff --git a/lib/Typesense/Alias.js.map b/lib/Typesense/Alias.js.map index 03fa9442..76b1e5eb 100644 --- a/lib/Typesense/Alias.js.map +++ b/lib/Typesense/Alias.js.map @@ -1 +1 @@ -{"version":3,"file":"Alias.js","sourceRoot":"","sources":["../../src/Typesense/Alias.ts"],"names":[],"mappings":";;;AAAA,8DAA2D;AAG3D;IACE,eAAoB,IAAY,EAAU,OAAgB;QAAtC,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExD,wBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAEK,sBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,4BAAY,GAApB;QACE,OAAO,UAAG,iBAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IACpE,CAAC;IACH,YAAC;AAAD,CAAC,AAdD,IAcC"} \ No newline at end of file +{"version":3,"file":"Alias.js","sourceRoot":"","sources":["../../src/Typesense/Alias.ts"],"names":[],"mappings":";;;AAAA,gEAA2D;AAG3D,MAAqB,KAAK;IACxB,YAAoB,IAAY,EAAU,OAAgB;QAAtC,SAAI,GAAJ,IAAI,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAE9D,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAwB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,iBAAO,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACpE,CAAC;CACF;AAdD,wBAcC"} \ No newline at end of file diff --git a/lib/Typesense/Aliases.js b/lib/Typesense/Aliases.js index ac647bc9..481cf13e 100644 --- a/lib/Typesense/Aliases.js +++ b/lib/Typesense/Aliases.js @@ -1,36 +1,22 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/aliases"; -var Aliases = /** @class */ (function () { - function Aliases(apiCall) { +const RESOURCEPATH = "/aliases"; +class Aliases { + constructor(apiCall) { this.apiCall = apiCall; } - Aliases.prototype.upsert = function (name, mapping) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(name), mapping)]; - }); - }); - }; - Aliases.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - Aliases.prototype.endpointPath = function (aliasName) { - return "".concat(Aliases.RESOURCEPATH, "/").concat(encodeURIComponent(aliasName)); - }; - Object.defineProperty(Aliases, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Aliases; -}()); + async upsert(name, mapping) { + return this.apiCall.put(this.endpointPath(name), mapping); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } + endpointPath(aliasName) { + return `${Aliases.RESOURCEPATH}/${encodeURIComponent(aliasName)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Aliases; //# sourceMappingURL=Aliases.js.map \ No newline at end of file diff --git a/lib/Typesense/Aliases.js.map b/lib/Typesense/Aliases.js.map index 9b3a301a..e97188a0 100644 --- a/lib/Typesense/Aliases.js.map +++ b/lib/Typesense/Aliases.js.map @@ -1 +1 @@ -{"version":3,"file":"Aliases.js","sourceRoot":"","sources":["../../src/Typesense/Aliases.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,UAAU,CAAC;AAchC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,wBAAM,GAAZ,UACE,IAAY,EACZ,OAAoC;;;gBAEpC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,OAAO,CACR,EAAC;;;KACH;IAEK,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkC,YAAY,CAAC,EAAC;;;KACxE;IAEO,8BAAY,GAApB,UAAqB,SAAS;QAC5B,OAAO,UAAG,OAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IACpE,CAAC;IAED,sBAAW,uBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,cAAC;AAAD,CAAC,AAxBD,IAwBC"} \ No newline at end of file +{"version":3,"file":"Aliases.js","sourceRoot":"","sources":["../../src/Typesense/Aliases.ts"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,UAAU,CAAC;AAchC,MAAqB,OAAO;IAC1B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,OAAoC;QAEpC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkC,YAAY,CAAC,CAAC;IACzE,CAAC;IAEO,YAAY,CAAC,SAAS;QAC5B,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAxBD,0BAwBC"} \ No newline at end of file diff --git a/lib/Typesense/Analytics.js b/lib/Typesense/Analytics.js index 620f3bfb..aabeff97 100644 --- a/lib/Typesense/Analytics.js +++ b/lib/Typesense/Analytics.js @@ -1,19 +1,19 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var AnalyticsRules_1 = tslib_1.__importDefault(require("./AnalyticsRules")); -var AnalyticsRule_1 = tslib_1.__importDefault(require("./AnalyticsRule")); -var AnalyticsEvents_1 = tslib_1.__importDefault(require("./AnalyticsEvents")); -var RESOURCEPATH = "/analytics"; -var Analytics = /** @class */ (function () { - function Analytics(apiCall) { +const tslib_1 = require("tslib"); +const AnalyticsRules_1 = tslib_1.__importDefault(require("./AnalyticsRules")); +const AnalyticsRule_1 = tslib_1.__importDefault(require("./AnalyticsRule")); +const AnalyticsEvents_1 = tslib_1.__importDefault(require("./AnalyticsEvents")); +const RESOURCEPATH = "/analytics"; +class Analytics { + constructor(apiCall) { this.apiCall = apiCall; this.individualAnalyticsRules = {}; this.apiCall = apiCall; this._analyticsRules = new AnalyticsRules_1.default(this.apiCall); this._analyticsEvents = new AnalyticsEvents_1.default(this.apiCall); } - Analytics.prototype.rules = function (id) { + rules(id) { if (id === undefined) { return this._analyticsRules; } @@ -23,18 +23,13 @@ var Analytics = /** @class */ (function () { } return this.individualAnalyticsRules[id]; } - }; - Analytics.prototype.events = function () { + } + events() { return this._analyticsEvents; - }; - Object.defineProperty(Analytics, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Analytics; -}()); + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Analytics; //# sourceMappingURL=Analytics.js.map \ No newline at end of file diff --git a/lib/Typesense/Analytics.js.map b/lib/Typesense/Analytics.js.map index dd57042d..a9c24497 100644 --- a/lib/Typesense/Analytics.js.map +++ b/lib/Typesense/Analytics.js.map @@ -1 +1 @@ -{"version":3,"file":"Analytics.js","sourceRoot":"","sources":["../../src/Typesense/Analytics.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AAC9C,0EAA4C;AAC5C,8EAAgD;AAEhD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;IAKE,mBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAH5B,6BAAwB,GAAkC,EAAE,CAAC;QAI5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAID,yBAAK,GAAL,UAAM,EAAW;QACf,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,IAAI,uBAAa,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,0BAAM,GAAN;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA/BD,IA+BC"} \ No newline at end of file +{"version":3,"file":"Analytics.js","sourceRoot":"","sources":["../../src/Typesense/Analytics.ts"],"names":[],"mappings":";;;AACA,8EAA8C;AAC9C,4EAA4C;AAC5C,gFAAgD;AAEhD,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,MAAqB,SAAS;IAK5B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAH5B,6BAAwB,GAAkC,EAAE,CAAC;QAI5E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,wBAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,CAAC;IAID,KAAK,CAAC,EAAW;QACf,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,IAAI,uBAAa,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA/BD,4BA+BC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsEvents.js b/lib/Typesense/AnalyticsEvents.js index 9f8691a7..7e01bf01 100644 --- a/lib/Typesense/AnalyticsEvents.js +++ b/lib/Typesense/AnalyticsEvents.js @@ -1,30 +1,20 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/analytics/events"; -var AnalyticsEvents = /** @class */ (function () { - function AnalyticsEvents(apiCall) { +const RESOURCEPATH = "/analytics/events"; +class AnalyticsEvents { + constructor(apiCall) { this.apiCall = apiCall; this.apiCall = apiCall; } - AnalyticsEvents.prototype.create = function (params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.post(this.endpointPath(), params)]; - }); - }); - }; - AnalyticsEvents.prototype.endpointPath = function (operation) { - return "".concat(AnalyticsEvents.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(AnalyticsEvents, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return AnalyticsEvents; -}()); + async create(params) { + return this.apiCall.post(this.endpointPath(), params); + } + endpointPath(operation) { + return `${AnalyticsEvents.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = AnalyticsEvents; //# sourceMappingURL=AnalyticsEvents.js.map \ No newline at end of file diff --git a/lib/Typesense/AnalyticsEvents.js.map b/lib/Typesense/AnalyticsEvents.js.map index 12348751..9b96e5ef 100644 --- a/lib/Typesense/AnalyticsEvents.js.map +++ b/lib/Typesense/AnalyticsEvents.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsEvents.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsEvents.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC;IACE,yBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,gCAAM,GAAZ,UACE,MAAkC;;;gBAElC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEO,sCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,eAAe,CAAC,YAAY,SACpC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,+BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,sBAAC;AAAD,CAAC,AAvBD,IAuBC"} \ No newline at end of file +{"version":3,"file":"AnalyticsEvents.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsEvents.ts"],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEzC,MAAqB,eAAe;IAClC,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAkC;QAElC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,eAAe,CAAC,YAAY,GACpC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CACnE,EAAE,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAvBD,kCAuBC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRule.js b/lib/Typesense/AnalyticsRule.js index 7155fe00..21a2646d 100644 --- a/lib/Typesense/AnalyticsRule.js +++ b/lib/Typesense/AnalyticsRule.js @@ -1,30 +1,21 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var AnalyticsRules_1 = tslib_1.__importDefault(require("./AnalyticsRules")); -var AnalyticsRule = /** @class */ (function () { - function AnalyticsRule(name, apiCall) { +const tslib_1 = require("tslib"); +const AnalyticsRules_1 = tslib_1.__importDefault(require("./AnalyticsRules")); +class AnalyticsRule { + constructor(name, apiCall) { this.name = name; this.apiCall = apiCall; } - AnalyticsRule.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - AnalyticsRule.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - AnalyticsRule.prototype.endpointPath = function () { - return "".concat(AnalyticsRules_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); - }; - return AnalyticsRule; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${AnalyticsRules_1.default.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +} exports.default = AnalyticsRule; //# sourceMappingURL=AnalyticsRule.js.map \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRule.js.map b/lib/Typesense/AnalyticsRule.js.map index 215fe372..652604f1 100644 --- a/lib/Typesense/AnalyticsRule.js.map +++ b/lib/Typesense/AnalyticsRule.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsRule.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRule.ts"],"names":[],"mappings":";;;AACA,4EAA8C;AA+B9C;IACE,uBACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACnE;IAEK,8BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,oCAAY,GAApB;QACE,OAAO,UAAG,wBAAc,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IAC3E,CAAC;IACH,oBAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"AnalyticsRule.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRule.ts"],"names":[],"mappings":";;;AACA,8EAA8C;AA+B9C,MAAqB,aAAa;IAChC,YACU,IAAY,EACZ,OAAgB;QADhB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA4B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,wBAAc,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3E,CAAC;CACF;AAjBD,gCAiBC"} \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRules.js b/lib/Typesense/AnalyticsRules.js index a4d8b9d4..36f6259e 100644 --- a/lib/Typesense/AnalyticsRules.js +++ b/lib/Typesense/AnalyticsRules.js @@ -1,37 +1,23 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/analytics/rules"; -var AnalyticsRules = /** @class */ (function () { - function AnalyticsRules(apiCall) { +const RESOURCEPATH = "/analytics/rules"; +class AnalyticsRules { + constructor(apiCall) { this.apiCall = apiCall; this.apiCall = apiCall; } - AnalyticsRules.prototype.upsert = function (name, params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(name), params)]; - }); - }); - }; - AnalyticsRules.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - AnalyticsRules.prototype.endpointPath = function (operation) { - return "".concat(AnalyticsRules.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(AnalyticsRules, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return AnalyticsRules; -}()); + async upsert(name, params) { + return this.apiCall.put(this.endpointPath(name), params); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${AnalyticsRules.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = AnalyticsRules; //# sourceMappingURL=AnalyticsRules.js.map \ No newline at end of file diff --git a/lib/Typesense/AnalyticsRules.js.map b/lib/Typesense/AnalyticsRules.js.map index b18a8b68..c31c3637 100644 --- a/lib/Typesense/AnalyticsRules.js.map +++ b/lib/Typesense/AnalyticsRules.js.map @@ -1 +1 @@ -{"version":3,"file":"AnalyticsRules.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRules.ts"],"names":[],"mappings":";;;AAUA,IAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;IACE,wBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,+BAAM,GAAZ,UACE,IAAY,EACZ,MAAiC;;;gBAEjC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,MAAM,CACP,EAAC;;;KACH;IAEK,iCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC5E;IAEO,qCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,cAAc,CAAC,YAAY,SACnC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,8BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,qBAAC;AAAD,CAAC,AA5BD,IA4BC"} \ No newline at end of file +{"version":3,"file":"AnalyticsRules.js","sourceRoot":"","sources":["../../src/Typesense/AnalyticsRules.ts"],"names":[],"mappings":";;AAUA,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC,MAAqB,cAAc;IACjC,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAY,EACZ,MAAiC;QAEjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EACvB,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA+B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,cAAc,CAAC,YAAY,GACnC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CACnE,EAAE,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA5BD,iCA4BC"} \ No newline at end of file diff --git a/lib/Typesense/ApiCall.js b/lib/Typesense/ApiCall.js index 684d11e5..55854b02 100644 --- a/lib/Typesense/ApiCall.js +++ b/lib/Typesense/ApiCall.js @@ -1,21 +1,21 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var axios_1 = tslib_1.__importDefault(require("axios")); -var http_1 = require("http"); -var https_1 = require("https"); -var Errors_1 = require("./Errors"); -var TypesenseError_1 = tslib_1.__importDefault(require("./Errors/TypesenseError")); -var Utils_1 = require("./Utils"); -var APIKEYHEADERNAME = "X-TYPESENSE-API-KEY"; -var HEALTHY = true; -var UNHEALTHY = false; -var isNodeJSEnvironment = typeof process !== "undefined" && +const tslib_1 = require("tslib"); +const axios_1 = tslib_1.__importDefault(require("axios")); +const http_1 = require("http"); +const https_1 = require("https"); +const Errors_1 = require("./Errors"); +const TypesenseError_1 = tslib_1.__importDefault(require("./Errors/TypesenseError")); +const Utils_1 = require("./Utils"); +const APIKEYHEADERNAME = "X-TYPESENSE-API-KEY"; +const HEALTHY = true; +const UNHEALTHY = false; +const isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null && typeof window === "undefined"; -var ApiCall = /** @class */ (function () { - function ApiCall(configuration) { +class ApiCall { + constructor(configuration) { this.configuration = configuration; this.apiKey = this.configuration.apiKey; this.nodes = @@ -37,302 +37,238 @@ var ApiCall = /** @class */ (function () { this.initializeMetadataForNodes(); this.currentNodeIndex = -1; } - ApiCall.prototype.get = function (endpoint, queryParameters, _a) { - if (queryParameters === void 0) { queryParameters = {}; } - var _b = _a === void 0 ? {} : _a, _c = _b.abortSignal, abortSignal = _c === void 0 ? null : _c, _d = _b.responseType, responseType = _d === void 0 ? undefined : _d, _e = _b.streamConfig, streamConfig = _e === void 0 ? undefined : _e, isStreamingRequest = _b.isStreamingRequest; - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_f) { - return [2 /*return*/, this.performRequest("get", endpoint, { - queryParameters: queryParameters, - abortSignal: abortSignal, - responseType: responseType, - streamConfig: streamConfig, - isStreamingRequest: isStreamingRequest, - })]; - }); + async get(endpoint, queryParameters = {}, { abortSignal = null, responseType = undefined, streamConfig = undefined, isStreamingRequest, } = {}) { + return this.performRequest("get", endpoint, { + queryParameters, + abortSignal, + responseType, + streamConfig, + isStreamingRequest, }); - }; - ApiCall.prototype.delete = function (endpoint, queryParameters) { - if (queryParameters === void 0) { queryParameters = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.performRequest("delete", endpoint, { - queryParameters: queryParameters, - isStreamingRequest: false, - })]; - }); + } + async delete(endpoint, queryParameters = {}) { + return this.performRequest("delete", endpoint, { + queryParameters, + isStreamingRequest: false, }); - }; - ApiCall.prototype.post = function (endpoint, bodyParameters, queryParameters, additionalHeaders, _a) { - if (bodyParameters === void 0) { bodyParameters = {}; } - if (queryParameters === void 0) { queryParameters = {}; } - if (additionalHeaders === void 0) { additionalHeaders = {}; } - var _b = _a === void 0 ? {} : _a, _c = _b.abortSignal, abortSignal = _c === void 0 ? null : _c, _d = _b.responseType, responseType = _d === void 0 ? undefined : _d, _e = _b.streamConfig, streamConfig = _e === void 0 ? undefined : _e, isStreamingRequest = _b.isStreamingRequest; - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_f) { - return [2 /*return*/, this.performRequest("post", endpoint, { - queryParameters: queryParameters, - bodyParameters: bodyParameters, - additionalHeaders: additionalHeaders, - abortSignal: abortSignal, - responseType: responseType, - streamConfig: streamConfig, - isStreamingRequest: isStreamingRequest, - })]; - }); + } + async post(endpoint, bodyParameters = {}, queryParameters = {}, additionalHeaders = {}, { abortSignal = null, responseType = undefined, streamConfig = undefined, isStreamingRequest, } = {}) { + return this.performRequest("post", endpoint, { + queryParameters, + bodyParameters, + additionalHeaders, + abortSignal, + responseType, + streamConfig, + isStreamingRequest, }); - }; - ApiCall.prototype.put = function (endpoint, bodyParameters, queryParameters) { - if (bodyParameters === void 0) { bodyParameters = {}; } - if (queryParameters === void 0) { queryParameters = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.performRequest("put", endpoint, { - queryParameters: queryParameters, - bodyParameters: bodyParameters, - isStreamingRequest: false, - })]; - }); + } + async put(endpoint, bodyParameters = {}, queryParameters = {}) { + return this.performRequest("put", endpoint, { + queryParameters, + bodyParameters, + isStreamingRequest: false, }); - }; - ApiCall.prototype.patch = function (endpoint, bodyParameters, queryParameters) { - if (bodyParameters === void 0) { bodyParameters = {}; } - if (queryParameters === void 0) { queryParameters = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.performRequest("patch", endpoint, { - queryParameters: queryParameters, - bodyParameters: bodyParameters, - isStreamingRequest: false, - })]; - }); + } + async patch(endpoint, bodyParameters = {}, queryParameters = {}) { + return this.performRequest("patch", endpoint, { + queryParameters, + bodyParameters, + isStreamingRequest: false, }); - }; - ApiCall.prototype.getAdapter = function () { + } + getAdapter() { if (!this.configuration.axiosAdapter) return undefined; if (typeof this.configuration.axiosAdapter === "function") return this.configuration.axiosAdapter; - var isCloudflareWorkers = typeof navigator !== "undefined" && + const isCloudflareWorkers = typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers"; return isCloudflareWorkers ? axios_1.default.getAdapter(this.configuration.axiosAdapter).bind(globalThis) : axios_1.default.getAdapter(this.configuration.axiosAdapter); - }; - ApiCall.prototype.performRequest = function (requestType, endpoint, _a) { - var _b, _c, _d, _e; - var _f = _a.queryParameters, queryParameters = _f === void 0 ? null : _f, _g = _a.bodyParameters, bodyParameters = _g === void 0 ? null : _g, _h = _a.additionalHeaders, additionalHeaders = _h === void 0 ? {} : _h, _j = _a.abortSignal, abortSignal = _j === void 0 ? null : _j, _k = _a.responseType, responseType = _k === void 0 ? undefined : _k, _l = _a.skipConnectionTimeout, skipConnectionTimeout = _l === void 0 ? false : _l, _m = _a.enableKeepAlive, enableKeepAlive = _m === void 0 ? undefined : _m, _o = _a.streamConfig, streamConfig = _o === void 0 ? undefined : _o, isStreamingRequest = _a.isStreamingRequest; - return tslib_1.__awaiter(this, void 0, void 0, function () { - var requestNumber, lastException, wasAborted, _loop_1, this_1, numTries, state_1; - return tslib_1.__generator(this, function (_p) { - switch (_p.label) { - case 0: - this.configuration.validate(); - if (isStreamingRequest) { - this.logger.debug("Request: Performing streaming request to ".concat(endpoint)); - // For browser streaming, always use responseType: "stream" and adapter: "fetch" - if (!isNodeJSEnvironment && typeof fetch !== "undefined") { - this.logger.debug("Using fetch adapter for browser streaming"); - responseType = "stream"; + } + async performRequest(requestType, endpoint, { queryParameters = null, bodyParameters = null, additionalHeaders = {}, abortSignal = null, responseType = undefined, skipConnectionTimeout = false, enableKeepAlive = undefined, streamConfig = undefined, isStreamingRequest, }) { + var _a, _b, _c, _d; + this.configuration.validate(); + if (isStreamingRequest) { + this.logger.debug(`Request: Performing streaming request to ${endpoint}`); + // For browser streaming, always use responseType: "stream" and adapter: "fetch" + if (!isNodeJSEnvironment && typeof fetch !== "undefined") { + this.logger.debug("Using fetch adapter for browser streaming"); + responseType = "stream"; + } + } + const requestNumber = Date.now(); + let lastException; + let wasAborted = false; + this.logger.debug(`Request #${requestNumber}: Performing ${requestType.toUpperCase()} request: ${endpoint}`); + for (let numTries = 1; numTries <= this.numRetriesPerRequest + 1; numTries++) { + const node = this.getNextNode(requestNumber); + this.logger.debug(`Request #${requestNumber}: Attempting ${requestType.toUpperCase()} request Try #${numTries} to Node ${node.index}`); + if (abortSignal && abortSignal.aborted) { + return Promise.reject(new Error("Request aborted by caller.")); + } + let abortListener; + try { + const requestOptions = { + method: requestType, + url: this.uriFor(endpoint, node), + headers: Object.assign({}, this.defaultHeaders(), additionalHeaders, this.additionalUserHeaders), + maxContentLength: Infinity, + maxBodyLength: Infinity, + validateStatus: (status) => { + /* Override default validateStatus, which only considers 2xx a success. + In our case, if the server returns any HTTP code, we will handle it below. + We do this to be able to raise custom errors based on response code. + */ + return status > 0; + }, + transformResponse: [ + (data, headers) => { + let transformedData = data; + if (headers !== undefined && + typeof data === "string" && + headers["content-type"] && + headers["content-type"].startsWith("application/json")) { + transformedData = JSON.parse(data); } - } - requestNumber = Date.now(); - wasAborted = false; - this.logger.debug("Request #".concat(requestNumber, ": Performing ").concat(requestType.toUpperCase(), " request: ").concat(endpoint)); - _loop_1 = function (numTries) { - var node, abortListener, requestOptions, cancelToken, source_1, response, error_1; - return tslib_1.__generator(this, function (_q) { - switch (_q.label) { - case 0: - node = this_1.getNextNode(requestNumber); - this_1.logger.debug("Request #".concat(requestNumber, ": Attempting ").concat(requestType.toUpperCase(), " request Try #").concat(numTries, " to Node ").concat(node.index)); - if (abortSignal && abortSignal.aborted) { - return [2 /*return*/, { value: Promise.reject(new Error("Request aborted by caller.")) }]; - } - abortListener = void 0; - _q.label = 1; - case 1: - _q.trys.push([1, 3, 5, 6]); - requestOptions = { - method: requestType, - url: this_1.uriFor(endpoint, node), - headers: Object.assign({}, this_1.defaultHeaders(), additionalHeaders, this_1.additionalUserHeaders), - maxContentLength: Infinity, - maxBodyLength: Infinity, - validateStatus: function (status) { - /* Override default validateStatus, which only considers 2xx a success. - In our case, if the server returns any HTTP code, we will handle it below. - We do this to be able to raise custom errors based on response code. - */ - return status > 0; - }, - transformResponse: [ - function (data, headers) { - var transformedData = data; - if (headers !== undefined && - typeof data === "string" && - headers["content-type"] && - headers["content-type"].startsWith("application/json")) { - transformedData = JSON.parse(data); - } - return transformedData; - }, - ], - }; - // Use fetch adapter only for streaming requests in browser environments - requestOptions.adapter = - isStreamingRequest && !isNodeJSEnvironment - ? "fetch" - : this_1.getAdapter(); - if (skipConnectionTimeout !== true) { - requestOptions.timeout = this_1.connectionTimeoutSeconds * 1000; - } - if (queryParameters && Object.keys(queryParameters).length !== 0) { - requestOptions.params = queryParameters; - } - if (this_1.sendApiKeyAsQueryParam) { - requestOptions.params = requestOptions.params || {}; - requestOptions.params["x-typesense-api-key"] = this_1.apiKey; - } - if (this_1.configuration.httpAgent) { - this_1.logger.debug("Request #".concat(requestNumber, ": Using custom httpAgent")); - requestOptions.httpAgent = this_1.configuration.httpAgent; - } - else if (enableKeepAlive === true) { - if (!isNodeJSEnvironment) { - this_1.logger.warn("Request #".concat(requestNumber, ": Cannot use custom httpAgent in a browser environment to enable keepAlive")); - } - else { - this_1.logger.debug("Request #".concat(requestNumber, ": Enabling KeepAlive")); - requestOptions.httpAgent = new http_1.Agent({ keepAlive: true }); - } - } - if (this_1.configuration.httpsAgent) { - this_1.logger.debug("Request #".concat(requestNumber, ": Using custom httpsAgent")); - requestOptions.httpsAgent = this_1.configuration.httpsAgent; - } - else if (enableKeepAlive === true) { - if (!isNodeJSEnvironment) { - this_1.logger.warn("Request #".concat(requestNumber, ": Cannot use custom httpAgent in a browser environment to enable keepAlive")); - } - else { - this_1.logger.debug("Request #".concat(requestNumber, ": Enabling keepAlive")); - requestOptions.httpsAgent = new https_1.Agent({ keepAlive: true }); - } - } - if (this_1.configuration.paramsSerializer) { - this_1.logger.debug("Request #".concat(requestNumber, ": Using custom paramsSerializer")); - requestOptions.paramsSerializer = this_1.configuration.paramsSerializer; - } - if (bodyParameters && - ((typeof bodyParameters === "string" && - bodyParameters.length !== 0) || - (typeof bodyParameters === "object" && - Object.keys(bodyParameters).length !== 0))) { - requestOptions.data = bodyParameters; - } - // Translate from user-provided AbortController to the Axios request cancel mechanism. - if (abortSignal) { - cancelToken = axios_1.default.CancelToken; - source_1 = cancelToken.source(); - abortListener = function () { - wasAborted = true; - source_1.cancel(); - }; - abortSignal.addEventListener("abort", abortListener); - requestOptions.cancelToken = source_1.token; - } - if (isStreamingRequest) { - requestOptions.responseType = "stream"; - if (!isNodeJSEnvironment) { - requestOptions.headers = tslib_1.__assign(tslib_1.__assign({}, requestOptions.headers), { Accept: "text/event-stream" }); - } - } - else if (responseType) { - requestOptions.responseType = responseType; - } - return [4 /*yield*/, (0, axios_1.default)(requestOptions)]; - case 2: - response = _q.sent(); - if (response.status >= 1 && response.status <= 499) { - // Treat any status code > 0 and < 500 to be an indication that node is healthy - // We exclude 0 since some clients return 0 when request fails - this_1.setNodeHealthcheck(node, HEALTHY); - } - this_1.logger.debug("Request #".concat(requestNumber, ": Request to Node ").concat(node.index, " was made. Response Code was ").concat(response.status, ".")); - if (response.status >= 200 && response.status < 300) { - if (isStreamingRequest) { - return [2 /*return*/, { value: this_1.handleStreamingResponse(response, streamConfig) }]; - } - return [2 /*return*/, { value: Promise.resolve(response.data) }]; - } - else if (response.status < 500) { - return [2 /*return*/, { value: Promise.reject(this_1.customErrorForResponse(response, (_b = response.data) === null || _b === void 0 ? void 0 : _b.message, requestOptions.data)) }]; - } - else { - // Retry all other HTTP errors (HTTPStatus > 500) - // This will get caught by the catch block below - throw this_1.customErrorForResponse(response, (_c = response.data) === null || _c === void 0 ? void 0 : _c.message, requestOptions.data); - } - return [3 /*break*/, 6]; - case 3: - error_1 = _q.sent(); - // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts - if (!wasAborted) { - this_1.setNodeHealthcheck(node, UNHEALTHY); - } - lastException = error_1; - this_1.logger.warn("Request #".concat(requestNumber, ": Request to Node ").concat(node.index, " failed due to \"").concat((_d = error_1 === null || error_1 === void 0 ? void 0 : error_1.code) !== null && _d !== void 0 ? _d : "", " ").concat(error_1.message).concat(error_1.response == null - ? "" - : " - " + JSON.stringify((_e = error_1.response) === null || _e === void 0 ? void 0 : _e.data), "\"")); - if (wasAborted) { - return [2 /*return*/, { value: Promise.reject(new Error("Request aborted by caller.")) }]; - } - if (isStreamingRequest) { - this_1.invokeOnErrorCallback(error_1, streamConfig); - } - if (numTries < this_1.numRetriesPerRequest + 1) { - this_1.logger.warn("Request #".concat(requestNumber, ": Sleeping for ").concat(this_1.retryIntervalSeconds, "s and then retrying request...")); - } - else { - this_1.logger.debug("Request #".concat(requestNumber, ": No retries left. Raising last error")); - return [2 /*return*/, { value: Promise.reject(lastException) }]; - } - return [4 /*yield*/, this_1.timer(this_1.retryIntervalSeconds)]; - case 4: - _q.sent(); - return [3 /*break*/, 6]; - case 5: - if (abortSignal && abortListener) { - abortSignal.removeEventListener("abort", abortListener); - } - return [7 /*endfinally*/]; - case 6: return [2 /*return*/]; - } - }); + return transformedData; + }, + ], + }; + // Use fetch adapter only for streaming requests in browser environments + requestOptions.adapter = + isStreamingRequest && !isNodeJSEnvironment + ? "fetch" + : this.getAdapter(); + if (skipConnectionTimeout !== true) { + requestOptions.timeout = this.connectionTimeoutSeconds * 1000; + } + if (queryParameters && Object.keys(queryParameters).length !== 0) { + requestOptions.params = queryParameters; + } + if (this.sendApiKeyAsQueryParam) { + requestOptions.params = requestOptions.params || {}; + requestOptions.params["x-typesense-api-key"] = this.apiKey; + } + if (this.configuration.httpAgent) { + this.logger.debug(`Request #${requestNumber}: Using custom httpAgent`); + requestOptions.httpAgent = this.configuration.httpAgent; + } + else if (enableKeepAlive === true) { + if (!isNodeJSEnvironment) { + this.logger.warn(`Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`); + } + else { + this.logger.debug(`Request #${requestNumber}: Enabling KeepAlive`); + requestOptions.httpAgent = new http_1.Agent({ keepAlive: true }); + } + } + if (this.configuration.httpsAgent) { + this.logger.debug(`Request #${requestNumber}: Using custom httpsAgent`); + requestOptions.httpsAgent = this.configuration.httpsAgent; + } + else if (enableKeepAlive === true) { + if (!isNodeJSEnvironment) { + this.logger.warn(`Request #${requestNumber}: Cannot use custom httpAgent in a browser environment to enable keepAlive`); + } + else { + this.logger.debug(`Request #${requestNumber}: Enabling keepAlive`); + requestOptions.httpsAgent = new https_1.Agent({ keepAlive: true }); + } + } + if (this.configuration.paramsSerializer) { + this.logger.debug(`Request #${requestNumber}: Using custom paramsSerializer`); + requestOptions.paramsSerializer = this.configuration.paramsSerializer; + } + if (bodyParameters && + ((typeof bodyParameters === "string" && + bodyParameters.length !== 0) || + (typeof bodyParameters === "object" && + Object.keys(bodyParameters).length !== 0))) { + requestOptions.data = bodyParameters; + } + // Translate from user-provided AbortController to the Axios request cancel mechanism. + if (abortSignal) { + const cancelToken = axios_1.default.CancelToken; + const source = cancelToken.source(); + abortListener = () => { + wasAborted = true; + source.cancel(); + }; + abortSignal.addEventListener("abort", abortListener); + requestOptions.cancelToken = source.token; + } + if (isStreamingRequest) { + requestOptions.responseType = "stream"; + if (!isNodeJSEnvironment) { + requestOptions.headers = { + ...requestOptions.headers, + Accept: "text/event-stream", }; - this_1 = this; - numTries = 1; - _p.label = 1; - case 1: - if (!(numTries <= this.numRetriesPerRequest + 1)) return [3 /*break*/, 4]; - return [5 /*yield**/, _loop_1(numTries)]; - case 2: - state_1 = _p.sent(); - if (typeof state_1 === "object") - return [2 /*return*/, state_1.value]; - _p.label = 3; - case 3: - numTries++; - return [3 /*break*/, 1]; - case 4: - this.logger.debug("Request #".concat(requestNumber, ": No retries left. Raising last error")); - return [2 /*return*/, Promise.reject(lastException)]; + } } - }); - }); - }; - ApiCall.prototype.processStreamingLine = function (line) { + else if (responseType) { + requestOptions.responseType = responseType; + } + const response = await (0, axios_1.default)(requestOptions); + if (response.status >= 1 && response.status <= 499) { + // Treat any status code > 0 and < 500 to be an indication that node is healthy + // We exclude 0 since some clients return 0 when request fails + this.setNodeHealthcheck(node, HEALTHY); + } + this.logger.debug(`Request #${requestNumber}: Request to Node ${node.index} was made. Response Code was ${response.status}.`); + if (response.status >= 200 && response.status < 300) { + if (isStreamingRequest) { + return this.handleStreamingResponse(response, streamConfig); + } + return Promise.resolve(response.data); + } + else if (response.status < 500) { + // Next, if response is anything but 5xx, don't retry, return a custom error + return Promise.reject(this.customErrorForResponse(response, (_a = response.data) === null || _a === void 0 ? void 0 : _a.message, requestOptions.data)); + } + else { + // Retry all other HTTP errors (HTTPStatus > 500) + // This will get caught by the catch block below + throw this.customErrorForResponse(response, (_b = response.data) === null || _b === void 0 ? void 0 : _b.message, requestOptions.data); + } + } + catch (error) { + // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts + if (!wasAborted) { + this.setNodeHealthcheck(node, UNHEALTHY); + } + lastException = error; + this.logger.warn(`Request #${requestNumber}: Request to Node ${node.index} failed due to "${(_c = error === null || error === void 0 ? void 0 : error.code) !== null && _c !== void 0 ? _c : ""} ${error.message}${error.response == null + ? "" + : " - " + JSON.stringify((_d = error.response) === null || _d === void 0 ? void 0 : _d.data)}"`); + if (wasAborted) { + return Promise.reject(new Error("Request aborted by caller.")); + } + if (isStreamingRequest) { + this.invokeOnErrorCallback(error, streamConfig); + } + if (numTries < this.numRetriesPerRequest + 1) { + this.logger.warn(`Request #${requestNumber}: Sleeping for ${this.retryIntervalSeconds}s and then retrying request...`); + } + else { + this.logger.debug(`Request #${requestNumber}: No retries left. Raising last error`); + return Promise.reject(lastException); + } + await this.timer(this.retryIntervalSeconds); + } + finally { + if (abortSignal && abortListener) { + abortSignal.removeEventListener("abort", abortListener); + } + } + } + this.logger.debug(`Request #${requestNumber}: No retries left. Raising last error`); + return Promise.reject(lastException); + } + processStreamingLine(line) { if (!line.trim() || line === "data: [DONE]") { return null; } @@ -343,7 +279,7 @@ var ApiCall = /** @class */ (function () { // Try parsing as JSON if it starts with a brace if (line.trim().startsWith("{")) { try { - var jsonData = JSON.parse(line.trim()); + const jsonData = JSON.parse(line.trim()); if (jsonData && typeof jsonData === "object") { if (!jsonData.conversation_id) { jsonData.conversation_id = "unknown"; @@ -369,14 +305,14 @@ var ApiCall = /** @class */ (function () { conversation_id: "unknown", message: line.trim(), }; - }; - ApiCall.prototype.processDataLine = function (dataContent) { + } + processDataLine(dataContent) { if (!dataContent) { return null; } if (dataContent.startsWith("{")) { try { - var jsonData = JSON.parse(dataContent); + const jsonData = JSON.parse(dataContent); // Ensure the required fields exist if (jsonData && typeof jsonData === "object") { if (!jsonData.conversation_id) { @@ -405,141 +341,115 @@ var ApiCall = /** @class */ (function () { conversation_id: "unknown", message: dataContent, }; - }; - ApiCall.prototype.handleStreamingResponse = function (response, streamConfig) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - this.logger.debug("Handling streaming response. Environment: ".concat(isNodeJSEnvironment ? "Node.js" : "Browser")); - if (isNodeJSEnvironment && response.data) { - return [2 /*return*/, this.handleNodeStreaming(response, streamConfig)]; - } - if (!isNodeJSEnvironment) { - return [2 /*return*/, this.handleBrowserStreaming(response, streamConfig)]; - } - this.logger.debug("Processing non-streaming response"); - this.invokeOnCompleteCallback(response.data, streamConfig); - return [2 /*return*/, Promise.resolve(response.data)]; - }); - }); - }; - ApiCall.prototype.handleNodeStreaming = function (response, streamConfig) { - var _this = this; + } + async handleStreamingResponse(response, streamConfig) { + this.logger.debug(`Handling streaming response. Environment: ${isNodeJSEnvironment ? "Node.js" : "Browser"}`); + if (isNodeJSEnvironment && response.data) { + return this.handleNodeStreaming(response, streamConfig); + } + if (!isNodeJSEnvironment) { + return this.handleBrowserStreaming(response, streamConfig); + } + this.logger.debug("Processing non-streaming response"); + this.invokeOnCompleteCallback(response.data, streamConfig); + return Promise.resolve(response.data); + } + handleNodeStreaming(response, streamConfig) { this.logger.debug("Processing Node.js stream"); - return new Promise(function (resolve, reject) { - var stream = response.data; - var allChunks = []; - var buffer = ""; - stream.on("data", function (chunk) { + return new Promise((resolve, reject) => { + const stream = response.data; + const allChunks = []; + let buffer = ""; + stream.on("data", (chunk) => { var _a; try { - var data = chunk.toString(); + const data = chunk.toString(); buffer += data; - var lines = buffer.split("\n"); + const lines = buffer.split("\n"); buffer = (_a = lines.pop()) !== null && _a !== void 0 ? _a : ""; - _this.processStreamLines(lines, allChunks, streamConfig); + this.processStreamLines(lines, allChunks, streamConfig); } catch (error) { reject(error); } }); - stream.on("end", function () { + stream.on("end", () => { if (buffer.trim().length > 0) { - var lines = buffer.split("\n"); - _this.processStreamLines(lines, allChunks, streamConfig); + const lines = buffer.split("\n"); + this.processStreamLines(lines, allChunks, streamConfig); } - _this.finalizeStreamResult(allChunks, resolve, response, streamConfig); + this.finalizeStreamResult(allChunks, resolve, response, streamConfig); }); - stream.on("error", function (error) { - _this.logger.error("Stream error: ".concat(error)); - _this.invokeOnErrorCallback(error, streamConfig); + stream.on("error", (error) => { + this.logger.error(`Stream error: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); reject(error); }); }); - }; - ApiCall.prototype.handleBrowserStreaming = function (response, streamConfig) { - var _this = this; + } + handleBrowserStreaming(response, streamConfig) { this.logger.debug("Processing browser stream"); - return new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - try { - if (response.data && typeof response.data.getReader === "function") { - return [2 /*return*/, this.handleBrowserReadableStream(response.data, resolve, reject, response, streamConfig)]; - } - if (typeof response.data === "string") { - return [2 /*return*/, this.handleBrowserStringResponse(response.data, resolve, response, streamConfig)]; - } - if (typeof response.data === "object" && response.data !== null) { - this.logger.debug("No stream found, but data object is available"); - this.invokeOnCompleteCallback(response.data, streamConfig); - return [2 /*return*/, resolve(response.data)]; - } - this.logger.error("No usable data found in response"); - return [2 /*return*/, reject(new Error("No usable data found in response"))]; + return new Promise(async (resolve, reject) => { + try { + if (response.data && typeof response.data.getReader === "function") { + return this.handleBrowserReadableStream(response.data, resolve, reject, response, streamConfig); } - catch (error) { - this.logger.error("Error processing streaming response: ".concat(error)); - this.invokeOnErrorCallback(error, streamConfig); - reject(error); + if (typeof response.data === "string") { + return this.handleBrowserStringResponse(response.data, resolve, response, streamConfig); } - return [2 /*return*/]; - }); - }); }); - }; - ApiCall.prototype.handleBrowserReadableStream = function (stream, resolve, reject, response, streamConfig) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var reader, allChunks, buffer, _a, done, value, lines_1, chunk, lines, error_2; - return tslib_1.__generator(this, function (_b) { - switch (_b.label) { - case 0: - this.logger.debug("Found ReadableStream in response.data"); - reader = stream.getReader(); - allChunks = []; - buffer = ""; - _b.label = 1; - case 1: - _b.trys.push([1, 5, , 6]); - _b.label = 2; - case 2: - if (!true) return [3 /*break*/, 4]; - return [4 /*yield*/, reader.read()]; - case 3: - _a = _b.sent(), done = _a.done, value = _a.value; - if (done) { - this.logger.debug("Stream reading complete"); - if (buffer.trim()) { - lines_1 = buffer.split("\n"); - this.processStreamLines(lines_1, allChunks, streamConfig); - } - return [3 /*break*/, 4]; - } - chunk = new TextDecoder().decode(value); - this.logger.debug("Received chunk: ".concat(chunk.length, " bytes")); - buffer += chunk; - lines = buffer.split("\n"); - buffer = lines.pop() || ""; - this.processStreamLines(lines, allChunks, streamConfig); - return [3 /*break*/, 2]; - case 4: - this.finalizeStreamResult(allChunks, resolve, response, streamConfig); - return [3 /*break*/, 6]; - case 5: - error_2 = _b.sent(); - this.logger.error("Stream error: ".concat(error_2)); - this.invokeOnErrorCallback(error_2, streamConfig); - reject(error_2); - return [3 /*break*/, 6]; - case 6: return [2 /*return*/]; + if (typeof response.data === "object" && response.data !== null) { + this.logger.debug("No stream found, but data object is available"); + this.invokeOnCompleteCallback(response.data, streamConfig); + return resolve(response.data); } - }); + this.logger.error("No usable data found in response"); + return reject(new Error("No usable data found in response")); + } + catch (error) { + this.logger.error(`Error processing streaming response: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + } }); - }; - ApiCall.prototype.handleBrowserStringResponse = function (data, resolve, response, streamConfig) { + } + async handleBrowserReadableStream(stream, resolve, reject, response, streamConfig) { + this.logger.debug("Found ReadableStream in response.data"); + const reader = stream.getReader(); + const allChunks = []; + let buffer = ""; + try { + while (true) { + const { done, value } = await reader.read(); + if (done) { + this.logger.debug("Stream reading complete"); + if (buffer.trim()) { + const lines = buffer.split("\n"); + this.processStreamLines(lines, allChunks, streamConfig); + } + break; + } + const chunk = new TextDecoder().decode(value); + this.logger.debug(`Received chunk: ${chunk.length} bytes`); + buffer += chunk; + const lines = buffer.split("\n"); + buffer = lines.pop() || ""; + this.processStreamLines(lines, allChunks, streamConfig); + } + this.finalizeStreamResult(allChunks, resolve, response, streamConfig); + } + catch (error) { + this.logger.error(`Stream error: ${error}`); + this.invokeOnErrorCallback(error, streamConfig); + reject(error); + } + } + handleBrowserStringResponse(data, resolve, response, streamConfig) { this.logger.debug("Processing text response as stream data"); - var allChunks = []; - var lines = data.split("\n"); + const allChunks = []; + const lines = data.split("\n"); this.processStreamLines(lines, allChunks, streamConfig); if (allChunks.length > 0) { - var finalResult = this.combineStreamingChunks(allChunks); + const finalResult = this.combineStreamingChunks(allChunks); this.invokeOnCompleteCallback(finalResult, streamConfig); resolve(finalResult); } @@ -549,22 +459,21 @@ var ApiCall = /** @class */ (function () { this.invokeOnCompleteCallback(response.data, streamConfig); resolve(response.data); } - }; - ApiCall.prototype.processStreamLines = function (lines, allChunks, streamConfig) { - for (var _i = 0, lines_2 = lines; _i < lines_2.length; _i++) { - var line = lines_2[_i]; + } + processStreamLines(lines, allChunks, streamConfig) { + for (const line of lines) { if (line.trim() && line !== "data: [DONE]") { - var processed = this.processStreamingLine(line); + const processed = this.processStreamingLine(line); if (processed !== null) { this.invokeOnChunkCallback(processed, streamConfig); allChunks.push(processed); } } } - }; - ApiCall.prototype.finalizeStreamResult = function (allChunks, resolve, response, streamConfig) { + } + finalizeStreamResult(allChunks, resolve, response, streamConfig) { if (allChunks.length > 0) { - var finalResult = this.combineStreamingChunks(allChunks); + const finalResult = this.combineStreamingChunks(allChunks); this.logger.debug("Stream processing complete"); this.invokeOnCompleteCallback(finalResult, streamConfig); resolve(finalResult); @@ -574,50 +483,50 @@ var ApiCall = /** @class */ (function () { this.invokeOnCompleteCallback(response.data, streamConfig); resolve(response.data); } - }; + } /** * Combines multiple streaming chunks into a single coherent result * This is critical for ensuring we return the complete data rather than just the last chunk */ - ApiCall.prototype.combineStreamingChunks = function (chunks) { + combineStreamingChunks(chunks) { if (chunks.length === 0) return {}; if (chunks.length === 1) return chunks[0]; // For conversation streams with message chunks - var messagesChunks = this.getMessageChunks(chunks); + const messagesChunks = this.getMessageChunks(chunks); if (messagesChunks.length > 0) { return this.combineMessageChunks(chunks, messagesChunks); } // For regular search responses - var lastChunk = chunks[chunks.length - 1]; + const lastChunk = chunks[chunks.length - 1]; if (!this.isCompleteSearchResponse(lastChunk)) { throw new Error("Last chunk is not a complete search response"); } return lastChunk; - }; - ApiCall.prototype.getMessageChunks = function (chunks) { + } + getMessageChunks(chunks) { return chunks.filter(this.isChunkMessage); - }; - ApiCall.prototype.isChunkMessage = function (chunk) { + } + isChunkMessage(chunk) { return (typeof chunk === "object" && chunk !== null && "message" in chunk && "conversation_id" in chunk); - }; - ApiCall.prototype.combineMessageChunks = function (chunks, messagesChunks) { - this.logger.debug("Found ".concat(messagesChunks.length, " message chunks to combine")); - var lastChunk = chunks[chunks.length - 1]; + } + combineMessageChunks(chunks, messagesChunks) { + this.logger.debug(`Found ${messagesChunks.length} message chunks to combine`); + const lastChunk = chunks[chunks.length - 1]; if (this.isCompleteSearchResponse(lastChunk)) { return lastChunk; } - var metadataChunk = chunks.find(this.isCompleteSearchResponse); + const metadataChunk = chunks.find(this.isCompleteSearchResponse); if (!metadataChunk) { throw new Error("No metadata chunk found"); } return metadataChunk; - }; - ApiCall.prototype.isCompleteSearchResponse = function (chunk) { + } + isCompleteSearchResponse(chunk) { if (typeof chunk === "object" && chunk !== null && Object.keys(chunk).length > 0) { @@ -628,95 +537,86 @@ var ApiCall = /** @class */ (function () { "search_time_ms" in chunk); } return false; - }; + } // Attempts to find the next healthy node, looping through the list of nodes once. // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy // so we can try the request for good measure, in case that node has become healthy since - ApiCall.prototype.getNextNode = function (requestNumber) { - if (requestNumber === void 0) { requestNumber = 0; } + getNextNode(requestNumber = 0) { // Check if nearestNode is set and is healthy, if so return it if (this.nearestNode != null) { - this.logger.debug("Request #".concat(requestNumber, ": Nodes Health: Node ").concat(this.nearestNode.index, " is ").concat(this.nearestNode.isHealthy === true ? "Healthy" : "Unhealthy")); + this.logger.debug(`Request #${requestNumber}: Nodes Health: Node ${this.nearestNode.index} is ${this.nearestNode.isHealthy === true ? "Healthy" : "Unhealthy"}`); if (this.nearestNode.isHealthy === true || this.nodeDueForHealthcheck(this.nearestNode, requestNumber)) { - this.logger.debug("Request #".concat(requestNumber, ": Updated current node to Node ").concat(this.nearestNode.index)); + this.logger.debug(`Request #${requestNumber}: Updated current node to Node ${this.nearestNode.index}`); return this.nearestNode; } - this.logger.debug("Request #".concat(requestNumber, ": Falling back to individual nodes")); + this.logger.debug(`Request #${requestNumber}: Falling back to individual nodes`); } // Fallback to nodes as usual - this.logger.debug("Request #".concat(requestNumber, ": Nodes Health: ").concat(this.nodes - .map(function (node) { - return "Node ".concat(node.index, " is ").concat(node.isHealthy === true ? "Healthy" : "Unhealthy"); - }) - .join(" || "))); - var candidateNode = this.nodes[0]; - for (var i = 0; i <= this.nodes.length; i++) { + this.logger.debug(`Request #${requestNumber}: Nodes Health: ${this.nodes + .map((node) => `Node ${node.index} is ${node.isHealthy === true ? "Healthy" : "Unhealthy"}`) + .join(" || ")}`); + let candidateNode = this.nodes[0]; + for (let i = 0; i <= this.nodes.length; i++) { this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length; candidateNode = this.nodes[this.currentNodeIndex]; if (candidateNode.isHealthy === true || this.nodeDueForHealthcheck(candidateNode, requestNumber)) { - this.logger.debug("Request #".concat(requestNumber, ": Updated current node to Node ").concat(candidateNode.index)); + this.logger.debug(`Request #${requestNumber}: Updated current node to Node ${candidateNode.index}`); return candidateNode; } } // None of the nodes are marked healthy, but some of them could have become healthy since last health check. // So we will just return the next node. - this.logger.debug("Request #".concat(requestNumber, ": No healthy nodes were found. Returning the next node, Node ").concat(candidateNode.index)); + this.logger.debug(`Request #${requestNumber}: No healthy nodes were found. Returning the next node, Node ${candidateNode.index}`); return candidateNode; - }; - ApiCall.prototype.nodeDueForHealthcheck = function (node, requestNumber) { - if (requestNumber === void 0) { requestNumber = 0; } - var isDueForHealthcheck = Date.now() - node.lastAccessTimestamp > + } + nodeDueForHealthcheck(node, requestNumber = 0) { + const isDueForHealthcheck = Date.now() - node.lastAccessTimestamp > this.healthcheckIntervalSeconds * 1000; if (isDueForHealthcheck) { - this.logger.debug("Request #".concat(requestNumber, ": Node ").concat(node.index, " has exceeded healtcheckIntervalSeconds of ").concat(this.healthcheckIntervalSeconds, ". Adding it back into rotation.")); + this.logger.debug(`Request #${requestNumber}: Node ${node.index} has exceeded healtcheckIntervalSeconds of ${this.healthcheckIntervalSeconds}. Adding it back into rotation.`); } return isDueForHealthcheck; - }; - ApiCall.prototype.initializeMetadataForNodes = function () { - var _this = this; + } + initializeMetadataForNodes() { if (this.nearestNode != null) { this.nearestNode.index = "nearestNode"; this.setNodeHealthcheck(this.nearestNode, HEALTHY); } - this.nodes.forEach(function (node, i) { + this.nodes.forEach((node, i) => { node.index = i; - _this.setNodeHealthcheck(node, HEALTHY); + this.setNodeHealthcheck(node, HEALTHY); }); - }; - ApiCall.prototype.setNodeHealthcheck = function (node, isHealthy) { + } + setNodeHealthcheck(node, isHealthy) { node.isHealthy = isHealthy; node.lastAccessTimestamp = Date.now(); - }; - ApiCall.prototype.uriFor = function (endpoint, node) { + } + uriFor(endpoint, node) { if (node.url != null) { - return "".concat(node.url).concat(endpoint); + return `${node.url}${endpoint}`; } - return "".concat(node.protocol, "://").concat(node.host, ":").concat(node.port).concat(node.path).concat(endpoint); - }; - ApiCall.prototype.defaultHeaders = function () { - var defaultHeaders = {}; + return `${node.protocol}://${node.host}:${node.port}${node.path}${endpoint}`; + } + defaultHeaders() { + const defaultHeaders = {}; if (!this.sendApiKeyAsQueryParam) { defaultHeaders[APIKEYHEADERNAME] = this.apiKey; } defaultHeaders["Content-Type"] = "application/json"; return defaultHeaders; - }; - ApiCall.prototype.timer = function (seconds) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, new Promise(function (resolve) { return setTimeout(resolve, seconds * 1000); })]; - }); - }); - }; - ApiCall.prototype.customErrorForResponse = function (response, messageFromServer, httpBody) { - var errorMessage = "Request failed with HTTP code ".concat(response.status); + } + async timer(seconds) { + return new Promise((resolve) => setTimeout(resolve, seconds * 1000)); + } + customErrorForResponse(response, messageFromServer, httpBody) { + let errorMessage = `Request failed with HTTP code ${response.status}`; if (typeof messageFromServer === "string" && messageFromServer.trim() !== "") { - errorMessage += " | Server said: ".concat(messageFromServer); + errorMessage += ` | Server said: ${messageFromServer}`; } - var error = new TypesenseError_1.default(errorMessage, httpBody, response.status); + let error = new TypesenseError_1.default(errorMessage, httpBody, response.status); if (response.status === 400) { error = new Errors_1.RequestMalformed(errorMessage, httpBody, response.status); } @@ -739,39 +639,38 @@ var ApiCall = /** @class */ (function () { error = new Errors_1.HTTPError(errorMessage, httpBody, response.status); } return error; - }; - ApiCall.prototype.invokeOnChunkCallback = function (data, streamConfig) { + } + invokeOnChunkCallback(data, streamConfig) { if (streamConfig === null || streamConfig === void 0 ? void 0 : streamConfig.onChunk) { try { streamConfig.onChunk(data); } catch (error) { - this.logger.warn("Error in onChunk callback: ".concat(error)); + this.logger.warn(`Error in onChunk callback: ${error}`); } } - }; - ApiCall.prototype.invokeOnCompleteCallback = function (data, streamConfig) { + } + invokeOnCompleteCallback(data, streamConfig) { if (streamConfig === null || streamConfig === void 0 ? void 0 : streamConfig.onComplete) { try { streamConfig.onComplete(data); } catch (error) { - this.logger.warn("Error in onComplete callback: ".concat(error)); + this.logger.warn(`Error in onComplete callback: ${error}`); } } - }; - ApiCall.prototype.invokeOnErrorCallback = function (error, streamConfig) { + } + invokeOnErrorCallback(error, streamConfig) { if (streamConfig === null || streamConfig === void 0 ? void 0 : streamConfig.onError) { - var errorObj = (0, Utils_1.toErrorWithMessage)(error); + const errorObj = (0, Utils_1.toErrorWithMessage)(error); try { streamConfig.onError(errorObj); } catch (callbackError) { - this.logger.warn("Error in onError callback: ".concat(callbackError)); + this.logger.warn(`Error in onError callback: ${callbackError}`); } } - }; - return ApiCall; -}()); + } +} exports.default = ApiCall; //# sourceMappingURL=ApiCall.js.map \ No newline at end of file diff --git a/lib/Typesense/ApiCall.js.map b/lib/Typesense/ApiCall.js.map index f1da2455..8ea93235 100644 --- a/lib/Typesense/ApiCall.js.map +++ b/lib/Typesense/ApiCall.js.map @@ -1 +1 @@ -{"version":3,"file":"ApiCall.js","sourceRoot":"","sources":["../../src/Typesense/ApiCall.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ApiCall.js","sourceRoot":"","sources":["../../src/Typesense/ApiCall.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Client.js b/lib/Typesense/Client.js index 1d428892..8f343022 100644 --- a/lib/Typesense/Client.js +++ b/lib/Typesense/Client.js @@ -1,31 +1,31 @@ "use strict"; /* eslint-disable no-dupe-class-members */ Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Configuration_1 = tslib_1.__importDefault(require("./Configuration")); -var ApiCall_1 = tslib_1.__importDefault(require("./ApiCall")); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var Collection_1 = tslib_1.__importDefault(require("./Collection")); -var Aliases_1 = tslib_1.__importDefault(require("./Aliases")); -var Alias_1 = tslib_1.__importDefault(require("./Alias")); -var Keys_1 = tslib_1.__importDefault(require("./Keys")); -var Key_1 = tslib_1.__importDefault(require("./Key")); -var Debug_1 = tslib_1.__importDefault(require("./Debug")); -var Metrics_1 = tslib_1.__importDefault(require("./Metrics")); -var Stats_1 = tslib_1.__importDefault(require("./Stats")); -var Health_1 = tslib_1.__importDefault(require("./Health")); -var Operations_1 = tslib_1.__importDefault(require("./Operations")); -var MultiSearch_1 = tslib_1.__importDefault(require("./MultiSearch")); -var Presets_1 = tslib_1.__importDefault(require("./Presets")); -var Preset_1 = tslib_1.__importDefault(require("./Preset")); -var Analytics_1 = tslib_1.__importDefault(require("./Analytics")); -var Stopwords_1 = tslib_1.__importDefault(require("./Stopwords")); -var Stopword_1 = tslib_1.__importDefault(require("./Stopword")); -var Conversations_1 = tslib_1.__importDefault(require("./Conversations")); -var Conversation_1 = tslib_1.__importDefault(require("./Conversation")); -var Stemming_1 = tslib_1.__importDefault(require("./Stemming")); -var Client = /** @class */ (function () { - function Client(options) { +const tslib_1 = require("tslib"); +const Configuration_1 = tslib_1.__importDefault(require("./Configuration")); +const ApiCall_1 = tslib_1.__importDefault(require("./ApiCall")); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const Collection_1 = tslib_1.__importDefault(require("./Collection")); +const Aliases_1 = tslib_1.__importDefault(require("./Aliases")); +const Alias_1 = tslib_1.__importDefault(require("./Alias")); +const Keys_1 = tslib_1.__importDefault(require("./Keys")); +const Key_1 = tslib_1.__importDefault(require("./Key")); +const Debug_1 = tslib_1.__importDefault(require("./Debug")); +const Metrics_1 = tslib_1.__importDefault(require("./Metrics")); +const Stats_1 = tslib_1.__importDefault(require("./Stats")); +const Health_1 = tslib_1.__importDefault(require("./Health")); +const Operations_1 = tslib_1.__importDefault(require("./Operations")); +const MultiSearch_1 = tslib_1.__importDefault(require("./MultiSearch")); +const Presets_1 = tslib_1.__importDefault(require("./Presets")); +const Preset_1 = tslib_1.__importDefault(require("./Preset")); +const Analytics_1 = tslib_1.__importDefault(require("./Analytics")); +const Stopwords_1 = tslib_1.__importDefault(require("./Stopwords")); +const Stopword_1 = tslib_1.__importDefault(require("./Stopword")); +const Conversations_1 = tslib_1.__importDefault(require("./Conversations")); +const Conversation_1 = tslib_1.__importDefault(require("./Conversation")); +const Stemming_1 = tslib_1.__importDefault(require("./Stemming")); +class Client { + constructor(options) { var _a; options.sendApiKeyAsQueryParam = (_a = options.sendApiKeyAsQueryParam) !== null && _a !== void 0 ? _a : false; this.configuration = new Configuration_1.default(options); @@ -51,7 +51,7 @@ var Client = /** @class */ (function () { this._conversations = new Conversations_1.default(this.apiCall); this.individualConversations = {}; } - Client.prototype.collections = function (collectionName) { + collections(collectionName) { if (collectionName === undefined) { return this._collections; } @@ -61,8 +61,8 @@ var Client = /** @class */ (function () { } return this.individualCollections[collectionName]; } - }; - Client.prototype.aliases = function (aliasName) { + } + aliases(aliasName) { if (aliasName === undefined) { return this._aliases; } @@ -72,8 +72,8 @@ var Client = /** @class */ (function () { } return this.individualAliases[aliasName]; } - }; - Client.prototype.keys = function (id) { + } + keys(id) { if (id === undefined) { return this._keys; } @@ -83,8 +83,8 @@ var Client = /** @class */ (function () { } return this.individualKeys[id]; } - }; - Client.prototype.presets = function (id) { + } + presets(id) { if (id === undefined) { return this._presets; } @@ -94,8 +94,8 @@ var Client = /** @class */ (function () { } return this.individualPresets[id]; } - }; - Client.prototype.stopwords = function (id) { + } + stopwords(id) { if (id === undefined) { return this._stopwords; } @@ -105,8 +105,8 @@ var Client = /** @class */ (function () { } return this.individualStopwords[id]; } - }; - Client.prototype.conversations = function (id) { + } + conversations(id) { if (id === undefined) { return this._conversations; } @@ -116,8 +116,7 @@ var Client = /** @class */ (function () { } return this.individualConversations[id]; } - }; - return Client; -}()); + } +} exports.default = Client; //# sourceMappingURL=Client.js.map \ No newline at end of file diff --git a/lib/Typesense/Client.js.map b/lib/Typesense/Client.js.map index bdccd4aa..c1546f15 100644 --- a/lib/Typesense/Client.js.map +++ b/lib/Typesense/Client.js.map @@ -1 +1 @@ -{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/Typesense/Client.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../src/Typesense/Client.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Collection.js b/lib/Typesense/Collection.js index b14bcadd..d79a3959 100644 --- a/lib/Typesense/Collection.js +++ b/lib/Typesense/Collection.js @@ -1,16 +1,16 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var Documents_1 = tslib_1.__importDefault(require("./Documents")); -var Errors_1 = require("./Errors"); -var Overrides_1 = tslib_1.__importDefault(require("./Overrides")); -var Override_1 = tslib_1.__importDefault(require("./Override")); -var Synonyms_1 = tslib_1.__importDefault(require("./Synonyms")); -var Synonym_1 = tslib_1.__importDefault(require("./Synonym")); -var Document_1 = require("./Document"); -var Collection = /** @class */ (function () { - function Collection(name, apiCall, configuration) { +const tslib_1 = require("tslib"); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const Documents_1 = tslib_1.__importDefault(require("./Documents")); +const Errors_1 = require("./Errors"); +const Overrides_1 = tslib_1.__importDefault(require("./Overrides")); +const Override_1 = tslib_1.__importDefault(require("./Override")); +const Synonyms_1 = tslib_1.__importDefault(require("./Synonyms")); +const Synonym_1 = tslib_1.__importDefault(require("./Synonym")); +const Document_1 = require("./Document"); +class Collection { + constructor(name, apiCall, configuration) { this.name = name; this.apiCall = apiCall; this.configuration = configuration; @@ -24,50 +24,27 @@ var Collection = /** @class */ (function () { this._overrides = new Overrides_1.default(this.name, this.apiCall); this._synonyms = new Synonyms_1.default(this.name, this.apiCall); } - Collection.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Collection.prototype.update = function (schema) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.patch(this.endpointPath(), schema)]; - }); - }); - }; - Collection.prototype.delete = function (options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath(), options)]; - }); - }); - }; - Collection.prototype.exists = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var e_1; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: - _a.trys.push([0, 2, , 3]); - return [4 /*yield*/, this.retrieve()]; - case 1: - _a.sent(); - return [2 /*return*/, true]; - case 2: - e_1 = _a.sent(); - if (e_1 instanceof Errors_1.ObjectNotFound) - return [2 /*return*/, false]; - throw e_1; - case 3: return [2 /*return*/]; - } - }); - }); - }; - Collection.prototype.documents = function (documentId) { + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async update(schema) { + return this.apiCall.patch(this.endpointPath(), schema); + } + async delete(options = {}) { + return this.apiCall.delete(this.endpointPath(), options); + } + async exists() { + try { + await this.retrieve(); + return true; + } + catch (e) { + if (e instanceof Errors_1.ObjectNotFound) + return false; + throw e; + } + } + documents(documentId) { if (!documentId) { return this._documents; } @@ -77,8 +54,8 @@ var Collection = /** @class */ (function () { } return this.individualDocuments[documentId]; } - }; - Collection.prototype.overrides = function (overrideId) { + } + overrides(overrideId) { if (overrideId === undefined) { return this._overrides; } @@ -88,8 +65,8 @@ var Collection = /** @class */ (function () { } return this.individualOverrides[overrideId]; } - }; - Collection.prototype.synonyms = function (synonymId) { + } + synonyms(synonymId) { if (synonymId === undefined) { return this._synonyms; } @@ -99,11 +76,10 @@ var Collection = /** @class */ (function () { } return this.individualSynonyms[synonymId]; } - }; - Collection.prototype.endpointPath = function () { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); - }; - return Collection; -}()); + } + endpointPath() { + return `${Collections_1.default.RESOURCEPATH}/${encodeURIComponent(this.name)}`; + } +} exports.default = Collection; //# sourceMappingURL=Collection.js.map \ No newline at end of file diff --git a/lib/Typesense/Collection.js.map b/lib/Typesense/Collection.js.map index 1be5a6b1..77b9b88c 100644 --- a/lib/Typesense/Collection.js.map +++ b/lib/Typesense/Collection.js.map @@ -1 +1 @@ -{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/Typesense/Collection.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAKxC,kEAAwD;AACxD,mCAA0C;AAC1C,kEAAoC;AACpC,gEAAkC;AAClC,gEAAkC;AAClC,8DAAgC;AAChC,uCAAsC;AA6DtC;IAQE,oBACmB,IAAY,EACZ,OAAgB,EAChB,aAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAK;QAT7B,wBAAmB,GAAgC,EAAE,CAAC;QAEtD,wBAAmB,GAA6B,EAAE,CAAC;QAEnD,uBAAkB,GAA4B,EAAE,CAAC;QAOvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAS,CAC7B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAEK,6BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAmB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAChE;IAEK,2BAAM,GAAZ,UAAa,MAA8B;;;gBACzC,sBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAmB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,EAAC;;;KAC1E;IAEK,2BAAM,GAAZ,UACE,OAAqC;QAArC,wBAAA,EAAA,YAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAmB,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,EAAC;;;KAC5E;IAEK,2BAAM,GAAZ;;;;;;;wBAEI,qBAAM,IAAI,CAAC,QAAQ,EAAE,EAAA;;wBAArB,SAAqB,CAAC;wBACtB,sBAAO,IAAI,EAAC;;;wBAEZ,IAAI,GAAC,YAAY,uBAAc;4BAAE,sBAAO,KAAK,EAAC;wBAC9C,MAAM,GAAC,CAAC;;;;;KAEX;IAID,8BAAS,GAAT,UAAU,UAAmB;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,IAAI,mBAAQ,CACjD,IAAI,CAAC,IAAI,EACT,UAAU,EACV,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAID,8BAAS,GAAT,UAAU,UAAmB;QAC3B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,IAAI,kBAAQ,CACjD,IAAI,CAAC,IAAI,EACT,UAAU,EACV,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAID,6BAAQ,GAAR,UAAS,SAAkB;QACzB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrD,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,iBAAO,CAC9C,IAAI,CAAC,IAAI,EACT,SAAS,EACT,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,iCAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,iBAAC;AAAD,CAAC,AAxGD,IAwGC"} \ No newline at end of file +{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/Typesense/Collection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Collections.js b/lib/Typesense/Collections.js index 4df61f81..1578b3d2 100644 --- a/lib/Typesense/Collections.js +++ b/lib/Typesense/Collections.js @@ -1,34 +1,19 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/collections"; -var Collections = /** @class */ (function () { - function Collections(apiCall) { +const RESOURCEPATH = "/collections"; +class Collections { + constructor(apiCall) { this.apiCall = apiCall; } - Collections.prototype.create = function (schema, options) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.post(RESOURCEPATH, schema, options)]; - }); - }); - }; - Collections.prototype.retrieve = function (options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH, options)]; - }); - }); - }; - Object.defineProperty(Collections, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Collections; -}()); + async create(schema, options) { + return this.apiCall.post(RESOURCEPATH, schema, options); + } + async retrieve(options = {}) { + return this.apiCall.get(RESOURCEPATH, options); + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Collections; //# sourceMappingURL=Collections.js.map \ No newline at end of file diff --git a/lib/Typesense/Collections.js.map b/lib/Typesense/Collections.js.map index 588a13bb..0880b89f 100644 --- a/lib/Typesense/Collections.js.map +++ b/lib/Typesense/Collections.js.map @@ -1 +1 @@ -{"version":3,"file":"Collections.js","sourceRoot":"","sources":["../../src/Typesense/Collections.ts"],"names":[],"mappings":";;;AA4CA,IAAM,YAAY,GAAG,cAAc,CAAC;AAEpC;IACE,qBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,4BAAM,GAAZ,UACE,MAAuC,EACvC,OAAiB;;;gBAEjB,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAmB,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAC;;;KAC3E;IAEK,8BAAQ,GAAd,UACE,OAAwC;QAAxC,wBAAA,EAAA,YAAwC;;;gBAExC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,EAAE,OAAO,CAAC,EAAC;;;KACpE;IAED,sBAAW,2BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,kBAAC;AAAD,CAAC,AAnBD,IAmBC"} \ No newline at end of file +{"version":3,"file":"Collections.js","sourceRoot":"","sources":["../../src/Typesense/Collections.ts"],"names":[],"mappings":";;AA4CA,MAAM,YAAY,GAAG,cAAc,CAAC;AAEpC,MAAqB,WAAW;IAC9B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,MAAM,CACV,MAAuC,EACvC,OAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAmB,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,UAAsC,EAAE;QAExC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAnBD,8BAmBC"} \ No newline at end of file diff --git a/lib/Typesense/Configuration.d.ts b/lib/Typesense/Configuration.d.ts index 0b91a8f4..eaa8a51d 100644 --- a/lib/Typesense/Configuration.d.ts +++ b/lib/Typesense/Configuration.d.ts @@ -1,6 +1,6 @@ /// /// -import { Logger, LogLevelDesc } from "loglevel"; +import logger from "loglevel"; import type { Agent as HTTPAgent } from "http"; import type { Agent as HTTPSAgent } from "https"; import type { AxiosRequestConfig } from "axios"; @@ -45,8 +45,8 @@ export interface ConfigurationOptions { useServerSideSearchCache?: boolean; cacheSearchResultsForSeconds?: number; additionalHeaders?: Record; - logLevel?: LogLevelDesc; - logger?: Logger; + logLevel?: logger.LogLevelDesc; + logger?: logger.Logger; /** * Set a custom HTTP Agent * @@ -127,8 +127,8 @@ export default class Configuration { readonly sendApiKeyAsQueryParam?: boolean; readonly cacheSearchResultsForSeconds: number; readonly useServerSideSearchCache: boolean; - readonly logger: Logger; - readonly logLevel: LogLevelDesc; + readonly logger: logger.Logger; + readonly logLevel: logger.LogLevelDesc; readonly additionalHeaders?: Record; readonly httpAgent?: HTTPAgent; readonly httpsAgent?: HTTPSAgent; diff --git a/lib/Typesense/Configuration.js b/lib/Typesense/Configuration.js index 8cf06682..50675cd3 100644 --- a/lib/Typesense/Configuration.js +++ b/lib/Typesense/Configuration.js @@ -1,16 +1,15 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var logger = tslib_1.__importStar(require("loglevel")); -var Errors_1 = require("./Errors"); -var Configuration = /** @class */ (function () { - function Configuration(options) { - var _this = this; +const tslib_1 = require("tslib"); +const loglevel_1 = tslib_1.__importDefault(require("loglevel")); +const Errors_1 = require("./Errors"); +class Configuration { + constructor(options) { this.nodes = options.nodes || []; this.nodes = this.nodes - .map(function (node) { return _this.setDefaultPathInNode(node); }) - .map(function (node) { return _this.setDefaultPortInNode(node); }) - .map(function (node) { return (tslib_1.__assign({}, node)); }); // Make a deep copy + .map((node) => this.setDefaultPathInNode(node)) + .map((node) => this.setDefaultPortInNode(node)) + .map((node) => ({ ...node })); // Make a deep copy if (options.randomizeNodes == null) { options.randomizeNodes = true; } @@ -34,7 +33,7 @@ var Configuration = /** @class */ (function () { options.cacheSearchResultsForSeconds || 0; // Disable client-side cache by default this.useServerSideSearchCache = options.useServerSideSearchCache || false; this.axiosAdapter = options.axiosAdapter; - this.logger = options.logger || logger; + this.logger = options.logger || loglevel_1.default; this.logLevel = options.logLevel || "warn"; this.logger.setLevel(this.logLevel); this.additionalHeaders = options.additionalHeaders; @@ -44,7 +43,7 @@ var Configuration = /** @class */ (function () { this.showDeprecationWarnings(options); this.validate(); } - Configuration.prototype.validate = function () { + validate() { if (this.nodes == null || this.nodes.length === 0 || this.validateNodes()) { throw new Errors_1.MissingConfigurationError("Ensure that nodes[].protocol, nodes[].host and nodes[].port are set"); } @@ -56,25 +55,24 @@ var Configuration = /** @class */ (function () { throw new Errors_1.MissingConfigurationError("Ensure that apiKey is set"); } return true; - }; - Configuration.prototype.validateNodes = function () { - var _this = this; - return this.nodes.some(function (node) { - return _this.isNodeMissingAnyParameters(node); + } + validateNodes() { + return this.nodes.some((node) => { + return this.isNodeMissingAnyParameters(node); }); - }; - Configuration.prototype.isNodeMissingAnyParameters = function (node) { - return (!["protocol", "host", "port", "path"].every(function (key) { + } + isNodeMissingAnyParameters(node) { + return (!["protocol", "host", "port", "path"].every((key) => { return node.hasOwnProperty(key); }) && node["url"] == null); - }; - Configuration.prototype.setDefaultPathInNode = function (node) { + } + setDefaultPathInNode(node) { if (node != null && !node.hasOwnProperty("path")) { node["path"] = ""; } return node; - }; - Configuration.prototype.setDefaultPortInNode = function (node) { + } + setDefaultPortInNode(node) { if (node != null && !node.hasOwnProperty("port") && node.hasOwnProperty("protocol")) { @@ -88,8 +86,8 @@ var Configuration = /** @class */ (function () { } } return node; - }; - Configuration.prototype.showDeprecationWarnings = function (options) { + } + showDeprecationWarnings(options) { if (options.timeoutSeconds) { this.logger.warn("Deprecation warning: timeoutSeconds is now renamed to connectionTimeoutSeconds"); } @@ -99,15 +97,13 @@ var Configuration = /** @class */ (function () { if (options.readReplicaNodes) { this.logger.warn("Deprecation warning: readReplicaNodes is now consolidated to nodes, starting with Typesense Server v0.12"); } - }; - Configuration.prototype.shuffleArray = function (array) { - var _a; - for (var i = array.length - 1; i > 0; i--) { - var j = Math.floor(Math.random() * (i + 1)); - _a = [array[j], array[i]], array[i] = _a[0], array[j] = _a[1]; + } + shuffleArray(array) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; } - }; - return Configuration; -}()); + } +} exports.default = Configuration; //# sourceMappingURL=Configuration.js.map \ No newline at end of file diff --git a/lib/Typesense/Configuration.js.map b/lib/Typesense/Configuration.js.map index 244e6311..50f71e4f 100644 --- a/lib/Typesense/Configuration.js.map +++ b/lib/Typesense/Configuration.js.map @@ -1 +1 @@ -{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/Typesense/Configuration.ts"],"names":[],"mappings":";;;AAAA,uDAAmC;AAEnC,mCAAqD;AA0IrD;IAyBE,uBAAY,OAA6B;QAAzC,iBAiDC;QAhDC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;aACpB,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAA/B,CAA+B,CAAC;aAC9C,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAA/B,CAA+B,CAAC;aAC9C,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,sBAAM,IAAI,EAAG,EAAb,CAAa,CAAwB,CAAC,CAAC,mBAAmB;QAE3E,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YACnC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE/D,IAAI,CAAC,wBAAwB;YAC3B,OAAO,CAAC,wBAAwB,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,UAAU;YACb,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC;gBAC1D,CAAC,CAAC,OAAO,CAAC,UAAU;gBACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,GAAG,CAAC;QAEhE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC,4DAA4D;QAE1H,IAAI,CAAC,4BAA4B;YAC/B,OAAO,CAAC,4BAA4B,IAAI,CAAC,CAAC,CAAC,uCAAuC;QACpF,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,IAAI,KAAK,CAAC;QAE1E,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAEnD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAErC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAEjD,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,gCAAQ,GAAR;QACE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YAC1E,MAAM,IAAI,kCAAyB,CACjC,qEAAqE,CACtE,CAAC;QACJ,CAAC;QAED,IACE,IAAI,CAAC,WAAW,IAAI,IAAI;YACxB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,EACjD,CAAC;YACD,MAAM,IAAI,kCAAyB,CACjC,oFAAoF,CACrF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,kCAAyB,CAAC,2BAA2B,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qCAAa,GAArB;QAAA,iBAIC;QAHC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAC,IAAI;YAC1B,OAAO,KAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kDAA0B,GAAlC,UACE,IAG4B;QAE5B,OAAO,CACL,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,UAAC,GAAG;YAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAC1B,CAAC;IACJ,CAAC;IAEO,4CAAoB,GAA5B,UACE,IAIa;QAMb,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,4CAAoB,GAA5B,UACE,IAIa;QAMb,IACE,IAAI,IAAI,IAAI;YACZ,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAC/B,CAAC;YACD,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzB,KAAK,OAAO;oBACV,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;oBACnB,MAAM;gBACR,KAAK,MAAM;oBACT,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;oBAClB,MAAM;YACV,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,+CAAuB,GAA/B,UAAgC,OAA6B;QAC3D,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,gFAAgF,CACjF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oGAAoG,CACrG,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,0GAA0G,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,oCAAY,GAApB,UAAqB,KAAK;;QACxB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAA1C,KAAK,CAAC,CAAC,CAAC,QAAA,EAAE,KAAK,CAAC,CAAC,CAAC,QAAA,CAAyB;QAC9C,CAAC;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AA3LD,IA2LC"} \ No newline at end of file +{"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../src/Typesense/Configuration.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Conversation.js b/lib/Typesense/Conversation.js index b0891aed..649a7a1f 100644 --- a/lib/Typesense/Conversation.js +++ b/lib/Typesense/Conversation.js @@ -1,37 +1,24 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Conversations_1 = tslib_1.__importDefault(require("./Conversations")); -var Conversation = /** @class */ (function () { - function Conversation(id, apiCall) { +const tslib_1 = require("tslib"); +const Conversations_1 = tslib_1.__importDefault(require("./Conversations")); +class Conversation { + constructor(id, apiCall) { this.id = id; this.apiCall = apiCall; } - Conversation.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Conversation.prototype.update = function (params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(), params)]; - }); - }); - }; - Conversation.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Conversation.prototype.endpointPath = function () { - return "".concat(Conversations_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - }; - return Conversation; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async update(params) { + return this.apiCall.put(this.endpointPath(), params); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Conversations_1.default.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +} exports.default = Conversation; //# sourceMappingURL=Conversation.js.map \ No newline at end of file diff --git a/lib/Typesense/Conversation.js.map b/lib/Typesense/Conversation.js.map index 0a9646b7..78454ddd 100644 --- a/lib/Typesense/Conversation.js.map +++ b/lib/Typesense/Conversation.js.map @@ -1 +1 @@ -{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/Typesense/Conversation.ts"],"names":[],"mappings":";;;AACA,0EAA4C;AAiB5C;IACE,sBACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,+BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACpE;IAEK,6BAAM,GAAZ,UACE,MAAgC;;;gBAEhC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,6BAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC3E;IAEO,mCAAY,GAApB;QACE,OAAO,UAAG,uBAAa,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,mBAAC;AAAD,CAAC,AA1BD,IA0BC"} \ No newline at end of file +{"version":3,"file":"Conversation.js","sourceRoot":"","sources":["../../src/Typesense/Conversation.ts"],"names":[],"mappings":";;;AACA,4EAA4C;AAiB5C,MAAqB,YAAY;IAC/B,YACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAgC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,uBAAa,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AA1BD,+BA0BC"} \ No newline at end of file diff --git a/lib/Typesense/ConversationModel.js b/lib/Typesense/ConversationModel.js index 2da74c2d..1c8b016c 100644 --- a/lib/Typesense/ConversationModel.js +++ b/lib/Typesense/ConversationModel.js @@ -1,37 +1,24 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var ConversationModels_1 = tslib_1.__importDefault(require("./ConversationModels")); -var ConversationModel = /** @class */ (function () { - function ConversationModel(id, apiCall) { +const tslib_1 = require("tslib"); +const ConversationModels_1 = tslib_1.__importDefault(require("./ConversationModels")); +class ConversationModel { + constructor(id, apiCall) { this.id = id; this.apiCall = apiCall; } - ConversationModel.prototype.update = function (params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(), params)]; - }); - }); - }; - ConversationModel.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - ConversationModel.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - ConversationModel.prototype.endpointPath = function () { - return "".concat(ConversationModels_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - }; - return ConversationModel; -}()); + async update(params) { + return this.apiCall.put(this.endpointPath(), params); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${ConversationModels_1.default.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +} exports.default = ConversationModel; //# sourceMappingURL=ConversationModel.js.map \ No newline at end of file diff --git a/lib/Typesense/ConversationModel.js.map b/lib/Typesense/ConversationModel.js.map index c9b6a197..84bbbd36 100644 --- a/lib/Typesense/ConversationModel.js.map +++ b/lib/Typesense/ConversationModel.js.map @@ -1 +1 @@ -{"version":3,"file":"ConversationModel.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModel.ts"],"names":[],"mappings":";;;AACA,oFAAsD;AAmBtD;IACE,2BACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,kCAAM,GAAZ,UACE,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,oCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEK,kCAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,wCAAY,GAApB;QACE,OAAO,UAAG,4BAAkB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC7E,CAAC;IACH,wBAAC;AAAD,CAAC,AA5BD,IA4BC"} \ No newline at end of file +{"version":3,"file":"ConversationModel.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModel.ts"],"names":[],"mappings":";;;AACA,sFAAsD;AAmBtD,MAAqB,iBAAiB;IACpC,YACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,MAAqC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,IAAI,CAAC,YAAY,EAAE,CACpB,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,4BAAkB,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7E,CAAC;CACF;AA5BD,oCA4BC"} \ No newline at end of file diff --git a/lib/Typesense/ConversationModels.js b/lib/Typesense/ConversationModels.js index 29563fc5..aebbceae 100644 --- a/lib/Typesense/ConversationModels.js +++ b/lib/Typesense/ConversationModels.js @@ -1,37 +1,23 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/conversations/models"; -var ConversationModels = /** @class */ (function () { - function ConversationModels(apiCall) { +const RESOURCEPATH = "/conversations/models"; +class ConversationModels { + constructor(apiCall) { this.apiCall = apiCall; this.apiCall = apiCall; } - ConversationModels.prototype.create = function (params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.post(this.endpointPath(), params)]; - }); - }); - }; - ConversationModels.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - ConversationModels.prototype.endpointPath = function (operation) { - return "".concat(ConversationModels.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(ConversationModels, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return ConversationModels; -}()); + async create(params) { + return this.apiCall.post(this.endpointPath(), params); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${ConversationModels.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = ConversationModels; //# sourceMappingURL=ConversationModels.js.map \ No newline at end of file diff --git a/lib/Typesense/ConversationModels.js.map b/lib/Typesense/ConversationModels.js.map index 3c3b1bc0..6a1f2bd8 100644 --- a/lib/Typesense/ConversationModels.js.map +++ b/lib/Typesense/ConversationModels.js.map @@ -1 +1 @@ -{"version":3,"file":"ConversationModels.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModels.ts"],"names":[],"mappings":";;;AAMA,IAAM,YAAY,GAAG,uBAAuB,CAAC;AAE7C;IACE,4BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,mCAAM,GAAZ,UACE,MAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,EAAC;;;KACH;IAEK,qCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,yCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,kBAAkB,CAAC,YAAY,SACvC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,kCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,yBAAC;AAAD,CAAC,AA7BD,IA6BC"} \ No newline at end of file +{"version":3,"file":"ConversationModels.js","sourceRoot":"","sources":["../../src/Typesense/ConversationModels.ts"],"names":[],"mappings":";;AAMA,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAE7C,MAAqB,kBAAkB;IACrC,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAqC;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,YAAY,EAAE,EACnB,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,kBAAkB,CAAC,YAAY,GACvC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CACnE,EAAE,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA7BD,qCA6BC"} \ No newline at end of file diff --git a/lib/Typesense/Conversations.js b/lib/Typesense/Conversations.js index 69e67c4d..2201ee91 100644 --- a/lib/Typesense/Conversations.js +++ b/lib/Typesense/Conversations.js @@ -1,24 +1,20 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var ConversationModels_1 = tslib_1.__importDefault(require("./ConversationModels")); -var ConversationModel_1 = tslib_1.__importDefault(require("./ConversationModel")); -var RESOURCEPATH = "/conversations"; -var Conversations = /** @class */ (function () { - function Conversations(apiCall) { +const tslib_1 = require("tslib"); +const ConversationModels_1 = tslib_1.__importDefault(require("./ConversationModels")); +const ConversationModel_1 = tslib_1.__importDefault(require("./ConversationModel")); +const RESOURCEPATH = "/conversations"; +class Conversations { + constructor(apiCall) { this.apiCall = apiCall; this.individualConversationModels = {}; this.apiCall = apiCall; this._conversationsModels = new ConversationModels_1.default(this.apiCall); } - Conversations.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - Conversations.prototype.models = function (id) { + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } + models(id) { if (id === undefined) { return this._conversationsModels; } @@ -28,15 +24,10 @@ var Conversations = /** @class */ (function () { } return this.individualConversationModels[id]; } - }; - Object.defineProperty(Conversations, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Conversations; -}()); + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Conversations; //# sourceMappingURL=Conversations.js.map \ No newline at end of file diff --git a/lib/Typesense/Conversations.js.map b/lib/Typesense/Conversations.js.map index 899cd545..03e547d3 100644 --- a/lib/Typesense/Conversations.js.map +++ b/lib/Typesense/Conversations.js.map @@ -1 +1 @@ -{"version":3,"file":"Conversations.js","sourceRoot":"","sources":["../../src/Typesense/Conversations.ts"],"names":[],"mappings":";;;AACA,oFAAsD;AACtD,kFAAoD;AAGpD,IAAM,YAAY,GAAG,gBAAgB,CAAC;AAMtC;IAOE,uBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,iCAA4B,GAGzC,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,4BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAEK,gCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA8B,YAAY,CAAC,EAAC;;;KACpE;IAID,8BAAM,GAAN,UAAO,EAAW;QAChB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,GAAG,IAAI,2BAAiB,CAC3D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,sBAAW,6BAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,oBAAC;AAAD,CAAC,AAnCD,IAmCC"} \ No newline at end of file +{"version":3,"file":"Conversations.js","sourceRoot":"","sources":["../../src/Typesense/Conversations.ts"],"names":[],"mappings":";;;AACA,sFAAsD;AACtD,oFAAoD;AAGpD,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAMtC,MAAqB,aAAa;IAOhC,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,iCAA4B,GAGzC,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,4BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA8B,YAAY,CAAC,CAAC;IACrE,CAAC;IAID,MAAM,CAAC,EAAW;QAChB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,GAAG,IAAI,2BAAiB,CAC3D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAnCD,gCAmCC"} \ No newline at end of file diff --git a/lib/Typesense/Debug.js b/lib/Typesense/Debug.js index fa525663..3b3867ef 100644 --- a/lib/Typesense/Debug.js +++ b/lib/Typesense/Debug.js @@ -1,19 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/debug"; -var Debug = /** @class */ (function () { - function Debug(apiCall) { +const RESOURCEPATH = "/debug"; +class Debug { + constructor(apiCall) { this.apiCall = apiCall; } - Debug.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - return Debug; -}()); + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } +} exports.default = Debug; //# sourceMappingURL=Debug.js.map \ No newline at end of file diff --git a/lib/Typesense/Debug.js.map b/lib/Typesense/Debug.js.map index 30283311..e3f3b683 100644 --- a/lib/Typesense/Debug.js.map +++ b/lib/Typesense/Debug.js.map @@ -1 +1 @@ -{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../../src/Typesense/Debug.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,QAAQ,CAAC;AAO9B;IACE,eAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,wBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,YAAY,CAAC,EAAC;;;KAC5D;IACH,YAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../../src/Typesense/Debug.ts"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,QAAQ,CAAC;AAO9B,MAAqB,KAAK;IACxB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAsB,YAAY,CAAC,CAAC;IAC7D,CAAC;CACF;AAND,wBAMC"} \ No newline at end of file diff --git a/lib/Typesense/Document.js b/lib/Typesense/Document.js index 222c16ca..eef199cf 100644 --- a/lib/Typesense/Document.js +++ b/lib/Typesense/Document.js @@ -1,41 +1,27 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Document = void 0; -var tslib_1 = require("tslib"); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var Documents_1 = tslib_1.__importDefault(require("./Documents")); -var Document = /** @class */ (function () { - function Document(collectionName, documentId, apiCall) { +const tslib_1 = require("tslib"); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const Documents_1 = tslib_1.__importDefault(require("./Documents")); +class Document { + constructor(collectionName, documentId, apiCall) { this.collectionName = collectionName; this.documentId = documentId; this.apiCall = apiCall; } - Document.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Document.prototype.delete = function (options) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath(), options)]; - }); - }); - }; - Document.prototype.update = function (partialDocument, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.patch(this.endpointPath(), partialDocument, options)]; - }); - }); - }; - Document.prototype.endpointPath = function () { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(Documents_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.documentId)); - }; - return Document; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete(options) { + return this.apiCall.delete(this.endpointPath(), options); + } + async update(partialDocument, options = {}) { + return this.apiCall.patch(this.endpointPath(), partialDocument, options); + } + endpointPath() { + return `${Collections_1.default.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Documents_1.default.RESOURCEPATH}/${encodeURIComponent(this.documentId)}`; + } +} exports.Document = Document; //# sourceMappingURL=Document.js.map \ No newline at end of file diff --git a/lib/Typesense/Document.js.map b/lib/Typesense/Document.js.map index b697d67b..3da7b4b8 100644 --- a/lib/Typesense/Document.js.map +++ b/lib/Typesense/Document.js.map @@ -1 +1 @@ -{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../src/Typesense/Document.ts"],"names":[],"mappings":";;;;AACA,sEAAwC;AACxC,kEAIqB;AAErB;IACE,kBACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAI,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACjD;IAEK,yBAAM,GAAZ,UAAa,OAAqB;;;gBAChC,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,EAAC;;;KAC7D;IAEK,yBAAM,GAAZ,UACE,eAA2B,EAC3B,OAAqC;QAArC,wBAAA,EAAA,YAAqC;;;gBAErC,sBAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,EAAC;;;KAC7E;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAClJ,CAAC;IACH,eAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBY,4BAAQ"} \ No newline at end of file +{"version":3,"file":"Document.js","sourceRoot":"","sources":["../../src/Typesense/Document.ts"],"names":[],"mappings":";;;;AACA,wEAAwC;AACxC,oEAIqB;AAErB,MAAa,QAAQ;IACnB,YACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAqB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,eAA2B,EAC3B,UAAmC,EAAE;QAErC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAI,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,qBAAW,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,mBAAS,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAClJ,CAAC;CACF;AAzBD,4BAyBC"} \ No newline at end of file diff --git a/lib/Typesense/Documents.js b/lib/Typesense/Documents.js index be3e7ce0..ffa1b8c7 100644 --- a/lib/Typesense/Documents.js +++ b/lib/Typesense/Documents.js @@ -1,199 +1,142 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Errors_1 = require("./Errors"); -var SearchOnlyDocuments_1 = require("./SearchOnlyDocuments"); -var isNodeJSEnvironment = typeof process !== "undefined" && +const Errors_1 = require("./Errors"); +const SearchOnlyDocuments_1 = require("./SearchOnlyDocuments"); +const isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null; -var Documents = /** @class */ (function (_super) { - tslib_1.__extends(Documents, _super); - function Documents(collectionName, apiCall, configuration) { - return _super.call(this, collectionName, apiCall, configuration) || this; +class Documents extends SearchOnlyDocuments_1.SearchOnlyDocuments { + constructor(collectionName, apiCall, configuration) { + super(collectionName, apiCall, configuration); } - Documents.prototype.create = function (document, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - if (!document) - throw new Error("No document provided"); - return [2 /*return*/, this.apiCall.post(this.endpointPath(), document, options)]; - }); - }); - }; - Documents.prototype.upsert = function (document, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - if (!document) - throw new Error("No document provided"); - return [2 /*return*/, this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { action: "upsert" }))]; - }); - }); - }; - Documents.prototype.update = function (document, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - if (!document) - throw new Error("No document provided"); - if (options["filter_by"] != null) { - return [2 /*return*/, this.apiCall.patch(this.endpointPath(), document, Object.assign({}, options))]; - } - else { - return [2 /*return*/, this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { action: "update" }))]; - } - return [2 /*return*/]; - }); - }); - }; - Documents.prototype.delete = function (query) { - if (query === void 0) { query = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath(), query)]; - }); - }); - }; - Documents.prototype.createMany = function (documents, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"); - return [2 /*return*/, this.import(documents, options)]; - }); - }); - }; - Documents.prototype.import = function (documents, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - var documentsInJSONLFormat, resultsInJSONLFormat, resultsInJSONFormat, failedItems; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: - if (Array.isArray(documents)) { - if (documents.length === 0) { - throw new Errors_1.RequestMalformed("No documents provided"); - } - try { - documentsInJSONLFormat = documents - .map(function (document) { return JSON.stringify(document); }) - .join("\n"); - } - catch (error) { - // if rangeerror, throw custom error message - if (error instanceof RangeError && - error.message.includes("Too many properties to enumerate")) { - throw new Error("".concat(error, "\n It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object\n\n Please try reducing the number of keys in your document, or using CURL to import your data.\n ")); - } - // else, throw the non-range error anyways - throw new Error(error); - } - } - else { - documentsInJSONLFormat = documents; - if (isEmptyString(documentsInJSONLFormat)) { - throw new Errors_1.RequestMalformed("No documents provided"); - } - } - return [4 /*yield*/, this.apiCall.performRequest("post", this.endpointPath("import"), { - queryParameters: options, - bodyParameters: documentsInJSONLFormat, - additionalHeaders: { "Content-Type": "text/plain" }, - skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully - enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 - })]; - case 1: - resultsInJSONLFormat = _a.sent(); - if (Array.isArray(documents)) { - resultsInJSONFormat = resultsInJSONLFormat - .split("\n") - .map(function (r) { return JSON.parse(r); }); - failedItems = resultsInJSONFormat.filter(function (r) { return r.success === false; }); - if (failedItems.length > 0) { - throw new Errors_1.ImportError("".concat(resultsInJSONFormat.length - failedItems.length, " documents imported successfully, ").concat(failedItems.length, " documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."), resultsInJSONFormat, { - documentsInJSONLFormat: documentsInJSONLFormat, - options: options, - failedItems: failedItems, - successCount: resultsInJSONFormat.length - failedItems.length, - }); - } - else { - return [2 /*return*/, resultsInJSONFormat]; - } - } - else { - return [2 /*return*/, resultsInJSONLFormat]; - } - return [2 /*return*/]; + async create(document, options = {}) { + if (!document) + throw new Error("No document provided"); + return this.apiCall.post(this.endpointPath(), document, options); + } + async upsert(document, options = {}) { + if (!document) + throw new Error("No document provided"); + return this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { action: "upsert" })); + } + async update(document, options = {}) { + if (!document) + throw new Error("No document provided"); + if (options["filter_by"] != null) { + return this.apiCall.patch(this.endpointPath(), document, Object.assign({}, options)); + } + else { + return this.apiCall.post(this.endpointPath(), document, Object.assign({}, options, { action: "update" })); + } + } + async delete(query = {}) { + return this.apiCall.delete(this.endpointPath(), query); + } + async createMany(documents, options = {}) { + this.configuration.logger.warn("createMany is deprecated and will be removed in a future version. Use import instead, which now takes both an array of documents or a JSONL string of documents"); + return this.import(documents, options); + } + async import(documents, options = {}) { + let documentsInJSONLFormat; + if (Array.isArray(documents)) { + if (documents.length === 0) { + throw new Errors_1.RequestMalformed("No documents provided"); + } + try { + documentsInJSONLFormat = documents + .map((document) => JSON.stringify(document)) + .join("\n"); + } + catch (error) { + // if rangeerror, throw custom error message + if (error instanceof RangeError && + error.message.includes("Too many properties to enumerate")) { + throw new Error(`${error} + It looks like you have reached a Node.js limit that restricts the number of keys in an Object: https://stackoverflow.com/questions/9282869/are-there-limits-to-the-number-of-properties-in-a-javascript-object + + Please try reducing the number of keys in your document, or using CURL to import your data. + `); } - }); + // else, throw the non-range error anyways + throw new Error(error); + } + } + else { + documentsInJSONLFormat = documents; + if (isEmptyString(documentsInJSONLFormat)) { + throw new Errors_1.RequestMalformed("No documents provided"); + } + } + const resultsInJSONLFormat = await this.apiCall.performRequest("post", this.endpointPath("import"), { + queryParameters: options, + bodyParameters: documentsInJSONLFormat, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully + enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 }); - }; + if (Array.isArray(documents)) { + const resultsInJSONFormat = resultsInJSONLFormat + .split("\n") + .map((r) => JSON.parse(r)); + const failedItems = resultsInJSONFormat.filter((r) => r.success === false); + if (failedItems.length > 0) { + throw new Errors_1.ImportError(`${resultsInJSONFormat.length - failedItems.length} documents imported successfully, ${failedItems.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`, resultsInJSONFormat, { + documentsInJSONLFormat, + options, + failedItems, + successCount: resultsInJSONFormat.length - failedItems.length, + }); + } + else { + return resultsInJSONFormat; + } + } + else { + return resultsInJSONLFormat; + } + } /** * Imports documents from a NodeJS readable stream of JSONL. */ - Documents.prototype.importStream = function (readableStream, options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - var resultsInJSONLFormat, resultsInJSONFormat, failedItems; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.apiCall.performRequest("post", this.endpointPath("import"), { - queryParameters: options, - bodyParameters: readableStream, - additionalHeaders: { "Content-Type": "text/plain" }, - skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully - enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 - })]; - case 1: - resultsInJSONLFormat = _a.sent(); - resultsInJSONFormat = resultsInJSONLFormat - .split("\n") - .map(function (r) { return JSON.parse(r); }); - failedItems = resultsInJSONFormat.filter(function (r) { return r.success === false; }); - if (failedItems.length > 0) { - throw new Errors_1.ImportError("".concat(resultsInJSONFormat.length - failedItems.length, " documents imported successfully, ").concat(failedItems.length, " documents failed during import. Use `error.importResults` from the raised exception to get a detailed error reason for each document."), resultsInJSONFormat, { - documentsInJSONLFormat: readableStream, - options: options, - failedItems: failedItems, - successCount: resultsInJSONFormat.length - failedItems.length, - }); - } - else { - return [2 /*return*/, resultsInJSONFormat]; - } - return [2 /*return*/]; - } - }); + async importStream(readableStream, options = {}) { + const resultsInJSONLFormat = await this.apiCall.performRequest("post", this.endpointPath("import"), { + queryParameters: options, + bodyParameters: readableStream, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, // We never want to client-side-timeout on an import and retry, since imports are syncronous and we want to let them take as long as it takes to complete fully + enableKeepAlive: isNodeJSEnvironment ? true : false, // This is to prevent ECONNRESET socket hang up errors. Reference: https://github.com/axios/axios/issues/2936#issuecomment-779439991 }); - }; + const resultsInJSONFormat = resultsInJSONLFormat + .split("\n") + .map((r) => JSON.parse(r)); + const failedItems = resultsInJSONFormat.filter((r) => r.success === false); + if (failedItems.length > 0) { + throw new Errors_1.ImportError(`${resultsInJSONFormat.length - failedItems.length} documents imported successfully, ${failedItems.length} documents failed during import. Use \`error.importResults\` from the raised exception to get a detailed error reason for each document.`, resultsInJSONFormat, { + documentsInJSONLFormat: readableStream, + options, + failedItems, + successCount: resultsInJSONFormat.length - failedItems.length, + }); + } + else { + return resultsInJSONFormat; + } + } /** * Returns a JSONL string for all the documents in this collection */ - Documents.prototype.export = function (options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath("export"), options)]; - }); - }); - }; + async export(options = {}) { + return this.apiCall.get(this.endpointPath("export"), options); + } /** * Returns a NodeJS readable stream of JSONL for all the documents in this collection. */ - Documents.prototype.exportStream = function (options) { - if (options === void 0) { options = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath("export"), options, { - responseType: "stream", - })]; - }); + async exportStream(options = {}) { + return this.apiCall.get(this.endpointPath("export"), options, { + responseType: "stream", }); - }; - return Documents; -}(SearchOnlyDocuments_1.SearchOnlyDocuments)); + } +} exports.default = Documents; function isEmptyString(str) { return str == null || str === "" || str.length === 0; diff --git a/lib/Typesense/Documents.js.map b/lib/Typesense/Documents.js.map index cbd89fd1..41347012 100644 --- a/lib/Typesense/Documents.js.map +++ b/lib/Typesense/Documents.js.map @@ -1 +1 @@ -{"version":3,"file":"Documents.js","sourceRoot":"","sources":["../../src/Typesense/Documents.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Documents.js","sourceRoot":"","sources":["../../src/Typesense/Documents.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/Errors/HTTPError.js b/lib/Typesense/Errors/HTTPError.js index aabc1054..3d93dfbe 100644 --- a/lib/Typesense/Errors/HTTPError.js +++ b/lib/Typesense/Errors/HTTPError.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var HTTPError = /** @class */ (function (_super) { - tslib_1.__extends(HTTPError, _super); - function HTTPError() { - return _super !== null && _super.apply(this, arguments) || this; - } - return HTTPError; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class HTTPError extends TypesenseError_1.default { +} exports.default = HTTPError; //# sourceMappingURL=HTTPError.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/HTTPError.js.map b/lib/Typesense/Errors/HTTPError.js.map index e9ca4f58..ccb4bbfc 100644 --- a/lib/Typesense/Errors/HTTPError.js.map +++ b/lib/Typesense/Errors/HTTPError.js.map @@ -1 +1 @@ -{"version":3,"file":"HTTPError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/HTTPError.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAAuC,qCAAc;IAArD;;IAAuD,CAAC;IAAD,gBAAC;AAAD,CAAC,AAAxD,CAAuC,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"HTTPError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/HTTPError.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,SAAU,SAAQ,wBAAc;CAAG;AAAxD,4BAAwD"} \ No newline at end of file diff --git a/lib/Typesense/Errors/ImportError.js b/lib/Typesense/Errors/ImportError.js index e9f1eaf0..9d78f598 100644 --- a/lib/Typesense/Errors/ImportError.js +++ b/lib/Typesense/Errors/ImportError.js @@ -1,16 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var ImportError = /** @class */ (function (_super) { - tslib_1.__extends(ImportError, _super); - function ImportError(message, importResults, payload) { - var _this = _super.call(this, message) || this; - _this.importResults = importResults; - _this.payload = payload; - return _this; +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class ImportError extends TypesenseError_1.default { + constructor(message, importResults, payload) { + super(message); + this.importResults = importResults; + this.payload = payload; } - return ImportError; -}(TypesenseError_1.default)); +} exports.default = ImportError; //# sourceMappingURL=ImportError.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/ImportError.js.map b/lib/Typesense/Errors/ImportError.js.map index d0a8fecf..b5a49ba8 100644 --- a/lib/Typesense/Errors/ImportError.js.map +++ b/lib/Typesense/Errors/ImportError.js.map @@ -1 +1 @@ -{"version":3,"file":"ImportError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ImportError.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAW9C;IAAyC,uCAAc;IAGrD,qBACE,OAAe,EACf,aAA+B,EAC/B,OAA2B;QAE3B,YAAA,MAAK,YAAC,OAAO,CAAC,SAAC;QACf,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;;IACzB,CAAC;IACH,kBAAC;AAAD,CAAC,AAZD,CAAyC,wBAAc,GAYtD"} \ No newline at end of file +{"version":3,"file":"ImportError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ImportError.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAW9C,MAAqB,WAAY,SAAQ,wBAAc;IAGrD,YACE,OAAe,EACf,aAA+B,EAC/B,OAA2B;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAZD,8BAYC"} \ No newline at end of file diff --git a/lib/Typesense/Errors/MissingConfigurationError.js b/lib/Typesense/Errors/MissingConfigurationError.js index 2161b0ac..c59ed41d 100644 --- a/lib/Typesense/Errors/MissingConfigurationError.js +++ b/lib/Typesense/Errors/MissingConfigurationError.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var MissingConfigurationError = /** @class */ (function (_super) { - tslib_1.__extends(MissingConfigurationError, _super); - function MissingConfigurationError() { - return _super !== null && _super.apply(this, arguments) || this; - } - return MissingConfigurationError; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class MissingConfigurationError extends TypesenseError_1.default { +} exports.default = MissingConfigurationError; //# sourceMappingURL=MissingConfigurationError.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/MissingConfigurationError.js.map b/lib/Typesense/Errors/MissingConfigurationError.js.map index 6e2efa82..950f777b 100644 --- a/lib/Typesense/Errors/MissingConfigurationError.js.map +++ b/lib/Typesense/Errors/MissingConfigurationError.js.map @@ -1 +1 @@ -{"version":3,"file":"MissingConfigurationError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/MissingConfigurationError.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAAuD,qDAAc;IAArE;;IAAuE,CAAC;IAAD,gCAAC;AAAD,CAAC,AAAxE,CAAuD,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"MissingConfigurationError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/MissingConfigurationError.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,yBAA0B,SAAQ,wBAAc;CAAG;AAAxE,4CAAwE"} \ No newline at end of file diff --git a/lib/Typesense/Errors/ObjectAlreadyExists.js b/lib/Typesense/Errors/ObjectAlreadyExists.js index 9f0e6381..3029ef78 100644 --- a/lib/Typesense/Errors/ObjectAlreadyExists.js +++ b/lib/Typesense/Errors/ObjectAlreadyExists.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var ObjectAlreadyExists = /** @class */ (function (_super) { - tslib_1.__extends(ObjectAlreadyExists, _super); - function ObjectAlreadyExists() { - return _super !== null && _super.apply(this, arguments) || this; - } - return ObjectAlreadyExists; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class ObjectAlreadyExists extends TypesenseError_1.default { +} exports.default = ObjectAlreadyExists; //# sourceMappingURL=ObjectAlreadyExists.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/ObjectAlreadyExists.js.map b/lib/Typesense/Errors/ObjectAlreadyExists.js.map index 7e7860b5..c37684ef 100644 --- a/lib/Typesense/Errors/ObjectAlreadyExists.js.map +++ b/lib/Typesense/Errors/ObjectAlreadyExists.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectAlreadyExists.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ObjectAlreadyExists.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAAiD,+CAAc;IAA/D;;IAAiE,CAAC;IAAD,0BAAC;AAAD,CAAC,AAAlE,CAAiD,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"ObjectAlreadyExists.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ObjectAlreadyExists.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,mBAAoB,SAAQ,wBAAc;CAAG;AAAlE,sCAAkE"} \ No newline at end of file diff --git a/lib/Typesense/Errors/ObjectNotFound.js b/lib/Typesense/Errors/ObjectNotFound.js index 9acaab66..4f14cf31 100644 --- a/lib/Typesense/Errors/ObjectNotFound.js +++ b/lib/Typesense/Errors/ObjectNotFound.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var ObjectNotFound = /** @class */ (function (_super) { - tslib_1.__extends(ObjectNotFound, _super); - function ObjectNotFound() { - return _super !== null && _super.apply(this, arguments) || this; - } - return ObjectNotFound; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class ObjectNotFound extends TypesenseError_1.default { +} exports.default = ObjectNotFound; //# sourceMappingURL=ObjectNotFound.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/ObjectNotFound.js.map b/lib/Typesense/Errors/ObjectNotFound.js.map index e216c403..83f59c26 100644 --- a/lib/Typesense/Errors/ObjectNotFound.js.map +++ b/lib/Typesense/Errors/ObjectNotFound.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectNotFound.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ObjectNotFound.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAA4C,0CAAc;IAA1D;;IAA4D,CAAC;IAAD,qBAAC;AAAD,CAAC,AAA7D,CAA4C,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"ObjectNotFound.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ObjectNotFound.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,cAAe,SAAQ,wBAAc;CAAG;AAA7D,iCAA6D"} \ No newline at end of file diff --git a/lib/Typesense/Errors/ObjectUnprocessable.js b/lib/Typesense/Errors/ObjectUnprocessable.js index ec3e9866..b5d40e20 100644 --- a/lib/Typesense/Errors/ObjectUnprocessable.js +++ b/lib/Typesense/Errors/ObjectUnprocessable.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var ObjectUnprocessable = /** @class */ (function (_super) { - tslib_1.__extends(ObjectUnprocessable, _super); - function ObjectUnprocessable() { - return _super !== null && _super.apply(this, arguments) || this; - } - return ObjectUnprocessable; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class ObjectUnprocessable extends TypesenseError_1.default { +} exports.default = ObjectUnprocessable; //# sourceMappingURL=ObjectUnprocessable.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/ObjectUnprocessable.js.map b/lib/Typesense/Errors/ObjectUnprocessable.js.map index 812b7f1c..6a22cccd 100644 --- a/lib/Typesense/Errors/ObjectUnprocessable.js.map +++ b/lib/Typesense/Errors/ObjectUnprocessable.js.map @@ -1 +1 @@ -{"version":3,"file":"ObjectUnprocessable.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ObjectUnprocessable.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAAiD,+CAAc;IAA/D;;IAAiE,CAAC;IAAD,0BAAC;AAAD,CAAC,AAAlE,CAAiD,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"ObjectUnprocessable.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ObjectUnprocessable.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,mBAAoB,SAAQ,wBAAc;CAAG;AAAlE,sCAAkE"} \ No newline at end of file diff --git a/lib/Typesense/Errors/RequestMalformed.js b/lib/Typesense/Errors/RequestMalformed.js index 46fb1652..9fffdc02 100644 --- a/lib/Typesense/Errors/RequestMalformed.js +++ b/lib/Typesense/Errors/RequestMalformed.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var RequestMalformed = /** @class */ (function (_super) { - tslib_1.__extends(RequestMalformed, _super); - function RequestMalformed() { - return _super !== null && _super.apply(this, arguments) || this; - } - return RequestMalformed; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class RequestMalformed extends TypesenseError_1.default { +} exports.default = RequestMalformed; //# sourceMappingURL=RequestMalformed.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/RequestMalformed.js.map b/lib/Typesense/Errors/RequestMalformed.js.map index 636779b9..22a31571 100644 --- a/lib/Typesense/Errors/RequestMalformed.js.map +++ b/lib/Typesense/Errors/RequestMalformed.js.map @@ -1 +1 @@ -{"version":3,"file":"RequestMalformed.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/RequestMalformed.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAA8C,4CAAc;IAA5D;;IAA8D,CAAC;IAAD,uBAAC;AAAD,CAAC,AAA/D,CAA8C,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"RequestMalformed.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/RequestMalformed.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,gBAAiB,SAAQ,wBAAc;CAAG;AAA/D,mCAA+D"} \ No newline at end of file diff --git a/lib/Typesense/Errors/RequestUnauthorized.js b/lib/Typesense/Errors/RequestUnauthorized.js index ac5f70f9..1a8a1131 100644 --- a/lib/Typesense/Errors/RequestUnauthorized.js +++ b/lib/Typesense/Errors/RequestUnauthorized.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var RequestUnauthorized = /** @class */ (function (_super) { - tslib_1.__extends(RequestUnauthorized, _super); - function RequestUnauthorized() { - return _super !== null && _super.apply(this, arguments) || this; - } - return RequestUnauthorized; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class RequestUnauthorized extends TypesenseError_1.default { +} exports.default = RequestUnauthorized; //# sourceMappingURL=RequestUnauthorized.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/RequestUnauthorized.js.map b/lib/Typesense/Errors/RequestUnauthorized.js.map index 8764f799..1df3710e 100644 --- a/lib/Typesense/Errors/RequestUnauthorized.js.map +++ b/lib/Typesense/Errors/RequestUnauthorized.js.map @@ -1 +1 @@ -{"version":3,"file":"RequestUnauthorized.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/RequestUnauthorized.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAAiD,+CAAc;IAA/D;;IAAiE,CAAC;IAAD,0BAAC;AAAD,CAAC,AAAlE,CAAiD,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"RequestUnauthorized.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/RequestUnauthorized.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,mBAAoB,SAAQ,wBAAc;CAAG;AAAlE,sCAAkE"} \ No newline at end of file diff --git a/lib/Typesense/Errors/ServerError.js b/lib/Typesense/Errors/ServerError.js index e3bf3f15..024d35fa 100644 --- a/lib/Typesense/Errors/ServerError.js +++ b/lib/Typesense/Errors/ServerError.js @@ -1,13 +1,8 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); -var ServerError = /** @class */ (function (_super) { - tslib_1.__extends(ServerError, _super); - function ServerError() { - return _super !== null && _super.apply(this, arguments) || this; - } - return ServerError; -}(TypesenseError_1.default)); +const tslib_1 = require("tslib"); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +class ServerError extends TypesenseError_1.default { +} exports.default = ServerError; //# sourceMappingURL=ServerError.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/ServerError.js.map b/lib/Typesense/Errors/ServerError.js.map index bac2216a..f95b460b 100644 --- a/lib/Typesense/Errors/ServerError.js.map +++ b/lib/Typesense/Errors/ServerError.js.map @@ -1 +1 @@ -{"version":3,"file":"ServerError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ServerError.ts"],"names":[],"mappings":";;;AAAA,4EAA8C;AAE9C;IAAyC,uCAAc;IAAvD;;IAAyD,CAAC;IAAD,kBAAC;AAAD,CAAC,AAA1D,CAAyC,wBAAc,GAAG"} \ No newline at end of file +{"version":3,"file":"ServerError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/ServerError.ts"],"names":[],"mappings":";;;AAAA,8EAA8C;AAE9C,MAAqB,WAAY,SAAQ,wBAAc;CAAG;AAA1D,8BAA0D"} \ No newline at end of file diff --git a/lib/Typesense/Errors/TypesenseError.js b/lib/Typesense/Errors/TypesenseError.js index 39ad6dfc..db955b85 100644 --- a/lib/Typesense/Errors/TypesenseError.js +++ b/lib/Typesense/Errors/TypesenseError.js @@ -1,19 +1,14 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var TypesenseError = /** @class */ (function (_super) { - tslib_1.__extends(TypesenseError, _super); +class TypesenseError extends Error { // Source: https://stackoverflow.com/a/58417721/123545 - function TypesenseError(message, httpBody, httpStatus) { - var _newTarget = this.constructor; - var _this = _super.call(this, message) || this; - _this.name = _newTarget.name; - _this.httpBody = httpBody; - _this.httpStatus = httpStatus; - Object.setPrototypeOf(_this, _newTarget.prototype); - return _this; + constructor(message, httpBody, httpStatus) { + super(message); + this.name = new.target.name; + this.httpBody = httpBody; + this.httpStatus = httpStatus; + Object.setPrototypeOf(this, new.target.prototype); } - return TypesenseError; -}(Error)); +} exports.default = TypesenseError; //# sourceMappingURL=TypesenseError.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/TypesenseError.js.map b/lib/Typesense/Errors/TypesenseError.js.map index beab88dc..6d5449c4 100644 --- a/lib/Typesense/Errors/TypesenseError.js.map +++ b/lib/Typesense/Errors/TypesenseError.js.map @@ -1 +1 @@ -{"version":3,"file":"TypesenseError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/TypesenseError.ts"],"names":[],"mappings":";;;AAAA;IAA4C,0CAAK;IAI/C,sDAAsD;IACtD,wBAAY,OAAgB,EAAE,QAAiB,EAAE,UAAmB;;QAClE,YAAA,MAAK,YAAC,OAAO,CAAC,SAAC;QACf,KAAI,CAAC,IAAI,GAAG,WAAW,IAAI,CAAC;QAC5B,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,WAAW,SAAS,CAAC,CAAC;;IACpD,CAAC;IACH,qBAAC;AAAD,CAAC,AAZD,CAA4C,KAAK,GAYhD"} \ No newline at end of file +{"version":3,"file":"TypesenseError.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/TypesenseError.ts"],"names":[],"mappings":";;AAAA,MAAqB,cAAe,SAAQ,KAAK;IAI/C,sDAAsD;IACtD,YAAY,OAAgB,EAAE,QAAiB,EAAE,UAAmB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAZD,iCAYC"} \ No newline at end of file diff --git a/lib/Typesense/Errors/index.js b/lib/Typesense/Errors/index.js index 5740bee1..7bcb317b 100644 --- a/lib/Typesense/Errors/index.js +++ b/lib/Typesense/Errors/index.js @@ -1,25 +1,25 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImportError = exports.TypesenseError = exports.ServerError = exports.RequestUnauthorized = exports.RequestMalformed = exports.ObjectUnprocessable = exports.ObjectNotFound = exports.ObjectAlreadyExists = exports.MissingConfigurationError = exports.HTTPError = void 0; -var tslib_1 = require("tslib"); -var HTTPError_1 = tslib_1.__importDefault(require("./HTTPError")); +const tslib_1 = require("tslib"); +const HTTPError_1 = tslib_1.__importDefault(require("./HTTPError")); exports.HTTPError = HTTPError_1.default; -var MissingConfigurationError_1 = tslib_1.__importDefault(require("./MissingConfigurationError")); +const MissingConfigurationError_1 = tslib_1.__importDefault(require("./MissingConfigurationError")); exports.MissingConfigurationError = MissingConfigurationError_1.default; -var ObjectAlreadyExists_1 = tslib_1.__importDefault(require("./ObjectAlreadyExists")); +const ObjectAlreadyExists_1 = tslib_1.__importDefault(require("./ObjectAlreadyExists")); exports.ObjectAlreadyExists = ObjectAlreadyExists_1.default; -var ObjectNotFound_1 = tslib_1.__importDefault(require("./ObjectNotFound")); +const ObjectNotFound_1 = tslib_1.__importDefault(require("./ObjectNotFound")); exports.ObjectNotFound = ObjectNotFound_1.default; -var ObjectUnprocessable_1 = tslib_1.__importDefault(require("./ObjectUnprocessable")); +const ObjectUnprocessable_1 = tslib_1.__importDefault(require("./ObjectUnprocessable")); exports.ObjectUnprocessable = ObjectUnprocessable_1.default; -var RequestMalformed_1 = tslib_1.__importDefault(require("./RequestMalformed")); +const RequestMalformed_1 = tslib_1.__importDefault(require("./RequestMalformed")); exports.RequestMalformed = RequestMalformed_1.default; -var RequestUnauthorized_1 = tslib_1.__importDefault(require("./RequestUnauthorized")); +const RequestUnauthorized_1 = tslib_1.__importDefault(require("./RequestUnauthorized")); exports.RequestUnauthorized = RequestUnauthorized_1.default; -var ServerError_1 = tslib_1.__importDefault(require("./ServerError")); +const ServerError_1 = tslib_1.__importDefault(require("./ServerError")); exports.ServerError = ServerError_1.default; -var ImportError_1 = tslib_1.__importDefault(require("./ImportError")); +const ImportError_1 = tslib_1.__importDefault(require("./ImportError")); exports.ImportError = ImportError_1.default; -var TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); +const TypesenseError_1 = tslib_1.__importDefault(require("./TypesenseError")); exports.TypesenseError = TypesenseError_1.default; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/Typesense/Errors/index.js.map b/lib/Typesense/Errors/index.js.map index 45d675ea..9eb0cb76 100644 --- a/lib/Typesense/Errors/index.js.map +++ b/lib/Typesense/Errors/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAoC;AAYlC,oBAZK,mBAAS,CAYL;AAXX,kGAAoE;AAYlE,oCAZK,mCAAyB,CAYL;AAX3B,sFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,4EAA8C;AAY5C,yBAZK,wBAAc,CAYL;AAXhB,sFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,gFAAkD;AAYhD,2BAZK,0BAAgB,CAYL;AAXlB,sFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,sEAAwC;AAYtC,sBAZK,qBAAW,CAYL;AAXb,sEAAwC;AAatC,sBAbK,qBAAW,CAaL;AAZb,4EAA8C;AAW5C,yBAXK,wBAAc,CAWL"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Typesense/Errors/index.ts"],"names":[],"mappings":";;;;AAAA,oEAAoC;AAYlC,oBAZK,mBAAS,CAYL;AAXX,oGAAoE;AAYlE,oCAZK,mCAAyB,CAYL;AAX3B,wFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,8EAA8C;AAY5C,yBAZK,wBAAc,CAYL;AAXhB,wFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,kFAAkD;AAYhD,2BAZK,0BAAgB,CAYL;AAXlB,wFAAwD;AAYtD,8BAZK,6BAAmB,CAYL;AAXrB,wEAAwC;AAYtC,sBAZK,qBAAW,CAYL;AAXb,wEAAwC;AAatC,sBAbK,qBAAW,CAaL;AAZb,8EAA8C;AAW5C,yBAXK,wBAAc,CAWL"} \ No newline at end of file diff --git a/lib/Typesense/Health.js b/lib/Typesense/Health.js index 0c28608a..78592cc1 100644 --- a/lib/Typesense/Health.js +++ b/lib/Typesense/Health.js @@ -1,19 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/health"; -var Health = /** @class */ (function () { - function Health(apiCall) { +const RESOURCEPATH = "/health"; +class Health { + constructor(apiCall) { this.apiCall = apiCall; } - Health.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - return Health; -}()); + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } +} exports.default = Health; //# sourceMappingURL=Health.js.map \ No newline at end of file diff --git a/lib/Typesense/Health.js.map b/lib/Typesense/Health.js.map index a424ca10..ac7fb246 100644 --- a/lib/Typesense/Health.js.map +++ b/lib/Typesense/Health.js.map @@ -1 +1 @@ -{"version":3,"file":"Health.js","sourceRoot":"","sources":["../../src/Typesense/Health.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,SAAS,CAAC;AAM/B;IACE,gBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,yBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,YAAY,CAAC,EAAC;;;KACvD;IACH,aAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Health.js","sourceRoot":"","sources":["../../src/Typesense/Health.ts"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,SAAS,CAAC;AAM/B,MAAqB,MAAM;IACzB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,YAAY,CAAC,CAAC;IACxD,CAAC;CACF;AAND,yBAMC"} \ No newline at end of file diff --git a/lib/Typesense/Key.js b/lib/Typesense/Key.js index 27538455..473618ac 100644 --- a/lib/Typesense/Key.js +++ b/lib/Typesense/Key.js @@ -1,30 +1,21 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Keys_1 = tslib_1.__importDefault(require("./Keys")); -var Key = /** @class */ (function () { - function Key(id, apiCall) { +const tslib_1 = require("tslib"); +const Keys_1 = tslib_1.__importDefault(require("./Keys")); +class Key { + constructor(id, apiCall) { this.id = id; this.apiCall = apiCall; } - Key.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Key.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Key.prototype.endpointPath = function () { - return "".concat(Keys_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - }; - return Key; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Keys_1.default.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +} exports.default = Key; //# sourceMappingURL=Key.js.map \ No newline at end of file diff --git a/lib/Typesense/Key.js.map b/lib/Typesense/Key.js.map index 4eb8658c..4cd3e075 100644 --- a/lib/Typesense/Key.js.map +++ b/lib/Typesense/Key.js.map @@ -1 +1 @@ -{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../src/Typesense/Key.ts"],"names":[],"mappings":";;;AACA,wDAA0B;AAoB1B;IACE,aACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,sBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAY,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACzD;IAEK,oBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAClE;IAEO,0BAAY,GAApB;QACE,OAAO,UAAG,cAAI,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC/D,CAAC;IACH,UAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"Key.js","sourceRoot":"","sources":["../../src/Typesense/Key.ts"],"names":[],"mappings":";;;AACA,0DAA0B;AAoB1B,MAAqB,GAAG;IACtB,YACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAY,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,cAAI,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC;CACF;AAjBD,sBAiBC"} \ No newline at end of file diff --git a/lib/Typesense/Keys.js b/lib/Typesense/Keys.js index 42f05737..1a2d2b83 100644 --- a/lib/Typesense/Keys.js +++ b/lib/Typesense/Keys.js @@ -1,46 +1,32 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var crypto_1 = require("crypto"); -var Utils_1 = require("./Utils"); -var RESOURCEPATH = "/keys"; -var Keys = /** @class */ (function () { - function Keys(apiCall) { +const crypto_1 = require("crypto"); +const Utils_1 = require("./Utils"); +const RESOURCEPATH = "/keys"; +class Keys { + constructor(apiCall) { this.apiCall = apiCall; this.apiCall = apiCall; } - Keys.prototype.create = function (params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.post(Keys.RESOURCEPATH, params)]; - }); - }); - }; - Keys.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - Keys.prototype.generateScopedSearchKey = function (searchKey, parameters) { + async create(params) { + return this.apiCall.post(Keys.RESOURCEPATH, params); + } + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } + generateScopedSearchKey(searchKey, parameters) { // Note: only a key generated with the `documents:search` action will be // accepted by the server, when used with the search endpoint. - var normalizedParams = (0, Utils_1.normalizeArrayableParams)(parameters); - var paramsJSON = JSON.stringify(normalizedParams); - var digest = Buffer.from((0, crypto_1.createHmac)("sha256", searchKey).update(paramsJSON).digest("base64")); - var keyPrefix = searchKey.substr(0, 4); - var rawScopedKey = "".concat(digest).concat(keyPrefix).concat(paramsJSON); + const normalizedParams = (0, Utils_1.normalizeArrayableParams)(parameters); + const paramsJSON = JSON.stringify(normalizedParams); + const digest = Buffer.from((0, crypto_1.createHmac)("sha256", searchKey).update(paramsJSON).digest("base64")); + const keyPrefix = searchKey.substr(0, 4); + const rawScopedKey = `${digest}${keyPrefix}${paramsJSON}`; return Buffer.from(rawScopedKey).toString("base64"); - }; - Object.defineProperty(Keys, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Keys; -}()); + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Keys; //# sourceMappingURL=Keys.js.map \ No newline at end of file diff --git a/lib/Typesense/Keys.js.map b/lib/Typesense/Keys.js.map index 39438bf6..a534b3a5 100644 --- a/lib/Typesense/Keys.js.map +++ b/lib/Typesense/Keys.js.map @@ -1 +1 @@ -{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../../src/Typesense/Keys.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAIpC,iCAAmD;AAEnD,IAAM,YAAY,GAAG,OAAO,CAAC;AAe7B;IACE,cAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,qBAAM,GAAZ,UAAa,MAAuB;;;gBAClC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAY,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAC;;;KAChE;IAEK,uBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,CAAC,EAAC;;;KAC3D;IAED,sCAAuB,GAAvB,UACE,SAAiB,EACjB,UAAmD;QAEnD,wEAAwE;QACxE,8DAA8D;QAC9D,IAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,UAAU,CAAC,CAAC;QACd,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,IAAA,mBAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpE,CAAC;QACF,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,IAAM,YAAY,GAAG,UAAG,MAAM,SAAG,SAAS,SAAG,UAAU,CAAE,CAAC;QAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,sBAAW,oBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,WAAC;AAAD,CAAC,AArCD,IAqCC"} \ No newline at end of file +{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../../src/Typesense/Keys.ts"],"names":[],"mappings":";;AAAA,mCAAoC;AAIpC,mCAAmD;AAEnD,MAAM,YAAY,GAAG,OAAO,CAAC;AAe7B,MAAqB,IAAI;IACvB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAuB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAY,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAqB,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,uBAAuB,CACrB,SAAiB,EACjB,UAAmD;QAEnD,wEAAwE;QACxE,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,UAAU,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,IAAA,mBAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACpE,CAAC;QACF,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;QAE1D,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AArCD,uBAqCC"} \ No newline at end of file diff --git a/lib/Typesense/Metrics.js b/lib/Typesense/Metrics.js index 9c564425..83167a42 100644 --- a/lib/Typesense/Metrics.js +++ b/lib/Typesense/Metrics.js @@ -1,19 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/metrics.json"; -var Metrics = /** @class */ (function () { - function Metrics(apiCall) { +const RESOURCEPATH = "/metrics.json"; +class Metrics { + constructor(apiCall) { this.apiCall = apiCall; } - Metrics.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - return Metrics; -}()); + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } +} exports.default = Metrics; //# sourceMappingURL=Metrics.js.map \ No newline at end of file diff --git a/lib/Typesense/Metrics.js.map b/lib/Typesense/Metrics.js.map index 55e1f29e..9b049224 100644 --- a/lib/Typesense/Metrics.js.map +++ b/lib/Typesense/Metrics.js.map @@ -1 +1 @@ -{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/Typesense/Metrics.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,eAAe,CAAC;AAsBrC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;;;KACvC;IACH,cAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Metrics.js","sourceRoot":"","sources":["../../src/Typesense/Metrics.ts"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,eAAe,CAAC;AAsBrC,MAAqB,OAAO;IAC1B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;CACF;AAND,0BAMC"} \ No newline at end of file diff --git a/lib/Typesense/MultiSearch.js b/lib/Typesense/MultiSearch.js index e8fea3f2..bb86302d 100644 --- a/lib/Typesense/MultiSearch.js +++ b/lib/Typesense/MultiSearch.js @@ -1,53 +1,45 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RequestWithCache_1 = tslib_1.__importDefault(require("./RequestWithCache")); -var Utils_1 = require("./Utils"); -var RESOURCEPATH = "/multi_search"; -var MultiSearch = /** @class */ (function () { - function MultiSearch(apiCall, configuration, useTextContentType) { - if (useTextContentType === void 0) { useTextContentType = false; } +const tslib_1 = require("tslib"); +const RequestWithCache_1 = tslib_1.__importDefault(require("./RequestWithCache")); +const Utils_1 = require("./Utils"); +const RESOURCEPATH = "/multi_search"; +class MultiSearch { + constructor(apiCall, configuration, useTextContentType = false) { this.apiCall = apiCall; this.configuration = configuration; this.useTextContentType = useTextContentType; this.requestWithCache = new RequestWithCache_1.default(); } - MultiSearch.prototype.clearCache = function () { + clearCache() { this.requestWithCache.clearCache(); - }; - MultiSearch.prototype.perform = function (searchRequests, commonParams, _a) { - var _b = _a === void 0 ? {} : _a, _c = _b.cacheSearchResultsForSeconds, cacheSearchResultsForSeconds = _c === void 0 ? this.configuration - .cacheSearchResultsForSeconds : _c; - return tslib_1.__awaiter(this, void 0, void 0, function () { - var params, normalizedSearchRequests, streamConfig, paramsWithoutStream, normalizedQueryParams; - return tslib_1.__generator(this, function (_d) { - params = commonParams ? tslib_1.__assign({}, commonParams) : {}; - if (this.configuration.useServerSideSearchCache === true) { - params.use_cache = true; - } - normalizedSearchRequests = { - union: searchRequests.union, - searches: searchRequests.searches.map((Utils_1.normalizeArrayableParams)), - }; - streamConfig = params.streamConfig, paramsWithoutStream = tslib_1.__rest(params, ["streamConfig"]); - normalizedQueryParams = (0, Utils_1.normalizeArrayableParams)(paramsWithoutStream); - return [2 /*return*/, this.requestWithCache.perform(this.apiCall, "post", { - path: RESOURCEPATH, - body: normalizedSearchRequests, - queryParams: normalizedQueryParams, - headers: this.useTextContentType - ? { "content-type": "text/plain" } - : {}, - streamConfig: streamConfig, - isStreamingRequest: this.isStreamingRequest(params), - }, { cacheResponseForSeconds: cacheSearchResultsForSeconds })]; - }); - }); - }; - MultiSearch.prototype.isStreamingRequest = function (commonParams) { + } + async perform(searchRequests, commonParams, { cacheSearchResultsForSeconds = this.configuration + .cacheSearchResultsForSeconds, } = {}) { + const params = commonParams ? { ...commonParams } : {}; + if (this.configuration.useServerSideSearchCache === true) { + params.use_cache = true; + } + const normalizedSearchRequests = { + union: searchRequests.union, + searches: searchRequests.searches.map((Utils_1.normalizeArrayableParams)), + }; + const { streamConfig, ...paramsWithoutStream } = params; + const normalizedQueryParams = (0, Utils_1.normalizeArrayableParams)(paramsWithoutStream); + return this.requestWithCache.perform(this.apiCall, "post", { + path: RESOURCEPATH, + body: normalizedSearchRequests, + queryParams: normalizedQueryParams, + headers: this.useTextContentType + ? { "content-type": "text/plain" } + : {}, + streamConfig, + isStreamingRequest: this.isStreamingRequest(params), + }, { cacheResponseForSeconds: cacheSearchResultsForSeconds }); + } + isStreamingRequest(commonParams) { return commonParams.streamConfig !== undefined; - }; - return MultiSearch; -}()); + } +} exports.default = MultiSearch; //# sourceMappingURL=MultiSearch.js.map \ No newline at end of file diff --git a/lib/Typesense/MultiSearch.js.map b/lib/Typesense/MultiSearch.js.map index 2766a4e7..4bef05a6 100644 --- a/lib/Typesense/MultiSearch.js.map +++ b/lib/Typesense/MultiSearch.js.map @@ -1 +1 @@ -{"version":3,"file":"MultiSearch.js","sourceRoot":"","sources":["../../src/Typesense/MultiSearch.ts"],"names":[],"mappings":";;;AAEA,gFAAkD;AAOlD,iCAAmD;AAWnD,IAAM,YAAY,GAAG,eAAe,CAAC;AAErC;IAGE,qBACU,OAAgB,EAChB,aAA4B,EAC5B,kBAAmC;QAAnC,mCAAA,EAAA,0BAAmC;QAFnC,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAiB;QAE3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAAgB,EAAE,CAAC;IACjD,CAAC;IAED,gCAAU,GAAV;QACE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAwBK,6BAAO,GAAb,UAIE,cAA2D,EAC3D,YAE0C,EAC1C,EAGiD;YAHjD,qBAG+C,EAAE,KAAA,EAF/C,oCAC+B,EAD/B,4BAA4B,mBAAG,IAAI,CAAC,aAAa;aAC9C,4BAA4B,KAAA;;;;gBAG3B,MAAM,GAAG,YAAY,CAAC,CAAC,sBAAM,YAAY,EAAG,CAAC,CAAC,EAAE,CAAC;gBAEvD,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC;oBACzD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBAEK,wBAAwB,GAE1B;oBACF,KAAK,EAAE,cAAc,CAAC,KAAK;oBAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAA,gCAIC,CAAA,CACF;iBACF,CAAC;gBAEM,YAAY,GAA6B,MAAM,aAAnC,EAAK,mBAAmB,kBAAK,MAAM,EAAjD,gBAAwC,CAAF,CAAY;gBAClD,qBAAqB,GAAG,IAAA,gCAAwB,EACpD,mBAAqD,CACtD,CAAC;gBAEF,sBAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAClC,IAAI,CAAC,OAAO,EACZ,MAAM,EACN;wBACE,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,wBAAwB;wBAC9B,WAAW,EAAE,qBAAqB;wBAClC,OAAO,EAAE,IAAI,CAAC,kBAAkB;4BAC9B,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE;4BAClC,CAAC,CAAC,EAAE;wBACN,YAAY,cAAA;wBACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;qBACpD,EACD,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,CAC1D,EAAC;;;KACH;IAEO,wCAAkB,GAA1B,UAA2B,YAAwC;QACjE,OAAO,YAAY,CAAC,YAAY,KAAK,SAAS,CAAC;IACjD,CAAC;IACH,kBAAC;AAAD,CAAC,AA9FD,IA8FC"} \ No newline at end of file +{"version":3,"file":"MultiSearch.js","sourceRoot":"","sources":["../../src/Typesense/MultiSearch.ts"],"names":[],"mappings":";;;AAEA,kFAAkD;AAOlD,mCAAmD;AAWnD,MAAM,YAAY,GAAG,eAAe,CAAC;AAErC,MAAqB,WAAW;IAG9B,YACU,OAAgB,EAChB,aAA4B,EAC5B,qBAA8B,KAAK;QAFnC,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAiB;QAE3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAAgB,EAAE,CAAC;IACjD,CAAC;IAED,UAAU;QACR,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAwBD,KAAK,CAAC,OAAO,CAIX,cAA2D,EAC3D,YAE0C,EAC1C,EACE,4BAA4B,GAAG,IAAI,CAAC,aAAa;SAC9C,4BAA4B,MACc,EAAE;QAEjD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC;YACzD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,MAAM,wBAAwB,GAE1B;YACF,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CACnC,CAAA,gCAIC,CAAA,CACF;SACF,CAAC;QAEF,MAAM,EAAE,YAAY,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAC;QACxD,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,EACpD,mBAAqD,CACtD,CAAC;QAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAClC,IAAI,CAAC,OAAO,EACZ,MAAM,EACN;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,qBAAqB;YAClC,OAAO,EAAE,IAAI,CAAC,kBAAkB;gBAC9B,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE;gBAClC,CAAC,CAAC,EAAE;YACN,YAAY;YACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;SACpD,EACD,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,CAC1D,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,YAAwC;QACjE,OAAO,YAAY,CAAC,YAAY,KAAK,SAAS,CAAC;IACjD,CAAC;CACF;AA9FD,8BA8FC"} \ No newline at end of file diff --git a/lib/Typesense/Operations.js b/lib/Typesense/Operations.js index d34c3237..c0661712 100644 --- a/lib/Typesense/Operations.js +++ b/lib/Typesense/Operations.js @@ -1,20 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/operations"; -var Operations = /** @class */ (function () { - function Operations(apiCall) { +const RESOURCEPATH = "/operations"; +class Operations { + constructor(apiCall) { this.apiCall = apiCall; } - Operations.prototype.perform = function (operationName, queryParameters) { - if (queryParameters === void 0) { queryParameters = {}; } - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.post("".concat(RESOURCEPATH, "/").concat(operationName), {}, queryParameters)]; - }); - }); - }; - return Operations; -}()); + async perform(operationName, queryParameters = {}) { + return this.apiCall.post(`${RESOURCEPATH}/${operationName}`, {}, queryParameters); + } +} exports.default = Operations; //# sourceMappingURL=Operations.js.map \ No newline at end of file diff --git a/lib/Typesense/Operations.js.map b/lib/Typesense/Operations.js.map index c71cbef4..7a57ae46 100644 --- a/lib/Typesense/Operations.js.map +++ b/lib/Typesense/Operations.js.map @@ -1 +1 @@ -{"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../src/Typesense/Operations.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,aAAa,CAAC;AAEnC;IACE,oBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,4BAAO,GAAb,UACE,aAMiB,EACjB,eAAyC;QAAzC,gCAAA,EAAA,oBAAyC;;;gBAEzC,sBAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,UAAG,YAAY,cAAI,aAAa,CAAE,EAClC,EAAE,EACF,eAAe,CAChB,EAAC;;;KACH;IACH,iBAAC;AAAD,CAAC,AAnBD,IAmBC"} \ No newline at end of file +{"version":3,"file":"Operations.js","sourceRoot":"","sources":["../../src/Typesense/Operations.ts"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,aAAa,CAAC;AAEnC,MAAqB,UAAU;IAC7B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,OAAO,CACX,aAMiB,EACjB,kBAAuC,EAAE;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,YAAY,IAAI,aAAa,EAAE,EAClC,EAAE,EACF,eAAe,CAChB,CAAC;IACJ,CAAC;CACF;AAnBD,6BAmBC"} \ No newline at end of file diff --git a/lib/Typesense/Override.js b/lib/Typesense/Override.js index a2e07e2f..b2969a80 100644 --- a/lib/Typesense/Override.js +++ b/lib/Typesense/Override.js @@ -1,32 +1,23 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var Overrides_1 = tslib_1.__importDefault(require("./Overrides")); -var Override = /** @class */ (function () { - function Override(collectionName, overrideId, apiCall) { +const tslib_1 = require("tslib"); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const Overrides_1 = tslib_1.__importDefault(require("./Overrides")); +class Override { + constructor(collectionName, overrideId, apiCall) { this.collectionName = collectionName; this.overrideId = overrideId; this.apiCall = apiCall; } - Override.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Override.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Override.prototype.endpointPath = function () { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(Overrides_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.overrideId)); - }; - return Override; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Collections_1.default.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Overrides_1.default.RESOURCEPATH}/${encodeURIComponent(this.overrideId)}`; + } +} exports.default = Override; //# sourceMappingURL=Override.js.map \ No newline at end of file diff --git a/lib/Typesense/Override.js.map b/lib/Typesense/Override.js.map index 43ae48f8..acf1c51c 100644 --- a/lib/Typesense/Override.js.map +++ b/lib/Typesense/Override.js.map @@ -1 +1 @@ -{"version":3,"file":"Override.js","sourceRoot":"","sources":["../../src/Typesense/Override.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AACxC,kEAA8D;AAU9D;IACE,kBACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9D;IAEK,yBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAClJ,CAAC;IACH,eAAC;AAAD,CAAC,AAlBD,IAkBC"} \ No newline at end of file +{"version":3,"file":"Override.js","sourceRoot":"","sources":["../../src/Typesense/Override.ts"],"names":[],"mappings":";;;AACA,wEAAwC;AACxC,oEAA8D;AAU9D,MAAqB,QAAQ;IAC3B,YACU,cAAsB,EACtB,UAAkB,EAClB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,qBAAW,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,mBAAS,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAClJ,CAAC;CACF;AAlBD,2BAkBC"} \ No newline at end of file diff --git a/lib/Typesense/Overrides.js b/lib/Typesense/Overrides.js index 503c47c1..5d411c75 100644 --- a/lib/Typesense/Overrides.js +++ b/lib/Typesense/Overrides.js @@ -1,38 +1,25 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var RESOURCEPATH = "/overrides"; -var Overrides = /** @class */ (function () { - function Overrides(collectionName, apiCall) { +const tslib_1 = require("tslib"); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const RESOURCEPATH = "/overrides"; +class Overrides { + constructor(collectionName, apiCall) { this.collectionName = collectionName; this.apiCall = apiCall; } - Overrides.prototype.upsert = function (overrideId, params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(overrideId), params)]; - }); - }); - }; - Overrides.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Overrides.prototype.endpointPath = function (operation) { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(this.collectionName).concat(Overrides.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(Overrides, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Overrides; -}()); + async upsert(overrideId, params) { + return this.apiCall.put(this.endpointPath(overrideId), params); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Collections_1.default.RESOURCEPATH}/${this.collectionName}${Overrides.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Overrides; //# sourceMappingURL=Overrides.js.map \ No newline at end of file diff --git a/lib/Typesense/Overrides.js.map b/lib/Typesense/Overrides.js.map index a7ac0700..2b39345c 100644 --- a/lib/Typesense/Overrides.js.map +++ b/lib/Typesense/Overrides.js.map @@ -1 +1 @@ -{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../src/Typesense/Overrides.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAGxC,IAAM,YAAY,GAAG,YAAY,CAAC;AAuClC;IACE,mBACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,0BAAM,GAAZ,UACE,UAAkB,EAClB,MAA4B;;;gBAE5B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,EAAC;;;KACH;IAEK,4BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,gCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,IAAI,CAAC,cAAc,SACvD,SAAS,CAAC,YAAY,SACrB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1E,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA7BD,IA6BC"} \ No newline at end of file +{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../src/Typesense/Overrides.ts"],"names":[],"mappings":";;;AACA,wEAAwC;AAGxC,MAAM,YAAY,GAAG,YAAY,CAAC;AAuClC,MAAqB,SAAS;IAC5B,YACU,cAAsB,EACtB,OAAgB;QADhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,MAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,qBAAW,CAAC,YAAY,IAAI,IAAI,CAAC,cAAc,GACvD,SAAS,CAAC,YACZ,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA7BD,4BA6BC"} \ No newline at end of file diff --git a/lib/Typesense/Preset.js b/lib/Typesense/Preset.js index 1f9f7d84..69073a95 100644 --- a/lib/Typesense/Preset.js +++ b/lib/Typesense/Preset.js @@ -1,30 +1,21 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Presets_1 = tslib_1.__importDefault(require("./Presets")); -var Preset = /** @class */ (function () { - function Preset(presetId, apiCall) { +const tslib_1 = require("tslib"); +const Presets_1 = tslib_1.__importDefault(require("./Presets")); +class Preset { + constructor(presetId, apiCall) { this.presetId = presetId; this.apiCall = apiCall; } - Preset.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Preset.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Preset.prototype.endpointPath = function () { - return "".concat(Presets_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.presetId)); - }; - return Preset; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Presets_1.default.RESOURCEPATH}/${encodeURIComponent(this.presetId)}`; + } +} exports.default = Preset; //# sourceMappingURL=Preset.js.map \ No newline at end of file diff --git a/lib/Typesense/Preset.js.map b/lib/Typesense/Preset.js.map index 6491234d..fb5e355b 100644 --- a/lib/Typesense/Preset.js.map +++ b/lib/Typesense/Preset.js.map @@ -1 +1 @@ -{"version":3,"file":"Preset.js","sourceRoot":"","sources":["../../src/Typesense/Preset.ts"],"names":[],"mappings":";;;AAEA,8DAAwD;AAWxD;IACE,gBACU,QAAgB,EAChB,OAAgB;QADhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,yBAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC/D;IAEK,uBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACrE;IAEO,6BAAY,GAApB;QACE,OAAO,UAAG,iBAAO,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAE,CAAC;IACxE,CAAC;IACH,aAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"Preset.js","sourceRoot":"","sources":["../../src/Typesense/Preset.ts"],"names":[],"mappings":";;;AAEA,gEAAwD;AAWxD,MAAqB,MAAM;IACzB,YACU,QAAgB,EAChB,OAAgB;QADhB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACtE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,iBAAO,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxE,CAAC;CACF;AAjBD,yBAiBC"} \ No newline at end of file diff --git a/lib/Typesense/Presets.js b/lib/Typesense/Presets.js index c780d6e0..ac13a9dc 100644 --- a/lib/Typesense/Presets.js +++ b/lib/Typesense/Presets.js @@ -1,49 +1,32 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Utils_1 = require("./Utils"); -var RESOURCEPATH = "/presets"; -var Presets = /** @class */ (function () { - function Presets(apiCall) { +const Utils_1 = require("./Utils"); +const RESOURCEPATH = "/presets"; +class Presets { + constructor(apiCall) { this.apiCall = apiCall; } - Presets.prototype.upsert = function (presetId, params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var normalizedParams_1, normalizedParams; - return tslib_1.__generator(this, function (_a) { - if (typeof params.value === "object" && "searches" in params.value) { - normalizedParams_1 = params.value.searches.map(function (search) { - return (0, Utils_1.normalizeArrayableParams)(search); - }); - return [2 /*return*/, this.apiCall.put(this.endpointPath(presetId), { - value: { searches: normalizedParams_1 }, - })]; - } - normalizedParams = (0, Utils_1.normalizeArrayableParams)(params.value); - return [2 /*return*/, this.apiCall.put(this.endpointPath(presetId), { - value: normalizedParams, - })]; + async upsert(presetId, params) { + if (typeof params.value === "object" && "searches" in params.value) { + const normalizedParams = params.value.searches.map((search) => (0, Utils_1.normalizeArrayableParams)(search)); + return this.apiCall.put(this.endpointPath(presetId), { + value: { searches: normalizedParams }, }); + } + const normalizedParams = (0, Utils_1.normalizeArrayableParams)(params.value); + return this.apiCall.put(this.endpointPath(presetId), { + value: normalizedParams, }); - }; - Presets.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Presets.prototype.endpointPath = function (operation) { - return "".concat(Presets.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(Presets, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Presets; -}()); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Presets.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Presets; //# sourceMappingURL=Presets.js.map \ No newline at end of file diff --git a/lib/Typesense/Presets.js.map b/lib/Typesense/Presets.js.map index 72fd9349..03d831f4 100644 --- a/lib/Typesense/Presets.js.map +++ b/lib/Typesense/Presets.js.map @@ -1 +1 @@ -{"version":3,"file":"Presets.js","sourceRoot":"","sources":["../../src/Typesense/Presets.ts"],"names":[],"mappings":";;;AAIA,iCAAmD;AAEnD,IAAM,YAAY,GAAG,UAAU,CAAC;AAahC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,wBAAM,GAAZ,UACE,QAAgB,EAChB,MAAoC;;;;gBAEpC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7D,qBAAmB,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM;wBACxD,OAAA,IAAA,gCAAwB,EAAmC,MAAM,CAAC;oBAAlE,CAAkE,CACnE,CAAC;oBAEF,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;4BACpE,KAAK,EAAE,EAAE,QAAQ,EAAE,kBAAgB,EAAE;yBACtC,CAAC,EAAC;gBACL,CAAC;gBACK,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEhB,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;wBACpE,KAAK,EAAE,gBAAgB;qBACxB,CAAC,EAAC;;;KACJ;IAEK,0BAAQ,GAAd;;;gBAGE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,8BAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,OAAO,CAAC,YAAY,SAC5B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,uBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,cAAC;AAAD,CAAC,AA1CD,IA0CC"} \ No newline at end of file +{"version":3,"file":"Presets.js","sourceRoot":"","sources":["../../src/Typesense/Presets.ts"],"names":[],"mappings":";;AAIA,mCAAmD;AAEnD,MAAM,YAAY,GAAG,UAAU,CAAC;AAahC,MAAqB,OAAO;IAC1B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,MAAoC;QAEpC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5D,IAAA,gCAAwB,EAAmC,MAAM,CAAC,CACnE,CAAC;YAEF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;gBACpE,KAAK,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAI/C,MAAM,CAAC,KAAK,CAAC,CAAC;QAEhB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAkB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;YACpE,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QAGZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,OAAO,CAAC,YAAY,GAC5B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CACnE,EAAE,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA1CD,0BA0CC"} \ No newline at end of file diff --git a/lib/Typesense/RequestWithCache.js b/lib/Typesense/RequestWithCache.js index 7201c3c0..34f030e1 100644 --- a/lib/Typesense/RequestWithCache.js +++ b/lib/Typesense/RequestWithCache.js @@ -1,90 +1,78 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var defaultCacheResponseForSeconds = 2 * 60; -var defaultMaxSize = 100; -var RequestWithCache = /** @class */ (function () { - function RequestWithCache() { +const defaultCacheResponseForSeconds = 2 * 60; +const defaultMaxSize = 100; +class RequestWithCache { + constructor() { this.responseCache = new Map(); this.responsePromiseCache = new Map(); } - RequestWithCache.prototype.clearCache = function () { + clearCache() { this.responseCache = new Map(); this.responsePromiseCache = new Map(); - }; - RequestWithCache.prototype.perform = function (requestContext, methodName, requestParams, cacheOptions) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var _a, cacheResponseForSeconds, _b, maxSize, isCacheDisabled, path, queryParams, body, headers, streamConfig, abortSignal, responseType, isStreamingRequest, requestParamsJSON, cacheEntry, now, isEntryValid, cachePromiseEntry, isEntryValid, responsePromise, response, isCacheOverMaxSize, oldestEntry, isResponsePromiseCacheOverMaxSize, oldestEntry; - return tslib_1.__generator(this, function (_c) { - switch (_c.label) { - case 0: - _a = cacheOptions.cacheResponseForSeconds, cacheResponseForSeconds = _a === void 0 ? defaultCacheResponseForSeconds : _a, _b = cacheOptions.maxSize, maxSize = _b === void 0 ? defaultMaxSize : _b; - isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0; - path = requestParams.path, queryParams = requestParams.queryParams, body = requestParams.body, headers = requestParams.headers, streamConfig = requestParams.streamConfig, abortSignal = requestParams.abortSignal, responseType = requestParams.responseType, isStreamingRequest = requestParams.isStreamingRequest; - if (isCacheDisabled) { - return [2 /*return*/, this.executeRequest(requestContext, methodName, path, queryParams, body, headers, { abortSignal: abortSignal, responseType: responseType, streamConfig: streamConfig, isStreamingRequest: isStreamingRequest })]; - } - requestParamsJSON = JSON.stringify(requestParams); - cacheEntry = this.responseCache.get(requestParamsJSON); - now = Date.now(); - if (cacheEntry) { - isEntryValid = now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000; - if (isEntryValid) { - this.responseCache.delete(requestParamsJSON); - this.responseCache.set(requestParamsJSON, cacheEntry); - return [2 /*return*/, cacheEntry.response]; - } - else { - this.responseCache.delete(requestParamsJSON); - } - } - cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON); - if (cachePromiseEntry) { - isEntryValid = now - cachePromiseEntry.requestTimestamp < - cacheResponseForSeconds * 1000; - if (isEntryValid) { - this.responsePromiseCache.delete(requestParamsJSON); - this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry); - return [2 /*return*/, cachePromiseEntry.responsePromise]; - } - else { - this.responsePromiseCache.delete(requestParamsJSON); - } - } - responsePromise = this.executeRequest(requestContext, methodName, path, queryParams, body, headers, { abortSignal: abortSignal, responseType: responseType, streamConfig: streamConfig, isStreamingRequest: isStreamingRequest }); - this.responsePromiseCache.set(requestParamsJSON, { - requestTimestamp: now, - responsePromise: responsePromise, - }); - return [4 /*yield*/, responsePromise]; - case 1: - response = _c.sent(); - this.responseCache.set(requestParamsJSON, { - requestTimestamp: now, - response: response, - }); - isCacheOverMaxSize = this.responseCache.size > maxSize; - if (isCacheOverMaxSize) { - oldestEntry = this.responseCache.keys().next().value; - if (oldestEntry) { - this.responseCache.delete(oldestEntry); - } - } - isResponsePromiseCacheOverMaxSize = this.responsePromiseCache.size > maxSize; - if (isResponsePromiseCacheOverMaxSize) { - oldestEntry = this.responsePromiseCache.keys().next().value; - if (oldestEntry) { - this.responsePromiseCache.delete(oldestEntry); - } - } - return [2 /*return*/, response]; - } - }); + } + async perform(requestContext, methodName, requestParams, cacheOptions) { + const { cacheResponseForSeconds = defaultCacheResponseForSeconds, maxSize = defaultMaxSize, } = cacheOptions; + const isCacheDisabled = cacheResponseForSeconds <= 0 || maxSize <= 0; + const { path, queryParams, body, headers, streamConfig, abortSignal, responseType, isStreamingRequest, } = requestParams; + if (isCacheDisabled) { + return this.executeRequest(requestContext, methodName, path, queryParams, body, headers, { abortSignal, responseType, streamConfig, isStreamingRequest }); + } + const requestParamsJSON = JSON.stringify(requestParams); + const cacheEntry = this.responseCache.get(requestParamsJSON); + const now = Date.now(); + if (cacheEntry) { + const isEntryValid = now - cacheEntry.requestTimestamp < cacheResponseForSeconds * 1000; + if (isEntryValid) { + this.responseCache.delete(requestParamsJSON); + this.responseCache.set(requestParamsJSON, cacheEntry); + return cacheEntry.response; + } + else { + this.responseCache.delete(requestParamsJSON); + } + } + const cachePromiseEntry = this.responsePromiseCache.get(requestParamsJSON); + if (cachePromiseEntry) { + const isEntryValid = now - cachePromiseEntry.requestTimestamp < + cacheResponseForSeconds * 1000; + if (isEntryValid) { + this.responsePromiseCache.delete(requestParamsJSON); + this.responsePromiseCache.set(requestParamsJSON, cachePromiseEntry); + return cachePromiseEntry.responsePromise; + } + else { + this.responsePromiseCache.delete(requestParamsJSON); + } + } + const responsePromise = this.executeRequest(requestContext, methodName, path, queryParams, body, headers, { abortSignal, responseType, streamConfig, isStreamingRequest }); + this.responsePromiseCache.set(requestParamsJSON, { + requestTimestamp: now, + responsePromise, + }); + const response = await responsePromise; + this.responseCache.set(requestParamsJSON, { + requestTimestamp: now, + response: response, }); - }; - RequestWithCache.prototype.executeRequest = function (context, methodName, path, queryParams, body, headers, options) { - if (queryParams === void 0) { queryParams = {}; } - var method = context[methodName]; + const isCacheOverMaxSize = this.responseCache.size > maxSize; + if (isCacheOverMaxSize) { + const oldestEntry = this.responseCache.keys().next().value; + if (oldestEntry) { + this.responseCache.delete(oldestEntry); + } + } + const isResponsePromiseCacheOverMaxSize = this.responsePromiseCache.size > maxSize; + if (isResponsePromiseCacheOverMaxSize) { + const oldestEntry = this.responsePromiseCache.keys().next().value; + if (oldestEntry) { + this.responsePromiseCache.delete(oldestEntry); + } + } + return response; + } + executeRequest(context, methodName, path, queryParams = {}, body, headers, options) { + const method = context[methodName]; switch (methodName) { case "get": return method.call(context, path, queryParams, { @@ -106,10 +94,9 @@ var RequestWithCache = /** @class */ (function () { case "patch": return method.call(context, path, body, queryParams); default: - throw new Error("Unsupported method: ".concat(String(methodName))); + throw new Error(`Unsupported method: ${String(methodName)}`); } - }; - return RequestWithCache; -}()); + } +} exports.default = RequestWithCache; //# sourceMappingURL=RequestWithCache.js.map \ No newline at end of file diff --git a/lib/Typesense/RequestWithCache.js.map b/lib/Typesense/RequestWithCache.js.map index 164ec5dd..668a8d0f 100644 --- a/lib/Typesense/RequestWithCache.js.map +++ b/lib/Typesense/RequestWithCache.js.map @@ -1 +1 @@ -{"version":3,"file":"RequestWithCache.js","sourceRoot":"","sources":["../../src/Typesense/RequestWithCache.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"RequestWithCache.js","sourceRoot":"","sources":["../../src/Typesense/RequestWithCache.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/Typesense/SearchClient.js b/lib/Typesense/SearchClient.js index d8de0e03..ec7e3618 100644 --- a/lib/Typesense/SearchClient.js +++ b/lib/Typesense/SearchClient.js @@ -1,12 +1,12 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Configuration_1 = tslib_1.__importDefault(require("./Configuration")); -var ApiCall_1 = tslib_1.__importDefault(require("./ApiCall")); -var MultiSearch_1 = tslib_1.__importDefault(require("./MultiSearch")); -var SearchOnlyCollection_1 = require("./SearchOnlyCollection"); -var SearchClient = /** @class */ (function () { - function SearchClient(options) { +const tslib_1 = require("tslib"); +const Configuration_1 = tslib_1.__importDefault(require("./Configuration")); +const ApiCall_1 = tslib_1.__importDefault(require("./ApiCall")); +const MultiSearch_1 = tslib_1.__importDefault(require("./MultiSearch")); +const SearchOnlyCollection_1 = require("./SearchOnlyCollection"); +class SearchClient { + constructor(options) { var _a; options.sendApiKeyAsQueryParam = (_a = options.sendApiKeyAsQueryParam) !== null && _a !== void 0 ? _a : true; if (options.sendApiKeyAsQueryParam === true && @@ -19,15 +19,14 @@ var SearchClient = /** @class */ (function () { this.multiSearch = new MultiSearch_1.default(this.apiCall, this.configuration, true); this.individualCollections = {}; } - SearchClient.prototype.clearCache = function () { + clearCache() { this.multiSearch.clearCache(); // eslint-disable-next-line @typescript-eslint/no-unused-vars - Object.entries(this.individualCollections).forEach(function (_a) { - var _ = _a[0], collection = _a[1]; + Object.entries(this.individualCollections).forEach(([_, collection]) => { collection.documents().clearCache(); }); - }; - SearchClient.prototype.collections = function (collectionName) { + } + collections(collectionName) { if (!collectionName) { throw new Error("Typesense.SearchClient only supports search operations, so the collectionName that needs to " + "be searched must be specified. Use Typesense.Client if you need to access the collection object."); @@ -38,8 +37,7 @@ var SearchClient = /** @class */ (function () { } return this.individualCollections[collectionName]; } - }; - return SearchClient; -}()); + } +} exports.default = SearchClient; //# sourceMappingURL=SearchClient.js.map \ No newline at end of file diff --git a/lib/Typesense/SearchClient.js.map b/lib/Typesense/SearchClient.js.map index 678766fb..fcbb5e98 100644 --- a/lib/Typesense/SearchClient.js.map +++ b/lib/Typesense/SearchClient.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchClient.js","sourceRoot":"","sources":["../../src/Typesense/SearchClient.ts"],"names":[],"mappings":";;;AAAA,0EAAsE;AACtE,8DAAgC;AAChC,sEAAwC;AAExC,+DAA8D;AAE9D;IASE,sBAAY,OAA6B;;QACvC,OAAO,CAAC,sBAAsB,GAAG,MAAA,OAAO,CAAC,sBAAsB,mCAAI,IAAI,CAAC;QACxE,IACE,OAAO,CAAC,sBAAsB,KAAK,IAAI;YACvC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EACpC,CAAC;YACD,OAAO,CAAC,IAAI,CACV,mIAAmI,CACpI,CAAC;YACF,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,iCAAU,GAAV;QACE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAE9B,6DAA6D;QAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAe;gBAAd,CAAC,QAAA,EAAE,UAAU,QAAA;YAChE,UAAU,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kCAAW,GAAX,UACE,cAAsB;QAItB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,8FAA8F;gBAC5F,kGAAkG,CACrG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI,2CAAoB,CACnE,cAAc,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,cAAc,CAC0B,CAAC;QAC7C,CAAC;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AA3DD,IA2DC"} \ No newline at end of file +{"version":3,"file":"SearchClient.js","sourceRoot":"","sources":["../../src/Typesense/SearchClient.ts"],"names":[],"mappings":";;;AAAA,4EAAsE;AACtE,gEAAgC;AAChC,wEAAwC;AAExC,iEAA8D;AAE9D,MAAqB,YAAY;IAS/B,YAAY,OAA6B;;QACvC,OAAO,CAAC,sBAAsB,GAAG,MAAA,OAAO,CAAC,sBAAsB,mCAAI,IAAI,CAAC;QACxE,IACE,OAAO,CAAC,sBAAsB,KAAK,IAAI;YACvC,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,EACpC,CAAC;YACD,OAAO,CAAC,IAAI,CACV,mIAAmI,CACpI,CAAC;YACF,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAClC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAE9B,6DAA6D;QAC7D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE;YACrE,UAAU,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CACT,cAAsB;QAItB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,8FAA8F;gBAC5F,kGAAkG,CACrG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7D,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI,2CAAoB,CACnE,cAAc,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,cAAc,CAC0B,CAAC;QAC7C,CAAC;IACH,CAAC;CACF;AA3DD,+BA2DC"} \ No newline at end of file diff --git a/lib/Typesense/SearchOnlyCollection.js b/lib/Typesense/SearchOnlyCollection.js index 3c41aca0..cd7892d9 100644 --- a/lib/Typesense/SearchOnlyCollection.js +++ b/lib/Typesense/SearchOnlyCollection.js @@ -1,18 +1,17 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchOnlyCollection = void 0; -var SearchOnlyDocuments_1 = require("./SearchOnlyDocuments"); -var SearchOnlyCollection = /** @class */ (function () { - function SearchOnlyCollection(name, apiCall, configuration) { +const SearchOnlyDocuments_1 = require("./SearchOnlyDocuments"); +class SearchOnlyCollection { + constructor(name, apiCall, configuration) { this.name = name; this.apiCall = apiCall; this.configuration = configuration; this._documents = new SearchOnlyDocuments_1.SearchOnlyDocuments(this.name, this.apiCall, this.configuration); } - SearchOnlyCollection.prototype.documents = function () { + documents() { return this._documents; - }; - return SearchOnlyCollection; -}()); + } +} exports.SearchOnlyCollection = SearchOnlyCollection; //# sourceMappingURL=SearchOnlyCollection.js.map \ No newline at end of file diff --git a/lib/Typesense/SearchOnlyCollection.js.map b/lib/Typesense/SearchOnlyCollection.js.map index 459ab12b..b3b18292 100644 --- a/lib/Typesense/SearchOnlyCollection.js.map +++ b/lib/Typesense/SearchOnlyCollection.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchOnlyCollection.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyCollection.ts"],"names":[],"mappings":";;;AAEA,6DAA4D;AAG5D;IAGE,8BACmB,IAAY,EACZ,OAAgB,EAChB,aAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAK;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,wCAAS,GAAT;QACE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACH,2BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,oDAAoB"} \ No newline at end of file +{"version":3,"file":"SearchOnlyCollection.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyCollection.ts"],"names":[],"mappings":";;;AAEA,+DAA4D;AAG5D,MAAa,oBAAoB;IAG/B,YACmB,IAAY,EACZ,OAAgB,EAChB,aAAkB;QAFlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAK;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAlBD,oDAkBC"} \ No newline at end of file diff --git a/lib/Typesense/SearchOnlyDocuments.js b/lib/Typesense/SearchOnlyDocuments.js index ef4d3c5c..1ef62d2b 100644 --- a/lib/Typesense/SearchOnlyDocuments.js +++ b/lib/Typesense/SearchOnlyDocuments.js @@ -1,57 +1,49 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchOnlyDocuments = void 0; -var tslib_1 = require("tslib"); -var RequestWithCache_1 = tslib_1.__importDefault(require("./RequestWithCache")); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var Utils_1 = require("./Utils"); -var RESOURCEPATH = "/documents"; -var SearchOnlyDocuments = /** @class */ (function () { - function SearchOnlyDocuments(collectionName, apiCall, configuration) { +const tslib_1 = require("tslib"); +const RequestWithCache_1 = tslib_1.__importDefault(require("./RequestWithCache")); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const Utils_1 = require("./Utils"); +const RESOURCEPATH = "/documents"; +class SearchOnlyDocuments { + constructor(collectionName, apiCall, configuration) { this.collectionName = collectionName; this.apiCall = apiCall; this.configuration = configuration; this.requestWithCache = new RequestWithCache_1.default(); } - SearchOnlyDocuments.prototype.clearCache = function () { + clearCache() { this.requestWithCache.clearCache(); - }; - SearchOnlyDocuments.prototype.search = function (searchParameters, _a) { - var _b = _a === void 0 ? {} : _a, _c = _b.cacheSearchResultsForSeconds, cacheSearchResultsForSeconds = _c === void 0 ? this.configuration - .cacheSearchResultsForSeconds : _c, _d = _b.abortSignal, abortSignal = _d === void 0 ? null : _d; - return tslib_1.__awaiter(this, void 0, void 0, function () { - var additionalQueryParams, _e, streamConfig, rest, queryParams, isStreamingRequest; - return tslib_1.__generator(this, function (_f) { - additionalQueryParams = {}; - if (this.configuration.useServerSideSearchCache === true) { - additionalQueryParams["use_cache"] = true; - } - _e = (0, Utils_1.normalizeArrayableParams)(searchParameters), streamConfig = _e.streamConfig, rest = tslib_1.__rest(_e, ["streamConfig"]); - queryParams = tslib_1.__assign(tslib_1.__assign({}, additionalQueryParams), rest); - isStreamingRequest = queryParams.conversation_stream === true; - return [2 /*return*/, this.requestWithCache.perform(this.apiCall, "get", { - path: this.endpointPath("search"), - queryParams: queryParams, - streamConfig: streamConfig, - abortSignal: abortSignal, - isStreamingRequest: isStreamingRequest, - }, { - cacheResponseForSeconds: cacheSearchResultsForSeconds, - })]; - }); + } + async search(searchParameters, { cacheSearchResultsForSeconds = this.configuration + .cacheSearchResultsForSeconds, abortSignal = null, } = {}) { + const additionalQueryParams = {}; + if (this.configuration.useServerSideSearchCache === true) { + additionalQueryParams["use_cache"] = true; + } + const { streamConfig, ...rest } = (0, Utils_1.normalizeArrayableParams)(searchParameters); + const queryParams = { + ...additionalQueryParams, + ...rest, + }; + const isStreamingRequest = queryParams.conversation_stream === true; + return this.requestWithCache.perform(this.apiCall, "get", { + path: this.endpointPath("search"), + queryParams, + streamConfig, + abortSignal, + isStreamingRequest, + }, { + cacheResponseForSeconds: cacheSearchResultsForSeconds, }); - }; - SearchOnlyDocuments.prototype.endpointPath = function (operation) { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(RESOURCEPATH).concat(operation === undefined ? "" : "/" + operation); - }; - Object.defineProperty(SearchOnlyDocuments, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return SearchOnlyDocuments; -}()); + } + endpointPath(operation) { + return `${Collections_1.default.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${RESOURCEPATH}${operation === undefined ? "" : "/" + operation}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.SearchOnlyDocuments = SearchOnlyDocuments; //# sourceMappingURL=SearchOnlyDocuments.js.map \ No newline at end of file diff --git a/lib/Typesense/SearchOnlyDocuments.js.map b/lib/Typesense/SearchOnlyDocuments.js.map index 8971495f..d8c7aefc 100644 --- a/lib/Typesense/SearchOnlyDocuments.js.map +++ b/lib/Typesense/SearchOnlyDocuments.js.map @@ -1 +1 @@ -{"version":3,"file":"SearchOnlyDocuments.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyDocuments.ts"],"names":[],"mappings":";;;;AAAA,gFAAkD;AAGlD,sEAAwC;AAOxC,iCAAmD;AAGnD,IAAM,YAAY,GAAG,YAAY,CAAC;AAElC;IAKE,6BACY,cAAsB,EACtB,OAAgB,EAChB,aAA4B;QAF5B,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAL9B,qBAAgB,GAAqB,IAAI,0BAAgB,EAAE,CAAC;IAMnE,CAAC;IAEJ,wCAAU,GAAV;QACE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAEK,oCAAM,GAAZ,UACE,gBAA2E,EAC3E,EAIqB;YAJrB,qBAImB,EAAE,KAAA,EAHnB,oCAC+B,EAD/B,4BAA4B,mBAAG,IAAI,CAAC,aAAa;aAC9C,4BAA4B,KAAA,EAC/B,mBAAkB,EAAlB,WAAW,mBAAG,IAAI,KAAA;;;;gBAGd,qBAAqB,GAAG,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC;oBACzD,qBAAqB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;gBAC5C,CAAC;gBAEK,KAA4B,IAAA,gCAAwB,EAIxD,gBAAgB,CAAC,EAJX,YAAY,kBAAA,EAAK,IAAI,sBAAvB,gBAAyB,CAAF,CAIT;gBAEd,WAAW,yCACZ,qBAAqB,GACrB,IAAI,CACR,CAAC;gBAEI,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,KAAK,IAAI,CAAC;gBAEpE,sBAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAMlC,IAAI,CAAC,OAAO,EACZ,KAAK,EACL;wBACE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;wBACjC,WAAW,aAAA;wBACX,YAAY,cAAA;wBACZ,WAAW,aAAA;wBACX,kBAAkB,oBAAA;qBACnB,EACD;wBACE,uBAAuB,EAAE,4BAA4B;qBACtD,CACF,EAAC;;;KACH;IAES,0CAAY,GAAtB,UAAuB,SAAkB;QACvC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,YAAY,SAC1F,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAC9C,CAAC;IACL,CAAC;IAED,sBAAW,mCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,0BAAC;AAAD,CAAC,AAvED,IAuEC;AAvEY,kDAAmB"} \ No newline at end of file +{"version":3,"file":"SearchOnlyDocuments.js","sourceRoot":"","sources":["../../src/Typesense/SearchOnlyDocuments.ts"],"names":[],"mappings":";;;;AAAA,kFAAkD;AAGlD,wEAAwC;AAOxC,mCAAmD;AAGnD,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,MAAa,mBAAmB;IAK9B,YACY,cAAsB,EACtB,OAAgB,EAChB,aAA4B;QAF5B,mBAAc,GAAd,cAAc,CAAQ;QACtB,YAAO,GAAP,OAAO,CAAS;QAChB,kBAAa,GAAb,aAAa,CAAe;QAL9B,qBAAgB,GAAqB,IAAI,0BAAgB,EAAE,CAAC;IAMnE,CAAC;IAEJ,UAAU;QACR,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,MAAM,CACV,gBAA2E,EAC3E,EACE,4BAA4B,GAAG,IAAI,CAAC,aAAa;SAC9C,4BAA4B,EAC/B,WAAW,GAAG,IAAI,MACD,EAAE;QAErB,MAAM,qBAAqB,GAAG,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,aAAa,CAAC,wBAAwB,KAAK,IAAI,EAAE,CAAC;YACzD,qBAAqB,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAC5C,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAA,gCAAwB,EAIxD,gBAAgB,CAAC,CAAC;QAEpB,MAAM,WAAW,GAAG;YAClB,GAAG,qBAAqB;YACxB,GAAG,IAAI;SACR,CAAC;QAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,mBAAmB,KAAK,IAAI,CAAC;QAEpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAMlC,IAAI,CAAC,OAAO,EACZ,KAAK,EACL;YACE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YACjC,WAAW;YACX,YAAY;YACZ,WAAW;YACX,kBAAkB;SACnB,EACD;YACE,uBAAuB,EAAE,4BAA4B;SACtD,CACF,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,SAAkB;QACvC,OAAO,GAAG,qBAAW,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,YAAY,GAC1F,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SACvC,EAAE,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAvED,kDAuEC"} \ No newline at end of file diff --git a/lib/Typesense/Stats.js b/lib/Typesense/Stats.js index f00c45d8..a212ce5e 100644 --- a/lib/Typesense/Stats.js +++ b/lib/Typesense/Stats.js @@ -1,19 +1,13 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/stats.json"; -var Metrics = /** @class */ (function () { - function Metrics(apiCall) { +const RESOURCEPATH = "/stats.json"; +class Metrics { + constructor(apiCall) { this.apiCall = apiCall; } - Metrics.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(RESOURCEPATH)]; - }); - }); - }; - return Metrics; -}()); + async retrieve() { + return this.apiCall.get(RESOURCEPATH); + } +} exports.default = Metrics; //# sourceMappingURL=Stats.js.map \ No newline at end of file diff --git a/lib/Typesense/Stats.js.map b/lib/Typesense/Stats.js.map index d45c873b..aa2a4579 100644 --- a/lib/Typesense/Stats.js.map +++ b/lib/Typesense/Stats.js.map @@ -1 +1 @@ -{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../src/Typesense/Stats.ts"],"names":[],"mappings":";;;AAEA,IAAM,YAAY,GAAG,aAAa,CAAC;AAsBnC;IACE,iBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAC;;;KACvC;IACH,cAAC;AAAD,CAAC,AAND,IAMC"} \ No newline at end of file +{"version":3,"file":"Stats.js","sourceRoot":"","sources":["../../src/Typesense/Stats.ts"],"names":[],"mappings":";;AAEA,MAAM,YAAY,GAAG,aAAa,CAAC;AAsBnC,MAAqB,OAAO;IAC1B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;CACF;AAND,0BAMC"} \ No newline at end of file diff --git a/lib/Typesense/Stemming.js b/lib/Typesense/Stemming.js index b02f7894..781631b4 100644 --- a/lib/Typesense/Stemming.js +++ b/lib/Typesense/Stemming.js @@ -1,17 +1,17 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var StemmingDictionaries_1 = tslib_1.__importDefault(require("./StemmingDictionaries")); -var StemmingDictionary_1 = tslib_1.__importDefault(require("./StemmingDictionary")); -var RESOURCEPATH = "/stemming"; -var Stemming = /** @class */ (function () { - function Stemming(apiCall) { +const tslib_1 = require("tslib"); +const StemmingDictionaries_1 = tslib_1.__importDefault(require("./StemmingDictionaries")); +const StemmingDictionary_1 = tslib_1.__importDefault(require("./StemmingDictionary")); +const RESOURCEPATH = "/stemming"; +class Stemming { + constructor(apiCall) { this.apiCall = apiCall; this.individualStemmingDictionaries = {}; this.apiCall = apiCall; this._stemmingDictionaries = new StemmingDictionaries_1.default(this.apiCall); } - Stemming.prototype.dictionaries = function (id) { + dictionaries(id) { if (id === undefined) { return this._stemmingDictionaries; } @@ -21,15 +21,10 @@ var Stemming = /** @class */ (function () { } return this.individualStemmingDictionaries[id]; } - }; - Object.defineProperty(Stemming, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Stemming; -}()); + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Stemming; //# sourceMappingURL=Stemming.js.map \ No newline at end of file diff --git a/lib/Typesense/Stemming.js.map b/lib/Typesense/Stemming.js.map index ef37ddff..dc3e4879 100644 --- a/lib/Typesense/Stemming.js.map +++ b/lib/Typesense/Stemming.js.map @@ -1 +1 @@ -{"version":3,"file":"Stemming.js","sourceRoot":"","sources":["../../src/Typesense/Stemming.ts"],"names":[],"mappings":";;;AACA,wFAA0D;AAC1D,oFAAsD;AAEtD,IAAM,YAAY,GAAG,WAAW,CAAC;AAEjC;IAOE,kBAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,mCAA8B,GAG3C,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,8BAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAID,+BAAY,GAAZ,UAAa,EAAW;QACtB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,GAAG,IAAI,4BAAkB,CAC9D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,sBAAW,wBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,eAAC;AAAD,CAAC,AA/BD,IA+BC"} \ No newline at end of file +{"version":3,"file":"Stemming.js","sourceRoot":"","sources":["../../src/Typesense/Stemming.ts"],"names":[],"mappings":";;;AACA,0FAA0D;AAC1D,sFAAsD;AAEtD,MAAM,YAAY,GAAG,WAAW,CAAC;AAEjC,MAAqB,QAAQ;IAO3B,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAL5B,mCAA8B,GAG3C,EAAE,CAAC;QAGL,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,8BAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAID,YAAY,CAAC,EAAW;QACtB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,GAAG,IAAI,4BAAkB,CAC9D,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA/BD,2BA+BC"} \ No newline at end of file diff --git a/lib/Typesense/StemmingDictionaries.js b/lib/Typesense/StemmingDictionaries.js index 0add460b..712a6aaf 100644 --- a/lib/Typesense/StemmingDictionaries.js +++ b/lib/Typesense/StemmingDictionaries.js @@ -1,58 +1,38 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/stemming/dictionaries"; -var StemmingDictionaries = /** @class */ (function () { - function StemmingDictionaries(apiCall) { +const RESOURCEPATH = "/stemming/dictionaries"; +class StemmingDictionaries { + constructor(apiCall) { this.apiCall = apiCall; this.apiCall = apiCall; } - StemmingDictionaries.prototype.upsert = function (id, wordRootCombinations) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - var wordRootCombinationsInJSONLFormat, resultsInJSONLFormat; - return tslib_1.__generator(this, function (_a) { - switch (_a.label) { - case 0: - wordRootCombinationsInJSONLFormat = Array.isArray(wordRootCombinations) - ? wordRootCombinations.map(function (combo) { return JSON.stringify(combo); }).join("\n") - : wordRootCombinations; - return [4 /*yield*/, this.apiCall.performRequest("post", this.endpointPath("import"), { - queryParameters: { id: id }, - bodyParameters: wordRootCombinationsInJSONLFormat, - additionalHeaders: { "Content-Type": "text/plain" }, - skipConnectionTimeout: true, - })]; - case 1: - resultsInJSONLFormat = _a.sent(); - return [2 /*return*/, Array.isArray(wordRootCombinations) - ? resultsInJSONLFormat - .split("\n") - .map(function (line) { return JSON.parse(line); }) - : resultsInJSONLFormat]; - } - }); + async upsert(id, wordRootCombinations) { + const wordRootCombinationsInJSONLFormat = Array.isArray(wordRootCombinations) + ? wordRootCombinations.map((combo) => JSON.stringify(combo)).join("\n") + : wordRootCombinations; + const resultsInJSONLFormat = await this.apiCall.performRequest("post", this.endpointPath("import"), { + queryParameters: { id }, + bodyParameters: wordRootCombinationsInJSONLFormat, + additionalHeaders: { "Content-Type": "text/plain" }, + skipConnectionTimeout: true, }); - }; - StemmingDictionaries.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - StemmingDictionaries.prototype.endpointPath = function (operation) { + return Array.isArray(wordRootCombinations) + ? resultsInJSONLFormat + .split("\n") + .map((line) => JSON.parse(line)) + : resultsInJSONLFormat; + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { return operation === undefined - ? "".concat(StemmingDictionaries.RESOURCEPATH) - : "".concat(StemmingDictionaries.RESOURCEPATH, "/").concat(encodeURIComponent(operation)); - }; - Object.defineProperty(StemmingDictionaries, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return StemmingDictionaries; -}()); + ? `${StemmingDictionaries.RESOURCEPATH}` + : `${StemmingDictionaries.RESOURCEPATH}/${encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = StemmingDictionaries; //# sourceMappingURL=StemmingDictionaries.js.map \ No newline at end of file diff --git a/lib/Typesense/StemmingDictionaries.js.map b/lib/Typesense/StemmingDictionaries.js.map index f38ae9ae..88e341f5 100644 --- a/lib/Typesense/StemmingDictionaries.js.map +++ b/lib/Typesense/StemmingDictionaries.js.map @@ -1 +1 @@ -{"version":3,"file":"StemmingDictionaries.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionaries.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,wBAAwB,CAAC;AAM9C;IACE,8BAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,qCAAM,GAAZ,UACE,EAAU,EACV,oBAA+D;;;;;;wBAEzD,iCAAiC,GAAG,KAAK,CAAC,OAAO,CACrD,oBAAoB,CACrB;4BACC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACvE,CAAC,CAAC,oBAAoB,CAAC;wBAEI,qBAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAE5D,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC3B;gCACE,eAAe,EAAE,EAAC,EAAE,IAAA,EAAC;gCACrB,cAAc,EAAE,iCAAiC;gCACjD,iBAAiB,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC;gCACjD,qBAAqB,EAAE,IAAI;6BAC5B,CACF,EAAA;;wBAVK,oBAAoB,GAAG,SAU5B;wBAED,sBAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;gCACxC,CAAC,CAAC,oBAAoB;qCACjB,KAAK,CAAC,IAAI,CAAC;qCACX,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmC,EAAlD,CAAkD,CAAC;gCACtE,CAAC,CAAC,oBAAoB,EAAC;;;;KAC1B;IAEK,uCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,EAAC;;;KACH;IAEO,2CAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,SAAS,KAAK,SAAS;YAC5B,CAAC,CAAC,UAAG,oBAAoB,CAAC,YAAY,CAAE;YACxC,CAAC,CAAC,UAAG,oBAAoB,CAAC,YAAY,cAAI,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC9E,CAAC;IAED,sBAAW,oCAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,2BAAC;AAAD,CAAC,AAjDD,IAiDC"} \ No newline at end of file +{"version":3,"file":"StemmingDictionaries.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionaries.ts"],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAG,wBAAwB,CAAC;AAM9C,MAAqB,oBAAoB;IACvC,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,oBAA+D;QAE/D,MAAM,iCAAiC,GAAG,KAAK,CAAC,OAAO,CACrD,oBAAoB,CACrB;YACC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACvE,CAAC,CAAC,oBAAoB,CAAC;QAEzB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAE5D,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC3B;YACE,eAAe,EAAE,EAAC,EAAE,EAAC;YACrB,cAAc,EAAE,iCAAiC;YACjD,iBAAiB,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC;YACjD,qBAAqB,EAAE,IAAI;SAC5B,CACF,CAAC;QAEF,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACxC,CAAC,CAAC,oBAAoB;iBACjB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmC,CAAC;YACtE,CAAC,CAAC,oBAAoB,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,EAAE,CACpB,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,SAAS,KAAK,SAAS;YAC5B,CAAC,CAAC,GAAG,oBAAoB,CAAC,YAAY,EAAE;YACxC,CAAC,CAAC,GAAG,oBAAoB,CAAC,YAAY,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAjDD,uCAiDC"} \ No newline at end of file diff --git a/lib/Typesense/StemmingDictionary.js b/lib/Typesense/StemmingDictionary.js index 035a908c..fd357d9d 100644 --- a/lib/Typesense/StemmingDictionary.js +++ b/lib/Typesense/StemmingDictionary.js @@ -1,23 +1,18 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var StemmingDictionaries_1 = tslib_1.__importDefault(require("./StemmingDictionaries")); -var StemmingDictionary = /** @class */ (function () { - function StemmingDictionary(id, apiCall) { +const tslib_1 = require("tslib"); +const StemmingDictionaries_1 = tslib_1.__importDefault(require("./StemmingDictionaries")); +class StemmingDictionary { + constructor(id, apiCall) { this.id = id; this.apiCall = apiCall; } - StemmingDictionary.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - StemmingDictionary.prototype.endpointPath = function () { - return "".concat(StemmingDictionaries_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.id)); - }; - return StemmingDictionary; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath() { + return `${StemmingDictionaries_1.default.RESOURCEPATH}/${encodeURIComponent(this.id)}`; + } +} exports.default = StemmingDictionary; //# sourceMappingURL=StemmingDictionary.js.map \ No newline at end of file diff --git a/lib/Typesense/StemmingDictionary.js.map b/lib/Typesense/StemmingDictionary.js.map index 72aa2586..e2613bdb 100644 --- a/lib/Typesense/StemmingDictionary.js.map +++ b/lib/Typesense/StemmingDictionary.js.map @@ -1 +1 @@ -{"version":3,"file":"StemmingDictionary.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionary.ts"],"names":[],"mappings":";;;AACA,wFAA0D;AAY1D;IACE,4BACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,qCAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACxE;IAEO,yCAAY,GAApB;QACE,OAAO,UAAG,8BAAoB,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;IAC/E,CAAC;IACH,yBAAC;AAAD,CAAC,AAbD,IAaC"} \ No newline at end of file +{"version":3,"file":"StemmingDictionary.js","sourceRoot":"","sources":["../../src/Typesense/StemmingDictionary.ts"],"names":[],"mappings":";;;AACA,0FAA0D;AAY1D,MAAqB,kBAAkB;IACrC,YACU,EAAU,EACV,OAAgB;QADhB,OAAE,GAAF,EAAE,CAAQ;QACV,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA2B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACzE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,8BAAoB,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/E,CAAC;CACF;AAbD,qCAaC"} \ No newline at end of file diff --git a/lib/Typesense/Stopword.js b/lib/Typesense/Stopword.js index 83547225..cecf5777 100644 --- a/lib/Typesense/Stopword.js +++ b/lib/Typesense/Stopword.js @@ -1,30 +1,21 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Stopwords_1 = tslib_1.__importDefault(require("./Stopwords")); -var Stopword = /** @class */ (function () { - function Stopword(stopwordId, apiCall) { +const tslib_1 = require("tslib"); +const Stopwords_1 = tslib_1.__importDefault(require("./Stopwords")); +class Stopword { + constructor(stopwordId, apiCall) { this.stopwordId = stopwordId; this.apiCall = apiCall; } - Stopword.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Stopword.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Stopword.prototype.endpointPath = function () { - return "".concat(Stopwords_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.stopwordId)); - }; - return Stopword; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Stopwords_1.default.RESOURCEPATH}/${encodeURIComponent(this.stopwordId)}`; + } +} exports.default = Stopword; //# sourceMappingURL=Stopword.js.map \ No newline at end of file diff --git a/lib/Typesense/Stopword.js.map b/lib/Typesense/Stopword.js.map index 9523cdce..d40e789f 100644 --- a/lib/Typesense/Stopword.js.map +++ b/lib/Typesense/Stopword.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopword.js","sourceRoot":"","sources":["../../src/Typesense/Stopword.ts"],"names":[],"mappings":";;;AACA,kEAA8D;AAY9D;IACE,kBACU,UAAkB,EAClB,OAAgB;QADhB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC9D;IAEK,yBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,+BAAY,GAApB;QACE,OAAO,UAAG,mBAAS,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAE,CAAC;IAC5E,CAAC;IACH,eAAC;AAAD,CAAC,AAjBD,IAiBC"} \ No newline at end of file +{"version":3,"file":"Stopword.js","sourceRoot":"","sources":["../../src/Typesense/Stopword.ts"],"names":[],"mappings":";;;AACA,oEAA8D;AAY9D,MAAqB,QAAQ;IAC3B,YACU,UAAkB,EAClB,OAAgB;QADhB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAuB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,mBAAS,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5E,CAAC;CACF;AAjBD,2BAiBC"} \ No newline at end of file diff --git a/lib/Typesense/Stopwords.js b/lib/Typesense/Stopwords.js index 6caff949..eabe7ba9 100644 --- a/lib/Typesense/Stopwords.js +++ b/lib/Typesense/Stopwords.js @@ -1,36 +1,22 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var RESOURCEPATH = "/stopwords"; -var Stopwords = /** @class */ (function () { - function Stopwords(apiCall) { +const RESOURCEPATH = "/stopwords"; +class Stopwords { + constructor(apiCall) { this.apiCall = apiCall; } - Stopwords.prototype.upsert = function (stopwordId, params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(stopwordId), params)]; - }); - }); - }; - Stopwords.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Stopwords.prototype.endpointPath = function (operation) { - return "".concat(Stopwords.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(Stopwords, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Stopwords; -}()); + async upsert(stopwordId, params) { + return this.apiCall.put(this.endpointPath(stopwordId), params); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Stopwords.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Stopwords; //# sourceMappingURL=Stopwords.js.map \ No newline at end of file diff --git a/lib/Typesense/Stopwords.js.map b/lib/Typesense/Stopwords.js.map index f02de760..b259ab6f 100644 --- a/lib/Typesense/Stopwords.js.map +++ b/lib/Typesense/Stopwords.js.map @@ -1 +1 @@ -{"version":3,"file":"Stopwords.js","sourceRoot":"","sources":["../../src/Typesense/Stopwords.ts"],"names":[],"mappings":";;;AAGA,IAAM,YAAY,GAAG,YAAY,CAAC;AAWlC;IACE,mBAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElC,0BAAM,GAAZ,UACE,UAAkB,EAClB,MAA4B;;;gBAE5B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,EAAC;;;KACH;IAEK,4BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACvE;IAEO,gCAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,SAAS,CAAC,YAAY,SAC9B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAClE,CAAC;IACL,CAAC;IAED,sBAAW,yBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,gBAAC;AAAD,CAAC,AA1BD,IA0BC"} \ No newline at end of file +{"version":3,"file":"Stopwords.js","sourceRoot":"","sources":["../../src/Typesense/Stopwords.ts"],"names":[],"mappings":";;AAGA,MAAM,YAAY,GAAG,YAAY,CAAC;AAWlC,MAAqB,SAAS;IAC5B,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC,KAAK,CAAC,MAAM,CACV,UAAkB,EAClB,MAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAC7B,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAA0B,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,SAAS,CAAC,YAAY,GAC9B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CACnE,EAAE,CAAC;IACL,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA1BD,4BA0BC"} \ No newline at end of file diff --git a/lib/Typesense/Synonym.js b/lib/Typesense/Synonym.js index fb4830a7..bc45ff49 100644 --- a/lib/Typesense/Synonym.js +++ b/lib/Typesense/Synonym.js @@ -1,32 +1,23 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var Synonyms_1 = tslib_1.__importDefault(require("./Synonyms")); -var Synonym = /** @class */ (function () { - function Synonym(collectionName, synonymId, apiCall) { +const tslib_1 = require("tslib"); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const Synonyms_1 = tslib_1.__importDefault(require("./Synonyms")); +class Synonym { + constructor(collectionName, synonymId, apiCall) { this.collectionName = collectionName; this.synonymId = synonymId; this.apiCall = apiCall; } - Synonym.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Synonym.prototype.delete = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.delete(this.endpointPath())]; - }); - }); - }; - Synonym.prototype.endpointPath = function () { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(Synonyms_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.synonymId)); - }; - return Synonym; -}()); + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + async delete() { + return this.apiCall.delete(this.endpointPath()); + } + endpointPath() { + return `${Collections_1.default.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms_1.default.RESOURCEPATH}/${encodeURIComponent(this.synonymId)}`; + } +} exports.default = Synonym; //# sourceMappingURL=Synonym.js.map \ No newline at end of file diff --git a/lib/Typesense/Synonym.js.map b/lib/Typesense/Synonym.js.map index 1278adf2..8059a765 100644 --- a/lib/Typesense/Synonym.js.map +++ b/lib/Typesense/Synonym.js.map @@ -1 +1 @@ -{"version":3,"file":"Synonym.js","sourceRoot":"","sources":["../../src/Typesense/Synonym.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AACxC,gEAA2D;AAU3D;IACE,iBACU,cAAsB,EACtB,SAAiB,EACjB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEE,0BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KAC7D;IAEK,wBAAM,GAAZ;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,8BAAY,GAApB;QACE,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAG,kBAAQ,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,CAAC;IAChJ,CAAC;IACH,cAAC;AAAD,CAAC,AAlBD,IAkBC"} \ No newline at end of file +{"version":3,"file":"Synonym.js","sourceRoot":"","sources":["../../src/Typesense/Synonym.ts"],"names":[],"mappings":";;;AACA,wEAAwC;AACxC,kEAA2D;AAU3D,MAAqB,OAAO;IAC1B,YACU,cAAsB,EACtB,SAAiB,EACjB,OAAgB;QAFhB,mBAAc,GAAd,cAAc,CAAQ;QACtB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAS;IACvB,CAAC;IAEJ,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAgB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAsB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,YAAY;QAClB,OAAO,GAAG,qBAAW,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,kBAAQ,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAChJ,CAAC;CACF;AAlBD,0BAkBC"} \ No newline at end of file diff --git a/lib/Typesense/Synonyms.js b/lib/Typesense/Synonyms.js index cef6cb72..73daf502 100644 --- a/lib/Typesense/Synonyms.js +++ b/lib/Typesense/Synonyms.js @@ -1,38 +1,25 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var tslib_1 = require("tslib"); -var Collections_1 = tslib_1.__importDefault(require("./Collections")); -var RESOURCEPATH = "/synonyms"; -var Synonyms = /** @class */ (function () { - function Synonyms(collectionName, apiCall) { +const tslib_1 = require("tslib"); +const Collections_1 = tslib_1.__importDefault(require("./Collections")); +const RESOURCEPATH = "/synonyms"; +class Synonyms { + constructor(collectionName, apiCall) { this.collectionName = collectionName; this.apiCall = apiCall; } - Synonyms.prototype.upsert = function (synonymId, params) { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.put(this.endpointPath(synonymId), params)]; - }); - }); - }; - Synonyms.prototype.retrieve = function () { - return tslib_1.__awaiter(this, void 0, void 0, function () { - return tslib_1.__generator(this, function (_a) { - return [2 /*return*/, this.apiCall.get(this.endpointPath())]; - }); - }); - }; - Synonyms.prototype.endpointPath = function (operation) { - return "".concat(Collections_1.default.RESOURCEPATH, "/").concat(encodeURIComponent(this.collectionName)).concat(Synonyms.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); - }; - Object.defineProperty(Synonyms, "RESOURCEPATH", { - get: function () { - return RESOURCEPATH; - }, - enumerable: false, - configurable: true - }); - return Synonyms; -}()); + async upsert(synonymId, params) { + return this.apiCall.put(this.endpointPath(synonymId), params); + } + async retrieve() { + return this.apiCall.get(this.endpointPath()); + } + endpointPath(operation) { + return `${Collections_1.default.RESOURCEPATH}/${encodeURIComponent(this.collectionName)}${Synonyms.RESOURCEPATH}${operation === undefined ? "" : "/" + encodeURIComponent(operation)}`; + } + static get RESOURCEPATH() { + return RESOURCEPATH; + } +} exports.default = Synonyms; //# sourceMappingURL=Synonyms.js.map \ No newline at end of file diff --git a/lib/Typesense/Synonyms.js.map b/lib/Typesense/Synonyms.js.map index 08c256ac..529153d5 100644 --- a/lib/Typesense/Synonyms.js.map +++ b/lib/Typesense/Synonyms.js.map @@ -1 +1 @@ -{"version":3,"file":"Synonyms.js","sourceRoot":"","sources":["../../src/Typesense/Synonyms.ts"],"names":[],"mappings":";;;AACA,sEAAwC;AAGxC,IAAM,YAAY,GAAG,WAAW,CAAC;AAajC;IACE,kBAAoB,cAAsB,EAAU,OAAgB;QAAhD,mBAAc,GAAd,cAAc,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAElE,yBAAM,GAAZ,UACE,SAAiB,EACjB,MAA2B;;;gBAE3B,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAC5B,MAAM,CACP,EAAC;;;KACH;IAEK,2BAAQ,GAAd;;;gBACE,sBAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC;;;KACtE;IAEO,+BAAY,GAApB,UAAqB,SAAkB;QACrC,OAAO,UAAG,qBAAW,CAAC,YAAY,cAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,SAC3E,QAAQ,CAAC,YAAY,SACpB,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAE,CAAC;IAC1E,CAAC;IAED,sBAAW,wBAAY;aAAvB;YACE,OAAO,YAAY,CAAC;QACtB,CAAC;;;OAAA;IACH,eAAC;AAAD,CAAC,AA1BD,IA0BC"} \ No newline at end of file +{"version":3,"file":"Synonyms.js","sourceRoot":"","sources":["../../src/Typesense/Synonyms.ts"],"names":[],"mappings":";;;AACA,wEAAwC;AAGxC,MAAM,YAAY,GAAG,WAAW,CAAC;AAajC,MAAqB,QAAQ;IAC3B,YAAoB,cAAsB,EAAU,OAAgB;QAAhD,mBAAc,GAAd,cAAc,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExE,KAAK,CAAC,MAAM,CACV,SAAiB,EACjB,MAA2B;QAE3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAC5B,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAyB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACvE,CAAC;IAEO,YAAY,CAAC,SAAkB;QACrC,OAAO,GAAG,qBAAW,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,GAC3E,QAAQ,CAAC,YACX,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,KAAK,YAAY;QACrB,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AA1BD,2BA0BC"} \ No newline at end of file diff --git a/lib/Typesense/Utils.js b/lib/Typesense/Utils.js index 57f6317c..468204b2 100644 --- a/lib/Typesense/Utils.js +++ b/lib/Typesense/Utils.js @@ -1,18 +1,17 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.toErrorWithMessage = exports.normalizeArrayableParams = void 0; -var tslib_1 = require("tslib"); -var Types_1 = require("./Types"); +const Types_1 = require("./Types"); function hasNoArrayValues(params) { return Object.keys(Types_1.arrayableParams) - .filter(function (key) { return params[key] !== undefined; }) - .every(function (key) { return isNonArrayValue(params[key]); }); + .filter((key) => params[key] !== undefined) + .every((key) => isNonArrayValue(params[key])); } function normalizeArrayableParams(params) { - var result = tslib_1.__assign({}, params); - var transformedValues = Object.keys(Types_1.arrayableParams) - .filter(function (key) { return Array.isArray(result[key]); }) - .map(function (key) { + const result = { ...params }; + const transformedValues = Object.keys(Types_1.arrayableParams) + .filter((key) => Array.isArray(result[key])) + .map((key) => { result[key] = result[key].join(","); return key; }); @@ -20,7 +19,7 @@ function normalizeArrayableParams(params) { return result; } if (!hasNoArrayValues(result)) { - throw new Error("Failed to normalize arrayable params: ".concat(JSON.stringify(result))); + throw new Error(`Failed to normalize arrayable params: ${JSON.stringify(result)}`); } return result; } diff --git a/lib/Typesense/Utils.js.map b/lib/Typesense/Utils.js.map index 585634bb..c6df7ad9 100644 --- a/lib/Typesense/Utils.js.map +++ b/lib/Typesense/Utils.js.map @@ -1 +1 @@ -{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/Typesense/Utils.ts"],"names":[],"mappings":";;;;AACA,iCAA0C;AAG1C,SAAS,gBAAgB,CAIvB,MAA+B;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC;SAChC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAzB,CAAyB,CAAC;SAC1C,KAAK,CAAC,UAAC,GAAG,IAAK,OAAA,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAA5B,CAA4B,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,wBAAwB,CAItC,MAAS;IACT,IAAM,MAAM,wBAAQ,MAAM,CAAE,CAAC;IAE7B,IAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC;SACnD,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAA1B,CAA0B,CAAC;SAC3C,GAAG,CAAC,UAAC,GAAG;QACP,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,gBAAgB,CAAiB,MAAM,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAiB,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,gDAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAE,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAzBD,4DAyBC;AAED,SAAS,eAAe,CAKtB,KAAoC;IACpC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAWD,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAQ,KAAiC,CAAC,OAAO,KAAK,QAAQ,CAC/D,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,YAAqB;IACtD,IAAI,kBAAkB,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IAE1D,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAXD,gDAWC"} \ No newline at end of file +{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/Typesense/Utils.ts"],"names":[],"mappings":";;;AACA,mCAA0C;AAG1C,SAAS,gBAAgB,CAIvB,MAA+B;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC;SAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;SAC1C,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,wBAAwB,CAItC,MAAS;IACT,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAe,CAAC;SACnD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,gBAAgB,CAAiB,MAAM,CAAC,EAAE,CAAC;QAC1E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAiB,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,yCAAyC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAzBD,4DAyBC;AAED,SAAS,eAAe,CAKtB,KAAoC;IACpC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAWD,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAQ,KAAiC,CAAC,OAAO,KAAK,QAAQ,CAC/D,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,YAAqB;IACtD,IAAI,kBAAkB,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IAE1D,IAAI,CAAC;QACH,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAXD,gDAWC"} \ No newline at end of file diff --git a/lib/index.d.ts b/lib/index.d.ts new file mode 100644 index 00000000..9d1ef63a --- /dev/null +++ b/lib/index.d.ts @@ -0,0 +1,31 @@ +import SearchClient from "./Typesense/SearchClient"; +import Client from "./Typesense/Client"; +export { SearchClient }; +export { Client }; +export * as Errors from "./Typesense/Errors"; +export type * from "./Typesense/Aliases"; +export type * from "./Typesense/AnalyticsEvent"; +export type * from "./Typesense/AnalyticsRule"; +export type * from "./Typesense/AnalyticsRules"; +export type * from "./Typesense/Collection"; +export type * from "./Typesense/Collections"; +export type * from "./Typesense/Configuration"; +export type * from "./Typesense/Conversations"; +export type * from "./Typesense/Conversation"; +export type * from "./Typesense/ConversationModel"; +export type * from "./Typesense/Debug"; +export type * from "./Typesense/Documents"; +export type * from "./Typesense/Health"; +export type * from "./Typesense/Key"; +export type * from "./Typesense/Keys"; +export type * from "./Typesense/Metrics"; +export type * from "./Typesense/MultiSearch"; +export type * from "./Typesense/Override"; +export type * from "./Typesense/Overrides"; +export type * from "./Typesense/Preset"; +export type * from "./Typesense/Presets"; +export type * from "./Typesense/Stats"; +export type * from "./Typesense/Stopword"; +export type * from "./Typesense/Stopwords"; +export type * from "./Typesense/Synonym"; +export type * from "./Typesense/Synonyms"; diff --git a/lib/index.js b/lib/index.js new file mode 100644 index 00000000..b0ba0d75 --- /dev/null +++ b/lib/index.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Errors = exports.Client = exports.SearchClient = void 0; +const tslib_1 = require("tslib"); +const SearchClient_1 = tslib_1.__importDefault(require("./Typesense/SearchClient")); +exports.SearchClient = SearchClient_1.default; +const Client_1 = tslib_1.__importDefault(require("./Typesense/Client")); +exports.Client = Client_1.default; +exports.Errors = tslib_1.__importStar(require("./Typesense/Errors")); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/index.js.map b/lib/index.js.map new file mode 100644 index 00000000..c1d26729 --- /dev/null +++ b/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oFAAoD;AAG3C,uBAHF,sBAAY,CAGE;AAFrB,wEAAwC;AAG/B,iBAHF,gBAAM,CAGE;AACf,qEAA6C"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3078a78e..088f921b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,12 +34,15 @@ "babel-plugin-istanbul": "^6.1.1", "babelify": "^10.0.0", "browserify": "^17.0.0", + "browserslist": "^4.23.3", + "browserslist-to-esbuild": "^2.1.1", "chai": "~4.3.10", "chai-as-promised": "^7.1.1", "common-shakeify": "^1.1.2", "core-js": "^3.33.2", "del": "^7.1.0", "dotenv": "^16.4.7", + "esbuild-plugins-node-modules-polyfill": "^1.6.5", "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.0", @@ -56,34 +59,28 @@ "ts-loader": "^9.5.0", "ts-mocha": "^10.0.0", "tsify": "^5.0.4", + "tsup": "^8.2.4", "typescript": "^5.2.2", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", - "vitest": "^3.1.2", - "webpack": "^5.89.0", - "webpack-cli": "^5.1.4" + "vitest": "^3.1.2" }, "engines": { "node": ">=18" - }, - "peerDependencies": { - "@babel/runtime": "^7.23.2" } }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -94,8 +91,6 @@ }, "node_modules/@asamuzakjp/css-color": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.1.tgz", - "integrity": "sha512-hpRD68SV2OMcZCsrbdkccTw5FXjNDLo5OuqSHyHZfwweGsDWZwDJ2+gONyNAbazZclobMirACLw0lk8WVxIqxA==", "dev": true, "license": "MIT", "dependencies": { @@ -108,16 +103,13 @@ }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/@babel/cli": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.9.tgz", - "integrity": "sha512-vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.17", "commander": "^4.0.1", @@ -144,8 +136,6 @@ }, "node_modules/@babel/code-frame": { "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -159,18 +149,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -198,9 +186,8 @@ }, "node_modules/@babel/eslint-parser": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.9.tgz", - "integrity": "sha512-xPndlO7qxiJbn0ATvfXQBjCS7qApc9xmKHArgI/FTEFxXas5dnjC/VqM37lfZun9dclRYcn+YQAr6uDFy0bB2g==", "dev": true, + "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -216,9 +203,8 @@ }, "node_modules/@babel/generator": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", @@ -231,9 +217,8 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -243,9 +228,8 @@ }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -255,9 +239,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -271,9 +254,8 @@ }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz", - "integrity": "sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -294,9 +276,8 @@ }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", @@ -311,9 +292,8 @@ }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -327,18 +307,16 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -349,9 +327,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -361,9 +338,8 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.23.0" }, @@ -373,9 +349,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.15" }, @@ -385,9 +360,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -404,9 +378,8 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -416,18 +389,16 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.20", @@ -442,9 +413,8 @@ }, "node_modules/@babel/helper-replace-supers": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-member-expression-to-functions": "^7.22.15", @@ -459,9 +429,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -471,9 +440,8 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -483,9 +451,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.22.5" }, @@ -495,8 +462,6 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", "engines": { @@ -505,8 +470,6 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", "engines": { @@ -515,18 +478,16 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-function-name": "^7.22.5", "@babel/template": "^7.22.15", @@ -538,8 +499,6 @@ }, "node_modules/@babel/helpers": { "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "dev": true, "license": "MIT", "dependencies": { @@ -552,8 +511,6 @@ }, "node_modules/@babel/parser": { "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", "dev": true, "license": "MIT", "dependencies": { @@ -568,9 +525,8 @@ }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -583,9 +539,8 @@ }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -600,9 +555,8 @@ }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5" @@ -616,10 +570,8 @@ }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-compilation-targets": "^7.20.7", @@ -636,9 +588,8 @@ }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -648,9 +599,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -660,9 +610,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -672,9 +621,8 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -687,9 +635,8 @@ }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -699,9 +646,8 @@ }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -711,9 +657,8 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -726,9 +671,8 @@ }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -741,9 +685,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -753,9 +696,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -765,9 +707,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -780,9 +721,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -792,9 +732,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -804,9 +743,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -816,9 +754,8 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -828,9 +765,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -840,9 +776,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -852,9 +787,8 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -867,9 +801,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -882,9 +815,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -897,9 +829,8 @@ }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -913,9 +844,8 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -928,9 +858,8 @@ }, "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-plugin-utils": "^7.22.5", @@ -946,9 +875,8 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -963,9 +891,8 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -978,9 +905,8 @@ }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -993,9 +919,8 @@ }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1009,9 +934,8 @@ }, "node_modules/@babel/plugin-transform-class-static-block": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -1026,9 +950,8 @@ }, "node_modules/@babel/plugin-transform-classes": { "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1048,9 +971,8 @@ }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/template": "^7.22.15" @@ -1064,9 +986,8 @@ }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1079,9 +1000,8 @@ }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1095,9 +1015,8 @@ }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1110,9 +1029,8 @@ }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -1126,9 +1044,8 @@ }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1142,9 +1059,8 @@ }, "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -1158,9 +1074,8 @@ }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1174,9 +1089,8 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-function-name": "^7.23.0", @@ -1191,9 +1105,8 @@ }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -1207,9 +1120,8 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1222,9 +1134,8 @@ }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -1238,9 +1149,8 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1253,9 +1163,8 @@ }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1269,9 +1178,8 @@ }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", @@ -1286,9 +1194,8 @@ }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-module-transforms": "^7.23.3", @@ -1304,9 +1211,8 @@ }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" @@ -1320,9 +1226,8 @@ }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5" @@ -1336,9 +1241,8 @@ }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1351,9 +1255,8 @@ }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -1367,9 +1270,8 @@ }, "node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -1383,9 +1285,8 @@ }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", @@ -1402,9 +1303,8 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-replace-supers": "^7.22.20" @@ -1418,9 +1318,8 @@ }, "node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -1434,9 +1333,8 @@ }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", @@ -1451,9 +1349,8 @@ }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1466,9 +1363,8 @@ }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1482,9 +1378,8 @@ }, "node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.22.15", @@ -1500,9 +1395,8 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1515,9 +1409,8 @@ }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.2" @@ -1531,9 +1424,8 @@ }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1546,9 +1438,8 @@ }, "node_modules/@babel/plugin-transform-runtime": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", - "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", @@ -1566,9 +1457,8 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1581,9 +1471,8 @@ }, "node_modules/@babel/plugin-transform-spread": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" @@ -1597,9 +1486,8 @@ }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1612,9 +1500,8 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1627,9 +1514,8 @@ }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1642,9 +1528,8 @@ }, "node_modules/@babel/plugin-transform-typescript": { "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-create-class-features-plugin": "^7.23.6", @@ -1660,9 +1545,8 @@ }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1675,9 +1559,8 @@ }, "node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1691,9 +1574,8 @@ }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1707,9 +1589,8 @@ }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" @@ -1723,9 +1604,8 @@ }, "node_modules/@babel/preset-env": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-compilation-targets": "^7.23.6", @@ -1817,9 +1697,8 @@ }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1831,9 +1710,8 @@ }, "node_modules/@babel/preset-typescript": { "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", @@ -1850,9 +1728,8 @@ }, "node_modules/@babel/register": { "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", - "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -1869,14 +1746,12 @@ }, "node_modules/@babel/regjsgen": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@babel/runtime": { "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "dev": true, "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1887,8 +1762,6 @@ }, "node_modules/@babel/template": { "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", "dev": true, "license": "MIT", "dependencies": { @@ -1902,9 +1775,8 @@ }, "node_modules/@babel/traverse": { "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -1923,8 +1795,6 @@ }, "node_modules/@babel/types": { "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", "dev": true, "license": "MIT", "dependencies": { @@ -1937,8 +1807,6 @@ }, "node_modules/@csstools/color-helpers": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", "dev": true, "funding": [ { @@ -1957,8 +1825,6 @@ }, "node_modules/@csstools/css-calc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", - "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", "dev": true, "funding": [ { @@ -1981,8 +1847,6 @@ }, "node_modules/@csstools/css-color-parser": { "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", - "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", "dev": true, "funding": [ { @@ -2009,8 +1873,6 @@ }, "node_modules/@csstools/css-parser-algorithms": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", "dev": true, "funding": [ { @@ -2032,8 +1894,6 @@ }, "node_modules/@csstools/css-tokenizer": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", "dev": true, "funding": [ { @@ -2050,547 +1910,189 @@ "node": ">=18" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { + "node_modules/@esbuild/linux-x64": { "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", - "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", "cpu": [ - "ppc64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "aix" + "linux" ], "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", - "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", - "cpu": [ - "arm" - ], + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", - "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "license": "Apache-2.0", "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", - "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", - "cpu": [ - "x64" - ], + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=18" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", - "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", - "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } + "license": "Python-2.0" }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", - "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", - "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=18" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", - "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", - "cpu": [ - "arm" - ], + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", - "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", - "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", - "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", - "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", - "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", - "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", - "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", - "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", - "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", - "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", - "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", - "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=18" + "node": "*" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", - "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", - "cpu": [ - "x64" - ], + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=18" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", - "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", - "cpu": [ - "arm64" - ], + "node_modules/@eslint/js": { + "version": "8.56.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=18" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", - "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", - "cpu": [ - "ia32" - ], + "node_modules/@goto-bus-stop/common-shake": { + "version": "2.4.1", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" + "dependencies": { + "acorn-walk": "^7.0.0", + "debug": "^3.2.6", + "escope": "^3.6.0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", - "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", - "cpu": [ - "x64" - ], + "node_modules/@goto-bus-stop/common-shake/node_modules/debug": { + "version": "3.2.7", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "ms": "^2.1.1" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", "dev": true, + "license": "Apache-2.0", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=10.10.0" } }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2598,107 +2100,130 @@ "node": "*" } }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@goto-bus-stop/common-shake": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@goto-bus-stop/common-shake/-/common-shake-2.4.1.tgz", - "integrity": "sha512-U77x9X3VXHQfuo8ncsQShFGnQ+DLSiHjaAKWyqyfIzcoddnOromP2SE615r1UmZdZTyc9DAZ4BYEBs2QQ1JwMQ==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", "dev": true, - "dependencies": { - "acorn-walk": "^7.0.0", - "debug": "^3.2.6", - "escope": "^3.6.0" - } + "license": "BSD-3-Clause" }, - "node_modules/@goto-bus-stop/common-shake/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { - "ms": "^2.1.1" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "ansi-regex": "^6.0.1" }, "engines": { - "node": "*" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, "engines": { - "node": ">=12.22" + "node": ">=12" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2712,18 +2237,16 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2735,27 +2258,25 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -2763,42 +2284,43 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jspm/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@jspm/core/-/core-2.1.0.tgz", + "integrity": "sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-scope": "5.1.1" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2809,18 +2331,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2828,296 +2348,48 @@ "engines": { "node": ">= 8" } - }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz", - "integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz", - "integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz", - "integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz", - "integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz", - "integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz", - "integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz", - "integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz", - "integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz", - "integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz", - "integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz", - "integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz", - "integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz", - "integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz", - "integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz", - "integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz", - "integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz", - "integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==", - "cpu": [ - "x64" - ], + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": ">=14" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz", - "integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==", - "cpu": [ - "arm64" - ], + "node_modules/@pkgr/core": { + "version": "0.1.1", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "dev": true, + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { + "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz", - "integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==", "cpu": [ - "ia32" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ] }, - "node_modules/@rollup/rollup-win32-x64-msvc": { + "node_modules/@rollup/rollup-linux-x64-musl": { "version": "4.40.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz", - "integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==", "cpu": [ "x64" ], @@ -3125,13 +2397,11 @@ "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ] }, "node_modules/@testing-library/dom": { "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", - "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3150,8 +2420,6 @@ }, "node_modules/@testing-library/user-event": { "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", "dev": true, "license": "MIT", "engines": { @@ -3164,16 +2432,13 @@ }, "node_modules/@types/aria-query": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, "license": "MIT" }, "node_modules/@types/eslint": { "version": "8.56.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", - "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", "dev": true, + "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -3183,43 +2448,36 @@ }, "node_modules/@types/estree": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "20.11.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.7.tgz", - "integrity": "sha512-GPmeN1C3XAyV5uybAf4cMLWT9fDWcmQhZVtMFu7OR32WjrqGG+Wnk2V1d0bmtUyE/Zy1QJ9BxyiTih9z8Oks8A==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/semver": { "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.1.tgz", - "integrity": "sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.19.1", @@ -3252,9 +2510,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -3264,9 +2521,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3279,15 +2535,13 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/parser": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.1.tgz", - "integrity": "sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "6.19.1", "@typescript-eslint/types": "6.19.1", @@ -3313,9 +2567,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz", - "integrity": "sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.19.1", "@typescript-eslint/visitor-keys": "6.19.1" @@ -3330,9 +2583,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.1.tgz", - "integrity": "sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "6.19.1", "@typescript-eslint/utils": "6.19.1", @@ -3357,9 +2609,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.1.tgz", - "integrity": "sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==", "dev": true, + "license": "MIT", "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -3370,9 +2621,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz", - "integrity": "sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "6.19.1", "@typescript-eslint/visitor-keys": "6.19.1", @@ -3398,9 +2648,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -3410,9 +2659,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3425,15 +2673,13 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/utils": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.1.tgz", - "integrity": "sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -3456,9 +2702,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -3468,9 +2713,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3483,15 +2727,13 @@ }, "node_modules/@typescript-eslint/utils/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@typescript-eslint/visitor-keys": { "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz", - "integrity": "sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "6.19.1", "eslint-visitor-keys": "^3.4.1" @@ -3506,9 +2748,8 @@ }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -3518,14 +2759,11 @@ }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@vitest/browser": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.1.2.tgz", - "integrity": "sha512-dwL6hQg3NSDP3Z4xzIZL0xHq/AkQAPQ4StFpWVlY2zbRJtK3Y2YqdFZ7YmZjszTETN1BDQZRn/QOrcP+c8ATgg==", "dev": true, "license": "MIT", "dependencies": { @@ -3560,8 +2798,6 @@ }, "node_modules/@vitest/browser/node_modules/magic-string": { "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -3570,8 +2806,6 @@ }, "node_modules/@vitest/expect": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.2.tgz", - "integrity": "sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA==", "dev": true, "license": "MIT", "dependencies": { @@ -3586,8 +2820,6 @@ }, "node_modules/@vitest/expect/node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -3596,8 +2828,6 @@ }, "node_modules/@vitest/expect/node_modules/chai": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", "dev": true, "license": "MIT", "dependencies": { @@ -3613,8 +2843,6 @@ }, "node_modules/@vitest/expect/node_modules/check-error": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, "license": "MIT", "engines": { @@ -3623,8 +2851,6 @@ }, "node_modules/@vitest/expect/node_modules/deep-eql": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", "engines": { @@ -3633,15 +2859,11 @@ }, "node_modules/@vitest/expect/node_modules/loupe": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", "dev": true, "license": "MIT" }, "node_modules/@vitest/expect/node_modules/pathval": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, "license": "MIT", "engines": { @@ -3650,8 +2872,6 @@ }, "node_modules/@vitest/mocker": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.2.tgz", - "integrity": "sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw==", "dev": true, "license": "MIT", "dependencies": { @@ -3677,8 +2897,6 @@ }, "node_modules/@vitest/mocker/node_modules/magic-string": { "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -3687,8 +2905,6 @@ }, "node_modules/@vitest/pretty-format": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.2.tgz", - "integrity": "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==", "dev": true, "license": "MIT", "dependencies": { @@ -3700,8 +2916,6 @@ }, "node_modules/@vitest/runner": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.2.tgz", - "integrity": "sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g==", "dev": true, "license": "MIT", "dependencies": { @@ -3714,8 +2928,6 @@ }, "node_modules/@vitest/snapshot": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.2.tgz", - "integrity": "sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3729,8 +2941,6 @@ }, "node_modules/@vitest/snapshot/node_modules/magic-string": { "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -3739,8 +2949,6 @@ }, "node_modules/@vitest/spy": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.2.tgz", - "integrity": "sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA==", "dev": true, "license": "MIT", "dependencies": { @@ -3752,8 +2960,6 @@ }, "node_modules/@vitest/ui": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-3.1.2.tgz", - "integrity": "sha512-+YPgKiLpFEyBVJNHDkRcSDcLrrnr20lyU4HQoI9Jtq1MdvoX8usql9h38mQw82MBU1Zo5BPC6sw+sXZ6NS18CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3774,8 +2980,6 @@ }, "node_modules/@vitest/utils": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.2.tgz", - "integrity": "sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg==", "dev": true, "license": "MIT", "dependencies": { @@ -3789,16 +2993,14 @@ }, "node_modules/@vitest/utils/node_modules/loupe": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" @@ -3806,27 +3008,27 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", @@ -3835,15 +3037,15 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -3853,33 +3055,33 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -3893,9 +3095,9 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -3906,9 +3108,9 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", @@ -3918,9 +3120,9 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", @@ -3932,74 +3134,28 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0", + "peer": true }, "node_modules/acorn": { "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, "license": "MIT", "bin": { @@ -4011,27 +3167,25 @@ }, "node_modules/acorn-import-attributes": { "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "dev": true, + "license": "MIT", + "peer": true, "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-node": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "dev": true, + "license": "Apache-2.0", "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", @@ -4040,9 +3194,8 @@ }, "node_modules/acorn-node/node_modules/acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4052,17 +3205,14 @@ }, "node_modules/acorn-walk": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", "engines": { @@ -4071,9 +3221,8 @@ }, "node_modules/aggregate-error": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^4.0.0", "indent-string": "^5.0.0" @@ -4087,9 +3236,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4103,9 +3251,8 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -4120,9 +3267,8 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -4136,23 +3282,20 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", + "peer": true, "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "license": "MIT", "engines": { @@ -4161,17 +3304,14 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -4186,15 +3326,13 @@ }, "node_modules/any-promise": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4205,9 +3343,8 @@ }, "node_modules/append-transform": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", "dev": true, + "license": "MIT", "dependencies": { "default-require-extensions": "^3.0.0" }, @@ -4217,23 +3354,19 @@ }, "node_modules/archy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/aria-query": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4242,9 +3375,8 @@ }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -4255,9 +3387,8 @@ }, "node_modules/array-includes": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4274,18 +3405,16 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/array.prototype.findlastindex": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4302,9 +3431,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4320,9 +3448,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4338,9 +3465,8 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -4359,18 +3485,16 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asn1.js": { "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -4379,15 +3503,13 @@ }, "node_modules/asn1.js/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/assert": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, + "license": "MIT", "dependencies": { "object.assign": "^4.1.4", "util": "^0.10.4" @@ -4395,38 +3517,33 @@ }, "node_modules/assert/node_modules/inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/assert/node_modules/util": { "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "2.0.3" } }, "node_modules/assertion-error": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/available-typed-arrays": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -4436,8 +3553,6 @@ }, "node_modules/axios": { "version": "1.8.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz", - "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -4447,15 +3562,13 @@ }, "node_modules/axios-curlirize": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/axios-curlirize/-/axios-curlirize-2.0.0.tgz", - "integrity": "sha512-TrQBa8MfIwaYsrCoYhfCr7NDRXLuGm+Rqh/PtAuO64b8PCCOJWn37BWQvpN4/mzzig3uHb4qXzvpxJmALHaiwA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/axios-mock-adapter": { "version": "1.22.0", - "resolved": "https://registry.npmjs.org/axios-mock-adapter/-/axios-mock-adapter-1.22.0.tgz", - "integrity": "sha512-dmI0KbkyAhntUR05YY96qg2H6gg0XMl2+qTW0xmYg6Up+BFBAJYRLROMXRdDEL06/Wqwa0TJThAYvFtSFdRCZw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "is-buffer": "^2.0.5" @@ -4466,9 +3579,8 @@ }, "node_modules/babel-loader": { "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -4483,9 +3595,8 @@ }, "node_modules/babel-loader/node_modules/find-cache-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -4499,9 +3610,8 @@ }, "node_modules/babel-loader/node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -4515,9 +3625,8 @@ }, "node_modules/babel-loader/node_modules/locate-path": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -4530,9 +3639,8 @@ }, "node_modules/babel-loader/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -4545,9 +3653,8 @@ }, "node_modules/babel-loader/node_modules/p-locate": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -4560,18 +3667,16 @@ }, "node_modules/babel-loader/node_modules/path-exists": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/babel-loader/node_modules/pkg-dir": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -4584,9 +3689,8 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -4600,9 +3704,8 @@ }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.22.6", "@babel/helper-define-polyfill-provider": "^0.5.0", @@ -4614,9 +3717,8 @@ }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.5.0", "core-js-compat": "^3.34.0" @@ -4627,9 +3729,8 @@ }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.5.0" }, @@ -4639,9 +3740,8 @@ }, "node_modules/babelify": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -4651,14 +3751,11 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -4673,22 +3770,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bl": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -4696,24 +3792,21 @@ }, "node_modules/bn.js": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -4723,15 +3816,13 @@ }, "node_modules/brorand": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/browser-pack": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", "dev": true, + "license": "MIT", "dependencies": { "combine-source-map": "~0.8.0", "defined": "^1.0.0", @@ -4746,30 +3837,26 @@ }, "node_modules/browser-process-hrtime": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/browser-resolve": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.17.0" } }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserify": { "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", "dev": true, + "license": "MIT", "dependencies": { "assert": "^1.4.0", "browser-pack": "^6.0.1", @@ -4829,9 +3916,8 @@ }, "node_modules/browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, + "license": "MIT", "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -4843,9 +3929,8 @@ }, "node_modules/browserify-cipher": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, + "license": "MIT", "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -4854,9 +3939,8 @@ }, "node_modules/browserify-des": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -4866,9 +3950,8 @@ }, "node_modules/browserify-rsa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" @@ -4876,9 +3959,8 @@ }, "node_modules/browserify-sign": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, + "license": "ISC", "dependencies": { "bn.js": "^5.2.1", "browserify-rsa": "^4.1.0", @@ -4897,9 +3979,8 @@ }, "node_modules/browserify-sign/node_modules/hash-base": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -4910,17 +3991,16 @@ }, "node_modules/browserify-zlib": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, + "license": "MIT", "dependencies": { "pako": "~1.0.5" } }, "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", "dev": true, "funding": [ { @@ -4936,11 +4016,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -4949,11 +4030,29 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/browserslist-to-esbuild": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz", + "integrity": "sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "meow": "^13.0.0" + }, + "bin": { + "browserslist-to-esbuild": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "browserslist": "*" + } + }, "node_modules/buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, + "license": "MIT", "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -4961,26 +4060,37 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/builtin-status-codes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-require": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", + "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, "license": "MIT", "engines": { @@ -4989,15 +4099,13 @@ }, "node_modules/cached-path-relative": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/caching-transform": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", "dev": true, + "license": "MIT", "dependencies": { "hasha": "^5.0.0", "make-dir": "^3.0.0", @@ -5010,9 +4118,8 @@ }, "node_modules/caching-transform/node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -5025,9 +4132,8 @@ }, "node_modules/call-bind": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", @@ -5039,26 +4145,24 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001692", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", - "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", "dev": true, "funding": [ { @@ -5078,9 +4182,8 @@ }, "node_modules/chai": { "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, + "license": "MIT", "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.3", @@ -5096,9 +4199,8 @@ }, "node_modules/chai-as-promised": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, + "license": "WTFPL", "dependencies": { "check-error": "^1.0.2" }, @@ -5108,8 +4210,6 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -5125,18 +4225,16 @@ }, "node_modules/charenc": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/check-error": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.2" }, @@ -5146,8 +4244,6 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -5155,6 +4251,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5173,18 +4270,17 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=6.0" } }, "node_modules/cipher-base": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -5192,9 +4288,8 @@ }, "node_modules/clean-stack": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "5.0.0" }, @@ -5207,9 +4302,8 @@ }, "node_modules/clean-stack/node_modules/escape-string-regexp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5219,9 +4313,8 @@ }, "node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -5230,27 +4323,24 @@ }, "node_modules/clone": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/clone-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -5262,15 +4352,13 @@ }, "node_modules/clone-stats": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cloneable-readable": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", @@ -5279,8 +4367,6 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5292,22 +4378,13 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, "node_modules/combine-source-map": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", "dev": true, + "license": "MIT", "dependencies": { "convert-source-map": "~1.1.0", "inline-source-map": "~0.6.0", @@ -5317,14 +4394,12 @@ }, "node_modules/combine-source-map/node_modules/convert-source-map": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -5334,24 +4409,21 @@ }, "node_modules/commander": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/common-path-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/common-shakeify": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/common-shakeify/-/common-shakeify-1.1.2.tgz", - "integrity": "sha512-r2zRKPCbCx1l9BT8nVGZssZXrH9jeLl5qfHKxUwSBT7Kr9l1jSjZsItZE/jXo+GYDyO3kQfsyV7Poid475MgWQ==", "dev": true, + "license": "MIT", "dependencies": { "@goto-bus-stop/common-shake": "^2.3.0", "convert-source-map": "^1.5.1", @@ -5362,30 +4434,26 @@ }, "node_modules/common-shakeify/node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -5393,30 +4461,42 @@ "typedarray": "^0.0.6" } }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/console-browserify": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, "node_modules/constants-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-js": { "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.1.tgz", - "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -5424,9 +4504,8 @@ }, "node_modules/core-js-compat": { "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", "dev": true, + "license": "MIT", "dependencies": { "browserslist": "^4.22.2" }, @@ -5437,15 +4516,13 @@ }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/create-ecdh": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" @@ -5453,15 +4530,13 @@ }, "node_modules/create-ecdh/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/create-hash": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, + "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -5472,9 +4547,8 @@ }, "node_modules/create-hmac": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, + "license": "MIT", "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -5486,9 +4560,8 @@ }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5500,18 +4573,16 @@ }, "node_modules/crypt": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/crypto-browserify": { "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, + "license": "MIT", "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -5531,8 +4602,6 @@ }, "node_modules/cssstyle": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz", - "integrity": "sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5545,16 +4614,13 @@ }, "node_modules/cssstyle/node_modules/rrweb-cssom": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", "dev": true, "license": "MIT" }, "node_modules/d": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, + "license": "ISC", "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -5562,14 +4628,11 @@ }, "node_modules/dash-ast": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/data-urls": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, "license": "MIT", "dependencies": { @@ -5582,8 +4645,6 @@ }, "node_modules/debug": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "license": "MIT", "dependencies": { @@ -5600,25 +4661,21 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decimal.js": { "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", "dev": true, "license": "MIT" }, "node_modules/deep-eql": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, + "license": "MIT", "dependencies": { "type-detect": "^4.0.0" }, @@ -5628,15 +4685,13 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/default-require-extensions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", "dev": true, + "license": "MIT", "dependencies": { "strip-bom": "^4.0.0" }, @@ -5649,9 +4704,8 @@ }, "node_modules/define-data-property": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -5663,9 +4717,8 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -5680,18 +4733,16 @@ }, "node_modules/defined": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", - "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/del": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", - "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", "dev": true, + "license": "MIT", "dependencies": { "globby": "^13.1.2", "graceful-fs": "^4.2.10", @@ -5711,9 +4762,8 @@ }, "node_modules/del/node_modules/globby": { "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -5730,9 +4780,8 @@ }, "node_modules/del/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5742,17 +4791,15 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/deps-sort": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "dev": true, + "license": "MIT", "dependencies": { "JSONStream": "^1.0.3", "shasum-object": "^1.0.0", @@ -5765,8 +4812,6 @@ }, "node_modules/dequal": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "license": "MIT", "engines": { @@ -5775,9 +4820,8 @@ }, "node_modules/des.js": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -5785,9 +4829,8 @@ }, "node_modules/detective": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dev": true, + "license": "MIT", "dependencies": { "acorn-node": "^1.8.2", "defined": "^1.0.0", @@ -5802,8 +4845,6 @@ }, "node_modules/diff": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -5812,9 +4853,8 @@ }, "node_modules/diffie-hellman": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -5823,15 +4863,13 @@ }, "node_modules/diffie-hellman/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -5841,9 +4879,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -5853,25 +4890,22 @@ }, "node_modules/dom-accessibility-api": { "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, "license": "MIT" }, "node_modules/domain-browser": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4", "npm": ">=1.2" } }, "node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -5883,23 +4917,28 @@ }, "node_modules/duplexer2": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "readable-stream": "^2.0.2" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { - "version": "1.4.648", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz", - "integrity": "sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==", - "dev": true + "version": "1.5.151", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz", + "integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==", + "dev": true, + "license": "ISC" }, "node_modules/elliptic": { "version": "6.6.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", - "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, "license": "MIT", "dependencies": { @@ -5914,21 +4953,18 @@ }, "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5939,8 +4975,6 @@ }, "node_modules/entities": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -5950,32 +4984,18 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -6026,16 +5046,13 @@ }, "node_modules/es-module-lexer": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "dev": true, "license": "MIT" }, "node_modules/es-set-tostringtag": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.2", "has-tostringtag": "^1.0.0", @@ -6047,18 +5064,16 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -6073,10 +5088,9 @@ }, "node_modules/es5-ext": { "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -6089,15 +5103,13 @@ }, "node_modules/es6-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es6-iterator": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -6106,9 +5118,8 @@ }, "node_modules/es6-map": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14", @@ -6120,9 +5131,8 @@ }, "node_modules/es6-set": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.6.tgz", - "integrity": "sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -6137,15 +5147,13 @@ }, "node_modules/es6-set/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/es6-symbol": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" @@ -6153,9 +5161,8 @@ }, "node_modules/es6-weak-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, + "license": "ISC", "dependencies": { "d": "1", "es5-ext": "^0.10.46", @@ -6165,8 +5172,6 @@ }, "node_modules/esbuild": { "version": "0.25.3", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", - "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6204,29 +5209,46 @@ "@esbuild/win32-x64": "0.25.3" } }, + "node_modules/esbuild-plugins-node-modules-polyfill": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esbuild-plugins-node-modules-polyfill/-/esbuild-plugins-node-modules-polyfill-1.7.0.tgz", + "integrity": "sha512-Z81w5ReugIBAgufGeGWee+Uxzgs5Na4LprUAK3XlJEh2ktY3LkNuEGMaZyBXxQxGK8SQDS5yKLW5QKGF5qLjYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jspm/core": "^2.1.0", + "local-pkg": "^1.0.0", + "resolve.exports": "^2.0.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.14.0 <=0.25.x" + } + }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/escope": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "es6-map": "^0.1.3", "es6-weak-map": "^2.0.1", @@ -6239,9 +5261,8 @@ }, "node_modules/eslint": { "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -6294,9 +5315,8 @@ }, "node_modules/eslint-config-prettier": { "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -6306,9 +5326,8 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -6317,18 +5336,16 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-module-utils": { "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -6343,18 +5360,16 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-es": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, + "license": "MIT", "dependencies": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" @@ -6371,9 +5386,8 @@ }, "node_modules/eslint-plugin-import": { "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -6402,9 +5416,8 @@ }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6412,18 +5425,16 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -6433,9 +5444,8 @@ }, "node_modules/eslint-plugin-import/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6445,9 +5455,8 @@ }, "node_modules/eslint-plugin-node": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, + "license": "MIT", "dependencies": { "eslint-plugin-es": "^3.0.0", "eslint-utils": "^2.0.0", @@ -6465,9 +5474,8 @@ }, "node_modules/eslint-plugin-node/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6475,9 +5483,8 @@ }, "node_modules/eslint-plugin-node/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6487,9 +5494,8 @@ }, "node_modules/eslint-plugin-prettier": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.8.6" @@ -6517,9 +5523,8 @@ }, "node_modules/eslint-plugin-promise": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz", - "integrity": "sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==", "dev": true, + "license": "ISC", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6529,9 +5534,6 @@ }, "node_modules/eslint-plugin-standard": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz", - "integrity": "sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg==", - "deprecated": "standard 16.0.0 and eslint-config-standard 16.0.0 no longer require the eslint-plugin-standard package. You can remove it from your dependencies with 'npm rm eslint-plugin-standard'. More info here: https://github.com/standard/standard/issues/1316", "dev": true, "funding": [ { @@ -6547,15 +5549,15 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peerDependencies": { "eslint": ">=5.0.0" } }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6566,9 +5568,8 @@ }, "node_modules/eslint-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^1.1.0" }, @@ -6581,33 +5582,29 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=4" } }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6615,9 +5612,8 @@ }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6627,9 +5623,8 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -6643,9 +5638,8 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6655,18 +5649,16 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -6680,9 +5672,8 @@ }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6692,9 +5683,8 @@ }, "node_modules/eslint/node_modules/globals": { "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -6707,18 +5697,16 @@ }, "node_modules/eslint/node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -6728,9 +5716,8 @@ }, "node_modules/eslint/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -6743,9 +5730,8 @@ }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6755,9 +5741,8 @@ }, "node_modules/eslint/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -6770,9 +5755,8 @@ }, "node_modules/eslint/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -6785,9 +5769,8 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6797,9 +5780,8 @@ }, "node_modules/eslint/node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6809,9 +5791,8 @@ }, "node_modules/esniff": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -6824,15 +5805,13 @@ }, "node_modules/esniff/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/espree": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -6847,9 +5826,8 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -6859,9 +5837,8 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6872,9 +5849,8 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -6884,18 +5860,16 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -6905,26 +5879,22 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { @@ -6933,18 +5903,16 @@ }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/event-emitter": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -6952,18 +5920,16 @@ }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/evp_bytestokey": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, + "license": "MIT", "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -6971,46 +5937,46 @@ }, "node_modules/expect-type": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", - "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", "dev": true, "license": "Apache-2.0", "engines": { "node": ">=12.0.0" } }, + "node_modules/exsolve": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz", + "integrity": "sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==", + "dev": true, + "license": "MIT" + }, "node_modules/ext": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, + "license": "ISC", "dependencies": { "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7024,52 +5990,36 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "license": "MIT" }, "node_modules/fastq": { "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fflate": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", "dev": true, "license": "MIT" }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -7079,9 +6029,8 @@ }, "node_modules/fill-range": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7091,9 +6040,8 @@ }, "node_modules/find-cache-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -7105,9 +6053,8 @@ }, "node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -7118,18 +6065,16 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -7141,21 +6086,18 @@ }, "node_modules/flatted": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -7167,18 +6109,16 @@ }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "node_modules/foreground-child": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" @@ -7189,8 +6129,7 @@ }, "node_modules/form-data": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7202,8 +6141,6 @@ }, "node_modules/fromentries": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true, "funding": [ { @@ -7218,48 +6155,31 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/fs-readdir-recursive": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "license": "ISC" }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -7275,51 +6195,45 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-assigned-identifiers": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/get-intrinsic": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", @@ -7332,18 +6246,16 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -7357,9 +6269,8 @@ }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7377,9 +6288,8 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7389,15 +6299,14 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true + "dev": true, + "license": "BSD-2-Clause", + "peer": true }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7405,9 +6314,8 @@ }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7417,18 +6325,16 @@ }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globalthis": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3" }, @@ -7441,9 +6347,8 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -7461,18 +6366,16 @@ }, "node_modules/globby/node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -7482,30 +6385,26 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/has-ansi": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -7515,26 +6414,22 @@ }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -7543,9 +6438,8 @@ }, "node_modules/has-property-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.2" }, @@ -7555,9 +6449,8 @@ }, "node_modules/has-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7567,9 +6460,8 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7579,9 +6471,8 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -7594,9 +6485,8 @@ }, "node_modules/hash-base": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", @@ -7608,9 +6498,8 @@ }, "node_modules/hash-base/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7622,9 +6511,8 @@ }, "node_modules/hash.js": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -7632,9 +6520,8 @@ }, "node_modules/hasha": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", "dev": true, + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" @@ -7648,9 +6535,8 @@ }, "node_modules/hasown": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -7660,18 +6546,16 @@ }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, "node_modules/hmac-drbg": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, + "license": "MIT", "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", @@ -7680,8 +6564,6 @@ }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7693,23 +6575,19 @@ }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/htmlescape": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { @@ -7722,14 +6600,11 @@ }, "node_modules/https-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/https-proxy-agent": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { @@ -7742,8 +6617,6 @@ }, "node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", "dependencies": { @@ -7755,8 +6628,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -7771,22 +6642,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7800,58 +6670,24 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -7861,9 +6697,8 @@ }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7871,24 +6706,21 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/inline-source-map": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", "dev": true, + "license": "MIT", "dependencies": { "source-map": "~0.5.3" } }, "node_modules/insert-module-globals": { "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", "dev": true, + "license": "MIT", "dependencies": { "acorn-node": "^1.5.2", "combine-source-map": "^0.8.0", @@ -7907,15 +6739,13 @@ }, "node_modules/insert-module-globals/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/internal-slot": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.2", "hasown": "^2.0.0", @@ -7925,20 +6755,10 @@ "node": ">= 0.4" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -7952,9 +6772,8 @@ }, "node_modules/is-array-buffer": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -7966,15 +6785,13 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -7984,9 +6801,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -7996,9 +6812,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8012,8 +6827,6 @@ }, "node_modules/is-buffer": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { @@ -8029,15 +6842,15 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8047,9 +6860,8 @@ }, "node_modules/is-core-module": { "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -8059,9 +6871,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8074,27 +6885,24 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8107,9 +6915,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8119,9 +6926,8 @@ }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8131,18 +6937,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8155,9 +6959,8 @@ }, "node_modules/is-path-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8167,9 +6970,8 @@ }, "node_modules/is-path-inside": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8179,18 +6981,16 @@ }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -8200,16 +7000,13 @@ }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true, "license": "MIT" }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8223,9 +7020,8 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -8235,9 +7031,8 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -8247,9 +7042,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8262,9 +7056,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -8277,9 +7070,8 @@ }, "node_modules/is-typed-array": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.11" }, @@ -8292,15 +7084,13 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8310,15 +7100,13 @@ }, "node_modules/is-utf8": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -8328,48 +7116,42 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-hook": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "append-transform": "^2.0.0" }, @@ -8379,9 +7161,8 @@ }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -8395,9 +7176,8 @@ }, "node_modules/istanbul-lib-processinfo": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", "dev": true, + "license": "ISC", "dependencies": { "archy": "^1.0.0", "cross-spawn": "^7.0.3", @@ -8412,9 +7192,8 @@ }, "node_modules/istanbul-lib-processinfo/node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -8425,27 +7204,24 @@ }, "node_modules/istanbul-lib-processinfo/node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/istanbul-lib-processinfo/node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-processinfo/node_modules/p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -8455,9 +7231,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -8469,9 +7244,8 @@ }, "node_modules/istanbul-lib-report/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8481,9 +7255,8 @@ }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -8496,9 +7269,8 @@ }, "node_modules/istanbul-lib-report/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8511,15 +7283,13 @@ }, "node_modules/istanbul-lib-report/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -8531,18 +7301,16 @@ }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -8551,11 +7319,27 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -8567,9 +7351,9 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8580,18 +7364,25 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -8602,8 +7393,6 @@ }, "node_modules/jsdom": { "version": "24.1.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz", - "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8643,9 +7432,8 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -8655,33 +7443,29 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -8691,18 +7475,16 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" - ] + ], + "license": "MIT" }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, + "license": "(MIT OR Apache-2.0)", "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" @@ -8716,27 +7498,24 @@ }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/labeled-stream-splicer": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "stream-splicer": "^2.0.0" @@ -8744,9 +7523,8 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -8755,20 +7533,67 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/loader-runner": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=6.11.5" } }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -8778,33 +7603,35 @@ }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.flattendeep": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -8818,8 +7645,7 @@ }, "node_modules/loglevel": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "license": "MIT", "engines": { "node": ">= 0.6.0" }, @@ -8830,26 +7656,22 @@ }, "node_modules/loupe": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", "dev": true, + "license": "MIT", "dependencies": { "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lz-string": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", "bin": { @@ -8858,18 +7680,16 @@ }, "node_modules/magic-string": { "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", "dev": true, + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.1" } }, "node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -8880,24 +7700,21 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/md5": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -8906,9 +7723,8 @@ }, "node_modules/md5.js": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -8917,39 +7733,48 @@ }, "node_modules/md5/node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-source-map": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", "dev": true, + "license": "MIT", "dependencies": { "source-map": "^0.5.6" } }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -8960,9 +7785,8 @@ }, "node_modules/miller-rabin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -8973,22 +7797,19 @@ }, "node_modules/miller-rabin/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -8998,21 +7819,18 @@ }, "node_modules/minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/minimatch": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9025,18 +7843,26 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -9049,14 +7875,43 @@ }, "node_modules/mkdirp-classic": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } }, "node_modules/mocha": { "version": "10.8.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", - "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "license": "MIT", "dependencies": { @@ -9091,9 +7946,8 @@ }, "node_modules/mocha-junit-reporter": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.2.1.tgz", - "integrity": "sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "md5": "^2.3.0", @@ -9107,15 +7961,13 @@ }, "node_modules/mocha/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9125,9 +7977,8 @@ }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -9141,9 +7992,6 @@ }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -9162,9 +8010,8 @@ }, "node_modules/mocha/node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -9174,9 +8021,8 @@ }, "node_modules/mocha/node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -9189,8 +8035,6 @@ }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { @@ -9202,9 +8046,8 @@ }, "node_modules/mocha/node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -9217,9 +8060,8 @@ }, "node_modules/mocha/node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -9232,9 +8074,8 @@ }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9247,9 +8088,8 @@ }, "node_modules/mocha/node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9259,9 +8099,8 @@ }, "node_modules/module-deps": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", "dev": true, + "license": "MIT", "dependencies": { "browser-resolve": "^2.0.0", "cached-path-relative": "^1.0.2", @@ -9288,8 +8127,6 @@ }, "node_modules/mrmime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { @@ -9298,25 +8135,33 @@ }, "node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, "node_modules/mutexify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", - "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", "dev": true, + "license": "MIT", "dependencies": { "queue-tick": "^1.0.0" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanobench": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", - "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", "dev": true, + "license": "MIT", "dependencies": { "browser-process-hrtime": "^0.1.2", "chalk": "^1.1.3", @@ -9330,27 +8175,24 @@ }, "node_modules/nanobench/node_modules/ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nanobench/node_modules/ansi-styles": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nanobench/node_modules/chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -9364,9 +8206,8 @@ }, "node_modules/nanobench/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -9376,17 +8217,14 @@ }, "node_modules/nanobench/node_modules/supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/nanoid": { "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -9404,27 +8242,24 @@ }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/next-tick": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/node-preload": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", "dev": true, + "license": "MIT", "dependencies": { "process-on-spawn": "^1.0.0" }, @@ -9433,32 +8268,29 @@ } }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nwsapi": { "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", "dev": true, "license": "MIT" }, "node_modules/nyc": { "version": "15.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", - "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", @@ -9497,9 +8329,8 @@ }, "node_modules/nyc/node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -9510,18 +8341,16 @@ }, "node_modules/nyc/node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/nyc/node_modules/cliui": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -9530,15 +8359,13 @@ }, "node_modules/nyc/node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nyc/node_modules/find-cache-dir": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -9553,18 +8380,16 @@ }, "node_modules/nyc/node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/nyc/node_modules/istanbul-lib-instrument": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.7.5", "@istanbuljs/schema": "^0.1.2", @@ -9577,9 +8402,8 @@ }, "node_modules/nyc/node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -9592,9 +8416,8 @@ }, "node_modules/nyc/node_modules/p-map": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -9604,9 +8427,8 @@ }, "node_modules/nyc/node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -9616,9 +8438,8 @@ }, "node_modules/nyc/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -9630,15 +8451,13 @@ }, "node_modules/nyc/node_modules/y18n": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/nyc/node_modules/yargs": { "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -9658,9 +8477,8 @@ }, "node_modules/nyc/node_modules/yargs-parser": { "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -9671,36 +8489,32 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -9716,9 +8530,8 @@ }, "node_modules/object.fromentries": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -9733,9 +8546,8 @@ }, "node_modules/object.groupby": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -9745,9 +8557,8 @@ }, "node_modules/object.values": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -9762,18 +8573,16 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -9788,15 +8597,13 @@ }, "node_modules/os-browserify": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -9809,9 +8616,8 @@ }, "node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -9821,9 +8627,8 @@ }, "node_modules/p-map": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", "dev": true, + "license": "MIT", "dependencies": { "aggregate-error": "^4.0.0" }, @@ -9836,18 +8641,16 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/package-hash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.15", "hasha": "^5.0.0", @@ -9858,17 +8661,22 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "dev": true, + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -9878,18 +8686,16 @@ }, "node_modules/parents": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", "dev": true, + "license": "MIT", "dependencies": { "path-platform": "~0.11.15" } }, "node_modules/parse-asn1": { "version": "5.1.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, + "license": "ISC", "dependencies": { "asn1.js": "^4.10.1", "browserify-aes": "^1.2.0", @@ -9904,9 +8710,8 @@ }, "node_modules/parse-asn1/node_modules/hash-base": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -9917,9 +8722,8 @@ }, "node_modules/parse-json": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.2.0" }, @@ -9929,8 +8733,6 @@ }, "node_modules/parse5": { "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9942,82 +8744,95 @@ }, "node_modules/path-browserify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-platform": { "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pathe": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, "node_modules/pathval": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } }, "node_modules/pbkdf2": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, + "license": "MIT", "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -10031,16 +8846,13 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -10050,27 +8862,24 @@ }, "node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pirates": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -10080,9 +8889,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -10092,9 +8900,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -10105,9 +8912,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -10117,17 +8923,26 @@ }, "node_modules/pkg-dir/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, "node_modules/postcss": { "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -10153,20 +8968,61 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -10179,9 +9035,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -10191,8 +9046,6 @@ }, "node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10206,8 +9059,6 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { @@ -10219,33 +9070,29 @@ }, "node_modules/pretty-hrtime": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/process-on-spawn": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", - "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, + "license": "MIT", "dependencies": { "fromentries": "^1.2.0" }, @@ -10255,13 +9102,10 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "license": "MIT" }, "node_modules/psl": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, "license": "MIT", "dependencies": { @@ -10273,8 +9117,6 @@ }, "node_modules/psl/node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -10283,9 +9125,8 @@ }, "node_modules/public-encrypt": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -10297,21 +9138,18 @@ }, "node_modules/public-encrypt/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/qs": { "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -10322,10 +9160,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/quansync": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.10.tgz", + "integrity": "sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, "node_modules/querystring-es3": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, "engines": { "node": ">=0.4.x" @@ -10333,15 +9186,11 @@ }, "node_modules/querystringify": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true, "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -10356,28 +9205,26 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/queue-tick": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/randomfill": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, + "license": "MIT", "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -10385,25 +9232,21 @@ }, "node_modules/react-is": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, "license": "MIT" }, "node_modules/read-only-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.2" } }, "node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -10416,24 +9259,21 @@ }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/readable-stream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -10441,29 +9281,15 @@ "node": ">=8.10.0" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -10473,23 +9299,21 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "dev": true, + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -10504,9 +9328,8 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -10516,9 +9339,8 @@ }, "node_modules/regexpu-core": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", @@ -10533,9 +9355,8 @@ }, "node_modules/regjsparser": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -10545,8 +9366,6 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -10554,9 +9373,8 @@ }, "node_modules/release-zalgo": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", "dev": true, + "license": "ISC", "dependencies": { "es6-error": "^4.0.1" }, @@ -10566,55 +9384,47 @@ }, "node_modules/remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/replace-ext": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true, "license": "MIT" }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -10627,32 +9437,28 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/resolve-from": { + "version": "5.0.0", "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10660,9 +9466,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -10675,9 +9480,8 @@ }, "node_modules/ripemd160": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, + "license": "MIT", "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -10685,8 +9489,6 @@ }, "node_modules/rollup": { "version": "4.40.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz", - "integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==", "dev": true, "license": "MIT", "dependencies": { @@ -10725,15 +9527,11 @@ }, "node_modules/rrweb-cssom": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", - "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", "dev": true, "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -10749,15 +9547,15 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-array-concat": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "get-intrinsic": "^1.2.2", @@ -10773,14 +9571,11 @@ }, "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { @@ -10795,13 +9590,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", - "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "get-intrinsic": "^1.2.2", @@ -10816,15 +9611,11 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "license": "MIT" }, "node_modules/saxes": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, "license": "ISC", "dependencies": { @@ -10836,9 +9627,8 @@ }, "node_modules/schema-utils": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -10855,9 +9645,8 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -10871,9 +9660,8 @@ }, "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -10883,23 +9671,19 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/serialize-javascript": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -10908,15 +9692,13 @@ }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/set-function-length": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.1", "function-bind": "^1.1.2", @@ -10930,9 +9712,8 @@ }, "node_modules/set-function-name": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -10944,9 +9725,8 @@ }, "node_modules/sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, + "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -10957,9 +9737,8 @@ }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -10969,18 +9748,16 @@ }, "node_modules/shasum-object": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "fast-safe-stringify": "^2.0.7" } }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10990,27 +9767,24 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -11022,21 +9796,16 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/simple-concat": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true, "funding": [ { @@ -11051,12 +9820,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/sirv": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", - "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", "dev": true, "license": "MIT", "dependencies": { @@ -11070,26 +9838,22 @@ }, "node_modules/slash": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -11098,9 +9862,8 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -11108,25 +9871,21 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/sourcemap-codec": { "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/spawn-wrap": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^2.0.0", "is-windows": "^1.0.2", @@ -11141,9 +9900,8 @@ }, "node_modules/spawn-wrap/node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -11156,29 +9914,23 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, "node_modules/std-env": { "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", "dev": true, "license": "MIT" }, "node_modules/stream-browserify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" @@ -11186,9 +9938,8 @@ }, "node_modules/stream-browserify/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11200,9 +9951,8 @@ }, "node_modules/stream-combiner2": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, + "license": "MIT", "dependencies": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" @@ -11210,9 +9960,8 @@ }, "node_modules/stream-http": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, + "license": "MIT", "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", @@ -11222,9 +9971,8 @@ }, "node_modules/stream-http/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11236,9 +9984,8 @@ }, "node_modules/stream-splicer": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" @@ -11246,18 +9993,32 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11269,9 +10030,8 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11286,9 +10046,8 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11300,9 +10059,8 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -11313,10 +10071,23 @@ } }, "node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11326,18 +10097,16 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -11347,17 +10116,104 @@ }, "node_modules/subarg": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.1.0" } }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -11369,9 +10225,8 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11381,16 +10236,13 @@ }, "node_modules/symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true, "license": "MIT" }, "node_modules/synckit": { "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", "dev": true, + "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" @@ -11404,27 +10256,25 @@ }, "node_modules/syntax-error": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", "dev": true, + "license": "MIT", "dependencies": { "acorn-node": "^1.2.0" } }, "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/terser": { "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", "dev": true, + "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -11440,9 +10290,9 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", @@ -11474,9 +10324,9 @@ }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -11492,15 +10342,14 @@ }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -11512,9 +10361,8 @@ }, "node_modules/test-exclude/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -11522,9 +10370,8 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11534,21 +10381,41 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -11556,14 +10423,11 @@ }, "node_modules/timekeeper": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-2.3.1.tgz", - "integrity": "sha512-LeQRS7/4JcC0PgdSFnfUiStQEdiuySlCj/5SJ18D+T1n9BoY7PxKFfCwLulpHXoLUFr67HxBddQdEX47lDGx1g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/timers-browserify": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", "dev": true, "dependencies": { "process": "~0.11.0" @@ -11574,22 +10438,16 @@ }, "node_modules/tinybench": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, "license": "MIT" }, "node_modules/tinyexec": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", "dev": true, "license": "MIT" }, "node_modules/tinyglobby": { "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", "dev": true, "license": "MIT", "dependencies": { @@ -11605,8 +10463,6 @@ }, "node_modules/tinyglobby/node_modules/fdir": { "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -11620,8 +10476,6 @@ }, "node_modules/tinyglobby/node_modules/picomatch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", "engines": { @@ -11633,8 +10487,6 @@ }, "node_modules/tinypool": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", - "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", "dev": true, "license": "MIT", "engines": { @@ -11643,8 +10495,6 @@ }, "node_modules/tinyrainbow": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", "dev": true, "license": "MIT", "engines": { @@ -11653,8 +10503,6 @@ }, "node_modules/tinyspy": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", - "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", "dev": true, "license": "MIT", "engines": { @@ -11663,9 +10511,8 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -11675,8 +10522,6 @@ }, "node_modules/totalist": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "license": "MIT", "engines": { @@ -11685,8 +10530,6 @@ }, "node_modules/tough-cookie": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -11701,8 +10544,6 @@ }, "node_modules/tough-cookie/node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -11711,8 +10552,6 @@ }, "node_modules/tr46": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.0.tgz", - "integrity": "sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==", "dev": true, "license": "MIT", "dependencies": { @@ -11724,8 +10563,6 @@ }, "node_modules/tr46/node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", "engines": { @@ -11734,9 +10571,8 @@ }, "node_modules/transform-ast": { "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", "dev": true, + "license": "MIT", "dependencies": { "acorn-node": "^1.3.0", "convert-source-map": "^1.5.1", @@ -11749,15 +10585,23 @@ }, "node_modules/transform-ast/node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } }, "node_modules/ts-api-utils": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=16.13.0" }, @@ -11765,11 +10609,17 @@ "typescript": ">=4.2.0" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/ts-loader": { "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", @@ -11787,9 +10637,8 @@ }, "node_modules/ts-loader/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11799,9 +10648,8 @@ }, "node_modules/ts-loader/node_modules/semver": { "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11814,24 +10662,21 @@ }, "node_modules/ts-loader/node_modules/source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } }, "node_modules/ts-loader/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ts-mocha": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", "dev": true, + "license": "MIT", "dependencies": { "ts-node": "7.0.1" }, @@ -11850,9 +10695,8 @@ }, "node_modules/ts-node": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, + "license": "MIT", "dependencies": { "arrify": "^1.0.0", "buffer-from": "^1.1.0", @@ -11872,18 +10716,16 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/ts-node/node_modules/mkdirp": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.6" }, @@ -11893,9 +10735,8 @@ }, "node_modules/tsconfig": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz", - "integrity": "sha512-Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.3.0", "parse-json": "^2.2.0", @@ -11905,9 +10746,8 @@ }, "node_modules/tsconfig-paths": { "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -11917,9 +10757,8 @@ }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -11929,18 +10768,16 @@ }, "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tsconfig/node_modules/strip-bom": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, + "license": "MIT", "dependencies": { "is-utf8": "^0.2.0" }, @@ -11950,18 +10787,16 @@ }, "node_modules/tsconfig/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/tsify": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/tsify/-/tsify-5.0.4.tgz", - "integrity": "sha512-XAZtQ5OMPsJFclkZ9xMZWkSNyMhMxEPsz3D2zu79yoKorH9j/DT4xCloJeXk5+cDhosEibu4bseMVjyPOAyLJA==", "dev": true, + "license": "MIT", "dependencies": { "convert-source-map": "^1.1.0", "fs.realpath": "^1.0.0", @@ -11980,32 +10815,161 @@ }, "node_modules/tsify/node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tslib": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "license": "0BSD" + }, + "node_modules/tsup": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.4.0.tgz", + "integrity": "sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-require": "^5.1.0", + "cac": "^6.7.14", + "chokidar": "^4.0.3", + "consola": "^3.4.0", + "debug": "^4.4.0", + "esbuild": "^0.25.0", + "joycon": "^3.1.1", + "picocolors": "^1.1.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.34.8", + "source-map": "0.8.0-beta.0", + "sucrase": "^3.35.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.11", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/tsup/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tsup/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/tsup/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tsup/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tsup/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/tsup/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } }, "node_modules/tty-browserify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/type": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -12015,27 +10979,24 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=8" } }, "node_modules/typed-array-buffer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -12047,9 +11008,8 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -12065,9 +11025,8 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -12084,9 +11043,8 @@ }, "node_modules/typed-array-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -12098,24 +11056,21 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -12124,20 +11079,25 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", + "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "dev": true, + "license": "MIT" + }, "node_modules/umd": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", "dev": true, + "license": "MIT", "bin": { "umd": "bin/cli.js" } }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -12150,9 +11110,8 @@ }, "node_modules/undeclared-identifiers": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "acorn-node": "^1.3.0", "dash-ast": "^1.0.0", @@ -12166,24 +11125,21 @@ }, "node_modules/undici-types": { "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -12194,26 +11150,22 @@ }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/universalify": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, "license": "MIT", "engines": { @@ -12221,9 +11173,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "dev": true, "funding": [ { @@ -12239,9 +11191,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -12252,27 +11205,24 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/uri-js/node_modules/punycode": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/url": { "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", "dev": true, + "license": "MIT", "dependencies": { "punycode": "^1.4.1", "qs": "^6.11.2" @@ -12280,8 +11230,6 @@ }, "node_modules/url-parse": { "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12291,9 +11239,8 @@ }, "node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -12304,24 +11251,21 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/vinyl": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -12336,9 +11280,8 @@ }, "node_modules/vinyl-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz", - "integrity": "sha512-LRBE2/g3C1hSHL2k/FynSZcVTRhEw8sb08oKGt/0hukZXwrh2m8nfy+r5yLhGEk7eFFuclhyIuPct/Bxlxk6rg==", "dev": true, + "license": "MIT", "dependencies": { "bl": "^1.2.1", "through2": "^2.0.3" @@ -12346,9 +11289,8 @@ }, "node_modules/vinyl-source-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz", - "integrity": "sha512-Y5f1wRGajOfYukhv8biIGA7iZiY8UOIc3zJ6zcUNIbRG1BVuXzBsfSfe7MUJTttVkuy64k/pGQtJdd/aIt+hbw==", "dev": true, + "license": "MIT", "dependencies": { "through2": "^2.0.3", "vinyl": "^2.1.0" @@ -12431,8 +11373,6 @@ }, "node_modules/vite-node": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.2.tgz", - "integrity": "sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==", "dev": true, "license": "MIT", "dependencies": { @@ -12454,8 +11394,6 @@ }, "node_modules/vite/node_modules/fdir": { "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -12469,8 +11407,6 @@ }, "node_modules/vite/node_modules/picomatch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", "engines": { @@ -12482,8 +11418,6 @@ }, "node_modules/vitest": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.2.tgz", - "integrity": "sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12553,8 +11487,6 @@ }, "node_modules/vitest/node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -12563,8 +11495,6 @@ }, "node_modules/vitest/node_modules/chai": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", - "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", "dev": true, "license": "MIT", "dependencies": { @@ -12580,8 +11510,6 @@ }, "node_modules/vitest/node_modules/check-error": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", - "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, "license": "MIT", "engines": { @@ -12590,8 +11518,6 @@ }, "node_modules/vitest/node_modules/deep-eql": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", "engines": { @@ -12600,15 +11526,11 @@ }, "node_modules/vitest/node_modules/loupe": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", - "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", "dev": true, "license": "MIT" }, "node_modules/vitest/node_modules/magic-string": { "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -12617,8 +11539,6 @@ }, "node_modules/vitest/node_modules/pathval": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", - "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, "license": "MIT", "engines": { @@ -12627,14 +11547,11 @@ }, "node_modules/vm-browserify": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "license": "MIT", "dependencies": { @@ -12646,9 +11563,9 @@ }, "node_modules/watchpack": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -12659,8 +11576,6 @@ }, "node_modules/webidl-conversions": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -12669,9 +11584,9 @@ }, "node_modules/webpack": { "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", @@ -12713,88 +11628,20 @@ } } }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", + "peer": true, "engines": { "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -12810,8 +11657,6 @@ }, "node_modules/whatwg-encoding": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12823,8 +11668,6 @@ }, "node_modules/whatwg-mimetype": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, "license": "MIT", "engines": { @@ -12833,8 +11676,6 @@ }, "node_modules/whatwg-url": { "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", "dev": true, "license": "MIT", "dependencies": { @@ -12847,9 +11688,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -12862,9 +11702,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -12878,15 +11717,13 @@ }, "node_modules/which-module": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", @@ -12903,8 +11740,6 @@ }, "node_modules/why-is-node-running": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "license": "MIT", "dependencies": { @@ -12918,24 +11753,34 @@ "node": ">=8" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, "node_modules/workerpool": { "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", - "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true, "license": "Apache-2.0" }, "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12950,21 +11795,18 @@ }, "node_modules/wrap-comment": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrap-comment/-/wrap-comment-1.0.1.tgz", - "integrity": "sha512-APccrMwl/ont0RHFTXNAQfM647duYYEfs6cngrIyTByTI0xbWnDnPSptFZhS68L4WCjt2ZxuhCFwuY6Pe88KZQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -12974,8 +11816,6 @@ }, "node_modules/ws": { "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "dev": true, "license": "MIT", "engines": { @@ -12996,14 +11836,11 @@ }, "node_modules/xml": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/xml-name-validator": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -13012,40 +11849,34 @@ }, "node_modules/xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true, "license": "MIT" }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -13061,8 +11892,6 @@ }, "node_modules/yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "license": "ISC", "engines": { @@ -13071,9 +11900,8 @@ }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -13086,9 +11914,8 @@ }, "node_modules/yargs-unparser/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13098,9 +11925,8 @@ }, "node_modules/yargs-unparser/node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -13110,18 +11936,16 @@ }, "node_modules/yn": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.20" }, diff --git a/package.json b/package.json index 24659155..1be50df7 100644 --- a/package.json +++ b/package.json @@ -20,17 +20,31 @@ "url": "https://github.com/dcantu476" } ], - "main": "lib/Typesense.js", - "types": "lib/Typesense.d.ts", "browser": { "crypto": false, "http": false, "https": false }, + "main": "./dist/index.js", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "import": "./dist/index.min.mjs", + "require": "./lib/index.js" + }, + "./lib/Typesense/*": { + "types": "./lib/Typesense/*.d.ts", + "default": "./lib/Typesense/*.js" + }, + "./dist": { + "types": "./dist/index.d.ts", + "import": "./dist/index.min.mjs", + "require": "./dist/index.min.js" + } + }, "files": [ - "lib/", - "dist/", - "src/" + "./dist", + "./lib" ], "keywords": [ "typesense", @@ -62,11 +76,14 @@ "babel-plugin-istanbul": "^6.1.1", "babelify": "^10.0.0", "browserify": "^17.0.0", + "browserslist": "^4.23.3", + "browserslist-to-esbuild": "^2.1.1", "chai": "~4.3.10", "chai-as-promised": "^7.1.1", "common-shakeify": "^1.1.2", "core-js": "^3.33.2", "del": "^7.1.0", + "esbuild-plugins-node-modules-polyfill": "^1.6.5", "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-import": "^2.29.0", @@ -83,25 +100,22 @@ "ts-loader": "^9.5.0", "ts-mocha": "^10.0.0", "tsify": "^5.0.4", + "tsup": "^8.2.4", "typescript": "^5.2.2", "vinyl-buffer": "^1.0.1", - "dotenv": "^16.4.7", "vinyl-source-stream": "^2.0.0", - "vitest": "^3.1.2", - "webpack": "^5.89.0", - "webpack-cli": "^5.1.4" + "dotenv": "^16.4.7", + "vitest": "^3.1.2" }, "scripts": { "format": "prettier --write \"(src|test|doc)/**/*.(ts|json|js)\"", "pretest": "eslint .", + "prepare": "npm run build", "test": "nyc --reporter=html --reporter=text ts-mocha --require @babel/register --recursive", - "build": "npm run build:tsc && npm run build:web:dev && npm run build:web:prod", + "build": "tsc -p ./tsconfig.cjs.json && tsup", + "prebuild": "rimraf dist lib", "test:vitest": "vitest", "build:tsc": "tsc", - "typecheck": "tsc --noEmit -p tsconfig.test.json", - "build:web:dev": "webpack --config webpack.config.js --mode development", - "build:web:prod": "webpack --config webpack.config.js --mode production", - "build:tsc:watch": "tsc --watch", "ci-lint": "eslint .", "ci-test": "nyc --reporter=text --reporter=html ts-mocha --require @babel/register --reporter mocha-junit-reporter --recursive --colors", "typesenseServer": "docker run -i -p 8108:8108 -v/tmp/typesense-server-data-1c/:/data typesense/typesense:27.0.rc26 --data-dir /data --api-key=xyz --listen-port 8108 --enable-cors", @@ -117,9 +131,6 @@ "loglevel": "^1.8.1", "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/runtime": "^7.23.2" - }, "engines": { "node": ">=18" } diff --git a/src/Typesense.ts b/src/Typesense.ts deleted file mode 100644 index 2d485da6..00000000 --- a/src/Typesense.ts +++ /dev/null @@ -1,6 +0,0 @@ -import Client from "./Typesense/Client"; -import SearchClient from "./Typesense/SearchClient"; -import * as Errors from "./Typesense/Errors"; - -export { Client, SearchClient, Errors }; -export default { Client, SearchClient, Errors }; diff --git a/src/Typesense/Configuration.ts b/src/Typesense/Configuration.ts index 50064749..8f38fb15 100644 --- a/src/Typesense/Configuration.ts +++ b/src/Typesense/Configuration.ts @@ -1,5 +1,4 @@ -import * as logger from "loglevel"; -import { Logger, LogLevelDesc } from "loglevel"; +import logger from "loglevel"; import { MissingConfigurationError } from "./Errors"; import type { Agent as HTTPAgent } from "http"; import type { Agent as HTTPSAgent } from "https"; @@ -62,8 +61,8 @@ export interface ConfigurationOptions { cacheSearchResultsForSeconds?: number; additionalHeaders?: Record; - logLevel?: LogLevelDesc; - logger?: Logger; + logLevel?: logger.LogLevelDesc; + logger?: logger.Logger; /** * Set a custom HTTP Agent @@ -155,8 +154,8 @@ export default class Configuration { readonly sendApiKeyAsQueryParam?: boolean; readonly cacheSearchResultsForSeconds: number; readonly useServerSideSearchCache: boolean; - readonly logger: Logger; - readonly logLevel: LogLevelDesc; + readonly logger: logger.Logger; + readonly logLevel: logger.LogLevelDesc; readonly additionalHeaders?: Record; readonly httpAgent?: HTTPAgent; readonly httpsAgent?: HTTPSAgent; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..8f5cdd2a --- /dev/null +++ b/src/index.ts @@ -0,0 +1,33 @@ +import SearchClient from "./Typesense/SearchClient"; +import Client from "./Typesense/Client"; + +export { SearchClient }; +export { Client }; +export * as Errors from "./Typesense/Errors"; + +export type * from "./Typesense/Aliases"; +export type * from "./Typesense/AnalyticsEvent"; +export type * from "./Typesense/AnalyticsRule"; +export type * from "./Typesense/AnalyticsRules"; +export type * from "./Typesense/Collection"; +export type * from "./Typesense/Collections"; +export type * from "./Typesense/Configuration"; +export type * from "./Typesense/Conversations"; +export type * from "./Typesense/Conversation"; +export type * from "./Typesense/ConversationModel"; +export type * from "./Typesense/Debug"; +export type * from "./Typesense/Documents"; +export type * from "./Typesense/Health"; +export type * from "./Typesense/Key"; +export type * from "./Typesense/Keys"; +export type * from "./Typesense/Metrics"; +export type * from "./Typesense/MultiSearch"; +export type * from "./Typesense/Override"; +export type * from "./Typesense/Overrides"; +export type * from "./Typesense/Preset"; +export type * from "./Typesense/Presets"; +export type * from "./Typesense/Stats"; +export type * from "./Typesense/Stopword"; +export type * from "./Typesense/Stopwords"; +export type * from "./Typesense/Synonym"; +export type * from "./Typesense/Synonyms"; diff --git a/test/Typesense.spec.js b/test/Typesense.spec.js index cb66bdbd..7afe1ce6 100644 --- a/test/Typesense.spec.js +++ b/test/Typesense.spec.js @@ -3,7 +3,7 @@ import { Client as TypesenseClient, SearchClient as TypesenseSearchClient, Errors, -} from "../src/Typesense"; +} from "../src/index"; let expect = chai.expect; diff --git a/test/Typesense/Alias.spec.js b/test/Typesense/Alias.spec.js index 836ec568..464b02f8 100644 --- a/test/Typesense/Alias.spec.js +++ b/test/Typesense/Alias.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Aliases.spec.js b/test/Typesense/Aliases.spec.js index 9b3fee98..2ffefce2 100644 --- a/test/Typesense/Aliases.spec.js +++ b/test/Typesense/Aliases.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/AnalyticsEvents.spec.js b/test/Typesense/AnalyticsEvents.spec.js index b9df9971..2d2cad68 100644 --- a/test/Typesense/AnalyticsEvents.spec.js +++ b/test/Typesense/AnalyticsEvents.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/AnalyticsRule.spec.js b/test/Typesense/AnalyticsRule.spec.js index e93f4167..8b026f68 100644 --- a/test/Typesense/AnalyticsRule.spec.js +++ b/test/Typesense/AnalyticsRule.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -36,14 +36,14 @@ describe("AnalyticsRule", function () { .onGet( apiCall.uriFor( "/analytics/rules/123", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), null, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "{}", { "content-type": "application/json" }); @@ -61,14 +61,14 @@ describe("AnalyticsRule", function () { .onDelete( apiCall.uriFor( "/analytics/rules/123", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), null, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, {}); diff --git a/test/Typesense/AnalyticsRules.spec.js b/test/Typesense/AnalyticsRules.spec.js index adb63e16..bbbe45d6 100644 --- a/test/Typesense/AnalyticsRules.spec.js +++ b/test/Typesense/AnalyticsRules.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/ApiCall.spec.js b/test/Typesense/ApiCall.spec.js index 0150b49a..f71b57c6 100644 --- a/test/Typesense/ApiCall.spec.js +++ b/test/Typesense/ApiCall.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import { ObjectUnprocessable } from "../../src/Typesense/Errors"; import axios from "axios"; diff --git a/test/Typesense/Client.spec.js b/test/Typesense/Client.spec.js index c7d1de3b..48214382 100644 --- a/test/Typesense/Client.spec.js +++ b/test/Typesense/Client.spec.js @@ -1,5 +1,5 @@ import chai from "chai"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; let expect = chai.expect; @@ -47,7 +47,7 @@ describe("Client", function () { }, }); expect( - typesense.configuration.additionalHeaders["CF-Access-Client-Id"] + typesense.configuration.additionalHeaders["CF-Access-Client-Id"], ).to.eql("abcd"); done(); }); diff --git a/test/Typesense/Collection.spec.js b/test/Typesense/Collection.spec.js index da4169a1..fc14d583 100644 --- a/test/Typesense/Collection.spec.js +++ b/test/Typesense/Collection.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -64,14 +64,14 @@ describe("Collection", function () { .onGet( apiCall.uriFor( "/collections/companies", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), null, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(companySchema), { "content-type": "application/json", @@ -92,14 +92,14 @@ describe("Collection", function () { .onPatch( apiCall.uriFor( "/collections/companies", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), updateSchema, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(updateSchema), { "content-type": "application/json", @@ -117,14 +117,14 @@ describe("Collection", function () { .onDelete( apiCall.uriFor( "/collections/companies", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), null, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(companySchema), { "content-type": "application/json", diff --git a/test/Typesense/Collections.spec.js b/test/Typesense/Collections.spec.js index 6a27d030..bf88f346 100644 --- a/test/Typesense/Collections.spec.js +++ b/test/Typesense/Collections.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Configuration.spec.js b/test/Typesense/Configuration.spec.js index 1a4043ed..6c1f26fc 100644 --- a/test/Typesense/Configuration.spec.js +++ b/test/Typesense/Configuration.spec.js @@ -1,5 +1,5 @@ import chai from "chai"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import { MissingConfigurationError } from "../../src/Typesense/Errors"; let expect = chai.expect; @@ -106,7 +106,7 @@ describe("Configuration", function () { randomizeNodes: false, }); expect(typesense.configuration.nodes[0].url).to.equal( - "https://example.net/" + "https://example.net/", ); }).to.not.throw(MissingConfigurationError); diff --git a/test/Typesense/Conversation.spec.js b/test/Typesense/Conversation.spec.js index a382758c..cf37a7cc 100644 --- a/test/Typesense/Conversation.spec.js +++ b/test/Typesense/Conversation.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/ConversationModel.spec.js b/test/Typesense/ConversationModel.spec.js index b5e44b6b..463dab3f 100644 --- a/test/Typesense/ConversationModel.spec.js +++ b/test/Typesense/ConversationModel.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/ConversationModels.spec.js b/test/Typesense/ConversationModels.spec.js index 89c2b985..c57e7b33 100644 --- a/test/Typesense/ConversationModels.spec.js +++ b/test/Typesense/ConversationModels.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Conversations.spec.js b/test/Typesense/Conversations.spec.js index 9a89779c..137e88cb 100644 --- a/test/Typesense/Conversations.spec.js +++ b/test/Typesense/Conversations.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Debug.spec.js b/test/Typesense/Debug.spec.js index 3ef527cd..8a42d4b1 100644 --- a/test/Typesense/Debug.spec.js +++ b/test/Typesense/Debug.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -39,7 +39,7 @@ describe("Debug", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(debugInfo), { "content-type": "application/json", diff --git a/test/Typesense/Document.spec.js b/test/Typesense/Document.spec.js index 5e070724..e4ae0ab3 100644 --- a/test/Typesense/Document.spec.js +++ b/test/Typesense/Document.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -42,14 +42,14 @@ describe("Document", function () { .onGet( apiCall.uriFor( "/collections/companies/documents/124", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), null, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(documentResult), { "content-type": "application/json", @@ -71,14 +71,14 @@ describe("Document", function () { .onPatch( apiCall.uriFor( "/collections/companies/documents/124", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), partialDocument, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply((config) => { expect(config.params.dirty_values).to.equal("coerce_or_reject"); @@ -103,14 +103,14 @@ describe("Document", function () { .onDelete( apiCall.uriFor( "/collections/companies/documents/124", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), null, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(documentResult), { "content-type": "application/json", diff --git a/test/Typesense/Documents.spec.js b/test/Typesense/Documents.spec.js index c09a324f..233466a3 100644 --- a/test/Typesense/Documents.spec.js +++ b/test/Typesense/Documents.spec.js @@ -1,7 +1,7 @@ import fs from "fs"; import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Health.spec.js b/test/Typesense/Health.spec.js index 7eec87ae..da864608 100644 --- a/test/Typesense/Health.spec.js +++ b/test/Typesense/Health.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -38,7 +38,7 @@ describe("Health", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify({ ok: true }), { "content-type": "application/json", diff --git a/test/Typesense/Key.spec.js b/test/Typesense/Key.spec.js index b2dc0708..9d7c7806 100644 --- a/test/Typesense/Key.spec.js +++ b/test/Typesense/Key.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -40,7 +40,7 @@ describe("Key", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "{}", { "content-type": "application/json" }); @@ -62,7 +62,7 @@ describe("Key", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, {}); diff --git a/test/Typesense/Keys.spec.js b/test/Typesense/Keys.spec.js index 8f972b4b..a153b92f 100644 --- a/test/Typesense/Keys.spec.js +++ b/test/Typesense/Keys.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -44,7 +44,7 @@ describe("Keys", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(201, "{}", { "content-type": "application/json" }); @@ -68,7 +68,7 @@ describe("Keys", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "[]", { "content-type": "application/json" }); diff --git a/test/Typesense/Metrics.spec.js b/test/Typesense/Metrics.spec.js index 76ba3143..c174fc5d 100644 --- a/test/Typesense/Metrics.spec.js +++ b/test/Typesense/Metrics.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -38,7 +38,7 @@ describe("Metrics", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "{}", { "content-type": "application/json" }); diff --git a/test/Typesense/MultiSearch.spec.js b/test/Typesense/MultiSearch.spec.js index 700611e8..fb87446c 100644 --- a/test/Typesense/MultiSearch.spec.js +++ b/test/Typesense/MultiSearch.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Operations.spec.js b/test/Typesense/Operations.spec.js index a2da96af..51e79afb 100644 --- a/test/Typesense/Operations.spec.js +++ b/test/Typesense/Operations.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -34,14 +34,14 @@ describe("Operations", function () { .onPost( apiCall.uriFor( "/operations/snapshot", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply((config) => { expect(config.params.snapshot_path).to.equal("/tmp/dbsnap"); diff --git a/test/Typesense/Override.spec.js b/test/Typesense/Override.spec.js index b4d77aa2..f6807b96 100644 --- a/test/Typesense/Override.spec.js +++ b/test/Typesense/Override.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -49,14 +49,14 @@ describe("Override", function () { .onGet( apiCall.uriFor( "/collections/companies/overrides/lex-exact", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(overrideData), { "content-type": "application/json", @@ -74,14 +74,14 @@ describe("Override", function () { .onDelete( apiCall.uriFor( "/collections/companies/overrides/lex-exact", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify(stubbedResult), { "content-type": "application/json", diff --git a/test/Typesense/Overrides.spec.js b/test/Typesense/Overrides.spec.js index 49a000f6..76613d4c 100644 --- a/test/Typesense/Overrides.spec.js +++ b/test/Typesense/Overrides.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -49,14 +49,14 @@ describe("Overrides", function () { .onPut( apiCall.uriFor( "/collections/companies/overrides/lex-exact", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), override, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(201, JSON.stringify(override), { "content-type": "application/json", @@ -73,14 +73,14 @@ describe("Overrides", function () { .onGet( apiCall.uriFor( "/collections/companies/overrides", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify([override]), { "content-type": "application/json", diff --git a/test/Typesense/Preset.spec.js b/test/Typesense/Preset.spec.js index 2f15cbd6..f4e3be0a 100644 --- a/test/Typesense/Preset.spec.js +++ b/test/Typesense/Preset.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -40,7 +40,7 @@ describe("Preset", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "{}", { "content-type": "application/json" }); @@ -62,7 +62,7 @@ describe("Preset", function () { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, {}); diff --git a/test/Typesense/Presets.spec.js b/test/Typesense/Presets.spec.js index d2aed06c..d0c31a28 100644 --- a/test/Typesense/Presets.spec.js +++ b/test/Typesense/Presets.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/SearchClient.spec.js b/test/Typesense/SearchClient.spec.js index 98476e46..6cac13f3 100644 --- a/test/Typesense/SearchClient.spec.js +++ b/test/Typesense/SearchClient.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { SearchClient as TypesenseSearchClient } from "../../src/Typesense"; +import { SearchClient as TypesenseSearchClient } from "../../src/index"; import MockAxiosAdapter from "axios-mock-adapter"; import axios from "axios"; import ApiCall from "../../src/Typesense/ApiCall"; @@ -47,7 +47,7 @@ describe("SearchClient", function () { }); it("should only expose the search endpoints", function (done) { expect(typesense.collections).to.throw( - "Typesense.SearchClient only supports search operations" + "Typesense.SearchClient only supports search operations", ); expect(typesense.collections("xyz").documents().search).to.be.a("function"); expect(typesense.multiSearch.perform).to.be.a("function"); @@ -87,7 +87,7 @@ describe("SearchClient", function () { Accept: "application/json, text/plain, */*", "Content-Type": "text/plain", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply((config) => { expect(config.params["x-typesense-api-key"]).to.eq(undefined); @@ -132,8 +132,8 @@ describe("SearchClient", function () { .onGet( apiCall.uriFor( "/collections/companies/documents/search", - typesense.configuration.nodes[0] - ) + typesense.configuration.nodes[0], + ), ) .reply(200, JSON.stringify(stubbedSearchResults[i]), { "content-type": "application/json", @@ -167,7 +167,7 @@ describe("SearchClient", function () { searchRequests.forEach((_, i) => { mockAxios .onPost( - apiCall.uriFor("/multi_search", typesense.configuration.nodes[0]) + apiCall.uriFor("/multi_search", typesense.configuration.nodes[0]), ) // eslint-disable-next-line @typescript-eslint/no-unused-vars .reply((config) => { diff --git a/test/Typesense/Stats.spec.js b/test/Typesense/Stats.spec.js index def1e5c1..7b34f533 100644 --- a/test/Typesense/Stats.spec.js +++ b/test/Typesense/Stats.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/StemmingDictionaries.spec.js b/test/Typesense/StemmingDictionaries.spec.js index fb2807b5..6f3b0bc4 100644 --- a/test/Typesense/StemmingDictionaries.spec.js +++ b/test/Typesense/StemmingDictionaries.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/StemmingDictionary.spec.js b/test/Typesense/StemmingDictionary.spec.js index e86bb5a1..694eb38e 100644 --- a/test/Typesense/StemmingDictionary.spec.js +++ b/test/Typesense/StemmingDictionary.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Stopword.spec.js b/test/Typesense/Stopword.spec.js index 230aeb8e..ed49af5d 100644 --- a/test/Typesense/Stopword.spec.js +++ b/test/Typesense/Stopword.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Stopwords.spec.js b/test/Typesense/Stopwords.spec.js index 2b58d1d5..99fd1c1a 100644 --- a/test/Typesense/Stopwords.spec.js +++ b/test/Typesense/Stopwords.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; diff --git a/test/Typesense/Synonym.spec.js b/test/Typesense/Synonym.spec.js index 350bfdc7..9960aadb 100644 --- a/test/Typesense/Synonym.spec.js +++ b/test/Typesense/Synonym.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -38,14 +38,14 @@ describe("Synonym", function () { .onGet( apiCall.uriFor( "/collections/companies/synonyms/synonym-set-1", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "{}", { "content-type": "application/json" }); @@ -60,14 +60,14 @@ describe("Synonym", function () { .onDelete( apiCall.uriFor( "/collections/companies/synonyms/synonym-set-1", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, "{}", { "content-type": "application/json" }); diff --git a/test/Typesense/Synonyms.spec.js b/test/Typesense/Synonyms.spec.js index 89c7d665..fa652dfe 100644 --- a/test/Typesense/Synonyms.spec.js +++ b/test/Typesense/Synonyms.spec.js @@ -1,6 +1,6 @@ import chai from "chai"; import chaiAsPromised from "chai-as-promised"; -import { Client as TypesenseClient } from "../../src/Typesense"; +import { Client as TypesenseClient } from "../../src/index"; import ApiCall from "../../src/Typesense/ApiCall"; import axios from "axios"; import MockAxiosAdapter from "axios-mock-adapter"; @@ -39,14 +39,14 @@ describe("Synonyms", function () { .onPut( apiCall.uriFor( "/collections/companies/synonyms/synonym-set-1", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), synonym, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(201, "{}", { "content-type": "application/json" }); @@ -61,14 +61,14 @@ describe("Synonyms", function () { .onGet( apiCall.uriFor( "/collections/companies/synonyms", - typesense.configuration.nodes[0] + typesense.configuration.nodes[0], ), undefined, { Accept: "application/json, text/plain, */*", "Content-Type": "application/json", "X-TYPESENSE-API-KEY": typesense.configuration.apiKey, - } + }, ) .reply(200, JSON.stringify([]), { "content-type": "application/json" }); diff --git a/test/setup.ts b/test/setup.ts index f154bc57..ce28474c 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -1,5 +1,5 @@ import "dotenv/config"; -import { Client } from "../src/Typesense"; +import { Client } from "../src"; import type { CollectionCreateSchema } from "../src/Typesense/Collections"; import { ObjectAlreadyExists } from "../src/Typesense/Errors"; import { essays } from "./essays"; diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..95708baa --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,17 @@ +{ + "include": ["./src/**/*.ts"], + "compilerOptions": { + "lib": ["es5", "es6", "es7", "esnext", "dom"], + "target": "es2018", + "rootDir": "./src", + "importHelpers": true, + "strict": true, + "noImplicitAny": false, + "moduleResolution": "node", + "esModuleInterop": true, + "inlineSourceMap": false, + "inlineSources": false, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +} diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json new file mode 100644 index 00000000..b0b058ff --- /dev/null +++ b/tsconfig.cjs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "declaration": true, + "sourceMap": true, + "outDir": "./lib", + "module": "CommonJS" + } +} diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..4b64e60c --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "ES2015", + "declaration": false, + "declarationMap": false, + "sourceMap": false, + } +} diff --git a/tsconfig.json b/tsconfig.json index 89148727..a22650bd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,71 +1,6 @@ { - "include": ["./src/**/*.ts"], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - // "lib": [], /* Specify library files to be included in the compilation. */ - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./lib" /* Redirect output structure to the directory. */, - "rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": false /* Raise error on expressions and declarations with an implied 'any' type. */, - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - - /* Module Resolution Options */ - "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - "inlineSourceMap": false /* Emit a single file with source maps instead of having a separate file. */, - "inlineSources": false /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */, - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ - } + "extends": "./tsconfig.base.json", + "compilerOptions": { + "outDir": "./lib", + } } diff --git a/tsup.config.ts b/tsup.config.ts new file mode 100644 index 00000000..c1a9bb6e --- /dev/null +++ b/tsup.config.ts @@ -0,0 +1,52 @@ +import { defineConfig } from "tsup"; +import type { Options } from "tsup"; +import browserList from "browserslist-to-esbuild"; +import { nodeModulesPolyfillPlugin } from "esbuild-plugins-node-modules-polyfill"; + +const baseOptions: Options = { + target: browserList(["defaults"]) as Options["target"], + entry: ["src/index.ts"], + clean: true, + format: ["cjs", "esm"], + outDir: "dist", + outExtension({ format }) { + return { + js: `.min.${format === "cjs" ? "js" : "mjs"}`, + }; + }, + splitting: true, + platform: "browser", + treeshake: true, + tsconfig: "./tsconfig.esm.json", + esbuildPlugins: [ + nodeModulesPolyfillPlugin({ + modules: { + crypto: "empty", + http: "empty", + https: "empty", + }, + }), + ], +}; + +export default defineConfig([ + // minified + { + ...baseOptions, + sourcemap: true, + minify: true, + dts: true, + }, + // un-minified + { + ...baseOptions, + minify: false, + sourcemap: false, + dts: false, + outExtension({ format }) { + return { + js: `.${format === "cjs" ? "js" : "mjs"}`, + }; + }, + }, +]); diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 5309764e..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,33 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ - -const path = require("path"); - -module.exports = (env, argv) => { - return { - entry: "./src/Typesense.ts", - target: "web", - mode: argv.mode, - module: { - rules: [ - { - test: /\.ts$/, - exclude: /node_modules/, - use: { - loader: "babel-loader", - }, - }, - ], - }, - resolve: { - extensions: [".tsx", ".ts", ".js"], - }, - output: { - filename: `typesense${ - argv && argv.mode === "production" ? ".min" : "" - }.js`, - path: path.resolve(__dirname, "dist"), - library: "Typesense", - }, - devtool: "source-map", - }; -};